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.
12 KiB
12 KiB
| 1 | label | Label_C79E | Reset |
|---|---|---|---|
| 2 | label | Label_C7E1 | MainGameLoop |
| 3 | label | Label_C7E7 | InitPPU_1 |
| 4 | label | Label_C7E1 | GameLoopEntry |
| 5 | label | Label_C7E7 | InitPPURegisters |
| 6 | label | Label_C85F | NmiHandler |
| 7 | label | Label_C8C1 | NmiFrameUpdate |
| 8 | label | Label_C8CB | NmiFrameUpdate2 |
| 9 | label | Label_C8D4 | NmiFrameUpdate3 |
| 10 | label | Label_C8D7 | NmiFrameUpdate4 |
| 11 | label | Label_C8E8 | NmiFrameEnd |
| 12 | label | Label_C8F3 | InitAPURegisters |
| 13 | label | Label_C8F3 | InitAPU |
| 14 | label | Label_C8FE | InitSound_1 |
| 15 | label | Label_C914 | InitLevel |
| 16 | label | Label_C940 | UpdateGameState |
| 17 | label | Label_C95D | UpdateGameState2 |
| 18 | label | Label_C98A | UpdateGameState3 |
| 19 | label | Label_CA30 | UpdateSprites |
| 20 | label | Label_CA53 | UpdateSprites2 |
| 21 | label | Label_CA56 | CallCBAE |
| 22 | label | Label_CA5C | CallCBB7 |
| 23 | label | Label_CAA9 | CopyToOAM |
| 24 | label | Label_CAB9 | CopyFromOAM |
| 25 | label | Label_CAC9 | UpdateSpriteData |
| 26 | label | Label_CB1B | HandleController |
| 27 | label | Label_CBAE | ClearZeropage |
| 28 | label | Label_CBB7 | WaitVBlank_1 |
| 29 | label | Label_CBBD | UpdateScroll |
| 30 | label | Label_CBCA | UpdateScroll2 |
| 31 | label | Label_CBF4 | UpdateScroll3 |
| 32 | label | Label_CBF5 | UpdateOAM |
| 33 | label | Label_CBF7 | UpdateOAM2 |
| 34 | label | Label_CC03 | UpdateOAM3 |
| 35 | label | Label_CC04 | UpdateScroll4 |
| 36 | label | Label_CC23 | UpdateScroll5 |
| 37 | label | Label_CC34 | UpdateScroll6 |
| 38 | label | Label_CC47 | InitScroll |
| 39 | label | Label_CCC1 | UpdateScroll7 |
| 40 | label | Label_CCD6 | UpdateScroll8 |
| 41 | label | Label_CCF4 | CheckGameState_1 |
| 42 | label | Label_CD22 | UpdateGameTimer |
| 43 | label | Label_CD6F | UpdateSpritePosition |
| 44 | label | Label_CD76 | UpdateSpritePosition2 |
| 45 | label | Label_CD7F | UpdateSpritePosition3 |
| 46 | label | Label_CD89 | UpdateSpritePosition4 |
| 47 | label | Label_CD9D | UpdateSpritePosition5 |
| 48 | label | Label_CDB1 | UpdateSpritePosition6 |
| 49 | label | Label_CDCA | UpdateSpritePosition7 |
| 50 | label | Label_CE0E | UpdateSpritePosition8 |
| 51 | label | Label_CE24 | UpdateSpritePosition9 |
| 52 | label | Label_CE7C | UpdateSpritePosition10 |
| 53 | label | Label_CED6 | UpdateSpritePosition11 |
| 54 | label | Label_CF13 | UpdateSpritePosition12 |
| 55 | label | Label_CF19 | UpdateSpritePosition13_1 |
| 56 | label | Label_CF1C | UpdateSpritePosition13_3 |
| 57 | label | Label_CF2B | UpdateSpritePosition14 |
| 58 | label | Label_CF42 | UpdateSpritePosition15 |
| 59 | label | Label_CF87 | UpdateSpritePosition16 |
| 60 | label | Label_CFA8 | UpdateSpritePosition17 |
| 61 | label | Label_CFC6 | UpdateSpritePosition18 |
| 62 | label | Label_D008 | UpdateSpritePosition19 |
| 63 | label | Label_D032 | UpdateSpritePosition20 |
| 64 | label | Label_D041 | UpdateSpritePosition21_1 |
| 65 | label | Label_D04C | UpdateSpritePosition21_3 |
| 66 | label | Label_D086 | UpdateSpritePosition22_1 |
| 67 | label | Label_D0B5 | UpdateSpritePosition22_3 |
| 68 | label | Label_D0C0 | UpdateSpritePosition23 |
| 69 | label | Label_D11F | UpdateSpritePosition24 |
| 70 | label | Label_D169 | UpdateSpritePosition25 |
| 71 | label | Label_D175 | UpdateSpritePosition26 |
| 72 | label | Label_D19A | UpdateSpritePosition27 |
| 73 | label | Label_D1A4 | UpdateSpritePosition28 |
| 74 | label | Label_D1AA | UpdateSpritePosition29 |
| 75 | label | Label_D1CF | UpdateSpritePosition30 |
| 76 | label | Label_D208 | UpdateSpritePosition31 |
| 77 | label | Label_D25D | UpdateSpritePosition32 |
| 78 | label | Label_D275 | UpdateSpritePosition33 |
| 79 | label | Label_D28B | UpdateSpritePosition34 |
| 80 | label | Label_D2CB | UpdateSpritePosition35 |
| 81 | label | Label_D2DF | UpdateSpritePosition36 |
| 82 | label | Label_D2FD | UpdateSpritePosition37 |
| 83 | label | Label_D323 | UpdateSpritePosition38 |
| 84 | label | Label_D326 | UpdateSpritePosition39 |
| 85 | label | Label_D32F | UpdateSpritePosition40 |
| 86 | label | Label_D360 | UpdateSpritePosition41 |
| 87 | label | Label_D36A | UpdateSpritePosition42_1 |
| 88 | label | Label_D37B | UpdateSpritePosition42_3 |
| 89 | label | Label_D37E | UpdateSpritePosition43 |
| 90 | label | Label_D38E | UpdateSpritePosition44 |
| 91 | label | Label_D3AA | UpdateSpritePosition45 |
| 92 | label | Label_D3CC | UpdateSpritePosition46 |
| 93 | label | Label_D4A1 | UpdateSpritePosition47 |
| 94 | label | Label_D4B9 | UpdateSpritePosition48 |
| 95 | label | Label_D4CF | UpdateSpritePosition49 |
| 96 | label | Label_D4F0 | UpdateSpritePosition50 |
| 97 | label | Label_D5C1 | UpdateSpritePosition51 |
| 98 | label | Label_D5D1 | UpdateSpritePosition52 |
| 99 | label | Label_D5F5 | UpdateSpritePosition53 |
| 100 | label | Label_D6A8 | UpdateSpritePosition54 |
| 101 | label | Label_D730 | UpdateSpritePosition55 |
| 102 | label | Label_D739 | UpdateSpritePosition56 |
| 103 | label | Label_DBB6 | UpdateSpritePosition57 |
| 104 | label | Label_DBC8 | UpdateSpritePosition58 |
| 105 | label | Label_DBE3 | UpdateSpritePosition59 |
| 106 | label | Label_DBFA | UpdateSpritePosition60 |
| 107 | label | Label_DC0D | UpdateSpritePosition61 |
| 108 | label | Label_DC11 | UpdateSpritePosition62 |
| 109 | label | Label_DC3E | UpdateSpritePosition63 |
| 110 | label | Label_DCAA | UpdateSpritePosition64 |
| 111 | label | Label_DCDD | UpdateSpritePosition65 |
| 112 | label | Label_DCE3 | UpdateSpritePosition66 |
| 113 | label | Label_DCEC | UpdateSpritePosition67 |
| 114 | label | Label_DD32 | UpdateSpritePosition68 |
| 115 | label | Label_DD5D | UpdateSpritePosition69 |
| 116 | label | Label_DD75 | UpdateSpritePosition70 |
| 117 | label | Label_DD78 | UpdateSpritePosition71 |
| 118 | label | Label_DD8F | UpdateSpritePosition72 |
| 119 | label | Label_DD92 | UpdateSpritePosition73 |
| 120 | label | Label_DDA3 | UpdateSpritePosition74 |
| 121 | label | Label_DDAC | UpdateSpritePosition75 |
| 122 | label | Label_DDBE | UpdateSpritePosition76 |
| 123 | label | Label_DDBE | UpdateSpritePosition77 |
| 124 | label | Label_DDC7 | UpdateSpritePosition78 |
| 125 | label | Label_DDF1 | UpdateSpritePosition79 |
| 126 | label | Label_DE30 | UpdateSpritePosition80 |
| 127 | label | Label_DE41 | UpdateSpritePosition81 |
| 128 | label | Label_DE63 | UpdateSpritePosition82 |
| 129 | label | Label_DE75 | UpdateSpritePosition83 |
| 130 | label | Label_DE7E | UpdateSpritePosition84 |
| 131 | label | Label_DE30 | UpdateSoundEngine |
| 132 | label | Label_E023 | WaitVBlank_3 |
| 133 | label | Label_E025 | WaitVBlank2 |
| 134 | label | Label_E02C | WaitVBlank3 |
| 135 | label | Label_E035 | WaitPPUReady |
| 136 | label | Label_E046 | WaitFrame |
| 137 | label | Label_E049 | InitPPU_3 |
| 138 | label | Label_E09B | InitSprites |
| 139 | label | Label_E0E3 | DrawSprite |
| 140 | label | Label_E0EF | WritePPU |
| 141 | label | Label_E0F6 | WritePPU2 |
| 142 | label | Label_E0FD | InitGame |
| 143 | label | Label_E278 | UpdateBallTrajectory |
| 144 | label | Label_E28A | InitSound_3 |
| 145 | label | Label_E293 | InitSprites2 |
| 146 | label | Label_E2A6 | UpdateBallPhysics |
| 147 | label | Label_E3E2 | UpdateGameMode |
| 148 | label | Label_E403 | CheckGameState_3 |
| 149 | label | Label_E40E | UpdateDisplay |
| 150 | label | Label_E459 | UpdateDisplay2 |
| 151 | label | Label_E48C | UpdateSprites3 |
| 152 | label | Label_E497 | UpdateDisplay3 |
| 153 | label | Label_E4E2 | UpdateDisplay4 |
| 154 | label | Label_E506 | PlaySound |
| 155 | label | Label_E535 | PlaySoundEffect |
| 156 | label | Label_E54A | PlayMusic |
| 157 | label | Label_E5B2 | UpdateMusic |
| 158 | label | Label_E609 | UpdateMusicEngine |
| 159 | label | Label_E68F | UpdateMusicChannel |
| 160 | label | Label_E7AC | UpdateMusicChannel2 |
| 161 | label | Label_E94D | UpdateSoundEffects |
| 162 | label | Label_E96A | UpdateSoundChannel2 |
| 163 | label | Label_E9ED | UpdateSoundChannel3 |
| 164 | label | Label_EA2F | UpdateSoundChannels |
| 165 | label | Label_EA50 | UpdateSoundEffect |
| 166 | label | Label_EA58 | UpdateSoundEffect2 |
| 167 | label | Label_EAD1 | UpdateSoundChannel4 |
| 168 | label | Label_EAE5 | UpdateSoundChannel5 |
| 169 | label | Label_EB0D | UpdateSoundChannel6 |
| 170 | label | Label_EB27 | UpdateSoundChannel7 |
| 171 | label | Label_EB9D | UpdateSoundChannel8 |
| 172 | label | Label_EBF9 | UpdateSoundChannel9 |
| 173 | label | Label_EC80 | UpdateMusic2 |
| 174 | label | Label_EC8D | UpdateMusicChannel10 |
| 175 | label | Label_ED06 | UpdateMusicChannel11 |
| 176 | label | Label_EDB0 | UpdateMusicChannel12 |
| 177 | label | Label_EDED | UpdateMusicChannel13 |
| 178 | label | Label_EDF2 | UpdateMusicChannel14 |
| 179 | label | Label_EE3D | UpdateMusicChannel15 |
| 180 | label | Label_EE4D | UpdateMusicChannel16 |
| 181 | label | Label_EF28 | UpdateMusicChannel17 |
| 182 | label | Label_EF79 | UpdateMusicChannel18 |
| 183 | label | Label_EFD3 | UpdateMusicChannel19 |
| 184 | label | Label_EFDC | UpdateMusicChannel20 |
| 185 | label | Label_F03F | UpdateMusicChannel21 |
| 186 | label | Label_F06F | UpdateMusicChannel22 |
| 187 | label | Label_F0C4 | UpdateMusicChannel23 |
| 188 | label | Label_F0DF | UpdateMusicChannel24_1 |
| 189 | label | Label_F0E7 | UpdateMusicChannel24_3 |
| 190 | label | Label_F138 | UpdateMusicChannel25 |
| 191 | label | Label_F140 | UpdateMusicChannel26_1 |
| 192 | label | Label_F1FB | UpdateMusicChannel26_3 |
| 193 | label | Label_F226 | UpdateMusicChannel27 |
| 194 | label | Label_F2F0 | UpdateMusicChannel28 |
| 195 | label | Label_F321 | UpdateMusicChannel29 |
| 196 | label | Label_F3B9 | UpdateMusicChannel30 |
| 197 | label | Label_F3E8 | UpdateMusicChannel31 |
| 198 | label | Label_F41E | UpdateMusicChannel32 |
| 199 | label | Label_F44B | UpdateMusicChannel33 |
| 200 | label | Label_FB2C | UpdateAPU |
| 201 | label | Label_FB40 | UpdateAPU2 |
| 202 | label | Label_FB43 | UpdateAPU3 |
| 203 | label | Label_FB46 | UpdateAPU4 |
| 204 | label | Label_FB49 | UpdateAPU5 |
| 205 | label | Label_FB5D | UpdateAPU6 |
| 206 | label | Label_FB6E | UpdateAPU7 |
| 207 | label | Label_FBDD | UpdateAPU8 |
| 208 | label | Label_FC0F | UpdateAPU9 |
| 209 | label | Label_FC2B | UpdateAPU10 |
| 210 | label | Label_FC72 | UpdateAPU11 |
| 211 | label | Label_FCE2 | UpdateAPU12 |
| 212 | label | Label_FD0D | UpdateAPU13 |
| 213 | label | Label_FD55 | UpdateAPU14 |
| 214 | label | Label_FD91 | UpdateAPU15 |
| 215 | label | Label_FFDC | UpdateAPU16 |
| 216 | label | Label_FFE3 | UpdateAPU17 |
| 217 | label | Label_FFE9 | UpdateAPU18 |
| 218 | label | Label_FFF0 | UpdateAPU19 |
| 219 | label | Label_FFF7 | ResetVector |
| 220 | zp | Zp00 | TempPtrLo |
| 221 | zp | Zp01 | TempPtrHi |
| 222 | zp | Zp02 | TempReg |
| 223 | zp | Zp03 | TempReg2 |
| 224 | zp | Zp04 | TempReg3 |
| 225 | zp | Zp05 | TempReg3 |
| 226 | zp | Zp06 | TempReg4 |
| 227 | zp | Zp07 | TempReg5 |
| 228 | zp | Zp08 | TempReg6 |
| 229 | zp | Zp09 | TempReg7 |
| 230 | zp | Zp0A | TempReg8 |
| 231 | zp | Zp0B | TempReg9 |
| 232 | zp | Zp0C | TempReg10 |
| 233 | zp | Zp0D | TempReg11 |
| 234 | zp | Zp0E | TempReg12 |
| 235 | zp | Zp0F | TempReg13 |
| 236 | zp | Zp10 | PPUCtrlShadow |
| 237 | zp | Zp11 | PPUMaskShadow |
| 238 | zp | Zp12 | PPUScrollX |
| 239 | zp | Zp13 | PPUScrollY |
| 240 | zp | Zp10 | PPUCtrlShadow |
| 241 | zp | Zp11 | PPUMaskShadow |
| 242 | zp | Zp12 | PPUScrollX |
| 243 | zp | Zp13 | PPUScrollY |
| 244 | zp | Zp14 | TempReg14 |
| 245 | zp | Zp15 | TempReg15 |
| 246 | zp | Zp16 | TempReg16 |
| 247 | zp | Zp17 | TempReg17 |
| 248 | zp | Zp18 | TempReg18 |
| 249 | zp | Zp19 | TempReg19 |
| 250 | zp | Zp1A | TempReg20 |
| 251 | zp | Zp1B | TempReg21 |
| 252 | zp | Zp1C | TempReg22 |
| 253 | zp | Zp1D | TempReg23 |
| 254 | zp | Zp1E | TempReg24 |
| 255 | zp | Zp1F | TempReg25 |
| 256 | zp | Zp20 | TempReg26 |
| 257 | zp | Zp21 | TempReg27 |
| 258 | zp | Zp22 | TempReg28 |
| 259 | zp | Zp23 | TempReg29 |
| 260 | zp | Zp24 | TempReg30 |
| 261 | zp | Zp25 | TempReg31 |
| 262 | zp | Zp26 | TempReg32 |
| 263 | zp | Zp27 | TempReg33 |
| 264 | zp | Zp28 | TempReg34 |
| 265 | zp | Zp29 | TempReg35 |
| 266 | zp | Zp2A | TempReg36 |
| 267 | zp | Zp2B | TempReg37 |
| 268 | zp | Zp2C | TempReg38 |
| 269 | zp | Zp2D | TempReg39 |
| 270 | zp | Zp2E | TempReg40 |
| 271 | zp | Zp2F | TempReg41 |
| 272 | zp | Zp2F | TempReg42 |
| 273 | zp | Zp30 | TempReg43 |
| 274 | zp | Zp31 | TempReg44 |
| 275 | zp | Zp32 | TempReg45 |
| 276 | zp | Zp33 | TempReg46 |
| 277 | zp | Zp34 | TempReg47 |
| 278 | zp | Zp35 | TempReg48 |
| 279 | zp | Zp36 | TempReg49 |
| 280 | zp | Zp37 | TempReg50 |
| 281 | zp | Zp38 | TempReg51 |
| 282 | zp | Zp39 | TempReg52 |
| 283 | zp | Zp3A | TempReg53 |
| 284 | zp | Zp3B | TempReg54 |
| 285 | zp | Zp3C | TempReg55 |
| 286 | zp | Zp3D | TempReg56 |
| 287 | zp | Zp3E | TempReg57 |
| 288 | zp | Zp3F | TempReg58 |
| 289 | zp | Zp40 | TempReg59 |
| 290 | zp | Zp41 | TempReg60 |
| 291 | zp | Zp42 | TempReg61 |
| 292 | zp | Zp43 | TempReg62 |
| 293 | zp | Zp44 | TempReg63 |
| 294 | zp | Zp45 | TempReg64 |
| 295 | zp | Zp46 | TempReg65 |
| 296 | zp | Zp47 | TempReg66 |
| 297 | zp | Zp48 | TempReg67 |
| 298 | zp | Zp49 | TempReg68 |
| 299 | zp | Zp4A | TempReg69 |
| 300 | zp | Zp4B | TempReg70 |
| 301 | zp | Zp4C | TempReg71 |
| 302 | zp | Zp4D | TempReg72 |
| 303 | zp | Zp4E | TempReg73 |
| 304 | zp | Zp4F | TempReg74 |
| 305 | zp | Zp50 | TempReg75 |
| 306 | zp | Zp51 | TempReg76 |
| 307 | zp | Zp52 | TempReg77 |
| 308 | zp | Zp53 | TempReg78 |
| 309 | zp | Zp54 | TempReg79 |
| 310 | zp | Zp55 | TempReg80 |
| 311 | zp | Zp56 | TempReg81 |
| 312 | zp | Zp57 | TempReg82 |
| 313 | zp | Zp58 | TempReg83 |
| 314 | zp | Zp59 | TempReg84 |
| 315 | zp | Zp5A | TempReg85 |
| 316 | zp | Zp5B | TempReg86 |
| 317 | zp | Zp5C | TempReg87 |
| 318 | zp | Zp5D | TempReg88 |
| 319 | zp | Zp5E | TempReg89 |
| 320 | zp | Zp5F | TempReg90 |
| 321 | zp | Zp5F | TempReg91 |
| 322 | zp | Zp60 | TempReg92 |
| 323 | zp | Zp61 | TempReg93 |
| 324 | zp | Zp62 | TempReg94 |
| 325 | zp | Zp63 | TempReg95 |
| 326 | zp | Zp64 | TempReg96 |
| 327 | zp | Zp65 | TempReg96 |
| 328 | zp | Zp66 | TempReg97 |
| 329 | zp | Zp67 | TempReg98 |
| 330 | zp | Zp68 | TempReg99 |
| 331 | zp | Zp69 | TempReg100 |
| 332 | zp | Zp6A | TempReg101 |
| 333 | zp | Zp6B | TempReg102 |
| 334 | zp | Zp6C | TempReg103 |
| 335 | zp | Zp6D | TempReg104 |
| 336 | zp | Zp6E | TempReg105 |
| 337 | zp | Zp6F | TempReg106 |
| 338 | zp | Zp70 | TempReg107 |
| 339 | zp | Zp71 | TempReg108 |
| 340 | zp | Zp72 | TempReg109 |
| 341 | zp | Zp73 | TempReg110 |
| 342 | zp | Zp74 | TempReg111 |
| 343 | zp | Zp75 | TempReg111 |
| 344 | zp | Zp76 | TempReg112 |
| 345 | zp | Zp77 | TempReg113 |
| 346 | zp | Zp78 | TempReg114 |
| 347 | zp | Zp79 | TempReg115 |
| 348 | zp | Zp7A | TempReg116 |
| 349 | zp | Zp7B | TempReg117 |
| 350 | zp | Zp7C | TempReg118 |
| 351 | zp | Zp7D | TempReg119 |
| 352 | zp | Zp7E | TempReg120 |
| 353 | zp | Zp7F | TempReg121 |
| 354 | zp | Zp80 | TempReg122 |
| 355 | zp | Zp81 | TempReg123 |
| 356 | zp | Zp82 | TempReg124 |
| 357 | zp | Zp83 | TempReg125 |
| 358 | zp | Zp84 | TempReg126 |
| 359 | zp | Zp85 | TempReg127 |
| 360 | zp | Zp86 | TempReg128 |
| 361 | zp | Zp87 | TempReg129 |
| 362 | zp | Zp88 | TempReg130 |
| 363 | zp | Zp89 | TempReg131 |
| 364 | zp | Zp8A | TempReg132 |
| 365 | zp | Zp8B | TempReg133 |
| 366 | zp | Zp8C | TempReg134 |
| 367 | zp | Zp8D | TempReg135 |
| 368 | zp | Zp8E | TempReg136 |
| 369 | zp | Zp8F | TempReg137 |
| 370 | zp | Zp90 | TempReg138 |
| 371 | zp | Zp91 | TempReg139 |
| 372 | zp | Zp92 | TempReg140 |
| 373 | zp | Zp93 | TempReg141 |
| 374 | zp | Zp94 | TempReg141 |
| 375 | zp | Zp95 | TempReg142 |
| 376 | zp | Zp96 | TempReg143 |
| 377 | zp | Zp97 | TempReg144 |
| 378 | zp | Zp98 | TempReg145 |
| 379 | zp | Zp99 | TempReg146 |
| 380 | zp | Zp9A | TempReg147 |
| 381 | zp | Zp9B | TempReg148 |
| 382 | zp | Zp9C | TempReg149 |
| 383 | zp | Zp9D | TempReg150 |
| 384 | zp | Zp9E | TempReg151 |
| 385 | zp | Zp9F | TempReg152 |
| 386 | zp | ZpA0 | TempReg153 |
| 387 | zp | ZpA1 | TempReg154 |
| 388 | zp | ZpA2 | TempReg155 |
| 389 | zp | ZpA3 | TempReg156 |
| 390 | zp | ZpA4 | TempReg157 |
| 391 | zp | ZpA5 | TempReg158 |
| 392 | zp | ZpA6 | TempReg159 |
| 393 | zp | ZpA7 | TempReg160 |
| 394 | zp | ZpA8 | TempReg161 |
| 395 | zp | ZpA9 | TempReg162 |
| 396 | zp | ZpAA | TempReg163 |
| 397 | zp | ZpAB | TempReg164 |
| 398 | zp | ZpAC | TempReg165 |
| 399 | zp | ZpAD | TempReg166 |
| 400 | zp | ZpAE | TempReg167 |
| 401 | zp | ZpAF | TempReg168 |
| 402 | zp | ZpB0 | TempReg169 |
| 403 | zp | ZpB1 | TempReg170 |
| 404 | zp | ZpB2 | TempReg171 |
| 405 | zp | ZpB3 | TempReg172 |
| 406 | zp | ZpB4 | TempReg173 |
| 407 | zp | ZpB5 | TempReg174 |
| 408 | zp | ZpB6 | TempReg175 |
| 409 | zp | ZpB7 | TempReg176 |
| 410 | zp | ZpB8 | TempReg177 |
| 411 | zp | ZpB9 | TempReg177 |
| 412 | zp | ZpBA | TempReg178 |
| 413 | zp | ZpBB | TempReg179 |
| 414 | zp | ZpBC | TempReg180 |
| 415 | zp | ZpBD | TempReg181 |
| 416 | zp | ZpBE | TempReg182 |
| 417 | zp | ZpBF | TempReg183 |
| 418 | zp | ZpC0 | TempReg184 |
| 419 | zp | ZpC1 | TempReg185 |
| 420 | zp | ZpC2 | TempReg186 |
| 421 | zp | ZpC3 | TempReg187 |
| 422 | zp | ZpC4 | TempReg188 |
| 423 | zp | ZpC5 | TempReg189 |
| 424 | zp | ZpC6 | TempReg190 |
| 425 | zp | ZpC7 | TempReg191 |
| 426 | zp | ZpC8 | TempReg192 |
| 427 | zp | ZpC9 | TempReg193 |
| 428 | zp | ZpCA | TempReg194 |
| 429 | zp | ZpCB | TempReg195 |
| 430 | zp | ZpCC | TempReg196 |
| 431 | zp | ZpCD | TempReg197 |
| 432 | zp | ZpCE | TempReg198 |
| 433 | zp | ZpCF | TempReg199 |
| 434 | zp | ZpD0 | TempReg185 |
| 435 | zp | ZpD1 | TempReg186 |
| 436 | zp | ZpD2 | TempReg187 |
| 437 | zp | ZpD3 | TempReg188 |
| 438 | zp | ZpD4 | TempReg189 |
| 439 | zp | ZpD5 | TempReg190 |
| 440 | zp | ZpD6 | TempReg191 |
| 441 | zp | ZpD7 | TempReg192 |
| 442 | zp | ZpD8 | TempReg193 |
| 443 | zp | ZpD9 | TempReg194 |
| 444 | zp | ZpDA | TempReg195 |
| 445 | zp | ZpDB | TempReg196 |
| 446 | zp | ZpDC | TempReg197 |
| 447 | zp | ZpDD | TempReg198 |
| 448 | zp | ZpDE | TempReg199 |
| 449 | zp | ZpDF | TempReg200 |
| 450 | zp | ZpE0 | TempReg201 |
| 451 | zp | ZpE1 | TempReg202 |
| 452 | zp | ZpE2 | TempReg203 |
| 453 | zp | ZpE3 | TempReg204 |
| 454 | zp | ZpE4 | TempReg205 |
| 455 | zp | ZpE5 | TempReg206 |
| 456 | zp | ZpE6 | TempReg207 |
| 457 | zp | ZpE7 | TempReg208 |
| 458 | zp | ZpE8 | TempReg209 |
| 459 | zp | ZpE9 | TempReg210 |
| 460 | zp | ZpEA | TempReg211 |
| 461 | zp | ZpEB | TempReg212 |
| 462 | zp | ZpEC | TempReg213 |
| 463 | zp | ZpED | TempReg214 |
| 464 | zp | ZpEE | TempReg215 |
| 465 | zp | ZpEF | TempReg216 |
| 466 | zp | ZpF0 | TempReg217 |
| 467 | zp | ZpF1 | TempReg218 |
| 468 | zp | ZpF2 | TempReg219 |
| 469 | zp | ZpF3 | TempReg220 |
| 470 | zp | ZpF4 | TempReg221 |
| 471 | zp | ZpF5 | TempReg222 |
| 472 | zp | ZpF6 | TempReg223 |
| 473 | zp | ZpF7 | TempReg224 |
| 474 | zp | ZpF8 | TempReg225 |
| 475 | zp | ZpF9 | TempReg226 |
| 476 | zp | ZpFA | TempReg227 |
| 477 | zp | ZpFB | TempReg228 |
| 478 | zp | ZpFC | TempReg229 |
| 479 | zp | ZpFD | TempReg230 |
| 480 | zp | ZpFE | TempReg231 |
| 481 | zp | ZpFF | TempReg232 |