Language…
12 users online: Bourbaki, crocodileman94, Dark Prince, HammerBrother, HyperStormH, JeepySol, mariozuero, ShadowBoxer_Sandshrew, wye, yoshi9429, zAce08xZ, ZMann - Guests: 176 - Bots: 96
Users: 70,516 (2,462 active)
Latest user: Mariolover975

sm64extend

Tools → sm64extend

Submission Details

Name: sm64extend
Authors: Davideesk, queueRAM
Added:
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

Usage:
Just drag-and-drop SM64 ROM on the executable for default settings or run from the command prompt specifying these options:
Code
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: 4 (jump to comments)
Rating:
2.0 (1 rating)
No rating
Download 21.67 KiB | 7,086 downloads

Screenshots

Comments (4)

SANTIQDCOonlyposts Link
why when i extend a rom it extends but crashes in emulator?#smw{¬_¬}
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.