Learning resource
Finding Jingle Town: Debugging an N64 Game without Symbols
A walkthrough from the Snowboard Kids 2 decompilation project on attaching gdb-multiarch to the Ares emulator while the matching build still cannot carry debug information. It breaks on a function by its ELF symbol name and reads one structure byte by hand to test whether that byte selects the level overlay. A short method note on checking decompilation hypotheses at runtime, not a reconstruction result.
- Targets
- Game
- Category
- Learning resources
- Relationship
- Learning resource
- Sources reviewed
Requirements & limits
- The post, dated 23 December 2025, asks one question: how Snowboard Kids 2 picks the level overlay on level entry. It breaks on a function that indexes 16 overlays and reads the candidate byte for Sunny Mountain, Turtle Island and Jingle Town (0, 1 and 2). Other levels and the code that sets the index are not traced.
- Following it needs a Snowboard Kids 2 N64 ROM, original or rebuilt by the decompilation (the post treats them as byte-identical), and the decompilation's build/snowboardkids2.elf for function names. The post does not cover obtaining or building either.
- Tools are gdb-multiarch set to mips:4000 and Ares with debugging enabled, connected through Ares's GDB remote support; an SSH reverse tunnel is optional when GDB runs on another host, as on the author's x86 Ubuntu server. The post explains that adding -g would shift sections in the absolute-address build and usually stop it booting, so structure fields are read by manual pointer arithmetic.
- Results are the author's observations from one debugging session. The post calls the workflow painfully manual and reports gdbgui did not work with the setup. Its generated names have since changed: at reviewed commit 7600c79, symbol_addrs.txt names 0x8003D560 initRace and 0x800AFE8C gGameSessionContext, and the footnoted src/3E160.c is no longer in the tree.
- The post describes manual debugging. The decompilation repository has no license file at the reviewed commit, and the game ROM and its content keep their own rights.
About this entry
The description was reviewed against primary sources.
Primary sources
- https://blog.chrislewis.au/finding-jingle-town-debugging-an-n64-game-without-symbols/
- README.md GitHub · cdlewis/snowboardkids2-decomp · Revision 7600c79
- symbol_addrs.txt GitHub · cdlewis/snowboardkids2-decomp · Revision 7600c79
More in References and learning
- JPCERT/CC: APK analysis and API probing on attack servers · Learning resource
- Reverse Engineering (mytechnotalent) · Learning resource
- Z0FCourse Reverse Engineering · Learning resource
- OWASP Mobile Application Security Testing Guide (MASTG) · Learning resource
- The Decompilation Wiki · Learning resource
- Frontkick vs Rikugan: a CREBench agent comparison · Learning resource