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.

Requirements and limitations

  • 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; this collection did not repeat them. 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 and mentions no AI or REA use; the LLM-assisted matching work is recorded separately in the Snowboard Kids 2 case. 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

Type
Learning resource
Category
Learning resources
Relationship
Learning resource
Targets
Game

Sources reviewed

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Primary sources

  1. https://blog.chrislewis.au/finding-jingle-town-debugging-an-n64-game-without-symbols/
  2. README.md GitHub · cdlewis/snowboardkids2-decomp · Revision 7600c79
  3. symbol_addrs.txt GitHub · cdlewis/snowboardkids2-decomp · Revision 7600c79