SakeTami
vitorvilela
vitorvilela

patreon


Super Metroid Disassembly is 100% complete

Finally after a long time investing hours disassembling each block, sorting out what's code and what's data and figuring out the processor modes I'm happy to announce that the Super Metroid is now fully disassembled and ready to be processed.

This took much more time than I thought. The disassembly process started in 2019 (July 16) after receiving some gameplay trace logs. Due of the game complexity and size, specially with the 3 MB of contents, I knew it would take long so since then I slowly started disassembly the unknown bits in background while working on the other SA-1 projects. When I got in July 2021, I had around 78% of the game disassembled. I thought it was the ideal time to announce the work in progress status of Super Metroid, but I knew that it would still take a long time to finish the remaining 22%. But I'm happy with the result, disassembling a 3 MB game is just like disassembling Gradius III or Contra III six times.

Next Steps

With the process done, I can now use DIztinGUIsh to generate a clean disassembly file which can be analyzed with SA-1 memory tools, in particular "TLR" - The Last Remapper. TLR is the tool responsible for generating the remap files necessary to move the game memory logic to the SA-1 side.

To TLR work, the disassembly and the gameplay samples are analyzed and given that information the system figures out what opcodes needs to be changed to work as expected with the SA-1 chip. Not everything can be done with a tool and TLR often misses around 10-20% of the game code, which requires me manually reviewing the remap result. Not a problem, this is the exact work I'm been doing on the other SA-1 games too.

I have hopes of continuously improving the processes until the tool eventually figures out everything itself, so I can focus on work that requires more analysis and logic, such as figuring out the SA-1 registers replacement, which spots of the game needs a performance improvement and more.

The disassembly ended up with 499,781 lines of data/code in a 42 megabytes disassembly file. Roughly 30% of the file is made of opcodes (considering SNES only - game logic, hardware I/O) and 70% is made of data (structures, music, graphics, pointers, level data, etc.). I must admit that Notepad++ takes a long time to load the file due of the custom syntax highlighting. It's really big!

Thank you everyone for the support! I know a lot of people are looking forward to this project and I'm optimistic that a SA-1 Pack for Super Metroid is 100% viable, it's now only a matter of time and effort.

Super Metroid Disassembly is 100% complete

Comments

Congratulations! Well done on this ambitions project. I'm super excited to see how it progresses.

Ryan

Looks like we're at the home stretch now! I honestly can't wait!

Andeh X

Super excited for you to have hit this benchmark, it’s been a long time coming

Marcel Turenne

Congratulations! I'm really looking forward to the end result of the initial SA-1 pack. As ever, I'm keen to provide testing and feedback for the initial version.

RupeeClock


More Creators