Files
disasm/Donkey Kong (JU)/copilot/dk_full_map.tsv
T
tmerritt 71ada15de0 Promote Donkey Kong (JU): Pass 3 complete, whole-ROM byte-identical
Pass 3 named the 10 data regions in prg.s, then the project was promoted
out of _wip/ so `make` now proves header + PRG + CHR against the original
ROM instead of only the PRG bank.

Data regions named:
  LevelPtrTable        $C000-$C03B  (60 B)    level header data
  ObjectPtrTable       $C03C-$C043  (8 B)     4 pointer pairs
  LevelDataPtrTable    $C044-$C79D  (1882 B)  level data pointers
  SpriteInitPtrTable   labelled at $C4B0      see residue note
  UnreachedCode_D650   $D650-$D696  (71 B)    unreached code
  UnreachedCode_E144   $E144-$E165  (34 B)    unreached code
  MusicDataTable       $F55B-$FA47  (1261 B)  music/sound data
  APUDataTable         $FAE6-$FB74  (143 B)   APU pulse/noise tables
  SfxDataTable         $FE59-$FFEF  (407 B)   sound-effect data
  VectorTable          $FFF6-$FFFF  (10 B)    padding + NMI/RESET/IRQ

Promotion (per the AGENTS.md checklist):
  - git mv "_wip/Donkey Kong (JU)" "Donkey Kong (JU)"
  - add copilot/rom.nes -> ../Donkey Kong (JU).nes symlink
  - add header.s / chr.s (one-line .incbin of header.bin / chr.bin)
  - linker.cfg gains HEADER ($0000/16 B) and CHR ($0000/8 KB)
  - Makefile switched from `cmp reconstructed_prg.bin prg.bin` to
    `cmp reconstructed.nes rom.nes`
  - no _tools path change (this Makefile never referenced _tools/)
    and no `make regen` pipeline exists for it

Doc corrections:
  - project OVERVIEW.md said Mirroring Vertical; header byte 6 = $00
    means Horizontal (the root index was right) — fixed
  - root OVERVIEW.md: row 18 now BYTE-IDENTICAL, tier paragraph and
    summary table refreshed (they had drifted around the Lunar Pool and
    Urban Champion promotions), new per-project detail entry
  - counts corrected to 19 top-level / 17 _wip in OVERVIEW.md,
    TODO.md and AGENTS.md

Residue recorded rather than guessed:
  - Pass 2 is partial: 919 Label_ definitions remain (214 semantic
    labels applied); noted in TODO.md so nobody reads the promotion as
    full semantic naming
  - SpriteInitPtrTable's label sits at $C4B0: the routine at $C807 reads
    $C4A7,x/$C4A8,x, but that table starts mid-row and a label there
    would split the canonical 16-byte audit-comment line

Verification:
  make clean && make  -> "Byte-identical ROM verified."
  verify_pass1.py     -> 19/19 top-level build, Donkey Kong (JU) OK
                         (6014 instr / 12505 B), all comments canonical

Doc-drift sweep: build tiers, mirroring, and stale status tails

Reconciled the docs against verified reality after the Lunar Pool / Urban
Champion / Donkey Kong (JU) promotions and the 2026-10-19 audit-comment
standardization. No source behaviour changed except the two build fixes below.

Build tier (whole-ROM vs PRG-only)
  - AGENTS.md: the 17 `_wip/` projects are real disassemblies at the PRG-build
    tier, not "skeletons"; header.s/chr.s/rom.nes are promotion additions;
    verify_pass1.py covers the top-level projects.
  - Root OVERVIEW.md: `_wip` prose, audit-comment narrative and summary table
    refreshed (37.5% figure, SEEDED vs OK wording, re-trace false alarm).
  - Promoted projects whose build blocks still claimed `make` emits
    `reconstructed_prg.bin` compared to `prg.bin` (Balloon Fight, Baseball,
    CIRCUS, Clu Clu Land, Excitebike, NES PowerPad, Pac-Man (USA), Tennis):
    now describe the whole-ROM `reconstructed.nes` vs `rom.nes`.
  - Lunar Pool / Urban Champion / CIRCUS also had stale `cd "_wip/..."`
    build paths and "Promotion" items; retargeted to their top-level folders.

Mirroring (header byte 6 bit 0: 0 = Horizontal, 1 = Vertical)
  - Corrected DK Jr. prose "horizontal mirroring (flag 6 = $01)" -> vertical,
    and both `_wip/Pac-Man` variant notes "Both use vertical mirroring" ->
    horizontal (both are byte-6 = $00).
  - Re-audited every project OVERVIEW: 0 rows and 0 prose claims now disagree.

Stale status tails
  - Retitled/restatused the `_wip` OVERVIEWs to their real `prg.s` (Golf,
    Ice Climber (U), Lode Runner, Millipede, Pac-Man Tengen, Pac-Man (U),
    Popeye 0/1, Raid, Raid a2, Hogan's Alley, Mario Bros); Golf's
    skeleton-era contents rows and Next Steps corrected.
  - Dropped the skeleton-era "## Next Steps (per `PROMPTS.md`)" heading and
    the "(from the skeleton)" wording across all project OVERVIEWs.
  - Rewrote Lunar Pool / Urban Champion Next Steps (both already Pass 1-3
    complete and promoted; their tails still described pending Pass 2 and
    promotion); fixed root row 13 (Wild Gunman) and row 20 (Duck Hunt).

Also lands two code fixes carried with this sweep:
  - `_wip/Hogan's Alley (JU)`: $E9F1-$E9FD and $EA13-$EA14 reclassified as
    data with canonical audit comments (the seeded build had decoded a data
    table base as code, breaking the build since 2ae09f7). `make` ->
    BYTE-IDENTICAL again; reconstructed_prg.bin/.lbl refreshed.
  - `_wip/Pyramid (U)`: `Label_D72E` -> `NMI:` (byte-identical).

Verification:
  make (Hogan's Alley, Pyramid)      -> BYTE-IDENTICAL, BYTE-IDENTICAL
  _tools/verify_pass1.py             -> 19/19 build, all canonical,
                                        "No truncated or unfaithful Pass 1"
  mirroring audit (rows + prose)     -> 0 mismatches

Donkey Kong (JU): complete Pass 2 — all 919 Label_ definitions named

The last non-zero Label_ residue in the repo is now gone. Every one of the
919 address-derived definitions in copilot/prg.s is replaced:

* 319 routine entry points (jsr/jmp targets):
  - 102 named from observed behaviour (LoadSpriteInitPointerToZp00 $C807,
    CopyVramDataToBuffer $CBDF, CheckSpriteListCollision $D8AD,
    UpdateRandomSeed $F4ED, ReadControllers $F50E, UpdateSoundEngine $FA48, ...)
  - 217 left as SubC<addr> — honest residue where the body is too
    context-dependent to name without guessing (Golf: 108, Mario Bros: 223)
  - the 77 already-named entries untouched
* 600 internal branch targets named <Routine>_Block / <Routine>_Block_n in
  address order within their owning routine (DK Jr./Balloon Fight convention).
  Ownership is control-flow containment, so a loop that physically precedes
  its own entry lands correctly (FlushPpuBuffer_Block $F1EC under $F228).
* Two proposal collisions disambiguated by indexing zero-page slot:
  UpdateObjectListZp5D/DispatchObjectStateZp5E ($DA16/$DA4C) vs
  UpdateObjectListZpAE/DispatchObjectStateZpAF ($E1E9/$E250).

jsr/jmp operands stay numeric (Wild Gunman style); only branch operands are
symbolic. Applied with _tools/pass2.py apply (919 defs + 2,622 refs rewritten,
comments re-aligned); the ROM still rebuilds byte-identically and
verify_pass1.py reports 19/19 canonical with no truncated split.

Docs synced: project OVERVIEW.md gains a Pass 2 Details section, root
OVERVIEW.md rows + conventions, TODO.md section 4 closed. dk_full_map.tsv now
records the complete applied map (its zp rows remain unapplied proposals).

_wip status correction: five false "Pass 2 complete" claims + map audit

The `_wip` tier's "Pass 2 complete" headers counted their draft maps' rows, not
the names actually present in `prg.s`, and described the count of *neutral*
`ZpXX` slots in `locals.inc` as "zero-page semantic aliases". Verified against
the sources and corrected in the root inventory rows, the project OVERVIEWs and
TODO:

  project                named/total  Label_ left  drafted map
  Pinball (JU)           180 / 681    501          210 rows, 179 applied
  Ice Climber (JE)        76 / 973    897          255 rows,  76 applied
  Donkey Kong Jr. Math    64 / 1035   971          243 rows,  62 applied
  Duck Hunt (JUE)         31 / 472    441          272 rows,  31 applied
  Ice Climber (U)          2 / 973    971          none - Pass 2 not started

No `_wip` project is Pass 2 complete. Ice Climber (U) was the worst case: the
2026-10-19 sweep itself restated it "Pass 2 complete" while describing its 971
`Label_` definitions in the same paragraph - a copy-paste from (JE); (U) has no
map file at all.

Drafted maps audited row by row against the committed split: they are not
applicable. 100/243 (DK Jr. Math), 96/255 (Ice Climber (JE)) and 17/210
(Pinball) rows point at addresses that are not instruction boundaries - they
were built against an older code/data split - while most of the rest are
unlabelled boundaries that no operand references, or (Duck Hunt) competing
candidate names for one label (`Label_C2BF` alone carries 205). Rows that are
both insertable and corroborated by control flow: 0 in every map. Recorded as
stale and kept for provenance; Pass 2 here needs a fresh map derived from the
committed split.

Also corrected while verifying:
- Mario Bros entry counts (docs said 252 / 90 + 165 / 477 sites / 156 neutral
  slots; the file holds 262 distinct `jsr`/`jmp` targets = 39 semantic + 223
  `SubC<addr>`, 478 sites, 151 slots).
- root `_wip` prose line/label ranges (4,482-17,180 lines, 192-971 `Label_`,
  11,126 total) and the Ice Climber code figure (74.6% / 6,112 instr, not
  74.7% / 6,113).
- TODO §4 re-scoped to the promoted tier, with the `_wip` residue table added.

Verification: `make` across all 17 `_wip` projects -> BYTE-IDENTICAL (17/17);
`_tools/verify_pass1.py` -> 19/19 build, all canonical, "No truncated or
unfaithful Pass 1 found". No source bytes changed.

Balloon Fight (JU): apply locals.inc/symbols.inc names to prg.s (Pass 3)

Substitutes symbol names for 922 numeric operands: 125 hardware registers
(symbols.inc) and 797 of 813 zero-page/RAM operands (locals.inc). The 15
multi-alias addresses were resolved per routine; 16 operands stay numeric
because $13 is used there as a plain high-byte scratch beside Temp12 and
none of its three aliases fits.

- _tools/apply_symbols.py: the substitution tool (dry run by default;
  --sites supplies per-routine choices for multi-alias addresses, --report
  lists the residue). Only the operand token is rewritten, so the
  `; CPU:$.... PRG:....  XX XX` audit comments survive byte for byte.
- prg.s: operand tokens only. make prints "Byte-identical ROM verified."
- OVERVIEW.md (project): instruction quotes now match prg.s, new
  alias-reuse table, and section 10 rewritten from the stale "497 Label_"
  prose to the real naming state and the 16-site residue.
- OVERVIEW.md (root), TODO.md, AGENTS.md: status, counts, tool list.

verify_pass1.py: 19/19 OK, all audit comments canonical.

Bomberman (U): apply locals.inc/symbols.inc names to prg.s (Pass 3)

Substitutes 362 zero-page operands in copilot/prg.s with the names already
declared in copilot/locals.inc: 354 from single-name addresses and 8 from the
two multi-alias addresses, resolved per site:

  $E0/$E1  IndirectPtrLo/Hi in the RAM-clear loop
              (InitializeSystemAndRunMainLoop -> Main_WriteSoundDispatchIndex_C317,
              which writes $00 across $0100-$07FF via (ptr),y),
              SoundDelay0 (the base of the per-channel delay table, indexed by X)
              in the sound engine;

No symbols.inc substitution was needed: copilot/prg.s contains no numeric
hardware operands ($2000-$4017) at all. All 362 operands were already written
with two hex digits, so no ca65 `a:` prefix was required.

make -> Byte-identical ROM verified. Operand token only; mnemonics, spacing and
the trailing `; CPU:$.... PRG:....  XX XX` audit comments are untouched.

Remaining numeric operands (758) address bytes that no .inc file names:
505 zero-page (133 addresses), 171 RAM $0100-$07FF (46 addresses) and 82
table reads in $8000+ (54 addresses).

Bomberman (U): substitute 24 in-file table labels at ROM operand sites

Uses the new `--labels` option of `apply_symbols.py` with the
ld65 `-Ln` output (`reconstructed.lbl`). Only labels that prg.s
actually defines and that live in the PRG (+) are considered,
so CHR/header segment labels cannot leak in.

24 numeric operands (`lda ,x`, `adc ,y`, etc.) now read
`lda SystemPaletteData,x`, `adc GameplayObjectClassTable,y`, etc.
All 24 point at exact label addresses; the remaining 58 ROM-space
numeric operands point at interior bytes or unlabelled tables and
stay numeric.

make -> Byte-identical ROM verified.

Bomberman (U): update docs for Pass 3 symbol application

- Project OVERVIEW.md: corrected source file from main.s to prg.s/header.s/chr.s;
  output name from reconstructed_bomberman.nes to reconstructed.nes;
  rewritten §10 Zero-Page/RAM Symbols table to match locals.inc (with aliases
  and unnamed residue documented);
  fixed §4 step 1/4 to use IndirectPtrLo/Hi and SoundDelay0 names;
  fixed §11 InesHeader location (now header.s);
  added §2 Pass 3 summary table;
  added §13 notes on legacy main.s and Main_WriteSoundDispatchIndex_C317 misnomer.

- Root OVERVIEW.md §3: updated source line count (7,553), file list, and added
  Pass 3 summary.

Both builds verified byte-identical.

Pass 3 symbol application to all 19 top-level projects (2026-10-19)

Ran _tools/apply_symbols.py --write on all 19 promoted projects to substitute
symbolic names from symbols.inc (hardware registers) and locals.inc (zero-page
RAM aliases, forward references) into prg.s operands. The tool preserves the
canonical audit comments (; CPU:$XXXX PRG:XXXX AA BB) and preserves byte
identity — all projects still rebuild byte-identical to their original ROMs.

Per-project operand substitutions:
  Baseball (UE)             121  (85 single + 36 hardware)
  Tennis (JU)                18  (18 single)
  Pac-Man (USA) (Namco)     524  (524 single; 727 multi-alias residues)
  CIRCUS                    118  (38 single + 80 hardware; 23 multi-alias residues)
  Wild Gunman (U)            76  (11 single + 65 hardware)
  Joypad Test Cartridge (U)  47  (47 hardware)
  NES PowerPad Test Card (U) 89  (89 hardware)
  MUSCLE (U)                220  (91 single + 129 hardware)
  Lunar Pool (U)             45  (18 single + 27 hardware)
  Donkey Kong (JU)           75  (17 single + 58 hardware)
  Urban Champion (JU)        70  (4 single + 66 hardware)

Already had symbols applied: Balloon Fight, Bomberman, Burger Time,
Clu Clu Land, Defender 2, Donkey Kong 3, Donkey Kong Jr.

Skipped: Excitebike (JU) — inline prg.s definitions conflict with locals.inc
values and source operands don't match ROM byte encodings; automatic
substitution breaks byte identity.

Documentation updated:
  OVERVIEW.md — added Pass 3 symbol notes to all 19 project entries,
  added Urban Champion as section #36
  TODO.md — current state now reflects complete symbol application across
  the promoted tier

Verification: python3 _tools/verify_pass1.py reports all 19 projects OK/SEEDED,
all canonical comments, no truncated or unfaithful Pass 1.
2026-10-19 14:55:08 -04:00

1327 lines
38 KiB
Plaintext

label Label_C7A8 Reset_Block
label Label_C7B9 Reset_Block_1
label Label_C807 LoadSpriteInitPointerToZp00
label Label_C815 LoadObjectPointerToZp02AndDraw
label Label_C823 LoadObjectPointerToZp00AndDraw
label Label_C831 LoadObjectAndLevelPointers
label Label_C847 LoadObjectPointerToZp02
label Label_C853 LoadObjectPointerToZp08
label Label_C8A5 NmiHandler_Block
label Label_C95C UpdateGameState_Block
label Label_C976 UpdateGameState2_Block
label Label_C985 UpdateGameState2_Block_1
label Label_C989 UpdateGameState2_Block_2
label Label_C991 UpdateGameState3_Block
label Label_C9AD UpdateGameState3_Block_1
label Label_C9B1 InitGameState
label Label_CA06 InitGameState_Block
label Label_CA26 InitGameState_Block_1
label Label_CA4A UpdateSprites_Block
label Label_CA5A UpdateSprites_Block_1
label Label_CA5F UpdateSprites_Block_2
label Label_CA64 UpdateSprites_Block_3
label Label_CA79 UpdateSprites_Block_4
label Label_CA94 UpdateSprites_Block_5
label Label_CA99 UpdateSprites_Block_6
label Label_CAAB CopyToOAM_Block
label Label_CABB CopyFromOAM_Block
label Label_CAD8 UpdateSpriteData_Block
label Label_CAE7 UpdateSpriteData_Block_1
label Label_CAF6 UpdateSpriteData_Block_2
label Label_CAFA UpdateSpriteData_Block_3
label Label_CB02 UpdateSpriteData_Block_4
label Label_CB15 UpdateSpriteData_Block_5
label Label_CB18 UpdateSpriteData_Block_6
label Label_CB30 HandleController_Block
label Label_CB36 HandleController_Block_1
label Label_CB39 HandleController_Block_2
label Label_CB46 HandleController_Block_3
label Label_CB47 HandleController_Block_4
label Label_CB58 HandleController_Block_5
label Label_CB7B HandleController_Block_6
label Label_CB9E HandleController_Block_7
label Label_CBDF CopyVramDataToBuffer
label Label_CBEB CopyVramDataToBuffer_Block
label Label_CC24 SubCCC24
label Label_CC4A InitScroll_Block
label Label_CC99 InitScroll_Block_1
label Label_CCA6 InitScroll_Block_2
label Label_CCF3 UpdateScroll8_Block
label Label_CD07 CheckGameState_1_Block
label Label_CD13 CheckGameState_1_Block_1
label Label_CD45 UpdateGameTimer_Block
label Label_CD4A UpdateGameTimer_Block_1
label Label_CD4F UpdateGameTimer_Block_2
label Label_CD58 UpdateGameTimer_Block_3
label Label_CD61 UpdateGameTimer_Block_4
label Label_CD66 UpdateGameTimer_Block_5
label Label_CD69 UpdateGameTimer_Block_6
label Label_CD6C UpdateGameTimer_Block_7
label Label_CDAE UpdateSpritePosition5_Block
label Label_CDD7 UpdateSpritePosition6_Block
label Label_CDEF UpdateSpritePosition6_Block_1
label Label_CDF3 UpdateSpritePosition6_Block_2
label Label_CE1F UpdateSpritePosition8_Block
label Label_CE2F UpdateSpritePosition9_Block
label Label_CE8B UpdateSpritePosition10_Block
label Label_CE94 UpdateSpritePosition10_Block_1
label Label_CEA2 UpdateSpritePosition10_Block_2
label Label_CEAE UpdateSpritePosition10_Block_3
label Label_CEB1 UpdateSpritePosition10_Block_4
label Label_CEB8 UpdateSpritePosition10_Block_5
label Label_CEC1 UpdateSpritePosition10_Block_6
label Label_CED3 UpdateSpritePosition10_Block_7
label Label_CF01 UpdateSpritePosition11_Block
label Label_CF0D UpdateSpritePosition11_Block_1
label Label_CF2A UpdateSpritePosition13_3_Block
label Label_CF55 UpdateSpritePosition15_Block
label Label_CF79 UpdateSpritePosition15_Block_1
label Label_CF7A UpdateSpritePosition15_Block_2
label Label_CF8F UpdateSpritePosition15_Block_3
label Label_CF92 UpdateSpritePosition15_Block_4
label Label_CF9B UpdateSpritePosition15_Block_5
label Label_CFA1 UpdateSpritePosition15_Block_6
label Label_CFAC UpdateSpritePosition17_Block
label Label_CFB8 UpdateSpritePosition17_Block_1
label Label_CFCD UpdateSpritePosition18_Block
label Label_CFF9 UpdateSpritePosition18_Block_1
label Label_D02A UpdateSpritePosition19_Block
label Label_D04B UpdateSpritePosition21_1_Block
label Label_D063 UpdateSpritePosition21_3_Block
label Label_D065 UpdateSpritePosition21_3_Block_1
label Label_D074 UpdateSpritePosition21_3_Block_2
label Label_D092 UpdateSpritePosition22_1_Block
label Label_D0A5 UpdateSpritePosition22_1_Block_1
label Label_D0AA UpdateSpritePosition22_1_Block_2
label Label_D0BF UpdateSpritePosition22_3_Block
label Label_D0DD UpdateSpritePosition23_Block
label Label_D0E4 UpdateSpritePosition23_Block_1
label Label_D0F4 UpdateSpritePosition23_Block_2
label Label_D0F8 UpdateSpritePosition23_Block_3
label Label_D101 UpdateSpritePosition23_Block_4
label Label_D115 UpdateSpritePosition23_Block_5
label Label_D11D UpdateSpritePosition23_Block_6
label Label_D130 UpdateSpritePosition24_Block
label Label_D138 UpdateSpritePosition24_Block_1
label Label_D139 UpdateSpritePosition24_Block_2
label Label_D14B UpdateSpritePosition24_Block_3
label Label_D166 UpdateSpritePosition24_Block_4
label Label_D189 UpdateSpritePosition26_Block
label Label_D199 UpdateSpritePosition26_Block_1
label Label_D1BB UpdateSpritePosition28_Block
label Label_D1C3 UpdateSpritePosition29_Block
label Label_D1C6 UpdateSpritePosition29_Block_1
label Label_D1C9 UpdateSpritePosition29_Block_2
label Label_D1CC UpdateSpritePosition29_Block_3
label Label_D1E2 UpdateSpritePosition30_Block
label Label_D1E5 UpdateSpritePosition30_Block_1
label Label_D1F3 UpdateSpritePosition30_Block_2
label Label_D1F9 UpdateSpritePosition30_Block_3
label Label_D205 UpdateSpritePosition30_Block_4
label Label_D227 UpdateSpritePosition31_Block
label Label_D233 UpdateSpritePosition31_Block_1
label Label_D23E UpdateSpritePosition31_Block_2
label Label_D25B UpdateSpritePosition31_Block_3
label Label_D262 UpdateSpritePosition31_Block_4
label Label_D26D UpdateSpritePosition31_Block_5
label Label_D288 UpdateSpritePosition33_Block
label Label_D2CA UpdateSpritePosition34_Block
label Label_D2DD UpdateSpritePosition35_Block
label Label_D2F0 UpdateSpritePosition36_Block
label Label_D34E UpdateSpritePosition40_Block
label Label_D353 UpdateSpritePosition40_Block_1
label Label_D35E UpdateSpritePosition40_Block_2
label Label_D365 UpdateSpritePosition40_Block_3
label Label_D373 UpdateSpritePosition42_1_Block
label Label_D38B UpdateSpritePosition43_Block
label Label_D39C UpdateSpritePosition44_Block
label Label_D3AF UpdateSpritePosition44_Block_1
label Label_D3BB UpdateSpritePosition44_Block_2
label Label_D3CD UpdateSpritePosition44_Block_3
label Label_D3D0 UpdateSpritePosition44_Block_4
label Label_D3D2 SubCD3D2
label Label_D3E7 UpdateSpritePosition44_Block_5
label Label_D3F9 UpdateSpritePosition44_Block_6
label Label_D3FB SubCD3FB
label Label_D40D SubCD40D
label Label_D426 SubCD40D_Block
label Label_D42C SubCD42C
label Label_D432 SubCD432
label Label_D445 SubCD432_Block
label Label_D45A SubCD432_Block_1
label Label_D471 SubCD432_Block_2
label Label_D476 SubCD432_Block_3
label Label_D478 SubCD478
label Label_D48B SubCD432_Block_4
label Label_D49D SubCD432_Block_5
label Label_D49F SubCD49F
label Label_D4B1 SubCD4B1
label Label_D4C6 SubCD4B1_Block
label Label_D4CC SubCD4CC
label Label_D4ED UpdateSpritePosition49_Block
label Label_D4EE SubCD4EE
label Label_D4F9 SubCD4F9
label Label_D501 SubCD501
label Label_D509 SubCD501_Block
label Label_D50A SubCD50A
label Label_D544 SubCD50A_Block
label Label_D547 SubCD547
label Label_D551 SubCD547_Block
label Label_D55A SubCD547_Block_1
label Label_D56A SubCD547_Block_2
label Label_D56C SubCD56C
label Label_D570 SubCD56C_Block
label Label_D58C SubCD56C_Block_1
label Label_D59A SubCD56C_Block_2
label Label_D5A1 SubCD56C_Block_3
label Label_D5AF SubCD56C_Block_4
label Label_D5B3 SubCD5B3
label Label_D5CC SubCD5B3_Block
label Label_D5E2 SubCD5B3_Block_1
label Label_D5F1 SubCD5F1
label Label_D5F6 SubCD5F6
label Label_D60D SubCD60D
label Label_D642 SubCD60D_Block
label Label_D64F SubCD60D_Block_1
label Label_D697 SubCD697
label Label_D6B1 SubCD697_Block
label Label_D6B7 SubCD6B7
label Label_D6C5 SubCD6B7_Block
label Label_D6C6 SubCD6C6
label Label_D6CD SubCD6C6_Block
label Label_D6D9 SubCD6C6_Block_1
label Label_D6E8 SubCD6C6_Block_2
label Label_D6F2 SubCD6C6_Block_3
label Label_D6FE SubCD6C6_Block_4
label Label_D703 SubCD6C6_Block_5
label Label_D705 SubCD705
label Label_D70A SubCD6C6_Block_6
label Label_D710 SubCD6C6_Block_7
label Label_D713 SubCD713
label Label_D732 SubCD713_Block
label Label_D73E SubCD713_Block_1
label Label_D74F SubCD713_Block_2
label Label_D753 SubCD753
label Label_D767 SubCD753_Block
label Label_D769 SubCD769
label Label_D786 SubCD769_Block
label Label_D795 SubCD769_Block_1
label Label_D79B SubCD79B
label Label_D7AD SubCD7AD
label Label_D7B8 SubCD7AD_Block
label Label_D7BA SubCD7BA
label Label_D7BF SubCD7BF
label Label_D7D3 SubCD7BF_Block
label Label_D7DA SubCD7DA
label Label_D7F2 SubCD7F2
label Label_D800 SubCD800
label Label_D805 SubCD800_Block
label Label_D80E SubCD800_Block_1
label Label_D81E SubCD800_Block_2
label Label_D827 SubCD800_Block_3
label Label_D849 SubCD800_Block_4
label Label_D856 SubCD800_Block_5
label Label_D867 SubCD800_Block_6
label Label_D86F SubCD800_Block_7
label Label_D87D SubCD87D
label Label_D8A7 SubCD87D_Block
label Label_D8A8 SubCD8A8
label Label_D8AD CheckSpriteListCollision
label Label_D8B9 SubCD8B9
label Label_D8E1 SubCD8B9_Block
label Label_D8E6 SubCD8B9_Block_1
label Label_D8E8 SubCD8E8
label Label_D8EB SubCD8EB
label Label_D904 SubCD8EB_Block
label Label_D911 SubCD8EB_Block_1
label Label_D914 SubCD8EB_Block_2
label Label_D917 SubCD917
label Label_D91A SubCD91A
label Label_D92D SubCD92D
label Label_D938 SubCD91A_Block
label Label_D93B SubCD92D_Block
label Label_D93C SubCD93C
label Label_D964 SubCD93C_Block
label Label_D986 SubCD93C_Block_1
label Label_D98B SubCD93C_Block_2
label Label_D98D SubCD98D
label Label_D990 SubCD990
label Label_D99D SubCD990_Block
label Label_D9AF SubCD990_Block_1
label Label_D9D0 SubCD990_Block_2
label Label_D9D4 SubCD9D4
label Label_D9E0 SubCD9D4_Block
label Label_D9E3 SubCD9E3
label Label_D9E6 CheckPeriodicEvent
label Label_D9E8 SubCD9E8
label Label_D9F5 SubCD9E8_Block
label Label_D9F9 SubCD9F9
label Label_DA06 SubCD9F9_Block
label Label_DA0F SubCDA0F
label Label_DA13 SubCDA0F_Block
label Label_DA16 UpdateObjectListZp5D
label Label_DA1D UpdateObjectListZp5D_Block
label Label_DA3D UpdateObjectListZp5D_Block_1
label Label_DA40 UpdateObjectListZp5D_Block_2
label Label_DA4C DispatchObjectStateZp5E
label Label_DA7D DispatchObjectStateZp5E_Block
label Label_DA80 DispatchObjectStateZp5E_Block_1
label Label_DA83 DispatchObjectStateZp5E_Block_2
label Label_DA86 DispatchObjectStateZp5E_Block_3
label Label_DA89 DispatchObjectStateZp5E_Block_4
label Label_DA8F DispatchObjectStateZp5E_Block_5
label Label_DA92 DispatchObjectStateZp5E_Block_6
label Label_DA95 DispatchObjectStateZp5E_Block_7
label Label_DA98 DispatchObjectStateZp5E_Block_8
label Label_DA9C HandleObjectState80
label Label_DAC3 HandleObjectState80_Block
label Label_DAD5 SubCDAD5
label Label_DAF2 SubCDAD5_Block
label Label_DAF7 SubCDAF7
label Label_DAFF SubCDAF7_Block
label Label_DB00 HandleObjectState81
label Label_DB21 HandleObjectState81_Block
label Label_DB2B SubCDB2B
label Label_DB2C HandleObjectState01
label Label_DB34 HandleObjectState01_Block
label Label_DB4E HandleObjectState01_Block_1
label Label_DB50 SubCDB50
label Label_DBA3 SubCDB50_Block
label Label_DBAC SubCDB50_Block_1
label Label_DBCD UpdateSpritePosition57_Block
label Label_DBE7 SubCDBE7
label Label_DBED SubCDBE7_Block
label Label_DBEE UpdateObjectAnimationFrame
label Label_DBFB UpdateObjectAnimationFrame_Block
label Label_DC16 UpdateObjectAnimationFrame_Block_1
label Label_DC1B UpdateObjectAnimationFrame_Block_2
label Label_DC2B UpdateObjectAnimationFrame_Block_3
label Label_DC2D SubCDC2D
label Label_DC30 HandleObjectState02
label Label_DC4F HandleObjectState02_Block
label Label_DC51 SubCDC51
label Label_DC68 SubCDC51_Block
label Label_DC69 HandleObjectState08
label Label_DC71 HandleObjectState08_Block
label Label_DC8E HandleObjectState08_Block_1
label Label_DC90 SubCDC90
label Label_DCBC SubCDC90_Block
label Label_DCC9 SubCDCC9
label Label_DCCF SubCDCC9_Block
label Label_DCD0 HandleObjectState10
label Label_DCD8 HandleObjectState10_Block
label Label_DCF3 SubCDCF3
label Label_DD00 HandleObjectState10_Block_1
label Label_DD06 SubCDD06
label Label_DD13 SubCDD06_Block
label Label_DD25 SubCDD06_Block_1
label Label_DD3A UpdateSpritePosition68_Block
label Label_DD59 UpdateSpritePosition68_Block_1
label Label_DD60 UpdateSpritePosition68_Block_2
label Label_DD6A UpdateSpritePosition68_Block_3
label Label_DD73 UpdateSpritePosition68_Block_4
label Label_DD7F SubCDD7F
label Label_DD8B HandleObjectStateC0
label Label_DD98 HandleObjectStateC0_Block
label Label_DDAB HandleObjectStateC0_Block_1
label Label_DDB0 HandleObjectStateC0_Block_2
label Label_DDB2 SubCDDB2
label Label_DDC9 SubCDDB2_Block
label Label_DDD7 SubCDDB2_Block_1
label Label_DDF5 SubCDDB2_Block_2
label Label_DE0B SubCDDB2_Block_3
label Label_DE0D SubCDE0D
label Label_DE10 SubCDE0D_Block
label Label_DE13 SubCDDB2_Block_4
label Label_DE1A SubCDE1A
label Label_DE27 SubCDE27
label Label_DE36 SubCDE27_Block
label Label_DE50 SubCDE27_Block_1
label Label_DE56 SubCDE56
label Label_DE68 SubCDE56_Block
label Label_DE6A SubCDE6A
label Label_DE73 SubCDE73
label Label_DE82 SubCDE82
label Label_DE85 SubCDE82_Block
label Label_DE86 SubCDE86
label Label_DE90 SubCDE86_Block
label Label_DE9F SubCDE86_Block_1
label Label_DEA4 SubCDEA4
label Label_DEA5 SubCDEA5
label Label_DEDC SubCDEA5_Block
label Label_DEE8 SubCDEA5_Block_1
label Label_DEED SubCDEA5_Block_2
label Label_DEF2 SubCDEA5_Block_3
label Label_DEFB SubCDEFB
label Label_DF07 HandleObjectState40
label Label_DF0F HandleObjectState40_Block
label Label_DF25 HandleObjectState40_Block_1
label Label_DF27 SubCDF27
label Label_DF35 SubCDF27_Block
label Label_DF40 SubCDF40
label Label_DF45 SubCDF40_Block
label Label_DF4C SubCDF40_Block_1
label Label_DF55 SubCDF40_Block_2
label Label_DF5E SubCDF40_Block_3
label Label_DF60 SubCDF40_Block_4
label Label_DF6C SubCDF40_Block_5
label Label_DF72 SubCDF72
label Label_DF7B SubCDF72_Block
label Label_DF7D SubCDF72_Block_1
label Label_DF89 SubCDF72_Block_2
label Label_DF8F SubCDF72_Block_3
label Label_DFAD SubCDFAD
label Label_DFB8 SubCDFAD_Block
label Label_DFC3 SubCDFC3
label Label_DFE3 SubCDFC3_Block
label Label_DFE4 CheckPeriodicEventForObject
label Label_DFE8 SubCDFE8
label Label_DFF7 SubCDFE8_Block
label Label_DFFB SubCDFFB
label Label_E008 SubCDFFB_Block
label Label_E011 SubCE011
label Label_E015 SubCE011_Block
label Label_E016 FindYRowIndex
label Label_E02F SubCE02F
label Label_E041 SubCE02F_Block
label Label_E045 SubCE02F_Block_1
label Label_E048 SubCE048
label Label_E057 SubCE048_Block
label Label_E05A SubCE05A
label Label_E06A SubCE06A
label Label_E079 SubCE05A_Block
label Label_E07B SubCE07B
label Label_E08A SubCE07B_Block
label Label_E08D SubCE07B_Block_1
label Label_E090 SubCE090
label Label_E09F SubCE090_Block
label Label_E0A1 SubCE0A1
label Label_E0AB SubCE0A1_Block
label Label_E0AE SubCE0AE
label Label_E0CB SubCE0AE_Block
label Label_E0D1 SubCE0AE_Block_1
label Label_E0DD SubCE0AE_Block_2
label Label_E0E9 SubCE0AE_Block_3
label Label_E0EC SubCE0EC
label Label_E0F1 SubCE0F1
label Label_E107 SubCE0F1_Block
label Label_E109 SubCE0F1_Block_1
label Label_E10F SubCE10F
label Label_E112 SearchTableForByte
label Label_E116 SearchTableForByte_Loop
label Label_E124 SearchTableForByte_Loop_Block
label Label_E129 SearchTableForByte_Loop_Block_1
label Label_E12B SearchTableForByte_Return
label Label_E130 SubCE130
label Label_E13E SubCE130_Block
label Label_E141 SubCE141
label Label_E166 CountObjectTypes
label Label_E16A CountObjectTypes_Block
label Label_E172 CountObjectTypes_Loop
label Label_E17F CountObjectTypes_Loop_Block
label Label_E187 CountObjectTypes_Loop_Block_1
label Label_E199 CountObjectTypes_Loop_Block_2
label Label_E19A SubCE19A
label Label_E19F SubCE19A_Block
label Label_E1BF SubCE19A_Block_1
label Label_E1D5 SubCE19A_Block_2
label Label_E1D7 SubCE1D7
label Label_E1E0 SubCE1E0
label Label_E1E4 SubCE1E0_Block
label Label_E1E5 InitObjectListZpAE
label Label_E1E9 UpdateObjectListZpAE
label Label_E200 UpdateObjectListZpAE_Block
label Label_E213 UpdateObjectListZpAE_Block_1
label Label_E21F SubCE21F
label Label_E225 SubCE225
label Label_E228 SubCE225_Block
label Label_E237 SubCE225_Block_1
label Label_E24F SubCE225_Block_2
label Label_E250 DispatchObjectStateZpAF
label Label_E254 DispatchObjectState_Loop
label Label_E280 SubCE280
label Label_E28C InitSound_3_Block
label Label_E28F DispatchObjectState_Loop_Block
label Label_E292 SubCE292
label Label_E295 DispatchObjectState_Loop_Block_1
label Label_E29A DispatchObjectState_Loop_Block_2
label Label_E29C SubCE29C
label Label_E2A1 DispatchObjectState_Loop_Block_3
label Label_E2B3 DispatchObjectState_Loop_Block_4
label Label_E2B6 SubCE2B6
label Label_E2D9 SubCE2B6_Block
label Label_E2DD SubCE2DD
label Label_E2EB SubCE2DD_Block
label Label_E2F4 SubCE2DD_Block_1
label Label_E2F6 SubCE2F6
label Label_E2F9 SubCE2F9
label Label_E305 SubCE2F9_Block
label Label_E31A SubCE2F9_Block_1
label Label_E323 SubCE2F9_Block_2
label Label_E325 SubCE325
label Label_E33B SubCE325_Block
label Label_E340 SubCE325_Block_1
label Label_E349 SubCE325_Block_2
label Label_E34B SubCE34B
label Label_E363 SubCE34B_Block
label Label_E365 SubCE365
label Label_E368 SubCE368
label Label_E374 SubCE368_Block
label Label_E385 SubCE368_Block_1
label Label_E387 SubCE387
label Label_E396 SubCE387_Block
label Label_E39B SubCE39B
label Label_E3AA SubCE39B_Block
label Label_E3AF SubCE3AF
label Label_E3BA SubCE3AF_Block
label Label_E3C0 SubCE3C0
label Label_E3CE SubCE3C0_Block
label Label_E3DD SubCE3C0_Block_1
label Label_E3E6 SubCE3C0_Block_2
label Label_E3ED SubCE3ED
label Label_E408 SubCE3ED_Block
label Label_E411 SubCE3ED_Block_1
label Label_E413 SubCE413
label Label_E41B SubCE41B
label Label_E429 SubCE41B_Block
label Label_E436 SubCE41B_Block_1
label Label_E44B SubCE44B
label Label_E451 SubCE44B_Block
label Label_E466 SubCE44B_Block_1
label Label_E46D SubCE46D
label Label_E47A SubCE47A
label Label_E48E SubCE47A_Block
label Label_E49B SubCE47A_Block_1
label Label_E4A8 SubCE47A_Block_2
label Label_E4B5 SubCE47A_Block_3
label Label_E4C0 SubCE47A_Block_4
label Label_E4D3 SubCE47A_Block_5
label Label_E4D6 SubCE4D6
label Label_E4F9 SubCE4D6_Block
label Label_E50C SubCE50C
label Label_E522 SubCE50C_Block
label Label_E527 SubCE50C_Block_1
label Label_E530 SubCE50C_Block_2
label Label_E532 SubCE532
label Label_E538 SubCE538
label Label_E545 SubCE538_Block
label Label_E548 SubCE538_Block_1
label Label_E553 SubCE538_Block_2
label Label_E564 SubCE538_Block_3
label Label_E570 SubCE538_Block_4
label Label_E572 SubCE572
label Label_E592 SubCE592
label Label_E594 SubCE594
label Label_E59F SubCE59F
label Label_E5B4 SubCE59F_Block
label Label_E5BE SubCE59F_Block_1
label Label_E5D9 SubCE59F_Block_2
label Label_E5DB SubCE5DB
label Label_E5E5 SubCE5DB_Block
label Label_E5E8 SubCE5E8
label Label_E5FA SubCE5FA
label Label_E60C SubCE5FA_Block
label Label_E60F SubCE5E8_Block
label Label_E611 SubCE611
label Label_E620 SubCE611_Block
label Label_E623 SubCE611_Block_1
label Label_E626 SubCE626
label Label_E62F SubCE626_Block
label Label_E640 SubCE626_Block_1
label Label_E64D SubCE626_Block_2
label Label_E65D SubCE626_Block_3
label Label_E66D SubCE66D
label Label_E67A SubCE66D_Block
label Label_E68A SubCE66D_Block_1
label Label_E697 SubCE697
label Label_E69E SubCE69E
label Label_E6A5 SubCE6A5
label Label_E6BC SubCE6A5_Block
label Label_E6C3 SubCE6A5_Block_1
label Label_E6C6 SubCE6C6
label Label_E6DB SubCE6C6_Block
label Label_E6DE SubCE6DE
label Label_E6E3 SubCE6DE_Block
label Label_E6F3 SubCE6DE_Block_1
label Label_E6FB SubCE6DE_Block_2
label Label_E702 SubCE702
label Label_E719 SubCE702_Block
label Label_E721 SubCE702_Block_1
label Label_E72D SubCE72D
label Label_E72E SubCE702_Block_2
label Label_E735 SubCE702_Block_3
label Label_E73C SubCE73C
label Label_E747 SubCE747
label Label_E755 SubCE747_Block
label Label_E758 SubCE758
label Label_E75C SubCE747_Block_1
label Label_E769 SubCE747_Block_2
label Label_E770 SubCE770
label Label_E790 SubCE770_Block
label Label_E79D SubCE770_Block_1
label Label_E7A0 SubCE770_Block_2
label Label_E7A3 SubCE7A3
label Label_E7AE SubCE7A3_Block
label Label_E7E2 SubCE7E2
label Label_E7F2 SubCE7E2_Block
label Label_E7F9 SubCE7E2_Block_1
label Label_E806 AdvancePatternBit
label Label_E815 AdvancePatternBit_Block
label Label_E819 ReadPatternBit
label Label_E826 ReadPatternBit_Block
label Label_E82F ReadPatternBit_Return
label Label_E833 ReadPatternBit_Return_Block
label Label_E834 SubCE834
label Label_E84B SubCE834_Block
label Label_E84F SubCE84F
label Label_E86A SubCE84F_Block
label Label_E889 SubCE84F_Block_1
label Label_E890 SubCE890
label Label_E89B SubCE890_Block
label Label_E8A4 SubCE890_Block_1
label Label_E8A9 SubCE84F_Block_2
label Label_E8C4 SubCE84F_Block_3
label Label_E8E3 SubCE84F_Block_4
label Label_E8EA SubCE8EA
label Label_E8F8 SubCE8EA_Block
label Label_E8FC SubCE8EA_Block_1
label Label_E901 SubCE8EA_Block_2
label Label_E90E SubCE84F_Block_5
label Label_E918 SubCE918
label Label_E92E SubCE918_Block
label Label_E93B SubCE84F_Block_6
label Label_E945 SubCE945
label Label_E95B SubCE945_Block
label Label_E967 SubCE945_Block_1
label Label_E968 SubCE968
label Label_E971 SubCE971
label Label_E97A SetSpritePairY
label Label_E981 SubCE981
label Label_E986 SubCE986
label Label_E9B4 SubCE986_Block
label Label_E9BE SubCE986_Block_1
label Label_E9DA SubCE9DA
label Label_E9EA SubCE9EA
label Label_E9F0 SubCE986_Block_2
label Label_E9F3 SubCE9F3
label Label_EA00 SubCE9F3_Block
label Label_EA01 SubCEA01
label Label_EA11 SubCEA01_Block
label Label_EA2A SubCEA01_Block_1
label Label_EA34 SubCEA34
label Label_EA5E SubCEA34_Block
label Label_EA5F SubCEA5F
label Label_EA64 SubCEA5F_Block
label Label_EA72 SubCEA5F_Block_1
label Label_EA88 SubCEA5F_Block_2
label Label_EA8A SubCEA8A
label Label_EAA0 SubCEA8A_Block
label Label_EAA1 AdvancePatternBitAlt
label Label_EAAE AdvancePatternBitAlt_Block
label Label_EAB2 ReadPatternBitAlt
label Label_EABF ReadPatternBitAlt_Block
label Label_EAC8 ReadPatternBitAlt_Return
label Label_EACC ReadPatternBitAlt_Return_Block
label Label_EACD ClearSpriteDestOffset
label Label_EAD4 SetSpriteTile
label Label_EAD6 SetSpriteSize
label Label_EADB SetSpriteSizeAndDraw
label Label_EAE1 LoadSprite0Position
label Label_EAEC LoadSpritePosition
label Label_EAF7 SubCEAF7
label Label_EB05 SubCEAF7_Block
label Label_EB06 SubCEB06
label Label_EB0C SubCEB06_Block
label Label_EB2B SubCEB2B
label Label_EB32 SubCEB2B_Block
label Label_EB39 SubCEB2B_Block_1
label Label_EB40 SubCEB2B_Block_2
label Label_EB47 SubCEB2B_Block_3
label Label_EB4E SubCEB2B_Block_4
label Label_EB4F SubCEB06_Block_1
label Label_EB54 SubCEB06_Block_2
label Label_EB6F SubCEB06_Block_3
label Label_EB74 SubCEB06_Block_4
label Label_EB7B SubCEB06_Block_5
label Label_EB85 SubCEB85
label Label_EB89 SubCEB89
label Label_EB8E SubCEB8E
label Label_EB92 SubCEB92
label Label_EB97 SubCEB97
label Label_EB9C SubCEB9C
label Label_EBA1 SubCEBA1
label Label_EBA6 SubCEBA6
label Label_EBA8 SubCEBA8
label Label_EBB6 SubCEBB6
label Label_EBBB SubCEBB6_Block
label Label_EBC4 SubCEBB6_Block_1
label Label_EBDA SubCEBDA
label Label_EBED SubCEBDA_Block
label Label_EC03 SubCEBDA_Block_1
label Label_EC0A SubCEBDA_Block_2
label Label_EC12 SubCEC12
label Label_EC16 SubCEBDA_Block_3
label Label_EC29 SubCEC29
label Label_EC3B SubCEC29_Block
label Label_EC3E SubCEC29_Block_1
label Label_EC44 SubCEC44
label Label_EC48 SubCEC48
label Label_EC5B SubCEC48_Block
label Label_EC76 SubCEC48_Block_1
label Label_EC97 SubCEC97
label Label_ECA7 SubCEC48_Block_2
label Label_ECAF SubCEC97_Block
label Label_ECBE SubCEC97_Block_1
label Label_ECBF SubCECBF
label Label_ECC6 SubCECBF_Block
label Label_ECD1 SubCECBF_Block_1
label Label_ECD3 SubCECD3
label Label_ECE8 SubCECD3_Block
label Label_ECF7 SubCECD3_Block_1
label Label_ECFD SubCECFD
label Label_ED07 SubCED07
label Label_ED16 SubCED16
label Label_ED34 SubCED07_Block
label Label_ED38 SubCED38
label Label_ED57 SubCED38_Block
label Label_ED74 SubCED38_Block_1
label Label_ED85 SubCED38_Block_2
label Label_ED87 SubCED87
label Label_ED8A SubCED8A
label Label_ED93 SubCED93
label Label_EDAD SubCED93_Block
label Label_EDB5 SubCED93_Block_1
label Label_EDC4 SubCED93_Block_2
label Label_EDC5 SubCEDC5
label Label_EDD2 SubCEDC5_Block
label Label_EDEB SubCEDEB
label Label_EE07 SubCEDEB_Block
label Label_EE0B SubCEDEB_Block_1
label Label_EE0C SubCEE0C
label Label_EE1A SubCEE0C_Block
label Label_EE26 SubCEE0C_Block_1
label Label_EE29 SubCEE29
label Label_EE38 SubCEE29_Block
label Label_EE51 SubCEE29_Block_1
label Label_EE5C SubCEE29_Block_2
label Label_EE6C SetSpriteAttributes
label Label_EE79 CheckPlayerCollision
label Label_EE80 CheckPlayerCollision_Block
label Label_EE8D SubCEE8D
label Label_EED8 SubCEE8D_Block
label Label_EED9 SubCEE8D_Block_1
label Label_EEE6 SubCEE8D_Block_2
label Label_EEE7 SubCEE8D_Block_3
label Label_EEF0 SubCEE8D_Block_4
label Label_EEF7 SubCEEF7
label Label_EF2E SubCEEF7_Block
label Label_EF2F SubCEEF7_Block_1
label Label_EF38 SubCEF38
label Label_EF51 SubCEF51
label Label_EF71 SubCEF51_Block
label Label_EF72 SubCEF72
label Label_EF87 SubCEF72_Block
label Label_EF89 SubCEF89
label Label_EF94 SubCEF72_Block_1
label Label_EFA0 SubCEF72_Block_2
label Label_EFA2 SubCEFA2
label Label_EFAD SubCEFAD
label Label_EFD5 ComputeOamOffsetFromZp5D
label Label_EFD7 SubCEFD7
label Label_EFDD ComputeOamOffsetFromZpAE
label Label_EFE2 ComputeOamOffset
label Label_EFE8 LoadObjectRect
label Label_EFEB SubCEFEB
label Label_EFEF CheckObjectOverlap
label Label_EFF3 SubCEFF3
label Label_EFF5 SubCEFF3_Block
label Label_F018 SubCEFF3_Block_1
label Label_F057 SubCEFF3_Block_2
label Label_F059 SubCF059
label Label_F062 SubCF062
label Label_F063 ReadPtrBytePlusZp00
label Label_F069 ReadPtrBytePlusZp01
label Label_F070 SubCF070
label Label_F075 SubCF075
label Label_F078 DrawSpriteByMode
label Label_F080 SetSpriteDrawOffset
label Label_F082 DrawSpritePatternMode0
label Label_F086 SetSpriteDrawOffsetMode1
label Label_F088 DrawSpritePatternMode1
label Label_F08C SetSpriteDrawOffsetMode4
label Label_F08E DrawSpritePatternMode4
label Label_F092 SetSpritePatternParams
label Label_F094 DrawSpritePatternMode15
label Label_F096 DrawSpritePattern
label Label_F0CB DrawSpritePattern_Block
label Label_F0DC DrawSpritePattern_Block_1
label Label_F0E6 DrawSpritePattern_Block_2
label Label_F0E9 SubCF0E9
label Label_F0EF DrawSpritePattern_Block_3
label Label_F0F2 DrawSpritePatternReturn
label Label_F10A HideSpriteRange
label Label_F10E HideSpriteRange_Block
label Label_F11E DrawSpriteTileRun
label Label_F124 DrawSpriteTileRun_Block
label Label_F139 DrawSpriteGrid
label Label_F13B DrawSpriteGrid_Block
label Label_F141 DrawSpriteGrid_Block_1
label Label_F161 DrawSpriteMaskedGrid
label Label_F16A DrawSpriteMaskedGrid_Block
label Label_F16F DrawSpriteMaskedGrid_Block_1
label Label_F195 HideSpriteGrid
label Label_F197 HideSpriteGrid_Block
label Label_F19F HideSpriteGrid_Block_1
label Label_F1B4 ClearNametable
label Label_F1CE ClearNametable_Block
label Label_F1E5 ClearNametable_Block_1
label Label_F1EC FlushPpuBuffer_Block
label Label_F202 FlushPpuBuffer_Block_1
label Label_F20E FlushPpuBuffer_Block_2
label Label_F211 FlushPpuBuffer_Block_3
label Label_F214 FlushPpuBuffer_Block_4
label Label_F228 FlushPpuBuffer
label Label_F23C DrawLevelBlocks
label Label_F23F DrawLevelBlocks_Block
label Label_F248 DrawLevelBlocks_Block_1
label Label_F24E DrawLevelBlock
label Label_F28E DrawLevelBlock_Block
label Label_F296 DrawLevelBlock_Block_1
label Label_F29A DrawLevelBlock_Block_2
label Label_F2B0 DrawLevelBlock_Block_3
label Label_F2B4 DrawLevelBlock_Block_4
label Label_F2BE DrawLevelBlock_Block_5
label Label_F2C4 DrawLevelBlock_Block_6
label Label_F2D6 DrawLevelBlock_Block_7
label Label_F2D7 DrawVramBlock
label Label_F2EA DrawVramBlock_Block
label Label_F303 DrawVramBlock_Block_1
label Label_F32D AdvancePpuBufferWrite
label Label_F32F CheckPpuBufferOverflow
label Label_F33D CheckPpuBufferOverflow_Block
label Label_F33E SubtractBcdValue
label Label_F342 AddBcdValue
label Label_F344 AddBcdValue_Block
label Label_F355 AddBcdValue_Block_1
label Label_F35E ApplyBcdAddSub
label Label_F36B ApplyBcdAddSub_Block
label Label_F38E ApplyBcdAddSub_Block_1
label Label_F392 ApplyBcdAddSub_Block_2
label Label_F3C0 ApplyBcdAddSub_Block_3
label Label_F3C6 ApplyBcdAddSub_Block_4
label Label_F3E2 ApplyBcdAddSub_Block_5
label Label_F3E3 AddBcdNibble
label Label_F3EE AddBcdNibble_Block
label Label_F3FB AddBcdNibble_Block_1
label Label_F3FF AddBcdNibble_Block_2
label Label_F404 SubtractBcdNibble
label Label_F417 SubtractBcdNibble_Block
label Label_F423 SubtractBcdNibble_Block_1
label Label_F426 SplitBcdByte
label Label_F435 CompareBcdValues
label Label_F44A CompareBcdValues_Block
label Label_F453 CompareBcdValues_Block_1
label Label_F479 CompareBcdValues_Block_2
label Label_F47E CompareBcdValues_Block_3
label Label_F493 CompareBcdValues_Block_4
label Label_F49F CompareBcdValues_Block_5
label Label_F4A0 CompareBcdValues_Block_6
label Label_F4A4 CompareBcdValues_Block_7
label Label_F4A9 CompareBcdValues_Block_8
label Label_F4AC UpdateTimers
label Label_F4B8 UpdateTimers_Block
label Label_F4BE UpdateTimers_Block_1
label Label_F4C2 QueuePpuByteWrite
label Label_F4ED UpdateRandomSeed
label Label_F4FD UpdateRandomSeed_Block
label Label_F50E ReadControllers
label Label_F522 ReadControllerShift
label Label_F524 ReadControllerShift_Block
label Label_F549 ReadControllerShift_Block_1
label Label_F55A ReadControllerShift_Block_2
label Label_FA48 UpdateSoundEngine
label Label_FA64 UpdateSoundEngine_Block
label Label_FA6B UpdateSoundEngine_Block_1
label Label_FA7F UpdateSoundEngine_Block_2
label Label_FA82 UpdateSoundEngine_Block_3
label Label_FA86 FindHighestSetBit
label Label_FA88 FindHighestSetBit_Block
label Label_FA8E FindHighestSetBit_Block_1
label Label_FA8F SubCFA8F
label Label_FA93 WritePulse1ControlDefault
label Label_FA95 WritePulse1Control
label Label_FA9F WriteNoteFrequency
label Label_FAA1 WriteTriangleNote_Block
label Label_FAB2 WriteTriangleNote_Block_1
label Label_FAB3 WritePulse2Note
label Label_FABA WriteTriangleNote
label Label_FAC4 DecodeNotePeriod
label Label_FACA LookupNotePeriod
label Label_FAD5 SubCFAD5
label Label_FAD7 SubCFAD7
label Label_FAE0 SilencePulse1
label Label_FB75 ProcessSoundCommands_Block
label Label_FB7E ProcessSoundCommands_Block_1
label Label_FB89 ProcessSoundCommands_Block_2
label Label_FBA0 ProcessSoundCommands_Block_3
label Label_FBA7 ProcessSoundCommands_Block_4
label Label_FBAF ProcessSoundCommands_Block_5
label Label_FBB2 ProcessSoundCommands_Block_6
label Label_FBB7 ProcessSoundCommands_Block_7
label Label_FBC2 ProcessSoundCommands_Block_8
label Label_FBD4 ProcessSoundCommands_Block_9
label Label_FBD9 ProcessSoundCommands_Block_10
label Label_FBF2 ProcessSoundCommands
label Label_FC16 ProcessSoundCommands_Block_11
label Label_FC19 ProcessSoundCommands_Block_12
label Label_FC28 ProcessSoundCommands_Block_13
label Label_FC30 ProcessSoundCommands_Block_14
label Label_FC41 ProcessSoundCommands_Block_15
label Label_FC44 ProcessSoundCommands_Block_16
label Label_FC4B ProcessSoundCommands_Block_17
label Label_FC51 ProcessSoundCommands_Block_18
label Label_FC62 ProcessSoundCommands_Block_19
label Label_FC73 SubCFC90_Block
label Label_FC7F SubCFC90_Block_1
label Label_FC90 SubCFC90
label Label_FC9D SubCFC90_Block_2
label Label_FCBA SubCFC90_Block_3
label Label_FCBE SubCFC90_Block_4
label Label_FCC6 SubCFC90_Block_5
label Label_FCD1 SubCFC90_Block_6
label Label_FCDB SubCFC90_Block_7
label Label_FCDD SubCFC90_Block_8
label Label_FCF0 SubCFC90_Block_9
label Label_FD00 SubCFC90_Block_10
label Label_FD0B SubCFC90_Block_11
label Label_FD18 SubCFC90_Block_12
label Label_FD1D SubCFC90_Block_13
label Label_FD35 SubCFC90_Block_14
label Label_FD3A SubCFC90_Block_15
label Label_FD58 SubCFC90_Block_16
label Label_FD62 SubCFC90_Block_17
label Label_FD67 InitSoundEffect
label Label_FD9B InitSoundEffect_Block
label Label_FDA4 InitSoundEffect_Block_1
label Label_FDB8 InitSoundEffect_Block_2
label Label_FDC1 InitSoundEffect_Block_3
label Label_FDCF InitSoundEffect_Block_4
label Label_FDD8 InitSoundEffect_Block_5
label Label_FDE9 InitSoundEffect_Block_6
label Label_FE00 SilenceTriangleAndNoise
label Label_FE03 SilenceTriangleAndNoise_Block
label Label_FE09 InitSoundEffect_Block_7
label Label_FE1D InitSoundEffect_Block_8
label Label_FE2E InitSoundEffect_Block_9
label Label_FE31 InitSoundEffect_Block_10
label Label_FE4F InitSoundEffect_Block_11
label Label_FE55 InitSoundEffect_Block_12
label Label_FE58 InitSoundEffect_Block_13
zp Zp00 TempPtrLo
zp Zp01 TempPtrHi
zp Zp02 TempReg
zp Zp03 TempReg2
zp Zp04 TempReg3
zp Zp05 TempReg3
zp Zp06 TempReg4
zp Zp07 TempReg5
zp Zp08 TempReg6
zp Zp09 TempReg7
zp Zp0A TempReg8
zp Zp0B TempReg9
zp Zp0C TempReg10
zp Zp0D TempReg11
zp Zp0E TempReg12
zp Zp0F TempReg13
zp Zp10 PPUCtrlShadow
zp Zp11 PPUMaskShadow
zp Zp12 PPUScrollX
zp Zp13 PPUScrollY
zp Zp10 PPUCtrlShadow
zp Zp11 PPUMaskShadow
zp Zp12 PPUScrollX
zp Zp13 PPUScrollY
zp Zp14 TempReg14
zp Zp15 TempReg15
zp Zp16 TempReg16
zp Zp17 TempReg17
zp Zp18 TempReg18
zp Zp19 TempReg19
zp Zp1A TempReg20
zp Zp1B TempReg21
zp Zp1C TempReg22
zp Zp1D TempReg23
zp Zp1E TempReg24
zp Zp1F TempReg25
zp Zp20 TempReg26
zp Zp21 TempReg27
zp Zp22 TempReg28
zp Zp23 TempReg29
zp Zp24 TempReg30
zp Zp25 TempReg31
zp Zp26 TempReg32
zp Zp27 TempReg33
zp Zp28 TempReg34
zp Zp29 TempReg35
zp Zp2A TempReg36
zp Zp2B TempReg37
zp Zp2C TempReg38
zp Zp2D TempReg39
zp Zp2E TempReg40
zp Zp2F TempReg41
zp Zp2F TempReg42
zp Zp30 TempReg43
zp Zp31 TempReg44
zp Zp32 TempReg45
zp Zp33 TempReg46
zp Zp34 TempReg47
zp Zp35 TempReg48
zp Zp36 TempReg49
zp Zp37 TempReg50
zp Zp38 TempReg51
zp Zp39 TempReg52
zp Zp3A TempReg53
zp Zp3B TempReg54
zp Zp3C TempReg55
zp Zp3D TempReg56
zp Zp3E TempReg57
zp Zp3F TempReg58
zp Zp40 TempReg59
zp Zp41 TempReg60
zp Zp42 TempReg61
zp Zp43 TempReg62
zp Zp44 TempReg63
zp Zp45 TempReg64
zp Zp46 TempReg65
zp Zp47 TempReg66
zp Zp48 TempReg67
zp Zp49 TempReg68
zp Zp4A TempReg69
zp Zp4B TempReg70
zp Zp4C TempReg71
zp Zp4D TempReg72
zp Zp4E TempReg73
zp Zp4F TempReg74
zp Zp50 TempReg75
zp Zp51 TempReg76
zp Zp52 TempReg77
zp Zp53 TempReg78
zp Zp54 TempReg79
zp Zp55 TempReg80
zp Zp56 TempReg81
zp Zp57 TempReg82
zp Zp58 TempReg83
zp Zp59 TempReg84
zp Zp5A TempReg85
zp Zp5B TempReg86
zp Zp5C TempReg87
zp Zp5D TempReg88
zp Zp5E TempReg89
zp Zp5F TempReg90
zp Zp5F TempReg91
zp Zp60 TempReg92
zp Zp61 TempReg93
zp Zp62 TempReg94
zp Zp63 TempReg95
zp Zp64 TempReg96
zp Zp65 TempReg96
zp Zp66 TempReg97
zp Zp67 TempReg98
zp Zp68 TempReg99
zp Zp69 TempReg100
zp Zp6A TempReg101
zp Zp6B TempReg102
zp Zp6C TempReg103
zp Zp6D TempReg104
zp Zp6E TempReg105
zp Zp6F TempReg106
zp Zp70 TempReg107
zp Zp71 TempReg108
zp Zp72 TempReg109
zp Zp73 TempReg110
zp Zp74 TempReg111
zp Zp75 TempReg111
zp Zp76 TempReg112
zp Zp77 TempReg113
zp Zp78 TempReg114
zp Zp79 TempReg115
zp Zp7A TempReg116
zp Zp7B TempReg117
zp Zp7C TempReg118
zp Zp7D TempReg119
zp Zp7E TempReg120
zp Zp7F TempReg121
zp Zp80 TempReg122
zp Zp81 TempReg123
zp Zp82 TempReg124
zp Zp83 TempReg125
zp Zp84 TempReg126
zp Zp85 TempReg127
zp Zp86 TempReg128
zp Zp87 TempReg129
zp Zp88 TempReg130
zp Zp89 TempReg131
zp Zp8A TempReg132
zp Zp8B TempReg133
zp Zp8C TempReg134
zp Zp8D TempReg135
zp Zp8E TempReg136
zp Zp8F TempReg137
zp Zp90 TempReg138
zp Zp91 TempReg139
zp Zp92 TempReg140
zp Zp93 TempReg141
zp Zp94 TempReg141
zp Zp95 TempReg142
zp Zp96 TempReg143
zp Zp97 TempReg144
zp Zp98 TempReg145
zp Zp99 TempReg146
zp Zp9A TempReg147
zp Zp9B TempReg148
zp Zp9C TempReg149
zp Zp9D TempReg150
zp Zp9E TempReg151
zp Zp9F TempReg152
zp ZpA0 TempReg153
zp ZpA1 TempReg154
zp ZpA2 TempReg155
zp ZpA3 TempReg156
zp ZpA4 TempReg157
zp ZpA5 TempReg158
zp ZpA6 TempReg159
zp ZpA7 TempReg160
zp ZpA8 TempReg161
zp ZpA9 TempReg162
zp ZpAA TempReg163
zp ZpAB TempReg164
zp ZpAC TempReg165
zp ZpAD TempReg166
zp ZpAE TempReg167
zp ZpAF TempReg168
zp ZpB0 TempReg169
zp ZpB1 TempReg170
zp ZpB2 TempReg171
zp ZpB3 TempReg172
zp ZpB4 TempReg173
zp ZpB5 TempReg174
zp ZpB6 TempReg175
zp ZpB7 TempReg176
zp ZpB8 TempReg177
zp ZpB9 TempReg177
zp ZpBA TempReg178
zp ZpBB TempReg179
zp ZpBC TempReg180
zp ZpBD TempReg181
zp ZpBE TempReg182
zp ZpBF TempReg183
zp ZpC0 TempReg184
zp ZpC1 TempReg185
zp ZpC2 TempReg186
zp ZpC3 TempReg187
zp ZpC4 TempReg188
zp ZpC5 TempReg189
zp ZpC6 TempReg190
zp ZpC7 TempReg191
zp ZpC8 TempReg192
zp ZpC9 TempReg193
zp ZpCA TempReg194
zp ZpCB TempReg195
zp ZpCC TempReg196
zp ZpCD TempReg197
zp ZpCE TempReg198
zp ZpCF TempReg199
zp ZpD0 TempReg185
zp ZpD1 TempReg186
zp ZpD2 TempReg187
zp ZpD3 TempReg188
zp ZpD4 TempReg189
zp ZpD5 TempReg190
zp ZpD6 TempReg191
zp ZpD7 TempReg192
zp ZpD8 TempReg193
zp ZpD9 TempReg194
zp ZpDA TempReg195
zp ZpDB TempReg196
zp ZpDC TempReg197
zp ZpDD TempReg198
zp ZpDE TempReg199
zp ZpDF TempReg200
zp ZpE0 TempReg201
zp ZpE1 TempReg202
zp ZpE2 TempReg203
zp ZpE3 TempReg204
zp ZpE4 TempReg205
zp ZpE5 TempReg206
zp ZpE6 TempReg207
zp ZpE7 TempReg208
zp ZpE8 TempReg209
zp ZpE9 TempReg210
zp ZpEA TempReg211
zp ZpEB TempReg212
zp ZpEC TempReg213
zp ZpED TempReg214
zp ZpEE TempReg215
zp ZpEF TempReg216
zp ZpF0 TempReg217
zp ZpF1 TempReg218
zp ZpF2 TempReg219
zp ZpF3 TempReg220
zp ZpF4 TempReg221
zp ZpF5 TempReg222
zp ZpF6 TempReg223
zp ZpF7 TempReg224
zp ZpF8 TempReg225
zp ZpF9 TempReg226
zp ZpFA TempReg227
zp ZpFB TempReg228
zp ZpFC TempReg229
zp ZpFD TempReg230
zp ZpFE TempReg231
zp ZpFF TempReg232
zp Zp00 Zp00
zp Zp01 Zp01
zp Zp02 Zp02
zp Zp03 Zp03
zp Zp04 Zp04
zp Zp05 Zp05
zp Zp06 Zp06
zp Zp07 Zp07
zp Zp08 Zp08
zp Zp09 Zp09
zp Zp0A Zp0A
zp Zp0B Zp0B
zp Zp0C Zp0C
zp Zp0F Zp0F
zp Zp10 Zp10
zp Zp11 Zp11
zp Zp12 Zp12
zp Zp13 Zp13
zp Zp14 Zp14
zp Zp15 Zp15
zp Zp18 Zp18
zp Zp19 Zp19
zp Zp1A Zp1A
zp Zp1B Zp1B
zp Zp1C Zp1C
zp Zp1D Zp1D
zp Zp1E Zp1E
zp Zp1F Zp1F
zp Zp20 Zp20
zp Zp21 Zp21
zp Zp22 Zp22
zp Zp23 Zp23
zp Zp24 Zp24
zp Zp25 Zp25
zp Zp26 Zp26
zp Zp27 Zp27
zp Zp2C Zp2C
zp Zp2E Zp2E
zp Zp34 Zp34
zp Zp35 Zp35
zp Zp36 Zp36
zp Zp37 Zp37
zp Zp38 Zp38
zp Zp39 Zp39
zp Zp3A Zp3A
zp Zp3B Zp3B
zp Zp3F Zp3F
zp Zp40 Zp40
zp Zp41 Zp41
zp Zp43 Zp43
zp Zp44 Zp44
zp Zp45 Zp45
zp Zp46 Zp46
zp Zp47 Zp47
zp Zp48 Zp48
zp Zp49 Zp49
zp Zp4A Zp4A
zp Zp4B Zp4B
zp Zp4C Zp4C
zp Zp4D Zp4D
zp Zp4E Zp4E
zp Zp4F Zp4F
zp Zp50 Zp50
zp Zp51 Zp51
zp Zp52 Zp52
zp Zp53 Zp53
zp Zp54 Zp54
zp Zp55 Zp55
zp Zp56 Zp56
zp Zp57 Zp57
zp Zp58 Zp58
zp Zp59 Zp59
zp Zp5A Zp5A
zp Zp5B Zp5B
zp Zp5C Zp5C
zp Zp5D Zp5D
zp Zp5E Zp5E
zp Zp68 Zp68
zp Zp72 Zp72
zp Zp7D Zp7D
zp Zp7E Zp7E
zp Zp85 Zp85
zp Zp86 Zp86
zp Zp88 Zp88
zp Zp8A Zp8A
zp Zp94 Zp94
zp Zp95 Zp95
zp Zp96 Zp96
zp Zp97 Zp97
zp Zp98 Zp98
zp Zp99 Zp99
zp Zp9A Zp9A
zp Zp9B Zp9B
zp Zp9C Zp9C
zp Zp9D Zp9D
zp Zp9E Zp9E
zp Zp9F Zp9F
zp ZpA0 ZpA0
zp ZpA1 ZpA1
zp ZpA2 ZpA2
zp ZpA3 ZpA3
zp ZpAD ZpAD
zp ZpAE ZpAE
zp ZpAF ZpAF
zp ZpB3 ZpB3
zp ZpB7 ZpB7
zp ZpB8 ZpB8
zp ZpB9 ZpB9
zp ZpBE ZpBE
zp ZpBF ZpBF
zp ZpC0 ZpC0
zp ZpC1 ZpC1
zp ZpC2 ZpC2
zp ZpCC ZpCC
zp ZpCD ZpCD
zp ZpCE ZpCE
zp ZpCF ZpCF
zp ZpD0 ZpD0
zp ZpD2 ZpD2
zp ZpD3 ZpD3
zp ZpD4 ZpD4
zp ZpD5 ZpD5
zp ZpD8 ZpD8
zp ZpD9 ZpD9
zp ZpDA ZpDA
zp ZpDB ZpDB
zp ZpE0 ZpE0
zp ZpE4 ZpE4
zp ZpE8 ZpE8
zp ZpEC ZpEC
zp ZpF0 ZpF0
zp ZpF1 ZpF1
zp ZpF2 ZpF2
zp ZpF3 ZpF3
zp ZpF5 ZpF5
zp ZpF6 ZpF6
zp ZpF7 ZpF7
zp ZpF8 ZpF8
zp ZpF9 ZpF9
zp ZpFA ZpFA
zp ZpFB ZpFB
zp ZpFC ZpFC
zp ZpFD ZpFD
zp ZpFE ZpFE
zp ZpFF ZpFF