ov060 β€” overlay detail

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

containers: 2d/itemstackwnd.lzs, 2d/warehouse.lzs, warehouse

ov060 general_2d_ui

containers: 2d/itemstackwnd.lzs, 2d/warehouse.lzs, warehouse

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 60
File ID 60
RAM load address 0x02155a00
RAM size 15,584 bytes (0x3ce0)
BSS size 0 bytes
On-disk compressed size 12,928 bytes
Compression flag 0x1 (BLZ-compressed)
Functions 57
External calls 84
Jump tables 5
Data items 235
Code coverage 85% (13,272 of 15,584 bytes)

Reading the binary

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

Embedded strings

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

0x0215645f `θ’ζ€ γƒεˆ˜`
0x0215673e `ι€‚γ‚Ÿι€‚ι ƒ`
0x02157446 `ι€„γ‚Ÿι€„ι †`
0x021577d2 `γƒΏεˆ©ι ‚ε΄©γ‚ ι€‚`
0x0215831c `唨頂ょ适`
0x02158cd0 `ι€ˆι ’ι„γƒ‘`
0x02158d0a `εΆι€Žι ‹ε”ι ’γƒ‘`
0x02158dce `ご瀁預崀`
0x0215940c `γƒ°ι£Ώζ’θƒˆζ£‡θƒ`

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 57 functions
# Address Size Calls Strings Role hint
1 0x02155a6c 164 9 0 code
2 0x02155e18 16 0 0 trampoline / small helper
3 0x02155e28 1,316 58 0 high-fan-out (likely dispatcher / setup)
4 0x02156380 536 22 6 refs: warehouse.lzs \| warehouse.lzs \| warehouse.lzs \| warehouse.lzs \| warehouse.lzs \| warehouse.lzs
5 0x021565d4 64 5 0 code
6 0x02156618 192 2 0 code
7 0x021566f0 58 1 0 code
8 0x0215672c 244 4 0 code
9 0x02156820 286 11 0 code
10 0x02156950 16 0 0 trampoline / small helper
11 0x02156964 12 1 0 trampoline / small helper
12 0x02156974 12 0 0 trampoline / small helper
13 0x02156984 12 1 0 trampoline / small helper
14 0x02156994 210 8 0 code
15 0x02156a74 28 2 0 trampoline / small helper
16 0x02156a90 44 1 0 code
17 0x02156ac0 234 9 0 code
18 0x02156bb0 184 12 0 code
19 0x02156c78 140 13 0 code
20 0x02156d04 314 10 0 code
21 0x02156e50 100 2 0 code
22 0x02156ebc 566 12 0 code
23 0x02157108 114 7 0 code
24 0x02157180 62 1 0 code
25 0x021571cc 870 23 0 high-fan-out (likely dispatcher / setup)
26 0x02157544 358 21 0 high-fan-out (likely dispatcher / setup)
27 0x021576c4 362 12 0 code
28 0x0215783c 298 12 0 code
29 0x0215796c 500 16 0 code
30 0x02157b74 384 21 0 high-fan-out (likely dispatcher / setup)
31 0x02157d08 48 3 0 code
32 0x02157d40 294 10 0 code
33 0x02157e78 30 1 0 trampoline / small helper
34 0x02157e9c 252 15 0 code
35 0x02157fa4 66 5 0 code
36 0x02157ff0 264 16 0 code
37 0x02158108 192 6 0 code
38 0x021581d4 94 5 0 code
39 0x02158238 242 10 0 code
40 0x02158340 234 9 0 code
41 0x02158444 150 9 0 code
42 0x021584e4 598 30 0 high-fan-out (likely dispatcher / setup)
43 0x02158750 68 5 0 code
44 0x0215879c 224 8 0 code
45 0x02158890 126 6 0 code
46 0x02158910 132 4 0 code
47 0x02158998 156 4 0 code
48 0x02158a38 374 12 0 code
49 0x02158bc0 576 17 0 code
50 0x02158e04 90 3 0 code
51 0x02158e60 104 4 0 code
52 0x02158ed0 48 3 0 code
53 0x02158f04 20 2 0 trampoline / small helper
54 0x02158f18 1,084 29 0 high-fan-out (likely dispatcher / setup)
55 0x0215938c 28 1 0 trampoline / small helper
56 0x021593b0 70 2 0 code
57 0x02159400 12 1 0 trampoline / small helper

Open questions & conflicts

Open questions / unknowns

Conflicts with the prior shallow pass

Source