ov170 — overlay detail

DS game only ăšă‚“ăŒă‚Šăƒœă‚Šă‚·ăšăŠă—ă‚ƒă‚ŒăȘăŸă»ă†ă€ă‹ă„ The field guide documents the DS game's internals.

UTF-16 strings: 5 embedded

ov170 tail_data_overlay

UTF-16 strings: 5 embedded

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 170
File ID 170
RAM load address 0x021fb3c0
RAM size 7,520 bytes (0x1d60)
BSS size 0 bytes
On-disk compressed size 6,340 bytes
Compression flag 0x1 (BLZ-compressed)
Functions 19
External calls 65
Jump tables 1
Data items 83
Code coverage 75% (5,660 of 7,520 bytes)

Reading the binary

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

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

Embedded strings

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

0x021fb46b `ć„źăƒç€œć“·`
0x021fb49d `ăƒ¶ăƒ»ç”œé··`
0x021fc16e `ゐ掩栚灁`
0x021fcdaf `æ˜œăƒ¶ăƒžé‹¶`
0x021fd110 `みに぀ける`

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 19 functions
# Address Size Calls Strings Role hint
1 0x021fb3c0 342 14 0 code
2 0x021fb524 368 11 0 code
3 0x021fb6b0 6 0 0 trampoline / small helper
4 0x021fb6b8 640 31 0 high-fan-out (likely dispatcher / setup)
5 0x021fb76e 398 23 0 high-fan-out (likely dispatcher / setup)
6 0x021fc054 8 0 0 trampoline / small helper
7 0x021fc05c 4 0 0 trampoline / small helper
8 0x021fc0e8 6 0 0 trampoline / small helper
9 0x021fc0f8 1,152 49 0 high-fan-out (likely dispatcher / setup)
10 0x021fc5b0 20 0 0 trampoline / small helper
11 0x021fc5c4 144 5 0 code
12 0x021fc660 474 13 0 code
13 0x021fc848 470 12 0 code
14 0x021fca34 380 10 0 code
15 0x021fcbc8 166 3 0 code
16 0x021fcc74 184 7 0 code
17 0x021fcd30 454 23 0 high-fan-out (likely dispatcher / setup)
18 0x021fcf04 200 9 0 code
19 0x021fcfd4 244 8 0 code

Open questions & conflicts

Open questions / unknowns

Conflicts with the prior shallow pass

Source