# Retail Source Layout Block: `0x8009B36C-0x80103648`

Generated by `python tools/orig/source_layout.py --materialize-all`.

## Summary
- block span: `0x8009B36C-0x80103648` size=`0x682DC`
- entries: `12`
- anchor rows: `3`
- gap-window rows: `9`
- placeholder rows: `0`
- layout score: `1701476`
- coverage: overlaps=`3` bytes=`0x6A8C`
- ordered paths: `dll/expgfx.c` -> `dll/modgfx.c` -> `dll/modelfx.c` -> `dll/dim_partfx.c` -> `dll/df_partfx.c` -> `dll/objfsa.c` -> `dll/curves.c` -> `dll/gameplay.c` -> `dll/pickup.c` -> `dll/modanimeflash1.c` -> `dll/modcloudrunner2.c` -> `dll/CAM/camcontrol.c`

## Ordered Layout
- `dll/expgfx.c` `0x8009B36C-0x8009FF68` size=`0x4BFC` kind=`anchor` confidence=`medium` from=`current-seed` action=`corridor-packet`
  why: Retail seed is best treated as one packet inside a debug-side source corridor containing `objlib.c`, `objprint.c`, `objprint_dolphin.c`, `pi_dolphin.c`, `rcp_dolphin.c`.
- `dll/modgfx.c` `0x8009FF68-0x800C2BA8` size=`0x22C40` kind=`gap-window` confidence=`medium` from=`resolved-gap-hints` debug=`0x56F8` delta=`-0x68` packet=`expgfx.c` -> `curves.c`
  why: Resolved gap names give a usable local skeleton, but the interval is only partially constrained.
- `dll/modelfx.c` `0x800C2BA8-0x800C8284` size=`0x56DC` kind=`gap-window` confidence=`medium` from=`resolved-gap-hints` debug=`0xD74` delta=`+0xc0` packet=`expgfx.c` -> `curves.c`
  why: Resolved gap names give a usable local skeleton, but the interval is only partially constrained.
- `dll/dim_partfx.c` `0x800C8284-0x800D6778` size=`0xE4F4` kind=`gap-window` confidence=`medium` from=`resolved-gap-hints` debug=`0x23D0` delta=`-0x45` packet=`expgfx.c` -> `curves.c`
  why: Resolved gap names give a usable local skeleton, but the interval is only partially constrained.
- `dll/df_partfx.c` `0x800D6778-0x800D8FE0` size=`0x2868` kind=`gap-window` confidence=`medium` from=`resolved-gap-hints` debug=`0x654` delta=`-0x19` packet=`expgfx.c` -> `curves.c`
  why: Resolved gap names give a usable local skeleton, but the interval is only partially constrained.
- `dll/objfsa.c` `0x800D8FE0-0x800E556C` size=`0xC58C` kind=`gap-window` confidence=`medium` from=`resolved-gap-hints` debug=`0x1EDC` delta=`+0x7` packet=`expgfx.c` -> `curves.c`
  why: Resolved gap names give a usable local skeleton, but the interval is only partially constrained.
- `dll/curves.c` `0x800E1DA8-0x800E8118` size=`0x6370` kind=`anchor` confidence=`high` from=`suggested-window` action=`expand-window` debug=`0x634C` delta=`+0x24` xrefs=`1/1`
  why: Seed is smaller than the debug split size; expand toward `0x800E1DA8-0x800E8118` first.
- `dll/gameplay.c` `0x800E56A4-0x800FD9E0` size=`0x1833C` kind=`gap-window` confidence=`medium` from=`resolved-gap-hints` debug=`0x17F0` delta=`-0x2a` packet=`curves.c` -> `camcontrol.c`
  why: Resolved gap names give a usable local skeleton, but the interval is only partially constrained.
- `dll/pickup.c` `0x800FD9E0-0x80102CA0` size=`0x52C0` kind=`gap-window` confidence=`medium` from=`resolved-gap-hints` debug=`0x514` delta=`+0x91` packet=`curves.c` -> `camcontrol.c`
  why: Resolved gap names give a usable local skeleton, but the interval is only partially constrained.
- `dll/modanimeflash1.c` `0x80102CA0-0x80102CC8` size=`0x28` kind=`gap-window` confidence=`medium` from=`resolved-gap-hints` debug=`0x8` delta=`-0x59` packet=`curves.c` -> `camcontrol.c`
  why: Resolved gap names give a usable local skeleton, but the interval is only partially constrained.
- `dll/modcloudrunner2.c` `0x80102CC8-0x80102D3C` size=`0x74` kind=`gap-window` confidence=`medium` from=`resolved-gap-hints` debug=`0x8` delta=`-0xd` packet=`curves.c` -> `camcontrol.c`
  why: Resolved gap names give a usable local skeleton, but the interval is only partially constrained.
- `dll/CAM/camcontrol.c` `0x801024E8-0x80103648` size=`0x1160` kind=`anchor` confidence=`high` from=`suggested-window` action=`expand-window` debug=`0x10E0` delta=`+0x80` xrefs=`1/1`
  why: Seed is smaller than the debug split size; expand toward `0x801024E8-0x80103648` first.

## Recommended Next Steps
- Resize-first files in this block are `dll/curves.c`, `dll/CAM/camcontrol.c`; avoid asserting final boundaries until those windows are tested.
- Keep overlapping rows in one neighborhood while working outward from the strongest retail-backed anchors.
