Files
disasm/Pinball (JU)/copilot/data_regions.tsv
T
tmerritt 9eb04ea7ef Adds overview for WIP projects
Promote Ice Climber (JE) and Ice Climber (U) to top-level

- git mv _wip/Ice Climber (JE) -> Ice Climber (JE)
- git mv _wip/Ice Climber (U) -> Ice Climber (U)

- Added header.s / chr.s (one-line .incbin each)
- Added HEADER/PRG/CHR linker.cfg with proper memory layout
- Added copilot/rom.nes symlink to original ROM
- Updated Makefile for whole-ROM build (reconstructed.nes vs rom.nes)
- Updated _tools paths from ../../../_tools/ to ../../_tools/

Both projects: Pass 1/2/3 complete, byte-identical at whole-ROM level (verified).

Root OVERVIEW.md updated:
- Inventory: Ice Climber JE/U moved from _wip/ rows 23-24 to top-level rows 21-22
- Tier split: BYTE-IDENTICAL now rows 1-22 (+36), PRG-IDENTICAL rows 23-35
- Summary table: Added Ice Climber JE/U as rows 21-22
- _wip/ section: count 17 -> 15
- verify_pass1.py scope: 19 -> 22 top-level projects

All 22 top-level projects verified byte-identical.

Promote Lode Runner (U) to top-level: Pass 2/3 complete, whole-ROM byte-identical

- git mv _wip/Lode Runner (U) -> Lode Runner (U)

- Added header.s / chr.s (one-line .incbin each)
- Added HEADER/PRG/CHR linker.cfg with proper memory layout
- Added copilot/rom.nes symlink to original ROM
- Updated Makefile for whole-ROM build (reconstructed.nes vs rom.nes)

Both projects: Pass 2/3 complete, byte-identical at whole-ROM level (verified).

Root OVERVIEW.md updated:
- Inventory: Lode Runner moved from _wip/ row 25 to top-level row 23
- Tier split: BYTE-IDENTICAL now rows 1-23 (+36), PRG-IDENTICAL rows 24-35
- Summary table: Added Lode Runner as row 23 with BYTE-IDENTICAL (Pass 2/3 complete)
- _wip/ section: count 15 -> 14
- verify_pass1.py scope: 22 -> 23 top-level projects
- Audit comment count: 19 -> 22 top-level projects
- Pass 3 symbols: 19 -> 22 top-level projects

All 23 top-level projects verified byte-identical.

TODO.md updated:
- Current state: 22 -> 23 top-level projects
- _wip/ count: 15 -> 14
- verify_pass1.py scope: 22 -> 23
- Audit comment count: 19 -> 22
- Pass 3 symbols: 19 -> 22
- Label residue table: Ice Climber JE/U removed, Lode Runner added
- Five false Pass 2 claims section updated with Ice Climber & Lode Runner completions

Promote Pinball (JU) to top-level: Pass 2/3 complete, whole-ROM byte-identical

- git mv _wip/Pinball (JU) -> Pinball (JU)

- Added header.s / chr.s (one-line .incbin each)
- Added HEADER/PRG/CHR linker.cfg with proper memory layout
- Added copilot/rom.nes symlink to original ROM
- Updated Makefile for whole-ROM build (reconstructed.nes vs rom.nes)

Both projects: Pass 2/3 complete, byte-identical at whole-ROM level (verified).

Root OVERVIEW.md updated:
- Inventory: Pinball moved from _wip/ row 30 to top-level row 24
- Tier split: BYTE-IDENTICAL now rows 1-24 (+36), PRG-IDENTICAL rows 25-35
- Summary table: Added Pinball as row 24 with BYTE-IDENTICAL (Pass 2/3 complete)
- _wip/ section: count 13, rows 25-35
- verify_pass1.py scope: 23 -> 24 top-level projects
- Audit comment count: 19 -> 22 top-level projects
- Pass 3 symbols: 19 -> 22 top-level projects

All 24 top-level projects verified byte-identical.

TODO.md updated:
- Current state: 23 -> 24 top-level projects
- _wip/ count: 14 -> 13
- verify_pass1.py scope: 23 -> 24
- Label residue table updated
- Documentation follow-ups updated

Promote Millipede (U) and Popeye (JU) (PRG 0) to top-level

Promote two _wip/ projects out of _wip/ into top-level folders, each now
verified whole-ROM byte-identical against the original ROM.

- Millipede (U): moves all copilot files up, adds header.s, chr.s,
  linker.cfg with PRG+HEADER+CHR areas, rom.nes copy, and switches the
  Makefile from PRG-only cmp to whole-ROM cmp. Makefile _tools depth
  adjusted (../../../../_tools/ -> ../../_tools/).
- Popeye (JU) (PRG 0): same promotion treatment.
- AGENTS.md: update layout notes (19 top-level projects mention the
  canonical audit format; update tier counts 27->29 top-level / 9->7 _wip).
- OVERVIEW.md: root inventory table updated with the two promotions and
  re-numbered _wip rows.
- TODO.md: handoff updates.
- Remaining _wip projects: assorted pass 2/3 edits (prg.s, locals.inc,
  reconstructed.lbl, reconstructed_prg.bin) for Popeye (JU) (PRG 1),
  Pyramid (U), Raid on Bungeling Bay (U), Raid on Bungeling Bay (U) [a2].
2026-10-19 19:58:41 -04:00

3.0 KiB

1# Pinball (JU) data-region structure - Pass 3
2# start<TAB>end<TAB>label<TAB>format<TAB>comment
30xC16A0xC180SoundPointerTablewordPass 3: 11 word pointers to sound data (index = sound ID).
40xC4000xCBA6ControllerKeyTablebytesPass 3: Controller key mapping table (1959 bytes).
50xCDB50xCE4DSpriteMetatileTablebytesPass 3: Sprite metatile definitions (153 bytes).
60xCE550xCE6BSpriteAnimationTablebytesPass 3: Sprite animation data (23 bytes).
70xD74B0xDBB5PlayfieldDatabytesPass 3: Playfield layout data (1131 bytes).
80xDC2D0xDC2DBytebytesPass 3: Single byte.
90xDCA20xDCA9SpriteDMATablebytesPass 3: Sprite DMA source data (8 bytes).
100xDDE50xDDF0SpritePaletteTablebytesPass 3: Sprite palette data (12 bytes).
110xDE030xDE1ABallPhysicsTablebytesPass 3: Ball physics parameters (24 bytes).
120xDE240xDE2FBallCollisionTablebytesPass 3: Ball collision parameters (12 bytes).
130xDE870xDFE7PlayfieldLayoutbytesPass 3: Playfield layout data (353 bytes).
140xE0480xE048BytebytesPass 3: Single byte.
150xE2B80xE3E1LevelDatabytesPass 3: Level layout data (298 bytes).
160xE4820xE48BLevelData2bytesPass 3: Level data (10 bytes).
170xE5760xE5B5ScoreDisplayTablebytesPass 3: Score display data (64 bytes).
180xE7870xE7ABFlipperDatabytesPass 3: Flipper position data (37 bytes).
190xEA600xEAD0SoundSequenceDatabytesPass 3: Sound sequence data (113 bytes).
200xEB5A0xEB5ABytebytesPass 3: Single byte.
210xEB660xEB9CSoundSequenceData2bytesPass 3: Sound sequence data (55 bytes).
220xEBE10xEBF8SoundSequenceData3bytesPass 3: Sound sequence data (24 bytes).
230xEC4B0xEC7FSoundSequenceData4bytesPass 3: Sound sequence data (53 bytes).
240xECEE0xED05SoundSequenceData5bytesPass 3: Sound sequence data (24 bytes).
250xED2E0xEDAFSoundSequenceData6bytesPass 3: Sound sequence data (130 bytes).
260xEDE60xEDECSoundSequenceData7bytesPass 3: Sound sequence data (7 bytes).
270xEE370xEE3CSoundSequenceData8bytesPass 3: Sound sequence data (6 bytes).
280xEEDB0xEF27BallPhysicsTable2bytesPass 3: Ball physics parameters 2 (77 bytes).
290xEFBA0xEFD2BallCollisionTablebytesPass 3: Ball collision parameters (25 bytes).
300xF0DB0xF0DESoundEffectPointerswordPass 3: Sound effect pointers (4 bytes).
310xF2200xF225FlipperStateTablebytesPass 3: Flipper state table (6 bytes).
320xF2E70xF2EFBallVelocityTablebytesPass 3: Ball velocity table (9 bytes).
330xF3B10xF3B8FlipperTimerTablebytesPass 3: Flipper timer table (8 bytes).
340xF4160xF41DBumperStateTablebytesPass 3: Bumper state table (8 bytes).
350xF4AC0xFB2BGameDatabytesPass 3: Main game data block (1664 bytes).
360xFB450xFB45BytebytesPass 3: Single byte.
370xFB480xFB48BytebytesPass 3: Single byte.
380xFCA80xFCB3ScoreDisplayTable2bytesPass 3: Score display data (12 bytes).
390xFD1E0xFD23BallPhysicsTable3bytesPass 3: Ball physics parameters 3 (6 bytes).
400xFEC60xFFDBGameStateDatabytesPass 3: Game state data (278 bytes).
410xFFF60xFFF6BytebytesPass 3: Single byte.
420xFFFA0xFFFFInterruptVectorswordPass 3: NMI/RESET/IRQ vectors.