ov077 β€” overlay detail

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

(no containers/strings -- pure code)

ov077 body_no_strings

(no containers/strings -- pure code)

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 77
File ID 77
RAM load address 0x021597a0
RAM size 2,656 bytes (0xa60)
BSS size 0 bytes
On-disk compressed size 2,344 bytes
Compression flag 0x1 (BLZ-compressed)
Functions 18
External calls 27
Jump tables 1
Data items 50
Code coverage 71% (1,894 of 2,656 bytes)

Reading the binary

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

To inspect this overlay outside the running game, decompress overlay/overlay_077.bin with ndspy.codeCompression.decompress() (Python ndspy library) and load the resulting plaintext into Ghidra or IDA at base address 0x021597a0. The raw Ghidra auto-analysis dump used to populate this page lives at notes/overlay_knowledgebase/raw/ov077.json; the per-overlay descriptive markdown is at notes/overlay_knowledgebase/ov077.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

This overlay references no container files β€” it is pure code (or reads only from globals shared with the persistent ARM9 binary).

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 18 functions
# Address Size Calls Strings Role hint
1 0x021598d4 16 0 0 trampoline / small helper
2 0x021598e8 28 3 0 trampoline / small helper
3 0x02159948 110 4 0 code
4 0x021599c8 62 0 0 code
5 0x02159a10 100 1 0 code
6 0x02159a7c 58 4 0 code
7 0x02159ac4 92 2 0 code
8 0x02159b28 228 8 0 code
9 0x02159c14 144 5 0 code
10 0x02159ca4 44 1 0 code
11 0x02159cd0 104 1 0 code
12 0x02159d38 116 5 0 code
13 0x02159db4 338 14 0 code
14 0x02159f10 76 3 0 code
15 0x02159f5c 142 4 0 code
16 0x02159ff4 34 1 0 trampoline / small helper
17 0x0215a018 56 3 0 code
18 0x0215a050 146 4 0 code

Open questions & conflicts

Open questions / unknowns

Conflicts with the prior shallow pass

Source