A work-in-progress decompilation project of Mario Kart DS
While the obvious long-term goal of this project is to 100% document and understand MKDS, there are interesting short-term goals that motivate work on reversing this game: ASM hacking, better understanding of yet not fully documented DS formats, additional tools thanks to this effort (like the save editor featured here)...
Progress can be tracked in some way by the generated types header, symbols header and symbols, since all unknown types and functions are slowly being named and documented as they are better understood, and since I cannot just push my IDA database :P
An export script is used to export current documented functions/enums/structs/global objects to the header and symbols mentioned above. These are conveniently generated so they can be directly used for ASM hacking as a short-term usage for this reversing until the game is done ;)
Reversing save-data format and encryption/decryption allowed to create an almost fully-featured online Mario Kart DS savedata editor:
As function logic gets fully documented, libntr serves as a (long-term) work-in-progress reimplementation of Nintendo's SDK code/libs, while mkds contains actual MKDS-specific code... as long as I'm able to tell them apart ;)
(These libraries are not really useful right now, and they might not even compile correctly as some stuff is only half-implemented)
Note that this is low priority, since different parts of the code can be really dependant on each other, as not much can reliably be done until several parts are (close to) fully understood
-
GBATEK for its great (although sometimes limited/outdated) DS docs
-
mkds-asm containing some basic reference MKDS RE work
-
Existing MKDS decomp headers for being a great reference for so many internal structs and types
-
Super Mario Wiki for allowing me to understand some basic gameplay aspects without having to spend hours playing or watching gameplay footage :P
-
Pokémon Diamond decompilation as a helpful reference for already (partially) understood DS SDK code
-
'Hacking Nintendo DS' EnHacklopedia page as the only (and great) specifications I found regarding DS cheat codes
-
NCPatcher as a great tool for simplifying the process of making DS ASM hacks