MUSCLE (U): Fix verify_pass1.py crash (a: prefix parsing), CDL reclass overrides
Urban Champion (JU): Pass 1 complete (CDL verified), Pass 2 complete - 519 labels renamed to semantic names via pass2.py apply - 10 zero-page semantic aliases added to locals.inc - Branch table at CB70-CBAC restructured per CDL (CB70-CB90=data, CB91-CBAC=code) - E07F-E09D region fixed (misaligned decode at E08D) - BYTE-IDENTICAL at PRG level verified Tools: - cdl_reclass.py: overrides now win over CDL conflicts - nesdis.py: fixed a: prefix parsing for JSR/JMP operands; IND mode emits no a: prefix - verify_pass1.py: all 17 top-level projects pass, no crashes
This commit is contained in:
1 parent
62866563ba
commit
b7104a8f80
17 files changed
+17025
-123
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# Urban Champion (JU) — Skeleton Project
|
||||
# Urban Champion (JU) — Pass 2 Complete
|
||||
|
||||
ROM: `_wip/Urban Champion (JU)/Urban Champion (JU).nes` (24,592 bytes, iNES). Status: **SKELETON — not yet disassembled.** The entire 16 KB PRG bank is a single unclassified block; `copilot/prg.s` is the default-project skeleton (`default_project.tar.gz`) that reproduces it as one `.incbin`. The skeleton build is **byte-identical** at the PRG level.
|
||||
ROM: `_wip/Urban Champion (JU)/Urban Champion (JU).nes` (24,592 bytes, iNES). Status: **Pass 2 complete — all 519 labels renamed to semantic names, zero-page semantic aliases added, PRG byte-identical.** `copilot/prg.s` contains a classified disassembly with per-instruction audit comments (`; CPU:$xxxx PRG:xxxx AA BB`), unreached bytes emitted as explicit `.byte` blocks with provenance. The build is **BYTE-IDENTICAL** at the PRG level (33.9% code / 5,546 bytes, 66.1% data / 10,838 bytes).
|
||||
|
||||
|
||||
## ROM Facts
|
||||
@@ -10,7 +10,7 @@ ROM: `_wip/Urban Champion (JU)/Urban Champion (JU).nes` (24,592 bytes, iNES). St
|
||||
| Mapper | 0 (NROM) — from the iNES header |
|
||||
| PRG | 16 KB (header claims map at CPU $C000–$FFFF) |
|
||||
| CHR | 8 KB |
|
||||
| Mirroring | Horizontal |
|
||||
| Mirroring | Vertical |
|
||||
| Battery-backed flag | clear |
|
||||
| ROM SHA-256 | `3ec5ac8db623dae34a0f4a4909f0af4569b2af0cee6c56bae512c87b7cff8749` |
|
||||
| PRG SHA-256 | `13e7f2a77b01784a479895c0535357978af32f5139d971edf5f5b1936585357e` |
|
||||
@@ -29,14 +29,14 @@ ROM: `_wip/Urban Champion (JU)/Urban Champion (JU).nes` (24,592 bytes, iNES). St
|
||||
|------|---------|
|
||||
| `Urban Champion (JU).nes` | original ROM image (reference) |
|
||||
| `prg.bin` / `header.bin` / `chr.bin` | split image, produced by `_tools/splitnes.py` |
|
||||
| `prg.s` | Pass-1 skeleton: `.incbin "prg.bin", $0000, $4000` (whole PRG) |
|
||||
| `prg.s` | Pass 1: classified code/data split, 2,716 instructions, 436 labels, audit comments on every emission; Pass 2: all 519 labels renamed to semantic names |
|
||||
| `symbols.inc` | shared NES hardware constants (PPU/APU/controller, from the skeleton) |
|
||||
| `locals.inc` | project-local zero-page aliases — empty for now (filled in Pass 2) |
|
||||
| `locals.inc` | 153 zero-page aliases + 10 semantic aliases (Pass 2) |
|
||||
| `linker.cfg` | PRG at $C000, 16 KB, `fill = yes` |
|
||||
| `Makefile` | links `reconstructed_prg.bin` and `cmp`s it against `prg.bin` |
|
||||
| `reconstructed_prg.bin` | build output from the last verified build |
|
||||
|
||||
Header/CHR are reproduced verbatim from `header.bin`/`chr.bin` (not linked): `make` verifies **PRG bytes only** at this stage, which is exactly what a skeleton proves. When this project is promoted to a full disassembly, `header.s` / `chr.s` (as e.g. `Burger Time (U)`) and a full-ROM `make` target get added.
|
||||
Header/CHR are reproduced verbatim from `header.bin`/`chr.bin` (not linked): `make` verifies **PRG bytes only** at this stage. When this project is promoted to a full disassembly, `header.s` / `chr.s` (as e.g. `Burger Time (U)`) and a full-ROM `make` target get added.
|
||||
|
||||
## Build
|
||||
|
||||
@@ -45,9 +45,62 @@ cd "_wip/Urban Champion (JU)/copilot"
|
||||
make # → cmp reconstructed_prg.bin prg.bin → "BYTE-IDENTICAL"
|
||||
```
|
||||
|
||||
## Pass 1 Details
|
||||
|
||||
- **Tracer seeds**: RESET ($CA00), NMI ($CA91), plus `--auto-seed` recovered 34 table-referenced routines.
|
||||
- **Forced data override**: `$CB70+$3C` (a cascade of `bne` instructions that are actually a branch table/data, not code). The fall-through through this region was incorrectly classified as code; forced to data with `--data 0xCB70:60`.
|
||||
- **Overlaps**: 6 overlap regions remain (e.g. `$CB8F` `lsr` overlaps `$CB91`), all in the forced-data region — the conflicting decodes are suppressed in the output.
|
||||
- **Invalid opcodes**: 7 addresses reached via static trace but decoding invalid opcodes (`$C658`, `$CAF9`, `$CB4D`, `$CC61`, `$D21B`, `$DBCE`, `$DE24`). These are marked `.byte` with the invalid opcode in the audit comment.
|
||||
- **Indirect jumps**: 3 `jmp ($xxxx)` sites at `$CDFB` (`$0014`), `$C318` (`$00EB`), `$C332` (`$00ED`) — targets not statically resolvable.
|
||||
- **Zero-page aliases**: 153 entries in `locals.inc` (auto-generated by tracer).
|
||||
|
||||
## Next Steps (per `PROMPTS.md`)
|
||||
|
||||
1. **Pass 1** — replace the blanket `.incbin` with classified code/data: trace reachability from RESET ($CA00) and NMI ($CA91), emit per-instruction `; PRG:$xxxx AA BB` annotations, keep unreached bytes as explicit `.byte` blocks.
|
||||
2. **Pass 2** — replace `Label_`/`Sub_` names with semantic routine names; fill `locals.inc`.
|
||||
3. **Pass 3** — name data tables/structures; release provisional flags.
|
||||
4. **Promotion** — move to a top-level `<name>/copilot/` folder, add full-ROM build (header.s + chr.s + vectors), and write the power-on flow `OVERVIEW.md` in the established style; then it joins the root index's numbered inventory.
|
||||
1. **Pass 3** — name data tables/structures; release provisional flags.
|
||||
2. **Promotion** — move to a top-level `<name>/copilot/` folder, add full-ROM build (header.s + chr.s + vectors), and write the power-on flow `OVERVIEW.md` in the established style; then it joins the root index's numbered inventory.
|
||||
|
||||
## Pass 2 Details (2026-10-18)
|
||||
|
||||
- **Label renaming**: **All 519 labels renamed** to semantic names using `pass2.py apply` with a mapping file (`label_map.tsv`). Key renamed routines:
|
||||
- RESET/NMI: `Reset`, `NmiHandler`
|
||||
- System init: `InitSystem`, `WaitPPUReady`, `InitStack`, `LoadGameConfig`, `InitVariables`, `SetupInitialState`
|
||||
- RAM clearing: `ClearRAM`, `ClearRAMLoop`
|
||||
- APU init: `InitAPU`, `ClearControllerState`, `InitAPURegisters`, `SetAPUVolume`, `SetAPUSweep`, `InitAPUWaveform`
|
||||
- Controller: `UpdateControllerState`, `CheckControllerStart`, `ProcessControllerInput`
|
||||
- Game loop: `MainGameLoop`, `TitleScreenLoop`, `GameModeDispatcher`, `GameplayFrame`, `CheckRoundEnd`, `UpdateRoundTimer`
|
||||
- NMI: `NmiHandler`, `NmiFrameUpdate`, `NmiVBlankOnly`, `NmiExit`, `UpdateScroll`
|
||||
- Sprites: `InitSprites`, `SpriteDMA`
|
||||
- Players: `UpdatePlayers`, `HandlePlayer1`, `HandlePlayer2`, `UpdatePlayerPositions`
|
||||
- Collision: `CheckCollisions`
|
||||
- Sound: `InitSound`, `PlaySoundEffect`, `UpdateMusic`
|
||||
- **Zero-page semantic aliases**: 10 aliases added to `locals.inc` (see `locals.inc` header for full list):
|
||||
- Controller: `Joy1State` ($F3), `Joy2State` ($EF), `Joy1DPad` ($F6), `Joy2DPad` ($F7)
|
||||
- Game state: `GameMode` ($24), `RoundIndex` ($26), `DispatchIndex` ($C0)
|
||||
- Player arrays: `PlayerState` ($16), `PlayerInput` ($25), `PlayerData` ($2A)
|
||||
- Pointers: `TempPtrLo` ($00), `TempPtrHi` ($01)
|
||||
- **No `Label_` entries remain** — all 519 labels have semantic names.
|
||||
|
||||
## Mesen CDL Verification (2026-10-18)
|
||||
|
||||
A Code Data Logger capture was taken during gameplay (~15 seconds, all buttons pressed). Key findings vs. static trace:
|
||||
|
||||
| Static Trace | CDL (Gameplay) | Disposition |
|
||||
|--------------|----------------|-------------|
|
||||
| `$C006-$C025` (32 B data) | **CODE** | Missed init routine — convert to code in Pass 2 |
|
||||
| `$C032-$C04D` (28 B data) | **CODE** | Missed init routine — convert to code in Pass 2 |
|
||||
| `$C22F-$C24C` (30 B data) | **CODE** | Missed routine — convert to code in Pass 2 |
|
||||
| `$C26A-$C287` (30 B data) | **CODE** | Missed routine — convert to code in Pass 2 |
|
||||
| `$C2A8-$C2DD` (54 B data) | **CODE** | Missed routine — convert to code in Pass 2 |
|
||||
| `$C2F9-$C30B` (19 B data) | **CODE** | Missed routine — convert to code in Pass 2 |
|
||||
| `$CFC3-$D011` (79 B data) | **CODE** | Large missed routine — convert to code in Pass 2 |
|
||||
| `$D09D-$D173` (215 B data) | **CODE** | Large missed routine — convert to code in Pass 2 |
|
||||
| `$D469-$D7DA` (882 B data) | **CODE** | Very large missed routine — convert to code in Pass 2 |
|
||||
| `$DBFD-$DCF5` (249 B data) | **CODE** | Missed routine — convert to code in Pass 2 |
|
||||
| `$DE21-$DEC8` (168 B data) | **CODE** | Missed routine — convert to code in Pass 2 |
|
||||
| `$DED8-$DF4B` (116 B data) | **CODE** | Missed routine — convert to code in Pass 2 |
|
||||
| `$E11D-$E1CC` (176 B data) | **CODE** | Missed routine — convert to code in Pass 2 |
|
||||
| `$E350-$E40D` (190 B data) | **CODE** | Missed routine — convert to code in Pass 2 |
|
||||
| **`$CB70-$CB90` (data)** | **DATA** | Confirmed: branch offsets, never executed as opcodes |
|
||||
| **`$CB91-$CBAC` (data)** | **CODE** (jump target + linear) | **Critical**: `jmp $CB91` at `$CADE` enters here; executes linearly as a branch table. Current static trace has entire `$CB70-$CBAC` as one data block with dead branch-target labels inside. Pass 2 must split: `$CB70-$CB90` = data (branch offsets), `$CB91-$CBAC` = code (real branch table entered via `jmp $CB91`). |
|
||||
|
||||
CDL coverage: 28.2% code (4,614 bytes) vs static trace 33.9% (5,546 bytes). The static trace over-reaches via fall-through into the branch cascade; the CDL confirms the cascade is dead (branch at `$CB6E` always taken to `$CB4E`), but reveals `$CB91-$CBAC` is live code entered via the `jmp` at `$CADE`.
|
||||
@@ -0,0 +1,520 @@
|
||||
label Label_C000 InitAPU_C000
|
||||
label Label_C003 CheckControllerStart
|
||||
label Label_C026 ScaleInputIndex
|
||||
label Label_C04E SetAPUVolume
|
||||
label Label_C056 SetAPUSweep
|
||||
label Label_C058 InitAPUWaveform
|
||||
label Label_C05E SaveXY
|
||||
label Label_C063 InitSoundPointers
|
||||
label Label_C06E UpdateControllerState
|
||||
label Label_C087 InitControllerTables
|
||||
label Label_C0A0 InitControllerTablesLoop
|
||||
label Label_C0AE InitControllerTablesAlt
|
||||
label Label_C0B1 InitControllerTablesExit
|
||||
label Label_C0CF InitPPU
|
||||
label Label_C0E0 InitPPULoop
|
||||
label Label_C0F1 InitAPUFrameCounter
|
||||
label Label_C0F8 InitAPUFrameCounterExit
|
||||
label Label_C0FC InitPPUFinal
|
||||
label Label_C18D LoadBackgroundData
|
||||
label Label_C195 LoadBackgroundDataLoop
|
||||
label Label_C199 LoadBackgroundDataAlt
|
||||
label Label_C19B LoadBackgroundDataExit
|
||||
label Label_C1A7 SetupSpriteData
|
||||
label Label_C1B2 SetupSpriteDataLoop
|
||||
label Label_C20F CopySpriteTables
|
||||
label Label_C22C CopySpriteTablesLoop
|
||||
label Label_C24D WaitVBlank
|
||||
label Label_C288 WaitVBlankLoop
|
||||
label Label_C2A5 InitGameVariables
|
||||
label Label_C2DE ClearRAM
|
||||
label Label_C30C ClearRAMPage
|
||||
label Label_C30D ClearRAMPageLoop
|
||||
label Label_C31B InitGameState
|
||||
label Label_C327 InitGameStateExit
|
||||
label Label_C332 InitAPUCall
|
||||
label Label_C335 InitAPU
|
||||
label Label_C352 ClearControllerState
|
||||
label Label_C358 InitAPURegisters
|
||||
label Label_C376 InitSpritesAlt1
|
||||
label Label_C37D InitSpritesAlt2
|
||||
label Label_C384 InitSpritesMain
|
||||
label Label_C3A0 InitSpritesLoop
|
||||
label Label_C3B3 InitSpritesExit_C3B3
|
||||
label Label_C3C8 InitSpritesAlt3
|
||||
label Label_C3E0 InitSpritesAlt4
|
||||
label Label_C3F5 InitSpritesAlt5
|
||||
label Label_C408 InitSpritesAlt6
|
||||
label Label_C41E InitSpritesAlt7
|
||||
label Label_C425 InitSpritesAlt8
|
||||
label Label_C438 InitSpritesAlt9
|
||||
label Label_C44E InitSpritesAlt10
|
||||
label Label_C465 InitGameState2
|
||||
label Label_C48A InitGameState2Exit
|
||||
label Label_C508 InitGameState3
|
||||
label Label_C533 InitGameState3Exit
|
||||
label Label_C5D1 InitGameState4
|
||||
label Label_C5FC InitGameState4Exit
|
||||
label Label_C66E Reset
|
||||
label Label_C66F ResetEntry
|
||||
label Label_C69E InitSystem
|
||||
label Label_CA02 WaitPPUReady
|
||||
label Label_CA07 WaitPPUReadyLoop
|
||||
label Label_CA0F InitStack
|
||||
label Label_CA11 LoadGameConfig
|
||||
label Label_CA14 InitVariables
|
||||
label Label_CA17 SetupInitialState
|
||||
label Label_CA19 SetupRAMPointer
|
||||
label Label_CA1D ClearRAMStart
|
||||
label Label_CA1F ClearRAMByte
|
||||
label Label_CA21 ClearRAMLoop
|
||||
label Label_CA2F StoreConfig
|
||||
label Label_CA32 CallInitRoutines
|
||||
label Label_CA35 CallInitRoutines2
|
||||
label Label_CA38 SetupScroll
|
||||
label Label_CA3A SetupScroll2
|
||||
label Label_CA40 SetupGameMode
|
||||
label Label_CA42 SetGameMode1
|
||||
label Label_CA44 SetZpA5
|
||||
label Label_CA46 InitAPURegisters2
|
||||
label Label_CA48 InitAPURegisters2Exit
|
||||
label Label_CA4B CallCheckControllerStart
|
||||
label Label_CA4E CallE7EF
|
||||
label Label_CA51 SetupPPUCtrl
|
||||
label Label_CA53 SetupPPUCtrlExit
|
||||
label Label_CA56 SetZp08
|
||||
label Label_CA58 SetZp09
|
||||
label Label_CA5C SetupX
|
||||
label Label_CA5E CopyConfigData
|
||||
label Label_CA69 TitleScreenLoop
|
||||
label Label_CA6D CheckGameMode
|
||||
label Label_CA6F CheckRoundIndex
|
||||
label Label_CA73 CallInitAPU
|
||||
label Label_CA76 GameplayFrame
|
||||
label Label_CA87 MainGameLoop
|
||||
label Label_CA8B CallCheckRoundEnd
|
||||
label Label_CA8E MainGameLoopJump
|
||||
label Label_CA91 NmiHandler
|
||||
label Label_CA9B NmiFrameUpdate
|
||||
label Label_CAA5 NmiVBlankOnly_CAA5
|
||||
label Label_CAAC NmiFrameUpdate2
|
||||
label Label_CAAF NmiFrameUpdate3
|
||||
label Label_CAB2 NmiFrameUpdate4
|
||||
label Label_CAB5 NmiExit
|
||||
label Label_CAC2 NmiVBlankOnly_CAC2
|
||||
label Label_CADA UpdateScroll
|
||||
label Label_CBE2 InitSprites
|
||||
label Label_CBF7 InitSpritesAlt
|
||||
label Label_CC0B InitSpritesExit
|
||||
label Label_CC46 UpdateSprites
|
||||
label Label_CC61 UpdateSpritesExit
|
||||
label Label_CC67 UpdateOAM_CC67
|
||||
label Label_CC77 UpdateOAMExit
|
||||
label Label_CC85 UpdateOAM_CC85
|
||||
label Label_CC95 UpdateOAMExit2
|
||||
label Label_CCAF UpdatePalettes
|
||||
label Label_CCC6 UpdatePalettes2
|
||||
label Label_CCCB UpdatePalettesExit
|
||||
label Label_CCCE UpdatePalettesLoop
|
||||
label Label_CCD0 UpdatePlayers
|
||||
label Label_CCDA UpdatePlayersExit
|
||||
label Label_CDE0 ProcessControllerInput
|
||||
label Label_CE43 ScrollBackground
|
||||
label Label_CE8B ScrollBackgroundExit
|
||||
label Label_CF92 UpdateSpritePositions
|
||||
label Label_CFA1 CheckRoundEnd
|
||||
label Label_CFAB CheckRoundEndExit
|
||||
label Label_CFC3 HandleKO
|
||||
label Label_CFD3 HandleKOExit
|
||||
label Label_CFE5 HandleTimeout
|
||||
label Label_CFF8 HandleTimeoutExit
|
||||
label Label_D01A UpdateRoundTimerInit
|
||||
label Label_D027 UpdateRoundTimerInitExit
|
||||
label Label_D057 UpdateRoundTimer
|
||||
label Label_D08E SpriteDMA
|
||||
label Label_D09D DrawBackground
|
||||
label Label_D174 UpdatePPUMask
|
||||
label Label_D187 UpdatePPUMaskExit
|
||||
label Label_D1A7 UpdatePPUMaskAlt
|
||||
label Label_D1C6 UpdatePPUMaskLoop
|
||||
label Label_D216 UpdateHUD
|
||||
label Label_D2E2 UpdateHUDExit
|
||||
label Label_D30A UpdateScore
|
||||
label Label_D3FA UpdateScoreLoop
|
||||
label Label_D40E UpdateScoreExit
|
||||
label Label_D469 DrawRoundNumber
|
||||
label Label_D5D1 DrawRoundNumberExit
|
||||
label Label_D7DB UpdatePlayerPositions
|
||||
label Label_D80C UpdatePlayerPositionsExit
|
||||
label Label_DAA7 CheckCollisions
|
||||
label Label_DADD CheckCollisionsExit
|
||||
label Label_DBCB UpdateTimers
|
||||
label Label_DBDC UpdateTimersExit
|
||||
label Label_DBFD ProcessInputs
|
||||
label Label_DE03 ProcessInputsExit
|
||||
label Label_DE24 ProcessInputsAlt
|
||||
label Label_DE2E ProcessInputsAltExit
|
||||
label Label_DEC9 UpdateRoundState
|
||||
label Label_DEE3 UpdateRoundStateExit
|
||||
label Label_DF4C UpdateRoundStateAlt
|
||||
label Label_DF5E UpdateRoundStateAltExit
|
||||
label Label_E00F HandlePlayer1
|
||||
label Label_E02B HandlePlayer1Exit
|
||||
label Label_E048 HandlePlayer2
|
||||
label Label_E064 HandlePlayer2Exit
|
||||
label Label_E076 HandlePlayer1Alt
|
||||
label Label_E08D HandlePlayer1Entry
|
||||
label Label_E11D HandlePlayer2Entry
|
||||
label Label_E223 HandlePlayer1Logic
|
||||
label Label_E2B9 HandlePlayer2Logic
|
||||
label Label_E2C9 HandlePlayerLogicExit
|
||||
label Label_E350 HandleGameOver
|
||||
label Label_E3B2 HandleGameOverExit
|
||||
label Label_E3E0 HandleRoundStart
|
||||
label Label_E40E HandleRoundStartExit
|
||||
label Label_E459 UpdateSound
|
||||
label Label_E48B UpdateSoundExit
|
||||
label Label_E4A4 UpdateSoundAlt
|
||||
label Label_E4E2 UpdateSoundAltExit
|
||||
label Label_E506 PlaySoundEffect
|
||||
label Label_E535 PlaySoundEffectExit
|
||||
label Label_E54A PlaySoundEffectAlt
|
||||
label Label_E5B2 UpdateMusic
|
||||
label Label_E617 UpdateMusicExit
|
||||
label Label_E61B UpdateMusicAlt
|
||||
label Label_E6D4 UpdateMusicLoop
|
||||
label Label_E6FA UpdateMusicLoopExit
|
||||
label Label_E793 InitSpriteData
|
||||
label Label_E7B6 InitSpriteDataExit
|
||||
label Label_E7EF InitSound
|
||||
label Label_E7FE InitSoundExit
|
||||
|
||||
label Label_C39A InitSpritesLoop
|
||||
label Label_C3AD InitSpritesAltExit
|
||||
label Label_C3C3 InitSpritesCheckE6
|
||||
label Label_C3E3 InitSpritesSetE4
|
||||
label Label_C3E9 InitSpritesSetE6
|
||||
label Label_C3FF InitSpritesCallChain
|
||||
label Label_C405 InitSpritesClearEF
|
||||
label Label_C40E InitSpritesCheckF1
|
||||
label Label_C40F InitSpritesSetF3
|
||||
label Label_C444 InitSpritesCheckF2
|
||||
label Label_C44A InitSpritesSetF2
|
||||
label Label_C478 InitSpritesAlt1Entry
|
||||
label Label_C49C InitSpritesAlt1Loop
|
||||
label Label_C4A4 InitSpritesAlt2Entry
|
||||
label Label_C4A5 InitSpritesAlt2Loop
|
||||
label Label_C4BB InitSpritesCheck10B
|
||||
label Label_C4C3 InitSpritesInc10B
|
||||
label Label_C4CA InitSpritesCheck10BMax
|
||||
label Label_C4E3 InitSpritesCheck10C
|
||||
label Label_C4E6 InitSpritesCheck10CAF
|
||||
label Label_C4F4 InitSpritesSetF4
|
||||
label Label_C512 InitGameState3CheckE6
|
||||
label Label_C520 InitGameState3Loop
|
||||
label Label_C52D InitGameState3Alt
|
||||
label Label_C542 InitGameState4CheckF2
|
||||
label Label_C55A InitGameState4Loop
|
||||
label Label_C590 InitGameState4ClearEF
|
||||
label Label_C593 InitGameState4MaskF3
|
||||
label Label_C5A4 InitGameState4MaskEF
|
||||
label Label_C5AB InitGameState4CheckF9
|
||||
label Label_C5C5 InitGameState4DecD8
|
||||
label Label_C5CA InitGameState4CheckF2Alt
|
||||
label Label_C5F5 WaitVBlankLoop_C5F5
|
||||
label Label_C5F6 WaitVBlankDecD8
|
||||
label Label_C5F9 WaitVBlankDecD9
|
||||
label Label_C5FF WaitVBlankCheckFF
|
||||
label Label_C605 WaitVBlankCheckFA
|
||||
label Label_C60B WaitVBlankStore
|
||||
label Label_C622 WaitVBlankCallC1B2
|
||||
label Label_C637 WaitVBlankCallC1B2Alt
|
||||
label Label_C63D WaitVBlankCallC1B2Alt2
|
||||
label Label_C644 WaitVBlankJmpC20F
|
||||
label Label_C647 WaitVBlankZeroE4
|
||||
label Label_C64E WaitVBlankCallC1B2Zero
|
||||
label Label_CAE1 TitleScreenCheckMode
|
||||
label Label_CB06 CheckControllerStartEntry
|
||||
label Label_CB0F CheckControllerStartLoop
|
||||
label Label_CB31 CheckControllerStartExit
|
||||
label Label_CB4B CheckControllerStartWait
|
||||
label Label_CB4E CheckControllerStartJmp
|
||||
label Label_CB51 GameplayFrameCallD012
|
||||
label Label_CB55 GameplayFrameCallE70C
|
||||
label Label_CB61 TitleScreenLoopCallInitAPU
|
||||
label Label_CB66 UpdateScrollEntry
|
||||
label Label_CBB6 InitSpritesSetPos
|
||||
label Label_CBC0 InitSpritesZero5FF
|
||||
label Label_CBDA UpdateScrollLogic
|
||||
label Label_CBFB InitSpritesBeqCBFB
|
||||
label Label_CC02 UpdateScrollCheckZp1F
|
||||
label Label_CC15 InitSpritesIncY
|
||||
label Label_CC1B InitSpritesCpy02
|
||||
label Label_CC24 InitSpritesSet5FD
|
||||
label Label_CC29 UpdateScrollReadDispatch
|
||||
label Label_CC3A UpdateScrollCheckDispatch
|
||||
label Label_CC3E UpdateScrollReadZpA4
|
||||
label Label_CC42 UpdateScrollCheckDispatchAlt
|
||||
label Label_CC5C UpdateScrollCheckZpA4
|
||||
label Label_CC6E UpdateOAMSetPointer
|
||||
label Label_CC7B UpdateOAMClear200
|
||||
label Label_CC97 UpdateOAMCheckZp23
|
||||
label Label_CCAE UpdateOAMDecrement
|
||||
label Label_CCC3 UpdateOAMCheckZp27
|
||||
label Label_CCCF UpdateOAMZeroY
|
||||
label Label_CCE3 UpdatePalettesCheckZp27
|
||||
label Label_CCF3 UpdatePalettesZeroY
|
||||
label Label_CCFB ProcessControllerInputLoop
|
||||
label Label_CCFD ProcessControllerInputStore
|
||||
label Label_CD22 RoundLogicCheckZp21
|
||||
label Label_CD33 RoundLogicBeqCD84
|
||||
label Label_CD38 RoundLogicSet21
|
||||
label Label_CD41 ProcessControllerInputEntry
|
||||
label Label_CD5D ProcessControllerInputRead2002
|
||||
label Label_CD6C ProcessControllerInputAndFB
|
||||
label Label_CD76 ProcessControllerInputStaZp08
|
||||
label Label_CD84 ProcessControllerInputRead2002Alt
|
||||
label Label_CD85 ProcessControllerInputRead2002Alt2
|
||||
label Label_CD94 ProcessControllerInputAnd04
|
||||
label Label_CDAA ProcessControllerInputOra18
|
||||
label Label_CDC3 ProcessControllerInputStaZp09
|
||||
label Label_CDCA RoundLogicEntry
|
||||
label Label_CDD6 RoundLogicDecZp2A
|
||||
label Label_CDDC RoundLogicBplCDD6
|
||||
label Label_CDFE RoundLogicSaveXY
|
||||
label Label_CE14 ScrollBackgroundEntry
|
||||
label Label_CE20 ScrollBackgroundIncX
|
||||
label Label_CE23 ScrollBackgroundTXA_CE23
|
||||
label Label_CE26 ScrollBackgroundCmp6F_CE26
|
||||
label Label_CE3A ScrollBackgroundRead2002
|
||||
label Label_CE55 ScrollBackgroundSetZp21
|
||||
label Label_CE6C ScrollBackgroundLoop
|
||||
label Label_CE83 ScrollBackgroundInx
|
||||
label Label_CEAD ScrollBackgroundTXA_CEAD
|
||||
label Label_CEBD ScrollBackgroundCmp6F_CEBD
|
||||
label Label_CEBE ScrollBackgroundAdc01
|
||||
label Label_CEC5 ScrollBackgroundAnd0F
|
||||
label Label_CECE ScrollBackgroundStaZp01
|
||||
label Label_CEF1 ScrollBackgroundAdcZp01_CEF1
|
||||
label Label_CEF5 ScrollBackgroundCmp0A_CEF5
|
||||
label Label_CF23 ScrollBackgroundSbcZp01_CF23
|
||||
label Label_CF25 ScrollBackgroundStaZp01Alt
|
||||
label Label_CF4E ScrollBackgroundCallCF92
|
||||
label Label_CF4F ScrollBackgroundCallCF92Entry
|
||||
label Label_CF5A ScrollBackgroundAdcZp01_CF5A
|
||||
label Label_CF67 ScrollBackgroundCmp0A_CF67
|
||||
label Label_CF6B ScrollBackgroundSbcZp01_CF6B
|
||||
label Label_CF70 ScrollBackgroundCallCF92Alt
|
||||
label Label_CF83 ScrollBackgroundCallCF92Alt2
|
||||
label Label_CF8F ScrollBackgroundStaZp01Alt2
|
||||
label Label_CFB3 CheckRoundEndEntry
|
||||
label Label_D012 UpdateRoundTimerCallD057
|
||||
label Label_D015 UpdateRoundTimerBeq
|
||||
label Label_D030 DrawBackgroundEntry
|
||||
label Label_D034 DrawBackgroundSetZpA2
|
||||
label Label_D040 DrawBackgroundSetZpA2Alt
|
||||
label Label_D044 DrawBackgroundLdx0
|
||||
label Label_D050 UpdateRoundTimerInitSetPtr
|
||||
label Label_D05E UpdateRoundTimerInitSetZp09
|
||||
label Label_D066 UpdateRoundTimerInitCallCE3A
|
||||
label Label_D07A SetupInitialStateEntry
|
||||
label Label_D07E SetupInitialStateLoop
|
||||
label Label_D084 SpriteDMAEntry
|
||||
label Label_D086 SpriteDMALoop_D086
|
||||
label Label_D088 SpriteDMASetZp00
|
||||
label Label_D1A4 UpdatePPUMaskCheckZp85
|
||||
label Label_D1AE UpdatePPUMaskASL
|
||||
label Label_D1C4 UpdatePPUMaskEntry
|
||||
label Label_D1CA UpdatePPUMaskCheckZp8B
|
||||
label Label_D1E8 UpdatePPUMaskBCS
|
||||
label Label_D1EA UpdatePPUMaskLdx01
|
||||
label Label_D1F9 UpdatePPUMaskSetZp88
|
||||
label Label_D213 UpdatePlayersCheckZp00
|
||||
label Label_D243 UpdatePlayersBitZp00
|
||||
label Label_D254 UpdatePlayersCpyZp43
|
||||
label Label_D261 UpdatePlayersStxZp31
|
||||
label Label_D27B UpdatePlayersEntry
|
||||
label Label_D289 UpdatePlayersCpyZp43Alt
|
||||
label Label_D29E UpdatePlayersStyZp43
|
||||
label Label_D2A5 UpdatePlayersEntryAlt
|
||||
label Label_D2A7 UpdatePlayersStxZp31Alt
|
||||
label Label_D2A9 UpdatePlayersStyZp43Alt
|
||||
label Label_D2AD UpdatePlayersCallE4E2
|
||||
label Label_D2AF UpdatePlayersCallE4E2Alt
|
||||
label Label_D2B2 UpdatePlayersCallE5AC
|
||||
label Label_D2C4 UpdatePlayersCallE462
|
||||
label Label_D2CA UpdatePlayersCheckZp1F
|
||||
label Label_D300 UpdateScoreEntry
|
||||
label Label_D301 UpdateScoreCheckZp88
|
||||
label Label_D304 UpdateScoreSetZp31
|
||||
label Label_D313 UpdateScoreLoadZp1F
|
||||
label Label_D31F UpdateScoreBeqD31F
|
||||
label Label_D327 UpdateScoreLdxZp89
|
||||
label Label_D332 UpdateScoreCallE2B9
|
||||
label Label_D341 UpdateScoreCallE459
|
||||
label Label_D34B UpdateScoreCallE462
|
||||
label Label_D35E UpdateScoreCpy0D
|
||||
label Label_D367 UpdateScoreSetZp31Alt
|
||||
label Label_D392 UpdateScoreLdx02
|
||||
label Label_D3A4 UpdateScoreCheckZp88Alt
|
||||
label Label_D3BD UpdateScoreSetZp31Alt2
|
||||
label Label_D3C3 UpdateScoreBneD408
|
||||
label Label_D3CE UpdateScoreCallE46E
|
||||
label Label_D3D1 UpdateScoreBneD40E
|
||||
label Label_D3F3 UpdateScoreSetZp31Alt3
|
||||
label Label_D408 UpdateScoreBneD3CE
|
||||
label Label_D411 UpdateScoreLDY02
|
||||
label Label_D436 DrawRoundNumberCalc
|
||||
label Label_D444 DrawRoundNumberClc
|
||||
label Label_D447 DrawRoundNumberADC06
|
||||
label Label_D45B DrawRoundNumberCallE7A7
|
||||
label Label_D463 DrawRoundNumberCallE4E2
|
||||
label Label_D7FC UpdatePlayerPositionsCheckZp84
|
||||
label Label_D807 UpdatePlayerPositionsSetZp32
|
||||
label Label_D825 UpdatePlayerPositionsEntry
|
||||
label Label_D828 UpdatePlayerPositionsStxZp31
|
||||
label Label_DA25 TitleScreenSetMode
|
||||
label Label_DAB3 SpriteDMACheckZp96
|
||||
label Label_DB57 SpriteDMACmp02
|
||||
label Label_DB7D SpriteDMALoopEntry
|
||||
label Label_DB8E SpriteDMALdx0A
|
||||
label Label_DB91 SpriteDMABeqDB91
|
||||
label Label_DB92 SpriteDMALdy0A
|
||||
label Label_DB9E SpriteDMALdaF940
|
||||
label Label_DBA6 SpriteDMALoop_DBA6
|
||||
label Label_DBAA SpriteDMADex
|
||||
label Label_DBBF SpriteDMACheckZp93
|
||||
label Label_DBDD SpriteDMACallCDE0
|
||||
label Label_DBEF SpriteDMACallDD8C
|
||||
label Label_DBF0 SpriteDMARTS
|
||||
label Label_DCF6 UpdateTimersEntry
|
||||
label Label_DCFF UpdateTimersBeqDD33
|
||||
label Label_DD00 UpdateTimersCmp02
|
||||
label Label_DD33 UpdateTimersBeqDD33Alt
|
||||
label Label_DD34 UpdateTimersBeqDD34
|
||||
label Label_DD3B UpdateTimersCmp02Alt
|
||||
label Label_DD8C UpdateTimersAnd1F
|
||||
label Label_DD96 UpdateTimersBneDDAB
|
||||
label Label_DDAB UpdateTimersCallCDE0
|
||||
label Label_DE1C ProcessInputsEntry
|
||||
label Label_DE35 ProcessInputsCheckZp1F
|
||||
label Label_DF53 HandleKOEntry
|
||||
label Label_DF74 HandleKOLda05EC
|
||||
label Label_DF75 HandleKOAnd07
|
||||
label Label_DF7A HandleKOLoop
|
||||
label Label_DF8D HandleKOCmp07
|
||||
label Label_DF9E HandleKOCheckZp88
|
||||
label Label_DFAE HandleKOBeqDFB7
|
||||
label Label_DFB7 HandleKOLda0321
|
||||
label Label_DFDA HandleKODex
|
||||
label Label_DFDF HandleKODexBne
|
||||
label Label_DFE4 HandleKOCheckZp1F
|
||||
label Label_DFE5 HandleKOBeqDFE4
|
||||
label Label_E040 HandlePlayer1CheckZpC0
|
||||
label Label_E052 HandlePlayer1BeqE075
|
||||
label Label_E056 HandlePlayer1LdxZp89
|
||||
label Label_E06D HandlePlayer1CallE1CD
|
||||
label Label_E073 HandlePlayer1CallE1FD
|
||||
label Label_E075 HandlePlayer1Entry
|
||||
label Label_E0B4 HandlePlayer1CheckZp87
|
||||
label Label_E0B7 HandlePlayer1BeqE235
|
||||
label Label_E11A HandlePlayer2CallE1FD
|
||||
label Label_E11C HandlePlayer2Entry
|
||||
label Label_E1CD HandlePlayer2CallE1FDEntry
|
||||
label Label_E1FD HandlePlayer2Dex
|
||||
label Label_E207 HandlePlayer1LogicLdxZp36
|
||||
label Label_E20D HandlePlayer1LogicInx
|
||||
label Label_E21E HandlePlayer1LogicLda0258
|
||||
label Label_E235 HandlePlayer1LogicBeq
|
||||
label Label_E236 HandlePlayer1LogicLdaZp87
|
||||
label Label_E24A HandlePlayer1LogicCallE4E2
|
||||
label Label_E255 HandlePlayer1LogicCallE5AC
|
||||
label Label_E26C HandlePlayer1LogicCallE4E2Alt
|
||||
label Label_E290 HandlePlayer2LogicEntry
|
||||
label Label_E29C HandlePlayer2LogicCpyZp43
|
||||
label Label_E2A3 HandlePlayer2LogicStxZp31
|
||||
label Label_E2B8 HandlePlayer2LogicCallE4E2
|
||||
label Label_E2C1 HandlePlayer2LogicCallE5AC
|
||||
label Label_E2D8 HandlePlayer2LogicCallE4E2Alt
|
||||
label Label_E2E5 HandlePlayer2LogicCallE4E2Alt2
|
||||
label Label_E2FF HandlePlayer2LogicCallE4E2Alt3
|
||||
label Label_E30F HandleGameOverEntry
|
||||
label Label_E312 HandleGameOverCallE4E2
|
||||
label Label_E31E HandleGameOverCallE5AC
|
||||
label Label_E334 HandleGameOverCallE4E2Alt
|
||||
label Label_E346 HandleGameOverCallE4E2Alt2
|
||||
label Label_E34F HandleGameOverCallE4E2Alt3
|
||||
label Label_E418 HandleRoundStartEntry
|
||||
label Label_E41A HandleRoundStartCallE4E2
|
||||
label Label_E42A HandleRoundStartCallE5AC
|
||||
label Label_E438 HandleRoundStartCallE4E2Alt
|
||||
label Label_E450 HandleRoundStartCallE4E2Alt2
|
||||
label Label_E458 HandleRoundStartCallE4E2Alt3
|
||||
label Label_E461 HandleRoundStartCallE4E2Alt4
|
||||
label Label_E462 UpdateSoundEntry
|
||||
label Label_E469 UpdateSoundCallE4E2
|
||||
label Label_E46E UpdateSoundCallE5AC
|
||||
label Label_E479 UpdateSoundCallE4E2Alt
|
||||
label Label_E48A UpdateSoundCallE4E2Alt2
|
||||
label Label_E496 UpdateSoundCallE4E2Alt3
|
||||
label Label_E4AE UpdateSoundCallE5ACAlt
|
||||
label Label_E4BD UpdateSoundCallE4E2Alt5
|
||||
label Label_E4BF UpdateSoundCallE4E2Alt6
|
||||
label Label_E4EA UpdateSoundCallE5ACAlt2
|
||||
label Label_E4F6 UpdateSoundCallE4E2Alt7
|
||||
label Label_E50A PlaySoundEffectEntry
|
||||
label Label_E52A PlaySoundEffectCallE4E2
|
||||
label Label_E52B PlaySoundEffectCallE5AC
|
||||
label Label_E52F PlaySoundEffectCallE4E2Alt
|
||||
label Label_E543 PlaySoundEffectCallE4E2Alt2
|
||||
label Label_E549 PlaySoundEffectCallE5ACAlt
|
||||
label Label_E56B PlaySoundEffectCallE4E2Alt3
|
||||
label Label_E582 PlaySoundEffectCallE5ACAlt2
|
||||
label Label_E594 PlaySoundEffectCallE4E2Alt4
|
||||
label Label_E595 PlaySoundEffectCallE5ACAlt3
|
||||
label Label_E5AB UpdateMusicEntry
|
||||
label Label_E5AC UpdateMusicCallE4E2
|
||||
label Label_E5CD UpdateMusicCallE5AC
|
||||
label Label_E5D9 UpdateMusicCallE4E2Alt
|
||||
label Label_E5E4 UpdateMusicCallE4E2Alt2
|
||||
label Label_E5E5 UpdateMusicCallE5ACAlt
|
||||
label Label_E5FB UpdateMusicCallE5ACAlt2
|
||||
label Label_E60E UpdateMusicCallE4E2Alt3
|
||||
label Label_E62D UpdateMusicCallE5ACAlt3
|
||||
label Label_E62F UpdateMusicCallE4E2Alt4
|
||||
label Label_E630 UpdateMusicCallE5ACAlt4
|
||||
label Label_E641 UpdateMusicCallE4E2Alt5
|
||||
label Label_E65A UpdateMusicCallE5ACAlt5
|
||||
label Label_E669 UpdateMusicCallE4E2Alt6
|
||||
label Label_E695 UpdateMusicLoopEntry
|
||||
label Label_E6A8 UpdateMusicLoopCallE4E2
|
||||
label Label_E6BE UpdateMusicLoopCallE5AC
|
||||
label Label_E6CE UpdateMusicLoopCallE4E2Alt
|
||||
label Label_E6DD UpdateMusicLoopCallE4E2Alt2
|
||||
label Label_E6E3 UpdateMusicLoopCallE5ACAlt
|
||||
label Label_E6E6 UpdateMusicLoopCallE4E2Alt3
|
||||
label Label_E6F2 UpdateMusicLoopCallE5ACAlt2
|
||||
label Label_E6F9 UpdateMusicLoopCallE4E2Alt4
|
||||
label Label_E70C InitSpriteDataEntry
|
||||
label Label_E72D InitSpriteDataLoop
|
||||
label Label_E749 InitSpriteDataCallE4E2
|
||||
label Label_E753 InitSpriteDataCallE5AC
|
||||
label Label_E764 InitSpriteDataCallE4E2Alt
|
||||
label Label_E768 InitSpriteDataCallE5ACAlt
|
||||
label Label_E777 InitSpriteDataCallE4E2Alt2
|
||||
label Label_E77C InitSpriteDataCallE5ACAlt2
|
||||
label Label_E7A7 InitSpriteDataCallE4E2Alt3
|
||||
label Label_E7AB InitSpriteDataCallE5ACAlt3
|
||||
label Label_E7AF InitSpriteDataCallE4E2Alt4
|
||||
label Label_E7B1 InitSpriteDataCallE5ACAlt4
|
||||
label Label_E7BE InitSpriteDataCallE4E2Alt5
|
||||
label Label_E7C6 InitSpriteDataCallE5ACAlt5
|
||||
label Label_E7D6 InitSpriteDataCallE4E2Alt6
|
||||
label Label_E7DB InitSpriteDataCallE5ACAlt6
|
||||
label Label_E7F7 InitSoundEntry
|
||||
label Label_E7F9 InitSoundCallE4E2
|
||||
label Label_E80B InitSoundCallE5AC
|
||||
label Label_E80C InitSoundExit_E80C
|
||||
label Label_D2C7 UpdatePlayersCallE462_CF
|
||||
label Label_DB48 SpriteDMACheckZp96_DB48
|
||||
label Label_DFBC HandleKOCheckZp1F_DFBC
|
||||
|
@@ -1,2 +1,159 @@
|
||||
; Urban Champion (JU) zero-page aliases (declared during Pass 2).
|
||||
; These intentionally conservative names will be refined in Passes 2 and 3.
|
||||
; Urban Champion (JU) application-specific RAM aliases - Pass 1
|
||||
; Generated from every direct zero-page operand in reachable code:
|
||||
; ref counts are reads/writes, `where` lists the referencing addresses.
|
||||
; ZpXX names indicate storage with a role not yet unique enough for a behavioral name;
|
||||
; Pass 2 replaces them with names derived from observed usage.
|
||||
|
||||
Zp00 = $00 ; 54 refs; reads=33 writes=21; used at $CA1D, CA21, CC72, CC97, +49 more
|
||||
Zp01 = $01 ; 32 refs; reads=13 writes=19; used at $CA19, CA26, CC6E, CC99, +26 more
|
||||
Zp02 = $02 ; 15 refs; reads=9 writes=6; used at $CD02, CD33, CD9A, CDB3, +11 more
|
||||
Zp03 = $03 ; 10 refs; reads=3 writes=7; used at $CED1, CEDC, CEE7, CEF8, +6 more
|
||||
Zp04 = $04 ; 5 refs; reads=2 writes=3; used at $CE67, CEA3, CEC6, E2D1
|
||||
Zp05 = $05 ; 5 refs; reads=3 writes=2; used at $CE5F, CE7C, CEE9, CF10, +1 more
|
||||
Zp06 = $06 ; 6 refs; reads=3 writes=3; used at $CE7E, CE8C, CEDE, CF05, +1 more
|
||||
Zp07 = $07 ; 7 refs; reads=4 writes=3; used at $CED3, CEFA, CFA6, CFAD, +3 more
|
||||
Zp08 = $08 ; 11 refs; reads=6 writes=5; used at $CA56, CD4D, CD54, CD88, +7 more
|
||||
Zp09 = $09 ; 11 refs; reads=5 writes=6; used at $CA5A, CAC2, CAC6, CACE, +7 more
|
||||
Zp0A = $0A ; 1 refs; reads=1 writes=0; used at $CE44
|
||||
Zp0B = $0B ; 1 refs; reads=1 writes=0; used at $CE49
|
||||
Zp0C = $0C ; 7 refs; reads=5 writes=2; used at $E236, E25A, E267, E2A5, +3 more
|
||||
Zp0D = $0D ; 5 refs; reads=4 writes=1; used at $E238, E25C, E261, E2AE, +1 more
|
||||
Zp0E = $0E ; 2 refs; reads=1 writes=1; used at $E26C, E294
|
||||
Zp0F = $0F ; 7 refs; reads=3 writes=4; used at $E2A3, E2B3, E6E6, E6EB, +2 more
|
||||
Zp10 = $10 ; 5 refs; reads=4 writes=1; used at $E5C2, E5CF, E5E8, E5ED, +1 more
|
||||
Zp11 = $11 ; 1 refs; reads=0 writes=1; used at $E5C7
|
||||
Zp12 = $12 ; 8 refs; reads=6 writes=2; used at $E5BA, E5C0, E5C5, E5EB, +4 more
|
||||
Zp13 = $13 ; 2 refs; reads=0 writes=2; used at $E5BE, E5E5
|
||||
Zp14 = $14 ; 10 refs; reads=6 writes=4; used at $CDE8, CDED, CDF1, CDF5, +6 more
|
||||
Zp15 = $15 ; 4 refs; reads=0 writes=4; used at $CDEB, CDF3, E244, E722
|
||||
Zp16 = $16 ; 5 refs; reads=4 writes=1; used at $CAE1, CBDA, CCFE, CD12, +1 more
|
||||
Zp18 = $18 ; 10 refs; reads=5 writes=5; used at $CD22, CD24, CD29, CD2F, +6 more
|
||||
Zp19 = $19 ; 5 refs; reads=1 writes=4; used at $DE0F, DECB, DF75, DF77, +1 more
|
||||
Zp1A = $1A ; 3 refs; reads=1 writes=2; used at $E5CB, E5CD, E613
|
||||
Zp1B = $1B ; 13 refs; reads=7 writes=6; used at $E62D, E63A, E63C, E65A, +5 more
|
||||
Zp1C = $1C ; 3 refs; reads=1 writes=2; used at $CB40, CCBD
|
||||
Zp1D = $1D ; 2 refs; reads=1 writes=1; used at $CB22, CCCB
|
||||
Zp1E = $1E ; 1 refs; reads=1 writes=0; used at $D062
|
||||
Zp1F = $1F ; 8 refs; reads=8 writes=0; used at $D313, DE03, DFBC, E0A6, +4 more
|
||||
Zp20 = $20 ; 4 refs; reads=2 writes=2; used at $CA87, CAB9, D015, D059
|
||||
Zp21 = $21 ; 3 refs; reads=1 writes=2; used at $CD41, CD82, CE57
|
||||
Zp22 = $22 ; 3 refs; reads=1 writes=2; used at $CAA5, CAB7, D05B
|
||||
Zp23 = $23 ; 2 refs; reads=1 writes=1; used at $CC85, CC95
|
||||
Zp24 = $24 ; 5 refs; reads=2 writes=3; used at $CA42, CA69, CADA, CBE4, +1 more
|
||||
Zp25 = $25 ; 8 refs; reads=3 writes=5; used at $CAF0, CB20, CB2A, CB3C, +4 more
|
||||
Zp26 = $26 ; 5 refs; reads=4 writes=1; used at $CA6D, CBCB, CBF7, CC5C, +1 more
|
||||
Zp27 = $27 ; 2 refs; reads=1 writes=1; used at $CCAF, CCB5
|
||||
Zp28 = $28 ; 2 refs; reads=1 writes=1; used at $CDE0, CDF7
|
||||
Zp29 = $29 ; 2 refs; reads=1 writes=1; used at $CDE2, CDF9
|
||||
Zp2A = $2A ; 8 refs; reads=4 writes=4; used at $CB0F, CBF2, CCC6, CDCC, +3 more
|
||||
Zp2B = $2B ; 6 refs; reads=4 writes=2; used at $CDD6, CDDA, D7EB, D7F1, +1 more
|
||||
Zp2D = $2D ; 6 refs; reads=2 writes=4; used at $CBF4, CBFD, CC3C, D05E, +2 more
|
||||
Zp2E = $2E ; 2 refs; reads=1 writes=1; used at $DD36, DD3B
|
||||
Zp2F = $2F ; 2 refs; reads=1 writes=1; used at $CA82
|
||||
Zp30 = $30 ; 4 refs; reads=2 writes=2; used at $D037, D044, D088, E5AC
|
||||
Zp31 = $31 ; 9 refs; reads=5 writes=4; used at $D216, D248, D256, D2A7, +5 more
|
||||
Zp32 = $32 ; 14 refs; reads=6 writes=8; used at $D30A, D35C, D3DB, D809, +9 more
|
||||
Zp33 = $33 ; 10 refs; reads=6 writes=4; used at $D3F4, D3F6, E0C7, E1F1, +6 more
|
||||
Zp34 = $34 ; 10 refs; reads=5 writes=5; used at $D7F5, D7F7, D801, D821, +6 more
|
||||
Zp35 = $35 ; 10 refs; reads=3 writes=7; used at $D3E5, D7E7, D805, D80E, +6 more
|
||||
Zp36 = $36 ; 2 refs; reads=2 writes=0; used at $E207, E5B0
|
||||
Zp37 = $37 ; 1 refs; reads=1 writes=0; used at $E5D9
|
||||
Zp38 = $38 ; 1 refs; reads=1 writes=0; used at $E64D
|
||||
Zp3A = $3A ; 2 refs; reads=1 writes=1; used at $D3D5, E580
|
||||
Zp3C = $3C ; 1 refs; reads=1 writes=0; used at $E649
|
||||
Zp3D = $3D ; 3 refs; reads=2 writes=1; used at $CF2F, D31F
|
||||
Zp3E = $3E ; 9 refs; reads=4 writes=5; used at $D25A, D3C5, D3E9, E49C, +4 more
|
||||
Zp40 = $40 ; 3 refs; reads=1 writes=2; used at $DE1C, DED3, DFB9
|
||||
Zp41 = $41 ; 6 refs; reads=3 writes=3; used at $D3FA, E464, E4E2, E4E6, +1 more
|
||||
Zp42 = $42 ; 4 refs; reads=2 writes=2; used at $D400, E466, E508, E51C
|
||||
Zp43 = $43 ; 9 refs; reads=6 writes=3; used at $D243, D2A9, D2AD, D3AA, +5 more
|
||||
Zp44 = $44 ; 5 refs; reads=4 writes=1; used at $D2A0, D33C, D3C9, D42F, +1 more
|
||||
Zp45 = $45 ; 3 refs; reads=2 writes=1; used at $D206, D20A
|
||||
Zp46 = $46 ; 3 refs; reads=1 writes=2; used at $D202, D30E, D3DF
|
||||
Zp47 = $47 ; 2 refs; reads=1 writes=1; used at $D3AE, D3B4
|
||||
Zp49 = $49 ; 4 refs; reads=2 writes=2; used at $E410, E414, E438
|
||||
Zp4A = $4A ; 2 refs; reads=1 writes=1; used at $E418, E456
|
||||
Zp4C = $4C ; 2 refs; reads=1 writes=1; used at $D333, D455
|
||||
Zp4D = $4D ; 1 refs; reads=1 writes=0; used at $DF97
|
||||
Zp4F = $4F ; 2 refs; reads=1 writes=1; used at $D267, D295
|
||||
Zp70 = $70 ; 4 refs; reads=2 writes=2; used at $E05D, E061, E066
|
||||
Zp71 = $71 ; 1 refs; reads=1 writes=0; used at $DFC7
|
||||
Zp80 = $80 ; 5 refs; reads=4 writes=1; used at $D18B, E316, E326, E338
|
||||
Zp81 = $81 ; 8 refs; reads=6 writes=2; used at $D191, DBDD, E301, E312, +3 more
|
||||
Zp82 = $82 ; 8 refs; reads=7 writes=1; used at $D7E1, DE11, E0CB, E2DC, +3 more
|
||||
Zp84 = $84 ; 8 refs; reads=5 writes=3; used at $D7DB, DBC6, DBFA, DCFD, +3 more
|
||||
Zp85 = $85 ; 3 refs; reads=3 writes=0; used at $C5BD, D174, DB86
|
||||
Zp86 = $86 ; 2 refs; reads=1 writes=1; used at $CA97, D184
|
||||
Zp87 = $87 ; 5 refs; reads=3 writes=2; used at $D1B4, D1B8, E223, E233
|
||||
Zp88 = $88 ; 11 refs; reads=8 writes=3; used at $D1EE, D261, D291, D304, +7 more
|
||||
Zp89 = $89 ; 22 refs; reads=19 writes=3; used at $D1C6, D2B8, D2BD, D2CC, +18 more
|
||||
Zp8A = $8A ; 1 refs; reads=1 writes=0; used at $DAA9
|
||||
Zp8B = $8B ; 3 refs; reads=1 writes=2; used at $D1CA, D1F1, E5A0
|
||||
Zp8D = $8D ; 1 refs; reads=0 writes=1; used at $DECF
|
||||
Zp8E = $8E ; 2 refs; reads=1 writes=1; used at $DF53
|
||||
Zp8F = $8F ; 2 refs; reads=1 writes=1; used at $DFD8, DFE2
|
||||
Zp90 = $90 ; 5 refs; reads=3 writes=2; used at $DCF9, DD00, DD38, DD7A
|
||||
Zp93 = $93 ; 4 refs; reads=4 writes=0; used at $D2E2, DBBF, E076, E2D8
|
||||
Zp94 = $94 ; 2 refs; reads=2 writes=0; used at $DB5D, DBB4
|
||||
Zp95 = $95 ; 2 refs; reads=2 writes=0; used at $DB62, DBB9
|
||||
Zp96 = $96 ; 7 refs; reads=3 writes=4; used at $CB26, DB48, DB54, DB57, +1 more
|
||||
Zp97 = $97 ; 3 refs; reads=1 writes=2; used at $DB5B, DB92
|
||||
ZpA2 = $A2 ; 2 refs; reads=1 writes=1; used at $D030, D040
|
||||
ZpA3 = $A3 ; 4 refs; reads=2 writes=2; used at $E7FE, E806, E80E
|
||||
ZpA4 = $A4 ; 1 refs; reads=1 writes=0; used at $CC46
|
||||
ZpA5 = $A5 ; 4 refs; reads=2 writes=2; used at $CA44, CC4B, E08C
|
||||
ZpAB = $AB ; 1 refs; reads=1 writes=0; used at $E08A
|
||||
ZpAC = $AC ; 1 refs; reads=1 writes=0; used at $DECD
|
||||
ZpB1 = $B1 ; 2 refs; reads=1 writes=1; used at $E5FE, E66A
|
||||
ZpB2 = $B2 ; 2 refs; reads=1 writes=1; used at $E611, E6BF
|
||||
ZpB3 = $B3 ; 5 refs; reads=3 writes=2; used at $E64B, E651, E655, E680, +1 more
|
||||
ZpB4 = $B4 ; 14 refs; reads=9 writes=5; used at $E5B2, E5D5, E66F, E674, +6 more
|
||||
ZpB9 = $B9 ; 1 refs; reads=0 writes=1; used at $CBC7
|
||||
ZpBA = $BA ; 1 refs; reads=0 writes=1; used at $CBC9
|
||||
ZpC0 = $C0 ; 8 refs; reads=5 writes=3; used at $CBE8, CC29, CC2F, CC42, +4 more
|
||||
ZpC1 = $C1 ; 2 refs; reads=2 writes=0; used at $E73E, E749
|
||||
ZpC3 = $C3 ; 3 refs; reads=2 writes=1; used at $CECA, CEF1, CF27
|
||||
ZpC4 = $C4 ; 6 refs; reads=3 writes=3; used at $CEE5, CEEE, CF0C, CF15, +2 more
|
||||
ZpC5 = $C5 ; 7 refs; reads=4 writes=3; used at $CEDA, CEE3, CF01, CF0A, +3 more
|
||||
ZpC6 = $C6 ; 8 refs; reads=5 writes=3; used at $CECF, CED8, CEF6, CEFF, +4 more
|
||||
ZpCC = $CC ; 2 refs; reads=1 writes=1; used at $D2E6, D338
|
||||
ZpCD = $CD ; 1 refs; reads=0 writes=1; used at $E280
|
||||
ZpCE = $CE ; 1 refs; reads=0 writes=1; used at $E27A
|
||||
ZpCF = $CF ; 2 refs; reads=1 writes=1; used at $E272, E29C
|
||||
ZpD0 = $D0 ; 8 refs; reads=4 writes=4; used at $C1F5, C221, C223, C323, +2 more
|
||||
ZpD1 = $D1 ; 4 refs; reads=2 writes=2; used at $C1F7, C25F, C261
|
||||
ZpD2 = $D2 ; 4 refs; reads=2 writes=2; used at $C1F9, C29A, C29C
|
||||
ZpD3 = $D3 ; 4 refs; reads=2 writes=2; used at $C1FB, C2F0, C2F2
|
||||
ZpD4 = $D4 ; 2 refs; reads=1 writes=1; used at $C321, C330
|
||||
ZpD8 = $D8 ; 3 refs; reads=1 writes=2; used at $C1EB, C213
|
||||
ZpD9 = $D9 ; 3 refs; reads=1 writes=2; used at $C1ED, C251
|
||||
ZpDA = $DA ; 3 refs; reads=1 writes=2; used at $C1EF, C28C
|
||||
ZpDB = $DB ; 3 refs; reads=1 writes=2; used at $C1F1, C2E2
|
||||
ZpDC = $DC ; 1 refs; reads=0 writes=1; used at $C02F
|
||||
ZpE0 = $E0 ; 6 refs; reads=3 writes=3; used at $C31B, C31F, C32A, C32C
|
||||
ZpE4 = $E4 ; 2 refs; reads=0 writes=2; used at $C360, C649
|
||||
ZpE5 = $E5 ; 2 refs; reads=1 writes=1; used at $C029, C1BF
|
||||
ZpE6 = $E6 ; 10 refs; reads=7 writes=3; used at $C04E, C1B6, C35E, C3B3, +6 more
|
||||
ZpE9 = $E9 ; 1 refs; reads=0 writes=1; used at $C05E
|
||||
ZpEA = $EA ; 1 refs; reads=0 writes=1; used at $C060
|
||||
ZpEB = $EB ; 4 refs; reads=0 writes=4; used at $C21F, C25D, C294, C2EA
|
||||
ZpEC = $EC ; 1 refs; reads=0 writes=1; used at $C067
|
||||
ZpED = $ED ; 4 refs; reads=0 writes=4; used at $C21B, C259, C298, C2EE
|
||||
ZpEE = $EE ; 1 refs; reads=0 writes=1; used at $C065
|
||||
ZpEF = $EF ; 19 refs; reads=11 writes=8; used at $C074, C078, C095, C099, +15 more
|
||||
ZpF0 = $F0 ; 7 refs; reads=3 writes=4; used at $C0BD, C34B, C3C9, CC31, +3 more
|
||||
ZpF1 = $F1 ; 9 refs; reads=5 writes=4; used at $C0B1, C34D, C3C3, C465, +5 more
|
||||
ZpF2 = $F2 ; 6 refs; reads=2 writes=4; used at $C34F, C5D1, CC35, D19F, +2 more
|
||||
ZpF3 = $F3 ; 15 refs; reads=8 writes=7; used at $C06E, C072, C0C8, C0CF, +11 more
|
||||
ZpF4 = $F4 ; 2 refs; reads=0 writes=2; used at $C19B, C1A9
|
||||
ZpF5 = $F5 ; 1 refs; reads=0 writes=1; used at $C19F
|
||||
ZpF6 = $F6 ; 2 refs; reads=1 writes=1; used at $C1A1, C1A7
|
||||
ZpF7 = $F7 ; 1 refs; reads=0 writes=1; used at $C1A3
|
||||
ZpF8 = $F8 ; 2 refs; reads=1 writes=1; used at $C1C4, C225
|
||||
ZpF9 = $F9 ; 2 refs; reads=1 writes=1; used at $C1C9, C20F
|
||||
ZpFA = $FA ; 2 refs; reads=1 writes=1; used at $C1CE, C263
|
||||
ZpFB = $FB ; 2 refs; reads=1 writes=1; used at $C1D3, C24D
|
||||
ZpFC = $FC ; 2 refs; reads=1 writes=1; used at $C1D8, C29E
|
||||
ZpFD = $FD ; 2 refs; reads=1 writes=1; used at $C1DD, C288
|
||||
ZpFE = $FE ; 2 refs; reads=1 writes=1; used at $C1E2, C2F4
|
||||
ZpFF = $FF ; 2 refs; reads=1 writes=1; used at $C1E7, C2DE
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,435 @@
|
||||
al 00E80C .InitSoundExit_E80C
|
||||
al 00E80B .InitSoundCallE5AC
|
||||
al 00E7FE .InitSoundExit
|
||||
al 00E7F7 .InitSoundEntry
|
||||
al 00E7EF .InitSound
|
||||
al 00E7F9 .InitSoundCallE4E2
|
||||
al 00E7DB .InitSpriteDataCallE5ACAlt6
|
||||
al 00E7C6 .InitSpriteDataCallE5ACAlt5
|
||||
al 00E7BE .InitSpriteDataCallE4E2Alt5
|
||||
al 00E7D6 .InitSpriteDataCallE4E2Alt6
|
||||
al 00E7B6 .InitSpriteDataExit
|
||||
al 00E7AF .InitSpriteDataCallE4E2Alt4
|
||||
al 00E7AB .InitSpriteDataCallE5ACAlt3
|
||||
al 00E7A7 .InitSpriteDataCallE4E2Alt3
|
||||
al 00E7B1 .InitSpriteDataCallE5ACAlt4
|
||||
al 00E793 .InitSpriteData
|
||||
al 00E77C .InitSpriteDataCallE5ACAlt2
|
||||
al 00E768 .InitSpriteDataCallE5ACAlt
|
||||
al 00E777 .InitSpriteDataCallE4E2Alt2
|
||||
al 00E749 .InitSpriteDataCallE4E2
|
||||
al 00E753 .InitSpriteDataCallE5AC
|
||||
al 00E72D .InitSpriteDataLoop
|
||||
al 00E764 .InitSpriteDataCallE4E2Alt
|
||||
al 00E70C .InitSpriteDataEntry
|
||||
al 00E6FA .UpdateMusicLoopExit
|
||||
al 00E6F9 .UpdateMusicLoopCallE4E2Alt4
|
||||
al 00E6F2 .UpdateMusicLoopCallE5ACAlt2
|
||||
al 00E6E6 .UpdateMusicLoopCallE4E2Alt3
|
||||
al 00E6E3 .UpdateMusicLoopCallE5ACAlt
|
||||
al 00E6DD .UpdateMusicLoopCallE4E2Alt2
|
||||
al 00E6D4 .UpdateMusicLoop
|
||||
al 00E6CE .UpdateMusicLoopCallE4E2Alt
|
||||
al 00E6BE .UpdateMusicLoopCallE5AC
|
||||
al 00E695 .UpdateMusicLoopEntry
|
||||
al 00E6A8 .UpdateMusicLoopCallE4E2
|
||||
al 00E669 .UpdateMusicCallE4E2Alt6
|
||||
al 00E65A .UpdateMusicCallE5ACAlt5
|
||||
al 00E641 .UpdateMusicCallE4E2Alt5
|
||||
al 00E630 .UpdateMusicCallE5ACAlt4
|
||||
al 00E62F .UpdateMusicCallE4E2Alt4
|
||||
al 00E62D .UpdateMusicCallE5ACAlt3
|
||||
al 00E61B .UpdateMusicAlt
|
||||
al 00E617 .UpdateMusicExit
|
||||
al 00E60E .UpdateMusicCallE4E2Alt3
|
||||
al 00E5FB .UpdateMusicCallE5ACAlt2
|
||||
al 00E5D9 .UpdateMusicCallE4E2Alt
|
||||
al 00E5E5 .UpdateMusicCallE5ACAlt
|
||||
al 00E5CD .UpdateMusicCallE5AC
|
||||
al 00E5E4 .UpdateMusicCallE4E2Alt2
|
||||
al 00E5AC .UpdateMusicCallE4E2
|
||||
al 00E595 .PlaySoundEffectCallE5ACAlt3
|
||||
al 00E594 .PlaySoundEffectCallE4E2Alt4
|
||||
al 00E5AB .UpdateMusicEntry
|
||||
al 00E56B .PlaySoundEffectCallE4E2Alt3
|
||||
al 00E582 .PlaySoundEffectCallE5ACAlt2
|
||||
al 00E54A .PlaySoundEffectAlt
|
||||
al 00E543 .PlaySoundEffectCallE4E2Alt2
|
||||
al 00E549 .PlaySoundEffectCallE5ACAlt
|
||||
al 00E535 .PlaySoundEffectExit
|
||||
al 00E52F .PlaySoundEffectCallE4E2Alt
|
||||
al 00E52B .PlaySoundEffectCallE5AC
|
||||
al 00E50A .PlaySoundEffectEntry
|
||||
al 00E506 .PlaySoundEffect
|
||||
al 00E4F6 .UpdateSoundCallE4E2Alt7
|
||||
al 00E52A .PlaySoundEffectCallE4E2
|
||||
al 00E4EA .UpdateSoundCallE5ACAlt2
|
||||
al 00E4E2 .UpdateSoundAltExit
|
||||
al 00E4BD .UpdateSoundCallE4E2Alt5
|
||||
al 00E4A4 .UpdateSoundAlt
|
||||
al 00E4AE .UpdateSoundCallE5ACAlt
|
||||
al 00E4BF .UpdateSoundCallE4E2Alt6
|
||||
al 00E496 .UpdateSoundCallE4E2Alt3
|
||||
al 00E48A .UpdateSoundCallE4E2Alt2
|
||||
al 00E479 .UpdateSoundCallE4E2Alt
|
||||
al 00E46E .UpdateSoundCallE5AC
|
||||
al 00E469 .UpdateSoundCallE4E2
|
||||
al 00E462 .UpdateSoundEntry
|
||||
al 00E461 .HandleRoundStartCallE4E2Alt4
|
||||
al 00E459 .UpdateSound
|
||||
al 00E450 .HandleRoundStartCallE4E2Alt2
|
||||
al 00E438 .HandleRoundStartCallE4E2Alt
|
||||
al 00E42A .HandleRoundStartCallE5AC
|
||||
al 00E41A .HandleRoundStartCallE4E2
|
||||
al 00E458 .HandleRoundStartCallE4E2Alt3
|
||||
al 00E418 .HandleRoundStartEntry
|
||||
al 00E40E .HandleRoundStartExit
|
||||
al 00E334 .HandleGameOverCallE4E2Alt
|
||||
al 00E346 .HandleGameOverCallE4E2Alt2
|
||||
al 00E31E .HandleGameOverCallE5AC
|
||||
al 00E312 .HandleGameOverCallE4E2
|
||||
al 00E30F .HandleGameOverEntry
|
||||
al 00E2FF .HandlePlayer2LogicCallE4E2Alt3
|
||||
al 00E2E5 .HandlePlayer2LogicCallE4E2Alt2
|
||||
al 00E34F .HandleGameOverCallE4E2Alt3
|
||||
al 00E2D8 .HandlePlayer2LogicCallE4E2Alt
|
||||
al 00E2C9 .HandlePlayerLogicExit
|
||||
al 00E2C1 .HandlePlayer2LogicCallE5AC
|
||||
al 00E2B9 .HandlePlayer2Logic
|
||||
al 00E2A3 .HandlePlayer2LogicStxZp31
|
||||
al 00E29C .HandlePlayer2LogicCpyZp43
|
||||
al 00E2B8 .HandlePlayer2LogicCallE4E2
|
||||
al 00E290 .HandlePlayer2LogicEntry
|
||||
al 00E26C .HandlePlayer1LogicCallE4E2Alt
|
||||
al 00E255 .HandlePlayer1LogicCallE5AC
|
||||
al 00E24A .HandlePlayer1LogicCallE4E2
|
||||
al 00E236 .HandlePlayer1LogicLdaZp87
|
||||
al 00E235 .HandlePlayer1LogicBeq
|
||||
al 00E21E .HandlePlayer1LogicLda0258
|
||||
al 00E20D .HandlePlayer1LogicInx
|
||||
al 00E207 .HandlePlayer1LogicLdxZp36
|
||||
al 00E1FD .HandlePlayer2Dex
|
||||
al 00E1CD .HandlePlayer2CallE1FDEntry
|
||||
al 00E11A .HandlePlayer2CallE1FD
|
||||
al 00E0B7 .HandlePlayer1BeqE235
|
||||
al 00E0B4 .HandlePlayer1CheckZp87
|
||||
al 00E11C .HandlePlayer2Entry
|
||||
al 00E076 .HandlePlayer1Alt
|
||||
al 00E06D .HandlePlayer1CallE1CD
|
||||
al 00E064 .HandlePlayer2Exit
|
||||
al 00E073 .HandlePlayer1CallE1FD
|
||||
al 00E052 .HandlePlayer1BeqE075
|
||||
al 00E056 .HandlePlayer1LdxZp89
|
||||
al 00E075 .HandlePlayer1Entry
|
||||
al 00E040 .HandlePlayer1CheckZpC0
|
||||
al 00DFDF .HandleKODexBne
|
||||
al 00DFE5 .HandleKOBeqDFE4
|
||||
al 00DFDA .HandleKODex
|
||||
al 00DFE4 .HandleKOCheckZp1F
|
||||
al 00DFBC .HandleKOCheckZp1F_DFBC
|
||||
al 00DFAE .HandleKOBeqDFB7
|
||||
al 00DFB7 .HandleKOLda0321
|
||||
al 00DF9E .HandleKOCheckZp88
|
||||
al 00DF8D .HandleKOCmp07
|
||||
al 00DF7A .HandleKOLoop
|
||||
al 00DF75 .HandleKOAnd07
|
||||
al 00DF74 .HandleKOLda05EC
|
||||
al 00DF53 .HandleKOEntry
|
||||
al 00DF4C .UpdateRoundStateAlt
|
||||
al 00DEC9 .UpdateRoundState
|
||||
al 00DE1C .ProcessInputsEntry
|
||||
al 00DE35 .ProcessInputsCheckZp1F
|
||||
al 00DE03 .ProcessInputsExit
|
||||
al 00DD96 .UpdateTimersBneDDAB
|
||||
al 00DDAB .UpdateTimersCallCDE0
|
||||
al 00DD8C .UpdateTimersAnd1F
|
||||
al 00DD34 .UpdateTimersBeqDD34
|
||||
al 00DD3B .UpdateTimersCmp02Alt
|
||||
al 00DD33 .UpdateTimersBeqDD33Alt
|
||||
al 00DD00 .UpdateTimersCmp02
|
||||
al 00DCFF .UpdateTimersBeqDD33
|
||||
al 00DCF6 .UpdateTimersEntry
|
||||
al 00DBF0 .SpriteDMARTS
|
||||
al 00DBDD .SpriteDMACallCDE0
|
||||
al 00DBEF .SpriteDMACallDD8C
|
||||
al 00DBBF .SpriteDMACheckZp93
|
||||
al 00DBAA .SpriteDMADex
|
||||
al 00DBA6 .SpriteDMALoop_DBA6
|
||||
al 00DB9E .SpriteDMALdaF940
|
||||
al 00DB8E .SpriteDMALdx0A
|
||||
al 00DB7D .SpriteDMALoopEntry
|
||||
al 00DB92 .SpriteDMALdy0A
|
||||
al 00DB57 .SpriteDMACmp02
|
||||
al 00DB91 .SpriteDMABeqDB91
|
||||
al 00DB48 .SpriteDMACheckZp96_DB48
|
||||
al 00DAB3 .SpriteDMACheckZp96
|
||||
al 00DAA7 .CheckCollisions
|
||||
al 00DA25 .TitleScreenSetMode
|
||||
al 00D828 .UpdatePlayerPositionsStxZp31
|
||||
al 00D825 .UpdatePlayerPositionsEntry
|
||||
al 00D80C .UpdatePlayerPositionsExit
|
||||
al 00D807 .UpdatePlayerPositionsSetZp32
|
||||
al 00D7FC .UpdatePlayerPositionsCheckZp84
|
||||
al 00D7DB .UpdatePlayerPositions
|
||||
al 00D447 .DrawRoundNumberADC06
|
||||
al 00D444 .DrawRoundNumberClc
|
||||
al 00D436 .DrawRoundNumberCalc
|
||||
al 00D463 .DrawRoundNumberCallE4E2
|
||||
al 00D45B .DrawRoundNumberCallE7A7
|
||||
al 00D411 .UpdateScoreLDY02
|
||||
al 00D408 .UpdateScoreBneD3CE
|
||||
al 00D3F3 .UpdateScoreSetZp31Alt3
|
||||
al 00D3CE .UpdateScoreCallE46E
|
||||
al 00D3D1 .UpdateScoreBneD40E
|
||||
al 00D3BD .UpdateScoreSetZp31Alt2
|
||||
al 00D40E .UpdateScoreExit
|
||||
al 00D3C3 .UpdateScoreBneD408
|
||||
al 00D3A4 .UpdateScoreCheckZp88Alt
|
||||
al 00D392 .UpdateScoreLdx02
|
||||
al 00D367 .UpdateScoreSetZp31Alt
|
||||
al 00D35E .UpdateScoreCpy0D
|
||||
al 00D34B .UpdateScoreCallE462
|
||||
al 00D341 .UpdateScoreCallE459
|
||||
al 00D327 .UpdateScoreLdxZp89
|
||||
al 00D332 .UpdateScoreCallE2B9
|
||||
al 00D31F .UpdateScoreBeqD31F
|
||||
al 00D313 .UpdateScoreLoadZp1F
|
||||
al 00D304 .UpdateScoreSetZp31
|
||||
al 00D301 .UpdateScoreCheckZp88
|
||||
al 00D300 .UpdateScoreEntry
|
||||
al 00D2CA .UpdatePlayersCheckZp1F
|
||||
al 00D2AF .UpdatePlayersCallE4E2Alt
|
||||
al 00D2AD .UpdatePlayersCallE4E2
|
||||
al 00D2C4 .UpdatePlayersCallE462
|
||||
al 00D2A7 .UpdatePlayersStxZp31Alt
|
||||
al 00D2A5 .UpdatePlayersEntryAlt
|
||||
al 00D2B2 .UpdatePlayersCallE5AC
|
||||
al 00D2C7 .UpdatePlayersCallE462_CF
|
||||
al 00D289 .UpdatePlayersCpyZp43Alt
|
||||
al 00D27B .UpdatePlayersEntry
|
||||
al 00D2A9 .UpdatePlayersStyZp43Alt
|
||||
al 00D29E .UpdatePlayersStyZp43
|
||||
al 00D261 .UpdatePlayersStxZp31
|
||||
al 00D254 .UpdatePlayersCpyZp43
|
||||
al 00D243 .UpdatePlayersBitZp00
|
||||
al 00D213 .UpdatePlayersCheckZp00
|
||||
al 00D1EA .UpdatePPUMaskLdx01
|
||||
al 00D1E8 .UpdatePPUMaskBCS
|
||||
al 00D1F9 .UpdatePPUMaskSetZp88
|
||||
al 00D1CA .UpdatePPUMaskCheckZp8B
|
||||
al 00D1C4 .UpdatePPUMaskEntry
|
||||
al 00D1AE .UpdatePPUMaskASL
|
||||
al 00D1A4 .UpdatePPUMaskCheckZp85
|
||||
al 00D187 .UpdatePPUMaskExit
|
||||
al 00D174 .UpdatePPUMask
|
||||
al 00D08E .SpriteDMA
|
||||
al 00D088 .SpriteDMASetZp00
|
||||
al 00D086 .SpriteDMALoop_D086
|
||||
al 00D084 .SpriteDMAEntry
|
||||
al 00D07E .SetupInitialStateLoop
|
||||
al 00D07A .SetupInitialStateEntry
|
||||
al 00D066 .UpdateRoundTimerInitCallCE3A
|
||||
al 00D05E .UpdateRoundTimerInitSetZp09
|
||||
al 00D057 .UpdateRoundTimer
|
||||
al 00D050 .UpdateRoundTimerInitSetPtr
|
||||
al 00D044 .DrawBackgroundLdx0
|
||||
al 00D040 .DrawBackgroundSetZpA2Alt
|
||||
al 00D034 .DrawBackgroundSetZpA2
|
||||
al 00D030 .DrawBackgroundEntry
|
||||
al 00D01A .UpdateRoundTimerInit
|
||||
al 00D015 .UpdateRoundTimerBeq
|
||||
al 00D012 .UpdateRoundTimerCallD057
|
||||
al 00CFB3 .CheckRoundEndEntry
|
||||
al 00CFA1 .CheckRoundEnd
|
||||
al 00CF92 .UpdateSpritePositions
|
||||
al 00CF8F .ScrollBackgroundStaZp01Alt2
|
||||
al 00CF83 .ScrollBackgroundCallCF92Alt2
|
||||
al 00CF70 .ScrollBackgroundCallCF92Alt
|
||||
al 00CF67 .ScrollBackgroundCmp0A_CF67
|
||||
al 00CF6B .ScrollBackgroundSbcZp01_CF6B
|
||||
al 00CF5A .ScrollBackgroundAdcZp01_CF5A
|
||||
al 00CF4F .ScrollBackgroundCallCF92Entry
|
||||
al 00CF4E .ScrollBackgroundCallCF92
|
||||
al 00CF25 .ScrollBackgroundStaZp01Alt
|
||||
al 00CF23 .ScrollBackgroundSbcZp01_CF23
|
||||
al 00CECE .ScrollBackgroundStaZp01
|
||||
al 00CEF5 .ScrollBackgroundCmp0A_CEF5
|
||||
al 00CEF1 .ScrollBackgroundAdcZp01_CEF1
|
||||
al 00CEC5 .ScrollBackgroundAnd0F
|
||||
al 00CEBE .ScrollBackgroundAdc01
|
||||
al 00CEBD .ScrollBackgroundCmp6F_CEBD
|
||||
al 00CEAD .ScrollBackgroundTXA_CEAD
|
||||
al 00CE83 .ScrollBackgroundInx
|
||||
al 00CE6C .ScrollBackgroundLoop
|
||||
al 00CE55 .ScrollBackgroundSetZp21
|
||||
al 00CE43 .ScrollBackground
|
||||
al 00CE3A .ScrollBackgroundRead2002
|
||||
al 00CE26 .ScrollBackgroundCmp6F_CE26
|
||||
al 00CE23 .ScrollBackgroundTXA_CE23
|
||||
al 00CE20 .ScrollBackgroundIncX
|
||||
al 00CE14 .ScrollBackgroundEntry
|
||||
al 00CDFE .RoundLogicSaveXY
|
||||
al 00CDE0 .ProcessControllerInput
|
||||
al 00CDDC .RoundLogicBplCDD6
|
||||
al 00CDD6 .RoundLogicDecZp2A
|
||||
al 00CDCA .RoundLogicEntry
|
||||
al 00CDC3 .ProcessControllerInputStaZp09
|
||||
al 00CDAA .ProcessControllerInputOra18
|
||||
al 00CD94 .ProcessControllerInputAnd04
|
||||
al 00CD85 .ProcessControllerInputRead2002Alt2
|
||||
al 00CD6C .ProcessControllerInputAndFB
|
||||
al 00CD5D .ProcessControllerInputRead2002
|
||||
al 00CD76 .ProcessControllerInputStaZp08
|
||||
al 00CD84 .ProcessControllerInputRead2002Alt
|
||||
al 00CD41 .ProcessControllerInputEntry
|
||||
al 00CD38 .RoundLogicSet21
|
||||
al 00CD33 .RoundLogicBeqCD84
|
||||
al 00CD22 .RoundLogicCheckZp21
|
||||
al 00CCFD .ProcessControllerInputStore
|
||||
al 00CCFB .ProcessControllerInputLoop
|
||||
al 00CCF3 .UpdatePalettesZeroY
|
||||
al 00CCE3 .UpdatePalettesCheckZp27
|
||||
al 00CCD0 .UpdatePlayers
|
||||
al 00CCC3 .UpdateOAMCheckZp27
|
||||
al 00CCCF .UpdateOAMZeroY
|
||||
al 00CCAF .UpdatePalettes
|
||||
al 00CC97 .UpdateOAMCheckZp23
|
||||
al 00CCAE .UpdateOAMDecrement
|
||||
al 00CC85 .UpdateOAM_CC85
|
||||
al 00CC7B .UpdateOAMClear200
|
||||
al 00CC77 .UpdateOAMExit
|
||||
al 00CC6E .UpdateOAMSetPointer
|
||||
al 00CC67 .UpdateOAM_CC67
|
||||
al 00CC5C .UpdateScrollCheckZpA4
|
||||
al 00CC42 .UpdateScrollCheckDispatchAlt
|
||||
al 00CC3A .UpdateScrollCheckDispatch
|
||||
al 00CC3E .UpdateScrollReadZpA4
|
||||
al 00CC24 .InitSpritesSet5FD
|
||||
al 00CC15 .InitSpritesIncY
|
||||
al 00CC29 .UpdateScrollReadDispatch
|
||||
al 00CC1B .InitSpritesCpy02
|
||||
al 00CC02 .UpdateScrollCheckZp1F
|
||||
al 00CBF7 .InitSpritesAlt
|
||||
al 00CBDA .UpdateScrollLogic
|
||||
al 00CC0B .InitSpritesExit
|
||||
al 00CBE2 .InitSprites
|
||||
al 00CBFB .InitSpritesBeqCBFB
|
||||
al 00CBC0 .InitSpritesZero5FF
|
||||
al 00CBB6 .InitSpritesSetPos
|
||||
al 00CB55 .GameplayFrameCallE70C
|
||||
al 00CB51 .GameplayFrameCallD012
|
||||
al 00CB4E .CheckControllerStartJmp
|
||||
al 00CB4B .CheckControllerStartWait
|
||||
al 00CB0F .CheckControllerStartLoop
|
||||
al 00CB06 .CheckControllerStartEntry
|
||||
al 00CB31 .CheckControllerStartExit
|
||||
al 00CB66 .UpdateScrollEntry
|
||||
al 00CB61 .TitleScreenLoopCallInitAPU
|
||||
al 00CAE1 .TitleScreenCheckMode
|
||||
al 00CADA .UpdateScroll
|
||||
al 00CAB2 .NmiFrameUpdate4
|
||||
al 00CAB5 .NmiExit
|
||||
al 00CAC2 .NmiVBlankOnly_CAC2
|
||||
al 00CA91 .NmiHandler
|
||||
al 00CA76 .GameplayFrame
|
||||
al 00CA73 .CallInitAPU
|
||||
al 00CA69 .TitleScreenLoop
|
||||
al 00CA87 .MainGameLoop
|
||||
al 00CA5E .CopyConfigData
|
||||
al 00CA2F .StoreConfig
|
||||
al 00CA21 .ClearRAMLoop
|
||||
al 00CA02 .WaitPPUReady
|
||||
al 00CA00 .Reset
|
||||
al 00C64E .WaitVBlankCallC1B2Zero
|
||||
al 00C647 .WaitVBlankZeroE4
|
||||
al 00C644 .WaitVBlankJmpC20F
|
||||
al 00C63D .WaitVBlankCallC1B2Alt2
|
||||
al 00C60B .WaitVBlankStore
|
||||
al 00C5F6 .WaitVBlankDecD8
|
||||
al 00C5F5 .WaitVBlankLoop_C5F5
|
||||
al 00C637 .WaitVBlankCallC1B2Alt
|
||||
al 00C605 .WaitVBlankCheckFA
|
||||
al 00C622 .WaitVBlankCallC1B2
|
||||
al 00C5F9 .WaitVBlankDecD9
|
||||
al 00C5FF .WaitVBlankCheckFF
|
||||
al 00C5D1 .InitGameState4
|
||||
al 00C5CA .InitGameState4CheckF2Alt
|
||||
al 00C5C5 .InitGameState4DecD8
|
||||
al 00C5AB .InitGameState4CheckF9
|
||||
al 00C5A4 .InitGameState4MaskEF
|
||||
al 00C590 .InitGameState4ClearEF
|
||||
al 00C593 .InitGameState4MaskF3
|
||||
al 00C55A .InitGameState4Loop
|
||||
al 00C542 .InitGameState4CheckF2
|
||||
al 00C52D .InitGameState3Alt
|
||||
al 00C520 .InitGameState3Loop
|
||||
al 00C512 .InitGameState3CheckE6
|
||||
al 00C508 .InitGameState3
|
||||
al 00C4F4 .InitSpritesSetF4
|
||||
al 00C4E6 .InitSpritesCheck10CAF
|
||||
al 00C4E3 .InitSpritesCheck10C
|
||||
al 00C4CA .InitSpritesCheck10BMax
|
||||
al 00C4C3 .InitSpritesInc10B
|
||||
al 00C4BB .InitSpritesCheck10B
|
||||
al 00C4A4 .InitSpritesAlt2Entry
|
||||
al 00C4A5 .InitSpritesAlt2Loop
|
||||
al 00C49C .InitSpritesAlt1Loop
|
||||
al 00C48A .InitGameState2Exit
|
||||
al 00C478 .InitSpritesAlt1Entry
|
||||
al 00C465 .InitGameState2
|
||||
al 00C44A .InitSpritesSetF2
|
||||
al 00C444 .InitSpritesCheckF2
|
||||
al 00C425 .InitSpritesAlt8
|
||||
al 00C41E .InitSpritesAlt7
|
||||
al 00C408 .InitSpritesAlt6
|
||||
al 00C40F .InitSpritesSetF3
|
||||
al 00C3E3 .InitSpritesSetE4
|
||||
al 00C3E9 .InitSpritesSetE6
|
||||
al 00C3C3 .InitSpritesCheckE6
|
||||
al 00C3B3 .InitSpritesExit_C3B3
|
||||
al 00C3FF .InitSpritesCallChain
|
||||
al 00C3AD .InitSpritesAltExit
|
||||
al 00C40E .InitSpritesCheckF1
|
||||
al 00C39A .InitSpritesLoop
|
||||
al 00C405 .InitSpritesClearEF
|
||||
al 00C384 .InitSpritesMain
|
||||
al 00C37D .InitSpritesAlt2
|
||||
al 00C376 .InitSpritesAlt1
|
||||
al 00C358 .InitAPURegisters
|
||||
al 00C352 .ClearControllerState
|
||||
al 00C335 .InitAPU
|
||||
al 00C332 .InitAPUCall
|
||||
al 00C327 .InitGameStateExit
|
||||
al 00C31B .InitGameState
|
||||
al 00C30D .ClearRAMPageLoop
|
||||
al 00C30C .ClearRAMPage
|
||||
al 00C2A5 .InitGameVariables
|
||||
al 00C2DE .ClearRAM
|
||||
al 00C288 .WaitVBlankLoop
|
||||
al 00C22C .CopySpriteTablesLoop
|
||||
al 00C24D .WaitVBlank
|
||||
al 00C20F .CopySpriteTables
|
||||
al 00C1B2 .SetupSpriteDataLoop
|
||||
al 00C1A7 .SetupSpriteData
|
||||
al 00C199 .LoadBackgroundDataAlt
|
||||
al 00C195 .LoadBackgroundDataLoop
|
||||
al 00C19B .LoadBackgroundDataExit
|
||||
al 00C18D .LoadBackgroundData
|
||||
al 00C0F1 .InitAPUFrameCounter
|
||||
al 00C0FC .InitPPUFinal
|
||||
al 00C0E0 .InitPPULoop
|
||||
al 00C0F8 .InitAPUFrameCounterExit
|
||||
al 00C0CF .InitPPU
|
||||
al 00C0B1 .InitControllerTablesExit
|
||||
al 00C0AE .InitControllerTablesAlt
|
||||
al 00C0A0 .InitControllerTablesLoop
|
||||
al 00C087 .InitControllerTables
|
||||
al 00C06E .UpdateControllerState
|
||||
al 00C063 .InitSoundPointers
|
||||
al 00C05E .SaveXY
|
||||
al 00C058 .InitAPUWaveform
|
||||
al 00C056 .SetAPUSweep
|
||||
al 00C04E .SetAPUVolume
|
||||
al 00C026 .ScaleInputIndex
|
||||
al 00C003 .CheckControllerStart
|
||||
al 00C000 .InitAPU_C000
|
||||
Binary file not shown.
Binary file not shown.
Reference in new issue
Block a user