Urban Champion (JU): Promote to top-level with full-ROM build

- Moved from _wip/ to top-level
- Added header.s, chr.s (16-byte iNES header + 8KB CHR)
- Updated linker.cfg for HEADER/PRG/CHR segments
- Updated Makefile for full-ROM comparison (reconstructed.nes vs rom.nes)
- Fixed tool paths from ../../../_tools/ to ../../_tools/
- Added data_label_map.tsv for Pass 3 data table naming
- Full-ROM byte-identical verified: make passes, verify_pass1.py passes

Pass 1: Complete (CDL-verified, 33.9% code)
Pass 2: Complete (519 labels renamed, 10 zero-page aliases)
Pass 3: Complete (55 data tables named, 6 major structures documented)
Build: BYTE-IDENTICAL at full-ROM level
This commit is contained in:
tmerritt committed 2026-10-18 20:10:03 -04:00
1 parent b7104a8f80
commit 4b9cb7231c
24 files changed
+214 -7884

No files matched your search

+30
View File
@@ -0,0 +1,30 @@
all: reconstructed.nes verify
# Standard build
header.o: header.s
ca65 -g -o $@ header.s
prg.o: prg.s symbols.inc locals.inc prg.bin
ca65 -g -o $@ prg.s
chr.o: chr.s chr.bin
ca65 -g -o $@ chr.s
reconstructed.nes: header.o prg.o chr.o linker.cfg
ld65 -C linker.cfg -m reconstructed.map -Ln reconstructed.lbl -o $@ header.o prg.o chr.o
verify: reconstructed.nes rom.nes
cmp reconstructed.nes rom.nes
@echo "Byte-identical ROM verified."
# Regen pipeline (requires ../../_tools/)
regen:
python3 ../../_tools/nesdis.py --prg prg.bin --base 0xC000 --project "Urban Champion (JU)" \
--out prg.s --locals locals.inc --auto-seed \
--extra-seed 0xCA00,0xCA91 \
--data 0xCB70:60
python3 ../../_tools/pass2.py apply prg.s label_map.tsv
python3 ../../_tools/pass2.py apply prg.s data_label_map.tsv
clean:
rm -f header.o prg.o chr.o reconstructed.nes reconstructed.map reconstructed.lbl reconstructed_prg.bin
Binary file not shown.
+5
View File
@@ -0,0 +1,5 @@
; Urban Champion (JU) CHR ROM data
; 8 KB CHR ROM
.segment "CHR"
.incbin "chr.bin"
@@ -0,0 +1,55 @@
label Label_C006 InitData_C006
label Label_C032 InitData_C032
label Label_C06A SoundPointerTable
label Label_C0A1 InitData_C0A1
label Label_C100 ControllerKeyTable
label Label_C1FE InitData_C1FE
label Label_C22F InitData_C22F
label Label_C26A InitData_C26A
label Label_C2A8 InitData_C2A8
label Label_C2F9 InitData_C2F9
label Label_C36E APUFrameCounterData
label Label_C42C InitData_C42C
label Label_C4F8 InitData_C4F8
label Label_C521 InitData_C521
label Label_C5A0 InitData_C5A0
label Label_C658 SpriteMetatileTable
label Label_CA02 TitleScreenData_CA02
label Label_CA34 TitleScreenData_CA34
label Label_CA5E TitleScreenData_CA5E
label Label_CB70 BranchTableOffsets
label Label_CC61 InvalidOpcode_CC61
label Label_CF32 InitData_CF32
label Label_CFC3 InitData_CFC3
label Label_D027 InitData_D027
label Label_D067 InitData_D067
label Label_D09D UpdateScrollData
label Label_D21B InvalidOpcode_D21B
label Label_D26E InitData_D26E
label Label_D344 InitData_D344
label Label_D361 InitData_D361
label Label_D36A InitData_D36A
label Label_D469 GameplayCode_D469
label Label_D834 GameplayCode_D834
label Label_DA34 TitleScreenData_DA34
label Label_DA36 TitleScreenData_DA36
label Label_DA5C TitleScreenData_DA5C
label Label_DA78 TitleScreenData_DA78
label Label_DA94 TitleScreenData_DA94
label Label_DAB7 SpriteDMATable
label Label_DBCB UpdateTimersData
label Label_DBCE UpdateTimersData_DBCE
label Label_DBFD ProcessInputsData
label Label_DD7D InitData_DD7D
label Label_DDAC InitData_DDAC
label Label_DE24 InvalidOpcode_DE24
label Label_DE36 InitData_DE36
label Label_DED8 InitData_DED8
label Label_DF56 InitData_DF56
label Label_DFEA InitData_DFEA
label Label_E11D HandlePlayerCode
label Label_E350 HandleGameOverData
label Label_E4C0 InitData_E4C0
label Label_E700 InitSpriteDataTable
label Label_E78A InitData_E78A
label Label_E813 SpritePatternTable
1 label Label_C006 InitData_C006
2 label Label_C032 InitData_C032
3 label Label_C06A SoundPointerTable
4 label Label_C0A1 InitData_C0A1
5 label Label_C100 ControllerKeyTable
6 label Label_C1FE InitData_C1FE
7 label Label_C22F InitData_C22F
8 label Label_C26A InitData_C26A
9 label Label_C2A8 InitData_C2A8
10 label Label_C2F9 InitData_C2F9
11 label Label_C36E APUFrameCounterData
12 label Label_C42C InitData_C42C
13 label Label_C4F8 InitData_C4F8
14 label Label_C521 InitData_C521
15 label Label_C5A0 InitData_C5A0
16 label Label_C658 SpriteMetatileTable
17 label Label_CA02 TitleScreenData_CA02
18 label Label_CA34 TitleScreenData_CA34
19 label Label_CA5E TitleScreenData_CA5E
20 label Label_CB70 BranchTableOffsets
21 label Label_CC61 InvalidOpcode_CC61
22 label Label_CF32 InitData_CF32
23 label Label_CFC3 InitData_CFC3
24 label Label_D027 InitData_D027
25 label Label_D067 InitData_D067
26 label Label_D09D UpdateScrollData
27 label Label_D21B InvalidOpcode_D21B
28 label Label_D26E InitData_D26E
29 label Label_D344 InitData_D344
30 label Label_D361 InitData_D361
31 label Label_D36A InitData_D36A
32 label Label_D469 GameplayCode_D469
33 label Label_D834 GameplayCode_D834
34 label Label_DA34 TitleScreenData_DA34
35 label Label_DA36 TitleScreenData_DA36
36 label Label_DA5C TitleScreenData_DA5C
37 label Label_DA78 TitleScreenData_DA78
38 label Label_DA94 TitleScreenData_DA94
39 label Label_DAB7 SpriteDMATable
40 label Label_DBCB UpdateTimersData
41 label Label_DBCE UpdateTimersData_DBCE
42 label Label_DBFD ProcessInputsData
43 label Label_DD7D InitData_DD7D
44 label Label_DDAC InitData_DDAC
45 label Label_DE24 InvalidOpcode_DE24
46 label Label_DE36 InitData_DE36
47 label Label_DED8 InitData_DED8
48 label Label_DF56 InitData_DF56
49 label Label_DFEA InitData_DFEA
50 label Label_E11D HandlePlayerCode
51 label Label_E350 HandleGameOverData
52 label Label_E4C0 InitData_E4C0
53 label Label_E700 InitSpriteDataTable
54 label Label_E78A InitData_E78A
55 label Label_E813 SpritePatternTable
Binary file not shown.
+17
View File
@@ -0,0 +1,17 @@
; Urban Champion (JU) NES header
; iNES format: 16 bytes
;
; Bytes 0-3: "NES" + $1A
; Byte 4: PRG ROM size in 16 KB units (1 = 16 KB)
; Byte 5: CHR ROM size in 8 KB units (1 = 8 KB)
; Byte 6: Flags 6 (mapper low, mirroring, battery, trainer)
; Byte 7: Flags 7 (mapper high, VS/PlayChoice, NES 2.0)
; Bytes 8-15: Reserved (usually zero)
.segment "HEADER"
.byte "NES", $1A ; $00-$03: Magic
.byte 1 ; $04: PRG ROM size (1 x 16 KB = 16 KB)
.byte 1 ; $05: CHR ROM size (1 x 8 KB = 8 KB)
.byte $01 ; $06: Mapper 0, horizontal mirroring, no battery, no trainer
.byte $00 ; $07: Mapper 0 high, no VS/PlayChoice
.byte 0, 0, 0, 0, 0, 0, 0, 0 ; $08-$0F: Reserved
+520
View File
@@ -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 label Label_C000 InitAPU_C000
2 label Label_C003 CheckControllerStart
3 label Label_C026 ScaleInputIndex
4 label Label_C04E SetAPUVolume
5 label Label_C056 SetAPUSweep
6 label Label_C058 InitAPUWaveform
7 label Label_C05E SaveXY
8 label Label_C063 InitSoundPointers
9 label Label_C06E UpdateControllerState
10 label Label_C087 InitControllerTables
11 label Label_C0A0 InitControllerTablesLoop
12 label Label_C0AE InitControllerTablesAlt
13 label Label_C0B1 InitControllerTablesExit
14 label Label_C0CF InitPPU
15 label Label_C0E0 InitPPULoop
16 label Label_C0F1 InitAPUFrameCounter
17 label Label_C0F8 InitAPUFrameCounterExit
18 label Label_C0FC InitPPUFinal
19 label Label_C18D LoadBackgroundData
20 label Label_C195 LoadBackgroundDataLoop
21 label Label_C199 LoadBackgroundDataAlt
22 label Label_C19B LoadBackgroundDataExit
23 label Label_C1A7 SetupSpriteData
24 label Label_C1B2 SetupSpriteDataLoop
25 label Label_C20F CopySpriteTables
26 label Label_C22C CopySpriteTablesLoop
27 label Label_C24D WaitVBlank
28 label Label_C288 WaitVBlankLoop
29 label Label_C2A5 InitGameVariables
30 label Label_C2DE ClearRAM
31 label Label_C30C ClearRAMPage
32 label Label_C30D ClearRAMPageLoop
33 label Label_C31B InitGameState
34 label Label_C327 InitGameStateExit
35 label Label_C332 InitAPUCall
36 label Label_C335 InitAPU
37 label Label_C352 ClearControllerState
38 label Label_C358 InitAPURegisters
39 label Label_C376 InitSpritesAlt1
40 label Label_C37D InitSpritesAlt2
41 label Label_C384 InitSpritesMain
42 label Label_C3A0 InitSpritesLoop
43 label Label_C3B3 InitSpritesExit_C3B3
44 label Label_C3C8 InitSpritesAlt3
45 label Label_C3E0 InitSpritesAlt4
46 label Label_C3F5 InitSpritesAlt5
47 label Label_C408 InitSpritesAlt6
48 label Label_C41E InitSpritesAlt7
49 label Label_C425 InitSpritesAlt8
50 label Label_C438 InitSpritesAlt9
51 label Label_C44E InitSpritesAlt10
52 label Label_C465 InitGameState2
53 label Label_C48A InitGameState2Exit
54 label Label_C508 InitGameState3
55 label Label_C533 InitGameState3Exit
56 label Label_C5D1 InitGameState4
57 label Label_C5FC InitGameState4Exit
58 label Label_C66E Reset
59 label Label_C66F ResetEntry
60 label Label_C69E InitSystem
61 label Label_CA02 WaitPPUReady
62 label Label_CA07 WaitPPUReadyLoop
63 label Label_CA0F InitStack
64 label Label_CA11 LoadGameConfig
65 label Label_CA14 InitVariables
66 label Label_CA17 SetupInitialState
67 label Label_CA19 SetupRAMPointer
68 label Label_CA1D ClearRAMStart
69 label Label_CA1F ClearRAMByte
70 label Label_CA21 ClearRAMLoop
71 label Label_CA2F StoreConfig
72 label Label_CA32 CallInitRoutines
73 label Label_CA35 CallInitRoutines2
74 label Label_CA38 SetupScroll
75 label Label_CA3A SetupScroll2
76 label Label_CA40 SetupGameMode
77 label Label_CA42 SetGameMode1
78 label Label_CA44 SetZpA5
79 label Label_CA46 InitAPURegisters2
80 label Label_CA48 InitAPURegisters2Exit
81 label Label_CA4B CallCheckControllerStart
82 label Label_CA4E CallE7EF
83 label Label_CA51 SetupPPUCtrl
84 label Label_CA53 SetupPPUCtrlExit
85 label Label_CA56 SetZp08
86 label Label_CA58 SetZp09
87 label Label_CA5C SetupX
88 label Label_CA5E CopyConfigData
89 label Label_CA69 TitleScreenLoop
90 label Label_CA6D CheckGameMode
91 label Label_CA6F CheckRoundIndex
92 label Label_CA73 CallInitAPU
93 label Label_CA76 GameplayFrame
94 label Label_CA87 MainGameLoop
95 label Label_CA8B CallCheckRoundEnd
96 label Label_CA8E MainGameLoopJump
97 label Label_CA91 NmiHandler
98 label Label_CA9B NmiFrameUpdate
99 label Label_CAA5 NmiVBlankOnly_CAA5
100 label Label_CAAC NmiFrameUpdate2
101 label Label_CAAF NmiFrameUpdate3
102 label Label_CAB2 NmiFrameUpdate4
103 label Label_CAB5 NmiExit
104 label Label_CAC2 NmiVBlankOnly_CAC2
105 label Label_CADA UpdateScroll
106 label Label_CBE2 InitSprites
107 label Label_CBF7 InitSpritesAlt
108 label Label_CC0B InitSpritesExit
109 label Label_CC46 UpdateSprites
110 label Label_CC61 UpdateSpritesExit
111 label Label_CC67 UpdateOAM_CC67
112 label Label_CC77 UpdateOAMExit
113 label Label_CC85 UpdateOAM_CC85
114 label Label_CC95 UpdateOAMExit2
115 label Label_CCAF UpdatePalettes
116 label Label_CCC6 UpdatePalettes2
117 label Label_CCCB UpdatePalettesExit
118 label Label_CCCE UpdatePalettesLoop
119 label Label_CCD0 UpdatePlayers
120 label Label_CCDA UpdatePlayersExit
121 label Label_CDE0 ProcessControllerInput
122 label Label_CE43 ScrollBackground
123 label Label_CE8B ScrollBackgroundExit
124 label Label_CF92 UpdateSpritePositions
125 label Label_CFA1 CheckRoundEnd
126 label Label_CFAB CheckRoundEndExit
127 label Label_CFC3 HandleKO
128 label Label_CFD3 HandleKOExit
129 label Label_CFE5 HandleTimeout
130 label Label_CFF8 HandleTimeoutExit
131 label Label_D01A UpdateRoundTimerInit
132 label Label_D027 UpdateRoundTimerInitExit
133 label Label_D057 UpdateRoundTimer
134 label Label_D08E SpriteDMA
135 label Label_D09D DrawBackground
136 label Label_D174 UpdatePPUMask
137 label Label_D187 UpdatePPUMaskExit
138 label Label_D1A7 UpdatePPUMaskAlt
139 label Label_D1C6 UpdatePPUMaskLoop
140 label Label_D216 UpdateHUD
141 label Label_D2E2 UpdateHUDExit
142 label Label_D30A UpdateScore
143 label Label_D3FA UpdateScoreLoop
144 label Label_D40E UpdateScoreExit
145 label Label_D469 DrawRoundNumber
146 label Label_D5D1 DrawRoundNumberExit
147 label Label_D7DB UpdatePlayerPositions
148 label Label_D80C UpdatePlayerPositionsExit
149 label Label_DAA7 CheckCollisions
150 label Label_DADD CheckCollisionsExit
151 label Label_DBCB UpdateTimers
152 label Label_DBDC UpdateTimersExit
153 label Label_DBFD ProcessInputs
154 label Label_DE03 ProcessInputsExit
155 label Label_DE24 ProcessInputsAlt
156 label Label_DE2E ProcessInputsAltExit
157 label Label_DEC9 UpdateRoundState
158 label Label_DEE3 UpdateRoundStateExit
159 label Label_DF4C UpdateRoundStateAlt
160 label Label_DF5E UpdateRoundStateAltExit
161 label Label_E00F HandlePlayer1
162 label Label_E02B HandlePlayer1Exit
163 label Label_E048 HandlePlayer2
164 label Label_E064 HandlePlayer2Exit
165 label Label_E076 HandlePlayer1Alt
166 label Label_E08D HandlePlayer1Entry
167 label Label_E11D HandlePlayer2Entry
168 label Label_E223 HandlePlayer1Logic
169 label Label_E2B9 HandlePlayer2Logic
170 label Label_E2C9 HandlePlayerLogicExit
171 label Label_E350 HandleGameOver
172 label Label_E3B2 HandleGameOverExit
173 label Label_E3E0 HandleRoundStart
174 label Label_E40E HandleRoundStartExit
175 label Label_E459 UpdateSound
176 label Label_E48B UpdateSoundExit
177 label Label_E4A4 UpdateSoundAlt
178 label Label_E4E2 UpdateSoundAltExit
179 label Label_E506 PlaySoundEffect
180 label Label_E535 PlaySoundEffectExit
181 label Label_E54A PlaySoundEffectAlt
182 label Label_E5B2 UpdateMusic
183 label Label_E617 UpdateMusicExit
184 label Label_E61B UpdateMusicAlt
185 label Label_E6D4 UpdateMusicLoop
186 label Label_E6FA UpdateMusicLoopExit
187 label Label_E793 InitSpriteData
188 label Label_E7B6 InitSpriteDataExit
189 label Label_E7EF InitSound
190 label Label_E7FE InitSoundExit
191 label Label_C39A InitSpritesLoop
192 label Label_C3AD InitSpritesAltExit
193 label Label_C3C3 InitSpritesCheckE6
194 label Label_C3E3 InitSpritesSetE4
195 label Label_C3E9 InitSpritesSetE6
196 label Label_C3FF InitSpritesCallChain
197 label Label_C405 InitSpritesClearEF
198 label Label_C40E InitSpritesCheckF1
199 label Label_C40F InitSpritesSetF3
200 label Label_C444 InitSpritesCheckF2
201 label Label_C44A InitSpritesSetF2
202 label Label_C478 InitSpritesAlt1Entry
203 label Label_C49C InitSpritesAlt1Loop
204 label Label_C4A4 InitSpritesAlt2Entry
205 label Label_C4A5 InitSpritesAlt2Loop
206 label Label_C4BB InitSpritesCheck10B
207 label Label_C4C3 InitSpritesInc10B
208 label Label_C4CA InitSpritesCheck10BMax
209 label Label_C4E3 InitSpritesCheck10C
210 label Label_C4E6 InitSpritesCheck10CAF
211 label Label_C4F4 InitSpritesSetF4
212 label Label_C512 InitGameState3CheckE6
213 label Label_C520 InitGameState3Loop
214 label Label_C52D InitGameState3Alt
215 label Label_C542 InitGameState4CheckF2
216 label Label_C55A InitGameState4Loop
217 label Label_C590 InitGameState4ClearEF
218 label Label_C593 InitGameState4MaskF3
219 label Label_C5A4 InitGameState4MaskEF
220 label Label_C5AB InitGameState4CheckF9
221 label Label_C5C5 InitGameState4DecD8
222 label Label_C5CA InitGameState4CheckF2Alt
223 label Label_C5F5 WaitVBlankLoop_C5F5
224 label Label_C5F6 WaitVBlankDecD8
225 label Label_C5F9 WaitVBlankDecD9
226 label Label_C5FF WaitVBlankCheckFF
227 label Label_C605 WaitVBlankCheckFA
228 label Label_C60B WaitVBlankStore
229 label Label_C622 WaitVBlankCallC1B2
230 label Label_C637 WaitVBlankCallC1B2Alt
231 label Label_C63D WaitVBlankCallC1B2Alt2
232 label Label_C644 WaitVBlankJmpC20F
233 label Label_C647 WaitVBlankZeroE4
234 label Label_C64E WaitVBlankCallC1B2Zero
235 label Label_CAE1 TitleScreenCheckMode
236 label Label_CB06 CheckControllerStartEntry
237 label Label_CB0F CheckControllerStartLoop
238 label Label_CB31 CheckControllerStartExit
239 label Label_CB4B CheckControllerStartWait
240 label Label_CB4E CheckControllerStartJmp
241 label Label_CB51 GameplayFrameCallD012
242 label Label_CB55 GameplayFrameCallE70C
243 label Label_CB61 TitleScreenLoopCallInitAPU
244 label Label_CB66 UpdateScrollEntry
245 label Label_CBB6 InitSpritesSetPos
246 label Label_CBC0 InitSpritesZero5FF
247 label Label_CBDA UpdateScrollLogic
248 label Label_CBFB InitSpritesBeqCBFB
249 label Label_CC02 UpdateScrollCheckZp1F
250 label Label_CC15 InitSpritesIncY
251 label Label_CC1B InitSpritesCpy02
252 label Label_CC24 InitSpritesSet5FD
253 label Label_CC29 UpdateScrollReadDispatch
254 label Label_CC3A UpdateScrollCheckDispatch
255 label Label_CC3E UpdateScrollReadZpA4
256 label Label_CC42 UpdateScrollCheckDispatchAlt
257 label Label_CC5C UpdateScrollCheckZpA4
258 label Label_CC6E UpdateOAMSetPointer
259 label Label_CC7B UpdateOAMClear200
260 label Label_CC97 UpdateOAMCheckZp23
261 label Label_CCAE UpdateOAMDecrement
262 label Label_CCC3 UpdateOAMCheckZp27
263 label Label_CCCF UpdateOAMZeroY
264 label Label_CCE3 UpdatePalettesCheckZp27
265 label Label_CCF3 UpdatePalettesZeroY
266 label Label_CCFB ProcessControllerInputLoop
267 label Label_CCFD ProcessControllerInputStore
268 label Label_CD22 RoundLogicCheckZp21
269 label Label_CD33 RoundLogicBeqCD84
270 label Label_CD38 RoundLogicSet21
271 label Label_CD41 ProcessControllerInputEntry
272 label Label_CD5D ProcessControllerInputRead2002
273 label Label_CD6C ProcessControllerInputAndFB
274 label Label_CD76 ProcessControllerInputStaZp08
275 label Label_CD84 ProcessControllerInputRead2002Alt
276 label Label_CD85 ProcessControllerInputRead2002Alt2
277 label Label_CD94 ProcessControllerInputAnd04
278 label Label_CDAA ProcessControllerInputOra18
279 label Label_CDC3 ProcessControllerInputStaZp09
280 label Label_CDCA RoundLogicEntry
281 label Label_CDD6 RoundLogicDecZp2A
282 label Label_CDDC RoundLogicBplCDD6
283 label Label_CDFE RoundLogicSaveXY
284 label Label_CE14 ScrollBackgroundEntry
285 label Label_CE20 ScrollBackgroundIncX
286 label Label_CE23 ScrollBackgroundTXA_CE23
287 label Label_CE26 ScrollBackgroundCmp6F_CE26
288 label Label_CE3A ScrollBackgroundRead2002
289 label Label_CE55 ScrollBackgroundSetZp21
290 label Label_CE6C ScrollBackgroundLoop
291 label Label_CE83 ScrollBackgroundInx
292 label Label_CEAD ScrollBackgroundTXA_CEAD
293 label Label_CEBD ScrollBackgroundCmp6F_CEBD
294 label Label_CEBE ScrollBackgroundAdc01
295 label Label_CEC5 ScrollBackgroundAnd0F
296 label Label_CECE ScrollBackgroundStaZp01
297 label Label_CEF1 ScrollBackgroundAdcZp01_CEF1
298 label Label_CEF5 ScrollBackgroundCmp0A_CEF5
299 label Label_CF23 ScrollBackgroundSbcZp01_CF23
300 label Label_CF25 ScrollBackgroundStaZp01Alt
301 label Label_CF4E ScrollBackgroundCallCF92
302 label Label_CF4F ScrollBackgroundCallCF92Entry
303 label Label_CF5A ScrollBackgroundAdcZp01_CF5A
304 label Label_CF67 ScrollBackgroundCmp0A_CF67
305 label Label_CF6B ScrollBackgroundSbcZp01_CF6B
306 label Label_CF70 ScrollBackgroundCallCF92Alt
307 label Label_CF83 ScrollBackgroundCallCF92Alt2
308 label Label_CF8F ScrollBackgroundStaZp01Alt2
309 label Label_CFB3 CheckRoundEndEntry
310 label Label_D012 UpdateRoundTimerCallD057
311 label Label_D015 UpdateRoundTimerBeq
312 label Label_D030 DrawBackgroundEntry
313 label Label_D034 DrawBackgroundSetZpA2
314 label Label_D040 DrawBackgroundSetZpA2Alt
315 label Label_D044 DrawBackgroundLdx0
316 label Label_D050 UpdateRoundTimerInitSetPtr
317 label Label_D05E UpdateRoundTimerInitSetZp09
318 label Label_D066 UpdateRoundTimerInitCallCE3A
319 label Label_D07A SetupInitialStateEntry
320 label Label_D07E SetupInitialStateLoop
321 label Label_D084 SpriteDMAEntry
322 label Label_D086 SpriteDMALoop_D086
323 label Label_D088 SpriteDMASetZp00
324 label Label_D1A4 UpdatePPUMaskCheckZp85
325 label Label_D1AE UpdatePPUMaskASL
326 label Label_D1C4 UpdatePPUMaskEntry
327 label Label_D1CA UpdatePPUMaskCheckZp8B
328 label Label_D1E8 UpdatePPUMaskBCS
329 label Label_D1EA UpdatePPUMaskLdx01
330 label Label_D1F9 UpdatePPUMaskSetZp88
331 label Label_D213 UpdatePlayersCheckZp00
332 label Label_D243 UpdatePlayersBitZp00
333 label Label_D254 UpdatePlayersCpyZp43
334 label Label_D261 UpdatePlayersStxZp31
335 label Label_D27B UpdatePlayersEntry
336 label Label_D289 UpdatePlayersCpyZp43Alt
337 label Label_D29E UpdatePlayersStyZp43
338 label Label_D2A5 UpdatePlayersEntryAlt
339 label Label_D2A7 UpdatePlayersStxZp31Alt
340 label Label_D2A9 UpdatePlayersStyZp43Alt
341 label Label_D2AD UpdatePlayersCallE4E2
342 label Label_D2AF UpdatePlayersCallE4E2Alt
343 label Label_D2B2 UpdatePlayersCallE5AC
344 label Label_D2C4 UpdatePlayersCallE462
345 label Label_D2CA UpdatePlayersCheckZp1F
346 label Label_D300 UpdateScoreEntry
347 label Label_D301 UpdateScoreCheckZp88
348 label Label_D304 UpdateScoreSetZp31
349 label Label_D313 UpdateScoreLoadZp1F
350 label Label_D31F UpdateScoreBeqD31F
351 label Label_D327 UpdateScoreLdxZp89
352 label Label_D332 UpdateScoreCallE2B9
353 label Label_D341 UpdateScoreCallE459
354 label Label_D34B UpdateScoreCallE462
355 label Label_D35E UpdateScoreCpy0D
356 label Label_D367 UpdateScoreSetZp31Alt
357 label Label_D392 UpdateScoreLdx02
358 label Label_D3A4 UpdateScoreCheckZp88Alt
359 label Label_D3BD UpdateScoreSetZp31Alt2
360 label Label_D3C3 UpdateScoreBneD408
361 label Label_D3CE UpdateScoreCallE46E
362 label Label_D3D1 UpdateScoreBneD40E
363 label Label_D3F3 UpdateScoreSetZp31Alt3
364 label Label_D408 UpdateScoreBneD3CE
365 label Label_D411 UpdateScoreLDY02
366 label Label_D436 DrawRoundNumberCalc
367 label Label_D444 DrawRoundNumberClc
368 label Label_D447 DrawRoundNumberADC06
369 label Label_D45B DrawRoundNumberCallE7A7
370 label Label_D463 DrawRoundNumberCallE4E2
371 label Label_D7FC UpdatePlayerPositionsCheckZp84
372 label Label_D807 UpdatePlayerPositionsSetZp32
373 label Label_D825 UpdatePlayerPositionsEntry
374 label Label_D828 UpdatePlayerPositionsStxZp31
375 label Label_DA25 TitleScreenSetMode
376 label Label_DAB3 SpriteDMACheckZp96
377 label Label_DB57 SpriteDMACmp02
378 label Label_DB7D SpriteDMALoopEntry
379 label Label_DB8E SpriteDMALdx0A
380 label Label_DB91 SpriteDMABeqDB91
381 label Label_DB92 SpriteDMALdy0A
382 label Label_DB9E SpriteDMALdaF940
383 label Label_DBA6 SpriteDMALoop_DBA6
384 label Label_DBAA SpriteDMADex
385 label Label_DBBF SpriteDMACheckZp93
386 label Label_DBDD SpriteDMACallCDE0
387 label Label_DBEF SpriteDMACallDD8C
388 label Label_DBF0 SpriteDMARTS
389 label Label_DCF6 UpdateTimersEntry
390 label Label_DCFF UpdateTimersBeqDD33
391 label Label_DD00 UpdateTimersCmp02
392 label Label_DD33 UpdateTimersBeqDD33Alt
393 label Label_DD34 UpdateTimersBeqDD34
394 label Label_DD3B UpdateTimersCmp02Alt
395 label Label_DD8C UpdateTimersAnd1F
396 label Label_DD96 UpdateTimersBneDDAB
397 label Label_DDAB UpdateTimersCallCDE0
398 label Label_DE1C ProcessInputsEntry
399 label Label_DE35 ProcessInputsCheckZp1F
400 label Label_DF53 HandleKOEntry
401 label Label_DF74 HandleKOLda05EC
402 label Label_DF75 HandleKOAnd07
403 label Label_DF7A HandleKOLoop
404 label Label_DF8D HandleKOCmp07
405 label Label_DF9E HandleKOCheckZp88
406 label Label_DFAE HandleKOBeqDFB7
407 label Label_DFB7 HandleKOLda0321
408 label Label_DFDA HandleKODex
409 label Label_DFDF HandleKODexBne
410 label Label_DFE4 HandleKOCheckZp1F
411 label Label_DFE5 HandleKOBeqDFE4
412 label Label_E040 HandlePlayer1CheckZpC0
413 label Label_E052 HandlePlayer1BeqE075
414 label Label_E056 HandlePlayer1LdxZp89
415 label Label_E06D HandlePlayer1CallE1CD
416 label Label_E073 HandlePlayer1CallE1FD
417 label Label_E075 HandlePlayer1Entry
418 label Label_E0B4 HandlePlayer1CheckZp87
419 label Label_E0B7 HandlePlayer1BeqE235
420 label Label_E11A HandlePlayer2CallE1FD
421 label Label_E11C HandlePlayer2Entry
422 label Label_E1CD HandlePlayer2CallE1FDEntry
423 label Label_E1FD HandlePlayer2Dex
424 label Label_E207 HandlePlayer1LogicLdxZp36
425 label Label_E20D HandlePlayer1LogicInx
426 label Label_E21E HandlePlayer1LogicLda0258
427 label Label_E235 HandlePlayer1LogicBeq
428 label Label_E236 HandlePlayer1LogicLdaZp87
429 label Label_E24A HandlePlayer1LogicCallE4E2
430 label Label_E255 HandlePlayer1LogicCallE5AC
431 label Label_E26C HandlePlayer1LogicCallE4E2Alt
432 label Label_E290 HandlePlayer2LogicEntry
433 label Label_E29C HandlePlayer2LogicCpyZp43
434 label Label_E2A3 HandlePlayer2LogicStxZp31
435 label Label_E2B8 HandlePlayer2LogicCallE4E2
436 label Label_E2C1 HandlePlayer2LogicCallE5AC
437 label Label_E2D8 HandlePlayer2LogicCallE4E2Alt
438 label Label_E2E5 HandlePlayer2LogicCallE4E2Alt2
439 label Label_E2FF HandlePlayer2LogicCallE4E2Alt3
440 label Label_E30F HandleGameOverEntry
441 label Label_E312 HandleGameOverCallE4E2
442 label Label_E31E HandleGameOverCallE5AC
443 label Label_E334 HandleGameOverCallE4E2Alt
444 label Label_E346 HandleGameOverCallE4E2Alt2
445 label Label_E34F HandleGameOverCallE4E2Alt3
446 label Label_E418 HandleRoundStartEntry
447 label Label_E41A HandleRoundStartCallE4E2
448 label Label_E42A HandleRoundStartCallE5AC
449 label Label_E438 HandleRoundStartCallE4E2Alt
450 label Label_E450 HandleRoundStartCallE4E2Alt2
451 label Label_E458 HandleRoundStartCallE4E2Alt3
452 label Label_E461 HandleRoundStartCallE4E2Alt4
453 label Label_E462 UpdateSoundEntry
454 label Label_E469 UpdateSoundCallE4E2
455 label Label_E46E UpdateSoundCallE5AC
456 label Label_E479 UpdateSoundCallE4E2Alt
457 label Label_E48A UpdateSoundCallE4E2Alt2
458 label Label_E496 UpdateSoundCallE4E2Alt3
459 label Label_E4AE UpdateSoundCallE5ACAlt
460 label Label_E4BD UpdateSoundCallE4E2Alt5
461 label Label_E4BF UpdateSoundCallE4E2Alt6
462 label Label_E4EA UpdateSoundCallE5ACAlt2
463 label Label_E4F6 UpdateSoundCallE4E2Alt7
464 label Label_E50A PlaySoundEffectEntry
465 label Label_E52A PlaySoundEffectCallE4E2
466 label Label_E52B PlaySoundEffectCallE5AC
467 label Label_E52F PlaySoundEffectCallE4E2Alt
468 label Label_E543 PlaySoundEffectCallE4E2Alt2
469 label Label_E549 PlaySoundEffectCallE5ACAlt
470 label Label_E56B PlaySoundEffectCallE4E2Alt3
471 label Label_E582 PlaySoundEffectCallE5ACAlt2
472 label Label_E594 PlaySoundEffectCallE4E2Alt4
473 label Label_E595 PlaySoundEffectCallE5ACAlt3
474 label Label_E5AB UpdateMusicEntry
475 label Label_E5AC UpdateMusicCallE4E2
476 label Label_E5CD UpdateMusicCallE5AC
477 label Label_E5D9 UpdateMusicCallE4E2Alt
478 label Label_E5E4 UpdateMusicCallE4E2Alt2
479 label Label_E5E5 UpdateMusicCallE5ACAlt
480 label Label_E5FB UpdateMusicCallE5ACAlt2
481 label Label_E60E UpdateMusicCallE4E2Alt3
482 label Label_E62D UpdateMusicCallE5ACAlt3
483 label Label_E62F UpdateMusicCallE4E2Alt4
484 label Label_E630 UpdateMusicCallE5ACAlt4
485 label Label_E641 UpdateMusicCallE4E2Alt5
486 label Label_E65A UpdateMusicCallE5ACAlt5
487 label Label_E669 UpdateMusicCallE4E2Alt6
488 label Label_E695 UpdateMusicLoopEntry
489 label Label_E6A8 UpdateMusicLoopCallE4E2
490 label Label_E6BE UpdateMusicLoopCallE5AC
491 label Label_E6CE UpdateMusicLoopCallE4E2Alt
492 label Label_E6DD UpdateMusicLoopCallE4E2Alt2
493 label Label_E6E3 UpdateMusicLoopCallE5ACAlt
494 label Label_E6E6 UpdateMusicLoopCallE4E2Alt3
495 label Label_E6F2 UpdateMusicLoopCallE5ACAlt2
496 label Label_E6F9 UpdateMusicLoopCallE4E2Alt4
497 label Label_E70C InitSpriteDataEntry
498 label Label_E72D InitSpriteDataLoop
499 label Label_E749 InitSpriteDataCallE4E2
500 label Label_E753 InitSpriteDataCallE5AC
501 label Label_E764 InitSpriteDataCallE4E2Alt
502 label Label_E768 InitSpriteDataCallE5ACAlt
503 label Label_E777 InitSpriteDataCallE4E2Alt2
504 label Label_E77C InitSpriteDataCallE5ACAlt2
505 label Label_E7A7 InitSpriteDataCallE4E2Alt3
506 label Label_E7AB InitSpriteDataCallE5ACAlt3
507 label Label_E7AF InitSpriteDataCallE4E2Alt4
508 label Label_E7B1 InitSpriteDataCallE5ACAlt4
509 label Label_E7BE InitSpriteDataCallE4E2Alt5
510 label Label_E7C6 InitSpriteDataCallE5ACAlt5
511 label Label_E7D6 InitSpriteDataCallE4E2Alt6
512 label Label_E7DB InitSpriteDataCallE5ACAlt6
513 label Label_E7F7 InitSoundEntry
514 label Label_E7F9 InitSoundCallE4E2
515 label Label_E80B InitSoundCallE5AC
516 label Label_E80C InitSoundExit_E80C
517 label Label_D2C7 UpdatePlayersCallE462_CF
518 label Label_DB48 SpriteDMACheckZp96_DB48
519 label Label_DFBC HandleKOCheckZp1F_DFBC
+10
View File
@@ -0,0 +1,10 @@
MEMORY {
HEADER: start = $0000, size = $0010, file = %O, fill = yes;
PRG: start = $C000, size = $4000, file = %O, fill = yes;
CHR: start = $0000, size = $2000, file = %O, fill = yes;
}
SEGMENTS {
HEADER: load = HEADER, type = ro;
PRG: load = PRG, type = ro;
CHR: load = CHR, type = ro;
}
+159
View File
@@ -0,0 +1,159 @@
; 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
Binary file not shown.
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
@@ -0,0 +1,32 @@
Modules list:
-------------
header.o:
HEADER Offs=000000 Size=000010 Align=00001 Fill=0000
prg.o:
PRG Offs=000000 Size=004000 Align=00001 Fill=0000
chr.o:
CHR Offs=000000 Size=002000 Align=00001 Fill=0000
Segment list:
-------------
Name Start End Size Align
----------------------------------------------------
CHR 000000 001FFF 002000 00001
HEADER 000000 00000F 000010 00001
PRG 00C000 00FFFF 004000 00001
Exports list by name:
---------------------
Exports list by value:
----------------------
Imports list:
-------------
Binary file not shown.
+1
View File
@@ -0,0 +1 @@
../Urban Champion (JU).nes
+108
View File
@@ -0,0 +1,108 @@
; =============================================================================
; Nintendo Entertainment System hardware symbols
; =============================================================================
; -----------------------------------------------------------------------------
; PPU registers
; -----------------------------------------------------------------------------
PPUCTRL = $2000
PPUMASK = $2001
PPUSTATUS = $2002
OAMADDR = $2003
OAMDATA = $2004
PPUSCROLL = $2005
PPUADDR = $2006
PPUDATA = $2007
OAMDMA = $4014
; -----------------------------------------------------------------------------
; Controller ports
;
; $4016:
; Write: controller strobe
; Read: controller port 1
;
; $4017:
; Read: controller port 2
; Write: APU frame counter
; -----------------------------------------------------------------------------
JOY1 = $4016
JOY2 = $4017
; -----------------------------------------------------------------------------
; APU pulse channel 1
; -----------------------------------------------------------------------------
APUPULSE1CTRL = $4000
APUPULSE1SWEEP = $4001
APUPULSE1TIMERLO = $4002
APUPULSE1TIMERHI = $4003
; -----------------------------------------------------------------------------
; APU pulse channel 2
; -----------------------------------------------------------------------------
APUPULSE2CTRL = $4004
APUPULSE2SWEEP = $4005
APUPULSE2TIMERLO = $4006
APUPULSE2TIMERHI = $4007
; -----------------------------------------------------------------------------
; APU triangle channel
; -----------------------------------------------------------------------------
APUTRIANGLECTRL = $4008
APUTRIANGLETIMERLO = $400A
APUTRIANGLETIMERHI = $400B
; -----------------------------------------------------------------------------
; APU noise channel
; -----------------------------------------------------------------------------
APUNOISECTRL = $400C
APUNOISEPERIOD = $400E
APUNOISELENGTH = $400F
; -----------------------------------------------------------------------------
; APU DMC channel
; -----------------------------------------------------------------------------
APUDMCCTRL = $4010
APUDMCDIRECT = $4011
APUDMCADDR = $4012
APUDMCLENGTH = $4013
; -----------------------------------------------------------------------------
; APU status and frame counter
;
; $4015:
; Write: enable or disable the five APU channels
; Read: channel and interrupt status
;
; $4017:
; Write: APU frame-counter mode and IRQ inhibit
; Read: controller port 2
; -----------------------------------------------------------------------------
APUSTATUS = $4015
APUFRAMECOUNTER = $4017
; -----------------------------------------------------------------------------
; Controller masks
; -----------------------------------------------------------------------------
PAD_RIGHT = $01
PAD_LEFT = $02
PAD_DOWN = $04
PAD_UP = $08
PAD_START = $10
PAD_SELECT = $20
PAD_B = $40
PAD_A = $80
PAD_HORIZONTAL = PAD_LEFT | PAD_RIGHT
PAD_VERTICAL = PAD_UP | PAD_DOWN
PAD_DPAD = PAD_HORIZONTAL | PAD_VERTICAL
Binary file not shown.
Binary file not shown.