Per-overlay catalog

DS game only γ¨γ‚“γŒγ‚Šγƒœγ‚¦γ‚·γ¨γŠγ—γ‚ƒγ‚Œγͺまほう぀かい The field guide documents the DS game's internals.

One descriptive page per ARM9 overlay: what it does at runtime, what assets it loads, which Japanese strings live in its binary, and the functions Ghidra found inside it.

Tongari Boushi's code is split into 180 ARM9 overlays β€” small chunks of compiled ARM code that the DS swaps into a shared RAM slot as the player moves between game modes. Each overlay handles one screen, one feature, or one engine subsystem. This catalog is the per-overlay field guide: one page per overlay, describing what it does at runtime, what container files it pulls from disk, which UTF-16 LE strings are baked into its own binary, and the function table Ghidra's auto-analysis pass found inside it.

The overlay system page covers the runtime mechanics (RAM slot map, the controller/body pattern, the persistent rendering engine in ov137). The overlay knowledgebase page is the plain-English "what's an overlay?" explainer. This page is the searchable per-overlay index.

How the catalog reads

What's an overlay made of

Each overlay is a self-contained ARM module with five rough contents:

RAM-slot map at a glance

Overlays sharing a RAM address are mutually exclusive β€” only one is resident at a time. The dispatcher in the persistent ARM9 binary chooses which overlay to load into each slot based on game-mode state.

RAM address# overlaysOverlay IDsRole
0x02155a0066ov000–ov065Game-mode controllers
0x021597a025ov066–ov090Renderer / body slot 1
0x0215c54020ov091–ov110Renderer / body slot 2 (incl. NPC chat menu)
0x021fb3c018ov160–ov177Renderer / body slot 3 (incl. late-game extras)
0x021b1ba011ov145–ov155UCC / dress-up renderers
0x0215e4a010ov111–ov120Renderer / body slot 5
0x021a5ee06ov139–ov144Renderer / body slot 6
0x021601c05ov121–ov125Renderer / body slot 7
0x0216d1205ov132–ov136Audio / system slot
0x0216cba04ov128–ov131System slot
0x0216da402ov137, ov138Rendering engine (2D / 3D map)
0x021b60802ov156, ov157Slot 4 bodies
0x021c34202ov158, ov159Slot 5 bodies
0x021616802ov126, ov127Map / world
0x021fd2c02ov178, ov179Tail bodies

Functional groupings

Inferred from substring-keyword matches on container filenames plus the deep Ghidra pass. Boundaries are approximate.

Per-overlay catalog

Loading overlay knowledgebase…

Source