Version 4.1:
- Updated the "Menu Text to Hex" tool, to include all Hiragana, Katagana, and Kanji characters
- Greatly improved assembly performance (no longer using pyiiasmh to interface with EABI libraries)
- Trying out disabling the linker during assembly (ba = 00000000); discuss. Might later re-enable
- Added a new special syntax that can be used when writing codes, 'RAM symbols' (described in spoiler below)
- Added a warning if any mods appear to be installed to disabled regions, with a prompt to enable them
- Added a "Mod Search" button to the Mod Construction tab (same function as pressing CTRL-F) *
- Comments on lines containing special branch syntaxes are now preserved
- Fixed a performance regression regarding assembling unconditional branches that don't set any flags
- Fixed a small GUI/highlighting related bug on the Item Switch window's "Item Frequency" dropdown
- Improvements/additions to the Summary tab:
- Added a context menu option to toggle whether it's sorting by offset (Advanced/Simple View) **
- Added a context-menu option to toggle showing DOL Offsets or RAM Addresses
- Added standalone function names to the Mods Summary tree when switched to Advanced View
- 'View in...' features on a child item in the Mods Summary tree (in Simple View) now refers to parent item
- 'View in...' features added to Standalone Functions tree when selecting a mod listing
- Audio output simplified (moved from pygame to pyaudio)
- Removed warning of audio problems if no audio driver/device is available
* Used to search for Mods in your Mods Library by name. It was already previously available by pressing CTRL-F (since v4.0), but I figure it was mostly only known to those who noticed its introduction in the change logs, or by word of mouth.
** Switches between Simple View and Advanced View (Sorting by Offset) modes. Again, this feature previously existed (by clicking on the DOL Offset/RAM Address header), but was probably not widely known-about.
Version 4.0 (
64-bit |
32-bit ):
- Support expanded to other GameCube and Wii games!*
- Supports 20XXHP 4.07++**
- The game's vanilla Debug Mode can now be used alongside Gecko codes
- The Gecko codehandler and codelist can now be stored in user-defined regions***
- Free-space code regions updated slightly:
-[ Start area of Aux Code Regions changed to 0x407540 (NTSC 1.02)
-[ Aux Code Regions end point moved to 0x4088B0
-[ "20XXHP 4.07 Regions" added (do not use with other regions selected)
- Conflict with CrazyHand resolved (via AuxCodeRegions end point change above)
- Free Space indicator divided into two; one for standard codes, one for Gecko
- Gecko codehandler and codelist wrapper excluded from free space indicators
- Code Free Space Indicators show exact used and available free space on mouse-over
- CMD windows no longer briefly appear during mod parsing or ASM assembly/disassembly
- Finally completely revamped the Summary tab:
-[ See each and every change done to the DOL, as well as their locations
-[ See how much free space each mod or individual change uses
-[ Left-click the DOL Offset header to sort changes in order of offset
-[ Right-click the DOL Offset header to view locations as RAM Addresses
-[ New features: "Create Installed Mods List", and "Install Mods List"
-[ Convenient 'View DOL Hex' button added
- Mod Search Feature! Press CTRL-F in Mods Library tab to search for mods by name
- All hex inputs in the Tools tab now automatically remove spaces & line breaks
- Mod Construction tab improvements:
-[ The offsets shown can now be toggled between DOL Offsets or RAM Addresses
-[ Undo/redo functionality added
-[ Much more intelligent 'Unsaved' status detection
-[ Fixed mods misunderstanding their installation status
-[ Mouse-wheel scrolling over module list added
-[ "New Hex" scroll position now preserved when switching between code change modules
-[ GUI elements now properly fill space when expanding the window
-[ Custom code length display added to static overwrites
- Tools tab GUI elements now properly fill space when expanding the window
- Code Offset Converter updated:
-[ Now can also be used with RAM Addresses (outputs in same form as input)
-[ Fixed an issue reducing quickSearch=False (option in settings) match effectiveness
-[ The available input fields now based on the DOLs present in the Original DOLs folder
- RAM Address Converter input fields now based on the DOLs in the Original DOLs folder
- ToolTip module updated; fixes multi-monitor issues
- Original DOL files no longer hash-checked before use (for hex restoration, etc.)
- Code-Space Options button now brings the window to the front if it's already open
- settings.py file changed. But GCM 4.x will still be backwards compatible with MCM 3.x files
- Mod Library parsing features/improvements:
-[ Folders/subfolders/files within the Mods Library that start with "!" are now ignored
-[ Folders/subfolders/files starting with "+" are parsed exclusively (others ignored)
-[ empty lines (those with only line breaks) are now preserved in mod descriptions
-[ Duplicate mod detection added. Previously could have caused problems when saving
- Errors are now output to "Error Log.txt"
- "Restore Original DOL" feature added (Reverts the currently loaded DOL to vanilla)
- Region details tooltip added to total region size labels in Code-Space Options window
- "Save As..." button now always available
- Improved logic for installing SFs; should add stability for recursive SF calls
- Fixed: Mods that share many SFs no longer need to be ordered in the Mods Library
- Fixed cases of some injection mods not being detected as installed
- Fixed branching to standalone functions from long static overwrites
- Fixed an obscure case where a conflict being detected could break an installed mod
- Other fixes and behavior improvements
- Lots of logic improvements and code refactoring, so we'll still need some testing
*To use GCM with other games, see the spoiler regarding that in the second post of this thread.
**Use the "20XX 4.07++ Codes.txt" file from the GitHub, but rename the Sheik/Zelda CPU Disable Transformations mods so that they're not seen as duplicates. You don't need to use the settings.py file from there; just use the 20XX Regions that comes with this new MCM version.
***Using the Tournament Mode Region for the codelist grants over 260% more space for Gecko codes!
Version 3.2 (
64-bit |
32-bit[/SIZE]):
- New option: "Update Default Game Settings Only". Compatible with 20XX!
- Rumble options (per-player defaults) added to the Default Game Settings tab!
- Simplified/cleaned-up default game settings code (now much easier to add more options)
- Conflict detection feature now works between mods and the game's default game settings
- Fixed a parsing bug for some long static overwrites created by the GUI
- Fixed a bug stopping an automatic rescan of enabled codes after changing program options
- Fixed installation false-positives occurring on some codes using static overwrites
- Fixed the Code Offset Conversion input (was broken in just v3.1)
- Improved some messages & dialog boxes to the user
- 32-bit build also available!
*The dictionary for this converter resides in the settings.py file, so you may modify it if you want to figure out more characters.
Version
3.1:
- Standalone function definitions can be shared across specific, or all, game versions
- Standalone functions can now be the only thing in a mod; i.e. "Function Modules"
- Scanning for mods is faster
- Fixed an uncommon, odd GUI bug causing mods to render incorrectly
- Fixed small bug on Mod Construction tab dealing with PAL code updates
- Mods can now be filtered out from parsing by use of a '!' in first few lines (
example)
- Further mod organization, and new mods added to library (& a few duplicates removed)
- Will now assume mods are disabled if a static overwrite occurs in reserved regions
- Message for conflicting mod detection fixed to accurately report range ends
- Minor aesthetic fixes (folder tab icon disappearances)
- Fixed notes incorrectly stating that some gecko codes were unavailable
- Tooltip message added to explain the update button in the Mod Construction tab
- Summary tab now displays totals for how much space mods and standalone functions use
- Pressing CTRL-s on the Mods Library or General Settings tab saves your codes to the DOL
- Pressing CTRL-s on the Mod Construction tab saves the selected mod to your library
- If a mod is saved to a new file, Library is rescanned to include it
- "Open this File" button now works on empty Mods Library tabs
- Better validation of "Offset" input field in Mod Construction tab code changes
- The Share/Save functions will now attempt to retrieve missing Original Hex values
- Scroll position and tab selection are now preserved when rescanning Mods Library
- Now remembers last opened file type for the next time you want to open an ISO or DOL
- Added a check for mods writing a static overwrite or injection point to regions used for custom code
- much code cleanup, and testing, bringing this out of the 3.0 "beta"
Version
3.0 (considered beta, since there are so many new changes):
- New nested tab interface for far-greater, user-customizable mod organization
- Mods can now be stored in library as ASM rather than just hex
- New "Mod Construction" tab, for better in-program mod editing and creation
- Mod Construction tab supports viewing/editing ASM with notes/comments
- Rewrote core code-saving logic to be more stable/concise/efficient
- Catches and warns you about mods that conflict with (overwrite) one another
- Rewrote checking for installed mods; should eliminate false-positives
- Improved error checking when saving codes to a DOL/ISO
- Improved support for Gecko codes (for 04 and C2 types)
- Now remembers and defaults to the directory of the last file loaded
- Processing/saving mods that include special branch syntaxes is much faster
- Standalone Functions now only need to be included with one mod
- Custom Branch Syntaxes can now be used with static overwrites
- Fixed parsing bug where branching to 0x8 would be mistaken as a RAM address
- Free space region ( 0x15CC, 0x1698 ) changted to ( 0x15F0, 0x1698 )
- Regions for custom code are now defined differently in the settings.py file
- More regions defined for injecting custom code (Tournament Mode, etc.)
- Regions defined in settings.py now have separate toggles within the GUI
- If new regions are added to settings.py, they will show up in GUI as well
- Empty lines now usable in descriptions
- Fixed (hopefully) all branch Hex -> ASM converter (disassembly) issues
- Improved disassembly performance (speed)
- Fixed a bug that caused ASM not aligned to 8 bytes to fail assembly
- Now zeroes-out unused areas of the free space regions upon saving
- New "Summary" tab, which shows mod totals and lists installed mods
- Mods parser now picks up comments preceded with "#" in descriptions, etc.
- "##" now used in Mods Library files to exclude comments from parser
- "Save As..." button/functionality added
- Progress indication added for save operations
- Can now just hit 'Enter' in the "ISO / DOL" text field to load that file
- Fixed 'Hitbox Displays Do Not Interpolate' (had bad formatting in library)
- Gecko codehandler moved to the settings.py file, for user modifications
- Better behavior on Gecko codes use (warns about overwriting required regions)
- New option to ignore hash-check on hex restoration (vanillaDolSafetyOverride)
- Fixed alignment for injection code saved directly after the Gecko codehandler
- Removed Herobrine
Version 2.1 (
x64 | (
x86):
- 32-bit build now available!
- Fixed a parsing bug that would occur with mods that use several standalone functions
- Fixed ASM compiling bug relating to using standalone functions with custom branch syntaxes
- Added measures to prevent enabled/disabled mods with the same injection points from conflicting
- Scrollwheel support!
- Added 'CTRL-A' (Select All) support for text entry fields
- Slightly improved ASM > Hex conversion efficiency
- Number Conversion Tool: 'L' character removed from negative 32-bit floats
- Font size now adapts to user's system's font size setting (tested on Win7)
- Increasing/decreasing font size is now an option in the settings file
Version
2.0 (from the
original release of this program):
- Added support for standalone functions (can be shared by multiple mods)
- New convenient calling/branching syntax for functions (e.g. "bl 0x800948a8")
- The 'Offset' value can now optionally be given as a RAM address instead
- Program renamed, from "DRGN's DOL Manager" to "Melee Code Manager"
- Can now add/remove & manage Gecko codes in the DOL (thx to R&D by Dan Salvato)
- Added the Tools tab with the following tools -
-- Interface to easily add new codes to the library (formats them for you)
-- Can add new codes in the form of assembly without needing to convert first
-- ASM <-> Hex Converter (available separately from the above functionality)
-- Number converter, RAM address converter, and code offset converter
-- Text to Hex (ASCII) converter
- Drag-and-drop now works with the program icon (previously only available on GUI)
- Before overwriting/changing a game's DOL, now asks if you'd like to back it up
- Now uses '#' rather than '*' for comments in Mods Library (the code text files)
- Fixed an alignment problem occuring with free space in non-v1.02 game versions
- Better error handling in case of a problem while applying a mod to a game
- Better parsing of mods library (attempts to explain errors if encountered)
- New, more convenient syntax for long static overwrites (and can be any length)
- Recognizes .GCM files now rather than .GCN
- Fixed the audio causing a crash when no audio drivers were detected
- Increased custom code free space by 0xF64 (thx to R&D by achilles)
- Free space regions exposed to user via settings file (can set to ignore regions)
- Injection Mods show how much space they use (by byte; separate from the meter)
- Reorganized the mods in the text files by their purpose
- Converted a lot of Gecko codes to DOL mods and added them to the library