ov096 โ€” overlay detail

DS game only ใจใ‚“ใŒใ‚Šใƒœใ‚ฆใ‚ทใจใŠใ—ใ‚ƒใ‚Œใชใพใปใ†ใคใ‹ใ„ The field guide documents the DS game's internals.

UTF-16 strings: 19 embedded

ov096 game_mode_logic

UTF-16 strings: 19 embedded

Header

Numeric metadata for this overlay as read from the overlay table at ROM offset 0x8DE00 (per-entry stride 32 bytes). Function counts, data-item counts, and the call-graph fan-out are from a Ghidra 11.3.1 headless auto-analysis pass.

Overlay ID 96
File ID 96
RAM load address 0x0215c540
RAM size 1,728 bytes (0x6c0)
BSS size 0 bytes
On-disk compressed size 1,508 bytes
Compression flag 0x1 (BLZ-compressed)
Functions 9
External calls 13
Jump tables 1
Data items 30
Code coverage 54% (936 of 1,728 bytes)

Reading the binary

The overlay ships on the cart at file ID 96 under the BLZ code-LZ compression wrapper (the same backward-LZ scheme Nintendo uses for executable ARM9 code). At load time the engine reads the overlay table entry at ROM offset 0x8DE00 + 96 * 0x20, allocates the destination RAM region at 0x0215c540, decompresses the body in-place (if compressed), and resolves any external relocations.

To inspect this overlay outside the running game, decompress overlay/overlay_096.bin with ndspy.codeCompression.decompress() (Python ndspy library) and load the resulting plaintext into Ghidra or IDA at base address 0x0215c540. The raw Ghidra auto-analysis dump used to populate this page lives at notes/overlay_knowledgebase/raw/ov096.json; the per-overlay descriptive markdown is at notes/overlay_knowledgebase/ov096.md.

Embedded strings

19 UTF-16 LE strings live inside this overlay's compiled binary. These addresses are absolute (inside the overlay's RAM image after load). The text is stored as little-endian UTF-16 code units, NUL-terminated.

0x0215ca88 `ใ‚ชใ‚นใ‚นใƒก`
0x0215ca94 `ใชใ‚“ใงใ‚‚`
0x0215caa0 `ใŠใฟใ›ใฎใ“ใจ`
0x0215cab0 `ใฏใชใ—ใ‚’ใใ`
0x0215cac0 `ใชใ‹ใ‚ˆใใ™ใ‚‹`
0x0215cad0 `ใชใ‚“ใงใ‚‚ใชใ„`
0x0215cae0 `ใŠใ—ใ‚ƒใ‚Œใฎใ“ใจ`
0x0215caf0 `ใƒ•ใ‚งใ‚ขใซใคใ„ใฆ`
0x0215cb00 `ใ‚ใใณใซใ„ใ“ใ†`
0x0215cb10 `ใตใ—ใŽใซใคใ„ใฆ`
0x0215cb20 `ใ‚ฆใƒฏใ‚ตใซใคใ„ใฆ`
0x0215cb30 `ใ„ใ„ใƒขใƒŽใ‚ใ’ใ‚‹`
0x0215cb40 `ใƒ™ใƒชใƒผใ‚บใซใคใ„ใฆ`
0x0215cb54 `ใ‚ˆใ†ใ˜ใฏใชใใซ๏ผŸ`
0x0215cb68 `ใŒใฃใ“ใ†ใซใ„ใ“ใ†`
0x0215cb7c `ใ‚Šใ‚…ใ†ใ“ใ†ใซใคใ„ใฆ`
0x0215cb90 `ใฒใ‚‡ใ†ใฐใ‚“ใซใคใ„ใฆ`
0x0215cba4 `ใ‚ทใƒงใƒƒใƒ”ใƒณใ‚ฐใซใ„ใ“ใ†`
0x0215cbbc `ใƒ•ใ‚กใƒƒใ‚ทใƒงใƒณใƒใ‚งใƒƒใ‚ฏ`

Container references

This overlay references no container files โ€” it is pure code (or reads only from globals shared with the persistent ARM9 binary).

Function list

Functions Ghidra auto-identified inside this overlay's RAM range. Names prefixed FUN_ are auto-generated from the function's entry address; size is in bytes; the "calls" column counts both intra-overlay branches and external ARM9 call targets. The "strings" column counts how many UTF-16 LE strings each function references.

Show all 9 functions
# Address Size Calls Strings Role hint
1 0x0215c540 58 3 0 code
2 0x0215c5cc 202 7 0 code
3 0x0215c6b0 326 6 0 code
4 0x0215c804 56 0 0 code
5 0x0215c844 56 0 0 code
6 0x0215c884 14 0 0 trampoline / small helper
7 0x0215c894 202 9 0 code
8 0x0215c968 10 0 0 trampoline / small helper
9 0x0215c978 12 1 0 trampoline / small helper

Open questions & conflicts

Open questions / unknowns

Conflicts with the prior shallow pass

Source