ov021 β€” overlay detail

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

containers: inputmail

ov021 input_text_2d_ui

containers: inputmail

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 21
File ID 21
RAM load address 0x02155a00
RAM size 2,528 bytes (0x9e0)
BSS size 0 bytes
On-disk compressed size 2,244 bytes
Compression flag 0x1 (BLZ-compressed)
Functions 15
External calls 31
Jump tables 2
Data items 64
Code coverage 38% (968 of 2,528 bytes)

Reading the binary

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

0x021563b4 `FROM `

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 15 functions
# Address Size Calls Strings Role hint
1 0x02155a74 32 3 0 trampoline / small helper
2 0x02155f2c 6 0 0 trampoline / small helper
3 0x02155f34 30 3 0 trampoline / small helper
4 0x02155f54 24 1 0 trampoline / small helper
5 0x02155f6c 176 7 0 code
6 0x02156028 64 4 0 code
7 0x02156070 18 2 0 trampoline / small helper
8 0x02156088 10 0 0 trampoline / small helper
9 0x0215609c 10 0 0 trampoline / small helper
10 0x021560b0 216 10 1 refs: FROM
11 0x02156198 68 4 1 refs: inputmail
12 0x021561e0 32 3 0 trampoline / small helper
13 0x02156200 10 0 0 trampoline / small helper
14 0x0215620c 260 9 0 code
15 0x02156338 12 1 0 trampoline / small helper

Open questions & conflicts

Open questions / unknowns

Conflicts with the prior shallow pass

Source