ov011 β€” overlay detail

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

containers: 2d/signboard.lzs, designpalset, mydesign/designpalset.ofs (+1 more)

ov011 general_2d_ui

containers: 2d/signboard.lzs, designpalset, mydesign/designpalset.ofs (+1 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 11
File ID 11
RAM load address 0x02155a00
RAM size 13,440 bytes (0x3480)
BSS size 0 bytes
On-disk compressed size 11,144 bytes
Compression flag 0x1 (BLZ-compressed)
Functions 62
External calls 75
Jump tables 6
Data items 282
Code coverage 74% (9,914 of 13,440 bytes)

Reading the binary

The overlay ships on the cart at file ID 11 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 + 11 * 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_011.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/ov011.json; the per-overlay descriptive markdown is at notes/overlay_knowledgebase/ov011.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.

0x02156aaa `む码頀咁`

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 62 functions
# Address Size Calls Strings Role hint
1 0x02155f4c 16 0 0 trampoline / small helper
2 0x02155f5c 928 50 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: signboard.lzs \| signboard.lzs
7 0x02156420 62 7 0 code
8 0x02156464 366 18 3 refs: signboard.lzs \| signboard.lzs \| signboard.lzs
9 0x021565f0 98 9 0 code
10 0x0215665c 170 5 4 refs: signboard.lzs \| signboard.lzs \| signboard.lzs \| signboard.lzs
11 0x02156724 164 3 0 code
12 0x021567d8 198 4 0 code
13 0x021568b0 104 6 0 code
14 0x02156920 232 5 0 code
15 0x02156a10 36 3 0 trampoline / small helper
16 0x02156a3c 128 1 0 code
17 0x02156ac0 58 2 0 code
18 0x02156afc 136 1 0 code
19 0x02156b88 128 4 0 code
20 0x02156c14 22 0 0 trampoline / small helper
21 0x02156c2c 138 4 0 code
22 0x02156cc8 44 1 0 code
23 0x02156cf8 62 0 0 code
24 0x02156d48 130 5 2 refs: designpalset.ofs \| signboard.lzs
25 0x02156ddc 62 3 0 code
26 0x02156e24 276 11 2 refs: designpalset.ofs \| signboard.lzs
27 0x02156f50 68 3 0 code
28 0x02156fa4 144 9 0 code
29 0x0215703c 62 5 0 code
30 0x02157080 222 16 0 code
31 0x0215717c 236 9 3 refs: signboard.lzs \| designpalset.ofs \| signboard.lzs
32 0x02157284 104 9 0 code
33 0x02157300 46 1 0 code
34 0x02157334 1,344 58 0 high-fan-out (likely dispatcher / setup)
35 0x021578a0 610 34 0 high-fan-out (likely dispatcher / setup)
36 0x02157b14 88 0 0 code
37 0x02157b74 360 20 0 code
38 0x02157d18 258 17 0 code
39 0x02157e24 76 3 0 code
40 0x02157e74 60 3 0 code
41 0x02157eb0 68 3 0 code
42 0x02157ef8 28 1 0 trampoline / small helper
43 0x02157f14 86 1 0 code
44 0x02157f84 54 4 0 code
45 0x02157fc0 360 15 0 code
46 0x02158148 36 2 0 trampoline / small helper
47 0x02158174 8 0 0 trampoline / small helper
48 0x0215817c 102 8 0 code
49 0x021581f0 108 6 0 code
50 0x02158264 146 8 0 code
51 0x02158314 84 0 0 code
52 0x0215836c 86 0 0 code
53 0x021583c4 74 0 0 code
54 0x02158410 168 4 0 code
55 0x021584c0 170 2 0 code
56 0x02158570 102 4 0 code
57 0x021585d8 130 4 0 code
58 0x0215865c 76 2 0 code
59 0x021586a8 194 2 0 code
60 0x02158774 210 3 0 code
61 0x02158848 176 2 0 code
62 0x02158900 12 1 0 trampoline / small helper

Open questions & conflicts

Open questions / unknowns

Conflicts with the prior shallow pass

Source