- ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ -
Download: Melee Modding Wizard - v1.0.0 (64-bit)
- ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ -
If you'd like to give back:
Or you can follow me on Patreon!
Hello! Off and on for the past couple of years, I've been working on this program for modding Melee. It combines functionality from DTW and MCM (with many improvements over those) and introduces many new features. It also provides simple, yet powerful command-line support to integrate this into other workflows, programs, or scripts. It has a much more robust framework (much more modular and object-oriented), which will make adding new features much easier than my older programs. It's still missing a couple of features from DTW and MCM, but let me know which ones you use the most or want to see in this new program and I'll port them over. And of course, let me know if you have ideas for new features you'd like to see.
Other GameCube/Wii games are supported to some extent (disc operations and code mods), but there aren't specialized areas of focus on other games atm.
Major GUI features so far:
Disc Operations - view file info/hex, import/export/add/remove files, etc.
Edit Disc Properties - Image Name, Title/Maker text, banner image, etc.
Code Manager - like MCM, but better (details below)
Stage Manager - view/change icons/stages/preview-text, and more
Stage Editing - change some properties of stages and view blastzones, collisions, and more
Music Manager - listen to game music, import/export, etc.
Texture Editing - replace textures, like with DTW, but with a 3D renderer!
Debug Menu Editor - currently mostly a struct info viewer (e.g. see 20XX menu)
Character Modder - Edit character general and special properties; edit subAction events
Other miscellaneous tools:
- new Character Color Converter
- fully-automated Tri-CSP Creator for 20XX HP
- quickly boot-test characters/stages from external/standalone files
- xDelta integration; build a disc from a patch or make a patch for a disc
- assemble/disassemble ASM, reformat hex code
Major command-line features so far:
Disc Operations - file import/export/add/remove, view disc info, list files, etc.
Root Folder Operations - build a disc from a folder of files, list files, or view info
Asset Tests - boot the game directly to an external character or stage file for quick tests
File Validation - test whether files are of an expected type (stage/char/music/etc.)
Code Operations - install codes or view code/library info. WIP
I still have a lot of ideas for simplifying Melee hacking processes or adding features. Below are some examples on my todo list. Let me know what you'd like to see so I know what to prioritize!
Potential next areas of focus:
Game Font Changer
More features for DAT file operations (export/import structures/branches)
More command-line operations
m-ex feature integration?
Structural Analysis interface from DTW
Expand character support in Character Color Converter
Code Installation Summary tab from MCM
Sound Effects Manager
Dark Mode
More work on 20XX Tri-CSP creator
More work on Music Manager (scrubbing/editLoop)
Remember window size/coordinates
Moveset Editor?
Model/Joint (or other structs) Exporter
Stock Icons Replacer (update in all 4 game file locations)
I realize much of the functionality I'm working on or have thoughts on making is already present in other programs, like HSDRaw or mexTool, and I certainly don't intend for this to replace them! But even with those, some of the more common operations in modding Melee can be difficult or otherwise still require multiple steps using multiple programs... so the goal is to create simpler and more intuitive interfaces for some of these things.
This is open-source, and I have the code up on GitHub, above. It's written in Python 2, but I plan to move it to Python 3 at some point. (Let me know if you'd like to help with that! I assume it won't be a small feat.) You'll need to install Python in order to run the github repo while uncompiled. However, I've included a "Dependencies" folder which includes Python 2.7.18 and all of the Python dependencies, as well as a script to install them for you. If you want to use audio-related features that include converting audio (such as importing a song in mp3 format), you may need to install Microsoft's .Net Framework v4.6.1, which you can get here.
Some of the main features that this is starting with are improvements in code installation and development. It's backward compatible with the old MCM code library format, and also supports a new format with a few advantages. Like with MCM, custom code may be saved in a library as raw source code or assembled hex data. However, with this program, an assembled code cache is also created. This cache is automatically updated any time you make changes to individual codes (when saving the mod or saving it to your game) and is used during code installation. This allows you to conveniently keep all of the mods in your library in their source-code form, while still enjoying very fast code installation times of just a few seconds. This makes an especially big difference when amassing hundreds of codes for a large project. Library load times and GUI performance have also been dramatically improved compared to MCM, so huge code libraries can be used.
Another improvement that makes this program more convenient than MCM is that codes don't need to be uninstalled from your game in order to edit and re-save them. (This was a limitation in MCM, usually worked around by opening a vanilla DOL each time, and saving everything to that instead of opening an already-edited DOL and uninstalling->editing->reinstalling.) This program can also automatically create a .map file during saving, with the names and locations of all of your custom code. This is incredibly helpful when stepping around in code in Dolphin for RnD or debugging.
One of my favorite new code-related features of this program are code "customizations". These allow code creators to offer very simple and easy-to-use user configurations or options for their mods, without the user needing to know anything about assembly/hex or how the custom code works. For example:
Mods that have configuration options available will display an extra button on the mod:
This example will open a window to provide a drop-down menu to select a kind of turnip:
This window is very dynamic; a mod can have any number of customizations, and they can each appear with different forms of input, such as sliders (with customizable range), dropdown menus, or standard value input (if you hover over the integer and float values here, an entry box appears so you can directly edit the value). Here's an example of these:
I was thinking about ON/OFF toggles and color choosers for more input types. If you'd like to try adding some configurations to a mod, you can look at the "!Test Codes.txt" file for some quick and simple examples of how to define them. And I can go into more detail as well if you'd like. I'll make a guide later on all of the specifics on how to add these to your mod.
When you load a game disc in the program, if the mod is installed, it will check and display the configuration values currently installed in your game. Masking support for AND or ORing options together in custom code hasn't been finished yet, but simpler scenarios (i.e. single values per offset in the code) work.
Another big feature will be to save codes to the heap rather than just to the DOL file. This means a large increase in the amount of code you can save to your game, limited by free space in RAM rather than free space in the DOL. You can save to one or both if you'd like. And this is done without the need for the Gecko codehandler and codelist, which saves even more space (you may be surprised at how much overhead can be found in the Gecko codelist!). This feature isn't active in this beta build, but it's mostly done, so let me know if you'd like to try it and I'll finish it for the next build. This could be further expanded in the future to load code on a per-scene basis, making code space practically unlimited.
I also used this program and framework to help me a great deal with working on 20XX, so you'll notice there are a few 20XX-specific features, such as the Debug Menu Editor, which shows you the file offsets and RAM addresses of menu entries, strings, functions, current value location, etc. Plus there's support for the 20XX stage file-swapping system, 20XX's extra music (Hex Tracks), and a more-automated Tri-CSP Creator.
I think one of the main problems in my Melee hacking endeavors (besides finding enough free time to work on them) has been not having much transparency on my current projects. So I want to try to share what I'm doing more often. If you want to join my Patreon, I'd like to create a Discord server for my patrons if I get enough followers (maybe at least ~20-30). I think that would make it much easier for folks to track development, make suggestions for features, and get early program test builds. I could even add custom features to special builds if you need something extra.
Anyway... there are probably bugs! Please let me know if you find any. It has been a while since I've tested some specific features, but anything that I might have broken by refactoring will likely be an easy fix, so let me know about it and I'll fix it. And of course, let me know if you have any questions or requests for features.
That's all for now. Hope you guys find this useful! ^_^
Last edited: