7 users online: Dispace, JaizePLS, LadiesMan217,  Lazy, Polaris, the_name_is_already_taken, Zatara - Guests: 59 - Bots: 97
Users: 65,919 (2,188 active)
Latest user: havescarf


Tools → sm64extend

Submission Details

Name: sm64extend
Authors: Davideesk, queueRAM
Operating System: Windows
Platforms: N64
Games: SM64
Source Available: Yes
Featured: No
Website: Link
Description: This is a replacement for the M64ROMExtender and adds a few new features. It is written in C and compiles for Windows and Linux 32/64 bit (probably OSX as well, but untested). I released it under the MIT license so it can be included in any of your projects.

By default, it creates a 64MB extended ROM that is bit compatible with the extended ROM that M64ROMExtender1.3B generates and further extended to 64MB (before the patches are applied by SM64 Editor). I have tested the resulting extended ROMs with SM64 Editor 2.0.x and Toads Tool 64 v0.6.8S.

New features:
- configurable extended ROM size (default 64 MB)
- configurable padding between MIO0 blocks (default 32K)
- configurable MIO0 block alignment (default 1 byte)
- option to fill original MIO0 blocks with 0x01
- built-in ROM header CRC computation (non-GPL!)
- works with US, European, Japanese, and Shindou ROMs (plays in emulators, but TT and level importer only work with (U) ROMs)
- small: 12KB binary
- fast: extends in < 0.5 seconds

M64ROMExtender compatible features:
- accepts Z64 (BE) or V64 (byte-swapped) ROMs as input
- fills extended area with fills with 0x01
- inserts 32 KB padding between MIO0 blocks
- decompresses all MIO0 blocks from ROM to extended area
- changes all 0x18 commands to 0x17
- creates MIO0 headers for all 0x1A commands
- updates assembly reference to first MIO0 block
- dumps MIO0 blocks to 'mio0files' directory

Just drag-and-drop SM64 ROM on the executable for default settings or run from the command prompt specifying these options:
sm64extend [-a ALIGNMENT] [-p PADDING] [-s SIZE] [-d] [-f] [-v] FILE [OUT_FILE]

Optional arguments:
 -a ALIGNMENT byte boundary to align MIO0 blocks (default: 1)
 -p PADDING   padding to insert between MIO0 blocks in KB (default: 32)
 -s SIZE      size of the extended ROM in MB (default: 64)
 -d           dump MIO0 blocks to files in 'mio0files' directory
 -f           fill old MIO0 blocks with 0x01
 -v           verbose progress output

File arguments:
 FILE        input ROM file
 OUT_FILE    output ROM file (default: replaces FILE extension with .ext.z64)

If you have any questions or suggestions, feel free to post them on the github project page. Since it is MIT licensed, I welcome you to include the source or binaries in your projects - just include a copy of the license file.

The additional GUI layer is created by Davideesk, made to be a much nicer alternative to the CMD prompt, though that option is still usable.
Tags: expander sm64
Comments: 3 (jump to comments)
2.0 (1 rating)
No rating
Download 21.67 KiB | 5,972 downloads


Comments (3)

Man the Cute UwU Link
it doesn't work. "Boooooo!"
RealLarryKoopa Link
Works great, thanks.
 Major Flare Link
Tested only within Windows 10, according to the submission parameters.

Ok, I tested all of the tool's functionalities, both GUI and command-line. In all the cases, the resultant ROM was run normally in Project64 v.1.6 and in Toad's Tool. Since I didn't find any bugs when running the tool... I can safely accept this.

One last thing: Added converted .txt files for the license and readme. After all, the tool is also to be executed on Windows, but the text files included were for UNIX users.