Code

I spent around 3 months of free time between November 2022 and January 2023 working on a disassembly of The Wing of Madoola. In case anyone's unfamiliar with what that means, the original game was written in assembly language, which has a direct 1:1 relationship to the machine code in the game's ROM file. Because of this, it's possible to go the other way and translate the machine code back to assembly language. However, because all the variable and subroutine names are turned into memory addresses during the assembly process, that information is lost and needs to be recreated. Additionally, the machine code lacks any information about what parts of the ROM are code and what parts are data, so I had to tell the disassembler that information as well. I've given all of the variables, all of the used subroutines, and most of the unused subroutines names. I've also commented a lot of the engine code and some of the object handler code.

After going through this process, I ended up with a copy of the game's source code where I could far more easily insert, remove, and change the game's code compared to patching the ROM file instead. If you're interested in how the game works at a technical level or want to make your own changes, this is the best resource you've got.

A few notes:

Download


Changelog:
12/31/2023: Numerous fixes and added comments
1/21/2023: Removed extraneous IDA comments
1/19/2023: Initial release
Back