ov154 ucc
containers: /ucc/brush/brush.lzs, /ucc/brush/brush_2d.ofs, /ucc/brush/brush_mdl.ofs
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.
Reading the binary
The overlay ships on the cart at file ID 154 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 + 154 * 0x20, allocates the destination
RAM region at 0x021b1ba0, decompresses
the body in-place (if compressed), and resolves any external
relocations.
To inspect this overlay outside the running game, decompress
overlay/overlay_154.bin with
ndspy.codeCompression.decompress() (Python ndspy library)
and load the resulting plaintext into Ghidra or
IDA at base address 0x021b1ba0. The
raw Ghidra auto-analysis dump used to populate this page lives at
notes/overlay_knowledgebase/raw/ov154.json;
the per-overlay descriptive markdown is at
notes/overlay_knowledgebase/ov154.md.
Embedded strings
2 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.
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.
-
/ucc/brush/brush.lzsβ no matching container found in clean extract -
/ucc/brush/brush_2d.ofsβ no matching container found in clean extract -
/ucc/brush/brush_mdl.ofsβ no matching container found in clean extract
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 56 functions
| # | Address | Size | Calls | Strings | Role hint |
|---|---|---|---|---|---|
| 1 | 0x021b1ba0 | 24 | 1 | 0 | trampoline / small helper |
| 2 | 0x021b1bbc | 24 | 2 | 0 | trampoline / small helper |
| 3 | 0x021b1bd8 | 30 | 3 | 0 | trampoline / small helper |
| 4 | 0x021b1bfc | 100 | 3 | 0 | code |
| 5 | 0x021b1c70 | 100 | 6 | 0 | code |
| 6 | 0x021b1cd8 | 60 | 1 | 0 | code |
| 7 | 0x021b1d1c | 220 | 12 | 0 | code |
| 8 | 0x021b205c | 22 | 0 | 0 | trampoline / small helper |
| 9 | 0x021b2074 | 8 | 0 | 0 | trampoline / small helper |
| 10 | 0x021b207c | 16 | 0 | 0 | trampoline / small helper |
| 11 | 0x021b208c | 20 | 1 | 0 | trampoline / small helper |
| 12 | 0x021b2180 | 8 | 0 | 0 | trampoline / small helper |
| 13 | 0x021b2188 | 18 | 1 | 0 | trampoline / small helper |
| 14 | 0x021b21a4 | 314 | 2 | 0 | code |
| 15 | 0x021b2308 | 56 | 3 | 0 | code |
| 16 | 0x021b234c | 3,750 | 65 | 3 | refs: /ucc/brush/brush.lzs \| /ucc/brush/brush_mdl.ofs \| /ucc/brush/brush_mdl.ofs |
| 17 | 0x021b32d4 | 610 | 20 | 0 | code |
| 18 | 0x021b3536 | 42 | 2 | 0 | code |
| 19 | 0x021b3560 | 6 | 0 | 0 | trampoline / small helper |
| 20 | 0x021b3584 | 12 | 1 | 0 | trampoline / small helper |
| 21 | 0x021b3590 | 40 | 1 | 1 | refs: /ucc/brush/brush_2d.ofs |
| 22 | 0x021b35c4 | 212 | 7 | 0 | code |
| 23 | 0x021b36a0 | 12 | 0 | 0 | trampoline / small helper |
| 24 | 0x021b36ac | 88 | 4 | 0 | code |
| 25 | 0x021b3708 | 42 | 1 | 0 | code |
| 26 | 0x021b3734 | 104 | 0 | 0 | code |
| 27 | 0x021b37a4 | 196 | 1 | 0 | code |
| 28 | 0x021b3870 | 160 | 11 | 0 | code |
| 29 | 0x021b3924 | 316 | 19 | 0 | code |
| 30 | 0x021b3a7c | 28 | 1 | 0 | trampoline / small helper |
| 31 | 0x021b3a98 | 174 | 6 | 0 | code |
| 32 | 0x021b3b50 | 1,044 | 27 | 0 | high-fan-out (likely dispatcher / setup) |
| 33 | 0x021b3fa4 | 10 | 0 | 0 | trampoline / small helper |
| 34 | 0x021b3fb4 | 16 | 0 | 0 | trampoline / small helper |
| 35 | 0x021b3fd4 | 8 | 0 | 0 | trampoline / small helper |
| 36 | 0x021b3fe0 | 210 | 8 | 0 | code |
| 37 | 0x021b40b8 | 88 | 4 | 0 | code |
| 38 | 0x021b4118 | 78 | 3 | 0 | code |
| 39 | 0x021b4178 | 14 | 1 | 0 | trampoline / small helper |
| 40 | 0x021b4188 | 500 | 25 | 0 | high-fan-out (likely dispatcher / setup) |
| 41 | 0x021b4384 | 44 | 0 | 0 | code |
| 42 | 0x021b43b0 | 44 | 2 | 0 | code |
| 43 | 0x021b43e0 | 80 | 1 | 0 | code |
| 44 | 0x021b4434 | 30 | 1 | 0 | trampoline / small helper |
| 45 | 0x021b4454 | 88 | 4 | 0 | code |
| 46 | 0x021b44b8 | 16 | 0 | 0 | trampoline / small helper |
| 47 | 0x021b44c8 | 122 | 0 | 0 | code |
| 48 | 0x021b4548 | 132 | 0 | 0 | code |
| 49 | 0x021b45d0 | 32 | 0 | 0 | trampoline / small helper |
| 50 | 0x021b45f0 | 58 | 0 | 0 | code |
| 51 | 0x021b4630 | 18 | 0 | 0 | trampoline / small helper |
| 52 | 0x021b465c | 268 | 8 | 0 | code |
| 53 | 0x021b4778 | 6 | 0 | 0 | trampoline / small helper |
| 54 | 0x021b4780 | 6 | 0 | 0 | trampoline / small helper |
| 55 | 0x021b4788 | 22 | 0 | 0 | trampoline / small helper |
| 56 | 0x021b47bc | 12 | 1 | 0 | trampoline / small helper |
Open questions & conflicts
Open questions / unknowns
- Auto-analysis identified 56 functions covering 9758 of 11616 overlay bytes.
- Function names are auto-generated `FUN_<addr>`. Manual renaming based on call-graph + string-ref analysis is a follow-up.
- BSS size is 0 bytes; Ghidra-imported overlay does not include BSS so any references into the BSS range appear as unresolved.
Conflicts with the prior shallow pass
- No major conflicts detected with prior-pass `overlay_role_final.json` record.
Source
- Per-overlay markdown:
notes/overlay_knowledgebase/ov154.md - Raw Ghidra dump:
notes/overlay_knowledgebase/raw/ov154.json - Overlay-system explainer: overlays system
- Plain-English overlay primer: overlay knowledgebase