ov009 β€” overlay detail

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

containers: 2d/designlogo.lzs, Fas00_board00, designlogo (+2 more)

ov009 logo_2d_ui

containers: 2d/designlogo.lzs, Fas00_board00, designlogo (+2 more)

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 9
File ID 9
RAM load address 0x02155a00
RAM size 13,728 bytes (0x35a0)
BSS size 0 bytes
On-disk compressed size 11,340 bytes
Compression flag 0x1 (BLZ-compressed)
Functions 67
External calls 72
Jump tables 6
Data items 303
Code coverage 74% (10,112 of 13,728 bytes)

Reading the binary

The overlay ships on the cart at file ID 9 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 + 9 * 0x20, allocates the destination RAM region at 0x02155a00, decompresses the body in-place (if compressed), and resolves any external relocations.

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

Embedded strings

1 UTF-16 LE string 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.

0x02156a86 `む码頀咁`

Container references

Distinct container basenames referenced by this overlay. Each is loaded via the content cache by passing the basename string to a lookup that resolves it to a file ID in the ROM's FAT. The path column shows the file's location in the clean extract, where resolved.

Unresolved

These container basenames appeared in the overlay's string table but no file of that name was found in the clean extract. Most are false-positive ASCII matches (function names, register maps, fragments of other strings); a few may be containers that the overlay names but never actually opens. Listed for completeness.

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 67 functions
# Address Size Calls Strings Role hint
1 0x02155f58 16 0 0 trampoline / small helper
2 0x02155f68 920 49 0 high-fan-out (likely dispatcher / setup)
3 0x02156340 16 0 0 trampoline / small helper
4 0x02156354 12 0 0 trampoline / small helper
5 0x02156364 12 1 0 trampoline / small helper
6 0x02156374 160 11 2 refs: designlogo.lzs \| designlogo.lzs
7 0x02156420 62 7 0 code
8 0x02156464 366 18 3 refs: designlogo.lzs \| designlogo.lzs \| designlogo.lzs
9 0x021565f0 98 9 0 code
10 0x0215665c 170 5 4 refs: designlogo.lzs \| designlogo.lzs \| designlogo.lzs \| designlogo.lzs
11 0x02156724 126 2 0 code
12 0x021567b8 198 4 0 code
13 0x02156890 106 6 0 code
14 0x02156904 228 5 0 code
15 0x021569f8 28 3 0 trampoline / small helper
16 0x02156a18 128 1 0 code
17 0x02156a9c 52 2 0 code
18 0x02156ad8 136 1 0 code
19 0x02156b68 128 4 0 code
20 0x02156bf8 22 0 0 trampoline / small helper
21 0x02156c10 134 4 0 code
22 0x02156cb4 44 1 0 code
23 0x02156ce4 62 0 0 code
24 0x02156d34 130 5 2 refs: designpalset.ofs \| designlogo.lzs
25 0x02156dc8 62 3 0 code
26 0x02156e10 274 11 2 refs: designpalset.ofs \| designlogo.lzs
27 0x02156f3c 66 3 0 code
28 0x02156f88 146 9 0 code
29 0x02157020 62 5 0 code
30 0x02157064 222 16 0 code
31 0x02157160 234 9 3 refs: designlogo.lzs \| designpalset.ofs \| designlogo.lzs
32 0x02157268 96 9 0 code
33 0x021572d8 46 1 0 code
34 0x0215730c 1,344 58 0 high-fan-out (likely dispatcher / setup)
35 0x02157878 608 34 0 high-fan-out (likely dispatcher / setup)
36 0x02157aec 88 0 0 code
37 0x02157b4c 358 20 0 code
38 0x02157cf4 258 17 0 code
39 0x02157e00 74 3 0 code
40 0x02157e54 58 3 0 code
41 0x02157e94 68 3 0 code
42 0x02157edc 28 1 0 trampoline / small helper
43 0x02157ef8 86 1 0 code
44 0x02157f68 54 4 0 code
45 0x02157fa4 360 15 0 code
46 0x0215812c 78 3 0 code
47 0x02158188 74 4 0 code
48 0x021581dc 80 4 0 code
49 0x0215823c 176 5 0 code
50 0x021582f4 50 4 0 code
51 0x02158334 72 4 0 code
52 0x02158384 18 0 0 trampoline / small helper
53 0x0215839c 54 2 0 code
54 0x021583e0 26 0 0 trampoline / small helper
55 0x021583fc 114 5 1 refs: Fas00_board00
56 0x02158484 86 0 0 code
57 0x021584dc 74 0 0 code
58 0x02158528 168 4 0 code
59 0x021585d8 170 2 0 code
60 0x02158688 102 4 0 code
61 0x021586f0 130 4 0 code
62 0x02158774 76 2 0 code
63 0x021587c0 194 2 0 code
64 0x0215888c 210 3 0 code
65 0x02158960 176 2 0 code
66 0x02158a14 16 1 0 trampoline / small helper
67 0x02158a28 22 2 0 trampoline / small helper

Open questions & conflicts

Open questions / unknowns

Conflicts with the prior shallow pass

Source