Files
disasm/Lode Runner (U)/copilot/loderunner_routinemap.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

4.1 KiB

1C000Reset
2C002WaitVBlank_E023_1
3C023InitGameState
4C02CNmiHandler
5C03BMainGameLoop
6C04AClearSpriteRAM
7C058InitLevel
8C09BCheckGameMode
9C0AEGameModeTitle
10C0BCGameModePlay
11C0BFWaitVBlank_E023Frame
12C0CCCheckController
13C0D3UpdateFrameCounter
14C0E9CheckHighScore
15C10EProcessController
16C181UpdateSprites_C34B_1
17C25ANmiFrameEnd
18C26FHandleBonus
19C27FGameStateUpdate
20C294InitBallLaunch
21C2DEDrawPlayfield
22C301DrawStatusBar
23C32EDrawDigits
24C34BUpdateSprites_C34B_3
25C37CBallPhysicsMain
26C38CCheckTilt
27C3B1UpdateFlipper
28C3B7UpdateBallTrajectory
29C3C7BallLost
30C3CEUpdateBonusTimer
31C3D3BallLostSequence
32C3E0DrawGameOver
33C3F4ClearPlayfield
34C403CheckGameOver
35C40EDrawNumber
36C4A1ReadPPUData
37C4B9ReadPPUDataY
38C4CFUpdateScoreDisplay
39C4F0UpdateFlippers
40C5C1UpdateFlippersState
41C5D1UpdateFlipperSprites
42C5F5UpdateBallSprites
43C6A8UpdateBallPosition
44C730CheckBallCollision
45C739CheckBallInHole
46C7C2IncrementBonus
47C7D3UpdateBonusDisplay
48CE6CInitializeRAM
49CEF2ProcessSpriteData
50CF04ProcessSpriteAttributes
51CF82ProcessSpriteAttributes2
52CFECUpdateSprites_C34B2
53D03CUpdateScore
54D07CUpdateBallY
55D093UpdateBallX
56D0ADUpdateScore2
57D0E0UpdateFlipperSound
58D159UpdateBallPosition_3
59D15BUpdateBallPosition2
60D191UpdateBallY2
61D1FBUpdateBallSprite
62D296CheckCollision
63D2E4CheckFlipperHit
64D2E9CheckBallPocket
65D334CheckBallVelocity
66D359CheckBallPosition
67D386CheckTiltSwitch
68D390DrawScore
69D3AAUpdateScoreDisplay_3
70D3CCUpdateScoreDigits
71D4A1ReadPPUData
72D4B9ReadPPUDataY
73D4CFUpdateScoreDisplay2
74D4F0UpdateFlippers_3
75D5C1CheckFlipperPressed
76D5D1UpdateFlipperState
77D5F5UpdateFlipperSprites_3
78D6A8UpdateBallVelocity
79D730CheckBallSpeed
80D739UpdateBallDirection
81DBB6UpdateBumper
82DBC8UpdateBumperState
83DBE3UpdateBumperHit
84DBFAUpdateBumperSprites
85DC0DUpdateBumperState2
86DC11UpdateBumperState3
87DC3EUpdateBumperHit2
88DCAAUpdateBumperState4
89DCDDUpdateBumperChain
90DCE3UpdateBumperState5
91DCECUpdateBumperState6
92DD32UpdateBumperChain2
93DD5DUpdateBumperState7
94DD75UpdateBumperState8
95DD78UpdateBumperState9
96DD8FUpdateBumperState10
97DD92UpdateBumperState11
98DDA3UpdateBumperState12
99DDACUpdateBumperState13
100DDBEUpdateBumperHit4
101DDC7UpdateBumperState15
102DDF1UpdateBumperState16
103DE30UpdateSoundEngine
104DE41UpdateSoundChannel
105DE63UpdateSoundChannel2
106DE75UpdateSoundChannel3
107DE7EUpdateSoundChannel4
108E023WaitVBlank_E023Loop
109E025WaitVBlank_E023_3
110E02CWaitVBlank_E0232
111E035WaitPPUReady
112E046WaitFrame
113E049InitPPU
114E09BInitSprites
115E0E3DrawSprite
116E0EFWritePPU
117E0F6WritePPU2
118E0FDInitGame
119E278UpdateBallTrajectory
120E28AInitSound
121E293InitSprites2
122E2A6UpdateBallPhysics
123E3E2UpdateGameMode
124E403CheckGameState
125E40EUpdateDisplay
126E459UpdateDisplay2
127E48CUpdateSprites_C34B3
128E497UpdateDisplay3
129E4E2UpdateDisplay4
130E506PlaySound
131E535PlaySoundEffect
132E54APlayMusic
133E5B2UpdateMusic
134E609UpdateMusicEngine
135E68FUpdateMusicChannel
136E7ACUpdateMusicChannel2
137E94DUpdateSoundEffects
138E96AUpdateSoundChannel2
139E9EDUpdateSoundChannel3
140EA2FUpdateSoundChannels
141EA50UpdateSoundEffect
142EA58UpdateSoundEffect2
143EAD1UpdateSoundChannel4
144EAE5UpdateSoundChannel5
145EB0DUpdateSoundChannel6
146EB27UpdateSoundChannel7
147EB9DUpdateSoundChannel8
148EBF9UpdateSoundChannel9
149EC80UpdateMusic2
150EC8DUpdateMusicChannel10
151ED06UpdateMusicChannel11
152EDB0UpdateMusicChannel12
153EDEDUpdateMusicChannel13
154EDF2UpdateMusicChannel14
155EE3DUpdateMusicChannel15
156EE4DUpdateMusicChannel16
157EF28UpdateMusicChannel17
158EF79UpdateMusicChannel18
159EFD3UpdateMusicChannel19
160EFDCUpdateMusicChannel19
161F03FUpdateMusicChannel21
162F06FUpdateMusicChannel22
163F0C4UpdateMusicChannel23
164F0DFUpdateMusicChannel24
165F0E7UpdateMusicChannel25
166F138UpdateMusicChannel26
167F140UpdateMusicChannel27
168F1FBUpdateMusicChannel28
169F226UpdateMusicChannel29
170F2F0UpdateMusicChannel30
171F321UpdateMusicChannel31
172F3B9UpdateMusicChannel32
173F3E8UpdateMusicChannel33
174F41EUpdateMusicChannel34
175F44BUpdateMusicChannel35
176FB2CUpdateAPU
177FB40UpdateAPU2
178FB43UpdateAPU3
179FB46UpdateAPU4
180FB49UpdateAPU5
181FB5DUpdateAPU6
182FB6EUpdateAPU7
183FBDDUpdateAPU8
184FC0FUpdateAPU9
185FC2BUpdateAPU10
186FC72UpdateAPU11
187FCE2UpdateAPU12
188FD0DUpdateAPU13
189FD55UpdateAPU14
190FD91UpdateAPU15
191FFDCUpdateAPU16
192FFE3UpdateAPU17
193FFE9UpdateAPU18
194FFF0UpdateAPU19
195FFF7ResetVector
196FFF9IrqHandler