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.
This commit is contained in:
1 parent
53ad50ffb6
commit
71ada15de0
79 files changed
+9455
-7687
No files matched your search
@@ -106,8 +106,8 @@ SetAPUSweep:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
InitAPUWaveform:
|
||||
sta $4001 ; CPU:$C058 PRG:0058 8D 01 40
|
||||
sta $4005 ; CPU:$C05B PRG:005B 8D 05 40
|
||||
sta APUPULSE1SWEEP ; CPU:$C058 PRG:0058 8D 01 40
|
||||
sta APUPULSE2SWEEP ; CPU:$C05B PRG:005B 8D 05 40
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: SaveXY
|
||||
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
|
||||
@@ -172,13 +172,13 @@ InitControllerTables:
|
||||
inc $010A ; CPU:$C087 PRG:0087 EE 0A 01
|
||||
ldy $010A ; CPU:$C08A PRG:008A AC 0A 01
|
||||
lda $C0A1,y ; CPU:$C08D PRG:008D B9 A1 C0
|
||||
sta $400C ; CPU:$C090 PRG:0090 8D 0C 40
|
||||
sta APUNOISECTRL ; CPU:$C090 PRG:0090 8D 0C 40
|
||||
bne InitControllerTablesLoop ; CPU:$C093 PRG:0093 D0 0B
|
||||
lda ZpEF ; CPU:$C095 PRG:0095 A5 EF
|
||||
and #$DF ; CPU:$C097 PRG:0097 29 DF
|
||||
sta ZpEF ; CPU:$C099 PRG:0099 85 EF
|
||||
lda #$10 ; CPU:$C09B PRG:009B A9 10
|
||||
sta $400C ; CPU:$C09D PRG:009D 8D 0C 40
|
||||
sta APUNOISECTRL ; CPU:$C09D PRG:009D 8D 0C 40
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: InitControllerTablesLoop
|
||||
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
|
||||
@@ -265,7 +265,7 @@ InitPPULoop:
|
||||
lda $0103 ; CPU:$C0E6 PRG:00E6 AD 03 01
|
||||
cmp #$20 ; CPU:$C0E9 PRG:00E9 C9 20
|
||||
beq InitAPUFrameCounter ; CPU:$C0EB PRG:00EB F0 04
|
||||
sta $400C ; CPU:$C0ED PRG:00ED 8D 0C 40
|
||||
sta APUNOISECTRL ; CPU:$C0ED PRG:00ED 8D 0C 40
|
||||
rts ; CPU:$C0F0 PRG:00F0 60
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: InitAPUFrameCounter
|
||||
@@ -591,7 +591,7 @@ ClearRAMPageLoop:
|
||||
and #$C0 ; CPU:$C312 PRG:0312 29 C0
|
||||
cmp #$C0 ; CPU:$C314 PRG:0314 C9 C0
|
||||
beq InitGameStateExit ; CPU:$C316 PRG:0316 F0 0F
|
||||
jmp ($00EB) ; CPU:$C318 PRG:0318 6C EB 00
|
||||
jmp (ZpEB) ; CPU:$C318 PRG:0318 6C EB 00
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: InitGameState
|
||||
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
|
||||
@@ -634,7 +634,7 @@ InitGameStateExit:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
InitAPUCall:
|
||||
jmp ($00ED) ; CPU:$C332 PRG:0332 6C ED 00
|
||||
jmp (ZpED) ; CPU:$C332 PRG:0332 6C ED 00
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: InitAPU
|
||||
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
|
||||
@@ -646,7 +646,7 @@ InitAPUCall:
|
||||
; -----------------------------------------------------------------------------
|
||||
InitAPU:
|
||||
lda #$C0 ; CPU:$C335 PRG:0335 A9 C0
|
||||
sta $4017 ; CPU:$C337 PRG:0337 8D 17 40
|
||||
sta JOY2 ; CPU:$C337 PRG:0337 8D 17 40
|
||||
jsr $C0B1 ; CPU:$C33A PRG:033A 20 B1 C0
|
||||
jsr $C3B3 ; CPU:$C33D PRG:033D 20 B3 C3
|
||||
jsr $C465 ; CPU:$C340 PRG:0340 20 65 C4
|
||||
@@ -680,14 +680,14 @@ ClearControllerState:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
InitAPURegisters:
|
||||
sta $4008 ; CPU:$C358 PRG:0358 8D 08 40
|
||||
sta $4011 ; CPU:$C35B PRG:035B 8D 11 40
|
||||
sta APUTRIANGLECTRL ; CPU:$C358 PRG:0358 8D 08 40
|
||||
sta APUDMCDIRECT ; CPU:$C35B PRG:035B 8D 11 40
|
||||
sta ZpE6 ; CPU:$C35E PRG:035E 85 E6
|
||||
sta ZpE4 ; CPU:$C360 PRG:0360 85 E4
|
||||
lda #$10 ; CPU:$C362 PRG:0362 A9 10
|
||||
sta $4000 ; CPU:$C364 PRG:0364 8D 00 40
|
||||
sta $4004 ; CPU:$C367 PRG:0367 8D 04 40
|
||||
sta $400C ; CPU:$C36A PRG:036A 8D 0C 40
|
||||
sta APUPULSE1CTRL ; CPU:$C364 PRG:0364 8D 00 40
|
||||
sta APUPULSE2CTRL ; CPU:$C367 PRG:0367 8D 04 40
|
||||
sta APUNOISECTRL ; CPU:$C36A PRG:036A 8D 0C 40
|
||||
rts ; CPU:$C36D PRG:036D 60
|
||||
; ---- data $C36E-$C375 (8 bytes) ----
|
||||
.byte $1E, $7F, $05, $18, $15, $7F, $02, $88 ; CPU:$C36E PRG:036E 1E 7F 05 18 15 7F 02 88
|
||||
@@ -911,7 +911,7 @@ InitSpritesSetF3:
|
||||
cmp #$05 ; CPU:$C415 PRG:0415 C9 05
|
||||
bne InitSpritesCheckF1 ; CPU:$C417 PRG:0417 D0 F5
|
||||
lda #$8B ; CPU:$C419 PRG:0419 A9 8B
|
||||
sta $4005 ; CPU:$C41B PRG:041B 8D 05 40
|
||||
sta APUPULSE2SWEEP ; CPU:$C41B PRG:041B 8D 05 40
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: InitSpritesAlt7
|
||||
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
|
||||
@@ -1047,8 +1047,8 @@ InitGameState2Exit:
|
||||
; -----------------------------------------------------------------------------
|
||||
InitSpritesAlt1Loop:
|
||||
lda #$AC ; CPU:$C49C PRG:049C A9 AC
|
||||
sta $4001 ; CPU:$C49E PRG:049E 8D 01 40
|
||||
sta $4005 ; CPU:$C4A1 PRG:04A1 8D 05 40
|
||||
sta APUPULSE1SWEEP ; CPU:$C49E PRG:049E 8D 01 40
|
||||
sta APUPULSE2SWEEP ; CPU:$C4A1 PRG:04A1 8D 05 40
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: InitSpritesAlt2Entry
|
||||
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
|
||||
@@ -1149,8 +1149,8 @@ InitSpritesCheck10CAF:
|
||||
lda $010C ; CPU:$C4E6 PRG:04E6 AD 0C 01
|
||||
cmp #$AF ; CPU:$C4E9 PRG:04E9 C9 AF
|
||||
beq InitSpritesSetF4 ; CPU:$C4EB PRG:04EB F0 07
|
||||
sta $4000 ; CPU:$C4ED PRG:04ED 8D 00 40
|
||||
sta $4004 ; CPU:$C4F0 PRG:04F0 8D 04 40
|
||||
sta APUPULSE1CTRL ; CPU:$C4ED PRG:04ED 8D 00 40
|
||||
sta APUPULSE2CTRL ; CPU:$C4F0 PRG:04F0 8D 04 40
|
||||
rts ; CPU:$C4F3 PRG:04F3 60
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: InitSpritesSetF4
|
||||
@@ -1252,7 +1252,7 @@ InitGameState4CheckF2:
|
||||
lda #$00 ; CPU:$C54F PRG:054F A9 00
|
||||
sta $0107 ; CPU:$C551 PRG:0551 8D 07 01
|
||||
lda #$10 ; CPU:$C554 PRG:0554 A9 10
|
||||
sta $4000 ; CPU:$C556 PRG:0556 8D 00 40
|
||||
sta APUPULSE1CTRL ; CPU:$C556 PRG:0556 8D 00 40
|
||||
rts ; CPU:$C559 PRG:0559 60
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: InitGameState4Loop
|
||||
@@ -1278,13 +1278,13 @@ InitGameState4Loop:
|
||||
and #$0F ; CPU:$C576 PRG:0576 29 0F
|
||||
ora #$10 ; CPU:$C578 PRG:0578 09 10
|
||||
sta $0106 ; CPU:$C57A PRG:057A 8D 06 01
|
||||
sta $4002 ; CPU:$C57D PRG:057D 8D 02 40
|
||||
sta APUPULSE1TIMERLO ; CPU:$C57D PRG:057D 8D 02 40
|
||||
lda #$7F ; CPU:$C580 PRG:0580 A9 7F
|
||||
sta $4001 ; CPU:$C582 PRG:0582 8D 01 40
|
||||
sta APUPULSE1SWEEP ; CPU:$C582 PRG:0582 8D 01 40
|
||||
lda #$99 ; CPU:$C585 PRG:0585 A9 99
|
||||
sta $4000 ; CPU:$C587 PRG:0587 8D 00 40
|
||||
sta APUPULSE1CTRL ; CPU:$C587 PRG:0587 8D 00 40
|
||||
lda #$88 ; CPU:$C58A PRG:058A A9 88
|
||||
sta $4003 ; CPU:$C58C PRG:058C 8D 03 40
|
||||
sta APUPULSE1TIMERHI ; CPU:$C58C PRG:058C 8D 03 40
|
||||
rts ; CPU:$C58F PRG:058F 60
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: InitGameState4ClearEF
|
||||
@@ -1310,7 +1310,7 @@ InitGameState4MaskF3:
|
||||
inc $0106 ; CPU:$C593 PRG:0593 EE 06 01
|
||||
inc $0106 ; CPU:$C596 PRG:0596 EE 06 01
|
||||
lda $0106 ; CPU:$C599 PRG:0599 AD 06 01
|
||||
sta $4002 ; CPU:$C59C PRG:059C 8D 02 40
|
||||
sta APUPULSE1TIMERLO ; CPU:$C59C PRG:059C 8D 02 40
|
||||
rts ; CPU:$C59F PRG:059F 60
|
||||
; ---- data $C5A0-$C5A3 (4 bytes) ----
|
||||
.byte $95, $B5, $40, $B0 ; CPU:$C5A0 PRG:05A0 95 B5 40 B0
|
||||
@@ -1482,9 +1482,9 @@ WaitVBlankStore:
|
||||
ldy #$06 ; CPU:$C610 PRG:0610 A0 06
|
||||
jsr $C05E ; CPU:$C612 PRG:0612 20 5E C0
|
||||
lda #$83 ; CPU:$C615 PRG:0615 A9 83
|
||||
sta $4001 ; CPU:$C617 PRG:0617 8D 01 40
|
||||
sta APUPULSE1SWEEP ; CPU:$C617 PRG:0617 8D 01 40
|
||||
lda #$7F ; CPU:$C61A PRG:061A A9 7F
|
||||
sta $4005 ; CPU:$C61C PRG:061C 8D 05 40
|
||||
sta APUPULSE2SWEEP ; CPU:$C61C PRG:061C 8D 05 40
|
||||
jmp $C647 ; CPU:$C61F PRG:061F 4C 47 C6
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: WaitVBlankCallC1B2
|
||||
@@ -1659,11 +1659,11 @@ Reset:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
WaitPPUReady:
|
||||
lda $2002 ; CPU:$CA02 PRG:0A02 AD 02 20
|
||||
lda PPUSTATUS ; CPU:$CA02 PRG:0A02 AD 02 20
|
||||
bpl WaitPPUReady ; CPU:$CA05 PRG:0A05 10 FB
|
||||
ldx #$00 ; CPU:$CA07 PRG:0A07 A2 00
|
||||
stx $2000 ; CPU:$CA09 PRG:0A09 8E 00 20
|
||||
stx $2001 ; CPU:$CA0C PRG:0A0C 8E 01 20
|
||||
stx PPUCTRL ; CPU:$CA09 PRG:0A09 8E 00 20
|
||||
stx PPUMASK ; CPU:$CA0C PRG:0A0C 8E 01 20
|
||||
dex ; CPU:$CA0F PRG:0A0F CA
|
||||
txs ; CPU:$CA10 PRG:0A10 9A
|
||||
ldx $05EC ; CPU:$CA11 PRG:0A11 AE EC 05
|
||||
@@ -1705,17 +1705,17 @@ StoreConfig:
|
||||
jsr $CC67 ; CPU:$CA32 PRG:0A32 20 67 CC
|
||||
jsr $CC77 ; CPU:$CA35 PRG:0A35 20 77 CC
|
||||
ldy #$00 ; CPU:$CA38 PRG:0A38 A0 00
|
||||
sta $2005 ; CPU:$CA3A PRG:0A3A 8D 05 20
|
||||
sta $2005 ; CPU:$CA3D PRG:0A3D 8D 05 20
|
||||
sta PPUSCROLL ; CPU:$CA3A PRG:0A3A 8D 05 20
|
||||
sta PPUSCROLL ; CPU:$CA3D PRG:0A3D 8D 05 20
|
||||
ldy #$01 ; CPU:$CA40 PRG:0A40 A0 01
|
||||
sty Zp24 ; CPU:$CA42 PRG:0A42 84 24
|
||||
sty ZpA5 ; CPU:$CA44 PRG:0A44 84 A5
|
||||
lda #$0F ; CPU:$CA46 PRG:0A46 A9 0F
|
||||
sta $4015 ; CPU:$CA48 PRG:0A48 8D 15 40
|
||||
sta APUSTATUS ; CPU:$CA48 PRG:0A48 8D 15 40
|
||||
jsr $C003 ; CPU:$CA4B PRG:0A4B 20 03 C0
|
||||
jsr $E7EF ; CPU:$CA4E PRG:0A4E 20 EF E7
|
||||
lda #$90 ; CPU:$CA51 PRG:0A51 A9 90
|
||||
sta $2000 ; CPU:$CA53 PRG:0A53 8D 00 20
|
||||
sta PPUCTRL ; CPU:$CA53 PRG:0A53 8D 00 20
|
||||
sta Zp08 ; CPU:$CA56 PRG:0A56 85 08
|
||||
lda #$02 ; CPU:$CA58 PRG:0A58 A9 02
|
||||
sta Zp09 ; CPU:$CA5A PRG:0A5A 85 09
|
||||
@@ -1810,9 +1810,9 @@ NmiHandler:
|
||||
lda Zp86 ; CPU:$CA97 PRG:0A97 A5 86
|
||||
bne NmiVBlankOnly_CAC2 ; CPU:$CA99 PRG:0A99 D0 27
|
||||
lda #$00 ; CPU:$CA9B PRG:0A9B A9 00
|
||||
sta $2003 ; CPU:$CA9D PRG:0A9D 8D 03 20
|
||||
sta OAMADDR ; CPU:$CA9D PRG:0A9D 8D 03 20
|
||||
lda #$02 ; CPU:$CAA0 PRG:0AA0 A9 02
|
||||
sta $4014 ; CPU:$CAA2 PRG:0AA2 8D 14 40
|
||||
sta OAMDMA ; CPU:$CAA2 PRG:0AA2 8D 14 40
|
||||
lda Zp22 ; CPU:$CAA5 PRG:0AA5 A5 22
|
||||
bne NmiExit ; CPU:$CAA7 PRG:0AA7 D0 0C
|
||||
jsr $CD41 ; CPU:$CAA9 PRG:0AA9 20 41 CD
|
||||
@@ -1862,12 +1862,12 @@ NmiVBlankOnly_CAC2:
|
||||
lda Zp09 ; CPU:$CAC2 PRG:0AC2 A5 09
|
||||
and #$E7 ; CPU:$CAC4 PRG:0AC4 29 E7
|
||||
sta Zp09 ; CPU:$CAC6 PRG:0AC6 85 09
|
||||
sta $2001 ; CPU:$CAC8 PRG:0AC8 8D 01 20
|
||||
sta PPUMASK ; CPU:$CAC8 PRG:0AC8 8D 01 20
|
||||
jsr $D174 ; CPU:$CACB PRG:0ACB 20 74 D1
|
||||
lda Zp09 ; CPU:$CACE PRG:0ACE A5 09
|
||||
ora #$18 ; CPU:$CAD0 PRG:0AD0 09 18
|
||||
sta Zp09 ; CPU:$CAD2 PRG:0AD2 85 09
|
||||
sta $2001 ; CPU:$CAD4 PRG:0AD4 8D 01 20
|
||||
sta PPUMASK ; CPU:$CAD4 PRG:0AD4 8D 01 20
|
||||
jmp $CAB2 ; CPU:$CAD7 PRG:0AD7 4C B2 CA
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: UpdateScroll
|
||||
@@ -1940,7 +1940,7 @@ CheckControllerStartLoop:
|
||||
bpl CheckControllerStartLoop ; CPU:$CB15 PRG:0B15 10 F8
|
||||
lda Zp09 ; CPU:$CB17 PRG:0B17 A5 09
|
||||
and #$0E ; CPU:$CB19 PRG:0B19 29 0E
|
||||
sta $2001 ; CPU:$CB1B PRG:0B1B 8D 01 20
|
||||
sta PPUMASK ; CPU:$CB1B PRG:0B1B 8D 01 20
|
||||
sta Zp09 ; CPU:$CB1E PRG:0B1E 85 09
|
||||
lda Zp25 ; CPU:$CB20 PRG:0B20 A5 25
|
||||
sta Zp1D ; CPU:$CB22 PRG:0B22 85 1D
|
||||
@@ -1962,7 +1962,7 @@ CheckControllerStartLoop:
|
||||
CheckControllerStartExit:
|
||||
lda Zp09 ; CPU:$CB31 PRG:0B31 A5 09
|
||||
ora #$10 ; CPU:$CB33 PRG:0B33 09 10
|
||||
sta $2001 ; CPU:$CB35 PRG:0B35 8D 01 20
|
||||
sta PPUMASK ; CPU:$CB35 PRG:0B35 8D 01 20
|
||||
sta Zp09 ; CPU:$CB38 PRG:0B38 85 09
|
||||
lda #$11 ; CPU:$CB3A PRG:0B3A A9 11
|
||||
sta Zp25 ; CPU:$CB3C PRG:0B3C 85 25
|
||||
@@ -2388,11 +2388,11 @@ UpdateOAMCheckZp23:
|
||||
stx Zp01 ; CPU:$CC99 PRG:0C99 86 01
|
||||
jsr $CE3A ; CPU:$CC9B PRG:0C9B 20 3A CE
|
||||
lda #$3F ; CPU:$CC9E PRG:0C9E A9 3F
|
||||
sta $2006 ; CPU:$CCA0 PRG:0CA0 8D 06 20
|
||||
sta PPUADDR ; CPU:$CCA0 PRG:0CA0 8D 06 20
|
||||
lda #$00 ; CPU:$CCA3 PRG:0CA3 A9 00
|
||||
sta $2006 ; CPU:$CCA5 PRG:0CA5 8D 06 20
|
||||
sta $2006 ; CPU:$CCA8 PRG:0CA8 8D 06 20
|
||||
sta $2006 ; CPU:$CCAB PRG:0CAB 8D 06 20
|
||||
sta PPUADDR ; CPU:$CCA5 PRG:0CA5 8D 06 20
|
||||
sta PPUADDR ; CPU:$CCA8 PRG:0CA8 8D 06 20
|
||||
sta PPUADDR ; CPU:$CCAB PRG:0CAB 8D 06 20
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: UpdateOAMDecrement
|
||||
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
|
||||
@@ -2462,9 +2462,9 @@ UpdateOAMZeroY:
|
||||
; -----------------------------------------------------------------------------
|
||||
UpdatePlayers:
|
||||
lda #$01 ; CPU:$CCD0 PRG:0CD0 A9 01
|
||||
sta $4016 ; CPU:$CCD2 PRG:0CD2 8D 16 40
|
||||
sta JOY1 ; CPU:$CCD2 PRG:0CD2 8D 16 40
|
||||
lda #$00 ; CPU:$CCD5 PRG:0CD5 A9 00
|
||||
sta $4016 ; CPU:$CCD7 PRG:0CD7 8D 16 40
|
||||
sta JOY1 ; CPU:$CCD7 PRG:0CD7 8D 16 40
|
||||
ldy #$40 ; CPU:$CCDA PRG:0CDA A0 40
|
||||
ldx $032A ; CPU:$CCDC PRG:0CDC AE 2A 03
|
||||
beq UpdatePalettesCheckZp27 ; CPU:$CCDF PRG:0CDF F0 02
|
||||
@@ -2525,7 +2525,7 @@ ProcessControllerInputStore:
|
||||
lda Zp16,x ; CPU:$CCFE PRG:0CFE B5 16
|
||||
and Zp01 ; CPU:$CD00 PRG:0D00 25 01
|
||||
sta Zp02 ; CPU:$CD02 PRG:0D02 85 02
|
||||
lda $4016,x ; CPU:$CD04 PRG:0D04 BD 16 40
|
||||
lda JOY1,x ; CPU:$CD04 PRG:0D04 BD 16 40
|
||||
sta Zp00 ; CPU:$CD07 PRG:0D07 85 00
|
||||
lsr a ; CPU:$CD09 PRG:0D09 4A
|
||||
ora Zp00 ; CPU:$CD0A PRG:0D0A 05 00
|
||||
@@ -2607,9 +2607,9 @@ ProcessControllerInputEntry:
|
||||
sta Zp01 ; CPU:$CD4B PRG:0D4B 85 01
|
||||
lda Zp08 ; CPU:$CD4D PRG:0D4D A5 08
|
||||
and #$FB ; CPU:$CD4F PRG:0D4F 29 FB
|
||||
sta $2000 ; CPU:$CD51 PRG:0D51 8D 00 20
|
||||
sta PPUCTRL ; CPU:$CD51 PRG:0D51 8D 00 20
|
||||
sta Zp08 ; CPU:$CD54 PRG:0D54 85 08
|
||||
ldx $2002 ; CPU:$CD56 PRG:0D56 AE 02 20
|
||||
ldx PPUSTATUS ; CPU:$CD56 PRG:0D56 AE 02 20
|
||||
ldy #$00 ; CPU:$CD59 PRG:0D59 A0 00
|
||||
beq ProcessControllerInputStaZp08 ; CPU:$CD5B PRG:0D5B F0 19
|
||||
; -----------------------------------------------------------------------------
|
||||
@@ -2622,10 +2622,10 @@ ProcessControllerInputEntry:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
ProcessControllerInputRead2002:
|
||||
sta $2006 ; CPU:$CD5D PRG:0D5D 8D 06 20
|
||||
sta PPUADDR ; CPU:$CD5D PRG:0D5D 8D 06 20
|
||||
iny ; CPU:$CD60 PRG:0D60 C8
|
||||
lda (Zp00),y ; CPU:$CD61 PRG:0D61 B1 00
|
||||
sta $2006 ; CPU:$CD63 PRG:0D63 8D 06 20
|
||||
sta PPUADDR ; CPU:$CD63 PRG:0D63 8D 06 20
|
||||
iny ; CPU:$CD66 PRG:0D66 C8
|
||||
lda (Zp00),y ; CPU:$CD67 PRG:0D67 B1 00
|
||||
and #$3F ; CPU:$CD69 PRG:0D69 29 3F
|
||||
@@ -2642,7 +2642,7 @@ ProcessControllerInputRead2002:
|
||||
ProcessControllerInputAndFB:
|
||||
iny ; CPU:$CD6C PRG:0D6C C8
|
||||
lda (Zp00),y ; CPU:$CD6D PRG:0D6D B1 00
|
||||
sta $2007 ; CPU:$CD6F PRG:0D6F 8D 07 20
|
||||
sta PPUDATA ; CPU:$CD6F PRG:0D6F 8D 07 20
|
||||
dex ; CPU:$CD72 PRG:0D72 CA
|
||||
bne ProcessControllerInputAndFB ; CPU:$CD73 PRG:0D73 D0 F7
|
||||
iny ; CPU:$CD75 PRG:0D75 C8
|
||||
@@ -2683,10 +2683,10 @@ ProcessControllerInputRead2002Alt:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
ProcessControllerInputRead2002Alt2:
|
||||
lda $2002 ; CPU:$CD85 PRG:0D85 AD 02 20
|
||||
lda PPUSTATUS ; CPU:$CD85 PRG:0D85 AD 02 20
|
||||
lda Zp08 ; CPU:$CD88 PRG:0D88 A5 08
|
||||
and #$FB ; CPU:$CD8A PRG:0D8A 29 FB
|
||||
sta $2000 ; CPU:$CD8C PRG:0D8C 8D 00 20
|
||||
sta PPUCTRL ; CPU:$CD8C PRG:0D8C 8D 00 20
|
||||
sta Zp08 ; CPU:$CD8F PRG:0D8F 85 08
|
||||
lda #$1C ; CPU:$CD91 PRG:0D91 A9 1C
|
||||
clc ; CPU:$CD93 PRG:0D93 18
|
||||
@@ -2704,9 +2704,9 @@ ProcessControllerInputAnd04:
|
||||
dec Zp01 ; CPU:$CD96 PRG:0D96 C6 01
|
||||
bne ProcessControllerInputAnd04 ; CPU:$CD98 PRG:0D98 D0 FA
|
||||
sta Zp02 ; CPU:$CD9A PRG:0D9A 85 02
|
||||
sta $2006 ; CPU:$CD9C PRG:0D9C 8D 06 20
|
||||
sta PPUADDR ; CPU:$CD9C PRG:0D9C 8D 06 20
|
||||
lda #$00 ; CPU:$CD9F PRG:0D9F A9 00
|
||||
sta $2006 ; CPU:$CDA1 PRG:0DA1 8D 06 20
|
||||
sta PPUADDR ; CPU:$CDA1 PRG:0DA1 8D 06 20
|
||||
ldx #$04 ; CPU:$CDA4 PRG:0DA4 A2 04
|
||||
ldy #$00 ; CPU:$CDA6 PRG:0DA6 A0 00
|
||||
lda Zp00 ; CPU:$CDA8 PRG:0DA8 A5 00
|
||||
@@ -2720,16 +2720,16 @@ ProcessControllerInputAnd04:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
ProcessControllerInputOra18:
|
||||
sta $2007 ; CPU:$CDAA PRG:0DAA 8D 07 20
|
||||
sta PPUDATA ; CPU:$CDAA PRG:0DAA 8D 07 20
|
||||
dey ; CPU:$CDAD PRG:0DAD 88
|
||||
bne ProcessControllerInputOra18 ; CPU:$CDAE PRG:0DAE D0 FA
|
||||
dex ; CPU:$CDB0 PRG:0DB0 CA
|
||||
bne ProcessControllerInputOra18 ; CPU:$CDB1 PRG:0DB1 D0 F7
|
||||
lda Zp02 ; CPU:$CDB3 PRG:0DB3 A5 02
|
||||
adc #$03 ; CPU:$CDB5 PRG:0DB5 69 03
|
||||
sta $2006 ; CPU:$CDB7 PRG:0DB7 8D 06 20
|
||||
sta PPUADDR ; CPU:$CDB7 PRG:0DB7 8D 06 20
|
||||
lda #$C0 ; CPU:$CDBA PRG:0DBA A9 C0
|
||||
sta $2006 ; CPU:$CDBC PRG:0DBC 8D 06 20
|
||||
sta PPUADDR ; CPU:$CDBC PRG:0DBC 8D 06 20
|
||||
ldy #$40 ; CPU:$CDBF PRG:0DBF A0 40
|
||||
lda #$00 ; CPU:$CDC1 PRG:0DC1 A9 00
|
||||
; -----------------------------------------------------------------------------
|
||||
@@ -2742,7 +2742,7 @@ ProcessControllerInputOra18:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
ProcessControllerInputStaZp09:
|
||||
sta $2007 ; CPU:$CDC3 PRG:0DC3 8D 07 20
|
||||
sta PPUDATA ; CPU:$CDC3 PRG:0DC3 8D 07 20
|
||||
dey ; CPU:$CDC6 PRG:0DC6 88
|
||||
bne ProcessControllerInputStaZp09 ; CPU:$CDC7 PRG:0DC7 D0 FA
|
||||
rts ; CPU:$CDC9 PRG:0DC9 60
|
||||
@@ -2815,7 +2815,7 @@ ProcessControllerInput:
|
||||
stx Zp14 ; CPU:$CDF5 PRG:0DF5 86 14
|
||||
ldx Zp28 ; CPU:$CDF7 PRG:0DF7 A6 28
|
||||
ldy Zp29 ; CPU:$CDF9 PRG:0DF9 A4 29
|
||||
jmp ($0014) ; CPU:$CDFB PRG:0DFB 6C 14 00
|
||||
jmp (Zp14) ; CPU:$CDFB PRG:0DFB 6C 14 00
|
||||
; -----------------------------------------------------------------------------
|
||||
; Routine: RoundLogicSaveXY
|
||||
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
|
||||
@@ -2826,10 +2826,10 @@ ProcessControllerInput:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
RoundLogicSaveXY:
|
||||
sta $2006 ; CPU:$CDFE PRG:0DFE 8D 06 20
|
||||
sta PPUADDR ; CPU:$CDFE PRG:0DFE 8D 06 20
|
||||
iny ; CPU:$CE01 PRG:0E01 C8
|
||||
lda (Zp00),y ; CPU:$CE02 PRG:0E02 B1 00
|
||||
sta $2006 ; CPU:$CE04 PRG:0E04 8D 06 20
|
||||
sta PPUADDR ; CPU:$CE04 PRG:0E04 8D 06 20
|
||||
iny ; CPU:$CE07 PRG:0E07 C8
|
||||
lda (Zp00),y ; CPU:$CE08 PRG:0E08 B1 00
|
||||
asl a ; CPU:$CE0A PRG:0E0A 0A
|
||||
@@ -2848,7 +2848,7 @@ RoundLogicSaveXY:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
ScrollBackgroundEntry:
|
||||
sta $2000 ; CPU:$CE14 PRG:0E14 8D 00 20
|
||||
sta PPUCTRL ; CPU:$CE14 PRG:0E14 8D 00 20
|
||||
sta Zp08 ; CPU:$CE17 PRG:0E17 85 08
|
||||
pla ; CPU:$CE19 PRG:0E19 68
|
||||
asl a ; CPU:$CE1A PRG:0E1A 0A
|
||||
@@ -2891,7 +2891,7 @@ ScrollBackgroundTXA_CE23:
|
||||
; -----------------------------------------------------------------------------
|
||||
ScrollBackgroundCmp6F_CE26:
|
||||
lda (Zp00),y ; CPU:$CE26 PRG:0E26 B1 00
|
||||
sta $2007 ; CPU:$CE28 PRG:0E28 8D 07 20
|
||||
sta PPUDATA ; CPU:$CE28 PRG:0E28 8D 07 20
|
||||
dex ; CPU:$CE2B PRG:0E2B CA
|
||||
bne ScrollBackgroundTXA_CE23 ; CPU:$CE2C PRG:0E2C D0 F5
|
||||
sec ; CPU:$CE2E PRG:0E2E 38
|
||||
@@ -2911,7 +2911,7 @@ ScrollBackgroundCmp6F_CE26:
|
||||
; Clobbers: Undetermined in Pass 1.
|
||||
; -----------------------------------------------------------------------------
|
||||
ScrollBackgroundRead2002:
|
||||
ldx $2002 ; CPU:$CE3A PRG:0E3A AE 02 20
|
||||
ldx PPUSTATUS ; CPU:$CE3A PRG:0E3A AE 02 20
|
||||
ldy #$00 ; CPU:$CE3D PRG:0E3D A0 00
|
||||
lda (Zp00),y ; CPU:$CE3F PRG:0E3F B1 00
|
||||
bne RoundLogicSaveXY ; CPU:$CE41 PRG:0E41 D0 BB
|
||||
@@ -2927,11 +2927,11 @@ ScrollBackgroundRead2002:
|
||||
ScrollBackground:
|
||||
pha ; CPU:$CE43 PRG:0E43 48
|
||||
lda Zp0A ; CPU:$CE44 PRG:0E44 A5 0A
|
||||
sta $2005 ; CPU:$CE46 PRG:0E46 8D 05 20
|
||||
sta PPUSCROLL ; CPU:$CE46 PRG:0E46 8D 05 20
|
||||
lda Zp0B ; CPU:$CE49 PRG:0E49 A5 0B
|
||||
sta $2005 ; CPU:$CE4B PRG:0E4B 8D 05 20
|
||||
sta PPUSCROLL ; CPU:$CE4B PRG:0E4B 8D 05 20
|
||||
lda Zp08 ; CPU:$CE4E PRG:0E4E A5 08
|
||||
sta $2000 ; CPU:$CE50 PRG:0E50 8D 00 20
|
||||
sta PPUCTRL ; CPU:$CE50 PRG:0E50 8D 00 20
|
||||
pla ; CPU:$CE53 PRG:0E53 68
|
||||
rts ; CPU:$CE54 PRG:0E54 60
|
||||
; -----------------------------------------------------------------------------
|
||||
@@ -3383,7 +3383,7 @@ UpdateRoundTimerInit:
|
||||
lda Zp09 ; CPU:$D01D PRG:101D A5 09
|
||||
and #$E7 ; CPU:$D01F PRG:101F 29 E7
|
||||
sta Zp09 ; CPU:$D021 PRG:1021 85 09
|
||||
sta $2001 ; CPU:$D023 PRG:1023 8D 01 20
|
||||
sta PPUMASK ; CPU:$D023 PRG:1023 8D 01 20
|
||||
rts ; CPU:$D026 PRG:1026 60
|
||||
; ---- data $D027-$D02F (9 bytes) ----
|
||||
.byte $20, $12, $D0, $A5, $09, $09, $18, $D0, $F1 ; CPU:$D027 PRG:1027 20 12 D0 A5 09 09 18 D0 F1
|
||||
@@ -5874,7 +5874,7 @@ HandlePlayer2LogicStxZp31:
|
||||
sec ; CPU:$E2A7 PRG:22A7 38
|
||||
sbc #$02 ; CPU:$E2A8 PRG:22A8 E9 02
|
||||
tax ; CPU:$E2AA PRG:22AA AA
|
||||
lda a:$00CC,y ; CPU:$E2AB PRG:22AB B9 CC 00
|
||||
lda a:ZpCC,y ; CPU:$E2AB PRG:22AB B9 CC 00
|
||||
ldy Zp0D ; CPU:$E2AE PRG:22AE A4 0D
|
||||
jsr $E236 ; CPU:$E2B0 PRG:22B0 20 36 E2
|
||||
ldy Zp0F ; CPU:$E2B3 PRG:22B3 A4 0F
|
||||
|
||||
Reference in new issue
Block a user