Pass 1 verification for Balloon Fight / DK Jr, and fix DK 3 branch-target bug
Balloon Fight (JU) - verified complete (in 7d7d78d).
Donkey Kong Jr. (JU) - no source changes needed. Full byte-accounting audit of
prg.s: all 16,384 PRG bytes emitted exactly once (6,199 instructions + 3,889
.byte + 16 .word), every emitted value equals the ROM byte, zero audit-comment
mismatches, zero duplicate addresses, no .incbin remains. The complete-opcode
tracer reaches 6,135 instructions / 12,358 code bytes, all of which are already
in the file; the file carries 121 further code bytes the tracer does not find,
reached through the DeferredTaskHandlerTable dispatch at $BFFE.
Donkey Kong 3 (JUE) - real bug fix. The project was recorded as BYTE-IDENTICAL
but had never built byte-identical: its committed reconstructed.nes also
differed from rom.nes. The bne at CPU $C14C (PRG $014C) is annotated 'D0 12'
(target $C160) but assembled as 'D0 0D', because it referenced
StoreSelectedPlayerAndScreenFlags ($C15B) instead of the routine actually at
$C160. Retargeted to ClearAudioSetGameMode, which is also the semantically
correct destination for a 'mode != $01' test. cmp now passes.
Root OVERVIEW.md: added a Pass 1 methodology section recording both Pass 1
limitations (documented-opcodes-only, and no runtime dispatch) with the measured
per-project impact, and flagged Joypad Test Cartridge as the one project still
carrying the truncated Pass 1.
All 15 top-level projects verified byte-identical.
This commit is contained in:
1 parent
7d7d78dcda
commit
e9caa8cb36
4 files changed
+39
-10
No files matched your search
@@ -364,7 +364,7 @@ DispatchGameModePhase:
|
||||
cmp #$20 ; PRG $0146 | CPU $C146 | C9 20
|
||||
bne CheckGameModeZero ; PRG $0148 | CPU $C148 | D0 1D
|
||||
cpx #$01 ; PRG $014A | CPU $C14A | E0 01
|
||||
bne StoreSelectedPlayerAndScreenFlags ; PRG $014C | CPU $C14C | D0 12
|
||||
bne ClearAudioSetGameMode ; PRG $014C | CPU $C14C | D0 12
|
||||
lda StartInputLatch ; PRG $014E | CPU $C14E | A5 37
|
||||
bne ClampScreenSelectionPositionMin ; PRG $0150 | CPU $C150 | D0 21
|
||||
ldy SelectedPlayerAndScreenFlags ; PRG $0152 | CPU $C152 | A4 38
|
||||
|
||||
@@ -650,10 +650,10 @@ al 00C1C9 .FillNametableTileBytes
|
||||
al 00C1A9 .ClearNametable2000WithTile24
|
||||
al 00C1AD .FillNametableAndClearAttributes
|
||||
al 00C17D .ConvertPlayerSlotToOamOffset
|
||||
al 00C160 .ClearAudioSetGameMode
|
||||
al 00C16F .UpdateZp_37_C16F
|
||||
al 00C173 .ClampScreenSelectionPositionMin
|
||||
al 00C15B .StoreSelectedPlayerAndScreenFlags
|
||||
al 00C173 .ClampScreenSelectionPositionMin
|
||||
al 00C160 .ClearAudioSetGameMode
|
||||
al 00C167 .CheckGameModeZero
|
||||
al 00C18D .DispatchScreenState
|
||||
al 00C13A .ClearActorFlagsLoop
|
||||
|
||||
Binary file not shown.
Reference in new issue
Block a user