- How to access our shared Ghidra repository
- Symbol maps for the Download Play child executables
- Additionally, you can find the symbol maps for Nintendogs + cats here.
Both Nintendogs + cats and Mario Kart 7 use the same engine, and because the symbol maps for Nintendogs + cats are for the full game, they reveal some symbols not present in the Mario Kart 7 Download Play symbol maps.
- Additionally, you can find the symbol maps for Nintendogs + cats here.
- Scripts to import symbol maps.
- Ghidra's BSim tutorial. Used for finding code from one binary in another one (useful for porting symbols from one game executable to another one).
- https://github.com/PabloMK7/EveryFileExplorer/tree/master/MarioKart/MK7
- https://github.com/kinnay/NintendoClients/wiki/NEX-Protocols
- https://nintendo-wiki.pretendo.network/docs/ and https://developer.pretendo.network/home (Mario Kart 7 uses NEX 2)
- https://github.com/PabloMK7/ENLBufferPwn
- https://github.com/PabloMK7/kartdlphax
- https://github.com/zoogie/kartminer7
- Useful notes, speadsheets and others. Additionally, check this page out for more notes.
- CTRProtoHV v1.0 by PabloMK7, a homebrew tool that allows launching the E3 2010 prototype on an old 3DS or New 3DS with Luma CFW, as well as in the latest version of the Azahar emulator The README.md file explains how to use it. The source code is in the archives and everything is public domain (Unlicense). Old 3DS build, New 3DS build. A
patches.txtfile with all the fixes and QoL code modifications for the demo is available here. Using this tool also allows attaching a debugger to the prototype, both by using Luma CFW as well as with Azahar. - Vehicle-related notes (by dm248)
- decomp.me preset with decompiled functions
- Custom Mario Kart 7 Wiki (File Format documentation)
- List of various tools for modifying the game's assets (courtesy of Cats4Life from the CTGP-7 server)
- General tutorial for 3DS game modding and reverse engineering
- bindiff. Used for finding differences between similar binaries (useful for comparing different code between game revisions).
- C++ demangler
Mario Kart 7 can be used alongside a debugger in both a real 3DS with Luma CFW (recommended), or an emulator capable of connecting to a debugger client. More info.
Important
If using emulators for debugging, make sure that the CPU JIT option is disabled before starting the game!
- If using IDA: It's best to use IDA Pro version 7.0, as the debugger in this version is less likely to have issues with breakpoints and other elements while debugging. Note that, if using an emulator, there's a chance that you won't be able to write data to memory nor registers using the debugger client.
- If not using IDA: devkitARM's own GDB debugger client should work fine, though we personally recommend using gdb-multiarch via WSL or MSYS64 (if using Windows). If using an emulator to debug, ensure to write the statement
set architecture armv6after opening GDB so that it knows the architecture we're going to debug is ARM specifically.