ov153 β€” overlay detail

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

containers: /ucc/act/wrap_mdl.ofs, /ucc/act/wrap_mdl_prm.lzs, /ucc/act/wrap_mdl_sub.ofs (+2 more)

ov153 ucc

containers: /ucc/act/wrap_mdl.ofs, /ucc/act/wrap_mdl_prm.lzs, /ucc/act/wrap_mdl_sub.ofs (+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 153
File ID 153
RAM load address 0x021b1ba0
RAM size 13,376 bytes (0x3440)
BSS size 96 bytes
On-disk compressed size 11,132 bytes
Compression flag 0x1 (BLZ-compressed)
Functions 68
External calls 72
Jump tables 6
Data items 382
Code coverage 71% (9,560 of 13,376 bytes)

Reading the binary

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

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

Embedded strings

8 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.

0x021b3454 `适ゔ适頁ゕ送`
0x021b3490 `ι€„γ‚Šι€„ι ƒγ‚‹ι€ƒ`
0x021b362b `ε„žζŒžζ…”γ–`
0x021b386a `ι€‰ι Šι€Œγ‚šι€Œι Šι€‹γ‚šι€‹ι Šγ‚’ι€Š`
0x021b39b6 `ι€ˆι ‰γ‚šι€‰ι ‡`
0x021b3f25 `γ ζ€œζ™¨ζˆΈ`
0x021b41cd `ι™¨ζ¨±θ…γ¨ι¨œ`
0x021b440b `η³Έγ‚½εˆœη›Ά`

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 68 functions
# Address Size Calls Strings Role hint
1 0x021b1df4 246 25 0 high-fan-out (likely dispatcher / setup)
2 0x021b2070 408 18 0 code
3 0x021b2250 28 1 0 trampoline / small helper
4 0x021b226c 80 3 0 code
5 0x021b24c0 504 24 4 refs: /ucc/act/wrap_mdl_prm.lzs \| /ucc/uccbind.lzs \| /ucc/act/wrap_mdl_sub.ofs \| /ucc/act/wrap_mdl_sub.ofs
6 0x021b26f0 606 15 1 refs: /ucc/act/wrap_mdl.ofs
7 0x021b297c 64 2 1 refs: /ucc/uccbindlst.ofs
8 0x021b29c8 60 2 0 code
9 0x021b2a0c 50 2 0 code
10 0x021b2a4c 714 2 0 code
11 0x021b2d94 420 15 0 code
12 0x021b2f58 50 4 0 code
13 0x021b3088 12 0 0 trampoline / small helper
14 0x021b3094 150 7 0 code
15 0x021b3130 8 0 0 trampoline / small helper
16 0x021b3138 82 3 0 code
17 0x021b3198 40 2 0 code
18 0x021b31cc 604 25 0 high-fan-out (likely dispatcher / setup)
19 0x021b3440 132 4 0 code
20 0x021b34c8 26 1 0 trampoline / small helper
21 0x021b350c 64 3 0 code
22 0x021b3554 130 9 0 code
23 0x021b35e8 42 1 0 code
24 0x021b3614 244 3 0 code
25 0x021b3724 6 0 0 trampoline / small helper
26 0x021b3734 170 4 0 code
27 0x021b37e8 102 2 0 code
28 0x021b3854 280 7 0 code
29 0x021b3974 10 0 0 trampoline / small helper
30 0x021b3980 22 0 0 trampoline / small helper
31 0x021b3998 6 0 0 trampoline / small helper
32 0x021b39a0 214 7 0 code
33 0x021b3a80 38 2 0 trampoline / small helper
34 0x021b3ab8 220 8 1 refs: /ucc/act/wrap_mdl.ofs
35 0x021b3ba8 292 9 0 code
36 0x021b3cec 268 4 0 code
37 0x021b3e08 14 0 0 trampoline / small helper
38 0x021b3e1c 164 6 0 code
39 0x021b3ed0 152 5 0 code
40 0x021b3f70 50 1 0 code
41 0x021b3fac 416 14 0 code
42 0x021b417c 144 5 0 code
43 0x021b421c 190 6 0 code
44 0x021b42ec 150 0 0 code
45 0x021b438c 48 2 0 code
46 0x021b43bc 136 7 0 code
47 0x021b4454 100 5 0 code
48 0x021b44d0 88 1 0 code
49 0x021b452c 58 2 0 code
50 0x021b4574 88 1 0 code
51 0x021b45d4 122 0 0 code
52 0x021b4664 68 4 0 code
53 0x021b46a8 204 4 0 code
54 0x021b47b4 118 6 0 code
55 0x021b4830 102 6 0 code
56 0x021b489c 16 0 0 trampoline / small helper
57 0x021b48b0 16 0 0 trampoline / small helper
58 0x021b48c8 64 0 0 code
59 0x021b490c 64 0 0 code
60 0x021b4950 36 0 0 trampoline / small helper
61 0x021b4974 68 0 0 code
62 0x021b49b8 170 0 0 code
63 0x021b4a6c 106 3 0 code
64 0x021b4b24 22 0 0 trampoline / small helper
65 0x021b4b3c 86 3 0 code
66 0x021b4b9c 60 0 0 code
67 0x021b4d68 8 0 0 trampoline / small helper
68 0x021b4d70 40 0 0 code

Open questions & conflicts

Open questions / unknowns

Conflicts with the prior shallow pass

Source