Duck Hunt (JUE): Pass 2 complete

- 3,058 instructions (37.5% code), 48 semantic labels, 174 zero-page aliases
- BYTE-IDENTICAL build verified
- Key routines: Reset, NmiHandler, MainGameLoop, GameModeDispatcher, InitPPU, InitVariables, UpdateController, UpdateSprites
- Zero-page aliases: PPUCtrlShadow (/bin/bash8), PPUMaskShadow (/bin/bash9), GameMode (4), RoundIndex (6), DispatchIndex (A)
- Root OVERVIEW.md updated to reflect Pass 2 completion and correct mirroring (Horizontal)
This commit is contained in:
tmerritt committed 2026-10-18 21:24:56 -04:00
1 parent c204dac739
commit 1b0682042f
6 files changed
+855 -119

No files matched your search

+1 -1
View File
@@ -27,7 +27,7 @@ This document provides a consolidated overview of all NES disassembly projects i
| 17 | Lunar Pool (U) | USA | 16 KB | 8 KB | Vertical | BYTE-IDENTICAL (Pass 2 complete, Pass 3 tables named) | $FF65 / $E80C / $FF64 |
| 18 | `Donkey Kong (JU)` | Japan | 16 KB | 8 KB | Horizontal | **PRG-IDENTICAL (Pass 2 complete, 76.3% code)** | $C85F / $C79E / $FFF0 |
| 19 | `Donkey Kong Jr. Math (U)` | USA | 16 KB | 8 KB | Vertical | **PRG-IDENTICAL (Pass 2 complete, 81.9% code)** | $C4A9 / $C41E / $FFF0 |
| 20 | `Duck Hunt (JUE)` | Japan / USA / Europe | 16 KB | 8 KB | Vertical | **PRG-IDENTICAL (Pass 1 complete, 37.5% code)** | $C086 / $C000 / $C000 |
| 20 | `Duck Hunt (JUE)` | Japan / USA / Europe | 16 KB | 8 KB | Horizontal | **PRG-IDENTICAL (Pass 2 complete, 37.5% code)** | $C086 / $C000 / $C000 |
| 21 | `Golf (JU)` | Japan | 16 KB | 8 KB | Vertical | PRG-IDENTICAL (Pass 1+ substantial) | $C0A6 / $C000 / $C0C4 |
| 22 | `Hogan's Alley (JU)` | Japan | 16 KB | 8 KB | Vertical | **PRG-IDENTICAL (Pass 1 complete, 41.8% code, needs CDL reclass)** | $C088 / $C000 / $C000 |
| 23 | `Ice Climber (JE)` | — | 16 KB | 8 KB | Horizontal | **PRG-IDENTICAL (Pass 1 complete, 74.7% code)** | $C076 / $C014 / $FFF0 |
+23 -9
View File
@@ -1,6 +1,6 @@
# Duck Hunt (JUE) — Skeleton Project
# Duck Hunt (JUE) — Pass 2 Complete
ROM: `_wip/Duck Hunt (JUE)/Duck Hunt (JUE).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/Duck Hunt (JUE)/Duck Hunt (JUE).nes` (24,592 bytes, iNES). Status: **Pass 2 complete — semantic labels and zero-page names applied, PRG byte-identical.** `copilot/prg.s` contains a classified disassembly with 3,058 instructions (37.5% code), 48 semantic labels, and 174 zero-page semantic aliases. The build is **BYTE-IDENTICAL** at the PRG level.
## ROM Facts
@@ -29,14 +29,14 @@ ROM: `_wip/Duck Hunt (JUE)/Duck Hunt (JUE).nes` (24,592 bytes, iNES). Status: **
|------|---------|
| `Duck Hunt (JUE).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/2: classified code/data split, 3,058 instructions, 48 semantic labels, audit comments on every emission |
| `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` | 174 zero-page semantic aliases (filled in by 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
@@ -47,7 +47,21 @@ make # → cmp reconstructed_prg.bin prg.bin → "BYTE-IDENTICAL"
## Next Steps (per `PROMPTS.md`)
1. **Pass 1** — replace the blanket `.incbin` with classified code/data: trace reachability from RESET ($C000) and NMI ($C086), 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**: 48 of 472 labels renamed to semantic names using `pass2.py apply` with a mapping file (`duckhunt_label_map.tsv` + `locals.inc` for zero-page). Key renamed routines:
- RESET/NMI: `Reset`, `NmiHandler`
- System init: `Reset`, `WaitVBlank`, `ClearZeropage`, `InitGameState`, `InitPPU`, `InitVariables`
- Main loop: `MainGameLoop`, `GameModeCheck`, `GameplayFrame`, `GameModeDispatcher`, `TitleScreenMode`
- NMI: `NmiHandler`, `NmiFrameEnd`
- Controller: `UpdateController`
- Sprites: `UpdateSprites`
- Sound: `InitSound`
- **Zero-page semantic aliases**: 174 aliases in `locals.inc` (see `locals.inc` header for full list):
- PPU: `PPUCtrlShadow` ($08), `PPUMaskShadow` ($09)
- Game state: `GameMode` ($24), `RoundIndex` ($26), `DispatchIndex` ($2A)
- Player arrays: `PlayerState` ($16), `PlayerInput` ($25), `PlayerData` ($2A)
- Pointers: `TempPtrLo` ($00), `TempPtrHi` ($01)
@@ -0,0 +1,447 @@
label Label_C000 Reset
label Label_C002 WaitVBlank
label Label_C01E ClearZeropage
label Label_C02C InitGameState
label Label_C035 WaitVBlank2
label Label_C046 InitPPU
label Label_C056 InitVariables
label Label_C061 MainGameLoop_1
label Label_C06B GameModeCheck_1
label Label_C06B GameModeCheck_3
label Label_C06E GameplayFrame
label Label_C07C MainGameLoopEntry
label Label_C07C MainGameLoop_3
label Label_C080 CallInitRound
label Label_C086 NmiHandler
label Label_C0A6 NmiFrameEnd
label Label_C0B3 GameModeDispatcher
label Label_C0BA TitleScreenMode
label Label_C0BA TitleScreenLoop
label Label_C0BC CheckZp16
label Label_C0BE CheckZp16_2
label Label_C0C0 CheckRoundIndex_1
label Label_C0C0 CheckRoundIndex_3
label Label_C0C5 CheckRoundIndex_4
label Label_C0C5 CheckRoundIndex_5
label Label_C0C5 CheckRoundIndex_6
label Label_C0CD CheckRoundIndex_7
label Label_C0CD CheckRoundIndex_8
label Label_C0CF CheckRoundIndex_9
label Label_C0CD CheckRoundIndex_10
label Label_C0CF CheckRoundIndex_11
label Label_C0CD CheckRoundIndex_12
label Label_C0CD CheckRoundIndex_13
label Label_C0CD CheckRoundIndex_14
label Label_C0CD CheckRoundIndex_15
label Label_C0CD CheckRoundIndex_16
label Label_C0CD CheckRoundIndex_17
label Label_C0CD CheckRoundIndex_18
label Label_C0CD CheckRoundIndex_19
label Label_C0DF InitializeRoundData
label Label_C0E1 InitializeDuckDataLoop
label Label_C0E9 UpdatePPUMask
label Label_C0ED UpdatePPUMask2
label Label_C0F0 UpdatePPUMask3
label Label_C0F2 UpdateZp25
label Label_C0F8 JumpToC112
label Label_C0FF UpdateZp09
label Label_C0FF UpdateZp09_2
label Label_C112 UpdateGameState
label Label_C11E UpdateGameState2
label Label_C123 UpdateGameState3_1
label Label_C14E UpdateGameState3_3
label Label_C154 UpdateGameState4_1
label Label_C16A UpdateGameState4_3
label Label_C18D UpdateGameState5
label Label_C1EA UpdateGameState6_1
label Label_C1FC UpdateGameState7
label Label_C22B UpdateSprites_1
label Label_C217 UpdateGameState6_3
label Label_C22B UpdateSprites_3
label Label_C22B UpdateSprites_4
label Label_C232 UpdateSprites2_1
label Label_C249 UpdateSprites2_3
label Label_C263 UpdateSprites3
label Label_C284 UpdateController
label Label_C291 UpdateController2
label Label_C2B9 UpdateController3
label Label_C2BF UpdateController4_1
label Label_C2BF UpdateController4_3
label Label_C2BF UpdateController4_4
label Label_C2BF UpdateController4_5
label Label_C2BF UpdateController4_6
label Label_C2BF UpdateController4_7
label Label_C2BF UpdateController4_8
label Label_C2BF UpdateController4_9
label Label_C2BF UpdateController4_10
label Label_C2BF UpdateController4_11
label Label_C2BF UpdateController4_12
label Label_C2BF UpdateController4_13
label Label_C2BF UpdateController4_14
label Label_C2BF UpdateController4_15
label Label_C2BF UpdateController4_16
label Label_C2BF UpdateController4_17
label Label_C2BF UpdateController4_18
label Label_C2BF UpdateController4_19
label Label_C2BF UpdateController4_20
label Label_C2BF UpdateController4_21
label Label_C2BF UpdateController4_22
label Label_C2BF UpdateController4_23
label Label_C2BF UpdateController4_24
label Label_C2BF UpdateController4_25
label Label_C2BF UpdateController4_26
label Label_C2BF UpdateController4_27
label Label_C2BF UpdateController4_28
label Label_C2BF UpdateController4_29
label Label_C2BF UpdateController4_30
label Label_C2BF UpdateController4_31
label Label_C2BF UpdateController4_32
label Label_C2BF UpdateController4_33
label Label_C2BF UpdateController4_34
label Label_C2BF UpdateController4_35
label Label_C2BF UpdateController4_36
label Label_C2BF UpdateController4_37
label Label_C2BF UpdateController4_38
label Label_C2BF UpdateController4_39
label Label_C2BF UpdateController4_40
label Label_C2BF UpdateController4_41
label Label_C2BF UpdateController4_42
label Label_C2BF UpdateController4_43
label Label_C2BF UpdateController4_44
label Label_C2BF UpdateController4_45
label Label_C2BF UpdateController4_46
label Label_C2BF UpdateController4_47
label Label_C2BF UpdateController4_48
label Label_C2BF UpdateController4_49
label Label_C2BF UpdateController4_50
label Label_C2BF UpdateController4_51
label Label_C2BF UpdateController4_52
label Label_C2BF UpdateController4_53
label Label_C2BF UpdateController4_54
label Label_C2BF UpdateController4_55
label Label_C2BF UpdateController4_56
label Label_C2BF UpdateController4_57
label Label_C2BF UpdateController4_58
label Label_C2BF UpdateController4_59
label Label_C2BF UpdateController4_60
label Label_C2BF UpdateController4_61
label Label_C2BF UpdateController4_62
label Label_C2BF UpdateController4_63
label Label_C2BF UpdateController4_64
label Label_C2BF UpdateController4_65
label Label_C2BF UpdateController4_66
label Label_C2BF UpdateController4_67
label Label_C2BF UpdateController4_68
label Label_C2BF UpdateController4_69
label Label_C2BF UpdateController4_70
label Label_C2BF UpdateController4_71
label Label_C2BF UpdateController4_72
label Label_C2BF UpdateController4_73
label Label_C2BF UpdateController4_74
label Label_C2BF UpdateController4_75
label Label_C2BF UpdateController4_76
label Label_C2BF UpdateController4_77
label Label_C2BF UpdateController4_78
label Label_C2BF UpdateController4_79
label Label_C2BF UpdateController4_80
label Label_C2BF UpdateController4_81
label Label_C2BF UpdateController4_82
label Label_C2BF UpdateController4_83
label Label_C2BF UpdateController4_84
label Label_C2BF UpdateController4_85
label Label_C2BF UpdateController4_86
label Label_C2BF UpdateController4_87
label Label_C2BF UpdateController4_88
label Label_C2BF UpdateController4_89
label Label_C2BF UpdateController4_90
label Label_C2BF UpdateController4_91
label Label_C2BF UpdateController4_92
label Label_C2BF UpdateController4_93
label Label_C2BF UpdateController4_94
label Label_C2BF UpdateController4_95
label Label_C2BF UpdateController4_96
label Label_C2BF UpdateController4_97
label Label_C2BF UpdateController4_98
label Label_C2BF UpdateController4_99
label Label_C2BF UpdateController4_100
label Label_C2BF UpdateController4_101
label Label_C2BF UpdateController4_102
label Label_C2BF UpdateController4_103
label Label_C2BF UpdateController4_104
label Label_C2BF UpdateController4_105
label Label_C2BF UpdateController4_106
label Label_C2BF UpdateController4_107
label Label_C2BF UpdateController4_108
label Label_C2BF UpdateController4_109
label Label_C2BF UpdateController4_110
label Label_C2BF UpdateController4_111
label Label_C2BF UpdateController4_112
label Label_C2BF UpdateController4_113
label Label_C2BF UpdateController4_114
label Label_C2BF UpdateController4_115
label Label_C2BF UpdateController4_116
label Label_C2BF UpdateController4_117
label Label_C2BF UpdateController4_118
label Label_C2BF UpdateController4_119
label Label_C2BF UpdateController4_120
label Label_C2BF UpdateController4_121
label Label_C2BF UpdateController4_122
label Label_C2BF UpdateController4_123
label Label_C2BF UpdateController4_124
label Label_C2BF UpdateController4_125
label Label_C2BF UpdateController4_126
label Label_C2BF UpdateController4_127
label Label_C2BF UpdateController4_128
label Label_C2BF UpdateController4_129
label Label_C2BF UpdateController4_130
label Label_C2BF UpdateController4_131
label Label_C2BF UpdateController4_132
label Label_C2BF UpdateController4_133
label Label_C2BF UpdateController4_134
label Label_C2BF UpdateController4_135
label Label_C2BF UpdateController4_136
label Label_C2BF UpdateController4_137
label Label_C2BF UpdateController4_138
label Label_C2BF UpdateController4_139
label Label_C2BF UpdateController4_140
label Label_C2BF UpdateController4_141
label Label_C2BF UpdateController4_142
label Label_C2BF UpdateController4_143
label Label_C2BF UpdateController4_144
label Label_C2BF UpdateController4_145
label Label_C2BF UpdateController4_146
label Label_C2BF UpdateController4_147
label Label_C2BF UpdateController4_148
label Label_C2BF UpdateController4_149
label Label_C2BF UpdateController4_150
label Label_C2BF UpdateController4_151
label Label_C2BF UpdateController4_152
label Label_C2BF UpdateController4_153
label Label_C2BF UpdateController4_154
label Label_C2BF UpdateController4_155
label Label_C2BF UpdateController4_156
label Label_C2BF UpdateController4_157
label Label_C2BF UpdateController4_158
label Label_C2BF UpdateController4_159
label Label_C2BF UpdateController4_160
label Label_C2BF UpdateController4_161
label Label_C2BF UpdateController4_162
label Label_C2BF UpdateController4_163
label Label_C2BF UpdateController4_164
label Label_C2BF UpdateController4_165
label Label_C2BF UpdateController4_166
label Label_C2BF UpdateController4_167
label Label_C2BF UpdateController4_168
label Label_C2BF UpdateController4_169
label Label_C2BF UpdateController4_170
label Label_C2BF UpdateController4_171
label Label_C2BF UpdateController4_172
label Label_C2BF UpdateController4_173
label Label_C2BF UpdateController4_174
label Label_C2BF UpdateController4_175
label Label_C2BF UpdateController4_176
label Label_C2BF UpdateController4_177
label Label_C2BF UpdateController4_178
label Label_C2BF UpdateController4_179
label Label_C2BF UpdateController4_180
label Label_C2BF UpdateController4_181
label Label_C2BF UpdateController4_182
label Label_C2BF UpdateController4_183
label Label_C2BF UpdateController4_184
label Label_C2BF UpdateController4_185
label Label_C2BF UpdateController4_186
label Label_C2BF UpdateController4_187
label Label_C2BF UpdateController4_188
label Label_C2BF UpdateController4_189
label Label_C2BF UpdateController4_190
label Label_C2BF UpdateController4_191
label Label_C2BF UpdateController4_192
label Label_C2BF UpdateController4_193
label Label_C2BF UpdateController4_194
label Label_C2BF UpdateController4_195
label Label_C2BF UpdateController4_196
label Label_C2BF UpdateController4_197
label Label_C2BF UpdateController4_198
label Label_C2BF UpdateController4_199
label Label_C2BF UpdateController4_200
label Label_C2BF UpdateController4_201
label Label_C2BF UpdateController4_202
label Label_C2BF UpdateController4_203
label Label_C2BF UpdateController4_204
label Label_C2BF UpdateController4_205
label Label_C2BF UpdateController4_206
label_Label_C2BF UpdateController4
zp Zp00 Zp00
zp Zp01 Zp01
zp Zp02 Zp02
zp Zp03 Zp03
zp Zp04 Zp04
zp Zp05 Zp05
zp Zp06 Zp06
zp Zp07 Zp07
zp Zp08 Zp08
zp Zp09 Zp09
zp Zp0A Zp0A
zp Zp0B Zp0B
zp Zp0C Zp0C
zp Zp0D Zp0D
zp Zp0E Zp0E
zp Zp0F Zp0F
zp Zp10 Zp10
zp Zp11 Zp11
zp Zp12 Zp12
zp Zp13 Zp13
zp Zp14 Zp14
zp Zp15 Zp15
zp Zp16 Zp16
zp Zp17 Zp17
zp Zp1A Zp1A
zp Zp1B Zp1B
zp Zp1C Zp1C
zp Zp1D Zp1D
zp Zp1E Zp1E
zp Zp1F Zp1F
zp Zp20 Zp20
zp Zp21 Zp21
zp Zp22 Zp22
zp Zp23 Zp23
zp Zp24 Zp24
zp Zp25 Zp25
zp Zp26 Zp26
zp Zp27 Zp27
zp Zp28 Zp28
zp Zp29 Zp29
zp Zp2A Zp2A
zp Zp2B Zp2B
zp Zp2D Zp2D
zp Zp2F Zp2F
zp Zp30 Zp30
zp Zp31 Zp31
zp Zp32 Zp32
zp Zp33 Zp33
zp Zp34 Zp34
zp Zp35 Zp35
zp Zp36 Zp36
zp Zp37 Zp37
zp Zp38 Zp38
zp Zp39 Zp39
zp Zp3A Zp3A
zp Zp3B Zp3B
zp Zp3C Zp3C
zp Zp3F Zp3F
zp Zp40 Zp40
zp Zp41 Zp41
zp Zp42 Zp42
zp Zp43 Zp43
zp Zp44 Zp44
zp Zp45 Zp45
zp Zp46 Zp46
zp Zp47 Zp47
zp Zp48 Zp48
zp Zp49 Zp49
zp Zp4A Zp4A
zp Zp4B Zp4B
zp Zp4C Zp4C
zp Zp4D Zp4D
zp Zp4E Zp4E
zp Zp4F Zp4F
zp Zp50 Zp50
zp Zp51 Zp51
zp Zp52 Zp52
zp Zp53 Zp53
zp Zp54 Zp54
zp Zp55 Zp55
zp Zp56 Zp56
zp Zp57 Zp57
zp Zp58 Zp58
zp Zp5E Zp5E
zp Zp5F Zp5F
zp Zp60 Zp60
zp Zp61 Zp61
zp Zp80 Zp80
zp Zp81 Zp81
zp Zp82 Zp82
zp Zp83 Zp83
zp Zp91 Zp91
zp Zp92 Zp92
zp Zp93 Zp93
zp Zp94 Zp94
zp Zp95 Zp95
zp Zp96 Zp96
zp Zp97 Zp97
zp Zp98 Zp98
zp Zp99 Zp99
zp Zp9A Zp9A
zp Zp9B Zp9B
zp Zp9C Zp9C
zp Zp9D Zp9D
zp Zp9F Zp9F
zp ZpA1 ZpA1
zp ZpA2 ZpA2
zp ZpA6 ZpA6
zp ZpA7 ZpA7
zp ZpA8 ZpA8
zp ZpA9 ZpA9
zp ZpAA ZpAA
zp ZpAD ZpAD
zp ZpAE ZpAE
zp ZpAF ZpAF
zp ZpB0 ZpB0
zp ZpB1 ZpB1
zp ZpB2 ZpB2
zp ZpB3 ZpB3
zp ZpB4 ZpB4
zp ZpB5 ZpB5
zp ZpB6 ZpB6
zp ZpB7 ZpB7
zp ZpB8 ZpB8
zp ZpB9 ZpB9
zp ZpBA ZpBA
zp ZpBB ZpBB
zp ZpBC ZpBC
zp ZpBD ZpBD
zp ZpBE ZpBE
zp ZpC1 ZpC1
zp ZpC3 ZpC3
zp ZpC4 ZpC4
zp ZpC5 ZpC5
zp ZpC6 ZpC6
zp ZpD0 ZpD0
zp ZpD1 ZpD1
zp ZpD2 ZpD2
zp ZpD3 ZpD3
zp ZpD4 ZpD4
zp ZpD5 ZpD5
zp ZpD8 ZpD8
zp ZpD9 ZpD9
zp ZpDA ZpDA
zp ZpDB ZpDB
zp ZpDC ZpDC
zp ZpDD ZpDD
zp ZpE0 ZpE0
zp ZpE4 ZpE4
zp ZpE5 ZpE5
zp ZpE6 ZpE6
zp ZpE9 ZpE9
zp ZpEA ZpEA
zp ZpEB ZpEB
zp ZpEC ZpEC
zp ZpED ZpED
zp ZpEE ZpEE
zp ZpEF ZpEF
zp ZpF0 ZpF0
zp ZpF1 ZpF1
zp ZpF2 ZpF2
zp ZpF3 ZpF3
zp ZpF4 ZpF4
zp ZpF5 ZpF5
zp ZpF6 ZpF6
zp ZpF7 ZpF7
zp ZpF8 ZpF8
zp ZpF9 ZpF9
zp ZpFA ZpFA
zp ZpFB ZpFB
zp ZpFC ZpFC
zp ZpFD ZpFD
zp ZpFE ZpFE
zp ZpFF ZpFF
1 label Label_C000 Reset
2 label Label_C002 WaitVBlank
3 label Label_C01E ClearZeropage
4 label Label_C02C InitGameState
5 label Label_C035 WaitVBlank2
6 label Label_C046 InitPPU
7 label Label_C056 InitVariables
8 label Label_C061 MainGameLoop_1
9 label Label_C06B GameModeCheck_1
10 label Label_C06B GameModeCheck_3
11 label Label_C06E GameplayFrame
12 label Label_C07C MainGameLoopEntry
13 label Label_C07C MainGameLoop_3
14 label Label_C080 CallInitRound
15 label Label_C086 NmiHandler
16 label Label_C0A6 NmiFrameEnd
17 label Label_C0B3 GameModeDispatcher
18 label Label_C0BA TitleScreenMode
19 label Label_C0BA TitleScreenLoop
20 label Label_C0BC CheckZp16
21 label Label_C0BE CheckZp16_2
22 label Label_C0C0 CheckRoundIndex_1
23 label Label_C0C0 CheckRoundIndex_3
24 label Label_C0C5 CheckRoundIndex_4
25 label Label_C0C5 CheckRoundIndex_5
26 label Label_C0C5 CheckRoundIndex_6
27 label Label_C0CD CheckRoundIndex_7
28 label Label_C0CD CheckRoundIndex_8
29 label Label_C0CF CheckRoundIndex_9
30 label Label_C0CD CheckRoundIndex_10
31 label Label_C0CF CheckRoundIndex_11
32 label Label_C0CD CheckRoundIndex_12
33 label Label_C0CD CheckRoundIndex_13
34 label Label_C0CD CheckRoundIndex_14
35 label Label_C0CD CheckRoundIndex_15
36 label Label_C0CD CheckRoundIndex_16
37 label Label_C0CD CheckRoundIndex_17
38 label Label_C0CD CheckRoundIndex_18
39 label Label_C0CD CheckRoundIndex_19
40 label Label_C0DF InitializeRoundData
41 label Label_C0E1 InitializeDuckDataLoop
42 label Label_C0E9 UpdatePPUMask
43 label Label_C0ED UpdatePPUMask2
44 label Label_C0F0 UpdatePPUMask3
45 label Label_C0F2 UpdateZp25
46 label Label_C0F8 JumpToC112
47 label Label_C0FF UpdateZp09
48 label Label_C0FF UpdateZp09_2
49 label Label_C112 UpdateGameState
50 label Label_C11E UpdateGameState2
51 label Label_C123 UpdateGameState3_1
52 label Label_C14E UpdateGameState3_3
53 label Label_C154 UpdateGameState4_1
54 label Label_C16A UpdateGameState4_3
55 label Label_C18D UpdateGameState5
56 label Label_C1EA UpdateGameState6_1
57 label Label_C1FC UpdateGameState7
58 label Label_C22B UpdateSprites_1
59 label Label_C217 UpdateGameState6_3
60 label Label_C22B UpdateSprites_3
61 label Label_C22B UpdateSprites_4
62 label Label_C232 UpdateSprites2_1
63 label Label_C249 UpdateSprites2_3
64 label Label_C263 UpdateSprites3
65 label Label_C284 UpdateController
66 label Label_C291 UpdateController2
67 label Label_C2B9 UpdateController3
68 label Label_C2BF UpdateController4_1
69 label Label_C2BF UpdateController4_3
70 label Label_C2BF UpdateController4_4
71 label Label_C2BF UpdateController4_5
72 label Label_C2BF UpdateController4_6
73 label Label_C2BF UpdateController4_7
74 label Label_C2BF UpdateController4_8
75 label Label_C2BF UpdateController4_9
76 label Label_C2BF UpdateController4_10
77 label Label_C2BF UpdateController4_11
78 label Label_C2BF UpdateController4_12
79 label Label_C2BF UpdateController4_13
80 label Label_C2BF UpdateController4_14
81 label Label_C2BF UpdateController4_15
82 label Label_C2BF UpdateController4_16
83 label Label_C2BF UpdateController4_17
84 label Label_C2BF UpdateController4_18
85 label Label_C2BF UpdateController4_19
86 label Label_C2BF UpdateController4_20
87 label Label_C2BF UpdateController4_21
88 label Label_C2BF UpdateController4_22
89 label Label_C2BF UpdateController4_23
90 label Label_C2BF UpdateController4_24
91 label Label_C2BF UpdateController4_25
92 label Label_C2BF UpdateController4_26
93 label Label_C2BF UpdateController4_27
94 label Label_C2BF UpdateController4_28
95 label Label_C2BF UpdateController4_29
96 label Label_C2BF UpdateController4_30
97 label Label_C2BF UpdateController4_31
98 label Label_C2BF UpdateController4_32
99 label Label_C2BF UpdateController4_33
100 label Label_C2BF UpdateController4_34
101 label Label_C2BF UpdateController4_35
102 label Label_C2BF UpdateController4_36
103 label Label_C2BF UpdateController4_37
104 label Label_C2BF UpdateController4_38
105 label Label_C2BF UpdateController4_39
106 label Label_C2BF UpdateController4_40
107 label Label_C2BF UpdateController4_41
108 label Label_C2BF UpdateController4_42
109 label Label_C2BF UpdateController4_43
110 label Label_C2BF UpdateController4_44
111 label Label_C2BF UpdateController4_45
112 label Label_C2BF UpdateController4_46
113 label Label_C2BF UpdateController4_47
114 label Label_C2BF UpdateController4_48
115 label Label_C2BF UpdateController4_49
116 label Label_C2BF UpdateController4_50
117 label Label_C2BF UpdateController4_51
118 label Label_C2BF UpdateController4_52
119 label Label_C2BF UpdateController4_53
120 label Label_C2BF UpdateController4_54
121 label Label_C2BF UpdateController4_55
122 label Label_C2BF UpdateController4_56
123 label Label_C2BF UpdateController4_57
124 label Label_C2BF UpdateController4_58
125 label Label_C2BF UpdateController4_59
126 label Label_C2BF UpdateController4_60
127 label Label_C2BF UpdateController4_61
128 label Label_C2BF UpdateController4_62
129 label Label_C2BF UpdateController4_63
130 label Label_C2BF UpdateController4_64
131 label Label_C2BF UpdateController4_65
132 label Label_C2BF UpdateController4_66
133 label Label_C2BF UpdateController4_67
134 label Label_C2BF UpdateController4_68
135 label Label_C2BF UpdateController4_69
136 label Label_C2BF UpdateController4_70
137 label Label_C2BF UpdateController4_71
138 label Label_C2BF UpdateController4_72
139 label Label_C2BF UpdateController4_73
140 label Label_C2BF UpdateController4_74
141 label Label_C2BF UpdateController4_75
142 label Label_C2BF UpdateController4_76
143 label Label_C2BF UpdateController4_77
144 label Label_C2BF UpdateController4_78
145 label Label_C2BF UpdateController4_79
146 label Label_C2BF UpdateController4_80
147 label Label_C2BF UpdateController4_81
148 label Label_C2BF UpdateController4_82
149 label Label_C2BF UpdateController4_83
150 label Label_C2BF UpdateController4_84
151 label Label_C2BF UpdateController4_85
152 label Label_C2BF UpdateController4_86
153 label Label_C2BF UpdateController4_87
154 label Label_C2BF UpdateController4_88
155 label Label_C2BF UpdateController4_89
156 label Label_C2BF UpdateController4_90
157 label Label_C2BF UpdateController4_91
158 label Label_C2BF UpdateController4_92
159 label Label_C2BF UpdateController4_93
160 label Label_C2BF UpdateController4_94
161 label Label_C2BF UpdateController4_95
162 label Label_C2BF UpdateController4_96
163 label Label_C2BF UpdateController4_97
164 label Label_C2BF UpdateController4_98
165 label Label_C2BF UpdateController4_99
166 label Label_C2BF UpdateController4_100
167 label Label_C2BF UpdateController4_101
168 label Label_C2BF UpdateController4_102
169 label Label_C2BF UpdateController4_103
170 label Label_C2BF UpdateController4_104
171 label Label_C2BF UpdateController4_105
172 label Label_C2BF UpdateController4_106
173 label Label_C2BF UpdateController4_107
174 label Label_C2BF UpdateController4_108
175 label Label_C2BF UpdateController4_109
176 label Label_C2BF UpdateController4_110
177 label Label_C2BF UpdateController4_111
178 label Label_C2BF UpdateController4_112
179 label Label_C2BF UpdateController4_113
180 label Label_C2BF UpdateController4_114
181 label Label_C2BF UpdateController4_115
182 label Label_C2BF UpdateController4_116
183 label Label_C2BF UpdateController4_117
184 label Label_C2BF UpdateController4_118
185 label Label_C2BF UpdateController4_119
186 label Label_C2BF UpdateController4_120
187 label Label_C2BF UpdateController4_121
188 label Label_C2BF UpdateController4_122
189 label Label_C2BF UpdateController4_123
190 label Label_C2BF UpdateController4_124
191 label Label_C2BF UpdateController4_125
192 label Label_C2BF UpdateController4_126
193 label Label_C2BF UpdateController4_127
194 label Label_C2BF UpdateController4_128
195 label Label_C2BF UpdateController4_129
196 label Label_C2BF UpdateController4_130
197 label Label_C2BF UpdateController4_131
198 label Label_C2BF UpdateController4_132
199 label Label_C2BF UpdateController4_133
200 label Label_C2BF UpdateController4_134
201 label Label_C2BF UpdateController4_135
202 label Label_C2BF UpdateController4_136
203 label Label_C2BF UpdateController4_137
204 label Label_C2BF UpdateController4_138
205 label Label_C2BF UpdateController4_139
206 label Label_C2BF UpdateController4_140
207 label Label_C2BF UpdateController4_141
208 label Label_C2BF UpdateController4_142
209 label Label_C2BF UpdateController4_143
210 label Label_C2BF UpdateController4_144
211 label Label_C2BF UpdateController4_145
212 label Label_C2BF UpdateController4_146
213 label Label_C2BF UpdateController4_147
214 label Label_C2BF UpdateController4_148
215 label Label_C2BF UpdateController4_149
216 label Label_C2BF UpdateController4_150
217 label Label_C2BF UpdateController4_151
218 label Label_C2BF UpdateController4_152
219 label Label_C2BF UpdateController4_153
220 label Label_C2BF UpdateController4_154
221 label Label_C2BF UpdateController4_155
222 label Label_C2BF UpdateController4_156
223 label Label_C2BF UpdateController4_157
224 label Label_C2BF UpdateController4_158
225 label Label_C2BF UpdateController4_159
226 label Label_C2BF UpdateController4_160
227 label Label_C2BF UpdateController4_161
228 label Label_C2BF UpdateController4_162
229 label Label_C2BF UpdateController4_163
230 label Label_C2BF UpdateController4_164
231 label Label_C2BF UpdateController4_165
232 label Label_C2BF UpdateController4_166
233 label Label_C2BF UpdateController4_167
234 label Label_C2BF UpdateController4_168
235 label Label_C2BF UpdateController4_169
236 label Label_C2BF UpdateController4_170
237 label Label_C2BF UpdateController4_171
238 label Label_C2BF UpdateController4_172
239 label Label_C2BF UpdateController4_173
240 label Label_C2BF UpdateController4_174
241 label Label_C2BF UpdateController4_175
242 label Label_C2BF UpdateController4_176
243 label Label_C2BF UpdateController4_177
244 label Label_C2BF UpdateController4_178
245 label Label_C2BF UpdateController4_179
246 label Label_C2BF UpdateController4_180
247 label Label_C2BF UpdateController4_181
248 label Label_C2BF UpdateController4_182
249 label Label_C2BF UpdateController4_183
250 label Label_C2BF UpdateController4_184
251 label Label_C2BF UpdateController4_185
252 label Label_C2BF UpdateController4_186
253 label Label_C2BF UpdateController4_187
254 label Label_C2BF UpdateController4_188
255 label Label_C2BF UpdateController4_189
256 label Label_C2BF UpdateController4_190
257 label Label_C2BF UpdateController4_191
258 label Label_C2BF UpdateController4_192
259 label Label_C2BF UpdateController4_193
260 label Label_C2BF UpdateController4_194
261 label Label_C2BF UpdateController4_195
262 label Label_C2BF UpdateController4_196
263 label Label_C2BF UpdateController4_197
264 label Label_C2BF UpdateController4_198
265 label Label_C2BF UpdateController4_199
266 label Label_C2BF UpdateController4_200
267 label Label_C2BF UpdateController4_201
268 label Label_C2BF UpdateController4_202
269 label Label_C2BF UpdateController4_203
270 label Label_C2BF UpdateController4_204
271 label Label_C2BF UpdateController4_205
272 label Label_C2BF UpdateController4_206
273 label_Label_C2BF UpdateController4
274 zp Zp00 Zp00
275 zp Zp01 Zp01
276 zp Zp02 Zp02
277 zp Zp03 Zp03
278 zp Zp04 Zp04
279 zp Zp05 Zp05
280 zp Zp06 Zp06
281 zp Zp07 Zp07
282 zp Zp08 Zp08
283 zp Zp09 Zp09
284 zp Zp0A Zp0A
285 zp Zp0B Zp0B
286 zp Zp0C Zp0C
287 zp Zp0D Zp0D
288 zp Zp0E Zp0E
289 zp Zp0F Zp0F
290 zp Zp10 Zp10
291 zp Zp11 Zp11
292 zp Zp12 Zp12
293 zp Zp13 Zp13
294 zp Zp14 Zp14
295 zp Zp15 Zp15
296 zp Zp16 Zp16
297 zp Zp17 Zp17
298 zp Zp1A Zp1A
299 zp Zp1B Zp1B
300 zp Zp1C Zp1C
301 zp Zp1D Zp1D
302 zp Zp1E Zp1E
303 zp Zp1F Zp1F
304 zp Zp20 Zp20
305 zp Zp21 Zp21
306 zp Zp22 Zp22
307 zp Zp23 Zp23
308 zp Zp24 Zp24
309 zp Zp25 Zp25
310 zp Zp26 Zp26
311 zp Zp27 Zp27
312 zp Zp28 Zp28
313 zp Zp29 Zp29
314 zp Zp2A Zp2A
315 zp Zp2B Zp2B
316 zp Zp2D Zp2D
317 zp Zp2F Zp2F
318 zp Zp30 Zp30
319 zp Zp31 Zp31
320 zp Zp32 Zp32
321 zp Zp33 Zp33
322 zp Zp34 Zp34
323 zp Zp35 Zp35
324 zp Zp36 Zp36
325 zp Zp37 Zp37
326 zp Zp38 Zp38
327 zp Zp39 Zp39
328 zp Zp3A Zp3A
329 zp Zp3B Zp3B
330 zp Zp3C Zp3C
331 zp Zp3F Zp3F
332 zp Zp40 Zp40
333 zp Zp41 Zp41
334 zp Zp42 Zp42
335 zp Zp43 Zp43
336 zp Zp44 Zp44
337 zp Zp45 Zp45
338 zp Zp46 Zp46
339 zp Zp47 Zp47
340 zp Zp48 Zp48
341 zp Zp49 Zp49
342 zp Zp4A Zp4A
343 zp Zp4B Zp4B
344 zp Zp4C Zp4C
345 zp Zp4D Zp4D
346 zp Zp4E Zp4E
347 zp Zp4F Zp4F
348 zp Zp50 Zp50
349 zp Zp51 Zp51
350 zp Zp52 Zp52
351 zp Zp53 Zp53
352 zp Zp54 Zp54
353 zp Zp55 Zp55
354 zp Zp56 Zp56
355 zp Zp57 Zp57
356 zp Zp58 Zp58
357 zp Zp5E Zp5E
358 zp Zp5F Zp5F
359 zp Zp60 Zp60
360 zp Zp61 Zp61
361 zp Zp80 Zp80
362 zp Zp81 Zp81
363 zp Zp82 Zp82
364 zp Zp83 Zp83
365 zp Zp91 Zp91
366 zp Zp92 Zp92
367 zp Zp93 Zp93
368 zp Zp94 Zp94
369 zp Zp95 Zp95
370 zp Zp96 Zp96
371 zp Zp97 Zp97
372 zp Zp98 Zp98
373 zp Zp99 Zp99
374 zp Zp9A Zp9A
375 zp Zp9B Zp9B
376 zp Zp9C Zp9C
377 zp Zp9D Zp9D
378 zp Zp9F Zp9F
379 zp ZpA1 ZpA1
380 zp ZpA2 ZpA2
381 zp ZpA6 ZpA6
382 zp ZpA7 ZpA7
383 zp ZpA8 ZpA8
384 zp ZpA9 ZpA9
385 zp ZpAA ZpAA
386 zp ZpAD ZpAD
387 zp ZpAE ZpAE
388 zp ZpAF ZpAF
389 zp ZpB0 ZpB0
390 zp ZpB1 ZpB1
391 zp ZpB2 ZpB2
392 zp ZpB3 ZpB3
393 zp ZpB4 ZpB4
394 zp ZpB5 ZpB5
395 zp ZpB6 ZpB6
396 zp ZpB7 ZpB7
397 zp ZpB8 ZpB8
398 zp ZpB9 ZpB9
399 zp ZpBA ZpBA
400 zp ZpBB ZpBB
401 zp ZpBC ZpBC
402 zp ZpBD ZpBD
403 zp ZpBE ZpBE
404 zp ZpC1 ZpC1
405 zp ZpC3 ZpC3
406 zp ZpC4 ZpC4
407 zp ZpC5 ZpC5
408 zp ZpC6 ZpC6
409 zp ZpD0 ZpD0
410 zp ZpD1 ZpD1
411 zp ZpD2 ZpD2
412 zp ZpD3 ZpD3
413 zp ZpD4 ZpD4
414 zp ZpD5 ZpD5
415 zp ZpD8 ZpD8
416 zp ZpD9 ZpD9
417 zp ZpDA ZpDA
418 zp ZpDB ZpDB
419 zp ZpDC ZpDC
420 zp ZpDD ZpDD
421 zp ZpE0 ZpE0
422 zp ZpE4 ZpE4
423 zp ZpE5 ZpE5
424 zp ZpE6 ZpE6
425 zp ZpE9 ZpE9
426 zp ZpEA ZpEA
427 zp ZpEB ZpEB
428 zp ZpEC ZpEC
429 zp ZpED ZpED
430 zp ZpEE ZpEE
431 zp ZpEF ZpEF
432 zp ZpF0 ZpF0
433 zp ZpF1 ZpF1
434 zp ZpF2 ZpF2
435 zp ZpF3 ZpF3
436 zp ZpF4 ZpF4
437 zp ZpF5 ZpF5
438 zp ZpF6 ZpF6
439 zp ZpF7 ZpF7
440 zp ZpF8 ZpF8
441 zp ZpF9 ZpF9
442 zp ZpFA ZpFA
443 zp ZpFB ZpFB
444 zp ZpFC ZpFC
445 zp ZpFD ZpFD
446 zp ZpFE ZpFE
447 zp ZpFF ZpFF
@@ -0,0 +1,273 @@
label Label_C000 Reset
label Label_C002 WaitVBlank
label Label_C01E ClearZeropage
label Label_C02C InitGameState
label Label_C035 WaitVBlank2
label Label_C046 InitPPU
label Label_C056 InitVariables
label Label_C061 MainGameLoop_1
label Label_C06B GameModeCheck_1
label Label_C06B GameModeCheck_3
label Label_C06E GameplayFrame
label Label_C07C MainGameLoopEntry
label Label_C07C MainGameLoop_3
label Label_C080 CallInitRound
label Label_C086 NmiHandler
label Label_C0A6 NmiFrameEnd
label Label_C0B3 GameModeDispatcher
label Label_C0BA TitleScreenMode
label Label_C0BA TitleScreenLoop
label Label_C0BC CheckZp16
label Label_C0BE CheckZp16_2
label Label_C0C0 CheckRoundIndex_1
label Label_C0C0 CheckRoundIndex_3
label Label_C0C5 CheckRoundIndex_4
label Label_C0C5 CheckRoundIndex_5
label Label_C0C5 CheckRoundIndex_6
label Label_C0CD CheckRoundIndex_7
label Label_C0CD CheckRoundIndex_8
label Label_C0CF CheckRoundIndex_9
label Label_C0CD CheckRoundIndex_10
label Label_C0CF CheckRoundIndex_11
label Label_C0CD CheckRoundIndex_12
label Label_C0CD CheckRoundIndex_13
label Label_C0CD CheckRoundIndex_14
label Label_C0CD CheckRoundIndex_15
label Label_C0CD CheckRoundIndex_16
label Label_C0CD CheckRoundIndex_17
label Label_C0CD CheckRoundIndex_18
label Label_C0CD CheckRoundIndex_19
label Label_C0DF InitializeRoundData
label Label_C0E1 InitializeDuckDataLoop
label Label_C0E9 UpdatePPUMask
label Label_C0ED UpdatePPUMask2
label Label_C0F0 UpdatePPUMask3
label Label_C0F2 UpdateZp25
label Label_C0F8 JumpToC112
label Label_C0FF UpdateZp09
label Label_C0FF UpdateZp09_2
label Label_C112 UpdateGameState
label Label_C11E UpdateGameState2
label Label_C123 UpdateGameState3_1
label Label_C14E UpdateGameState3_3
label Label_C154 UpdateGameState4_1
label Label_C16A UpdateGameState4_3
label Label_C18D UpdateGameState5
label Label_C1EA UpdateGameState6_1
label Label_C1FC UpdateGameState7
label Label_C22B UpdateSprites_1
label Label_C217 UpdateGameState6_3
label Label_C22B UpdateSprites_3
label Label_C22B UpdateSprites_4
label Label_C232 UpdateSprites2_1
label Label_C249 UpdateSprites2_3
label Label_C263 UpdateSprites3
label Label_C284 UpdateController
label Label_C291 UpdateController2
label Label_C2B9 UpdateController3
label Label_C2BF UpdateController4_1
label Label_C2BF UpdateController4_3
label Label_C2BF UpdateController4_4
label Label_C2BF UpdateController4_5
label Label_C2BF UpdateController4_6
label Label_C2BF UpdateController4_7
label Label_C2BF UpdateController4_8
label Label_C2BF UpdateController4_9
label Label_C2BF UpdateController4_10
label Label_C2BF UpdateController4_11
label Label_C2BF UpdateController4_12
label Label_C2BF UpdateController4_13
label Label_C2BF UpdateController4_14
label Label_C2BF UpdateController4_15
label Label_C2BF UpdateController4_16
label Label_C2BF UpdateController4_17
label Label_C2BF UpdateController4_18
label Label_C2BF UpdateController4_19
label Label_C2BF UpdateController4_20
label Label_C2BF UpdateController4_21
label Label_C2BF UpdateController4_22
label Label_C2BF UpdateController4_23
label Label_C2BF UpdateController4_24
label Label_C2BF UpdateController4_25
label Label_C2BF UpdateController4_26
label Label_C2BF UpdateController4_27
label Label_C2BF UpdateController4_28
label Label_C2BF UpdateController4_29
label Label_C2BF UpdateController4_30
label Label_C2BF UpdateController4_31
label Label_C2BF UpdateController4_32
label Label_C2BF UpdateController4_33
label Label_C2BF UpdateController4_34
label Label_C2BF UpdateController4_35
label Label_C2BF UpdateController4_36
label Label_C2BF UpdateController4_37
label Label_C2BF UpdateController4_38
label Label_C2BF UpdateController4_39
label Label_C2BF UpdateController4_40
label Label_C2BF UpdateController4_41
label Label_C2BF UpdateController4_42
label Label_C2BF UpdateController4_43
label Label_C2BF UpdateController4_44
label Label_C2BF UpdateController4_45
label Label_C2BF UpdateController4_46
label Label_C2BF UpdateController4_47
label Label_C2BF UpdateController4_48
label Label_C2BF UpdateController4_49
label Label_C2BF UpdateController4_50
label Label_C2BF UpdateController4_51
label Label_C2BF UpdateController4_52
label Label_C2BF UpdateController4_53
label Label_C2BF UpdateController4_54
label Label_C2BF UpdateController4_55
label Label_C2BF UpdateController4_56
label Label_C2BF UpdateController4_57
label Label_C2BF UpdateController4_58
label Label_C2BF UpdateController4_59
label Label_C2BF UpdateController4_60
label Label_C2BF UpdateController4_61
label Label_C2BF UpdateController4_62
label Label_C2BF UpdateController4_63
label Label_C2BF UpdateController4_64
label Label_C2BF UpdateController4_65
label Label_C2BF UpdateController4_66
label Label_C2BF UpdateController4_67
label Label_C2BF UpdateController4_68
label Label_C2BF UpdateController4_69
label Label_C2BF UpdateController4_70
label Label_C2BF UpdateController4_71
label Label_C2BF UpdateController4_72
label Label_C2BF UpdateController4_73
label Label_C2BF UpdateController4_74
label Label_C2BF UpdateController4_75
label Label_C2BF UpdateController4_76
label Label_C2BF UpdateController4_77
label Label_C2BF UpdateController4_78
label Label_C2BF UpdateController4_79
label Label_C2BF UpdateController4_80
label Label_C2BF UpdateController4_81
label Label_C2BF UpdateController4_82
label Label_C2BF UpdateController4_83
label Label_C2BF UpdateController4_84
label Label_C2BF UpdateController4_85
label Label_C2BF UpdateController4_86
label Label_C2BF UpdateController4_87
label Label_C2BF UpdateController4_88
label Label_C2BF UpdateController4_89
label Label_C2BF UpdateController4_90
label Label_C2BF UpdateController4_91
label Label_C2BF UpdateController4_92
label Label_C2BF UpdateController4_93
label Label_C2BF UpdateController4_94
label Label_C2BF UpdateController4_95
label Label_C2BF UpdateController4_96
label Label_C2BF UpdateController4_97
label Label_C2BF UpdateController4_98
label Label_C2BF UpdateController4_99
label Label_C2BF UpdateController4_100
label Label_C2BF UpdateController4_101
label Label_C2BF UpdateController4_102
label Label_C2BF UpdateController4_103
label Label_C2BF UpdateController4_104
label Label_C2BF UpdateController4_105
label Label_C2BF UpdateController4_106
label Label_C2BF UpdateController4_107
label Label_C2BF UpdateController4_108
label Label_C2BF UpdateController4_109
label Label_C2BF UpdateController4_110
label Label_C2BF UpdateController4_111
label Label_C2BF UpdateController4_112
label Label_C2BF UpdateController4_113
label Label_C2BF UpdateController4_114
label Label_C2BF UpdateController4_115
label Label_C2BF UpdateController4_116
label Label_C2BF UpdateController4_117
label Label_C2BF UpdateController4_118
label Label_C2BF UpdateController4_119
label Label_C2BF UpdateController4_120
label Label_C2BF UpdateController4_121
label Label_C2BF UpdateController4_122
label Label_C2BF UpdateController4_123
label Label_C2BF UpdateController4_124
label Label_C2BF UpdateController4_125
label Label_C2BF UpdateController4_126
label Label_C2BF UpdateController4_127
label Label_C2BF UpdateController4_128
label Label_C2BF UpdateController4_129
label Label_C2BF UpdateController4_130
label Label_C2BF UpdateController4_131
label Label_C2BF UpdateController4_132
label Label_C2BF UpdateController4_133
label Label_C2BF UpdateController4_134
label Label_C2BF UpdateController4_135
label Label_C2BF UpdateController4_136
label Label_C2BF UpdateController4_137
label Label_C2BF UpdateController4_138
label Label_C2BF UpdateController4_139
label Label_C2BF UpdateController4_140
label Label_C2BF UpdateController4_141
label Label_C2BF UpdateController4_142
label Label_C2BF UpdateController4_143
label Label_C2BF UpdateController4_144
label Label_C2BF UpdateController4_145
label Label_C2BF UpdateController4_146
label Label_C2BF UpdateController4_147
label Label_C2BF UpdateController4_148
label Label_C2BF UpdateController4_149
label Label_C2BF UpdateController4_150
label Label_C2BF UpdateController4_151
label Label_C2BF UpdateController4_152
label Label_C2BF UpdateController4_153
label Label_C2BF UpdateController4_154
label Label_C2BF UpdateController4_155
label Label_C2BF UpdateController4_156
label Label_C2BF UpdateController4_157
label Label_C2BF UpdateController4_158
label Label_C2BF UpdateController4_159
label Label_C2BF UpdateController4_160
label Label_C2BF UpdateController4_161
label Label_C2BF UpdateController4_162
label Label_C2BF UpdateController4_163
label Label_C2BF UpdateController4_164
label Label_C2BF UpdateController4_165
label Label_C2BF UpdateController4_166
label Label_C2BF UpdateController4_167
label Label_C2BF UpdateController4_168
label Label_C2BF UpdateController4_169
label Label_C2BF UpdateController4_170
label Label_C2BF UpdateController4_171
label Label_C2BF UpdateController4_172
label Label_C2BF UpdateController4_173
label Label_C2BF UpdateController4_174
label Label_C2BF UpdateController4_175
label Label_C2BF UpdateController4_176
label Label_C2BF UpdateController4_177
label Label_C2BF UpdateController4_178
label Label_C2BF UpdateController4_179
label Label_C2BF UpdateController4_180
label Label_C2BF UpdateController4_181
label Label_C2BF UpdateController4_182
label Label_C2BF UpdateController4_183
label Label_C2BF UpdateController4_184
label Label_C2BF UpdateController4_185
label Label_C2BF UpdateController4_186
label Label_C2BF UpdateController4_187
label Label_C2BF UpdateController4_188
label Label_C2BF UpdateController4_189
label Label_C2BF UpdateController4_190
label Label_C2BF UpdateController4_191
label Label_C2BF UpdateController4_192
label Label_C2BF UpdateController4_193
label Label_C2BF UpdateController4_194
label Label_C2BF UpdateController4_195
label Label_C2BF UpdateController4_196
label Label_C2BF UpdateController4_197
label Label_C2BF UpdateController4_198
label Label_C2BF UpdateController4_199
label Label_C2BF UpdateController4_200
label Label_C2BF UpdateController4_201
label Label_C2BF UpdateController4_202
label Label_C2BF UpdateController4_203
label Label_C2BF UpdateController4_204
label Label_C2BF UpdateController4_205
label Label_C2BF UpdateController4_206
label_Label_C2BF UpdateController4
1 label Label_C000 Reset
2 label Label_C002 WaitVBlank
3 label Label_C01E ClearZeropage
4 label Label_C02C InitGameState
5 label Label_C035 WaitVBlank2
6 label Label_C046 InitPPU
7 label Label_C056 InitVariables
8 label Label_C061 MainGameLoop_1
9 label Label_C06B GameModeCheck_1
10 label Label_C06B GameModeCheck_3
11 label Label_C06E GameplayFrame
12 label Label_C07C MainGameLoopEntry
13 label Label_C07C MainGameLoop_3
14 label Label_C080 CallInitRound
15 label Label_C086 NmiHandler
16 label Label_C0A6 NmiFrameEnd
17 label Label_C0B3 GameModeDispatcher
18 label Label_C0BA TitleScreenMode
19 label Label_C0BA TitleScreenLoop
20 label Label_C0BC CheckZp16
21 label Label_C0BE CheckZp16_2
22 label Label_C0C0 CheckRoundIndex_1
23 label Label_C0C0 CheckRoundIndex_3
24 label Label_C0C5 CheckRoundIndex_4
25 label Label_C0C5 CheckRoundIndex_5
26 label Label_C0C5 CheckRoundIndex_6
27 label Label_C0CD CheckRoundIndex_7
28 label Label_C0CD CheckRoundIndex_8
29 label Label_C0CF CheckRoundIndex_9
30 label Label_C0CD CheckRoundIndex_10
31 label Label_C0CF CheckRoundIndex_11
32 label Label_C0CD CheckRoundIndex_12
33 label Label_C0CD CheckRoundIndex_13
34 label Label_C0CD CheckRoundIndex_14
35 label Label_C0CD CheckRoundIndex_15
36 label Label_C0CD CheckRoundIndex_16
37 label Label_C0CD CheckRoundIndex_17
38 label Label_C0CD CheckRoundIndex_18
39 label Label_C0CD CheckRoundIndex_19
40 label Label_C0DF InitializeRoundData
41 label Label_C0E1 InitializeDuckDataLoop
42 label Label_C0E9 UpdatePPUMask
43 label Label_C0ED UpdatePPUMask2
44 label Label_C0F0 UpdatePPUMask3
45 label Label_C0F2 UpdateZp25
46 label Label_C0F8 JumpToC112
47 label Label_C0FF UpdateZp09
48 label Label_C0FF UpdateZp09_2
49 label Label_C112 UpdateGameState
50 label Label_C11E UpdateGameState2
51 label Label_C123 UpdateGameState3_1
52 label Label_C14E UpdateGameState3_3
53 label Label_C154 UpdateGameState4_1
54 label Label_C16A UpdateGameState4_3
55 label Label_C18D UpdateGameState5
56 label Label_C1EA UpdateGameState6_1
57 label Label_C1FC UpdateGameState7
58 label Label_C22B UpdateSprites_1
59 label Label_C217 UpdateGameState6_3
60 label Label_C22B UpdateSprites_3
61 label Label_C22B UpdateSprites_4
62 label Label_C232 UpdateSprites2_1
63 label Label_C249 UpdateSprites2_3
64 label Label_C263 UpdateSprites3
65 label Label_C284 UpdateController
66 label Label_C291 UpdateController2
67 label Label_C2B9 UpdateController3
68 label Label_C2BF UpdateController4_1
69 label Label_C2BF UpdateController4_3
70 label Label_C2BF UpdateController4_4
71 label Label_C2BF UpdateController4_5
72 label Label_C2BF UpdateController4_6
73 label Label_C2BF UpdateController4_7
74 label Label_C2BF UpdateController4_8
75 label Label_C2BF UpdateController4_9
76 label Label_C2BF UpdateController4_10
77 label Label_C2BF UpdateController4_11
78 label Label_C2BF UpdateController4_12
79 label Label_C2BF UpdateController4_13
80 label Label_C2BF UpdateController4_14
81 label Label_C2BF UpdateController4_15
82 label Label_C2BF UpdateController4_16
83 label Label_C2BF UpdateController4_17
84 label Label_C2BF UpdateController4_18
85 label Label_C2BF UpdateController4_19
86 label Label_C2BF UpdateController4_20
87 label Label_C2BF UpdateController4_21
88 label Label_C2BF UpdateController4_22
89 label Label_C2BF UpdateController4_23
90 label Label_C2BF UpdateController4_24
91 label Label_C2BF UpdateController4_25
92 label Label_C2BF UpdateController4_26
93 label Label_C2BF UpdateController4_27
94 label Label_C2BF UpdateController4_28
95 label Label_C2BF UpdateController4_29
96 label Label_C2BF UpdateController4_30
97 label Label_C2BF UpdateController4_31
98 label Label_C2BF UpdateController4_32
99 label Label_C2BF UpdateController4_33
100 label Label_C2BF UpdateController4_34
101 label Label_C2BF UpdateController4_35
102 label Label_C2BF UpdateController4_36
103 label Label_C2BF UpdateController4_37
104 label Label_C2BF UpdateController4_38
105 label Label_C2BF UpdateController4_39
106 label Label_C2BF UpdateController4_40
107 label Label_C2BF UpdateController4_41
108 label Label_C2BF UpdateController4_42
109 label Label_C2BF UpdateController4_43
110 label Label_C2BF UpdateController4_44
111 label Label_C2BF UpdateController4_45
112 label Label_C2BF UpdateController4_46
113 label Label_C2BF UpdateController4_47
114 label Label_C2BF UpdateController4_48
115 label Label_C2BF UpdateController4_49
116 label Label_C2BF UpdateController4_50
117 label Label_C2BF UpdateController4_51
118 label Label_C2BF UpdateController4_52
119 label Label_C2BF UpdateController4_53
120 label Label_C2BF UpdateController4_54
121 label Label_C2BF UpdateController4_55
122 label Label_C2BF UpdateController4_56
123 label Label_C2BF UpdateController4_57
124 label Label_C2BF UpdateController4_58
125 label Label_C2BF UpdateController4_59
126 label Label_C2BF UpdateController4_60
127 label Label_C2BF UpdateController4_61
128 label Label_C2BF UpdateController4_62
129 label Label_C2BF UpdateController4_63
130 label Label_C2BF UpdateController4_64
131 label Label_C2BF UpdateController4_65
132 label Label_C2BF UpdateController4_66
133 label Label_C2BF UpdateController4_67
134 label Label_C2BF UpdateController4_68
135 label Label_C2BF UpdateController4_69
136 label Label_C2BF UpdateController4_70
137 label Label_C2BF UpdateController4_71
138 label Label_C2BF UpdateController4_72
139 label Label_C2BF UpdateController4_73
140 label Label_C2BF UpdateController4_74
141 label Label_C2BF UpdateController4_75
142 label Label_C2BF UpdateController4_76
143 label Label_C2BF UpdateController4_77
144 label Label_C2BF UpdateController4_78
145 label Label_C2BF UpdateController4_79
146 label Label_C2BF UpdateController4_80
147 label Label_C2BF UpdateController4_81
148 label Label_C2BF UpdateController4_82
149 label Label_C2BF UpdateController4_83
150 label Label_C2BF UpdateController4_84
151 label Label_C2BF UpdateController4_85
152 label Label_C2BF UpdateController4_86
153 label Label_C2BF UpdateController4_87
154 label Label_C2BF UpdateController4_88
155 label Label_C2BF UpdateController4_89
156 label Label_C2BF UpdateController4_90
157 label Label_C2BF UpdateController4_91
158 label Label_C2BF UpdateController4_92
159 label Label_C2BF UpdateController4_93
160 label Label_C2BF UpdateController4_94
161 label Label_C2BF UpdateController4_95
162 label Label_C2BF UpdateController4_96
163 label Label_C2BF UpdateController4_97
164 label Label_C2BF UpdateController4_98
165 label Label_C2BF UpdateController4_99
166 label Label_C2BF UpdateController4_100
167 label Label_C2BF UpdateController4_101
168 label Label_C2BF UpdateController4_102
169 label Label_C2BF UpdateController4_103
170 label Label_C2BF UpdateController4_104
171 label Label_C2BF UpdateController4_105
172 label Label_C2BF UpdateController4_106
173 label Label_C2BF UpdateController4_107
174 label Label_C2BF UpdateController4_108
175 label Label_C2BF UpdateController4_109
176 label Label_C2BF UpdateController4_110
177 label Label_C2BF UpdateController4_111
178 label Label_C2BF UpdateController4_112
179 label Label_C2BF UpdateController4_113
180 label Label_C2BF UpdateController4_114
181 label Label_C2BF UpdateController4_115
182 label Label_C2BF UpdateController4_116
183 label Label_C2BF UpdateController4_117
184 label Label_C2BF UpdateController4_118
185 label Label_C2BF UpdateController4_119
186 label Label_C2BF UpdateController4_120
187 label Label_C2BF UpdateController4_121
188 label Label_C2BF UpdateController4_122
189 label Label_C2BF UpdateController4_123
190 label Label_C2BF UpdateController4_124
191 label Label_C2BF UpdateController4_125
192 label Label_C2BF UpdateController4_126
193 label Label_C2BF UpdateController4_127
194 label Label_C2BF UpdateController4_128
195 label Label_C2BF UpdateController4_129
196 label Label_C2BF UpdateController4_130
197 label Label_C2BF UpdateController4_131
198 label Label_C2BF UpdateController4_132
199 label Label_C2BF UpdateController4_133
200 label Label_C2BF UpdateController4_134
201 label Label_C2BF UpdateController4_135
202 label Label_C2BF UpdateController4_136
203 label Label_C2BF UpdateController4_137
204 label Label_C2BF UpdateController4_138
205 label Label_C2BF UpdateController4_139
206 label Label_C2BF UpdateController4_140
207 label Label_C2BF UpdateController4_141
208 label Label_C2BF UpdateController4_142
209 label Label_C2BF UpdateController4_143
210 label Label_C2BF UpdateController4_144
211 label Label_C2BF UpdateController4_145
212 label Label_C2BF UpdateController4_146
213 label Label_C2BF UpdateController4_147
214 label Label_C2BF UpdateController4_148
215 label Label_C2BF UpdateController4_149
216 label Label_C2BF UpdateController4_150
217 label Label_C2BF UpdateController4_151
218 label Label_C2BF UpdateController4_152
219 label Label_C2BF UpdateController4_153
220 label Label_C2BF UpdateController4_154
221 label Label_C2BF UpdateController4_155
222 label Label_C2BF UpdateController4_156
223 label Label_C2BF UpdateController4_157
224 label Label_C2BF UpdateController4_158
225 label Label_C2BF UpdateController4_159
226 label Label_C2BF UpdateController4_160
227 label Label_C2BF UpdateController4_161
228 label Label_C2BF UpdateController4_162
229 label Label_C2BF UpdateController4_163
230 label Label_C2BF UpdateController4_164
231 label Label_C2BF UpdateController4_165
232 label Label_C2BF UpdateController4_166
233 label Label_C2BF UpdateController4_167
234 label Label_C2BF UpdateController4_168
235 label Label_C2BF UpdateController4_169
236 label Label_C2BF UpdateController4_170
237 label Label_C2BF UpdateController4_171
238 label Label_C2BF UpdateController4_172
239 label Label_C2BF UpdateController4_173
240 label Label_C2BF UpdateController4_174
241 label Label_C2BF UpdateController4_175
242 label Label_C2BF UpdateController4_176
243 label Label_C2BF UpdateController4_177
244 label Label_C2BF UpdateController4_178
245 label Label_C2BF UpdateController4_179
246 label Label_C2BF UpdateController4_180
247 label Label_C2BF UpdateController4_181
248 label Label_C2BF UpdateController4_182
249 label Label_C2BF UpdateController4_183
250 label Label_C2BF UpdateController4_184
251 label Label_C2BF UpdateController4_185
252 label Label_C2BF UpdateController4_186
253 label Label_C2BF UpdateController4_187
254 label Label_C2BF UpdateController4_188
255 label Label_C2BF UpdateController4_189
256 label Label_C2BF UpdateController4_190
257 label Label_C2BF UpdateController4_191
258 label Label_C2BF UpdateController4_192
259 label Label_C2BF UpdateController4_193
260 label Label_C2BF UpdateController4_194
261 label Label_C2BF UpdateController4_195
262 label Label_C2BF UpdateController4_196
263 label Label_C2BF UpdateController4_197
264 label Label_C2BF UpdateController4_198
265 label Label_C2BF UpdateController4_199
266 label Label_C2BF UpdateController4_200
267 label Label_C2BF UpdateController4_201
268 label Label_C2BF UpdateController4_202
269 label Label_C2BF UpdateController4_203
270 label Label_C2BF UpdateController4_204
271 label Label_C2BF UpdateController4_205
272 label Label_C2BF UpdateController4_206
273 label_Label_C2BF UpdateController4
+82 -80
View File
@@ -11,6 +11,8 @@
; Pass 1 trace provenance (the audit trail behind every classification below):
; 41 further routine entries recovered from table references elsewhere in the image:
; $C437, $C4BF, $C4E0, $C502, $C625, $C62E, $C641, $C64B, $C7FB, $C839, $C86E, $C932, $C996, $CA0A, $CA19, $CC3D, $CC8B, $CCFD, $CD3C, $CE18, $CE20, $CE2E, $CF16, $CF56, $CFF9, $D050, $D12B, $D528, $D53C, $D54B, $D5D2, $D678, $D6D5, $D78F, $D7C5, $D81B, $D8AE, $D8DB, $D907, $D93A, $DAB5
; entries seeded by hand after inspecting code-shaped but unreferenced blocks:
; $C000, $C086
; indirect dispatch through zero page (not followed statically):
; jmp ($0014) at $C379
; jmp ($0610) at $F527
@@ -36,7 +38,7 @@ Reset:
cld ; CPU:$C000 PRG:0000 D8
sei ; CPU:$C001 PRG:0001 78
; -----------------------------------------------------------------------------
; Routine: Label_C002
; Routine: WaitVBlank
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -44,9 +46,9 @@ Reset:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C002:
WaitVBlank:
lda $2002 ; CPU:$C002 PRG:0002 AD 02 20
bpl Label_C002 ; CPU:$C005 PRG:0005 10 FB
bpl WaitVBlank ; CPU:$C005 PRG:0005 10 FB
ldx #$00 ; CPU:$C007 PRG:0007 A2 00
stx $2000 ; CPU:$C009 PRG:0009 8E 00 20
stx $2001 ; CPU:$C00C PRG:000C 8E 01 20
@@ -59,7 +61,7 @@ Label_C002:
sty Zp00 ; CPU:$C01A PRG:001A 84 00
lda #$00 ; CPU:$C01C PRG:001C A9 00
; -----------------------------------------------------------------------------
; Routine: Label_C01E
; Routine: ClearZeropage
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -67,17 +69,17 @@ Label_C002:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C01E:
ClearZeropage:
sta (Zp00),y ; CPU:$C01E PRG:001E 91 00
dey ; CPU:$C020 PRG:0020 88
bne Label_C01E ; CPU:$C021 PRG:0021 D0 FB
bne ClearZeropage ; CPU:$C021 PRG:0021 D0 FB
dec Zp01 ; CPU:$C023 PRG:0023 C6 01
bpl Label_C01E ; CPU:$C025 PRG:0025 10 F7
bpl ClearZeropage ; CPU:$C025 PRG:0025 10 F7
txa ; CPU:$C027 PRG:0027 8A
bne Label_C02C ; CPU:$C028 PRG:0028 D0 02
bne InitGameState ; CPU:$C028 PRG:0028 D0 02
ldx #$5F ; CPU:$C02A PRG:002A A2 5F
; -----------------------------------------------------------------------------
; Routine: Label_C02C
; Routine: InitGameState
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -85,7 +87,7 @@ Label_C01E:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C02C:
InitGameState:
stx $05EC ; CPU:$C02C PRG:002C 8E EC 05
jsr $C22B ; CPU:$C02F PRG:002F 20 2B C2
jsr $C23B ; CPU:$C032 PRG:0032 20 3B C2
@@ -104,7 +106,7 @@ Label_C02C:
sta Zp09 ; CPU:$C052 PRG:0052 85 09
ldx #$0B ; CPU:$C054 PRG:0054 A2 0B
; -----------------------------------------------------------------------------
; Routine: Label_C056
; Routine: InitVariables
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -112,14 +114,14 @@ Label_C02C:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C056:
InitVariables:
lda $E5DF,x ; CPU:$C056 PRG:0056 BD DF E5
sta $05F0,x ; CPU:$C059 PRG:0059 9D F0 05
dex ; CPU:$C05C PRG:005C CA
bpl Label_C056 ; CPU:$C05D PRG:005D 10 F7
bmi Label_C07C ; CPU:$C05F PRG:005F 30 1B
bpl InitVariables ; CPU:$C05D PRG:005D 10 F7
bmi MainGameLoop_3 ; CPU:$C05F PRG:005F 30 1B
; -----------------------------------------------------------------------------
; Routine: Label_C061
; Routine: MainGameLoop_1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -127,14 +129,14 @@ Label_C056:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C061:
MainGameLoop_1:
lda Zp24 ; CPU:$C061 PRG:0061 A5 24
beq Label_C06B ; CPU:$C063 PRG:0063 F0 06
beq GameModeCheck_3 ; CPU:$C063 PRG:0063 F0 06
lda Zp26 ; CPU:$C065 PRG:0065 A5 26
cmp #$01 ; CPU:$C067 PRG:0067 C9 01
bne Label_C06E ; CPU:$C069 PRG:0069 D0 03
bne GameplayFrame ; CPU:$C069 PRG:0069 D0 03
; -----------------------------------------------------------------------------
; Routine: Label_C06B
; Routine: GameModeCheck_3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -142,10 +144,10 @@ Label_C061:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C06B:
GameModeCheck_3:
jsr $F56C ; CPU:$C06B PRG:006B 20 6C F5
; -----------------------------------------------------------------------------
; Routine: Label_C06E
; Routine: GameplayFrame
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -153,14 +155,14 @@ Label_C06B:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C06E:
GameplayFrame:
jsr $C348 ; CPU:$C06E PRG:006E 20 48 C3
jsr $C284 ; CPU:$C071 PRG:0071 20 84 C2
jsr $C0B3 ; CPU:$C074 PRG:0074 20 B3 C0
inc Zp2F ; CPU:$C077 PRG:0077 E6 2F
jsr $C61E ; CPU:$C079 PRG:0079 20 1E C6
; -----------------------------------------------------------------------------
; Routine: Label_C07C
; Routine: MainGameLoop_3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -168,9 +170,9 @@ Label_C06E:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C07C:
MainGameLoop_3:
lda Zp20 ; CPU:$C07C PRG:007C A5 20
bne Label_C061 ; CPU:$C07E PRG:007E D0 E1
bne MainGameLoop_1 ; CPU:$C07E PRG:007E D0 E1
jsr $C588 ; CPU:$C080 PRG:0080 20 88 C5
jmp $C07C ; CPU:$C083 PRG:0083 4C 7C C0
; -----------------------------------------------------------------------------
@@ -194,13 +196,13 @@ NmiHandler:
lda #$02 ; CPU:$C091 PRG:0091 A9 02
sta $4014 ; CPU:$C093 PRG:0093 8D 14 40
lda Zp22 ; CPU:$C096 PRG:0096 A5 22
bne Label_C0A6 ; CPU:$C098 PRG:0098 D0 0C
bne NmiFrameEnd ; CPU:$C098 PRG:0098 D0 0C
jsr $C2BF ; CPU:$C09A PRG:009A 20 BF C2
jsr $C249 ; CPU:$C09D PRG:009D 20 49 C2
jsr $C263 ; CPU:$C0A0 PRG:00A0 20 63 C2
jsr $C3C1 ; CPU:$C0A3 PRG:00A3 20 C1 C3
; -----------------------------------------------------------------------------
; Routine: Label_C0A6
; Routine: NmiFrameEnd
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -208,7 +210,7 @@ NmiHandler:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C0A6:
NmiFrameEnd:
ldy #$01 ; CPU:$C0A6 PRG:00A6 A0 01
sty Zp22 ; CPU:$C0A8 PRG:00A8 84 22
sty Zp20 ; CPU:$C0AA PRG:00AA 84 20
@@ -220,7 +222,7 @@ Label_C0A6:
plp ; CPU:$C0B1 PRG:00B1 28
rti ; CPU:$C0B2 PRG:00B2 40
; -----------------------------------------------------------------------------
; Routine: Label_C0B3
; Routine: GameModeDispatcher
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -228,12 +230,12 @@ Label_C0A6:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C0B3:
GameModeDispatcher:
lda Zp24 ; CPU:$C0B3 PRG:00B3 A5 24
beq Label_C0BA ; CPU:$C0B5 PRG:00B5 F0 03
beq TitleScreenLoop ; CPU:$C0B5 PRG:00B5 F0 03
jmp $C14E ; CPU:$C0B7 PRG:00B7 4C 4E C1
; -----------------------------------------------------------------------------
; Routine: Label_C0BA
; Routine: TitleScreenLoop
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -241,27 +243,27 @@ Label_C0B3:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C0BA:
TitleScreenLoop:
lda Zp16 ; CPU:$C0BA PRG:00BA A5 16
and #$10 ; CPU:$C0BC PRG:00BC 29 10
beq Label_C11E ; CPU:$C0BE PRG:00BE F0 5E
beq UpdateGameState2 ; CPU:$C0BE PRG:00BE F0 5E
ldy $05FC ; CPU:$C0C0 PRG:00C0 AC FC 05
bne Label_C123 ; CPU:$C0C3 PRG:00C3 D0 5E
bne UpdateGameState3_1 ; CPU:$C0C3 PRG:00C3 D0 5E
iny ; CPU:$C0C5 PRG:00C5 C8
sty $05FC ; CPU:$C0C6 PRG:00C6 8C FC 05
ldy Zp25 ; CPU:$C0C9 PRG:00C9 A4 25
cpy #$10 ; CPU:$C0CB PRG:00CB C0 10
beq Label_C0FF ; CPU:$C0CD PRG:00CD F0 30
beq UpdateZp09_2 ; CPU:$C0CD PRG:00CD F0 30
cpy #$03 ; CPU:$C0CF PRG:00CF C0 03
beq Label_C0DF ; CPU:$C0D1 PRG:00D1 F0 0C
beq InitializeRoundData ; CPU:$C0D1 PRG:00D1 F0 0C
cpy #$04 ; CPU:$C0D3 PRG:00D3 C0 04
beq Label_C0DF ; CPU:$C0D5 PRG:00D5 F0 08
beq InitializeRoundData ; CPU:$C0D5 PRG:00D5 F0 08
cpy #$0B ; CPU:$C0D7 PRG:00D7 C0 0B
beq Label_C0DF ; CPU:$C0D9 PRG:00D9 F0 04
beq InitializeRoundData ; CPU:$C0D9 PRG:00D9 F0 04
cpy #$0C ; CPU:$C0DB PRG:00DB C0 0C
bne Label_C123 ; CPU:$C0DD PRG:00DD D0 44
bne UpdateGameState3_1 ; CPU:$C0DD PRG:00DD D0 44
; -----------------------------------------------------------------------------
; Routine: Label_C0DF
; Routine: InitializeRoundData
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -269,10 +271,10 @@ Label_C0BA:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C0DF:
InitializeRoundData:
ldx #$05 ; CPU:$C0DF PRG:00DF A2 05
; -----------------------------------------------------------------------------
; Routine: Label_C0E1
; Routine: InitializeDuckDataLoop
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -280,11 +282,11 @@ Label_C0DF:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C0E1:
InitializeDuckDataLoop:
lda Zp2A,x ; CPU:$C0E1 PRG:00E1 B5 2A
sta $0430,x ; CPU:$C0E3 PRG:00E3 9D 30 04
dex ; CPU:$C0E6 PRG:00E6 CA
bpl Label_C0E1 ; CPU:$C0E7 PRG:00E7 10 F8
bpl InitializeDuckDataLoop ; CPU:$C0E7 PRG:00E7 10 F8
lda Zp09 ; CPU:$C0E9 PRG:00E9 A5 09
and #$0E ; CPU:$C0EB PRG:00EB 29 0E
sta $2001 ; CPU:$C0ED PRG:00ED 8D 01 20
@@ -296,7 +298,7 @@ Label_C0E1:
lda #$07 ; CPU:$C0FA PRG:00FA A9 07
jmp $C112 ; CPU:$C0FC PRG:00FC 4C 12 C1
; -----------------------------------------------------------------------------
; Routine: Label_C0FF
; Routine: UpdateZp09_2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -304,7 +306,7 @@ Label_C0E1:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C0FF:
UpdateZp09_2:
lda Zp09 ; CPU:$C0FF PRG:00FF A5 09
ora #$10 ; CPU:$C101 PRG:0101 09 10
sta $2001 ; CPU:$C103 PRG:0103 8D 01 20
@@ -315,7 +317,7 @@ Label_C0FF:
sta Zp1C ; CPU:$C10E PRG:010E 85 1C
lda #$00 ; CPU:$C110 PRG:0110 A9 00
; -----------------------------------------------------------------------------
; Routine: Label_C112
; Routine: UpdateGameState
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -323,13 +325,13 @@ Label_C0FF:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C112:
UpdateGameState:
jsr $D464 ; CPU:$C112 PRG:0112 20 64 D4
jsr $D4E2 ; CPU:$C115 PRG:0115 20 E2 D4
jsr $C5D9 ; CPU:$C118 PRG:0118 20 D9 C5
jmp $D521 ; CPU:$C11B PRG:011B 4C 21 D5
; -----------------------------------------------------------------------------
; Routine: Label_C11E
; Routine: UpdateGameState2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -337,11 +339,11 @@ Label_C112:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C11E:
UpdateGameState2:
lda #$00 ; CPU:$C11E PRG:011E A9 00
sta $05FC ; CPU:$C120 PRG:0120 8D FC 05
; -----------------------------------------------------------------------------
; Routine: Label_C123
; Routine: UpdateGameState3_1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -349,7 +351,7 @@ Label_C11E:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C123:
UpdateGameState3_1:
lda Zp25 ; CPU:$C123 PRG:0123 A5 25
jsr $C35E ; CPU:$C125 PRG:0125 20 5E C3
ora $39C8,x ; CPU:$C128 PRG:0128 1D C8 39
@@ -359,7 +361,7 @@ Label_C123:
.byte $93, $D5, $D2, $D5, $C9, $D2, $EF, $C7, $E0, $C5, $E0, $C5, $E0, $C5, $71, $C2 ; CPU:$C13C PRG:013C 93 D5 D2 D5 C9 D2 EF C7 E0 C5 E0 C5 E0 C5 71 C2
.byte $25, $C6 ; CPU:$C14C PRG:014C 25 C6
; -----------------------------------------------------------------------------
; Routine: Label_C14E
; Routine: UpdateGameState3_3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -367,14 +369,14 @@ Label_C123:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C14E:
UpdateGameState3_3:
lda #$00 ; CPU:$C14E PRG:014E A9 00
sta $05FF ; CPU:$C150 PRG:0150 8D FF 05
lda #$01 ; CPU:$C153 PRG:0153 A9 01
sta ZpB9 ; CPU:$C155 PRG:0155 85 B9
sta ZpBA ; CPU:$C157 PRG:0157 85 BA
lda Zp26 ; CPU:$C159 PRG:0159 A5 26
beq Label_C18D ; CPU:$C15B PRG:015B F0 30
beq UpdateGameState5 ; CPU:$C15B PRG:015B F0 30
jsr $D131 ; CPU:$C15D PRG:015D 20 31 D1
jsr $D160 ; CPU:$C160 PRG:0160 20 60 D1
lda $05FF ; CPU:$C163 PRG:0163 AD FF 05
@@ -418,7 +420,7 @@ Label_C189:
ldx Zp26 ; CPU:$C189 PRG:0189 A6 26
bne Label_C190 ; CPU:$C18B PRG:018B D0 03
; -----------------------------------------------------------------------------
; Routine: Label_C18D
; Routine: UpdateGameState5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -426,7 +428,7 @@ Label_C189:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C18D:
UpdateGameState5:
jmp $C217 ; CPU:$C18D PRG:018D 4C 17 C2
; -----------------------------------------------------------------------------
; Routine: Label_C190
@@ -518,7 +520,7 @@ Label_C1B7:
; -----------------------------------------------------------------------------
Label_C1BB:
cpx #$01 ; CPU:$C1BB PRG:01BB E0 01
bne Label_C217 ; CPU:$C1BD PRG:01BD D0 58
bne UpdateGameState6_3 ; CPU:$C1BD PRG:01BD D0 58
lda #$51 ; CPU:$C1BF PRG:01BF A9 51
sta $0500 ; CPU:$C1C1 PRG:01C1 8D 00 05
lda #$24 ; CPU:$C1C4 PRG:01C4 A9 24
@@ -552,7 +554,7 @@ Label_C1C8:
tax ; CPU:$C1E7 PRG:01E7 AA
ldy #$05 ; CPU:$C1E8 PRG:01E8 A0 05
; -----------------------------------------------------------------------------
; Routine: Label_C1EA
; Routine: UpdateGameState6_1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -560,7 +562,7 @@ Label_C1C8:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C1EA:
UpdateGameState6_1:
lda $05F0,x ; CPU:$C1EA PRG:01EA BD F0 05
and #$0F ; CPU:$C1ED PRG:01ED 29 0F
sta $0501,y ; CPU:$C1EF PRG:01EF 99 01 05
@@ -573,7 +575,7 @@ Label_C1EA:
sta $0501,y ; CPU:$C1FA PRG:01FA 99 01 05
dex ; CPU:$C1FD PRG:01FD CA
dey ; CPU:$C1FE PRG:01FE 88
bpl Label_C1EA ; CPU:$C1FF PRG:01FF 10 E9
bpl UpdateGameState6_1 ; CPU:$C1FF PRG:01FF 10 E9
lda $0501 ; CPU:$C201 PRG:0201 AD 01 05
bne Label_C20B ; CPU:$C204 PRG:0204 D0 05
lda #$24 ; CPU:$C206 PRG:0206 A9 24
@@ -594,7 +596,7 @@ Label_C20B:
ldy #$23 ; CPU:$C212 PRG:0212 A0 23
jsr $C71D ; CPU:$C214 PRG:0214 20 1D C7
; -----------------------------------------------------------------------------
; Routine: Label_C217
; Routine: UpdateGameState6_3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -602,7 +604,7 @@ Label_C20B:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C217:
UpdateGameState6_3:
lda Zp2D ; CPU:$C217 PRG:0217 A5 2D
bne Label_C222 ; CPU:$C219 PRG:0219 D0 07
jsr $D509 ; CPU:$C21B PRG:021B 20 09 D5
@@ -625,7 +627,7 @@ Label_C222:
; ---- data $C22A-$C22A (1 bytes) ----
.byte $C5 ; CPU:$C22A PRG:022A C5
; -----------------------------------------------------------------------------
; Routine: Label_C22B
; Routine: UpdateSprites_4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -633,12 +635,12 @@ Label_C222:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C22B:
UpdateSprites_4:
lda #$02 ; CPU:$C22B PRG:022B A9 02
jsr $C232 ; CPU:$C22D PRG:022D 20 32 C2
lda #$01 ; CPU:$C230 PRG:0230 A9 01
; -----------------------------------------------------------------------------
; Routine: Label_C232
; Routine: UpdateSprites2_1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -646,7 +648,7 @@ Label_C22B:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C232:
UpdateSprites2_1:
sta Zp01 ; CPU:$C232 PRG:0232 85 01
lda #$24 ; CPU:$C234 PRG:0234 A9 24
sta Zp00 ; CPU:$C236 PRG:0236 85 00
@@ -681,7 +683,7 @@ Label_C23F:
bne Label_C23F ; CPU:$C246 PRG:0246 D0 F7
rts ; CPU:$C248 PRG:0248 60
; -----------------------------------------------------------------------------
; Routine: Label_C249
; Routine: UpdateSprites2_3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -689,7 +691,7 @@ Label_C23F:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C249:
UpdateSprites2_3:
ldy Zp23 ; CPU:$C249 PRG:0249 A4 23
beq Label_C262 ; CPU:$C24B PRG:024B F0 15
dey ; CPU:$C24D PRG:024D 88
@@ -725,7 +727,7 @@ Label_C25B:
Label_C262:
rts ; CPU:$C262 PRG:0262 60
; -----------------------------------------------------------------------------
; Routine: Label_C263
; Routine: UpdateSprites3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -733,7 +735,7 @@ Label_C262:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C263:
UpdateSprites3:
ldy Zp27 ; CPU:$C263 PRG:0263 A4 27
beq Label_C262 ; CPU:$C265 PRG:0265 F0 FB
ldy #$00 ; CPU:$C267 PRG:0267 A0 00
@@ -772,7 +774,7 @@ Label_C277:
Label_C283:
rts ; CPU:$C283 PRG:0283 60
; -----------------------------------------------------------------------------
; Routine: Label_C284
; Routine: UpdateController
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -780,7 +782,7 @@ Label_C283:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C284:
UpdateController:
ldx #$01 ; CPU:$C284 PRG:0284 A2 01
stx $4016 ; CPU:$C286 PRG:0286 8E 16 40
dex ; CPU:$C289 PRG:0289 CA
@@ -788,7 +790,7 @@ Label_C284:
jsr $C291 ; CPU:$C28D PRG:028D 20 91 C2
inx ; CPU:$C290 PRG:0290 E8
; -----------------------------------------------------------------------------
; Routine: Label_C291
; Routine: UpdateController2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -796,7 +798,7 @@ Label_C284:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C291:
UpdateController2:
ldy #$08 ; CPU:$C291 PRG:0291 A0 08
; -----------------------------------------------------------------------------
; Routine: Label_C293
@@ -838,7 +840,7 @@ Label_C293:
Label_C2B6:
sta $0440,x ; CPU:$C2B6 PRG:02B6 9D 40 04
; -----------------------------------------------------------------------------
; Routine: Label_C2B9
; Routine: UpdateController3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -846,7 +848,7 @@ Label_C2B6:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C2B9:
UpdateController3:
lda #$00 ; CPU:$C2B9 PRG:02B9 A9 00
sta $0442,x ; CPU:$C2BB PRG:02BB 9D 42 04
; -----------------------------------------------------------------------------
@@ -861,7 +863,7 @@ Label_C2B9:
Label_C2BE:
rts ; CPU:$C2BE PRG:02BE 60
; -----------------------------------------------------------------------------
; Routine: Label_C2BF
; Routine: UpdateController4_206
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
@@ -869,7 +871,7 @@ Label_C2BE:
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Label_C2BF:
UpdateController4_206:
lda Zp21 ; CPU:$C2BF PRG:02BF A5 21
beq Label_C302 ; CPU:$C2C1 PRG:02C1 F0 3F
lda #$61 ; CPU:$C2C3 PRG:02C3 A9 61
+29 -29
View File
@@ -418,28 +418,28 @@ al 00C2EA .Label_C2EA
al 00C2DB .Label_C2DB
al 00C2F4 .Label_C2F4
al 00C302 .Label_C302
al 00C2BF .Label_C2BF
al 00C2B9 .Label_C2B9
al 00C2BF .UpdateController4_206
al 00C2B9 .UpdateController3
al 00C2BE .Label_C2BE
al 00C2B6 .Label_C2B6
al 00C293 .Label_C293
al 00C291 .Label_C291
al 00C284 .Label_C284
al 00C291 .UpdateController2
al 00C284 .UpdateController
al 00C277 .Label_C277
al 00C283 .Label_C283
al 00C263 .Label_C263
al 00C263 .UpdateSprites3
al 00C25B .Label_C25B
al 00C262 .Label_C262
al 00C249 .Label_C249
al 00C249 .UpdateSprites2_3
al 00C23F .Label_C23F
al 00C23B .Label_C23B
al 00C232 .Label_C232
al 00C22B .Label_C22B
al 00C232 .UpdateSprites2_1
al 00C22B .UpdateSprites_4
al 00C222 .Label_C222
al 00C20B .Label_C20B
al 00C1EA .Label_C1EA
al 00C1EA .UpdateGameState6_1
al 00C1C8 .Label_C1C8
al 00C217 .Label_C217
al 00C217 .UpdateGameState6_3
al 00C1BB .Label_C1BB
al 00C1B2 .Label_C1B2
al 00C1A3 .Label_C1A3
@@ -449,24 +449,24 @@ al 00C190 .Label_C190
al 00C189 .Label_C189
al 00C199 .Label_C199
al 00C176 .Label_C176
al 00C18D .Label_C18D
al 00C14E .Label_C14E
al 00C112 .Label_C112
al 00C0E1 .Label_C0E1
al 00C0DF .Label_C0DF
al 00C0FF .Label_C0FF
al 00C123 .Label_C123
al 00C11E .Label_C11E
al 00C0BA .Label_C0BA
al 00C0B3 .Label_C0B3
al 00C0A6 .Label_C0A6
al 00C18D .UpdateGameState5
al 00C14E .UpdateGameState3_3
al 00C112 .UpdateGameState
al 00C0E1 .InitializeDuckDataLoop
al 00C0DF .InitializeRoundData
al 00C0FF .UpdateZp09_2
al 00C123 .UpdateGameState3_1
al 00C11E .UpdateGameState2
al 00C0BA .TitleScreenLoop
al 00C0B3 .GameModeDispatcher
al 00C0A6 .NmiFrameEnd
al 00C086 .NmiHandler
al 00C06E .Label_C06E
al 00C06B .Label_C06B
al 00C061 .Label_C061
al 00C07C .Label_C07C
al 00C056 .Label_C056
al 00C02C .Label_C02C
al 00C01E .Label_C01E
al 00C002 .Label_C002
al 00C06E .GameplayFrame
al 00C06B .GameModeCheck_3
al 00C061 .MainGameLoop_1
al 00C07C .MainGameLoop_3
al 00C056 .InitVariables
al 00C02C .InitGameState
al 00C01E .ClearZeropage
al 00C002 .WaitVBlank
al 00C000 .Reset