ov002 β€” overlay detail

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

containers: bbs

ov002 input_text_2d_ui

containers: bbs

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 2
File ID 2
RAM load address 0x02155a00
RAM size 5,184 bytes (0x1440)
BSS size 0 bytes
On-disk compressed size 4,388 bytes
Compression flag 0x1 (BLZ-compressed)
Functions 28
External calls 60
Jump tables 1
Data items 97
Code coverage 70% (3,606 of 5,184 bytes)

Reading the binary

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

Embedded strings

No UTF-16 LE strings are embedded directly in this overlay's binary. Any text it displays at runtime comes from a container file loaded via the content cache.

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.

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 28 functions
# Address Size Calls Strings Role hint
1 0x02155a54 58 7 0 code
2 0x02155efc 42 5 0 code
3 0x02155f28 1,052 54 0 high-fan-out (likely dispatcher / setup)
4 0x0215635c 44 4 0 code
5 0x02156390 50 4 0 code
6 0x021563cc 30 2 0 trampoline / small helper
7 0x021563f0 28 2 0 trampoline / small helper
8 0x02156414 64 0 0 code
9 0x02156458 100 4 0 code
10 0x021564bc 56 1 0 code
11 0x021564f8 22 1 0 trampoline / small helper
12 0x02156514 102 7 0 code
13 0x02156584 46 5 0 code
14 0x021565b8 10 0 0 trampoline / small helper
15 0x021565cc 10 0 0 trampoline / small helper
16 0x021565e0 26 2 0 trampoline / small helper
17 0x02156600 230 10 0 code
18 0x021566f4 242 18 0 code
19 0x021567f8 154 8 0 code
20 0x021568a4 64 5 0 code
21 0x021568e4 84 8 0 code
22 0x02156940 164 9 0 code
23 0x021569f4 74 6 0 code
24 0x02156a40 252 19 0 code
25 0x02156b44 308 10 0 code
26 0x02156c80 200 7 0 code
27 0x02156d50 82 6 0 code
28 0x02156dac 12 1 0 trampoline / small helper

Open questions & conflicts

Open questions / unknowns

Conflicts with the prior shallow pass

Source