Standardized all 18 top-level projects to canonical audit comment format: ; CPU:$XXXX PRG:XXXX AA BB Changes per project: - CIRCUS: fixed 4,427 comments (CPU:XXXX -> CPU:$XXXX) - Excitebike (JU): fixed 48 double-semicolon comments (; state $XX ; CPU:...) - 9 projects received canonical comments via new audit_comment_tool.py: Balloon Fight, Baseball, Bomberman, Burger Time, Clu Clu Land, Defender 2, Donkey Kong 3, Donkey Kong Jr., Tennis New tool: _tools/audit_comment_tool.py - Uses nesdis.py tracer as ground truth for instruction bytes/addresses - Parses source while tracking PRG offset, emits canonical comments - Handles .byte/.word/.dword directives, instruction comments (short format) - Carves PRG from rom.nes when prg.bin missing Documentation updates: - TODO.md: Updated current state, item 3 (tool built), repo conventions, tool list - AGENTS.md: Added audit_comment_tool.py to _tools/, updated audit convention Verification: verify_pass1.py reports all 18 projects byte-identical with 'canoni' format.
9271 lines
431 KiB
ArmAsm
9271 lines
431 KiB
ArmAsm
; Tennis NES disassembly - Pass 1
|
|
; Generated from the supplied 16 KiB PRG image.
|
|
; Pass 1 classifies recursively reachable code, inline address tables, vectors,
|
|
; and untraced/data regions. All PRG data bytes are emitted explicitly with .byte directives.
|
|
|
|
.setcpu "6502"
|
|
|
|
.include "symbols.inc"
|
|
.include "locals.inc"
|
|
|
|
.segment "PRG"
|
|
.org $C000
|
|
|
|
; =============================================================================
|
|
; Reset
|
|
; CPU address: $C000 PRG offset: $0000
|
|
;
|
|
; Global description:
|
|
; RESET and IRQ/BRK entry. Initializes CPU, PPU, RAM, and game state before entering the foreground loop.
|
|
;
|
|
; Parameters:
|
|
; None; entered through a hardware vector.
|
|
;
|
|
; Returns:
|
|
; Does not return.
|
|
; =============================================================================
|
|
Reset:
|
|
cld ; CPU:$C000 PRG:0000 D8
|
|
sei ; CPU:$C001 PRG:0001 78
|
|
Flow_C002:
|
|
lda PPUSTATUS ; CPU:$C002 PRG:0002 AD 02 20
|
|
bpl Flow_C002 ; CPU:$C005 PRG:0005 10 FB
|
|
ldx #$00 ; CPU:$C007 PRG:0007 A2 00
|
|
stx PPUCTRL ; CPU:$C009 PRG:0009 8E 00 20
|
|
stx PPUMASK ; CPU:$C00C PRG:000C 8E 01 20
|
|
dex ; CPU:$C00F PRG:000F CA
|
|
txs ; CPU:$C010 PRG:0010 9A
|
|
ldx FrameCounter ; CPU:$C011 PRG:0011 A6 27
|
|
ldy #$06 ; CPU:$C013 PRG:0013 A0 06
|
|
sty WorkPtrHi ; CPU:$C015 PRG:0015 84 02
|
|
ldy #$00 ; CPU:$C017 PRG:0017 A0 00
|
|
sty WorkPtrLo ; CPU:$C019 PRG:0019 84 01
|
|
lda #$00 ; CPU:$C01B PRG:001B A9 00
|
|
Flow_C01D:
|
|
sta (WorkPtrLo),y ; CPU:$C01D PRG:001D 91 01
|
|
dey ; CPU:$C01F PRG:001F 88
|
|
bne Flow_C01D ; CPU:$C020 PRG:0020 D0 FB
|
|
dec WorkPtrHi ; CPU:$C022 PRG:0022 C6 02
|
|
bpl Flow_C01D ; CPU:$C024 PRG:0024 10 F7
|
|
txa ; CPU:$C026 PRG:0026 8A
|
|
bne Flow_C02B ; CPU:$C027 PRG:0027 D0 02
|
|
ldx #$5F ; CPU:$C029 PRG:0029 A2 5F
|
|
Flow_C02B:
|
|
stx $0500 ; CPU:$C02B PRG:002B 8E 00 05
|
|
jsr ClearNametables ; CPU:$C02E PRG:002E 20 95 C1
|
|
jsr HideAllSprites ; CPU:$C031 PRG:0031 20 A5 C1
|
|
ldy #$00 ; CPU:$C034 PRG:0034 A0 00
|
|
sta PPUSCROLL ; CPU:$C036 PRG:0036 8D 05 20
|
|
sta PPUSCROLL ; CPU:$C039 PRG:0039 8D 05 20
|
|
iny ; CPU:$C03C PRG:003C C8
|
|
sty GameActiveFlag ; CPU:$C03D PRG:003D 84 38
|
|
lda #$0F ; CPU:$C03F PRG:003F A9 0F
|
|
sta APUSTATUS ; CPU:$C041 PRG:0041 8D 15 40
|
|
lda #$90 ; CPU:$C044 PRG:0044 A9 90
|
|
sta PPUCTRL ; CPU:$C046 PRG:0046 8D 00 20
|
|
sta PpuCtrlShadow ; CPU:$C049 PRG:0049 85 09
|
|
lda #$06 ; CPU:$C04B PRG:004B A9 06
|
|
sta PpuMaskShadow ; CPU:$C04D PRG:004D 85 0A
|
|
|
|
; =============================================================================
|
|
; MainLoop
|
|
; CPU address: $C04F PRG offset: $004F
|
|
;
|
|
; Global description:
|
|
; Foreground frame loop synchronized with work performed by NMI.
|
|
;
|
|
; Parameters:
|
|
; Reset initialization completed.
|
|
;
|
|
; Returns:
|
|
; Does not return.
|
|
; =============================================================================
|
|
MainLoop:
|
|
lda #$00 ; CPU:$C04F PRG:004F A9 00
|
|
sta NmiWorkComplete ; CPU:$C051 PRG:0051 85 30
|
|
lda GameActiveFlag ; CPU:$C053 PRG:0053 A5 38
|
|
beq Flow_C05D ; CPU:$C055 PRG:0055 F0 06
|
|
lda GameStateStep ; CPU:$C057 PRG:0057 A5 3E
|
|
cmp #$01 ; CPU:$C059 PRG:0059 C9 01
|
|
bne Flow_C060 ; CPU:$C05B PRG:005B D0 03
|
|
Flow_C05D:
|
|
jsr RunAudioEngine ; CPU:$C05D PRG:005D 20 F7 FF
|
|
Flow_C060:
|
|
jsr UpdateTimers ; CPU:$C060 PRG:0060 20 75 C3
|
|
jsr UpdateGameState ; CPU:$C063 PRG:0063 20 AA C0
|
|
lda #$01 ; CPU:$C066 PRG:0066 A9 01
|
|
sta NmiUpdatesEnabled ; CPU:$C068 PRG:0068 85 32
|
|
Flow_C06A:
|
|
lda NmiWorkComplete ; CPU:$C06A PRG:006A A5 30
|
|
beq Flow_C077 ; CPU:$C06C PRG:006C F0 09
|
|
inc FrameCounter ; CPU:$C06E PRG:006E E6 27
|
|
lda #$00 ; CPU:$C070 PRG:0070 A9 00
|
|
sta NmiUpdatesEnabled ; CPU:$C072 PRG:0072 85 32
|
|
jmp MainLoop ; CPU:$C074 PRG:0074 4C 4F C0
|
|
Flow_C077:
|
|
jsr RollRng ; CPU:$C077 PRG:0077 20 56 C4
|
|
jmp Flow_C06A ; CPU:$C07A PRG:007A 4C 6A C0
|
|
|
|
; =============================================================================
|
|
; NmiHandler
|
|
; CPU address: $C07D PRG offset: $007D
|
|
;
|
|
; Global description:
|
|
; Vertical-blank NMI handler. Preserves registers, performs OAM DMA and frame-synchronized updates, then returns from interrupt.
|
|
;
|
|
; Parameters:
|
|
; None; entered through the NMI vector.
|
|
;
|
|
; Returns:
|
|
; Returns with RTI; A, X, and Y are preserved by the visible handler.
|
|
; =============================================================================
|
|
NmiHandler:
|
|
pha ; CPU:$C07D PRG:007D 48
|
|
txa ; CPU:$C07E PRG:007E 8A
|
|
pha ; CPU:$C07F PRG:007F 48
|
|
tya ; CPU:$C080 PRG:0080 98
|
|
pha ; CPU:$C081 PRG:0081 48
|
|
lda #$00 ; CPU:$C082 PRG:0082 A9 00
|
|
sta OAMADDR ; CPU:$C084 PRG:0084 8D 03 20
|
|
lda #$02 ; CPU:$C087 PRG:0087 A9 02
|
|
sta OAMDMA ; CPU:$C089 PRG:0089 8D 14 40
|
|
lda NmiUpdatesEnabled ; CPU:$C08C PRG:008C A5 32
|
|
beq Flow_C0A0 ; CPU:$C08E PRG:008E F0 10
|
|
jsr WritePalette ; CPU:$C090 PRG:0090 20 B5 C1
|
|
jsr WritePpuBuffer ; CPU:$C093 PRG:0093 20 EC C2
|
|
jsr SetScroll ; CPU:$C096 PRG:0096 20 FD C3
|
|
jsr ReadControllers ; CPU:$C099 PRG:0099 20 A4 C2
|
|
ldy #$01 ; CPU:$C09C PRG:009C A0 01
|
|
sty NmiWorkComplete ; CPU:$C09E PRG:009E 84 30
|
|
Flow_C0A0:
|
|
lda #$01 ; CPU:$C0A0 PRG:00A0 A9 01
|
|
sta NmiTriggerFlag ; CPU:$C0A2 PRG:00A2 85 33
|
|
pla ; CPU:$C0A4 PRG:00A4 68
|
|
tay ; CPU:$C0A5 PRG:00A5 A8
|
|
pla ; CPU:$C0A6 PRG:00A6 68
|
|
tax ; CPU:$C0A7 PRG:00A7 AA
|
|
pla ; CPU:$C0A8 PRG:00A8 68
|
|
rti ; CPU:$C0A9 PRG:00A9 40
|
|
|
|
; =============================================================================
|
|
; UpdateGameState
|
|
; CPU address: $C0AA PRG offset: $00AA
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
UpdateGameState:
|
|
lda GameActiveFlag ; CPU:$C0AA PRG:00AA A5 38
|
|
beq Flow_C0B1 ; CPU:$C0AC PRG:00AC F0 03
|
|
jmp Flow_C119 ; CPU:$C0AE PRG:00AE 4C 19 C1
|
|
Flow_C0B1:
|
|
lda ControllerHeld ; CPU:$C0B1 PRG:00B1 A5 1A
|
|
and #$10 ; CPU:$C0B3 PRG:00B3 29 10
|
|
beq Flow_C0F8 ; CPU:$C0B5 PRG:00B5 F0 41
|
|
ldy StartButtonLatch ; CPU:$C0B7 PRG:00B7 A4 34
|
|
bne Flow_C0FC ; CPU:$C0B9 PRG:00B9 D0 41
|
|
iny ; CPU:$C0BB PRG:00BB C8
|
|
sty StartButtonLatch ; CPU:$C0BC PRG:00BC 84 34
|
|
ldy GameState ; CPU:$C0BE PRG:00BE A4 3D
|
|
cpy #$07 ; CPU:$C0C0 PRG:00C0 C0 07
|
|
beq Flow_C0EA ; CPU:$C0C2 PRG:00C2 F0 26
|
|
cpy #$04 ; CPU:$C0C4 PRG:00C4 C0 04
|
|
beq Flow_C0CC ; CPU:$C0C6 PRG:00C6 F0 04
|
|
cpy #$06 ; CPU:$C0C8 PRG:00C8 C0 06
|
|
bne Flow_C0FC ; CPU:$C0CA PRG:00CA D0 30
|
|
Flow_C0CC:
|
|
ldx #$07 ; CPU:$C0CC PRG:00CC A2 07
|
|
Flow_C0CE:
|
|
lda Zp20,x ; CPU:$C0CE PRG:00CE B5 20
|
|
sta Zp28,x ; CPU:$C0D0 PRG:00D0 95 28
|
|
dex ; CPU:$C0D2 PRG:00D2 CA
|
|
bpl Flow_C0CE ; CPU:$C0D3 PRG:00D3 10 F9
|
|
lda PpuMaskShadow ; CPU:$C0D5 PRG:00D5 A5 0A
|
|
and #$0E ; CPU:$C0D7 PRG:00D7 29 0E
|
|
sta PPUMASK ; CPU:$C0D9 PRG:00D9 8D 01 20
|
|
sta PpuMaskShadow ; CPU:$C0DC PRG:00DC 85 0A
|
|
sty Zp3B ; CPU:$C0DE PRG:00DE 84 3B
|
|
lda #$07 ; CPU:$C0E0 PRG:00E0 A9 07
|
|
sta GameState ; CPU:$C0E2 PRG:00E2 85 3D
|
|
jsr MatchRoutine_CBCB ; CPU:$C0E4 PRG:00E4 20 CB CB
|
|
jmp Flow_C0F2 ; CPU:$C0E7 PRG:00E7 4C F2 C0
|
|
Flow_C0EA:
|
|
lda #$14 ; CPU:$C0EA PRG:00EA A9 14
|
|
sta Zp21 ; CPU:$C0EC PRG:00EC 85 21
|
|
lda #$0A ; CPU:$C0EE PRG:00EE A9 0A
|
|
sta GameState ; CPU:$C0F0 PRG:00F0 85 3D
|
|
Flow_C0F2:
|
|
lda #$80 ; CPU:$C0F2 PRG:00F2 A9 80
|
|
sta AudioRequestFlags1 ; CPU:$C0F4 PRG:00F4 85 FD
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $00F6-$00F7.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
EngineTable_C0F6:
|
|
.byte $D0, $04 ; PRG $00F6 / CPU $C0F6 ; CPU:$C0F6 PRG:00F6 D0 04
|
|
Flow_C0F8:
|
|
lda #$00 ; CPU:$C0F8 PRG:00F8 A9 00
|
|
sta StartButtonLatch ; CPU:$C0FA PRG:00FA 85 34
|
|
Flow_C0FC:
|
|
lda GameState ; CPU:$C0FC PRG:00FC A5 3D
|
|
jsr DispatchInlineAddressTable ; CPU:$C0FE PRG:00FE 20 8B C3
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Inline address table at CPU $C101; 12 little-endian entries.
|
|
; Consumed by DispatchInlineAddressTable; this region is data, not code.
|
|
; -----------------------------------------------------------------------------
|
|
GameStateHandlerTable:
|
|
.word GameState00_InitializeMatch ; CPU:$C101 PRG:0101 0A
|
|
.word GameState01_WaitForServe ; CPU:$C103 PRG:0103 ??
|
|
.word GameState02_PrepareRally ; CPU:$C105 PRG:0105 ??
|
|
.word GameState03_RunRally ; CPU:$C107 PRG:0107 ??
|
|
.word GameState04_PointEnded ; CPU:$C109 PRG:0109 ??
|
|
.word GameState05_UpdateScore ; CPU:$C10B PRG:010B ??
|
|
.word GameState06_AdvanceGame ; CPU:$C10D PRG:010D ??
|
|
.word GameState07_PauseOrTransition ; CPU:$C10F PRG:010F ??
|
|
.word GameState08_WaitForTimer ; CPU:$C111 PRG:0111 ??
|
|
.word GameState09_RestorePreviousState ; CPU:$C113 PRG:0113 ??
|
|
.word GameState0A_ResumePreviousState ; CPU:$C115 PRG:0115 ??
|
|
.word GameState0B_FinishTransition ; CPU:$C117 PRG:0117 ??
|
|
Flow_C119:
|
|
lda ControllerHeld ; CPU:$C119 PRG:0119 A5 1A
|
|
and #$30 ; CPU:$C11B PRG:011B 29 30
|
|
cmp #$10 ; CPU:$C11D PRG:011D C9 10
|
|
bne Flow_C134 ; CPU:$C11F PRG:011F D0 13
|
|
lda #$00 ; CPU:$C121 PRG:0121 A9 00
|
|
sta GameActiveFlag ; CPU:$C123 PRG:0123 85 38
|
|
sta GameState ; CPU:$C125 PRG:0125 85 3D
|
|
sta PendingStateFlag ; CPU:$C127 PRG:0127 85 43
|
|
jsr MatchRoutine_CBCB ; CPU:$C129 PRG:0129 20 CB CB
|
|
jsr DisableRendering ; CPU:$C12C PRG:012C 20 0A C4
|
|
lda SelectedGameMode ; CPU:$C12F PRG:012F A5 E0
|
|
sta GameMode ; CPU:$C131 PRG:0131 85 39
|
|
rts ; CPU:$C133 PRG:0133 60
|
|
Flow_C134:
|
|
ldx GameStateStep ; CPU:$C134 PRG:0134 A6 3E
|
|
beq Flow_C159 ; CPU:$C136 PRG:0136 F0 21
|
|
cmp #$20 ; CPU:$C138 PRG:0138 C9 20
|
|
bne Flow_C15B ; CPU:$C13A PRG:013A D0 1F
|
|
cpx #$01 ; CPU:$C13C PRG:013C E0 01
|
|
bne Flow_C154 ; CPU:$C13E PRG:013E D0 14
|
|
lda StateTransitionFlag ; CPU:$C140 PRG:0140 A5 35
|
|
bne Flow_C167 ; CPU:$C142 PRG:0142 D0 23
|
|
ldy GameMode ; CPU:$C144 PRG:0144 A4 39
|
|
iny ; CPU:$C146 PRG:0146 C8
|
|
cpy #$02 ; CPU:$C147 PRG:0147 C0 02
|
|
bne Flow_C14D ; CPU:$C149 PRG:0149 D0 02
|
|
ldy #$00 ; CPU:$C14B PRG:014B A0 00
|
|
Flow_C14D:
|
|
sty GameMode ; CPU:$C14D PRG:014D 84 39
|
|
sty SelectedGameMode ; CPU:$C14F PRG:014F 84 E0
|
|
jmp Flow_C163 ; CPU:$C151 PRG:0151 4C 63 C1
|
|
Flow_C154:
|
|
jsr MatchRoutine_CBCB ; CPU:$C154 PRG:0154 20 CB CB
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $0157-$0158.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
EngineTable_C157:
|
|
.byte $85, $3E ; PRG $0157 / CPU $C157 ; CPU:$C157 PRG:0157 85 3E
|
|
Flow_C159:
|
|
beq Flow_C180 ; CPU:$C159 PRG:0159 F0 25
|
|
Flow_C15B:
|
|
cmp #$00 ; CPU:$C15B PRG:015B C9 00
|
|
bne Flow_C163 ; CPU:$C15D PRG:015D D0 04
|
|
sta StateTransitionFlag ; CPU:$C15F PRG:015F 85 35
|
|
beq Flow_C171 ; CPU:$C161 PRG:0161 F0 0E
|
|
Flow_C163:
|
|
lda #$01 ; CPU:$C163 PRG:0163 A9 01
|
|
sta StateTransitionFlag ; CPU:$C165 PRG:0165 85 35
|
|
Flow_C167:
|
|
lda StateTimer ; CPU:$C167 PRG:0167 A5 25
|
|
cmp #$25 ; CPU:$C169 PRG:0169 C9 25
|
|
bcs Flow_C171 ; CPU:$C16B PRG:016B B0 04
|
|
lda #$25 ; CPU:$C16D PRG:016D A9 25
|
|
sta StateTimer ; CPU:$C16F PRG:016F 85 25
|
|
Flow_C171:
|
|
cpx #$01 ; CPU:$C171 PRG:0171 E0 01
|
|
bne Flow_C180 ; CPU:$C173 PRG:0173 D0 0B
|
|
ldy #$88 ; CPU:$C175 PRG:0175 A0 88
|
|
lda GameMode ; CPU:$C177 PRG:0177 A5 39
|
|
beq Flow_C17D ; CPU:$C179 PRG:0179 F0 02
|
|
ldy #$A0 ; CPU:$C17B PRG:017B A0 A0
|
|
Flow_C17D:
|
|
sty $0200 ; CPU:$C17D PRG:017D 8C 00 02
|
|
Flow_C180:
|
|
lda GameStateStep ; CPU:$C180 PRG:0180 A5 3E
|
|
jsr DispatchInlineAddressTable ; CPU:$C182 PRG:0182 20 8B C3
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Inline address table at CPU $C185; 7 little-endian entries.
|
|
; Consumed by DispatchInlineAddressTable; this region is data, not code.
|
|
; -----------------------------------------------------------------------------
|
|
GameStateStepHandlerTable:
|
|
.word ModeStep00_DrawSelectionScreen ; CPU:$C185 PRG:0185 87 CA
|
|
.word ModeStep01_Countdown ; CPU:$C187 PRG:0187 ??
|
|
.word ModeStep02_InitializeSelection ; CPU:$C189 PRG:0189 ??
|
|
.word ModeStep03_UpdateSelection ; CPU:$C18B PRG:018B ??
|
|
.word ModeStep04_ConfirmSelection ; CPU:$C18D PRG:018D ??
|
|
.word ModeStep05_StartDemoOrMatch ; CPU:$C18F PRG:018F ??
|
|
.word ModeStep06_CompleteSetup ; CPU:$C191 PRG:0191 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $0193-$0194.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
EngineTable_C193:
|
|
.byte $C1, $CB ; PRG $0193 / CPU $C193 ; CPU:$C193 PRG:0193 C1 CB
|
|
; =============================================================================
|
|
; ClearNametables
|
|
; CPU address: $C195 PRG offset: $0195
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
ClearNametables:
|
|
lda #$03 ; CPU:$C195 PRG:0195 A9 03
|
|
jsr EngineRoutine_C19C ; CPU:$C197 PRG:0197 20 9C C1
|
|
|
|
; =============================================================================
|
|
; ClearOneNametable
|
|
; CPU address: $C19A PRG offset: $019A
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
ClearOneNametable:
|
|
lda #$01 ; CPU:$C19A PRG:019A A9 01
|
|
|
|
; =============================================================================
|
|
; EngineRoutine_C19C
|
|
; CPU address: $C19C PRG offset: $019C
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
EngineRoutine_C19C:
|
|
sta WorkPtrHi ; CPU:$C19C PRG:019C 85 02
|
|
lda #$24 ; CPU:$C19E PRG:019E A9 24
|
|
sta WorkPtrLo ; CPU:$C1A0 PRG:01A0 85 01
|
|
jmp Flow_C330 ; CPU:$C1A2 PRG:01A2 4C 30 C3
|
|
|
|
; =============================================================================
|
|
; HideAllSprites
|
|
; CPU address: $C1A5 PRG offset: $01A5
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
HideAllSprites:
|
|
ldy #$02 ; CPU:$C1A5 PRG:01A5 A0 02
|
|
sty WorkPtrHi ; CPU:$C1A7 PRG:01A7 84 02
|
|
ldy #$00 ; CPU:$C1A9 PRG:01A9 A0 00
|
|
sty WorkPtrLo ; CPU:$C1AB PRG:01AB 84 01
|
|
lda #$F4 ; CPU:$C1AD PRG:01AD A9 F4
|
|
Flow_C1AF:
|
|
sta (WorkPtrLo),y ; CPU:$C1AF PRG:01AF 91 01
|
|
dey ; CPU:$C1B1 PRG:01B1 88
|
|
bne Flow_C1AF ; CPU:$C1B2 PRG:01B2 D0 FB
|
|
rts ; CPU:$C1B4 PRG:01B4 60
|
|
|
|
; =============================================================================
|
|
; WritePalette
|
|
; CPU address: $C1B5 PRG offset: $01B5
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
WritePalette:
|
|
ldy PaletteUpdateMode ; CPU:$C1B5 PRG:01B5 A4 3C
|
|
beq Flow_C1DC ; CPU:$C1B7 PRG:01B7 F0 23
|
|
dey ; CPU:$C1B9 PRG:01B9 88
|
|
beq Flow_C1CD ; CPU:$C1BA PRG:01BA F0 11
|
|
dey ; CPU:$C1BC PRG:01BC 88
|
|
beq Flow_C1C6 ; CPU:$C1BD PRG:01BD F0 07
|
|
lda #$4A ; CPU:$C1BF PRG:01BF A9 4A
|
|
ldx #$EE ; CPU:$C1C1 PRG:01C1 A2 EE
|
|
jmp Flow_C1D1 ; CPU:$C1C3 PRG:01C3 4C D1 C1
|
|
Flow_C1C6:
|
|
lda #$32 ; CPU:$C1C6 PRG:01C6 A9 32
|
|
ldx #$EE ; CPU:$C1C8 PRG:01C8 A2 EE
|
|
jmp Flow_C1D1 ; CPU:$C1CA PRG:01CA 4C D1 C1
|
|
Flow_C1CD:
|
|
lda #$11 ; CPU:$C1CD PRG:01CD A9 11
|
|
ldx #$EE ; CPU:$C1CF PRG:01CF A2 EE
|
|
Flow_C1D1:
|
|
ldy #$00 ; CPU:$C1D1 PRG:01D1 A0 00
|
|
sty PaletteUpdateMode ; CPU:$C1D3 PRG:01D3 84 3C
|
|
sta WorkPtrLo ; CPU:$C1D5 PRG:01D5 85 01
|
|
stx WorkPtrHi ; CPU:$C1D7 PRG:01D7 86 02
|
|
jsr UploadPointedPpuData ; CPU:$C1D9 PRG:01D9 20 F4 C3
|
|
Flow_C1DC:
|
|
rts ; CPU:$C1DC PRG:01DC 60
|
|
|
|
; =============================================================================
|
|
; EngineRoutine_C1DD
|
|
; CPU address: $C1DD PRG offset: $01DD
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
EngineRoutine_C1DD:
|
|
lda ObjectDataPointerLo ; CPU:$C1DD PRG:01DD ??
|
|
sta MathResultLo ; CPU:$C1DF PRG:01DF ??
|
|
lda ObjectDataPointerHi ; CPU:$C1E1 PRG:01E1 ??
|
|
sta MathResultHi ; CPU:$C1E3 PRG:01E3 ??
|
|
lda ObjectDataOffset ; CPU:$C1E5 PRG:01E5 ??
|
|
sta MathOperandLo ; CPU:$C1E7 PRG:01E7 ??
|
|
lda #$00 ; CPU:$C1E9 PRG:01E9 ??
|
|
sta MathOperandHi ; CPU:$C1EB PRG:01EB ??
|
|
jsr Add16BitZp12ToZp14 ; CPU:$C1ED PRG:01ED ??
|
|
tay ; CPU:$C1EF PRG:01EF ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $01F1-$01F2.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
EngineTable_C1F1:
|
|
.byte $AA, $60 ; PRG $01F1 / CPU $C1F1 ; CPU:$C1F1 PRG:01F1 AA 60
|
|
; =============================================================================
|
|
; EngineRoutine_C1F3
|
|
; CPU address: $C1F3 PRG offset: $01F3
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
EngineRoutine_C1F3:
|
|
jsr EngineRoutine_C1DD ; CPU:$C1F3 PRG:01F3 ??
|
|
Flow_C1F6:
|
|
lda (MathResultLo),y ; CPU:$C1F5 PRG:01F5 ??
|
|
sta AnimationFrame,x ; CPU:$C1F7 PRG:01F7 ??
|
|
iny ; CPU:$C1F9 PRG:01F9 ??
|
|
inx ; CPU:$C1FB PRG:01FB ??
|
|
cpx #$20 ; CPU:$C1FD PRG:01FD ??
|
|
bne Flow_C1F6 ; CPU:$C1FF PRG:01FF ??
|
|
lda #$00 ; CPU:$C201 PRG:0201 ??
|
|
tay ; CPU:$C203 PRG:0203 ??
|
|
sta (MathResultLo),y ; CPU:$C205 PRG:0205 ??
|
|
rts ; CPU:$C207 PRG:0207 ??
|
|
|
|
; =============================================================================
|
|
; EngineRoutine_C206
|
|
; CPU address: $C206 PRG offset: $0206
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
EngineRoutine_C206:
|
|
lda ObjectDataOffset ; CPU:$C209 PRG:0209 ??
|
|
clc ; CPU:$C20B PRG:020B ??
|
|
adc #$20 ; CPU:$C20D PRG:020D ??
|
|
sta ObjectDataOffset ; CPU:$C20F PRG:020F ??
|
|
rts ; PRG $020D / CPU $C20D ; CPU:$C211 PRG:0211 ??
|
|
; =============================================================================
|
|
; EngineRoutine_C20E
|
|
; CPU address: $C20E PRG offset: $020E
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
EngineRoutine_C20E:
|
|
jsr EngineRoutine_C1DD ; CPU:$C213 PRG:0213 ??
|
|
Flow_C211:
|
|
lda AnimationFrame,x ; CPU:$C215 PRG:0215 ??
|
|
sta (MathResultLo),y ; CPU:$C217 PRG:0217 ??
|
|
iny ; CPU:$C219 PRG:0219 ??
|
|
inx ; CPU:$C21B PRG:021B ??
|
|
cpx #$20 ; CPU:$C21D PRG:021D ??
|
|
bne Flow_C211 ; CPU:$C21F PRG:021F ??
|
|
FlowEntry_C21B:
|
|
rts; PRG $021B / CPU $C21B
|
|
; =============================================================================
|
|
; EngineRoutine_C21C
|
|
; CPU address: $C21C PRG offset: $021C
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
EngineRoutine_C21C:
|
|
lda AnimationFrame ; CPU:$C221 PRG:0221 ??
|
|
beq FlowEntry_C21B ; CPU:$C223 PRG:0223 ??
|
|
lda #$F2 ; CPU:$C225 PRG:0225 ??
|
|
sta MathResultHi ; CPU:$C227 PRG:0227 ??
|
|
lda #$8C ; CPU:$C229 PRG:0229 ??
|
|
sta MathResultLo ; CPU:$C22B PRG:022B ??
|
|
lda PlayerPoseId ; CPU:$C22D PRG:022D ??
|
|
jsr EngineRoutine_C28E ; CPU:$C22F PRG:022F ??
|
|
ldy #$00 ; CPU:$C231 PRG:0231 ??
|
|
lda (MathOperandLo),y ; CPU:$C233 PRG:0233 ??
|
|
sta MathResultLo ; CPU:$C235 PRG:0235 ??
|
|
iny ; CPU:$C237 PRG:0237 ??
|
|
lda (MathOperandLo),y ; CPU:$C239 PRG:0239 ??
|
|
sta MathResultHi ; CPU:$C23B PRG:023B ??
|
|
iny ; CPU:$C23D PRG:023D ??
|
|
lda (MathOperandLo),y ; CPU:$C23F PRG:023F ??
|
|
sta WorkPtrLo ; CPU:$C241 PRG:0241 ??
|
|
iny ; CPU:$C243 PRG:0243 ??
|
|
lda (MathOperandLo),y ; CPU:$C245 PRG:0245 ??
|
|
sta WorkPtrHi ; CPU:$C247 PRG:0247 ??
|
|
iny ; CPU:$C249 PRG:0249 ??
|
|
sty Zp0D ; CPU:$C24B PRG:024B ??
|
|
ldy #$00 ; CPU:$C24D PRG:024D ??
|
|
ldx RacketContactFlags ; CPU:$C24F PRG:024F ??
|
|
Flow_C249:
|
|
lda (MathResultLo),y ; CPU:$C251 PRG:0251 ??
|
|
iny ; CPU:$C253 PRG:0253 ??
|
|
clc ; CPU:$C255 PRG:0255 ??
|
|
adc RacketTargetX ; CPU:$C257 PRG:0257 ??
|
|
adc #$FF ; CPU:$C259 PRG:0259 ??
|
|
sta $0200,x ; CPU:$C25B PRG:025B ??
|
|
inx ; CPU:$C25D PRG:025D ??
|
|
sty Zp0C ; CPU:$C25F PRG:025F ??
|
|
ldy Zp0D ; CPU:$C261 PRG:0261 ??
|
|
lda (MathOperandLo),y ; CPU:$C263 PRG:0263 ??
|
|
sta $0200,x ; CPU:$C265 PRG:0265 ??
|
|
inc Zp0D ; CPU:$C267 PRG:0267 ??
|
|
inx ; CPU:$C269 PRG:0269 ??
|
|
ldy Zp0C ; CPU:$C26B PRG:026B ??
|
|
lda PlayerPoseFlags ; CPU:$C26D PRG:026D ??
|
|
asl WorkPtrHi ; CPU:$C26F PRG:026F ??
|
|
rol WorkPtrLo ; CPU:$C271 PRG:0271 ??
|
|
bcc Flow_C26D ; CPU:$C273 PRG:0273 ??
|
|
eor #$40 ; CPU:$C275 PRG:0275 ??
|
|
Flow_C26D:
|
|
sta $0200,x ; CPU:$C277 PRG:0277 ??
|
|
inx ; CPU:$C279 PRG:0279 ??
|
|
lda (MathResultLo),y ; CPU:$C27B PRG:027B ??
|
|
bit PlayerPoseFlags ; CPU:$C27D PRG:027D ??
|
|
bvs Flow_C27A ; CPU:$C27F PRG:027F ??
|
|
clc ; CPU:$C281 PRG:0281 ??
|
|
bcc Flow_C280 ; CPU:$C283 PRG:0283 ??
|
|
Flow_C27A:
|
|
eor #$FF ; CPU:$C285 PRG:0285 ??
|
|
sec ; CPU:$C287 PRG:0287 ??
|
|
sbc #$08 ; CPU:$C289 PRG:0289 ??
|
|
sec ; CPU:$C28B PRG:028B ??
|
|
Flow_C280:
|
|
adc RacketTargetY ; CPU:$C28D PRG:028D ??
|
|
iny ; CPU:$C28F PRG:028F ??
|
|
sta $0200,x ; CPU:$C291 PRG:0291 ??
|
|
inx ; CPU:$C293 PRG:0293 ??
|
|
lda (MathResultLo),y ; CPU:$C295 PRG:0295 ??
|
|
cmp #$AA ; CPU:$C297 PRG:0297 ??
|
|
bne Flow_C249 ; CPU:$C299 PRG:0299 ??
|
|
rts ; CPU:$C29B PRG:029B ??
|
|
|
|
; =============================================================================
|
|
; EngineRoutine_C28E
|
|
; CPU address: $C28E PRG offset: $028E
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
EngineRoutine_C28E:
|
|
asl a ; CPU:$C29D PRG:029D ??
|
|
sta MathOperandLo ; CPU:$C29F PRG:029F ??
|
|
lda #$00 ; CPU:$C2A1 PRG:02A1 ??
|
|
tay ; CPU:$C2A3 PRG:02A3 ??
|
|
rol a ; CPU:$C2A5 PRG:02A5 ??
|
|
sta MathOperandHi ; CPU:$C2A7 PRG:02A7 ??
|
|
jsr Add16BitZp12ToZp14 ; CPU:$C2A9 PRG:02A9 CA
|
|
lda (MathResultLo),y ; CPU:$C2AA PRG:02AA 8A
|
|
sta MathOperandLo ; CPU:$C2AB PRG:02AB 8D 16 40
|
|
iny ; CPU:$C2AE PRG:02AE 20 B2 C2
|
|
lda (MathResultLo),y ; CPU:$C2B1 PRG:02B1 E8
|
|
sta MathOperandHi ; CPU:$C2B2 PRG:02B2 A0 08
|
|
rts ; PRG $02A3 / CPU $C2A3 ; CPU:$C2B4 PRG:02B4 48
|
|
; =============================================================================
|
|
; ReadControllers
|
|
; CPU address: $C2A4 PRG offset: $02A4
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
ReadControllers:
|
|
ldx #$01 ; CPU:$C2B5 PRG:02B5 BD 16 40
|
|
stx JOY1 ; CPU:$C2B8 PRG:02B8 85 01
|
|
dex ; CPU:$C2BA PRG:02BA 4A
|
|
txa ; CPU:$C2BB PRG:02BB 05 01
|
|
sta JOY1 ; CPU:$C2BD PRG:02BD 4A
|
|
jsr EngineRoutine_C2B2 ; CPU:$C2BE PRG:02BE 68
|
|
inx ; CPU:$C2BF PRG:02BF 2A
|
|
|
|
; =============================================================================
|
|
; EngineRoutine_C2B2
|
|
; CPU address: $C2B2 PRG offset: $02B2
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
EngineRoutine_C2B2:
|
|
ldy #$08 ; CPU:$C2C0 PRG:02C0 88
|
|
Flow_C2B4:
|
|
pha ; CPU:$C2C1 PRG:02C1 D0 F1
|
|
lda JOY1,x ; CPU:$C2C3 PRG:02C3 86 01
|
|
sta WorkPtrLo ; CPU:$C2C5 PRG:02C5 06 01
|
|
lsr a ; CPU:$C2C7 PRG:02C7 A6 01
|
|
ora WorkPtrLo ; CPU:$C2C9 PRG:02C9 B4 1A
|
|
lsr a ; CPU:$C2CB PRG:02CB 84 01
|
|
pla ; CPU:$C2CD PRG:02CD 95 1A
|
|
rol a ; CPU:$C2CF PRG:02CF 95 1B
|
|
dey ; CPU:$C2D1 PRG:02D1 29 FF
|
|
bne Flow_C2B4 ; CPU:$C2D3 PRG:02D3 10 08
|
|
stx WorkPtrLo ; CPU:$C2D5 PRG:02D5 24 01
|
|
asl WorkPtrLo ; CPU:$C2D7 PRG:02D7 10 04
|
|
ldx WorkPtrLo ; CPU:$C2D9 PRG:02D9 29 7F
|
|
ldy ControllerHeld,x ; CPU:$C2DB PRG:02DB 95 1B
|
|
sty WorkPtrLo ; CPU:$C2DD PRG:02DD 85 02
|
|
sta ControllerHeld,x ; CPU:$C2DF PRG:02DF 24 02
|
|
sta Zp1B,x ; CPU:$C2E1 PRG:02E1 50 08
|
|
and #$FF ; CPU:$C2E3 PRG:02E3 24 01
|
|
bpl Flow_C2DD ; CPU:$C2E5 PRG:02E5 50 04
|
|
bit WorkPtrLo ; CPU:$C2E7 PRG:02E7 29 BF
|
|
bpl Flow_C2DD ; CPU:$C2E9 PRG:02E9 95 1B
|
|
and #$7F ; CPU:$C2EB PRG:02EB 60
|
|
sta Zp1B,x ; CPU:$C2EC PRG:02EC A5 31
|
|
Flow_C2DD:
|
|
sta WorkPtrHi ; CPU:$C2EE PRG:02EE F0 3F
|
|
bit WorkPtrHi ; CPU:$C2F0 PRG:02F0 A9 91
|
|
bvc FlowEntry_C2EB ; CPU:$C2F2 PRG:02F2 85 01
|
|
bit WorkPtrLo ; CPU:$C2F4 PRG:02F4 A9 05
|
|
bvc FlowEntry_C2EB ; CPU:$C2F6 PRG:02F6 85 02
|
|
and #$BF ; CPU:$C2F8 PRG:02F8 A5 09
|
|
sta Zp1B,x ; CPU:$C2FA PRG:02FA 29 FB
|
|
FlowEntry_C2EB:
|
|
rts ; PRG $02EB / CPU $C2EB ; CPU:$C2FC PRG:02FC 8D 00 20
|
|
; =============================================================================
|
|
; WritePpuBuffer
|
|
; CPU address: $C2EC PRG offset: $02EC
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
WritePpuBuffer:
|
|
lda PpuBufferReady ; CPU:$C2FF PRG:02FF 85 09
|
|
beq Flow_C32F ; CPU:$C301 PRG:0301 AE 02 20
|
|
lda #$91 ; CPU:$C304 PRG:0304 A0 00
|
|
sta WorkPtrLo ; CPU:$C306 PRG:0306 F0 19
|
|
lda #$05 ; CPU:$C308 PRG:0308 8D 06 20
|
|
sta WorkPtrHi ; CPU:$C30B PRG:030B C8
|
|
lda PpuCtrlShadow ; CPU:$C30C PRG:030C B1 01
|
|
and #$FB ; CPU:$C30E PRG:030E 8D 06 20
|
|
sta PPUCTRL ; CPU:$C311 PRG:0311 C8
|
|
sta PpuCtrlShadow ; CPU:$C312 PRG:0312 B1 01
|
|
ldx PPUSTATUS ; CPU:$C314 PRG:0314 29 3F
|
|
ldy #$00 ; CPU:$C316 PRG:0316 AA
|
|
beq Flow_C321 ; CPU:$C317 PRG:0317 C8
|
|
Flow_C308:
|
|
sta PPUADDR ; CPU:$C318 PRG:0318 B1 01
|
|
iny ; CPU:$C31A PRG:031A 8D 07 20
|
|
lda (WorkPtrLo),y ; CPU:$C31D PRG:031D CA
|
|
sta PPUADDR ; CPU:$C31E PRG:031E D0 F7
|
|
iny ; CPU:$C320 PRG:0320 C8
|
|
lda (WorkPtrLo),y ; CPU:$C321 PRG:0321 B1 01
|
|
and #$3F ; CPU:$C323 PRG:0323 D0 E3
|
|
tax ; CPU:$C325 PRG:0325 A9 00
|
|
Flow_C317:
|
|
iny ; CPU:$C327 PRG:0327 8D 90 05
|
|
lda (WorkPtrLo),y ; CPU:$C32A PRG:032A 8D 91 05
|
|
sta PPUDATA ; CPU:$C32D PRG:032D 85 31
|
|
dex ; CPU:$C32F PRG:032F 60
|
|
bne Flow_C317 ; CPU:$C330 PRG:0330 AD 02 20
|
|
iny ; CPU:$C333 PRG:0333 A5 09
|
|
Flow_C321:
|
|
lda (WorkPtrLo),y ; CPU:$C335 PRG:0335 29 FB
|
|
bne Flow_C308 ; CPU:$C337 PRG:0337 8D 00 20
|
|
lda #$00 ; CPU:$C33A PRG:033A 85 09
|
|
sta $0590 ; CPU:$C33C PRG:033C A9 1C
|
|
sta $0591 ; CPU:$C33E PRG:033E 18
|
|
sta PpuBufferReady ; CPU:$C33F PRG:033F 69 04
|
|
Flow_C32F:
|
|
rts ; CPU:$C341 PRG:0341 C6 02
|
|
Flow_C330:
|
|
lda PPUSTATUS ; CPU:$C343 PRG:0343 D0 FA
|
|
lda PpuCtrlShadow ; CPU:$C345 PRG:0345 85 03
|
|
and #$FB ; CPU:$C347 PRG:0347 8D 06 20
|
|
sta PPUCTRL ; CPU:$C34A PRG:034A A9 00
|
|
sta PpuCtrlShadow ; CPU:$C34C PRG:034C 8D 06 20
|
|
lda #$1C ; CPU:$C34F PRG:034F A2 04
|
|
clc ; CPU:$C351 PRG:0351 A0 00
|
|
Flow_C33F:
|
|
adc #$04 ; CPU:$C353 PRG:0353 A5 01
|
|
dec WorkPtrHi ; CPU:$C355 PRG:0355 8D 07 20
|
|
bne Flow_C33F ; CPU:$C358 PRG:0358 88
|
|
sta Zp03 ; CPU:$C359 PRG:0359 D0 FA
|
|
sta PPUADDR ; CPU:$C35B PRG:035B CA
|
|
lda #$00 ; CPU:$C35C PRG:035C D0 F7
|
|
sta PPUADDR ; CPU:$C35E PRG:035E A5 03
|
|
ldx #$04 ; CPU:$C360 PRG:0360 69 03
|
|
ldy #$00 ; CPU:$C362 PRG:0362 8D 06 20
|
|
lda WorkPtrLo ; CPU:$C365 PRG:0365 A9 C0
|
|
Flow_C355:
|
|
sta PPUDATA ; CPU:$C367 PRG:0367 8D 06 20
|
|
dey ; CPU:$C36A PRG:036A A0 40
|
|
bne Flow_C355 ; CPU:$C36C PRG:036C A9 00
|
|
dex ; CPU:$C36E PRG:036E 8D 07 20
|
|
bne Flow_C355 ; CPU:$C371 PRG:0371 88
|
|
lda Zp03 ; CPU:$C372 PRG:0372 D0 FA
|
|
adc #$03 ; CPU:$C374 PRG:0374 60
|
|
sta PPUADDR ; CPU:$C375 PRG:0375 A2 03
|
|
lda #$C0 ; CPU:$C377 PRG:0377 C6 20
|
|
sta PPUADDR ; CPU:$C379 PRG:0379 10 06
|
|
ldy #$40 ; CPU:$C37B PRG:037B A9 0A
|
|
lda #$00 ; CPU:$C37D PRG:037D 85 20
|
|
Flow_C36E:
|
|
sta PPUDATA ; CPU:$C37F PRG:037F A2 05
|
|
dey ; CPU:$C381 PRG:0381 B5 21
|
|
bne Flow_C36E ; CPU:$C383 PRG:0383 F0 02
|
|
rts ; PRG $0374 / CPU $C374 ; CPU:$C385 PRG:0385 D6 21
|
|
; =============================================================================
|
|
; UpdateTimers
|
|
; CPU address: $C375 PRG offset: $0375
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
UpdateTimers:
|
|
ldx #$03 ; CPU:$C387 PRG:0387 CA
|
|
dec Zp20 ; CPU:$C388 PRG:0388 10 F7
|
|
bpl Flow_C381 ; CPU:$C38A PRG:038A 60
|
|
lda #$0A ; CPU:$C38B PRG:038B 0A
|
|
sta Zp20 ; CPU:$C38C PRG:038C A8
|
|
ldx #$05 ; CPU:$C38D PRG:038D C8
|
|
Flow_C381:
|
|
lda Zp21,x ; CPU:$C38E PRG:038E 68
|
|
beq Flow_C387 ; CPU:$C38F PRG:038F 85 14
|
|
dec Zp21,x ; CPU:$C391 PRG:0391 68
|
|
Flow_C387:
|
|
dex ; CPU:$C392 PRG:0392 85 15
|
|
bpl Flow_C381 ; CPU:$C394 PRG:0394 B1 14
|
|
rts ; CPU:$C396 PRG:0396 AA
|
|
|
|
; =============================================================================
|
|
; DispatchInlineAddressTable
|
|
; CPU address: $C38B PRG offset: $038B
|
|
;
|
|
; Global description:
|
|
; Consumes the caller return address, selects a little-endian target from the inline table following JSR, and jumps indirectly to it.
|
|
;
|
|
; Parameters:
|
|
; A is the table index; an address table immediately follows the caller JSR.
|
|
;
|
|
; Returns:
|
|
; Tail-dispatches to the selected handler.
|
|
; =============================================================================
|
|
DispatchInlineAddressTable:
|
|
asl a ; CPU:$C397 PRG:0397 C8
|
|
tay ; CPU:$C398 PRG:0398 B1 14
|
|
iny ; CPU:$C39A PRG:039A 85 15
|
|
pla ; CPU:$C39C PRG:039C 86 14
|
|
sta MathResultLo ; CPU:$C39E PRG:039E 6C 14 00
|
|
pla ; CPU:$C3A1 PRG:03A1 ??
|
|
sta MathResultHi ; CPU:$C3A3 PRG:03A3 ??
|
|
lda (MathResultLo),y ; CPU:$C3A5 PRG:03A5 ??
|
|
tax ; CPU:$C3A7 PRG:03A7 ??
|
|
iny ; CPU:$C3A9 PRG:03A9 ??
|
|
lda (MathResultLo),y ; CPU:$C3AB PRG:03AB ??
|
|
sta MathResultHi ; CPU:$C3AD PRG:03AD ??
|
|
stx MathResultLo ; CPU:$C3AF PRG:03AF ??
|
|
jmp ($0014) ; CPU:$C3B1 PRG:03B1 ??
|
|
|
|
; =============================================================================
|
|
; Add16BitZp12ToZp14
|
|
; CPU address: $C3A1 PRG offset: $03A1
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
Add16BitZp12ToZp14:
|
|
pha ; CPU:$C3B3 PRG:03B3 ??
|
|
clc ; CPU:$C3B5 PRG:03B5 ??
|
|
lda MathResultLo ; CPU:$C3B7 PRG:03B7 ??
|
|
adc MathOperandLo ; CPU:$C3B9 PRG:03B9 ??
|
|
sta MathResultLo ; CPU:$C3BB PRG:03BB C8
|
|
lda MathResultHi ; CPU:$C3BC PRG:03BC B1 01
|
|
adc MathOperandHi ; CPU:$C3BE PRG:03BE 8D 06 20
|
|
sta MathResultHi ; CPU:$C3C1 PRG:03C1 C8
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $03AF-$03B0.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
EngineTable_C3AF:
|
|
.byte $68, $60 ; PRG $03AF / CPU $C3AF ; CPU:$C3C2 PRG:03C2 68 60
|
|
; =============================================================================
|
|
; DrawScreenData
|
|
; CPU address: $C3B1 PRG offset: $03B1
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
DrawScreenData:
|
|
stx WorkPtrLo ; CPU:$C3C4 PRG:03C4 0A
|
|
sty WorkPtrHi ; CPU:$C3C5 PRG:03C5 48
|
|
jmp UploadPointedPpuData ; CPU:$C3C6 PRG:03C6 A5 09
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $03B8-$03F3.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
EngineTable_C3B8:
|
|
.byte $8D, $06, $20, $C8, $B1, $01, $8D, $06, $20, $C8, $B1, $01, $0A, $48, $A5, $09 ; PRG $03B8 / CPU $C3B8 ; CPU:$C3C8 PRG:03C8 8D 06 20 C8 B1 01 8D 06 20 C8 B1 01 0A 48 A5 09
|
|
.byte $09, $04, $B0, $02, $29, $FB, $8D, $00, $20, $85, $09, $68, $0A, $90, $03, $09 ; PRG $03C8 / CPU $C3C8 ; CPU:$C3D8 PRG:03D8 09 04 B0 02 29 FB 8D 00 20 85 09 68 0A 90 03 09
|
|
.byte $02, $C8, $4A, $4A, $AA, $B0, $01, $C8, $B1, $01, $8D, $07, $20, $CA, $D0, $F5 ; PRG $03D8 / CPU $C3D8 ; CPU:$C3E8 PRG:03E8 02 C8 4A 4A AA B0 01 C8 B1 01 8D 07 20 CA D0 F5
|
|
.byte $38, $98, $65, $01, $85, $01, $A9, $00, $65, $02, $85, $02 ; PRG $03E8 / CPU $C3E8 ; CPU:$C3F8 PRG:03F8 38 98 65 01 85 01 A9 00 65 02 85 02
|
|
; =============================================================================
|
|
; UploadPointedPpuData
|
|
; CPU address: $C3F4 PRG offset: $03F4
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
UploadPointedPpuData:
|
|
ldx PPUSTATUS ; CPU:$C404 PRG:0404 ??
|
|
ldy #$00 ; CPU:$C406 PRG:0406 ??
|
|
lda (WorkPtrLo),y ; CPU:$C408 PRG:0408 68
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $03FB-$03FC.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
EngineTable_C3FB:
|
|
.byte $D0, $BB ; PRG $03FB / CPU $C3FB ; CPU:$C409 PRG:0409 D0 BB
|
|
; =============================================================================
|
|
; SetScroll
|
|
; CPU address: $C3FD PRG offset: $03FD
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
SetScroll:
|
|
pha ; CPU:$C40B PRG:040B ??
|
|
lda Zp1E ; CPU:$C40D PRG:040D A5 0A
|
|
sta PPUSCROLL ; CPU:$C40F PRG:040F 29 E7
|
|
lda Zp1F ; CPU:$C411 PRG:0411 8D 01 20
|
|
sta PPUSCROLL ; CPU:$C414 PRG:0414 60
|
|
pla ; CPU:$C415 PRG:0415 ??
|
|
rts ; CPU:$C417 PRG:0417 ??
|
|
|
|
; =============================================================================
|
|
; DisableRendering
|
|
; CPU address: $C40A PRG offset: $040A
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
DisableRendering:
|
|
jsr EngineRoutine_C422 ; CPU:$C419 PRG:0419 ??
|
|
lda PpuMaskShadow ; CPU:$C41B PRG:041B ??
|
|
and #$E7 ; CPU:$C41D PRG:041D ??
|
|
sta PPUMASK ; CPU:$C41F PRG:041F ??
|
|
rts ; CPU:$C421 PRG:0421 ??
|
|
|
|
; =============================================================================
|
|
; EnableRendering
|
|
; CPU address: $C415 PRG offset: $0415
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
EnableRendering:
|
|
jsr EngineRoutine_C422 ; CPU:$C423 PRG:0423 ??
|
|
lda PpuMaskShadow ; CPU:$C425 PRG:0425 ??
|
|
ora #$18 ; CPU:$C427 PRG:0427 A5 33
|
|
sta PPUMASK ; CPU:$C429 PRG:0429 F0 FC
|
|
sta PpuMaskShadow ; CPU:$C42B PRG:042B 60
|
|
rts ; CPU:$C42C PRG:042C ??
|
|
|
|
; =============================================================================
|
|
; EngineRoutine_C422
|
|
; CPU address: $C422 PRG offset: $0422
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
EngineRoutine_C422:
|
|
lda #$00 ; CPU:$C42E PRG:042E ??
|
|
sta NmiTriggerFlag ; CPU:$C430 PRG:0430 ??
|
|
nop ; CPU:$C432 PRG:0432 ??
|
|
lda NmiTriggerFlag ; CPU:$C434 PRG:0434 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $0429-$042A.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
EngineTable_C429:
|
|
.byte $F0, $FC ; PRG $0429 / CPU $C429 ; CPU:$C436 PRG:0436 F0 FC
|
|
GameState07_PauseOrTransition:
|
|
rts ; CPU:$C438 PRG:0438 ??
|
|
|
|
; =============================================================================
|
|
; EngineRoutine_C42C
|
|
; CPU address: $C42C PRG offset: $042C
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
EngineRoutine_C42C:
|
|
lda PpuMaskShadow ; CPU:$C43A PRG:043A ??
|
|
and #$EF ; CPU:$C43C PRG:043C ??
|
|
sta PPUMASK ; CPU:$C43E PRG:043E ??
|
|
sta PpuMaskShadow ; CPU:$C440 PRG:0440 ??
|
|
rts ; CPU:$C442 PRG:0442 ??
|
|
|
|
; =============================================================================
|
|
; EngineRoutine_C436
|
|
; CPU address: $C436 PRG offset: $0436
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
EngineRoutine_C436:
|
|
lda PpuMaskShadow ; CPU:$C444 PRG:0444 ??
|
|
ora #$10 ; CPU:$C446 PRG:0446 ??
|
|
sta PPUMASK ; CPU:$C448 PRG:0448 ??
|
|
sta PpuMaskShadow ; CPU:$C44A PRG:044A ??
|
|
rts ; CPU:$C44C PRG:044C ??
|
|
|
|
; =============================================================================
|
|
; WriteMetaspriteToOam
|
|
; CPU address: $C440 PRG offset: $0440
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
WriteMetaspriteToOam:
|
|
lda #$00 ; CPU:$C44E PRG:044E ??
|
|
sta Zp04 ; CPU:$C450 PRG:0450 ??
|
|
lda #$02 ; CPU:$C452 PRG:0452 ??
|
|
sta Zp05 ; CPU:$C454 PRG:0454 ??
|
|
ldy Zp03 ; CPU:$C456 PRG:0456 AD 00 05
|
|
dey ; CPU:$C459 PRG:0459 18
|
|
ldx Zp03 ; CPU:$C45A PRG:045A 69 0F
|
|
Flow_C44D:
|
|
lda (WorkPtrLo),y ; CPU:$C45C PRG:045C 8D 00 05
|
|
sta (Zp04),y ; CPU:$C45F PRG:045F AD 01 05
|
|
dey ; CPU:$C462 PRG:0462 69 11
|
|
dex ; CPU:$C464 PRG:0464 8D 01 05
|
|
bne Flow_C44D ; CPU:$C467 PRG:0467 4D 00 05
|
|
rts ; CPU:$C46A PRG:046A 18
|
|
|
|
; =============================================================================
|
|
; RollRng
|
|
; CPU address: $C456 PRG offset: $0456
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RollRng:
|
|
lda $0500 ; CPU:$C46B PRG:046B 10 01
|
|
clc ; CPU:$C46D PRG:046D 38
|
|
adc #$0F ; CPU:$C46E PRG:046E 6E 02 05
|
|
sta $0500 ; CPU:$C471 PRG:0471 6E 03 05
|
|
lda $0501 ; CPU:$C474 PRG:0474 AD 00 05
|
|
adc #$11 ; CPU:$C477 PRG:0477 60
|
|
sta $0501 ; CPU:$C478 PRG:0478 ??
|
|
eor $0500 ; CPU:$C47A PRG:047A ??
|
|
clc ; CPU:$C47C PRG:047C ??
|
|
bpl Flow_C46E ; CPU:$C47E PRG:047E ??
|
|
sec ; CPU:$C480 PRG:0480 ??
|
|
Flow_C46E:
|
|
ror $0502 ; CPU:$C482 PRG:0482 ??
|
|
ror $0503 ; CPU:$C484 PRG:0484 ??
|
|
lda $0500 ; CPU:$C486 PRG:0486 ??
|
|
rts ; CPU:$C488 PRG:0488 ??
|
|
|
|
; =============================================================================
|
|
; EngineRoutine_C478
|
|
; CPU address: $C478 PRG offset: $0478
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
EngineRoutine_C478:
|
|
lda #$01 ; CPU:$C48A PRG:048A ??
|
|
sta Zp0E ; CPU:$C48C PRG:048C ??
|
|
ldy BallYSubpixel ; CPU:$C48E PRG:048E ??
|
|
ldx BallYPosition ; CPU:$C490 PRG:0490 ??
|
|
lda #$79 ; CPU:$C492 PRG:0492 ??
|
|
jsr Multiply8By16 ; CPU:$C494 PRG:0494 ??
|
|
sty MathResultLo ; CPU:$C496 PRG:0496 ??
|
|
stx MathResultHi ; CPU:$C498 PRG:0498 ??
|
|
ldy BallYSubpixel ; CPU:$C49A PRG:049A ??
|
|
ldx BallYPosition ; CPU:$C49C PRG:049C ??
|
|
lda #$C7 ; CPU:$C49E PRG:049E ??
|
|
jsr Multiply8By16 ; CPU:$C4A0 PRG:04A0 ??
|
|
sty MathOperandLo ; CPU:$C4A2 PRG:04A2 ??
|
|
stx MathOperandHi ; CPU:$C4A4 PRG:04A4 ??
|
|
jmp Flow_C4A5 ; CPU:$C4A6 PRG:04A6 ??
|
|
|
|
; =============================================================================
|
|
; EngineRoutine_C499
|
|
; CPU address: $C499 PRG offset: $0499
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
EngineRoutine_C499:
|
|
lda #$00 ; CPU:$C4A8 PRG:04A8 ??
|
|
sta Zp0E ; CPU:$C4AA PRG:04AA ??
|
|
sta MathResultLo ; CPU:$C4AC PRG:04AC ??
|
|
sta MathResultHi ; CPU:$C4AE PRG:04AE ??
|
|
sta MathOperandLo ; CPU:$C4B0 PRG:04B0 ??
|
|
sta MathOperandHi ; CPU:$C4B2 PRG:04B2 ??
|
|
Flow_C4A5:
|
|
ldy Player2YSubpixel ; CPU:$C4B4 PRG:04B4 ??
|
|
sty AimMagnitude ; CPU:$C4B6 PRG:04B6 ??
|
|
lda Player2YPosition ; CPU:$C4B8 PRG:04B8 ??
|
|
sec ; CPU:$C4BA PRG:04BA ??
|
|
sbc #$10 ; CPU:$C4BC PRG:04BC ??
|
|
sta AimDirection ; CPU:$C4BE PRG:04BE ??
|
|
tax ; CPU:$C4C0 PRG:04C0 ??
|
|
lda #$94 ; CPU:$C4C2 PRG:04C2 ??
|
|
jsr Multiply8By16 ; CPU:$C4C4 PRG:04C4 ??
|
|
clc ; CPU:$C4C6 PRG:04C6 ??
|
|
tya ; CPU:$C4C8 PRG:04C8 ??
|
|
adc #$71 ; CPU:$C4CA PRG:04CA ??
|
|
tay ; CPU:$C4CC PRG:04CC ??
|
|
txa ; CPU:$C4CE PRG:04CE ??
|
|
adc #$0E ; CPU:$C4D0 PRG:04D0 ??
|
|
tax ; CPU:$C4D2 PRG:04D2 ??
|
|
tya ; CPU:$C4D4 PRG:04D4 ??
|
|
sec ; CPU:$C4D6 PRG:04D6 ??
|
|
sbc MathResultLo ; CPU:$C4D8 PRG:04D8 ??
|
|
sta MathVectorXHi ; CPU:$C4DA PRG:04DA ??
|
|
txa ; CPU:$C4DC PRG:04DC ??
|
|
sbc MathResultHi ; CPU:$C4DE PRG:04DE ??
|
|
cmp #$50 ; CPU:$C4E0 PRG:04E0 ??
|
|
ror a ; CPU:$C4E2 PRG:04E2 ??
|
|
sta MathVectorXLo ; CPU:$C4E4 PRG:04E4 ??
|
|
ror MathVectorXHi ; CPU:$C4E6 PRG:04E6 ??
|
|
ldy AimMagnitude ; CPU:$C4E8 PRG:04E8 ??
|
|
ldx AimDirection ; CPU:$C4EA PRG:04EA ??
|
|
lda #$A0 ; CPU:$C4EC PRG:04EC ??
|
|
jsr Multiply8By16 ; CPU:$C4EE PRG:04EE ??
|
|
clc ; CPU:$C4F0 PRG:04F0 ??
|
|
tya ; CPU:$C4F2 PRG:04F2 ??
|
|
adc MathOperandLo ; CPU:$C4F4 PRG:04F4 ??
|
|
tay ; CPU:$C4F6 PRG:04F6 ??
|
|
txa ; CPU:$C4F8 PRG:04F8 ??
|
|
adc MathOperandHi ; CPU:$C4FA PRG:04FA ??
|
|
tax ; CPU:$C4FC PRG:04FC ??
|
|
jsr EngineRoutine_C5F8 ; CPU:$C4FE PRG:04FE ??
|
|
sbc #$00 ; CPU:$C500 PRG:0500 ??
|
|
eor #$7F ; CPU:$C502 PRG:0502 ??
|
|
sta RacketTargetX ; CPU:$C504 PRG:0504 ??
|
|
lda Zp0E ; CPU:$C506 PRG:0506 ??
|
|
beq Flow_C4F6 ; CPU:$C508 PRG:0508 ??
|
|
lda Player2YPosition ; CPU:$C50A PRG:050A ??
|
|
cmp #$06 ; CPU:$C50C PRG:050C ??
|
|
bcs Flow_C504 ; CPU:$C50E PRG:050E ??
|
|
bcc Flow_C500 ; CPU:$C510 PRG:0510 ??
|
|
Flow_C4F6:
|
|
lda Player2YSubpixel ; CPU:$C512 PRG:0512 ??
|
|
cmp #$40 ; CPU:$C514 PRG:0514 ??
|
|
lda Player2YPosition ; CPU:$C516 PRG:0516 ??
|
|
sbc #$08 ; CPU:$C518 PRG:0518 ??
|
|
bcs Flow_C504 ; CPU:$C51A PRG:051A ??
|
|
Flow_C500:
|
|
ldx #$FF ; CPU:$C51C PRG:051C ??
|
|
stx RacketTargetX ; CPU:$C51E PRG:051E ??
|
|
Flow_C504:
|
|
ldy Player1YSubpixel ; CPU:$C520 PRG:0520 ??
|
|
lda Player1YPosition ; CPU:$C522 PRG:0522 ??
|
|
sec ; CPU:$C524 PRG:0524 ??
|
|
sbc #$10 ; CPU:$C526 PRG:0526 ??
|
|
tax ; CPU:$C528 PRG:0528 ??
|
|
jsr EngineRoutine_C5F8 ; CPU:$C52A PRG:052A ??
|
|
eor #$80 ; CPU:$C52C PRG:052C ??
|
|
sta RacketTargetY ; CPU:$C52E PRG:052E ??
|
|
rts ; CPU:$C530 PRG:0530 ??
|
|
|
|
; =============================================================================
|
|
; IntegrateObjectMotion
|
|
; CPU address: $C514 PRG offset: $0514
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
IntegrateObjectMotion:
|
|
lda #$0F ; CPU:$C532 PRG:0532 ??
|
|
Flow_C516:
|
|
sec ; CPU:$C534 PRG:0534 ??
|
|
sbc #$05 ; CPU:$C536 PRG:0536 ??
|
|
tax ; CPU:$C538 PRG:0538 ??
|
|
ldy #$00 ; CPU:$C53A PRG:053A ??
|
|
lda Player1MotionControl,x ; CPU:$C53C PRG:053C ??
|
|
asl a ; CPU:$C53E PRG:053E ??
|
|
bcc Flow_C525 ; CPU:$C540 PRG:0540 ??
|
|
dec Player1XPosition,x ; CPU:$C542 PRG:0542 ??
|
|
dec Player1XPosition,x ; CPU:$C544 PRG:0544 ??
|
|
Flow_C525:
|
|
asl a ; CPU:$C546 PRG:0546 ??
|
|
bcc Flow_C52A ; CPU:$C548 PRG:0548 ??
|
|
inc Player1XPosition,x ; CPU:$C54A PRG:054A ??
|
|
Flow_C52A:
|
|
clc ; CPU:$C54C PRG:054C ??
|
|
adc Player1XSubpixel,x ; CPU:$C54E PRG:054E ??
|
|
sta Player1XSubpixel,x ; CPU:$C550 PRG:0550 ??
|
|
tya ; CPU:$C552 PRG:0552 ??
|
|
adc Player1XPosition,x ; CPU:$C554 PRG:0554 ??
|
|
sta Player1XPosition,x ; CPU:$C556 PRG:0556 ??
|
|
bpl Flow_C537 ; CPU:$C558 PRG:0558 ??
|
|
dey ; CPU:$C55A PRG:055A ??
|
|
Flow_C537:
|
|
asl MathResultHi ; CPU:$C55C PRG:055C ??
|
|
adc Player1YSubpixel,x ; CPU:$C55E PRG:055E ??
|
|
sta Player1YSubpixel,x ; CPU:$C560 PRG:0560 ??
|
|
tya ; CPU:$C562 PRG:0562 ??
|
|
adc Player1YPosition,x ; CPU:$C564 PRG:0564 ??
|
|
sta Player1YPosition,x ; CPU:$C566 PRG:0566 ??
|
|
txa ; CPU:$C568 PRG:0568 ??
|
|
bne Flow_C516 ; CPU:$C56A PRG:056A ??
|
|
lda BallYPosition ; CPU:$C56C PRG:056C ??
|
|
bpl Flow_C5B7 ; CPU:$C56E PRG:056E ??
|
|
inc RallyPhase ; CPU:$C570 PRG:0570 ??
|
|
lda RallyPhase ; CPU:$C572 PRG:0572 ??
|
|
cmp #$03 ; CPU:$C574 PRG:0574 ??
|
|
bcs Flow_C559 ; CPU:$C576 PRG:0576 ??
|
|
lda #$01 ; CPU:$C578 PRG:0578 ??
|
|
sta AudioRequestFlags3 ; CPU:$C57A PRG:057A ??
|
|
lda #$00 ; CPU:$C57C PRG:057C ??
|
|
sta BallBounceState ; CPU:$C57E PRG:057E ??
|
|
Flow_C559:
|
|
lda #$0A ; CPU:$C580 PRG:0580 ??
|
|
Flow_C55B:
|
|
sec ; CPU:$C582 PRG:0582 ??
|
|
sbc #$05 ; CPU:$C584 PRG:0584 ??
|
|
tax ; CPU:$C586 PRG:0586 ??
|
|
lda Player1XPosition,x ; CPU:$C588 PRG:0588 ??
|
|
cmp #$80 ; CPU:$C58A PRG:058A ??
|
|
ror a ; CPU:$C58C PRG:058C ??
|
|
sta Player1XPosition,x ; CPU:$C58E PRG:058E ??
|
|
ror Player1XSubpixel,x ; CPU:$C590 PRG:0590 ??
|
|
cmp #$80 ; CPU:$C592 PRG:0592 ??
|
|
ror a ; CPU:$C594 PRG:0594 ??
|
|
tay ; CPU:$C596 PRG:0596 ??
|
|
lda Player1XSubpixel,x ; CPU:$C598 PRG:0598 ??
|
|
ror a ; CPU:$C59A PRG:059A ??
|
|
clc ; CPU:$C59C PRG:059C ??
|
|
adc Player1XSubpixel,x ; CPU:$C59E PRG:059E ??
|
|
sta Player1XSubpixel,x ; CPU:$C5A0 PRG:05A0 ??
|
|
tya ; CPU:$C5A2 PRG:05A2 ??
|
|
adc Player1XPosition,x ; CPU:$C5A4 PRG:05A4 ??
|
|
sta Player1XPosition,x ; CPU:$C5A6 PRG:05A6 ??
|
|
txa ; CPU:$C5A8 PRG:05A8 ??
|
|
bne Flow_C55B ; CPU:$C5AA PRG:05AA ??
|
|
lda BallXPosition ; CPU:$C5AC PRG:05AC ??
|
|
cmp #$80 ; CPU:$C5AE PRG:05AE ??
|
|
ror a ; CPU:$C5B0 PRG:05B0 ??
|
|
sta BallXPosition ; CPU:$C5B2 PRG:05B2 ??
|
|
ror BallXSubpixel ; CPU:$C5B4 PRG:05B4 ??
|
|
ldy BallXSubpixel ; CPU:$C5B6 PRG:05B6 ??
|
|
sty Zp10 ; CPU:$C5B8 PRG:05B8 ??
|
|
cmp #$80 ; CPU:$C5BA PRG:05BA ??
|
|
ror a ; CPU:$C5BC PRG:05BC ??
|
|
ror Zp10 ; CPU:$C5BE PRG:05BE ??
|
|
cmp #$80 ; CPU:$C5C0 PRG:05C0 ??
|
|
ror a ; CPU:$C5C2 PRG:05C2 ??
|
|
tay ; CPU:$C5C4 PRG:05C4 ??
|
|
lda Zp10 ; CPU:$C5C6 PRG:05C6 ??
|
|
ror a ; CPU:$C5C8 PRG:05C8 ??
|
|
clc ; CPU:$C5CA PRG:05CA ??
|
|
adc BallXSubpixel ; CPU:$C5CC PRG:05CC ??
|
|
sta BallXSubpixel ; CPU:$C5CE PRG:05CE ??
|
|
tya ; CPU:$C5D0 PRG:05D0 ??
|
|
adc BallXPosition ; CPU:$C5D2 PRG:05D2 ??
|
|
sta BallXPosition ; CPU:$C5D4 PRG:05D4 ??
|
|
ldy #$00 ; CPU:$C5D6 PRG:05D6 ??
|
|
tya ; CPU:$C5D8 PRG:05D8 ??
|
|
sec ; CPU:$C5DA PRG:05DA ??
|
|
sbc BallYSubpixel ; CPU:$C5DC PRG:05DC ??
|
|
sta BallYSubpixel ; CPU:$C5DE PRG:05DE ??
|
|
tya ; CPU:$C5E0 PRG:05E0 ??
|
|
sbc BallYPosition ; CPU:$C5E2 PRG:05E2 ??
|
|
sta BallYPosition ; CPU:$C5E4 PRG:05E4 ??
|
|
tya ; CPU:$C5E6 PRG:05E6 ??
|
|
sec ; CPU:$C5E8 PRG:05E8 ??
|
|
sbc BallXSubpixel ; CPU:$C5EA PRG:05EA ??
|
|
sta BallXSubpixel ; CPU:$C5EC PRG:05EC ??
|
|
tya ; CPU:$C5EE PRG:05EE ??
|
|
sbc BallXPosition ; CPU:$C5F0 PRG:05F0 ??
|
|
sta BallXPosition ; CPU:$C5F2 PRG:05F2 ??
|
|
Flow_C5B7:
|
|
lda BallYSubpixel ; CPU:$C5F4 PRG:05F4 ??
|
|
sta BallHeight ; CPU:$C5F6 PRG:05F6 ??
|
|
lda BallYPosition ; CPU:$C5F8 PRG:05F8 ??
|
|
lsr a ; CPU:$C5FA PRG:05FA ??
|
|
ror BallHeight ; CPU:$C5FC PRG:05FC ??
|
|
lsr a ; CPU:$C5FE PRG:05FE ??
|
|
ror BallHeight ; CPU:$C600 PRG:0600 ??
|
|
cmp #$00 ; CPU:$C602 PRG:0602 ??
|
|
beq Flow_C5CB ; CPU:$C604 PRG:0604 ??
|
|
lda #$FF ; CPU:$C606 PRG:0606 ??
|
|
sta BallHeight ; CPU:$C608 PRG:0608 ??
|
|
Flow_C5CB:
|
|
rts ; CPU:$C60A PRG:060A ??
|
|
|
|
; =============================================================================
|
|
; Multiply8By16
|
|
; CPU address: $C5CC PRG offset: $05CC
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
Multiply8By16:
|
|
sty Zp10 ; CPU:$C60C PRG:060C ??
|
|
stx Zp11 ; CPU:$C60E PRG:060E ??
|
|
sta Zp16 ; CPU:$C610 PRG:0610 ??
|
|
lda #$00 ; CPU:$C612 PRG:0612 ??
|
|
sta Zp17 ; CPU:$C614 PRG:0614 ??
|
|
sta Zp18 ; CPU:$C616 PRG:0616 ??
|
|
ldx #$08 ; CPU:$C618 PRG:0618 ??
|
|
Flow_C5DA:
|
|
ror Zp16 ; CPU:$C61A PRG:061A ??
|
|
bcc Flow_C5EB ; CPU:$C61C PRG:061C ??
|
|
clc ; CPU:$C61E PRG:061E ??
|
|
lda Zp17 ; CPU:$C620 PRG:0620 ??
|
|
adc Zp10 ; CPU:$C622 PRG:0622 ??
|
|
sta Zp17 ; CPU:$C624 PRG:0624 ??
|
|
lda Zp18 ; CPU:$C626 PRG:0626 ??
|
|
adc Zp11 ; CPU:$C628 PRG:0628 ??
|
|
sta Zp18 ; CPU:$C62A PRG:062A ??
|
|
Flow_C5EB:
|
|
asl a ; CPU:$C62C PRG:062C ??
|
|
ror Zp18 ; CPU:$C62E PRG:062E ??
|
|
ror Zp17 ; CPU:$C630 PRG:0630 ??
|
|
dex ; CPU:$C632 PRG:0632 ??
|
|
bne Flow_C5DA ; CPU:$C634 PRG:0634 ??
|
|
ldy Zp17 ; CPU:$C636 PRG:0636 ??
|
|
ldx Zp18 ; CPU:$C638 PRG:0638 ??
|
|
rts ; CPU:$C63A PRG:063A ??
|
|
|
|
; =============================================================================
|
|
; EngineRoutine_C5F8
|
|
; CPU address: $C5F8 PRG offset: $05F8
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
EngineRoutine_C5F8:
|
|
sty Zp17 ; CPU:$C63C PRG:063C ??
|
|
stx Zp18 ; CPU:$C63E PRG:063E ??
|
|
lda #$00 ; CPU:$C640 PRG:0640 ??
|
|
sta Zp16 ; CPU:$C642 PRG:0642 ??
|
|
ldx #$07 ; CPU:$C644 PRG:0644 ??
|
|
clc ; CPU:$C646 PRG:0646 ??
|
|
lda Zp17 ; CPU:$C648 PRG:0648 ??
|
|
adc MathVectorXHi ; CPU:$C64A PRG:064A ??
|
|
tay ; CPU:$C64C PRG:064C ??
|
|
lda Zp18 ; CPU:$C64E PRG:064E ??
|
|
adc MathVectorXLo ; CPU:$C650 PRG:0650 ??
|
|
Flow_C60C:
|
|
bcc Flow_C612 ; CPU:$C652 PRG:0652 ??
|
|
sty Zp17 ; CPU:$C654 PRG:0654 ??
|
|
sta Zp18 ; CPU:$C656 PRG:0656 ??
|
|
Flow_C612:
|
|
rol Zp16 ; CPU:$C658 PRG:0658 ??
|
|
rol Zp17 ; CPU:$C65A PRG:065A ??
|
|
rol Zp18 ; CPU:$C65C PRG:065C ??
|
|
sec ; CPU:$C65E PRG:065E ??
|
|
lda Zp17 ; CPU:$C660 PRG:0660 ??
|
|
sbc MathVectorXHi ; CPU:$C662 PRG:0662 ??
|
|
tay ; CPU:$C664 PRG:0664 ??
|
|
lda Zp18 ; CPU:$C666 PRG:0666 ??
|
|
sbc MathVectorXLo ; CPU:$C668 PRG:0668 ??
|
|
dex ; CPU:$C66A PRG:066A ??
|
|
bpl Flow_C60C ; CPU:$C66C PRG:066C ??
|
|
bcs Flow_C628 ; CPU:$C66E PRG:066E ??
|
|
dex ; CPU:$C670 PRG:0670 ??
|
|
Flow_C628:
|
|
lda Zp16 ; CPU:$C672 PRG:0672 ??
|
|
rts ; CPU:$C674 PRG:0674 ??
|
|
|
|
; =============================================================================
|
|
; EngineRoutine_C62B
|
|
; CPU address: $C62B PRG offset: $062B
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
EngineRoutine_C62B:
|
|
lda #$00 ; CPU:$C676 PRG:0676 ??
|
|
sta ProjectedXLo ; CPU:$C678 PRG:0678 ??
|
|
sta ProjectedXHi ; CPU:$C67A PRG:067A ??
|
|
sta ProjectedYLo ; CPU:$C67C PRG:067C ??
|
|
sta ProjectedYHi ; CPU:$C67E PRG:067E ??
|
|
sta MathCarryByte ; CPU:$C680 PRG:0680 ??
|
|
ldx #$07 ; CPU:$C682 PRG:0682 ??
|
|
Flow_C639:
|
|
ror MathVectorYHi ; CPU:$C684 PRG:0684 ??
|
|
bcc Flow_C64C ; CPU:$C686 PRG:0686 ??
|
|
clc ; CPU:$C688 PRG:0688 ??
|
|
ldy #$02 ; CPU:$C68A PRG:068A ??
|
|
Flow_C640:
|
|
lda $009D,y ; CPU:$C68C PRG:068C ??
|
|
adc $0097,y ; CPU:$C68E PRG:068E ??
|
|
sta $009D,y ; CPU:$C690 PRG:0690 ??
|
|
dey ; CPU:$C692 PRG:0692 ??
|
|
bpl Flow_C640 ; CPU:$C694 PRG:0694 ??
|
|
Flow_C64C:
|
|
asl MathVectorXLo ; CPU:$C696 PRG:0696 ??
|
|
rol MathVectorXHi ; CPU:$C698 PRG:0698 ??
|
|
rol MathCarryByte ; CPU:$C69A PRG:069A ??
|
|
dex ; CPU:$C69C PRG:069C ??
|
|
bpl Flow_C639 ; CPU:$C69E PRG:069E ??
|
|
lda MathVectorXHi ; CPU:$C6A0 PRG:06A0 ??
|
|
sta MathVectorXLo ; CPU:$C6A2 PRG:06A2 ??
|
|
lda MathCarryByte ; CPU:$C6A4 PRG:06A4 ??
|
|
sta MathVectorXHi ; CPU:$C6A6 PRG:06A6 ??
|
|
lda #$00 ; CPU:$C6A8 PRG:06A8 ??
|
|
sta MathCarryByte ; CPU:$C6AA PRG:06AA ??
|
|
ldx #$07 ; CPU:$C6AC PRG:06AC ??
|
|
Flow_C663:
|
|
ror MathVectorYLo ; CPU:$C6AE PRG:06AE ??
|
|
bcc Flow_C67A ; CPU:$C6B0 PRG:06B0 ??
|
|
clc ; CPU:$C6B2 PRG:06B2 ??
|
|
ldy #$02 ; CPU:$C6B4 PRG:06B4 ??
|
|
Flow_C66A:
|
|
lda $009E,y ; CPU:$C6B6 PRG:06B6 ??
|
|
adc $0097,y ; CPU:$C6B8 PRG:06B8 ??
|
|
sta $009E,y ; CPU:$C6BA PRG:06BA ??
|
|
dey ; CPU:$C6BC PRG:06BC ??
|
|
bpl Flow_C66A ; CPU:$C6BE PRG:06BE ??
|
|
bcc Flow_C67A ; CPU:$C6C0 PRG:06C0 ??
|
|
inc ProjectedXLo ; CPU:$C6C2 PRG:06C2 ??
|
|
Flow_C67A:
|
|
asl MathVectorXLo ; CPU:$C6C4 PRG:06C4 ??
|
|
rol MathVectorXHi ; CPU:$C6C6 PRG:06C6 ??
|
|
rol MathCarryByte ; CPU:$C6C8 PRG:06C8 ??
|
|
dex ; CPU:$C6CA PRG:06CA ??
|
|
bpl Flow_C663 ; CPU:$C6CC PRG:06CC ??
|
|
rts ; CPU:$C6CE PRG:06CE ??
|
|
|
|
; =============================================================================
|
|
; EngineRoutine_C684
|
|
; CPU address: $C684 PRG offset: $0684
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
EngineRoutine_C684:
|
|
lda #$00 ; CPU:$C6D0 PRG:06D0 ??
|
|
sta MathVectorYHi ; CPU:$C6D2 PRG:06D2 ??
|
|
sta MathVectorYLo ; CPU:$C6D4 PRG:06D4 ??
|
|
sta MathVectorXResult ; CPU:$C6D6 PRG:06D6 ??
|
|
ldx #$07 ; CPU:$C6D8 PRG:06D8 ??
|
|
Flow_C68E:
|
|
lsr MathVectorXHi ; CPU:$C6DA PRG:06DA ??
|
|
ror MathVectorXLo ; CPU:$C6DC PRG:06DC ??
|
|
ror MathVectorXResult ; CPU:$C6DE PRG:06DE ??
|
|
sec ; CPU:$C6E0 PRG:06E0 ??
|
|
ldy #$02 ; CPU:$C6E2 PRG:06E2 ??
|
|
Flow_C697:
|
|
lda $009D,y ; CPU:$C6E4 PRG:06E4 ??
|
|
sbc $0098,y ; CPU:$C6E6 PRG:06E6 ??
|
|
sta $00A1,y ; CPU:$C6E8 PRG:06E8 ??
|
|
dey ; CPU:$C6EA PRG:06EA ??
|
|
bpl Flow_C697 ; CPU:$C6EC PRG:06EC ??
|
|
bcc Flow_C6B1 ; CPU:$C6EE PRG:06EE ??
|
|
ldy #$02 ; CPU:$C6F0 PRG:06F0 ??
|
|
Flow_C6A7:
|
|
lda $00A1,y ; CPU:$C6F2 PRG:06F2 ??
|
|
sta $009D,y ; CPU:$C6F4 PRG:06F4 ??
|
|
dey ; CPU:$C6F6 PRG:06F6 ??
|
|
bpl Flow_C6A7 ; CPU:$C6F8 PRG:06F8 ??
|
|
sec ; CPU:$C6FA PRG:06FA ??
|
|
Flow_C6B1:
|
|
rol MathVectorYHi ; CPU:$C6FC PRG:06FC ??
|
|
dex ; CPU:$C6FE PRG:06FE ??
|
|
bpl Flow_C68E ; CPU:$C700 PRG:0700 ??
|
|
lda MathVectorXLo ; CPU:$C702 PRG:0702 ??
|
|
sta MathVectorXHi ; CPU:$C704 PRG:0704 ??
|
|
lda MathVectorXResult ; CPU:$C706 PRG:0706 ??
|
|
sta MathVectorXLo ; CPU:$C708 PRG:0708 ??
|
|
lda #$00 ; CPU:$C70A PRG:070A ??
|
|
sta MathVectorXResult ; CPU:$C70C PRG:070C ??
|
|
ldx #$07 ; CPU:$C70E PRG:070E ??
|
|
Flow_C6C4:
|
|
lsr MathVectorXHi ; CPU:$C710 PRG:0710 ??
|
|
ror MathVectorXLo ; CPU:$C712 PRG:0712 ??
|
|
ror MathVectorXResult ; CPU:$C714 PRG:0714 ??
|
|
sec ; CPU:$C716 PRG:0716 ??
|
|
ldy #$02 ; CPU:$C718 PRG:0718 ??
|
|
Flow_C6CD:
|
|
lda $009E,y ; CPU:$C71A PRG:071A ??
|
|
sbc $0098,y ; CPU:$C71C PRG:071C ??
|
|
sta $00A1,y ; CPU:$C71E PRG:071E ??
|
|
dey ; CPU:$C720 PRG:0720 ??
|
|
bpl Flow_C6CD ; CPU:$C722 PRG:0722 ??
|
|
bcc Flow_C6E7 ; CPU:$C724 PRG:0724 ??
|
|
ldy #$02 ; CPU:$C726 PRG:0726 ??
|
|
Flow_C6DD:
|
|
lda $00A1,y ; CPU:$C728 PRG:0728 ??
|
|
sta $009E,y ; CPU:$C72A PRG:072A ??
|
|
dey ; CPU:$C72C PRG:072C ??
|
|
bpl Flow_C6DD ; CPU:$C72E PRG:072E ??
|
|
sec ; CPU:$C730 PRG:0730 ??
|
|
Flow_C6E7:
|
|
rol MathVectorYLo ; CPU:$C732 PRG:0732 ??
|
|
dex ; CPU:$C734 PRG:0734 ??
|
|
bpl Flow_C6C4 ; CPU:$C736 PRG:0736 ??
|
|
rts ; CPU:$C738 PRG:0738 ??
|
|
|
|
; =============================================================================
|
|
; EngineRoutine_C6ED
|
|
; CPU address: $C6ED PRG offset: $06ED
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
EngineRoutine_C6ED:
|
|
lda MathVectorYHi ; CPU:$C73A PRG:073A ??
|
|
sta SignedAimDelta ; CPU:$C73C PRG:073C ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $06F1-$06F2.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
EngineTable_C6F1:
|
|
.byte $10, $11 ; PRG $06F1 / CPU $C6F1 ; CPU:$C73E PRG:073E 10 11
|
|
; =============================================================================
|
|
; EngineRoutine_C6F3
|
|
; CPU address: $C6F3 PRG offset: $06F3
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
EngineRoutine_C6F3:
|
|
lda MathVectorYLo ; CPU:$C740 PRG:0740 ??
|
|
eor #$FF ; CPU:$C742 PRG:0742 ??
|
|
sec ; CPU:$C744 PRG:0744 ??
|
|
adc #$00 ; CPU:$C746 PRG:0746 ??
|
|
sta MathVectorYLo ; CPU:$C748 PRG:0748 ??
|
|
lda MathVectorYHi ; CPU:$C74A PRG:074A ??
|
|
eor #$FF ; CPU:$C74C PRG:074C ??
|
|
adc #$00 ; CPU:$C74E PRG:074E ??
|
|
sta MathVectorYHi ; CPU:$C750 PRG:0750 ??
|
|
rts ; CPU:$C752 PRG:0752 ??
|
|
|
|
; =============================================================================
|
|
; MatchRoutine_C705
|
|
; CPU address: $C705 PRG offset: $0705
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
MatchRoutine_C705:
|
|
lda SignedAimDelta ; CPU:$C754 PRG:0754 ??
|
|
bmi EngineRoutine_C6F3 ; CPU:$C756 PRG:0756 ??
|
|
rts ; PRG $0709 / CPU $C709 ; CPU:$C758 PRG:0758 ??
|
|
GameState00_InitializeMatch:
|
|
ldy PendingStateFlag ; CPU:$C75A PRG:075A ??
|
|
bne Flow_C71B ; CPU:$C75C PRG:075C ??
|
|
jsr ClearOneNametable ; CPU:$C75E PRG:075E ??
|
|
jsr RenderRoutine_ED41 ; CPU:$C760 PRG:0760 ??
|
|
lda #$00 ; CPU:$C762 PRG:0762 ??
|
|
sta PaletteUpdateMode ; CPU:$C764 PRG:0764 ??
|
|
inc PendingStateFlag ; CPU:$C766 PRG:0766 ??
|
|
rts ; CPU:$C768 PRG:0768 ??
|
|
Flow_C71B:
|
|
dey ; CPU:$C76A PRG:076A ??
|
|
bne Flow_C739 ; CPU:$C76C PRG:076C ??
|
|
jsr RenderRoutine_ED4D ; CPU:$C76E PRG:076E ??
|
|
jsr HideAllSprites ; CPU:$C770 PRG:0770 ??
|
|
lda #$88 ; CPU:$C772 PRG:0772 ??
|
|
sta WorkPtrLo ; CPU:$C774 PRG:0774 ??
|
|
lda #$F2 ; CPU:$C776 PRG:0776 ??
|
|
sta WorkPtrHi ; CPU:$C778 PRG:0778 ??
|
|
lda #$04 ; CPU:$C77A PRG:077A ??
|
|
sta Zp03 ; CPU:$C77C PRG:077C ??
|
|
jsr WriteMetaspriteToOam ; CPU:$C77E PRG:077E ??
|
|
jsr MatchRoutine_C77A ; CPU:$C780 PRG:0780 ??
|
|
inc PendingStateFlag ; CPU:$C782 PRG:0782 ??
|
|
rts ; CPU:$C784 PRG:0784 ??
|
|
Flow_C739:
|
|
dey ; CPU:$C786 PRG:0786 ??
|
|
bne Flow_C742 ; CPU:$C788 PRG:0788 ??
|
|
jsr EnableRendering ; CPU:$C78A PRG:078A ??
|
|
inc PendingStateFlag ; CPU:$C78C PRG:078C ??
|
|
rts ; CPU:$C78E PRG:078E ??
|
|
Flow_C742:
|
|
dey ; CPU:$C790 PRG:0790 ??
|
|
bne Flow_C752 ; CPU:$C792 PRG:0792 ??
|
|
lda ControllerHeld ; CPU:$C794 PRG:0794 ??
|
|
and #$10 ; CPU:$C796 PRG:0796 ??
|
|
bne Flow_C751 ; CPU:$C798 PRG:0798 ??
|
|
lda #$01 ; CPU:$C79A PRG:079A ??
|
|
sta StateTransitionFlag ; CPU:$C79C PRG:079C ??
|
|
inc PendingStateFlag ; CPU:$C79E PRG:079E ??
|
|
Flow_C751:
|
|
rts ; CPU:$C7A0 PRG:07A0 ??
|
|
Flow_C752:
|
|
lda ControllerHeld ; CPU:$C7A2 PRG:07A2 ??
|
|
and #$10 ; CPU:$C7A4 PRG:07A4 ??
|
|
bne Flow_C78C ; CPU:$C7A6 PRG:07A6 ??
|
|
lda ControllerHeld ; CPU:$C7A8 PRG:07A8 ??
|
|
and #$03 ; CPU:$C7AA PRG:07AA ??
|
|
beq Flow_C787 ; CPU:$C7AC PRG:07AC ??
|
|
ldy StateTransitionFlag ; CPU:$C7AE PRG:07AE ??
|
|
bne Flow_C786 ; CPU:$C7B0 PRG:07B0 ??
|
|
inc StateTransitionFlag ; CPU:$C7B2 PRG:07B2 ??
|
|
ldy Zp3A ; CPU:$C7B4 PRG:07B4 ??
|
|
and #$02 ; CPU:$C7B6 PRG:07B6 ??
|
|
bne Flow_C773 ; CPU:$C7B8 PRG:07B8 ??
|
|
iny ; CPU:$C7BA PRG:07BA ??
|
|
cpy #$05 ; CPU:$C7BC PRG:07BC ??
|
|
bne FlowEntry_C778 ; CPU:$C7BE PRG:07BE ??
|
|
ldy #$00 ; CPU:$C7C0 PRG:07C0 ??
|
|
beq FlowEntry_C778 ; CPU:$C7C2 PRG:07C2 ??
|
|
Flow_C773:
|
|
dey ; CPU:$C7C4 PRG:07C4 ??
|
|
bpl FlowEntry_C778 ; CPU:$C7C6 PRG:07C6 ??
|
|
ldy #$04 ; CPU:$C7C8 PRG:07C8 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $0778-$0779.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
EngineTable_C778:
|
|
|
|
FlowEntry_C778:
|
|
.byte $84, $3A ; PRG $0778 / CPU $C778 ; CPU:$C7CA PRG:07CA 84 3A
|
|
; =============================================================================
|
|
; MatchRoutine_C77A
|
|
; CPU address: $C77A PRG offset: $077A
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
MatchRoutine_C77A:
|
|
lda Zp3A ; CPU:$C7CC PRG:07CC ??
|
|
asl a ; CPU:$C7CE PRG:07CE ??
|
|
asl a ; CPU:$C7D0 PRG:07D0 ??
|
|
asl a ; CPU:$C7D2 PRG:07D2 ??
|
|
asl a ; CPU:$C7D4 PRG:07D4 ??
|
|
clc ; CPU:$C7D6 PRG:07D6 ??
|
|
adc #$60 ; CPU:$C7D8 PRG:07D8 ??
|
|
sta $0203 ; CPU:$C7DA PRG:07DA ??
|
|
Flow_C786:
|
|
rts ; CPU:$C7DC PRG:07DC ??
|
|
Flow_C787:
|
|
lda #$00 ; CPU:$C7DE PRG:07DE ??
|
|
sta StateTransitionFlag ; CPU:$C7E0 PRG:07E0 ??
|
|
rts ; PRG $078B / CPU $C78B ; CPU:$C7E2 PRG:07E2 ??
|
|
Flow_C78C:
|
|
lda Zp3A ; CPU:$C7E4 PRG:07E4 ??
|
|
sta ServingPlayer ; CPU:$C7E6 PRG:07E6 ??
|
|
lda #$00 ; CPU:$C7E8 PRG:07E8 ??
|
|
sta ModeAnimSubframe ; CPU:$C7EA PRG:07EA ??
|
|
inc GameState ; CPU:$C7EC PRG:07EC ??
|
|
rts ; PRG $0796 / CPU $C796 ; CPU:$C7EE PRG:07EE ??
|
|
; =============================================================================
|
|
; GameState01_WaitForServe
|
|
; CPU address: $C797 PRG offset: $0797
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
GameState01_WaitForServe:
|
|
jsr DisableRendering ; CPU:$C7F0 PRG:07F0 ??
|
|
jsr ClearOneNametable ; CPU:$C7F2 PRG:07F2 ??
|
|
jsr RenderRoutine_ED41 ; CPU:$C7F4 PRG:07F4 ??
|
|
jsr RenderRoutine_ED59 ; CPU:$C7F6 PRG:07F6 ??
|
|
ldx #$0F ; CPU:$C7F8 PRG:07F8 ??
|
|
lda #$00 ; CPU:$C7FA PRG:07FA ??
|
|
Flow_C7A7:
|
|
sta PointWinner,x ; CPU:$C7FC PRG:07FC ??
|
|
dex ; CPU:$C7FE PRG:07FE ??
|
|
bpl Flow_C7A7 ; CPU:$C800 PRG:0800 ??
|
|
sta PlayerAnimationFlags ; CPU:$C802 PRG:0802 ??
|
|
sta BallStateFlags ; CPU:$C804 PRG:0804 ??
|
|
lda #$C1 ; CPU:$C806 PRG:0806 ??
|
|
sta BallTrajectoryFlags ; CPU:$C808 PRG:0808 ??
|
|
inc GameState ; CPU:$C80A PRG:080A ??
|
|
rts ; CPU:$C80C PRG:080C ??
|
|
|
|
; =============================================================================
|
|
; GameState02_PrepareRally
|
|
; CPU address: $C7B7 PRG offset: $07B7
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
GameState02_PrepareRally:
|
|
jsr EnableRendering ; CPU:$C80E PRG:080E ??
|
|
jsr EngineRoutine_C42C ; CPU:$C810 PRG:0810 ??
|
|
jsr HideAllSprites ; CPU:$C812 PRG:0812 ??
|
|
jsr RenderRoutine_ED70 ; CPU:$C814 PRG:0814 ??
|
|
inc GameState ; CPU:$C816 PRG:0816 ??
|
|
rts ; CPU:$C818 PRG:0818 ??
|
|
|
|
; =============================================================================
|
|
; GameState03_RunRally
|
|
; CPU address: $C7C6 PRG offset: $07C6
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
GameState03_RunRally:
|
|
jsr RenderRoutine_E8CA ; CPU:$C81A PRG:081A ??
|
|
lda #$01 ; CPU:$C81C PRG:081C ??
|
|
sta PpuBufferReady ; CPU:$C81E PRG:081E ??
|
|
jsr MatchRoutine_C7E7 ; CPU:$C820 PRG:0820 ??
|
|
jsr PhysicsRoutine_D7E1 ; CPU:$C822 PRG:0822 ??
|
|
lda ServingPlayer ; CPU:$C824 PRG:0824 ??
|
|
cmp #$02 ; CPU:$C826 PRG:0826 ??
|
|
bcs Flow_C7E1 ; CPU:$C828 PRG:0828 ??
|
|
lda #$20 ; CPU:$C82A PRG:082A ??
|
|
sta $0319 ; CPU:$C82C PRG:082C ??
|
|
sta $0339 ; CPU:$C82E PRG:082E ??
|
|
Flow_C7E1:
|
|
jsr EngineRoutine_C436 ; CPU:$C830 PRG:0830 ??
|
|
inc GameState ; CPU:$C832 PRG:0832 ??
|
|
rts ; CPU:$C834 PRG:0834 ??
|
|
|
|
; =============================================================================
|
|
; MatchRoutine_C7E7
|
|
; CPU address: $C7E7 PRG offset: $07E7
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
MatchRoutine_C7E7:
|
|
ldy #$BF ; CPU:$C836 PRG:0836 ??
|
|
Flow_C7E9:
|
|
lda InitialMatchObjectStateData,y ; CPU:$C838 PRG:0838 ??
|
|
sta $0300,y ; CPU:$C83A PRG:083A ??
|
|
dey ; CPU:$C83C PRG:083C ??
|
|
bne Flow_C7E9 ; CPU:$C83E PRG:083E ??
|
|
lda InitialMatchObjectStateData,y ; CPU:$C840 PRG:0840 ??
|
|
sta $0300,y ; CPU:$C842 PRG:0842 ??
|
|
lda #$00 ; CPU:$C844 PRG:0844 ??
|
|
sta PlayerCourtOrder ; CPU:$C846 PRG:0846 ??
|
|
lda GameMode ; CPU:$C848 PRG:0848 ??
|
|
bne Flow_C807 ; CPU:$C84A PRG:084A ??
|
|
sta $0320 ; CPU:$C84C PRG:084C ??
|
|
sta $0360 ; CPU:$C84E PRG:084E ??
|
|
Flow_C806:
|
|
rts ; CPU:$C850 PRG:0850 ??
|
|
Flow_C807:
|
|
lda BallTrajectoryFlags ; CPU:$C852 PRG:0852 ??
|
|
and #$02 ; CPU:$C854 PRG:0854 ??
|
|
bne Flow_C829 ; CPU:$C856 PRG:0856 ??
|
|
lda BallTrajectoryFlags ; CPU:$C858 PRG:0858 ??
|
|
and #$04 ; CPU:$C85A PRG:085A ??
|
|
beq Flow_C816 ; CPU:$C85C PRG:085C ??
|
|
jsr MatchRoutine_C838 ; CPU:$C85E PRG:085E ??
|
|
Flow_C816:
|
|
lda BallTrajectoryFlags ; CPU:$C860 PRG:0860 ??
|
|
and #$01 ; CPU:$C862 PRG:0862 ??
|
|
beq Flow_C806 ; CPU:$C864 PRG:0864 ??
|
|
|
|
; =============================================================================
|
|
; MatchRoutine_C81C
|
|
; CPU address: $C81C PRG offset: $081C
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
MatchRoutine_C81C:
|
|
ldy $0347 ; CPU:$C866 PRG:0866 ??
|
|
ldx $0367 ; CPU:$C868 PRG:0868 ??
|
|
stx $0347 ; CPU:$C86A PRG:086A ??
|
|
sty $0367 ; CPU:$C86C PRG:086C ??
|
|
rts ; CPU:$C86E PRG:086E ??
|
|
Flow_C829:
|
|
lda BallTrajectoryFlags ; CPU:$C870 PRG:0870 ??
|
|
and #$04 ; CPU:$C872 PRG:0872 ??
|
|
beq Flow_C832 ; CPU:$C874 PRG:0874 ??
|
|
jsr MatchRoutine_C81C ; CPU:$C876 PRG:0876 ??
|
|
Flow_C832:
|
|
lda BallTrajectoryFlags ; CPU:$C878 PRG:0878 ??
|
|
and #$01 ; CPU:$C87A PRG:087A ??
|
|
beq Flow_C806 ; CPU:$C87C PRG:087C ??
|
|
|
|
; =============================================================================
|
|
; MatchRoutine_C838
|
|
; CPU address: $C838 PRG offset: $0838
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
MatchRoutine_C838:
|
|
ldy $0307 ; CPU:$C87E PRG:087E ??
|
|
ldx $0327 ; CPU:$C880 PRG:0880 ??
|
|
stx $0307 ; CPU:$C882 PRG:0882 ??
|
|
sty $0327 ; CPU:$C884 PRG:0884 ??
|
|
inc PlayerCourtOrder ; CPU:$C886 PRG:0886 ??
|
|
rts ; CPU:$C888 PRG:0888 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $0847-$0906.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
InitialMatchObjectStateData:
|
|
.byte $01, $00, $03, $00, $00, $0E, $11, $00, $D8, $80, $00, $00, $00, $00, $00, $00 ; PRG $0847 / CPU $C847 ; CPU:$C88A PRG:088A 01 00 03 00 00 0E 11 00 D8 80 00 00 00 00 00 00
|
|
.byte $00, $0E, $00, $00, $C0, $40, $7C, $E8, $00, $18, $00, $00, $00, $00, $00, $00 ; PRG $0857 / CPU $C857 ; CPU:$C89A PRG:089A 00 0E 00 00 C0 40 7C E8 00 18 00 00 00 00 00 00
|
|
.byte $01, $00, $03, $00, $00, $0E, $11, $01, $A8, $80, $30, $00, $00, $00, $00, $00 ; PRG $0867 / CPU $C867 ; CPU:$C8AA PRG:08AA 01 00 03 00 00 0E 11 01 A8 80 30 00 00 00 00 00
|
|
.byte $00, $0E, $00, $00, $F0, $10, $7C, $E8, $00, $18, $00, $00, $00, $00, $00, $00 ; PRG $0877 / CPU $C877 ; CPU:$C8BA PRG:08BA 00 0E 00 00 F0 10 7C E8 00 18 00 00 00 00 00 00
|
|
.byte $01, $00, $03, $00, $00, $0A, $29, $03, $2C, $80, $70, $00, $00, $00, $00, $00 ; PRG $0887 / CPU $C887 ; CPU:$C8CA PRG:08CA 01 00 03 00 00 0A 29 03 2C 80 70 00 00 00 00 00
|
|
.byte $00, $08, $00, $00, $D0, $30, $24, $70, $80, $80, $00, $00, $00, $00, $00, $00 ; PRG $0897 / CPU $C897 ; CPU:$C8DA PRG:08DA 00 08 00 00 D0 30 24 70 80 80 00 00 00 00 00 00
|
|
.byte $01, $00, $03, $00, $00, $0A, $29, $03, $44, $80, $A0, $00, $00, $00, $00, $00 ; PRG $08A7 / CPU $C8A7 ; CPU:$C8EA PRG:08EA 01 00 03 00 00 0A 29 03 44 80 A0 00 00 00 00 00
|
|
.byte $00, $08, $00, $00, $D0, $30, $24, $70, $80, $80, $00, $00, $00, $00, $00, $00 ; PRG $08B7 / CPU $C8B7 ; CPU:$C8FA PRG:08FA 00 08 00 00 D0 30 24 70 80 80 00 00 00 00 00 00
|
|
.byte $01, $00, $00, $00, $00, $00, $18, $02, $B0, $80, $60, $00, $00, $00, $00, $00 ; PRG $08C7 / CPU $C8C7 ; CPU:$C90A PRG:090A 01 00 00 00 00 00 18 02 B0 80 60 00 00 00 00 00
|
|
.byte $01, $00, $00, $00, $02, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00 ; PRG $08D7 / CPU $C8D7 ; CPU:$C91A PRG:091A 01 00 00 00 02 00 00 00 00 00 01 00 00 00 00 00
|
|
.byte $01, $00, $00, $00, $00, $00, $20, $02, $B0, $80, $64, $00, $00, $00, $00, $00 ; PRG $08E7 / CPU $C8E7 ; CPU:$C92A PRG:092A 01 00 00 00 00 00 20 02 B0 80 64 00 00 00 00 00
|
|
.byte $01, $01, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00 ; PRG $08F7 / CPU $C8F7 ; CPU:$C93A PRG:093A 01 01 00 00 00 00 00 00 00 00 01 00 00 00 00 00
|
|
; =============================================================================
|
|
; GameState04_PointEnded
|
|
; CPU address: $C907 PRG offset: $0907
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
GameState04_PointEnded:
|
|
jsr MatchRoutine_CBD5 ; CPU:$C94A PRG:094A ??
|
|
jsr RenderRoutine_E076 ; CPU:$C94C PRG:094C ??
|
|
jsr PhysicsRoutine_CD0B ; CPU:$C94E PRG:094E ??
|
|
jsr PhysicsRoutine_D8A9 ; CPU:$C950 PRG:0950 ??
|
|
jsr RenderRoutine_E5F5 ; CPU:$C952 PRG:0952 ??
|
|
jsr PhysicsRoutine_D790 ; CPU:$C954 PRG:0954 ??
|
|
jsr MatchRoutine_C920 ; CPU:$C956 PRG:0956 ??
|
|
jsr MatchRoutine_C96F ; CPU:$C958 PRG:0958 ??
|
|
rts ; CPU:$C95A PRG:095A ??
|
|
|
|
; =============================================================================
|
|
; MatchRoutine_C920
|
|
; CPU address: $C920 PRG offset: $0920
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
MatchRoutine_C920:
|
|
lda BallTrajectoryFlags ; CPU:$C95C PRG:095C ??
|
|
bpl Flow_C928 ; CPU:$C95E PRG:095E ??
|
|
and #$02 ; CPU:$C960 PRG:0960 ??
|
|
beq Flow_C92B ; CPU:$C962 PRG:0962 ??
|
|
Flow_C928:
|
|
lda $0310 ; CPU:$C964 PRG:0964 ??
|
|
Flow_C92B:
|
|
ldy GameMode ; CPU:$C966 PRG:0966 ??
|
|
beq Flow_C932 ; CPU:$C968 PRG:0968 ??
|
|
ora $0330 ; CPU:$C96A PRG:096A ??
|
|
Flow_C932:
|
|
and #$0F ; CPU:$C96C PRG:096C ??
|
|
beq Flow_C93C ; CPU:$C96E PRG:096E ??
|
|
lda #$40 ; CPU:$C970 PRG:0970 ??
|
|
ora AudioRequestFlags2 ; CPU:$C972 PRG:0972 ??
|
|
sta AudioRequestFlags2 ; CPU:$C974 PRG:0974 ??
|
|
Flow_C93C:
|
|
lda BallBounceState ; CPU:$C976 PRG:0976 ??
|
|
beq Flow_C94C ; CPU:$C978 PRG:0978 ??
|
|
lda #$40 ; CPU:$C97A PRG:097A ??
|
|
bit BallXPosition ; CPU:$C97C PRG:097C ??
|
|
bpl Flow_C948 ; CPU:$C97E PRG:097E ??
|
|
lda #$C0 ; CPU:$C980 PRG:0980 ??
|
|
Flow_C948:
|
|
ora AudioRequestFlags3 ; CPU:$C982 PRG:0982 ??
|
|
sta AudioRequestFlags3 ; CPU:$C984 PRG:0984 ??
|
|
Flow_C94C:
|
|
rts ; CPU:$C986 PRG:0986 ??
|
|
|
|
; =============================================================================
|
|
; MatchRoutine_C94D
|
|
; CPU address: $C94D PRG offset: $094D
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
MatchRoutine_C94D:
|
|
ldy #$00 ; CPU:$C988 PRG:0988 ??
|
|
lda PlayerActionType ; CPU:$C98A PRG:098A ??
|
|
cmp #$04 ; CPU:$C98C PRG:098C ??
|
|
bne Flow_C956 ; CPU:$C98E PRG:098E ??
|
|
iny ; CPU:$C990 PRG:0990 ??
|
|
Flow_C956:
|
|
sty BallBounceState ; CPU:$C992 PRG:0992 ??
|
|
asl a ; CPU:$C994 PRG:0994 ??
|
|
tax ; CPU:$C996 PRG:0996 ??
|
|
lda $C965,x ; CPU:$C998 PRG:0998 ??
|
|
tay ; CPU:$C99A PRG:099A ??
|
|
lda $C966,x ; CPU:$C99C PRG:099C ??
|
|
sta $00F1,y ; CPU:$C99E PRG:099E ??
|
|
rts ; CPU:$C9A0 PRG:09A0 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $0965-$096E.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
PlayerActionAudioRequestTable:
|
|
.byte $0E, $04, $0E, $08, $0E, $10, $0E, $20, $00, $00 ; PRG $0965 / CPU $C965 ; CPU:$C9A2 PRG:09A2 0E 04 0E 08 0E 10 0E 20 00 00
|
|
; =============================================================================
|
|
; MatchRoutine_C96F
|
|
; CPU address: $C96F PRG offset: $096F
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
MatchRoutine_C96F:
|
|
ldy Zp24 ; CPU:$C9AC PRG:09AC ??
|
|
dey ; CPU:$C9AE PRG:09AE ??
|
|
bne Flow_C977 ; CPU:$C9B0 PRG:09B0 ??
|
|
jsr RenderRoutine_E646 ; CPU:$C9B2 PRG:09B2 ??
|
|
Flow_C977:
|
|
lda UmpireMessageId ; CPU:$C9B4 PRG:09B4 ??
|
|
beq Flow_C985 ; CPU:$C9B6 PRG:09B6 ??
|
|
lda BallContactState ; CPU:$C9B8 PRG:09B8 ??
|
|
bne Flow_C985 ; CPU:$C9BA PRG:09BA ??
|
|
inc BallContactState ; CPU:$C9BC PRG:09BC ??
|
|
lda #$0A ; CPU:$C9BE PRG:09BE ??
|
|
sta Zp24 ; CPU:$C9C0 PRG:09C0 ??
|
|
Flow_C985:
|
|
lda PlayerAnimationFlags ; CPU:$C9C2 PRG:09C2 ??
|
|
beq FlowEntry_C9A1 ; CPU:$C9C4 PRG:09C4 ??
|
|
inc GameState ; CPU:$C9C6 PRG:09C6 ??
|
|
inc GameStateStep ; CPU:$C9C8 PRG:09C8 ??
|
|
lda #$00 ; CPU:$C9CA PRG:09CA ??
|
|
sta PlayerAnimationFlags ; CPU:$C9CC PRG:09CC ??
|
|
jsr RenderRoutine_E646 ; CPU:$C9CE PRG:09CE ??
|
|
lda #$10 ; CPU:$C9D0 PRG:09D0 ??
|
|
ldy $0391 ; CPU:$C9D2 PRG:09D2 ??
|
|
cpy #$05 ; CPU:$C9D4 PRG:09D4 ??
|
|
bcs Flow_C99F ; CPU:$C9D6 PRG:09D6 ??
|
|
lda #$30 ; CPU:$C9D8 PRG:09D8 ??
|
|
Flow_C99F:
|
|
sta Zp21 ; CPU:$C9DA PRG:09DA ??
|
|
FlowEntry_C9A1:
|
|
rts ; PRG $09A1 / CPU $C9A1 ; CPU:$C9DC PRG:09DC ??
|
|
GameState05_UpdateScore:
|
|
lda Zp21 ; CPU:$C9DE PRG:09DE ??
|
|
bne Flow_C9B4 ; CPU:$C9E0 PRG:09E0 ??
|
|
lda #$FF ; CPU:$C9E2 PRG:09E2 ??
|
|
ldy $038A ; CPU:$C9E4 PRG:09E4 ??
|
|
sta $0201,y ; CPU:$C9E6 PRG:09E6 ??
|
|
sta $0205,y ; CPU:$C9E8 PRG:09E8 ??
|
|
inc GameState ; CPU:$C9EA PRG:09EA ??
|
|
Flow_C9B3:
|
|
rts ; CPU:$C9EC PRG:09EC ??
|
|
Flow_C9B4:
|
|
cmp #$0E ; CPU:$C9EE PRG:09EE ??
|
|
bne Flow_C9C3 ; CPU:$C9F0 PRG:09F0 ??
|
|
jsr RenderRoutine_E77F ; CPU:$C9F2 PRG:09F2 ??
|
|
jsr RenderRoutine_E8CA ; CPU:$C9F4 PRG:09F4 ??
|
|
Flow_C9BE:
|
|
lda #$01 ; CPU:$C9F6 PRG:09F6 ??
|
|
sta PpuBufferReady ; CPU:$C9F8 PRG:09F8 ??
|
|
Flow_C9C2:
|
|
rts ; CPU:$C9FA PRG:09FA ??
|
|
Flow_C9C3:
|
|
cmp #$0D ; CPU:$C9FC PRG:09FC ??
|
|
bne Flow_C9D7 ; CPU:$C9FE PRG:09FE ??
|
|
lda ScoreUpdatePhase ; CPU:$CA00 PRG:0A00 ??
|
|
cmp #$01 ; CPU:$CA02 PRG:0A02 ??
|
|
bne Flow_C9C2 ; CPU:$CA04 PRG:0A04 ??
|
|
lda ScoreLo ; CPU:$CA06 PRG:0A06 ??
|
|
ora ScoreHi ; CPU:$CA08 PRG:0A08 ??
|
|
bne Flow_C9C2 ; CPU:$CA0A PRG:0A0A ??
|
|
jsr ShowDeuceMessage ; CPU:$CA0C PRG:0A0C ??
|
|
rts ; CPU:$CA0E PRG:0A0E ??
|
|
Flow_C9D7:
|
|
cmp #$02 ; CPU:$CA10 PRG:0A10 ??
|
|
bne Flow_C9B3 ; CPU:$CA12 PRG:0A12 ??
|
|
jsr RenderRoutine_E80C ; CPU:$CA14 PRG:0A14 ??
|
|
jsr RenderRoutine_E965 ; CPU:$CA16 PRG:0A16 ??
|
|
jsr PhysicsRoutine_CC96 ; CPU:$CA18 PRG:0A18 ??
|
|
jmp Flow_C9BE ; CPU:$CA1A PRG:0A1A ??
|
|
GameState06_AdvanceGame:
|
|
jsr RenderRoutine_E9DB ; CPU:$CA1C PRG:0A1C ??
|
|
lda #$01 ; CPU:$CA1E PRG:0A1E ??
|
|
sta PpuBufferReady ; CPU:$CA20 PRG:0A20 ??
|
|
lda StateTimer ; CPU:$CA22 PRG:0A22 ??
|
|
bne Flow_CA21 ; CPU:$CA24 PRG:0A24 ??
|
|
jsr RenderRoutine_E883 ; CPU:$CA26 PRG:0A26 ??
|
|
lda PendingGameState ; CPU:$CA28 PRG:0A28 ??
|
|
sta GameState ; CPU:$CA2A PRG:0A2A ??
|
|
cmp #$0B ; CPU:$CA2C PRG:0A2C ??
|
|
bne Flow_CA21 ; CPU:$CA2E PRG:0A2E ??
|
|
jsr RenderRoutine_E8AF ; CPU:$CA30 PRG:0A30 ??
|
|
jsr RenderRoutine_EB05 ; CPU:$CA32 PRG:0A32 ??
|
|
jsr PhysicsRoutine_CCCD ; CPU:$CA34 PRG:0A34 ??
|
|
lda MatchResultType ; CPU:$CA36 PRG:0A36 ??
|
|
asl a ; CPU:$CA38 PRG:0A38 ??
|
|
tay ; CPU:$CA3A PRG:0A3A ??
|
|
lda $CA22,y ; CPU:$CA3C PRG:0A3C ??
|
|
tax ; CPU:$CA3E PRG:0A3E ??
|
|
lda $CA23,y ; CPU:$CA40 PRG:0A40 ??
|
|
sta AudioEventPriority,x ; CPU:$CA42 PRG:0A42 ??
|
|
ldy #$20 ; CPU:$CA44 PRG:0A44 ??
|
|
lda MatchResultType ; CPU:$CA46 PRG:0A46 ??
|
|
bne Flow_CA1B ; CPU:$CA48 PRG:0A48 ??
|
|
ldy #$50 ; CPU:$CA4A PRG:0A4A ??
|
|
Flow_CA1B:
|
|
sty StateTimer ; CPU:$CA4C PRG:0A4C ??
|
|
lda #$00 ; CPU:$CA4E PRG:0A4E ??
|
|
sta StateSubstep ; CPU:$CA50 PRG:0A50 ??
|
|
Flow_CA21:
|
|
rts ; CPU:$CA52 PRG:0A52 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $0A22-$0A27.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
MatchResultAudioRequestTable:
|
|
.byte $01, $01, $01, $02, $01, $04 ; PRG $0A22 / CPU $CA22 ; CPU:$CA54 PRG:0A54 01 01 01 02 01 04
|
|
GameState08_WaitForTimer:
|
|
lda StateTimer ; CPU:$CA5A PRG:0A5A ??
|
|
bne Flow_CA30 ; CPU:$CA5C PRG:0A5C ??
|
|
lda #$04 ; CPU:$CA5E PRG:0A5E ??
|
|
bne Flow_CA58 ; CPU:$CA60 PRG:0A60 ??
|
|
Flow_CA30:
|
|
rts ; CPU:$CA62 PRG:0A62 ??
|
|
GameState09_RestorePreviousState:
|
|
lda StateTimer ; CPU:$CA64 PRG:0A64 ??
|
|
bne Flow_CA39 ; CPU:$CA66 PRG:0A66 ??
|
|
lda Zp3B ; CPU:$CA68 PRG:0A68 ??
|
|
sta GameState ; CPU:$CA6A PRG:0A6A ??
|
|
Flow_CA39:
|
|
rts ; CPU:$CA6C PRG:0A6C ??
|
|
GameState0A_ResumePreviousState:
|
|
lda Zp21 ; CPU:$CA6E PRG:0A6E ??
|
|
beq Flow_CA4D ; CPU:$CA70 PRG:0A70 ??
|
|
cmp #$0A ; CPU:$CA72 PRG:0A72 ??
|
|
bne Flow_CA5A ; CPU:$CA74 PRG:0A74 ??
|
|
lda PpuMaskShadow ; CPU:$CA76 PRG:0A76 ??
|
|
ora #$10 ; CPU:$CA78 PRG:0A78 ??
|
|
sta PPUMASK ; CPU:$CA7A PRG:0A7A ??
|
|
sta PpuMaskShadow ; CPU:$CA7C PRG:0A7C ??
|
|
bne Flow_CA5A ; CPU:$CA7E PRG:0A7E ??
|
|
Flow_CA4D:
|
|
ldx #$07 ; CPU:$CA80 PRG:0A80 ??
|
|
Flow_CA4F:
|
|
lda Zp28,x ; CPU:$CA82 PRG:0A82 ??
|
|
sta Zp20,x ; CPU:$CA84 PRG:0A84 ??
|
|
dex ; CPU:$CA86 PRG:0A86 ??
|
|
bpl Flow_CA4F ; CPU:$CA88 PRG:0A88 ??
|
|
lda Zp3B ; CPU:$CA8A PRG:0A8A ??
|
|
Flow_CA58:
|
|
sta GameState ; CPU:$CA8C PRG:0A8C ??
|
|
Flow_CA5A:
|
|
rts ; CPU:$CA8E PRG:0A8E ??
|
|
GameState0B_FinishTransition:
|
|
lda StateSubstep ; CPU:$CA90 PRG:0A90 ??
|
|
bne Flow_CA7E ; CPU:$CA92 PRG:0A92 ??
|
|
lda StateTimer ; CPU:$CA94 PRG:0A94 ??
|
|
bne Flow_CA73 ; CPU:$CA96 PRG:0A96 ??
|
|
lda MatchResultType ; CPU:$CA98 PRG:0A98 ??
|
|
cmp #$01 ; CPU:$CA9A PRG:0A9A ??
|
|
beq Flow_CA74 ; CPU:$CA9C PRG:0A9C ??
|
|
lda #$01 ; CPU:$CA9E PRG:0A9E ??
|
|
sta GameActiveFlag ; CPU:$CAA0 PRG:0AA0 ??
|
|
sta StateTransitionFlag ; CPU:$CAA2 PRG:0AA2 ??
|
|
lda #$00 ; CPU:$CAA4 PRG:0AA4 ??
|
|
sta GameStateStep ; CPU:$CAA6 PRG:0AA6 ??
|
|
Flow_CA73:
|
|
rts ; CPU:$CAA8 PRG:0AA8 ??
|
|
Flow_CA74:
|
|
jsr RenderRoutine_EADA ; CPU:$CAAA PRG:0AAA ??
|
|
lda #$20 ; CPU:$CAAC PRG:0AAC ??
|
|
sta StateTimer ; CPU:$CAAE PRG:0AAE ??
|
|
inc StateSubstep ; CPU:$CAB0 PRG:0AB0 ??
|
|
rts ; PRG $0A7D / CPU $CA7D ; CPU:$CAB2 PRG:0AB2 ??
|
|
Flow_CA7E:
|
|
lda StateTimer ; CPU:$CAB4 PRG:0AB4 ??
|
|
bne Flow_CA73 ; CPU:$CAB6 PRG:0AB6 ??
|
|
lda #$01 ; CPU:$CAB8 PRG:0AB8 ??
|
|
sta GameState ; CPU:$CABA PRG:0ABA ??
|
|
rts ; PRG $0A86 / CPU $CA86 ; CPU:$CABC PRG:0ABC ??
|
|
ModeStep00_DrawSelectionScreen:
|
|
jsr DisableRendering ; CPU:$CABE PRG:0ABE ??
|
|
lda SelectedGameMode ; CPU:$CAC0 PRG:0AC0 ??
|
|
sta GameMode ; CPU:$CAC2 PRG:0AC2 ??
|
|
jsr ClearOneNametable ; CPU:$CAC4 PRG:0AC4 ??
|
|
jsr HideAllSprites ; CPU:$CAC6 PRG:0AC6 ??
|
|
ldx #$E6 ; CPU:$CAC8 PRG:0AC8 ??
|
|
ldy #$EE ; CPU:$CACA PRG:0ACA ??
|
|
jsr DrawScreenData ; CPU:$CACC PRG:0ACC ??
|
|
lda #$02 ; CPU:$CACE PRG:0ACE ??
|
|
sta PaletteUpdateMode ; CPU:$CAD0 PRG:0AD0 ??
|
|
lda #$01 ; CPU:$CAD2 PRG:0AD2 ??
|
|
sta StateTransitionFlag ; CPU:$CAD4 PRG:0AD4 ??
|
|
lda #$84 ; CPU:$CAD6 PRG:0AD6 ??
|
|
sta WorkPtrLo ; CPU:$CAD8 PRG:0AD8 ??
|
|
lda #$F2 ; CPU:$CADA PRG:0ADA ??
|
|
sta WorkPtrHi ; CPU:$CADC PRG:0ADC ??
|
|
lda #$04 ; CPU:$CADE PRG:0ADE ??
|
|
sta Zp03 ; CPU:$CAE0 PRG:0AE0 ??
|
|
jsr WriteMetaspriteToOam ; CPU:$CAE2 PRG:0AE2 ??
|
|
inc GameStateStep ; CPU:$CAE4 PRG:0AE4 ??
|
|
ldy DemoCounter ; CPU:$CAE6 PRG:0AE6 ??
|
|
bne Flow_CAC0 ; CPU:$CAE8 PRG:0AE8 ??
|
|
ldy #$03 ; CPU:$CAEA PRG:0AEA ??
|
|
sty DemoCounter ; CPU:$CAEC PRG:0AEC ??
|
|
lda #$4F ; CPU:$CAEE PRG:0AEE ??
|
|
bne Flow_CAC4 ; CPU:$CAF0 PRG:0AF0 ??
|
|
Flow_CAC0:
|
|
dec DemoCounter ; CPU:$CAF2 PRG:0AF2 ??
|
|
lda #$25 ; CPU:$CAF4 PRG:0AF4 ??
|
|
Flow_CAC4:
|
|
sta StateTimer ; CPU:$CAF6 PRG:0AF6 ??
|
|
jmp EnableRendering ; CPU:$CAF8 PRG:0AF8 ??
|
|
ModeStep01_Countdown:
|
|
ldy StateTimer ; CPU:$CAFA PRG:0AFA ??
|
|
beq Flow_CADA ; CPU:$CAFC PRG:0AFC ??
|
|
cpy #$4B ; CPU:$CAFE PRG:0AFE ??
|
|
bne Flow_CAD9 ; CPU:$CB00 PRG:0B00 ??
|
|
lda #$08 ; CPU:$CB02 PRG:0B02 ??
|
|
sta AudioRequestFlags1 ; CPU:$CB04 PRG:0B04 ??
|
|
ldy #$48 ; CPU:$CB06 PRG:0B06 ??
|
|
sty StateTimer ; CPU:$CB08 PRG:0B08 ??
|
|
Flow_CAD9:
|
|
rts ; CPU:$CB0A PRG:0B0A ??
|
|
Flow_CADA:
|
|
inc GameStateStep ; CPU:$CB0C PRG:0B0C ??
|
|
rts ; PRG $0ADC / CPU $CADC ; CPU:$CB0E PRG:0B0E ??
|
|
ModeStep02_InitializeSelection:
|
|
lda #$01 ; CPU:$CB10 PRG:0B10 ??
|
|
sta GameMode ; CPU:$CB12 PRG:0B12 ??
|
|
inc GameStateStep ; CPU:$CB14 PRG:0B14 ??
|
|
rts ; CPU:$CB16 PRG:0B16 ??
|
|
ModeStep03_UpdateSelection:
|
|
jsr GameState01_WaitForServe ; CPU:$CB18 PRG:0B18 ??
|
|
lda #$00 ; CPU:$CB1A PRG:0B1A ??
|
|
sta ServingPlayer ; CPU:$CB1C PRG:0B1C ??
|
|
inc GameStateStep ; CPU:$CB1E PRG:0B1E ??
|
|
rts ; CPU:$CB20 PRG:0B20 ??
|
|
ModeStep04_ConfirmSelection:
|
|
jsr GameState02_PrepareRally ; CPU:$CB22 PRG:0B22 ??
|
|
inc GameStateStep ; CPU:$CB24 PRG:0B24 ??
|
|
rts ; CPU:$CB26 PRG:0B26 ??
|
|
ModeStep05_StartDemoOrMatch:
|
|
jsr GameState03_RunRally ; CPU:$CB28 PRG:0B28 ??
|
|
lda #$00 ; CPU:$CB2A PRG:0B2A ??
|
|
sta ModeAnimFrameA ; CPU:$CB2C PRG:0B2C ??
|
|
sta ModeAnimTimerA ; CPU:$CB2E PRG:0B2E ??
|
|
sta ModeAnimFrameB ; CPU:$CB30 PRG:0B30 ??
|
|
sta ModeAnimTimerB ; CPU:$CB32 PRG:0B32 ??
|
|
inc GameStateStep ; CPU:$CB34 PRG:0B34 ??
|
|
rts ; CPU:$CB36 PRG:0B36 ??
|
|
ModeStep06_CompleteSetup:
|
|
lda ModeAnimTimerA ; CPU:$CB38 PRG:0B38 ??
|
|
beq Flow_CB14 ; CPU:$CB3A PRG:0B3A ??
|
|
dec ModeAnimTimerA ; CPU:$CB3C PRG:0B3C ??
|
|
lda $0310 ; CPU:$CB3E PRG:0B3E ??
|
|
and #$0F ; CPU:$CB40 PRG:0B40 ??
|
|
sta Zp1B ; CPU:$CB42 PRG:0B42 ??
|
|
jmp Flow_CB28 ; CPU:$CB44 PRG:0B44 ??
|
|
Flow_CB14:
|
|
ldy ModeAnimFrameA ; CPU:$CB46 PRG:0B46 ??
|
|
lda $CB59,y ; CPU:$CB48 PRG:0B48 ??
|
|
cmp #$AA ; CPU:$CB4A PRG:0B4A ??
|
|
beq Flow_CB52 ; CPU:$CB4C PRG:0B4C ??
|
|
sta Zp1B ; CPU:$CB4E PRG:0B4E ??
|
|
iny ; CPU:$CB50 PRG:0B50 ??
|
|
lda $CB59,y ; CPU:$CB52 PRG:0B52 ??
|
|
sta ModeAnimTimerA ; CPU:$CB54 PRG:0B54 ??
|
|
iny ; CPU:$CB56 PRG:0B56 ??
|
|
sty ModeAnimFrameA ; CPU:$CB58 PRG:0B58 ??
|
|
Flow_CB28:
|
|
lda ModeAnimTimerB ; CPU:$CB5A PRG:0B5A ??
|
|
beq Flow_CB38 ; CPU:$CB5C PRG:0B5C ??
|
|
dec ModeAnimTimerB ; CPU:$CB5E PRG:0B5E ??
|
|
lda $0330 ; CPU:$CB60 PRG:0B60 ??
|
|
and #$0F ; CPU:$CB62 PRG:0B62 ??
|
|
sta Zp1D ; CPU:$CB64 PRG:0B64 ??
|
|
jmp Flow_CB48 ; CPU:$CB66 PRG:0B66 ??
|
|
Flow_CB38:
|
|
ldy ModeAnimFrameB ; CPU:$CB68 PRG:0B68 ??
|
|
lda $CB8E,y ; CPU:$CB6A PRG:0B6A ??
|
|
sta Zp1D ; CPU:$CB6C PRG:0B6C ??
|
|
iny ; CPU:$CB6E PRG:0B6E ??
|
|
lda $CB8E,y ; CPU:$CB70 PRG:0B70 ??
|
|
sta ModeAnimTimerB ; CPU:$CB72 PRG:0B72 ??
|
|
iny ; CPU:$CB74 PRG:0B74 ??
|
|
sty ModeAnimFrameB ; CPU:$CB76 PRG:0B76 ??
|
|
Flow_CB48:
|
|
jsr GameState04_PointEnded ; CPU:$CB78 PRG:0B78 ??
|
|
lda GameStateStep ; CPU:$CB7A PRG:0B7A ??
|
|
cmp #$07 ; CPU:$CB7C PRG:0B7C ??
|
|
beq Flow_CB54 ; CPU:$CB7E PRG:0B7E ??
|
|
rts ; PRG $0B51 / CPU $CB51 ; CPU:$CB80 PRG:0B80 ??
|
|
Flow_CB52:
|
|
inc GameStateStep ; CPU:$CB82 PRG:0B82 ??
|
|
Flow_CB54:
|
|
lda #$08 ; CPU:$CB84 PRG:0B84 ??
|
|
sta StateTimer ; CPU:$CB86 PRG:0B86 ??
|
|
rts ; CPU:$CB88 PRG:0B88 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $0B59-$0BCA.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
ModeSetupAnimationSequenceData:
|
|
.byte $01, $08, $00, $A4, $80, $B4, $02, $2C, $00, $2C, $80, $20, $08, $40, $80, $20 ; PRG $0B59 / CPU $CB59 ; CPU:$CB8A PRG:0B8A 01 08 00 A4 80 B4 02 2C 00 2C 80 20 08 40 80 20
|
|
.byte $80, $20, $80, $20, $80, $20, $01, $08, $00, $10, $80, $20, $01, $08, $00, $10 ; PRG $0B69 / CPU $CB69 ; CPU:$CB9A PRG:0B9A 80 20 80 20 80 20 01 08 00 10 80 20 01 08 00 10
|
|
.byte $80, $20, $80, $20, $04, $18, $80, $28, $80, $28, $04, $18, $80, $20, $80, $20 ; PRG $0B79 / CPU $CB79 ; CPU:$CBAA PRG:0BAA 80 20 80 20 04 18 80 28 80 28 04 18 80 20 80 20
|
|
.byte $80, $FF, $80, $FF, $AA, $00, $A8, $08, $20, $02, $04, $00, $BC, $80, $20, $04 ; PRG $0B89 / CPU $CB89 ; CPU:$CBBA PRG:0BBA 80 FF 80 FF AA 00 A8 08 20 02 04 00 BC 80 20 04
|
|
.byte $10, $00, $38, $80, $24, $05, $24, $00, $24, $80, $48, $80, $38, $80, $38, $02 ; PRG $0B99 / CPU $CB99 ; CPU:$CBCA PRG:0BCA 10 00 38 80 24 05 24 00 24 80 48 80 38 80 38 02
|
|
.byte $20, $80, $30, $80, $30, $80, $20, $08, $40, $80, $20, $80, $20, $80, $20, $80 ; PRG $0BA9 / CPU $CBA9 ; CPU:$CBDA PRG:0BDA 20 80 30 80 30 80 20 08 40 80 20 80 20 80 20 80
|
|
.byte $20, $80, $20, $80, $FF, $80, $FF, $AA, $A5, $25, $D0, $05, $20, $CB, $CB, $85 ; PRG $0BB9 / CPU $CBB9 ; CPU:$CBEA PRG:0BEA 20 80 20 80 FF 80 FF AA A5 25 D0 05 20 CB CB 85
|
|
.byte $3E, $60 ; PRG $0BC9 / CPU $CBC9 ; CPU:$CBFA PRG:0BFA 3E 60
|
|
; =============================================================================
|
|
; MatchRoutine_CBCB
|
|
; CPU address: $CBCB PRG offset: $0BCB
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
MatchRoutine_CBCB:
|
|
lda #$00 ; CPU:$CBFC PRG:0BFC ??
|
|
ldx #$02 ; CPU:$CBFE PRG:0BFE ??
|
|
Flow_CBCF:
|
|
sta AudioRequestFlags1,x ; CPU:$CC00 PRG:0C00 ??
|
|
dex ; CPU:$CC02 PRG:0C02 ??
|
|
bpl Flow_CBCF ; CPU:$CC04 PRG:0C04 ??
|
|
rts ; PRG $0BD4 / CPU $CBD4 ; CPU:$CC06 PRG:0C06 ??
|
|
; =============================================================================
|
|
; MatchRoutine_CBD5
|
|
; CPU address: $CBD5 PRG offset: $0BD5
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
MatchRoutine_CBD5:
|
|
lda GameMode ; CPU:$CC08 PRG:0C08 ??
|
|
bne Flow_CC05 ; CPU:$CC0A PRG:0C0A ??
|
|
ldy #$03 ; CPU:$CC0C PRG:0C0C ??
|
|
lda $03A8 ; CPU:$CC0E PRG:0C0E ??
|
|
cmp $0308 ; CPU:$CC10 PRG:0C10 ??
|
|
bcs Flow_CBEC ; CPU:$CC12 PRG:0C12 ??
|
|
ldy #$06 ; CPU:$CC14 PRG:0C14 ??
|
|
cmp $0348 ; CPU:$CC16 PRG:0C16 ??
|
|
bcc Flow_CBEC ; CPU:$CC18 PRG:0C18 ??
|
|
ldy #$00 ; CPU:$CC1A PRG:0C1A ??
|
|
Flow_CBEC:
|
|
lda $CC7E,y ; CPU:$CC1C PRG:0C1C ??
|
|
sta $030A ; CPU:$CC1E PRG:0C1E ??
|
|
lda $CC7F,y ; CPU:$CC20 PRG:0C20 ??
|
|
sta $034A ; CPU:$CC22 PRG:0C22 ??
|
|
lda $CC80,y ; CPU:$CC24 PRG:0C24 ??
|
|
sta $038A ; CPU:$CC26 PRG:0C26 ??
|
|
clc ; CPU:$CC28 PRG:0C28 ??
|
|
adc #$04 ; CPU:$CC2A PRG:0C2A ??
|
|
sta $03AA ; CPU:$CC2C PRG:0C2C ??
|
|
rts ; CPU:$CC2E PRG:0C2E ??
|
|
Flow_CC05:
|
|
ldy #$00 ; CPU:$CC30 PRG:0C30 ??
|
|
ldx #$00 ; CPU:$CC32 PRG:0C32 ??
|
|
lda $03A8 ; CPU:$CC34 PRG:0C34 ??
|
|
cmp #$70 ; CPU:$CC36 PRG:0C36 ??
|
|
bcs Flow_CC14 ; CPU:$CC38 PRG:0C38 ??
|
|
ldy #$06 ; CPU:$CC3A PRG:0C3A ??
|
|
ldx #$40 ; CPU:$CC3C PRG:0C3C ??
|
|
Flow_CC14:
|
|
cmp $0308,x ; CPU:$CC3E PRG:0C3E ??
|
|
bcs Flow_CC1C ; CPU:$CC40 PRG:0C40 ??
|
|
iny ; CPU:$CC42 PRG:0C42 ??
|
|
iny ; CPU:$CC44 PRG:0C44 ??
|
|
iny ; CPU:$CC46 PRG:0C46 ??
|
|
Flow_CC1C:
|
|
cmp $0328,x ; CPU:$CC48 PRG:0C48 ??
|
|
bcs Flow_CC24 ; CPU:$CC4A PRG:0C4A ??
|
|
iny ; CPU:$CC4C PRG:0C4C ??
|
|
iny ; CPU:$CC4E PRG:0C4E ??
|
|
iny ; CPU:$CC50 PRG:0C50 ??
|
|
Flow_CC24:
|
|
lda $CC87,y ; CPU:$CC52 PRG:0C52 ??
|
|
sta $038A ; CPU:$CC54 PRG:0C54 ??
|
|
clc ; CPU:$CC56 PRG:0C56 ??
|
|
adc #$04 ; CPU:$CC58 PRG:0C58 ??
|
|
sta $03AA ; CPU:$CC5A PRG:0C5A ??
|
|
cpy #$08 ; CPU:$CC5C PRG:0C5C ??
|
|
bcs Flow_CC59 ; CPU:$CC5E PRG:0C5E ??
|
|
lda $CC88,y ; CPU:$CC60 PRG:0C60 ??
|
|
tax ; CPU:$CC62 PRG:0C62 ??
|
|
lda $CC89,y ; CPU:$CC64 PRG:0C64 ??
|
|
tay ; CPU:$CC66 PRG:0C66 ??
|
|
jsr PhysicsRoutine_CC68 ; CPU:$CC68 PRG:0C68 ??
|
|
ldx #$58 ; CPU:$CC6A PRG:0C6A ??
|
|
ldy #$74 ; CPU:$CC6C PRG:0C6C ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_CC43
|
|
; CPU address: $CC43 PRG offset: $0C43
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_CC43:
|
|
lda $0348 ; CPU:$CC6E PRG:0C6E ??
|
|
cmp $0368 ; CPU:$CC70 PRG:0C70 ??
|
|
bcc Flow_CC52 ; CPU:$CC72 PRG:0C72 ??
|
|
stx $034A ; CPU:$CC74 PRG:0C74 ??
|
|
sty $036A ; CPU:$CC76 PRG:0C76 ??
|
|
rts ; CPU:$CC78 PRG:0C78 ??
|
|
Flow_CC52:
|
|
stx $036A ; CPU:$CC7A PRG:0C7A ??
|
|
sty $034A ; CPU:$CC7C PRG:0C7C ??
|
|
rts ; PRG $0C58 / CPU $CC58 ; CPU:$CC7E PRG:0C7E ??
|
|
Flow_CC59:
|
|
lda $CC88,y ; CPU:$CC80 PRG:0C80 ??
|
|
tax ; CPU:$CC82 PRG:0C82 ??
|
|
lda $CC89,y ; CPU:$CC84 PRG:0C84 ??
|
|
tay ; CPU:$CC86 PRG:0C86 ??
|
|
jsr PhysicsRoutine_CC43 ; CPU:$CC88 PRG:0C88 ??
|
|
ldx #$00 ; CPU:$CC8A PRG:0C8A ??
|
|
ldy #$28 ; CPU:$CC8C PRG:0C8C ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_CC68
|
|
; CPU address: $CC68 PRG offset: $0C68
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_CC68:
|
|
lda $0308 ; CPU:$CC8E PRG:0C8E ??
|
|
cmp $0328 ; CPU:$CC90 PRG:0C90 ??
|
|
bcc Flow_CC77 ; CPU:$CC92 PRG:0C92 ??
|
|
stx $030A ; CPU:$CC94 PRG:0C94 ??
|
|
sty $032A ; CPU:$CC96 PRG:0C96 ??
|
|
rts ; CPU:$CC98 PRG:0C98 ??
|
|
Flow_CC77:
|
|
stx $032A ; CPU:$CC9A PRG:0C9A ??
|
|
sty $030A ; CPU:$CC9C PRG:0C9C ??
|
|
rts ; CPU:$CC9E PRG:0C9E ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $0C7E-$0C95.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
CourtObjectSpawnParameterTable:
|
|
.byte $00, $30, $28, $08, $30, $00, $00, $28, $44, $00, $08, $30, $28, $00, $30, $50 ; PRG $0C7E / CPU $CC7E ; CPU:$CCA0 PRG:0CA0 00 30 28 08 30 00 00 28 44 00 08 30 28 00 30 50
|
|
.byte $00, $28, $6C, $50, $74, $88, $50, $6C ; PRG $0C8E / CPU $CC8E ; CPU:$CCB0 PRG:0CB0 00 28 6C 50 74 88 50 6C
|
|
; =============================================================================
|
|
; PhysicsRoutine_CC96
|
|
; CPU address: $CC96 PRG offset: $0C96
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_CC96:
|
|
lda MatchResultType ; CPU:$CCB8 PRG:0CB8 ??
|
|
beq Flow_CCD7 ; CPU:$CCBA PRG:0CBA ??
|
|
ldy $0308 ; CPU:$CCBC PRG:0CBC ??
|
|
ldx $0309 ; CPU:$CCBE PRG:0CBE ??
|
|
jsr PhysicsRoutine_CCBA ; CPU:$CCC0 PRG:0CC0 ??
|
|
bne Flow_CCA8 ; CPU:$CCC2 PRG:0CC2 ??
|
|
jsr PhysicsRoutine_CCD8 ; CPU:$CCC4 PRG:0CC4 ??
|
|
Flow_CCA8:
|
|
lda GameMode ; CPU:$CCC6 PRG:0CC6 ??
|
|
beq Flow_CCD7 ; CPU:$CCC8 PRG:0CC8 ??
|
|
ldy $0328 ; CPU:$CCCA PRG:0CCA ??
|
|
ldx $0329 ; CPU:$CCCC PRG:0CCC ??
|
|
jsr PhysicsRoutine_CCBA ; CPU:$CCCE PRG:0CCE ??
|
|
bne Flow_CCD7 ; CPU:$CCD0 PRG:0CD0 ??
|
|
jmp PhysicsRoutine_CCF5 ; CPU:$CCD2 PRG:0CD2 ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_CCBA
|
|
; CPU address: $CCBA PRG offset: $0CBA
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_CCBA:
|
|
lda #$FF ; CPU:$CCD4 PRG:0CD4 ??
|
|
cpy #$C0 ; CPU:$CCD6 PRG:0CD6 ??
|
|
bcs Flow_CCCA ; CPU:$CCD8 PRG:0CD8 ??
|
|
cpx #$4C ; CPU:$CCDA PRG:0CDA ??
|
|
bcc Flow_CCCA ; CPU:$CCDC PRG:0CDC ??
|
|
cpx #$B4 ; CPU:$CCDE PRG:0CDE ??
|
|
bcs Flow_CCCA ; CPU:$CCE0 PRG:0CE0 ??
|
|
lda #$00 ; CPU:$CCE2 PRG:0CE2 ??
|
|
Flow_CCCA:
|
|
cmp #$00 ; CPU:$CCE4 PRG:0CE4 ??
|
|
rts ; PRG $0CCC / CPU $CCCC ; CPU:$CCE6 PRG:0CE6 ??
|
|
; =============================================================================
|
|
; PhysicsRoutine_CCCD
|
|
; CPU address: $CCCD PRG offset: $0CCD
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_CCCD:
|
|
jsr PhysicsRoutine_CCD8 ; CPU:$CCE8 PRG:0CE8 ??
|
|
ldy GameMode ; CPU:$CCEA PRG:0CEA ??
|
|
beq Flow_CCD7 ; CPU:$CCEC PRG:0CEC ??
|
|
jsr PhysicsRoutine_CCF5 ; CPU:$CCEE PRG:0CEE ??
|
|
Flow_CCD7:
|
|
rts ; CPU:$CCF0 PRG:0CF0 ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_CCD8
|
|
; CPU address: $CCD8 PRG offset: $0CD8
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_CCD8:
|
|
lda #$01 ; CPU:$CCF2 PRG:0CF2 ??
|
|
sta AnimationFrame ; CPU:$CCF4 PRG:0CF4 ??
|
|
lda #$00 ; CPU:$CCF6 PRG:0CF6 ??
|
|
sta PlayerPoseId ; CPU:$CCF8 PRG:0CF8 ??
|
|
lda $0307 ; CPU:$CCFA PRG:0CFA ??
|
|
sta PlayerPoseFlags ; CPU:$CCFC PRG:0CFC ??
|
|
lda $030A ; CPU:$CCFE PRG:0CFE ??
|
|
ldx #$48 ; CPU:$CD00 PRG:0D00 ??
|
|
ldy #$A0 ; CPU:$CD02 PRG:0D02 ??
|
|
sta RacketContactFlags ; CPU:$CD04 PRG:0D04 ??
|
|
sty RacketTargetX ; CPU:$CD06 PRG:0D06 ??
|
|
stx RacketTargetY ; CPU:$CD08 PRG:0D08 ??
|
|
jmp EngineRoutine_C21C ; CPU:$CD0A PRG:0D0A ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_CCF5
|
|
; CPU address: $CCF5 PRG offset: $0CF5
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_CCF5:
|
|
lda #$01 ; CPU:$CD0C PRG:0D0C ??
|
|
sta AnimationFrame ; CPU:$CD0E PRG:0D0E ??
|
|
lda #$05 ; CPU:$CD10 PRG:0D10 ??
|
|
sta PlayerPoseId ; CPU:$CD12 PRG:0D12 ??
|
|
lda $0327 ; CPU:$CD14 PRG:0D14 ??
|
|
sta PlayerPoseFlags ; CPU:$CD16 PRG:0D16 ??
|
|
lda $032A ; CPU:$CD18 PRG:0D18 ??
|
|
ldx #$B8 ; CPU:$CD1A PRG:0D1A ??
|
|
ldy #$A0 ; CPU:$CD1C PRG:0D1C ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $0D09-$0D0A.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
PhysicsTable_CD09:
|
|
.byte $D0, $E1 ; PRG $0D09 / CPU $CD09 ; CPU:$CD1E PRG:0D1E D0 E1
|
|
; =============================================================================
|
|
; PhysicsRoutine_CD0B
|
|
; CPU address: $CD0B PRG offset: $0D0B
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_CD0B:
|
|
lda #$00 ; CPU:$CD20 PRG:0D20 ??
|
|
sta ObjectDataPointerLo ; CPU:$CD22 PRG:0D22 ??
|
|
lda #$03 ; CPU:$CD24 PRG:0D24 ??
|
|
sta ObjectDataPointerHi ; CPU:$CD26 PRG:0D26 ??
|
|
lda #$00 ; CPU:$CD28 PRG:0D28 ??
|
|
sta ObjectDataOffset ; CPU:$CD2A PRG:0D2A ??
|
|
lda #$01 ; CPU:$CD2C PRG:0D2C ??
|
|
sta ActiveObjectIndex ; CPU:$CD2E PRG:0D2E ??
|
|
ldx Zp1B ; CPU:$CD30 PRG:0D30 ??
|
|
ldy Zp1D ; CPU:$CD32 PRG:0D32 ??
|
|
lda PlayerCourtOrder ; CPU:$CD34 PRG:0D34 ??
|
|
beq Flow_CD27 ; CPU:$CD36 PRG:0D36 ??
|
|
ldx Zp1D ; CPU:$CD38 PRG:0D38 ??
|
|
ldy Zp1B ; CPU:$CD3A PRG:0D3A ??
|
|
Flow_CD27:
|
|
stx $0310 ; CPU:$CD3C PRG:0D3C ??
|
|
sty $0330 ; CPU:$CD3E PRG:0D3E ??
|
|
Flow_CD2D:
|
|
jsr EngineRoutine_C1F3 ; CPU:$CD40 PRG:0D40 ??
|
|
lda AnimationFrame ; CPU:$CD42 PRG:0D42 ??
|
|
beq Flow_CD50 ; CPU:$CD44 PRG:0D44 ??
|
|
lda BallTrajectoryFlags ; CPU:$CD46 PRG:0D46 ??
|
|
bpl Flow_CD3E ; CPU:$CD48 PRG:0D48 ??
|
|
jsr PhysicsRoutine_D580 ; CPU:$CD4A PRG:0D4A ??
|
|
jmp Flow_CD44 ; CPU:$CD4C PRG:0D4C ??
|
|
Flow_CD3E:
|
|
jsr PhysicsRoutine_CD58 ; CPU:$CD4E PRG:0D4E ??
|
|
jsr PhysicsRoutine_D0D9 ; CPU:$CD50 PRG:0D50 ??
|
|
Flow_CD44:
|
|
jsr PhysicsRoutine_D20E ; CPU:$CD52 PRG:0D52 ??
|
|
jsr PhysicsRoutine_D132 ; CPU:$CD54 PRG:0D54 ??
|
|
jsr EngineRoutine_C21C ; CPU:$CD56 PRG:0D56 ??
|
|
jsr EngineRoutine_C20E ; CPU:$CD58 PRG:0D58 ??
|
|
Flow_CD50:
|
|
jsr EngineRoutine_C206 ; CPU:$CD5A PRG:0D5A ??
|
|
dec ActiveObjectIndex ; CPU:$CD5C PRG:0D5C ??
|
|
bpl Flow_CD2D ; CPU:$CD5E PRG:0D5E ??
|
|
rts ; CPU:$CD60 PRG:0D60 ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_CD58
|
|
; CPU address: $CD58 PRG offset: $0D58
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_CD58:
|
|
lda PlayerFacingDirection ; CPU:$CD62 PRG:0D62 ??
|
|
cmp #$FF ; CPU:$CD64 PRG:0D64 ??
|
|
beq Flow_CD61 ; CPU:$CD66 PRG:0D66 ??
|
|
jmp Flow_CD92 ; CPU:$CD68 PRG:0D68 ??
|
|
Flow_CD61:
|
|
lda PlayerAnimationId ; CPU:$CD6A PRG:0D6A ??
|
|
bne Flow_CD83 ; CPU:$CD6C PRG:0D6C ??
|
|
lda RallyFlags ; CPU:$CD6E PRG:0D6E ??
|
|
and #$C0 ; CPU:$CD70 PRG:0D70 ??
|
|
beq Flow_CD7A ; CPU:$CD72 PRG:0D72 ??
|
|
sta AnimationTimer ; CPU:$CD74 PRG:0D74 ??
|
|
lda ObjectAnimationFrame ; CPU:$CD76 PRG:0D76 ??
|
|
sta PlayerAnimationId ; CPU:$CD78 PRG:0D78 ??
|
|
jsr PhysicsRoutine_D08B ; CPU:$CD7A PRG:0D7A ??
|
|
jsr PhysicsRoutine_CE7E ; CPU:$CD7C PRG:0D7C ??
|
|
jmp Flow_CDC1 ; CPU:$CD7E PRG:0D7E ??
|
|
Flow_CD7A:
|
|
jsr PhysicsRoutine_D497 ; CPU:$CD80 PRG:0D80 ??
|
|
jsr PhysicsRoutine_CDC5 ; CPU:$CD82 PRG:0D82 ??
|
|
jmp Flow_CDC1 ; CPU:$CD84 PRG:0D84 ??
|
|
Flow_CD83:
|
|
bit RacketAimOffset ; CPU:$CD86 PRG:0D86 ??
|
|
bmi Flow_CDC1 ; CPU:$CD88 PRG:0D88 ??
|
|
jsr PhysicsRoutine_CFD2 ; CPU:$CD8A PRG:0D8A ??
|
|
bpl Flow_CDC1 ; CPU:$CD8C PRG:0D8C ??
|
|
jsr PhysicsRoutine_CECA ; CPU:$CD8E PRG:0D8E ??
|
|
jmp Flow_CDC1 ; CPU:$CD90 PRG:0D90 ??
|
|
Flow_CD92:
|
|
lda PlayerAnimationId ; CPU:$CD92 PRG:0D92 ??
|
|
bne Flow_CDBE ; CPU:$CD94 PRG:0D94 ??
|
|
lda RallyFlags ; CPU:$CD96 PRG:0D96 ??
|
|
and #$C0 ; CPU:$CD98 PRG:0D98 ??
|
|
beq Flow_CDBE ; CPU:$CD9A PRG:0D9A ??
|
|
ldy ObjectAnimationFrame ; CPU:$CD9C PRG:0D9C ??
|
|
sty PlayerAnimationId ; CPU:$CD9E PRG:0D9E ??
|
|
and #$80 ; CPU:$CDA0 PRG:0DA0 ??
|
|
beq Flow_CDAE ; CPU:$CDA2 PRG:0DA2 ??
|
|
ldy #$38 ; CPU:$CDA4 PRG:0DA4 ??
|
|
lda CourtSide ; CPU:$CDA6 PRG:0DA6 ??
|
|
beq Flow_CDB6 ; CPU:$CDA8 PRG:0DA8 ??
|
|
ldy #$49 ; CPU:$CDAA PRG:0DAA ??
|
|
bne Flow_CDB6 ; CPU:$CDAC PRG:0DAC ??
|
|
Flow_CDAE:
|
|
ldy #$95 ; CPU:$CDAE PRG:0DAE ??
|
|
lda CourtSide ; CPU:$CDB0 PRG:0DB0 ??
|
|
beq Flow_CDB6 ; CPU:$CDB2 PRG:0DB2 ??
|
|
ldy #$A6 ; CPU:$CDB4 PRG:0DB4 ??
|
|
Flow_CDB6:
|
|
sty PoseSequenceOffset ; CPU:$CDB6 PRG:0DB6 ??
|
|
lda #$00 ; CPU:$CDB8 PRG:0DB8 ??
|
|
sta PoseFrameTimer ; CPU:$CDBA PRG:0DBA ??
|
|
beq Flow_CDC1 ; CPU:$CDBC PRG:0DBC ??
|
|
Flow_CDBE:
|
|
jsr PhysicsRoutine_CDC5 ; CPU:$CDBE PRG:0DBE ??
|
|
Flow_CDC1:
|
|
jsr PhysicsRoutine_D27D ; CPU:$CDC0 PRG:0DC0 ??
|
|
rts ; CPU:$CDC2 PRG:0DC2 ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_CDC5
|
|
; CPU address: $CDC5 PRG offset: $0DC5
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_CDC5:
|
|
lda PlayerAnimationId ; CPU:$CDC4 PRG:0DC4 ??
|
|
bne Flow_CE02 ; CPU:$CDC6 PRG:0DC6 ??
|
|
lda PlayerFacingDirection ; CPU:$CDC8 PRG:0DC8 ??
|
|
cmp #$FF ; CPU:$CDCA PRG:0DCA ??
|
|
bne Flow_CE03 ; CPU:$CDCC PRG:0DCC ??
|
|
lda PoseSequenceOffset ; CPU:$CDCE PRG:0DCE ??
|
|
cmp #$37 ; CPU:$CDD0 PRG:0DD0 ??
|
|
bcs Flow_CE02 ; CPU:$CDD2 PRG:0DD2 ??
|
|
cmp #$0D ; CPU:$CDD4 PRG:0DD4 ??
|
|
bcc Flow_CDE7 ; CPU:$CDD6 PRG:0DD6 ??
|
|
cmp #$29 ; CPU:$CDD8 PRG:0DD8 ??
|
|
bcs Flow_CDF1 ; CPU:$CDDA PRG:0DDA ??
|
|
ldy #$C8 ; CPU:$CDDC PRG:0DDC ??
|
|
lda CourtSide ; CPU:$CDDE PRG:0DDE ??
|
|
beq Flow_CDFF ; CPU:$CDE0 PRG:0DE0 ??
|
|
ldy #$D3 ; CPU:$CDE2 PRG:0DE2 ??
|
|
bne Flow_CDFF ; CPU:$CDE4 PRG:0DE4 ??
|
|
Flow_CDE7:
|
|
ldy #$D0 ; CPU:$CDE6 PRG:0DE6 ??
|
|
lda CourtSide ; CPU:$CDE8 PRG:0DE8 ??
|
|
bne Flow_CDFF ; CPU:$CDEA PRG:0DEA ??
|
|
ldy #$00 ; CPU:$CDEC PRG:0DEC ??
|
|
beq Flow_CDF9 ; CPU:$CDEE PRG:0DEE ??
|
|
Flow_CDF1:
|
|
ldy #$C5 ; CPU:$CDF0 PRG:0DF0 ??
|
|
lda CourtSide ; CPU:$CDF2 PRG:0DF2 ??
|
|
beq Flow_CDFF ; CPU:$CDF4 PRG:0DF4 ??
|
|
ldy #$2A ; CPU:$CDF6 PRG:0DF6 ??
|
|
Flow_CDF9:
|
|
lda RallyFlags ; CPU:$CDF8 PRG:0DF8 ??
|
|
and #$0F ; CPU:$CDFA PRG:0DFA ??
|
|
bne Flow_CE02 ; CPU:$CDFC PRG:0DFC ??
|
|
Flow_CDFF:
|
|
jmp Flow_CE55 ; CPU:$CDFE PRG:0DFE ??
|
|
Flow_CE02:
|
|
rts ; CPU:$CE00 PRG:0E00 ??
|
|
Flow_CE03:
|
|
lda PoseSequenceOffset ; CPU:$CE02 PRG:0E02 ??
|
|
cmp #$37 ; CPU:$CE04 PRG:0E04 ??
|
|
bcs Flow_CE5B ; CPU:$CE06 PRG:0E06 ??
|
|
cmp #$0D ; CPU:$CE08 PRG:0E08 ??
|
|
bcc Flow_CE2D ; CPU:$CE0A PRG:0E0A ??
|
|
cmp #$29 ; CPU:$CE0C PRG:0E0C ??
|
|
bcs Flow_CE41 ; CPU:$CE0E PRG:0E0E ??
|
|
lda RallyFlags ; CPU:$CE10 PRG:0E10 ??
|
|
and #$0F ; CPU:$CE12 PRG:0E12 ??
|
|
beq Flow_CE5C ; CPU:$CE14 PRG:0E14 ??
|
|
ldy #$C8 ; CPU:$CE16 PRG:0E16 ??
|
|
and #$03 ; CPU:$CE18 PRG:0E18 ??
|
|
beq Flow_CE25 ; CPU:$CE1A PRG:0E1A ??
|
|
cmp #$01 ; CPU:$CE1C PRG:0E1C ??
|
|
beq Flow_CE55 ; CPU:$CE1E PRG:0E1E ??
|
|
Flow_CE21:
|
|
ldy #$D3 ; CPU:$CE20 PRG:0E20 ??
|
|
bne Flow_CE55 ; CPU:$CE22 PRG:0E22 ??
|
|
Flow_CE25:
|
|
lda RacketTargetY ; CPU:$CE24 PRG:0E24 ??
|
|
cmp #$80 ; CPU:$CE26 PRG:0E26 ??
|
|
bcc Flow_CE55 ; CPU:$CE28 PRG:0E28 ??
|
|
bcs Flow_CE21 ; CPU:$CE2A PRG:0E2A ??
|
|
Flow_CE2D:
|
|
ldx #$00 ; CPU:$CE2C PRG:0E2C ??
|
|
stx CourtSide ; CPU:$CE2E PRG:0E2E ??
|
|
ldy #$00 ; CPU:$CE30 PRG:0E30 ??
|
|
lda RallyFlags ; CPU:$CE32 PRG:0E32 ??
|
|
and #$0F ; CPU:$CE34 PRG:0E34 ??
|
|
beq Flow_CE55 ; CPU:$CE36 PRG:0E36 ??
|
|
ldy #$D0 ; CPU:$CE38 PRG:0E38 ??
|
|
and #$02 ; CPU:$CE3A PRG:0E3A ??
|
|
bne Flow_CE55 ; CPU:$CE3C PRG:0E3C ??
|
|
beq Flow_CE5B ; CPU:$CE3E PRG:0E3E ??
|
|
Flow_CE41:
|
|
ldx #$01 ; CPU:$CE40 PRG:0E40 ??
|
|
stx CourtSide ; CPU:$CE42 PRG:0E42 ??
|
|
ldy #$2A ; CPU:$CE44 PRG:0E44 ??
|
|
lda RallyFlags ; CPU:$CE46 PRG:0E46 ??
|
|
and #$0F ; CPU:$CE48 PRG:0E48 ??
|
|
beq Flow_CE55 ; CPU:$CE4A PRG:0E4A ??
|
|
ldy #$C5 ; CPU:$CE4C PRG:0E4C ??
|
|
and #$01 ; CPU:$CE4E PRG:0E4E ??
|
|
bne Flow_CE55 ; CPU:$CE50 PRG:0E50 ??
|
|
beq Flow_CE5B ; CPU:$CE52 PRG:0E52 ??
|
|
Flow_CE55:
|
|
sty PoseSequenceOffset ; CPU:$CE54 PRG:0E54 ??
|
|
lda #$00 ; CPU:$CE56 PRG:0E56 ??
|
|
sta PoseFrameTimer ; CPU:$CE58 PRG:0E58 ??
|
|
Flow_CE5B:
|
|
rts ; CPU:$CE5A PRG:0E5A ??
|
|
Flow_CE5C:
|
|
ldx #$0E ; CPU:$CE5C PRG:0E5C ??
|
|
lda PoseSequenceOffset ; CPU:$CE5E PRG:0E5E ??
|
|
cmp #$1B ; CPU:$CE60 PRG:0E60 ??
|
|
bcc Flow_CE66 ; CPU:$CE62 PRG:0E62 ??
|
|
ldx #$1C ; CPU:$CE64 PRG:0E64 ??
|
|
Flow_CE66:
|
|
stx MathResultHi ; CPU:$CE66 PRG:0E66 ??
|
|
ldy #$0E ; CPU:$CE68 PRG:0E68 ??
|
|
ldx #$00 ; CPU:$CE6A PRG:0E6A ??
|
|
lda RacketTargetY ; CPU:$CE6C PRG:0E6C ??
|
|
cmp #$80 ; CPU:$CE6E PRG:0E6E ??
|
|
bcc Flow_CE76 ; CPU:$CE70 PRG:0E70 ??
|
|
ldy #$1C ; CPU:$CE72 PRG:0E72 ??
|
|
ldx #$01 ; CPU:$CE74 PRG:0E74 ??
|
|
Flow_CE76:
|
|
stx CourtSide ; CPU:$CE76 PRG:0E76 ??
|
|
cpy MathResultHi ; CPU:$CE78 PRG:0E78 ??
|
|
beq Flow_CE5B ; CPU:$CE7A PRG:0E7A ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $0E7C-$0E7D.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
PhysicsTable_CE7C:
|
|
.byte $D0, $D7 ; PRG $0E7C / CPU $CE7C ; CPU:$CE7C PRG:0E7C D0 D7
|
|
; =============================================================================
|
|
; PhysicsRoutine_CE7E
|
|
; CPU address: $CE7E PRG offset: $0E7E
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_CE7E:
|
|
ldx #$00 ; CPU:$CE7E PRG:0E7E ??
|
|
bit RallyFlags ; CPU:$CE80 PRG:0E80 ??
|
|
bmi Flow_CE86 ; CPU:$CE82 PRG:0E82 ??
|
|
ldx #$06 ; CPU:$CE84 PRG:0E84 ??
|
|
Flow_CE86:
|
|
lda RacketTargetX ; CPU:$CE86 PRG:0E86 ??
|
|
cmp #$A8 ; CPU:$CE88 PRG:0E88 ??
|
|
bcs Flow_CE8F ; CPU:$CE8A PRG:0E8A ??
|
|
inx ; CPU:$CE8C PRG:0E8C ??
|
|
inx ; CPU:$CE8E PRG:0E8E ??
|
|
inx ; CPU:$CE90 PRG:0E90 ??
|
|
Flow_CE8F:
|
|
lda BallHeight ; CPU:$CE92 PRG:0E92 ??
|
|
cmp #$10 ; CPU:$CE94 PRG:0E94 ??
|
|
bcc Flow_CE9B ; CPU:$CE96 PRG:0E96 ??
|
|
inx ; CPU:$CE98 PRG:0E98 ??
|
|
cmp #$80 ; CPU:$CE9A PRG:0E9A ??
|
|
bcc Flow_CE9B ; CPU:$CE9C PRG:0E9C ??
|
|
inx ; CPU:$CE9E PRG:0E9E ??
|
|
Flow_CE9B:
|
|
stx ObjectAnimationState ; CPU:$CEA0 PRG:0EA0 ??
|
|
lda CourtSide ; CPU:$CEA2 PRG:0EA2 ??
|
|
bne Flow_CEA7 ; CPU:$CEA4 PRG:0EA4 ??
|
|
lda $CEB1,x ; CPU:$CEA6 PRG:0EA6 ??
|
|
jmp Flow_CEAA ; CPU:$CEA8 PRG:0EA8 ??
|
|
Flow_CEA7:
|
|
lda $CEBD,x ; CPU:$CEAA PRG:0EAA ??
|
|
Flow_CEAA:
|
|
sta PoseSequenceOffset ; CPU:$CEAC PRG:0EAC ??
|
|
lda #$01 ; CPU:$CEAE PRG:0EAE ??
|
|
sta PoseFrameTimer ; CPU:$CEB0 PRG:0EB0 ??
|
|
rts ; CPU:$CEB2 PRG:0EB2 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $0EB1-$0EC9.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
BallStateTransitionParameterTable:
|
|
.byte $38, $38, $5A, $79, $79, $5A, $95, $95, $38, $95, $95, $38, $49, $49, $6B, $87 ; PRG $0EB1 / CPU $CEB1 ; CPU:$CEB4 PRG:0EB4 38 38 5A 79 79 5A 95 95 38 95 95 38 49 49 6B 87
|
|
.byte $87, $6B, $A6, $A6, $49, $A6, $A6, $49 ; PRG $0EC1 / CPU $CEC1 ; CPU:$CEC4 PRG:0EC4 87 6B A6 A6 49 A6 A6 49
|
|
FlowEntry_CEC9:
|
|
.byte $60 ; PRG $0EC9 / CPU $CEC9 ; CPU:$CECC PRG:0ECC 60
|
|
; =============================================================================
|
|
; PhysicsRoutine_CECA
|
|
; CPU address: $CECA PRG offset: $0ECA
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_CECA:
|
|
lda ObjectAnimationState ; CPU:$CECD PRG:0ECD ??
|
|
cmp #$02 ; CPU:$CECF PRG:0ECF ??
|
|
beq Flow_CED4 ; CPU:$CED1 PRG:0ED1 ??
|
|
cmp #$05 ; CPU:$CED3 PRG:0ED3 ??
|
|
bne Flow_CEDE ; CPU:$CED5 PRG:0ED5 ??
|
|
Flow_CED4:
|
|
ldx #$06 ; CPU:$CED7 PRG:0ED7 ??
|
|
ldy CourtSide ; CPU:$CED9 PRG:0ED9 ??
|
|
beq Flow_CEE6 ; CPU:$CEDB PRG:0EDB ??
|
|
ldx #$FA ; CPU:$CEDD PRG:0EDD ??
|
|
bne Flow_CEE6 ; CPU:$CEDF PRG:0EDF ??
|
|
Flow_CEDE:
|
|
ldx #$0C ; CPU:$CEE1 PRG:0EE1 ??
|
|
ldy CourtSide ; CPU:$CEE3 PRG:0EE3 ??
|
|
beq Flow_CEE6 ; CPU:$CEE5 PRG:0EE5 ??
|
|
ldx #$F3 ; CPU:$CEE7 PRG:0EE7 ??
|
|
Flow_CEE6:
|
|
stx Zp11 ; CPU:$CEE9 PRG:0EE9 ??
|
|
lda RacketTargetY ; CPU:$CEEB PRG:0EEB ??
|
|
clc ; CPU:$CEED PRG:0EED ??
|
|
adc Zp11 ; CPU:$CEEF PRG:0EEF ??
|
|
sec ; CPU:$CEF1 PRG:0EF1 ??
|
|
sbc BallHeightReference ; CPU:$CEF3 PRG:0EF3 ??
|
|
bcc Flow_CEF8 ; CPU:$CEF5 PRG:0EF5 ??
|
|
cmp #$0A ; CPU:$CEF7 PRG:0EF7 ??
|
|
bcs FlowEntry_CEC9 ; CPU:$CEF9 PRG:0EF9 ??
|
|
bcc Flow_CEFC ; CPU:$CEFB PRG:0EFB ??
|
|
Flow_CEF8:
|
|
cmp #$F6 ; CPU:$CEFD PRG:0EFD ??
|
|
bcc FlowEntry_CEC9 ; CPU:$CEFF PRG:0EFF ??
|
|
Flow_CEFC:
|
|
lda BallHeight ; CPU:$CF01 PRG:0F01 ??
|
|
cmp #$05 ; CPU:$CF03 PRG:0F03 ??
|
|
bcc FlowEntry_CEC9 ; CPU:$CF05 PRG:0F05 ??
|
|
cmp #$B0 ; CPU:$CF07 PRG:0F07 ??
|
|
bcs FlowEntry_CEC9 ; CPU:$CF09 PRG:0F09 ??
|
|
lda ActiveObjectIndex ; CPU:$CF0B PRG:0F0B ??
|
|
bne Flow_CF14 ; CPU:$CF0D PRG:0F0D ??
|
|
bit BallTrajectoryFlags ; CPU:$CF0F PRG:0F0F ??
|
|
bvc Flow_CF14 ; CPU:$CF11 PRG:0F11 ??
|
|
lda #$02 ; CPU:$CF13 PRG:0F13 ??
|
|
sta PlayerActionState ; CPU:$CF15 PRG:0F15 ??
|
|
bne FlowEntry_CEC9 ; CPU:$CF17 PRG:0F17 ??
|
|
Flow_CF14:
|
|
lda ObjectAnimationState ; CPU:$CF19 PRG:0F19 ??
|
|
cmp #$08 ; CPU:$CF1B PRG:0F1B ??
|
|
beq FlowEntry_CEC9 ; CPU:$CF1D PRG:0F1D ??
|
|
cmp #$0B ; CPU:$CF1F PRG:0F1F ??
|
|
beq FlowEntry_CEC9 ; CPU:$CF21 PRG:0F21 ??
|
|
asl a ; CPU:$CF23 PRG:0F23 ??
|
|
asl a ; CPU:$CF25 PRG:0F25 ??
|
|
tay ; CPU:$CF27 PRG:0F27 ??
|
|
lda $CFA2,y ; CPU:$CF29 PRG:0F29 ??
|
|
sta PlayerActionType ; CPU:$CF2B PRG:0F2B ??
|
|
iny ; CPU:$CF2D PRG:0F2D ??
|
|
lda $CFA2,y ; CPU:$CF2F PRG:0F2F ??
|
|
sta PlayerActionParameter ; CPU:$CF31 PRG:0F31 ??
|
|
iny ; CPU:$CF33 PRG:0F33 ??
|
|
lda $CFA2,y ; CPU:$CF35 PRG:0F35 ??
|
|
clc ; CPU:$CF37 PRG:0F37 ??
|
|
adc Player2YSubpixel ; CPU:$CF39 PRG:0F39 ??
|
|
sta PlayerTargetYLo ; CPU:$CF3B PRG:0F3B ??
|
|
iny ; CPU:$CF3D PRG:0F3D ??
|
|
lda $CFA2,y ; CPU:$CF3F PRG:0F3F ??
|
|
adc Player2YPosition ; CPU:$CF41 PRG:0F41 ??
|
|
sta PlayerTargetYHi ; CPU:$CF43 PRG:0F43 ??
|
|
lda Player1YSubpixel ; CPU:$CF45 PRG:0F45 ??
|
|
sta MathResultLo ; CPU:$CF47 PRG:0F47 ??
|
|
lda Player1YPosition ; CPU:$CF49 PRG:0F49 ??
|
|
sta MathResultHi ; CPU:$CF4B PRG:0F4B ??
|
|
lda PlayerAnimationId ; CPU:$CF4D PRG:0F4D ??
|
|
sec ; CPU:$CF4F PRG:0F4F ??
|
|
sbc #$13 ; CPU:$CF51 PRG:0F51 ??
|
|
ldy ObjectAnimationFrame ; CPU:$CF53 PRG:0F53 ??
|
|
cpy #$18 ; CPU:$CF55 PRG:0F55 ??
|
|
beq Flow_CF53 ; CPU:$CF57 PRG:0F57 ??
|
|
sec ; CPU:$CF59 PRG:0F59 ??
|
|
sbc #$05 ; CPU:$CF5B PRG:0F5B ??
|
|
Flow_CF53:
|
|
ldy CourtSide ; CPU:$CF5D PRG:0F5D ??
|
|
beq Flow_CF5C ; CPU:$CF5F PRG:0F5F ??
|
|
eor #$FF ; CPU:$CF61 PRG:0F61 ??
|
|
clc ; CPU:$CF63 PRG:0F63 ??
|
|
adc #$02 ; CPU:$CF65 PRG:0F65 ??
|
|
Flow_CF5C:
|
|
sta SignedAimDelta ; CPU:$CF67 PRG:0F67 ??
|
|
bit SignedAimDelta ; CPU:$CF69 PRG:0F69 ??
|
|
bpl Flow_CF67 ; CPU:$CF6B PRG:0F6B ??
|
|
eor #$FF ; CPU:$CF6D PRG:0F6D ??
|
|
clc ; CPU:$CF6F PRG:0F6F ??
|
|
adc #$01 ; CPU:$CF71 PRG:0F71 ??
|
|
Flow_CF67:
|
|
lsr a ; CPU:$CF73 PRG:0F73 ??
|
|
tax ; CPU:$CF75 PRG:0F75 ??
|
|
beq Flow_CF8D ; CPU:$CF77 PRG:0F77 ??
|
|
lda #$00 ; CPU:$CF79 PRG:0F79 ??
|
|
sta MathOperandHi ; CPU:$CF7B PRG:0F7B ??
|
|
ldy #$C0 ; CPU:$CF7D PRG:0F7D ??
|
|
lda ObjectAnimationFrame ; CPU:$CF7F PRG:0F7F ??
|
|
cmp #$18 ; CPU:$CF81 PRG:0F81 ??
|
|
bne Flow_CF7B ; CPU:$CF83 PRG:0F83 ??
|
|
ldy #$20 ; CPU:$CF85 PRG:0F85 ??
|
|
inc MathOperandHi ; CPU:$CF87 PRG:0F87 ??
|
|
Flow_CF7B:
|
|
sty MathOperandLo ; CPU:$CF89 PRG:0F89 ??
|
|
lda SignedAimDelta ; CPU:$CF8B PRG:0F8B ??
|
|
bpl Flow_CF87 ; CPU:$CF8D PRG:0F8D ??
|
|
jsr Subtract16BitZp12FromZp14 ; CPU:$CF8F PRG:0F8F ??
|
|
jmp Flow_CF8A ; CPU:$CF91 PRG:0F91 ??
|
|
Flow_CF87:
|
|
jsr Add16BitZp12ToZp14 ; CPU:$CF93 PRG:0F93 ??
|
|
Flow_CF8A:
|
|
dex ; CPU:$CF95 PRG:0F95 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $0F8B-$0F8C.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
PhysicsTable_CF8B:
|
|
.byte $D0, $F0 ; PRG $0F8B / CPU $CF8B ; CPU:$CF97 PRG:0F97 D0 F0
|
|
Flow_CF8D:
|
|
lda MathResultHi ; CPU:$CF99 PRG:0F99 ??
|
|
sta PlayerTargetXHi ; CPU:$CF9B PRG:0F9B ??
|
|
lda MathResultLo ; CPU:$CF9D PRG:0F9D ??
|
|
sta PlayerTargetXLo ; CPU:$CF9F PRG:0F9F ??
|
|
lda #$01 ; CPU:$CFA1 PRG:0FA1 ??
|
|
sta PlayerActionState ; CPU:$CFA3 PRG:0FA3 ??
|
|
lda ActiveObjectIndex ; CPU:$CFA5 PRG:0FA5 ??
|
|
sta Zp40 ; CPU:$CFA7 PRG:0FA7 ??
|
|
lda #$0A ; CPU:$CFA9 PRG:0FA9 ??
|
|
sta PlayerActionDuration ; CPU:$CFAB PRG:0FAB ??
|
|
rts ; CPU:$CFAD PRG:0FAD ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $0FA2-$0FD1.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
PlayerActionAndTargetOffsetTable:
|
|
.byte $00, $01, $80, $0D, $00, $00, $00, $0E, $02, $01, $00, $0B, $01, $01, $00, $09 ; PRG $0FA2 / CPU $CFA2 ; CPU:$CFAF PRG:0FAF 00 01 80 0D 00 00 00 0E 02 01 00 0B 01 01 00 09
|
|
.byte $01, $00, $00, $09, $02, $00, $00, $07, $04, $01, $80, $0E, $04, $00, $80, $0E ; PRG $0FB2 / CPU $CFB2 ; CPU:$CFBF PRG:0FBF 01 00 00 09 02 00 00 07 04 01 80 0E 04 00 80 0E
|
|
.byte $00, $00, $00, $00, $04, $02, $A0, $0B, $04, $02, $60, $0B, $00, $00, $00, $00 ; PRG $0FC2 / CPU $CFC2 ; CPU:$CFCF PRG:0FCF 00 00 00 00 04 02 A0 0B 04 02 60 0B 00 00 00 00
|
|
; =============================================================================
|
|
; PhysicsRoutine_CFD2
|
|
; CPU address: $CFD2 PRG offset: $0FD2
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_CFD2:
|
|
lda PlayerAnimationId ; CPU:$CFDF PRG:0FDF ??
|
|
cmp #$09 ; CPU:$CFE1 PRG:0FE1 ??
|
|
bcc Flow_D056 ; CPU:$CFE3 PRG:0FE3 ??
|
|
jsr PhysicsRoutine_D0A2 ; CPU:$CFE5 PRG:0FE5 ??
|
|
bmi Flow_D00F ; CPU:$CFE7 PRG:0FE7 ??
|
|
lda PlayerPoseId ; CPU:$CFE9 PRG:0FE9 ??
|
|
cmp #$02 ; CPU:$CFEB PRG:0FEB ??
|
|
beq Flow_CFEB ; CPU:$CFED PRG:0FED ??
|
|
cmp #$07 ; CPU:$CFEF PRG:0FEF ??
|
|
beq Flow_CFEB ; CPU:$CFF1 PRG:0FF1 ??
|
|
cmp #$18 ; CPU:$CFF3 PRG:0FF3 ??
|
|
bne Flow_D00C ; CPU:$CFF5 PRG:0FF5 ??
|
|
Flow_CFEB:
|
|
ldy PoseFrameTimer ; CPU:$CFF7 PRG:0FF7 ??
|
|
dey ; CPU:$CFF9 PRG:0FF9 ??
|
|
bne Flow_D00C ; CPU:$CFFB PRG:0FFB ??
|
|
lda RacketAimOffset ; CPU:$CFFD PRG:0FFD ??
|
|
cmp #$0E ; CPU:$CFFF PRG:0FFF ??
|
|
bcs Flow_D00C ; CPU:$D001 PRG:1001 ??
|
|
lda PlayerPoseId ; CPU:$D003 PRG:1003 ??
|
|
cmp #$18 ; CPU:$D005 PRG:1005 ??
|
|
bne Flow_D003 ; CPU:$D007 PRG:1007 ??
|
|
lda PlayerAnimationId ; CPU:$D009 PRG:1009 ??
|
|
clc ; CPU:$D00B PRG:100B ??
|
|
adc #$05 ; CPU:$D00D PRG:100D ??
|
|
sta PlayerAnimationId ; CPU:$D00F PRG:100F ??
|
|
Flow_D003:
|
|
inc PoseFrameTimer ; CPU:$D011 PRG:1011 ??
|
|
inc PoseFrameTimer ; CPU:$D013 PRG:1013 ??
|
|
lda #$80 ; CPU:$D015 PRG:1015 ??
|
|
sta RacketAimOffset ; CPU:$D017 PRG:1017 ??
|
|
rts ; CPU:$D019 PRG:1019 ??
|
|
Flow_D00C:
|
|
lda #$7F ; CPU:$D01B PRG:101B ??
|
|
rts ; PRG $100E / CPU $D00E ; CPU:$D01D PRG:101D ??
|
|
Flow_D00F:
|
|
lda ObjectAnimationState ; CPU:$D01F PRG:101F ??
|
|
cmp #$06 ; CPU:$D021 PRG:1021 ??
|
|
bcs Flow_D027 ; CPU:$D023 PRG:1023 ??
|
|
cmp #$02 ; CPU:$D025 PRG:1025 ??
|
|
bcc Flow_D027 ; CPU:$D027 PRG:1027 ??
|
|
cmp #$03 ; CPU:$D029 PRG:1029 ??
|
|
beq Flow_D021 ; CPU:$D02B PRG:102B ??
|
|
cmp #$05 ; CPU:$D02D PRG:102D ??
|
|
bne Flow_D05D ; CPU:$D02F PRG:102F ??
|
|
Flow_D021:
|
|
lda CourtSide ; CPU:$D031 PRG:1031 ??
|
|
beq Flow_D066 ; CPU:$D033 PRG:1033 ??
|
|
bne Flow_D074 ; CPU:$D035 PRG:1035 ??
|
|
Flow_D027:
|
|
lda PlayerPoseId ; CPU:$D037 PRG:1037 ??
|
|
cmp #$01 ; CPU:$D039 PRG:1039 ??
|
|
beq Flow_D043 ; CPU:$D03B PRG:103B ??
|
|
cmp #$06 ; CPU:$D03D PRG:103D ??
|
|
beq Flow_D043 ; CPU:$D03F PRG:103F ??
|
|
cmp #$02 ; CPU:$D041 PRG:1041 ??
|
|
beq Flow_D049 ; CPU:$D043 PRG:1043 ??
|
|
cmp #$07 ; CPU:$D045 PRG:1045 ??
|
|
beq Flow_D049 ; CPU:$D047 PRG:1047 ??
|
|
cmp #$03 ; CPU:$D049 PRG:1049 ??
|
|
beq Flow_D053 ; CPU:$D04B PRG:104B ??
|
|
cmp #$08 ; CPU:$D04D PRG:104D ??
|
|
beq Flow_D053 ; CPU:$D04F PRG:104F ??
|
|
bne Flow_D056 ; CPU:$D051 PRG:1051 ??
|
|
Flow_D043:
|
|
lda #$02 ; CPU:$D053 PRG:1053 ??
|
|
sta PoseFrameTimer ; CPU:$D055 PRG:1055 ??
|
|
bne Flow_D053 ; CPU:$D057 PRG:1057 ??
|
|
Flow_D049:
|
|
lda PoseFrameTimer ; CPU:$D059 PRG:1059 ??
|
|
cmp #$03 ; CPU:$D05B PRG:105B ??
|
|
bcs Flow_D053 ; CPU:$D05D PRG:105D ??
|
|
lda #$03 ; CPU:$D05F PRG:105F ??
|
|
sta PoseFrameTimer ; CPU:$D061 PRG:1061 ??
|
|
Flow_D053:
|
|
lda #$80 ; CPU:$D063 PRG:1063 ??
|
|
rts
|
|
; PRG $1055 / CPU $D055
|
|
Flow_D056:
|
|
lda #$80 ; CPU:$D065 PRG:1065 ??
|
|
sta RacketAimOffset ; CPU:$D067 PRG:1067 ??
|
|
lda #$7F ; CPU:$D069 PRG:1069 ??
|
|
rts ; CPU:$D06B PRG:106B ??
|
|
Flow_D05D:
|
|
inc PlayerAnimationId ; CPU:$D06D PRG:106D ??
|
|
inc PlayerAnimationId ; CPU:$D06F PRG:106F ??
|
|
inc PlayerAnimationId ; CPU:$D071 PRG:1071 ??
|
|
jmp Flow_D027 ; CPU:$D073 PRG:1073 ??
|
|
Flow_D066:
|
|
dec PlayerAnimationId ; CPU:$D075 PRG:1075 ??
|
|
lda PlayerPoseId ; CPU:$D077 PRG:1077 ??
|
|
cmp #$13 ; CPU:$D079 PRG:1079 ??
|
|
beq Flow_D049 ; CPU:$D07B PRG:107B ??
|
|
cmp #$14 ; CPU:$D07D PRG:107D ??
|
|
beq Flow_D049 ; CPU:$D07F PRG:107F ??
|
|
bne Flow_D056 ; CPU:$D081 PRG:1081 ??
|
|
Flow_D074:
|
|
lda PlayerAnimationId ; CPU:$D083 PRG:1083 ??
|
|
clc ; CPU:$D085 PRG:1085 ??
|
|
adc #$05 ; CPU:$D087 PRG:1087 ??
|
|
sta PlayerAnimationId ; CPU:$D089 PRG:1089 ??
|
|
lda PlayerPoseId ; CPU:$D08B PRG:108B ??
|
|
cmp #$17 ; CPU:$D08D PRG:108D ??
|
|
beq Flow_D043 ; CPU:$D08F PRG:108F ??
|
|
cmp #$18 ; CPU:$D091 PRG:1091 ??
|
|
beq Flow_D049 ; CPU:$D093 PRG:1093 ??
|
|
cmp #$19 ; CPU:$D095 PRG:1095 ??
|
|
beq Flow_D053 ; CPU:$D097 PRG:1097 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $1089-$108A.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
PhysicsTable_D089:
|
|
.byte $D0, $CB ; PRG $1089 / CPU $D089 ; CPU:$D099 PRG:1099 D0 CB
|
|
; =============================================================================
|
|
; PhysicsRoutine_D08B
|
|
; CPU address: $D08B PRG offset: $108B
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D08B:
|
|
lda RacketTargetX ; CPU:$D09B PRG:109B ??
|
|
clc ; CPU:$D09D PRG:109D ??
|
|
adc #$06 ; CPU:$D09F PRG:109F ??
|
|
sec ; CPU:$D0A1 PRG:10A1 ??
|
|
sbc BallTargetOffset ; CPU:$D0A3 PRG:10A3 ??
|
|
Flow_D093:
|
|
bcc Flow_D09B ; CPU:$D0A5 PRG:10A5 ??
|
|
bpl Flow_D09F ; CPU:$D0A7 PRG:10A7 ??
|
|
lda #$7F ; CPU:$D0A9 PRG:10A9 ??
|
|
bpl Flow_D09F ; CPU:$D0AB PRG:10AB ??
|
|
Flow_D09B:
|
|
bmi Flow_D09F ; CPU:$D0AD PRG:10AD ??
|
|
lda #$80 ; CPU:$D0AF PRG:10AF ??
|
|
Flow_D09F:
|
|
sta RacketAimOffset ; CPU:$D0B1 PRG:10B1 ??
|
|
rts ; CPU:$D0B3 PRG:10B3 ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_D0A2
|
|
; CPU address: $D0A2 PRG offset: $10A2
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D0A2:
|
|
ldy PlayerPoseId ; CPU:$D0B5 PRG:10B5 ??
|
|
lda $D0B1,y ; CPU:$D0B7 PRG:10B7 ??
|
|
clc ; CPU:$D0B9 PRG:10B9 ??
|
|
adc RacketTargetX ; CPU:$D0BB PRG:10BB ??
|
|
sec ; CPU:$D0BD PRG:10BD ??
|
|
sbc $0388 ; CPU:$D0BF PRG:10BF ??
|
|
jmp Flow_D093 ; CPU:$D0C1 PRG:10C1 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $10B1-$10D8.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
PlayerPoseRacketXOffsetTable:
|
|
.byte $03, $F8, $F4, $E6, $00, $03, $F8, $F4, $E6, $00, $00, $00, $00, $00, $00, $00 ; PRG $10B1 / CPU $D0B1 ; CPU:$D0C3 PRG:10C3 03 F8 F4 E6 00 03 F8 F4 E6 00 00 00 00 00 00 00
|
|
.byte $00, $00, $00, $E4, $D4, $00, $00, $F8, $E4, $D4, $00, $00, $00, $00, $00, $00 ; PRG $10C1 / CPU $D0C1 ; CPU:$D0D3 PRG:10D3 00 00 00 E4 D4 00 00 F8 E4 D4 00 00 00 00 00 00
|
|
.byte $00, $00, $00, $00, $00, $00, $00, $00 ; PRG $10D1 / CPU $D0D1 ; CPU:$D0E3 PRG:10E3 00 00 00 00 00 00 00 00
|
|
; =============================================================================
|
|
; PhysicsRoutine_D0D9
|
|
; CPU address: $D0D9 PRG offset: $10D9
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D0D9:
|
|
jsr PhysicsRoutine_D0FA ; CPU:$D0EB PRG:10EB ??
|
|
lda PlayerActionDuration ; CPU:$D0ED PRG:10ED ??
|
|
beq Flow_D0E2 ; CPU:$D0EF PRG:10EF ??
|
|
dec PlayerActionDuration ; CPU:$D0F1 PRG:10F1 ??
|
|
Flow_D0E2:
|
|
beq Flow_D0EF ; CPU:$D0F3 PRG:10F3 ??
|
|
lda PlayerActionState ; CPU:$D0F5 PRG:10F5 ??
|
|
cmp #$02 ; CPU:$D0F7 PRG:10F7 ??
|
|
bne Flow_D0EE ; CPU:$D0F9 PRG:10F9 ??
|
|
dec PlayerActionState ; CPU:$D0FB PRG:10FB ??
|
|
dec PlayerActionState ; CPU:$D0FD PRG:10FD ??
|
|
Flow_D0EE:
|
|
rts ; CPU:$D0FF PRG:10FF ??
|
|
Flow_D0EF:
|
|
lda PlayerActionState ; CPU:$D101 PRG:1101 ??
|
|
cmp #$02 ; CPU:$D103 PRG:1103 ??
|
|
bne FlowEntry_D0F9 ; CPU:$D105 PRG:1105 ??
|
|
lda #$0A ; CPU:$D107 PRG:1107 ??
|
|
sta PlayerActionDuration ; CPU:$D109 PRG:1109 ??
|
|
FlowEntry_D0F9:
|
|
rts ; PRG $10F9 / CPU $D0F9 ; CPU:$D10B PRG:110B ??
|
|
; =============================================================================
|
|
; PhysicsRoutine_D0FA
|
|
; CPU address: $D0FA PRG offset: $10FA
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D0FA:
|
|
lda PreviousPlayerState ; CPU:$D10D PRG:110D ??
|
|
sta Zp11 ; CPU:$D10F PRG:110F ??
|
|
lda RacketTargetX ; CPU:$D111 PRG:1111 ??
|
|
sec ; CPU:$D113 PRG:1113 ??
|
|
sbc BallTargetOffset ; CPU:$D115 PRG:1115 ??
|
|
bcc Flow_D10C ; CPU:$D117 PRG:1117 ??
|
|
bpl Flow_D110 ; CPU:$D119 PRG:1119 ??
|
|
lda #$7F ; CPU:$D11B PRG:111B ??
|
|
jmp Flow_D110 ; CPU:$D11D PRG:111D ??
|
|
Flow_D10C:
|
|
bmi Flow_D110 ; CPU:$D11F PRG:111F ??
|
|
lda #$80 ; CPU:$D121 PRG:1121 ??
|
|
Flow_D110:
|
|
sta PreviousPlayerState ; CPU:$D123 PRG:1123 ??
|
|
eor Zp11 ; CPU:$D125 PRG:1125 ??
|
|
bpl FlowEntry_D131 ; CPU:$D127 PRG:1127 ??
|
|
lda RacketTargetY ; CPU:$D129 PRG:1129 ??
|
|
sec ; CPU:$D12B PRG:112B ??
|
|
sbc BallHeightReference ; CPU:$D12D PRG:112D ??
|
|
bpl Flow_D123 ; CPU:$D12F PRG:112F ??
|
|
cmp #$FC ; CPU:$D131 PRG:1131 ??
|
|
bcs Flow_D127 ; CPU:$D133 PRG:1133 ??
|
|
bcc FlowEntry_D131 ; CPU:$D135 PRG:1135 ??
|
|
Flow_D123:
|
|
cmp #$04 ; CPU:$D137 PRG:1137 ??
|
|
bcs FlowEntry_D131 ; CPU:$D139 PRG:1139 ??
|
|
Flow_D127:
|
|
lda BallHeight ; CPU:$D13B PRG:113B ??
|
|
cmp #$58 ; CPU:$D13D PRG:113D ??
|
|
bcs FlowEntry_D131 ; CPU:$D13F PRG:113F ??
|
|
lda #$02 ; CPU:$D141 PRG:1141 ??
|
|
sta PlayerActionState ; CPU:$D143 PRG:1143 ??
|
|
FlowEntry_D131:
|
|
rts ; PRG $1131 / CPU $D131 ; CPU:$D145 PRG:1145 ??
|
|
; =============================================================================
|
|
; PhysicsRoutine_D132
|
|
; CPU address: $D132 PRG offset: $1132
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D132:
|
|
lda GameMode ; CPU:$D147 PRG:1147 ??
|
|
beq FlowEntry_D131 ; CPU:$D149 PRG:1149 ??
|
|
lda ActiveObjectIndex ; CPU:$D14B PRG:114B ??
|
|
beq FlowEntry_D131 ; CPU:$D14D PRG:114D ??
|
|
lda PlayerMovementSpeed ; CPU:$D14F PRG:114F ??
|
|
sta MathResultHi ; CPU:$D151 PRG:1151 ??
|
|
and #$0F ; CPU:$D153 PRG:1153 ??
|
|
sta MathResultLo ; CPU:$D155 PRG:1155 ??
|
|
ldy #$3D ; CPU:$D157 PRG:1157 ??
|
|
lda (ObjectDataPointerLo),y ; CPU:$D159 PRG:1159 ??
|
|
and #$0F ; CPU:$D15B PRG:115B ??
|
|
sta MathOperandLo ; CPU:$D15D PRG:115D ??
|
|
lda #$00 ; CPU:$D15F PRG:115F ??
|
|
sta WorkPtrLo ; CPU:$D161 PRG:1161 ??
|
|
sta PlayerMovementSpeed ; CPU:$D163 PRG:1163 ??
|
|
sta WorkPtrHi ; CPU:$D165 PRG:1165 ??
|
|
jsr PhysicsRoutine_D1D3 ; CPU:$D167 PRG:1167 ??
|
|
jsr PhysicsRoutine_D1EE ; CPU:$D169 PRG:1169 ??
|
|
lda WorkPtrHi ; CPU:$D16B PRG:116B ??
|
|
cmp #$30 ; CPU:$D16D PRG:116D ??
|
|
beq Flow_D166 ; CPU:$D16F PRG:116F ??
|
|
lda #$00 ; CPU:$D171 PRG:1171 ??
|
|
sta Zp03 ; CPU:$D173 PRG:1173 ??
|
|
sta Zp04 ; CPU:$D175 PRG:1175 ??
|
|
beq Flow_D1C4 ; CPU:$D177 PRG:1177 ??
|
|
Flow_D166:
|
|
lda MathResultHi ; CPU:$D179 PRG:1179 ??
|
|
and #$30 ; CPU:$D17B PRG:117B ??
|
|
beq Flow_D17E ; CPU:$D17D PRG:117D ??
|
|
cmp #$10 ; CPU:$D17F PRG:117F ??
|
|
beq PhysicsRoutine_D19A ; CPU:$D181 PRG:1181 ??
|
|
cmp #$20 ; CPU:$D183 PRG:1183 ??
|
|
beq PhysicsRoutine_D1B0 ; CPU:$D185 PRG:1185 ??
|
|
lda MathResultLo ; CPU:$D187 PRG:1187 ??
|
|
sta Zp03 ; CPU:$D189 PRG:1189 ??
|
|
lda MathOperandLo ; CPU:$D18B PRG:118B ??
|
|
sta Zp04 ; CPU:$D18D PRG:118D ??
|
|
bpl Flow_D1C4 ; CPU:$D18F PRG:118F ??
|
|
Flow_D17E:
|
|
jsr PhysicsRoutine_D19A ; CPU:$D191 PRG:1191 ??
|
|
lda Zp03 ; CPU:$D193 PRG:1193 ??
|
|
sta Zp05 ; CPU:$D195 PRG:1195 ??
|
|
lda Zp04 ; CPU:$D197 PRG:1197 ??
|
|
sta Zp06 ; CPU:$D199 PRG:1199 ??
|
|
jsr PhysicsRoutine_D1B0 ; CPU:$D19B PRG:119B ??
|
|
lda Zp03 ; CPU:$D19D PRG:119D ??
|
|
ora Zp05 ; CPU:$D19F PRG:119F ??
|
|
sta Zp03 ; CPU:$D1A1 PRG:11A1 ??
|
|
lda Zp04 ; CPU:$D1A3 PRG:11A3 ??
|
|
ora Zp06 ; CPU:$D1A5 PRG:11A5 ??
|
|
sta Zp04 ; CPU:$D1A7 PRG:11A7 ??
|
|
bpl Flow_D1C4 ; CPU:$D1A9 PRG:11A9 ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_D19A
|
|
; CPU address: $D19A PRG offset: $119A
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D19A:
|
|
bit WorkPtrLo ; CPU:$D1AB PRG:11AB ??
|
|
bpl Flow_D1A7 ; CPU:$D1AD PRG:11AD ??
|
|
lda #$04 ; CPU:$D1AF PRG:11AF ??
|
|
sta Zp03 ; CPU:$D1B1 PRG:11B1 ??
|
|
asl a ; CPU:$D1B3 PRG:11B3 ??
|
|
sta Zp04 ; CPU:$D1B5 PRG:11B5 ??
|
|
bpl Flow_D1C4 ; CPU:$D1B7 PRG:11B7 ??
|
|
Flow_D1A7:
|
|
lda #$04 ; CPU:$D1B9 PRG:11B9 ??
|
|
sta Zp04 ; CPU:$D1BB PRG:11BB ??
|
|
asl a ; CPU:$D1BD PRG:11BD ??
|
|
sta Zp03 ; CPU:$D1BF PRG:11BF ??
|
|
bpl Flow_D1C4 ; CPU:$D1C1 PRG:11C1 ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_D1B0
|
|
; CPU address: $D1B0 PRG offset: $11B0
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D1B0:
|
|
bit WorkPtrLo ; CPU:$D1C3 PRG:11C3 ??
|
|
bvc Flow_D1BD ; CPU:$D1C5 PRG:11C5 ??
|
|
lda #$01 ; CPU:$D1C7 PRG:11C7 ??
|
|
sta Zp03 ; CPU:$D1C9 PRG:11C9 ??
|
|
asl a ; CPU:$D1CB PRG:11CB ??
|
|
sta Zp04 ; CPU:$D1CD PRG:11CD ??
|
|
bpl Flow_D1C4 ; CPU:$D1CF PRG:11CF ??
|
|
Flow_D1BD:
|
|
lda #$01 ; CPU:$D1D1 PRG:11D1 ??
|
|
sta Zp04 ; CPU:$D1D3 PRG:11D3 ??
|
|
asl a ; CPU:$D1D5 PRG:11D5 ??
|
|
sta Zp03 ; CPU:$D1D7 PRG:11D7 ??
|
|
Flow_D1C4:
|
|
lda WorkPtrHi ; CPU:$D1D9 PRG:11D9 ??
|
|
ora Zp03 ; CPU:$D1DB PRG:11DB ??
|
|
sta PlayerMovementSpeed ; CPU:$D1DD PRG:11DD ??
|
|
and #$F0 ; CPU:$D1DF PRG:11DF ??
|
|
ora Zp04 ; CPU:$D1E1 PRG:11E1 ??
|
|
ldy #$3D ; CPU:$D1E3 PRG:11E3 ??
|
|
sta (ObjectDataPointerLo),y ; CPU:$D1E5 PRG:11E5 ??
|
|
rts ; CPU:$D1E7 PRG:11E7 ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_D1D3
|
|
; CPU address: $D1D3 PRG offset: $11D3
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D1D3:
|
|
lda RacketTargetX ; CPU:$D1E9 PRG:11E9 ??
|
|
ldy #$28 ; CPU:$D1EB PRG:11EB ??
|
|
sec ; CPU:$D1ED PRG:11ED ??
|
|
sbc (ObjectDataPointerLo),y ; CPU:$D1EF PRG:11EF ??
|
|
bpl Flow_D1E5 ; CPU:$D1F1 PRG:11F1 ??
|
|
eor #$FF ; CPU:$D1F3 PRG:11F3 ??
|
|
clc ; CPU:$D1F5 PRG:11F5 ??
|
|
adc #$01 ; CPU:$D1F7 PRG:11F7 ??
|
|
ldx #$80 ; CPU:$D1F9 PRG:11F9 ??
|
|
stx WorkPtrLo ; CPU:$D1FB PRG:11FB ??
|
|
Flow_D1E5:
|
|
cmp #$0C ; CPU:$D1FD PRG:11FD ??
|
|
bcs Flow_D1ED ; CPU:$D1FF PRG:11FF ??
|
|
ldx #$20 ; CPU:$D201 PRG:1201 ??
|
|
stx WorkPtrHi ; CPU:$D203 PRG:1203 ??
|
|
Flow_D1ED:
|
|
rts ; CPU:$D205 PRG:1205 ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_D1EE
|
|
; CPU address: $D1EE PRG offset: $11EE
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D1EE:
|
|
lda RacketTargetY ; CPU:$D207 PRG:1207 ??
|
|
iny ; CPU:$D209 PRG:1209 ??
|
|
sec ; CPU:$D20B PRG:120B ??
|
|
sbc (ObjectDataPointerLo),y ; CPU:$D20D PRG:120D ??
|
|
bpl Flow_D203 ; CPU:$D20F PRG:120F ??
|
|
eor #$FF ; CPU:$D211 PRG:1211 ??
|
|
clc ; CPU:$D213 PRG:1213 ??
|
|
adc #$01 ; CPU:$D215 PRG:1215 ??
|
|
tax ; CPU:$D217 PRG:1217 ??
|
|
lda #$40 ; CPU:$D219 PRG:1219 ??
|
|
ora WorkPtrLo ; CPU:$D21B PRG:121B ??
|
|
sta WorkPtrLo ; CPU:$D21D PRG:121D ??
|
|
txa ; CPU:$D21F PRG:121F ??
|
|
Flow_D203:
|
|
cmp #$10 ; CPU:$D221 PRG:1221 ??
|
|
bcs FlowEntry_D20D ; CPU:$D223 PRG:1223 ??
|
|
lda #$10 ; CPU:$D225 PRG:1225 ??
|
|
ora WorkPtrHi ; CPU:$D227 PRG:1227 ??
|
|
sta WorkPtrHi ; CPU:$D229 PRG:1229 ??
|
|
FlowEntry_D20D:
|
|
rts ; PRG $120D / CPU $D20D ; CPU:$D22B PRG:122B ??
|
|
; =============================================================================
|
|
; PhysicsRoutine_D20E
|
|
; CPU address: $D20E PRG offset: $120E
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D20E:
|
|
lda RallyPhase ; CPU:$D22D PRG:122D ??
|
|
sta MathResultHi ; CPU:$D22F PRG:122F ??
|
|
lsr MathResultHi ; CPU:$D231 PRG:1231 ??
|
|
bcc Flow_D21E ; CPU:$D233 PRG:1233 ??
|
|
lda FrameCounter ; CPU:$D235 PRG:1235 ??
|
|
and #$04 ; CPU:$D237 PRG:1237 ??
|
|
bne Flow_D21E ; CPU:$D239 PRG:1239 ??
|
|
inc MathResultHi ; CPU:$D23B PRG:123B ??
|
|
Flow_D21E:
|
|
lsr MathResultHi ; CPU:$D23D PRG:123D ??
|
|
bcc Flow_D22A ; CPU:$D23F PRG:123F ??
|
|
lda FrameCounter ; CPU:$D241 PRG:1241 ??
|
|
and #$02 ; CPU:$D243 PRG:1243 ??
|
|
bne Flow_D22A ; CPU:$D245 PRG:1245 ??
|
|
inc MathResultHi ; CPU:$D247 PRG:1247 ??
|
|
Flow_D22A:
|
|
lsr MathResultHi ; CPU:$D249 PRG:1249 ??
|
|
bcc Flow_D236 ; CPU:$D24B PRG:124B ??
|
|
lda FrameCounter ; CPU:$D24D PRG:124D ??
|
|
and #$01 ; CPU:$D24F PRG:124F ??
|
|
bne Flow_D236 ; CPU:$D251 PRG:1251 ??
|
|
inc MathResultHi ; CPU:$D253 PRG:1253 ??
|
|
Flow_D236:
|
|
lda PlayerMovementSpeed ; CPU:$D255 PRG:1255 ??
|
|
eor #$0F ; CPU:$D257 PRG:1257 ??
|
|
and RallyFlags ; CPU:$D259 PRG:1259 ??
|
|
and #$0F ; CPU:$D25B PRG:125B ??
|
|
beq Flow_D27C ; CPU:$D25D PRG:125D ??
|
|
tax ; CPU:$D25F PRG:125F ??
|
|
and #$04 ; CPU:$D261 PRG:1261 ??
|
|
beq Flow_D24F ; CPU:$D263 PRG:1263 ??
|
|
lda RacketTargetX ; CPU:$D265 PRG:1265 ??
|
|
cmp UmpireAnimationTimer ; CPU:$D267 PRG:1267 ??
|
|
bcs Flow_D24F ; CPU:$D269 PRG:1269 ??
|
|
adc MathResultHi ; CPU:$D26B PRG:126B ??
|
|
sta RacketTargetX ; CPU:$D26D PRG:126D ??
|
|
Flow_D24F:
|
|
txa ; CPU:$D26F PRG:126F ??
|
|
and #$08 ; CPU:$D271 PRG:1271 ??
|
|
beq Flow_D25E ; CPU:$D273 PRG:1273 ??
|
|
lda RacketTargetX ; CPU:$D275 PRG:1275 ??
|
|
cmp BallAnimationTimer ; CPU:$D277 PRG:1277 ??
|
|
bcc Flow_D25E ; CPU:$D279 PRG:1279 ??
|
|
sbc MathResultHi ; CPU:$D27B PRG:127B ??
|
|
sta RacketTargetX ; CPU:$D27D PRG:127D ??
|
|
Flow_D25E:
|
|
txa ; CPU:$D27F PRG:127F ??
|
|
and #$01 ; CPU:$D281 PRG:1281 ??
|
|
beq Flow_D26D ; CPU:$D283 PRG:1283 ??
|
|
lda RacketTargetY ; CPU:$D285 PRG:1285 ??
|
|
cmp PlayerActionDelay ; CPU:$D287 PRG:1287 ??
|
|
bcs Flow_D26D ; CPU:$D289 PRG:1289 ??
|
|
adc MathResultHi ; CPU:$D28B PRG:128B ??
|
|
sta RacketTargetY ; CPU:$D28D PRG:128D ??
|
|
Flow_D26D:
|
|
txa ; CPU:$D28F PRG:128F ??
|
|
and #$02 ; CPU:$D291 PRG:1291 ??
|
|
beq Flow_D27C ; CPU:$D293 PRG:1293 ??
|
|
lda RacketTargetY ; CPU:$D295 PRG:1295 ??
|
|
cmp NetAnimationTimer ; CPU:$D297 PRG:1297 ??
|
|
bcc Flow_D27C ; CPU:$D299 PRG:1299 ??
|
|
sbc MathResultHi ; CPU:$D29B PRG:129B ??
|
|
sta RacketTargetY ; CPU:$D29D PRG:129D ??
|
|
Flow_D27C:
|
|
rts ; CPU:$D29F PRG:129F ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_D27D
|
|
; CPU address: $D27D PRG offset: $127D
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D27D:
|
|
jsr PhysicsRoutine_D2D0 ; CPU:$D2A1 PRG:12A1 ??
|
|
jsr PhysicsRoutine_D2C9 ; CPU:$D2A3 PRG:12A3 ??
|
|
bne Flow_D2A4 ; CPU:$D2A5 PRG:12A5 ??
|
|
lda BallTrajectoryFlags ; CPU:$D2A7 PRG:12A7 ??
|
|
and #$42 ; CPU:$D2A9 PRG:12A9 ??
|
|
cmp #$40 ; CPU:$D2AB PRG:12AB ??
|
|
bne Flow_D2A1 ; CPU:$D2AD PRG:12AD ??
|
|
lda PlayerPoseId ; CPU:$D2AF PRG:12AF ??
|
|
cmp #$14 ; CPU:$D2B1 PRG:12B1 ??
|
|
beq Flow_D29B ; CPU:$D2B3 PRG:12B3 ??
|
|
cmp #$13 ; CPU:$D2B5 PRG:12B5 ??
|
|
bne Flow_D2A1 ; CPU:$D2B7 PRG:12B7 ??
|
|
dec RacketTargetX ; CPU:$D2B9 PRG:12B9 ??
|
|
dec RacketTargetX ; CPU:$D2BB PRG:12BB ??
|
|
Flow_D29B:
|
|
dec RacketTargetX ; CPU:$D2BD PRG:12BD ??
|
|
dec RacketTargetX ; CPU:$D2BF PRG:12BF ??
|
|
dec RacketTargetX ; CPU:$D2C1 PRG:12C1 ??
|
|
Flow_D2A1:
|
|
jsr AdvancePlayerPoseSetA ; CPU:$D2C3 PRG:12C3 ??
|
|
Flow_D2A4:
|
|
rts ; CPU:$D2C5 PRG:12C5 ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_D2A5
|
|
; CPU address: $D2A5 PRG offset: $12A5
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D2A5:
|
|
jsr PhysicsRoutine_D2D0 ; CPU:$D2C7 PRG:12C7 ??
|
|
jsr PhysicsRoutine_D2C9 ; CPU:$D2C9 PRG:12C9 ??
|
|
bne Flow_D2A4 ; CPU:$D2CB PRG:12CB ??
|
|
lda BallTrajectoryFlags ; CPU:$D2CD PRG:12CD ??
|
|
and #$42 ; CPU:$D2CF PRG:12CF ??
|
|
cmp #$42 ; CPU:$D2D1 PRG:12D1 ??
|
|
bne Flow_D2C5 ; CPU:$D2D3 PRG:12D3 ??
|
|
lda PlayerPoseId ; CPU:$D2D5 PRG:12D5 ??
|
|
cmp #$2D ; CPU:$D2D7 PRG:12D7 ??
|
|
beq Flow_D2C1 ; CPU:$D2D9 PRG:12D9 ??
|
|
cmp #$2C ; CPU:$D2DB PRG:12DB ??
|
|
bne Flow_D2C5 ; CPU:$D2DD PRG:12DD ??
|
|
inc RacketTargetX ; CPU:$D2DF PRG:12DF ??
|
|
Flow_D2C1:
|
|
inc RacketTargetX ; CPU:$D2E1 PRG:12E1 ??
|
|
inc RacketTargetX ; CPU:$D2E3 PRG:12E3 ??
|
|
Flow_D2C5:
|
|
jsr AdvancePlayerPoseSetB ; CPU:$D2E5 PRG:12E5 ??
|
|
rts ; CPU:$D2E7 PRG:12E7 ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_D2C9
|
|
; CPU address: $D2C9 PRG offset: $12C9
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D2C9:
|
|
lda PoseFrameTimer ; CPU:$D2E9 PRG:12E9 ??
|
|
beq FlowEntry_D2CF ; CPU:$D2EB PRG:12EB ??
|
|
dec PoseFrameTimer ; CPU:$D2ED PRG:12ED ??
|
|
FlowEntry_D2CF:
|
|
rts ; PRG $12CF / CPU $D2CF ; CPU:$D2EF PRG:12EF ??
|
|
; =============================================================================
|
|
; PhysicsRoutine_D2D0
|
|
; CPU address: $D2D0 PRG offset: $12D0
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D2D0:
|
|
lda PlayerAnimationId ; CPU:$D2F1 PRG:12F1 ??
|
|
beq Flow_D2D6 ; CPU:$D2F3 PRG:12F3 ??
|
|
dec PlayerAnimationId ; CPU:$D2F5 PRG:12F5 ??
|
|
Flow_D2D6:
|
|
rts ; CPU:$D2F7 PRG:12F7 ??
|
|
Flow_D2D7:
|
|
iny ; CPU:$D2F9 PRG:12F9 ??
|
|
lda $D31C,y ; CPU:$D2FB PRG:12FB ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $12DB-$12DC.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
PhysicsTable_D2DB:
|
|
.byte $85, $B5 ; PRG $12DB / CPU $D2DB ; CPU:$D2FD PRG:12FD 85 B5
|
|
; =============================================================================
|
|
; AdvancePlayerPoseSetA
|
|
; CPU address: $D2DD PRG offset: $12DD
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
AdvancePlayerPoseSetA:
|
|
ldy PoseSequenceOffset ; CPU:$D2FF PRG:12FF ??
|
|
lda $D31C,y ; CPU:$D301 PRG:1301 ??
|
|
cmp #$FF ; CPU:$D303 PRG:1303 ??
|
|
beq Flow_D2D7 ; CPU:$D305 PRG:1305 ??
|
|
sta PlayerPoseId ; CPU:$D307 PRG:1307 ??
|
|
iny ; CPU:$D309 PRG:1309 ??
|
|
lda ObjectAnimationFrame ; CPU:$D30B PRG:130B ??
|
|
cmp #$18 ; CPU:$D30D PRG:130D ??
|
|
bne Flow_D2F9 ; CPU:$D30F PRG:130F ??
|
|
lda $D31C,y ; CPU:$D311 PRG:1311 ??
|
|
iny ; CPU:$D313 PRG:1313 ??
|
|
iny ; CPU:$D315 PRG:1315 ??
|
|
Flow_D2F4:
|
|
sta PoseFrameTimer ; CPU:$D317 PRG:1317 ??
|
|
sty PoseSequenceOffset ; CPU:$D319 PRG:1319 ??
|
|
rts ; CPU:$D31B PRG:131B ??
|
|
Flow_D2F9:
|
|
iny ; CPU:$D31D PRG:131D ??
|
|
lda $D31C,y ; CPU:$D31F PRG:131F ??
|
|
iny ; CPU:$D321 PRG:1321 ??
|
|
jmp Flow_D2F4 ; CPU:$D323 PRG:1323 ??
|
|
Flow_D301:
|
|
iny ; CPU:$D325 PRG:1325 ??
|
|
lda $D3F7,y ; CPU:$D327 PRG:1327 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $1305-$1306.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
PhysicsTable_D305:
|
|
.byte $85, $B5 ; PRG $1305 / CPU $D305 ; CPU:$D329 PRG:1329 85 B5
|
|
; =============================================================================
|
|
; AdvancePlayerPoseSetB
|
|
; CPU address: $D307 PRG offset: $1307
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
AdvancePlayerPoseSetB:
|
|
ldy PoseSequenceOffset ; CPU:$D32B PRG:132B ??
|
|
lda $D3F7,y ; CPU:$D32D PRG:132D ??
|
|
cmp #$FF ; CPU:$D32F PRG:132F ??
|
|
beq Flow_D301 ; CPU:$D331 PRG:1331 ??
|
|
sta PlayerPoseId ; CPU:$D333 PRG:1333 ??
|
|
iny ; CPU:$D335 PRG:1335 ??
|
|
lda $D3F7,y ; CPU:$D337 PRG:1337 ??
|
|
sta PoseFrameTimer ; CPU:$D339 PRG:1339 ??
|
|
iny ; CPU:$D33B PRG:133B ??
|
|
sty PoseSequenceOffset ; CPU:$D33D PRG:133D ??
|
|
rts ; CPU:$D33F PRG:133F ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $131C-$146E.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
PlayerPoseAnimationSetA:
|
|
.byte $00, $03, $03, $0D, $03, $03, $0E, $03, $03, $0D, $03, $03, $FF, $00, $0A, $20 ; PRG $131C / CPU $D31C ; CPU:$D341 PRG:1341 00 03 03 0D 03 03 0E 03 03 0D 03 03 FF 00 0A 20
|
|
.byte $22, $0B, $26, $28, $0A, $34, $36, $0B, $2A, $2C, $FF, $0E, $3A, $36, $38, $3B ; PRG $132C / CPU $D32C ; CPU:$D351 PRG:1351 22 0B 26 28 0A 34 36 0B 2A 2C FF 0E 3A 36 38 3B
|
|
.byte $2A, $2C, $3A, $1E, $20, $3B, $24, $26, $FF, $1C, $05, $03, $03, $0F, $03, $03 ; PRG $133C / CPU $D33C ; CPU:$D361 PRG:1361 2A 2C 3A 1E 20 3B 24 26 FF 1C 05 03 03 0F 03 03
|
|
.byte $10, $03, $03, $0F, $03, $03, $FF, $2A, $00, $01, $01, $01, $05, $07, $02, $05 ; PRG $134C / CPU $D34C ; CPU:$D371 PRG:1371 10 03 03 0F 03 03 FF 2A 00 01 01 01 05 07 02 05
|
|
.byte $08, $03, $05, $07, $04, $0A, $13, $FF, $0E, $05, $01, $01, $06, $05, $07, $07 ; PRG $135C / CPU $D35C ; CPU:$D381 PRG:1381 08 03 05 07 04 0A 13 FF 0E 05 01 01 06 05 07 07
|
|
.byte $05, $08, $08, $05, $07, $09, $0A, $13, $FF, $0E, $00, $01, $01, $13, $06, $08 ; PRG $136C / CPU $D36C ; CPU:$D391 PRG:1391 05 08 08 05 07 09 0A 13 FF 0E 00 01 01 13 06 08
|
|
.byte $14, $06, $08, $15, $04, $06, $16, $0A, $13, $FF, $0E, $05, $01, $01, $17, $06 ; PRG $137C / CPU $D37C ; CPU:$D3A1 PRG:13A1 14 06 08 15 04 06 16 0A 13 FF 0E 05 01 01 17 06
|
|
.byte $08, $18, $07, $0A, $19, $0C, $15, $FF, $0E, $00, $01, $01, $01, $05, $07, $02 ; PRG $138C / CPU $D38C ; CPU:$D3B1 PRG:13B1 08 18 07 0A 19 0C 15 FF 0E 00 01 01 01 05 07 02
|
|
.byte $07, $0A, $03, $0E, $17, $FF, $0E, $05, $01, $01, $06, $05, $07, $07, $07, $0A ; PRG $139C / CPU $D39C ; CPU:$D3C1 PRG:13C1 07 0A 03 0E 17 FF 0E 05 01 01 06 05 07 07 07 0A
|
|
.byte $08, $0E, $17, $FF, $0E, $00, $01, $01, $01, $05, $07, $02, $05, $08, $03, $05 ; PRG $13AC / CPU $D3AC ; CPU:$D3D1 PRG:13D1 08 0E 17 FF 0E 00 01 01 01 05 07 02 05 08 03 05
|
|
.byte $07, $0C, $0A, $13, $FF, $0E, $05, $01, $01, $06, $05, $07, $07, $05, $08, $08 ; PRG $13BC / CPU $D3BC ; CPU:$D3E1 PRG:13E1 07 0C 0A 13 FF 0E 05 01 01 06 05 07 07 05 08 08
|
|
.byte $05, $07, $24, $0A, $13, $FF, $0E, $13, $05, $08, $14, $05, $08, $15, $05, $08 ; PRG $13CC / CPU $D3CC ; CPU:$D3F1 PRG:13F1 05 07 24 0A 13 FF 0E 13 05 08 14 05 08 15 05 08
|
|
.byte $16, $0A, $14, $FF, $0E, $07, $04, $06, $02, $04, $06, $01, $04, $06, $FF, $00 ; PRG $13DC / CPU $D3DC ; CPU:$D401 PRG:1401 16 0A 14 FF 0E 07 04 06 02 04 06 01 04 06 FF 00
|
|
.byte $03, $04, $06, $07, $04, $06, $06, $04, $06, $FF, $2A, $1A, $03, $25, $03, $26 ; PRG $13EC / CPU $D3EC ; CPU:$D411 PRG:1411 03 04 06 07 04 06 06 04 06 FF 2A 1A 03 25 03 26
|
|
.byte $03, $25, $03, $FF, $00, $22, $22, $23, $20, $22, $30, $23, $28, $FF, $0A, $3C ; PRG $13FC / CPU $D3FC ; CPU:$D421 PRG:1421 03 25 03 FF 00 22 22 23 20 22 30 23 28 FF 0A 3C
|
|
.byte $20, $3D, $2E, $3C, $24, $3D, $26, $FF, $14, $1E, $03, $27, $03, $28, $03, $27 ; PRG $140C / CPU $D40C ; CPU:$D431 PRG:1431 20 3D 2E 3C 24 3D 26 FF 14 1E 03 27 03 28 03 27
|
|
.byte $03, $FF, $1E, $1A, $03, $1B, $06, $1C, $06, $1D, $0A, $FF, $0A, $1E, $03, $1F ; PRG $141C / CPU $D41C ; CPU:$D441 PRG:1441 03 FF 1E 1A 03 1B 06 1C 06 1D 0A FF 0A 1E 03 1F
|
|
.byte $06, $20, $06, $21, $0A, $FF, $0A, $1A, $03, $2B, $06, $2C, $06, $2D, $0A, $FF ; PRG $142C / CPU $D42C ; CPU:$D451 PRG:1451 06 20 06 21 0A FF 0A 1A 03 2B 06 2C 06 2D 0A FF
|
|
.byte $0A, $1E, $03, $1F, $06, $2E, $06, $21, $0A, $FF, $0A, $1A, $04, $2B, $08, $2C ; PRG $143C / CPU $D43C ; CPU:$D461 PRG:1461 0A 1E 03 1F 06 2E 06 21 0A FF 0A 1A 04 2B 08 2C
|
|
.byte $0C, $FF, $0A, $1E, $04, $1F, $08, $2E, $0C, $FF, $0A, $2B, $06, $2C, $06, $2D ; PRG $144C / CPU $D44C ; CPU:$D471 PRG:1471 0C FF 0A 1E 04 1F 08 2E 0C FF 0A 2B 06 2C 06 2D
|
|
.byte $0A, $FF, $0A, $20, $04, $1C, $04, $1B, $04, $FF, $00, $1C, $04, $20, $04, $1F ; PRG $145C / CPU $D45C ; CPU:$D481 PRG:1481 0A FF 0A 20 04 1C 04 1B 04 FF 00 1C 04 20 04 1F
|
|
.byte $04, $FF, $1E ; PRG $146C / CPU $D46C ; CPU:$D491 PRG:1491 04 FF 1E
|
|
; =============================================================================
|
|
; PhysicsRoutine_D46F
|
|
; CPU address: $D46F PRG offset: $146F
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D46F:
|
|
lda #$05 ; CPU:$D494 PRG:1494 ??
|
|
ldy CourtSide ; CPU:$D496 PRG:1496 ??
|
|
sty Zp0C ; CPU:$D498 PRG:1498 ??
|
|
beq Flow_D479 ; CPU:$D49A PRG:149A ??
|
|
lda #$F9 ; CPU:$D49C PRG:149C ??
|
|
Flow_D479:
|
|
clc ; CPU:$D49E PRG:149E ??
|
|
adc RacketTargetY ; CPU:$D4A0 PRG:14A0 ??
|
|
sta Zp0E ; CPU:$D4A2 PRG:14A2 ??
|
|
jsr PhysicsRoutine_D49B ; CPU:$D4A4 PRG:14A4 ??
|
|
ldy Zp0C ; CPU:$D4A6 PRG:14A6 ??
|
|
sty CourtSide ; CPU:$D4A8 PRG:14A8 ??
|
|
rts ; PRG $1485 / CPU $D485 ; CPU:$D4AA PRG:14AA ??
|
|
; =============================================================================
|
|
; PhysicsRoutine_D486
|
|
; CPU address: $D486 PRG offset: $1486
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D486:
|
|
jsr PhysicsRoutine_D497 ; CPU:$D4AC PRG:14AC ??
|
|
lda #$FB ; CPU:$D4AE PRG:14AE ??
|
|
ldy CourtSide ; CPU:$D4B0 PRG:14B0 ??
|
|
beq Flow_D491 ; CPU:$D4B2 PRG:14B2 ??
|
|
lda #$07 ; CPU:$D4B4 PRG:14B4 ??
|
|
Flow_D491:
|
|
clc ; CPU:$D4B6 PRG:14B6 ??
|
|
adc SignedMovementDelta ; CPU:$D4B8 PRG:14B8 ??
|
|
sta SignedMovementDelta ; CPU:$D4BA PRG:14BA ??
|
|
rts ; CPU:$D4BC PRG:14BC ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_D497
|
|
; CPU address: $D497 PRG offset: $1497
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D497:
|
|
lda RacketTargetY ; CPU:$D4BE PRG:14BE ??
|
|
sta Zp0E ; CPU:$D4C0 PRG:14C0 ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_D49B
|
|
; CPU address: $D49B PRG offset: $149B
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D49B:
|
|
lda PlayerYPosition ; CPU:$D4C2 PRG:14C2 ??
|
|
sec ; CPU:$D4C4 PRG:14C4 ??
|
|
sbc RacketTargetX ; CPU:$D4C6 PRG:14C6 ??
|
|
tay ; CPU:$D4C8 PRG:14C8 ??
|
|
lda #$00 ; CPU:$D4CA PRG:14CA ??
|
|
sbc #$00 ; CPU:$D4CC PRG:14CC ??
|
|
bpl Flow_D4AA ; CPU:$D4CE PRG:14CE ??
|
|
jsr NegateAY16 ; CPU:$D4D0 PRG:14D0 ??
|
|
Flow_D4AA:
|
|
sta MathVectorXHi ; CPU:$D4D2 PRG:14D2 ??
|
|
sty MathVectorXLo ; CPU:$D4D4 PRG:14D4 ??
|
|
lda PlayerPreviousX ; CPU:$D4D6 PRG:14D6 ??
|
|
sec ; CPU:$D4D8 PRG:14D8 ??
|
|
sbc PlayerXPosition ; CPU:$D4DA PRG:14DA ??
|
|
sta MathVectorYLo ; CPU:$D4DC PRG:14DC ??
|
|
lda #$00 ; CPU:$D4DE PRG:14DE ??
|
|
sbc #$00 ; CPU:$D4E0 PRG:14E0 ??
|
|
sta MathVectorYHi ; CPU:$D4E2 PRG:14E2 ??
|
|
jsr EngineRoutine_C6ED ; CPU:$D4E4 PRG:14E4 ??
|
|
jsr EngineRoutine_C62B ; CPU:$D4E6 PRG:14E6 ??
|
|
lda PlayerPreviousY ; CPU:$D4E8 PRG:14E8 ??
|
|
sec ; CPU:$D4EA PRG:14EA ??
|
|
sbc PlayerYPosition ; CPU:$D4EC PRG:14EC ??
|
|
tay ; CPU:$D4EE PRG:14EE ??
|
|
lda #$00 ; CPU:$D4F0 PRG:14F0 ??
|
|
sbc #$00 ; CPU:$D4F2 PRG:14F2 ??
|
|
bpl Flow_D4D0 ; CPU:$D4F4 PRG:14F4 ??
|
|
jsr NegateAY16 ; CPU:$D4F6 PRG:14F6 ??
|
|
Flow_D4D0:
|
|
sta MathVectorXHi ; CPU:$D4F8 PRG:14F8 ??
|
|
sty MathVectorXLo ; CPU:$D4FA PRG:14FA ??
|
|
jsr EngineRoutine_C684 ; CPU:$D4FC PRG:14FC ??
|
|
jsr MatchRoutine_C705 ; CPU:$D4FE PRG:14FE ??
|
|
lda PlayerXPosition ; CPU:$D500 PRG:1500 ??
|
|
clc ; CPU:$D502 PRG:1502 ??
|
|
adc MathVectorYLo ; CPU:$D504 PRG:1504 ??
|
|
tay ; CPU:$D506 PRG:1506 ??
|
|
lda #$00 ; CPU:$D508 PRG:1508 ??
|
|
adc MathVectorYHi ; CPU:$D50A PRG:150A ??
|
|
tax ; CPU:$D50C PRG:150C ??
|
|
tya ; CPU:$D50E PRG:150E ??
|
|
sec ; CPU:$D510 PRG:1510 ??
|
|
sbc Zp0E ; CPU:$D512 PRG:1512 ??
|
|
sta SignedMovementDelta ; CPU:$D514 PRG:1514 ??
|
|
txa ; CPU:$D516 PRG:1516 ??
|
|
sbc #$00 ; CPU:$D518 PRG:1518 ??
|
|
bmi Flow_D4FA ; CPU:$D51A PRG:151A ??
|
|
ldy #$00 ; CPU:$D51C PRG:151C ??
|
|
bit SignedMovementDelta ; CPU:$D51E PRG:151E ??
|
|
bpl Flow_D504 ; CPU:$D520 PRG:1520 ??
|
|
ldx #$7F ; CPU:$D522 PRG:1522 ??
|
|
bpl Flow_D502 ; CPU:$D524 PRG:1524 ??
|
|
Flow_D4FA:
|
|
ldy #$01 ; CPU:$D526 PRG:1526 ??
|
|
bit SignedMovementDelta ; CPU:$D528 PRG:1528 ??
|
|
bmi Flow_D504 ; CPU:$D52A PRG:152A ??
|
|
ldx #$80 ; CPU:$D52C PRG:152C ??
|
|
Flow_D502:
|
|
stx SignedMovementDelta ; CPU:$D52E PRG:152E ??
|
|
Flow_D504:
|
|
sty CourtSide ; CPU:$D530 PRG:1530 ??
|
|
rts ; CPU:$D532 PRG:1532 ??
|
|
|
|
; =============================================================================
|
|
; NegateAY16
|
|
; CPU address: $D507 PRG offset: $1507
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
NegateAY16:
|
|
tax ; CPU:$D534 PRG:1534 ??
|
|
tya ; CPU:$D536 PRG:1536 ??
|
|
eor #$FF ; CPU:$D538 PRG:1538 ??
|
|
sec ; CPU:$D53A PRG:153A ??
|
|
adc #$00 ; CPU:$D53C PRG:153C ??
|
|
tay ; CPU:$D53E PRG:153E ??
|
|
txa ; CPU:$D540 PRG:1540 ??
|
|
eor #$FF ; CPU:$D542 PRG:1542 ??
|
|
adc #$00 ; CPU:$D544 PRG:1544 ??
|
|
rts ; PRG $1514 / CPU $D514 ; CPU:$D546 PRG:1546 ??
|
|
; =============================================================================
|
|
; PhysicsRoutine_D515
|
|
; CPU address: $D515 PRG offset: $1515
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D515:
|
|
lda #$FA ; CPU:$D548 PRG:1548 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $1517-$1518.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
PhysicsTable_D517:
|
|
.byte $D0, $02 ; PRG $1517 / CPU $D517 ; CPU:$D54A PRG:154A D0 02
|
|
; =============================================================================
|
|
; PhysicsRoutine_D519
|
|
; CPU address: $D519 PRG offset: $1519
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D519:
|
|
lda #$0A ; CPU:$D54C PRG:154C ??
|
|
clc ; CPU:$D54E PRG:154E ??
|
|
adc RacketTargetY ; CPU:$D550 PRG:1550 ??
|
|
sta Zp0E ; CPU:$D552 PRG:1552 ??
|
|
lda RacketTargetX ; CPU:$D554 PRG:1554 ??
|
|
sta MathOperandLo ; CPU:$D556 PRG:1556 ??
|
|
lda #$00 ; CPU:$D558 PRG:1558 ??
|
|
sta MathOperandHi ; CPU:$D55A PRG:155A ??
|
|
lda #$00 ; CPU:$D55C PRG:155C ??
|
|
sta MathResultHi ; CPU:$D55E PRG:155E ??
|
|
lda #$93 ; CPU:$D560 PRG:1560 ??
|
|
sta MathResultLo ; CPU:$D562 PRG:1562 ??
|
|
jsr Add16BitZp12ToZp14 ; CPU:$D564 PRG:1564 ??
|
|
lda Zp0E ; CPU:$D566 PRG:1566 ??
|
|
eor #$80 ; CPU:$D568 PRG:1568 ??
|
|
sta SignedAimDelta ; CPU:$D56A PRG:156A ??
|
|
bpl Flow_D540 ; CPU:$D56C PRG:156C ??
|
|
eor #$FF ; CPU:$D56E PRG:156E ??
|
|
sec ; CPU:$D570 PRG:1570 ??
|
|
adc #$00 ; CPU:$D572 PRG:1572 ??
|
|
Flow_D540:
|
|
sta MathVectorXLo ; CPU:$D574 PRG:1574 ??
|
|
lda #$00 ; CPU:$D576 PRG:1576 ??
|
|
sta MathVectorXHi ; CPU:$D578 PRG:1578 ??
|
|
lda #$B3 ; CPU:$D57A PRG:157A ??
|
|
sta MathVectorYLo ; CPU:$D57C PRG:157C ??
|
|
lda #$0F ; CPU:$D57E PRG:157E ??
|
|
sta MathVectorYHi ; CPU:$D580 PRG:1580 ??
|
|
jsr EngineRoutine_C62B ; CPU:$D582 PRG:1582 ??
|
|
lda MathResultHi ; CPU:$D584 PRG:1584 ??
|
|
sta MathVectorXHi ; CPU:$D586 PRG:1586 ??
|
|
lda MathResultLo ; CPU:$D588 PRG:1588 ??
|
|
sta MathVectorXLo ; CPU:$D58A PRG:158A ??
|
|
jsr EngineRoutine_C684 ; CPU:$D58C PRG:158C ??
|
|
lda SignedAimDelta ; CPU:$D58E PRG:158E ??
|
|
bpl Flow_D563 ; CPU:$D590 PRG:1590 ??
|
|
jsr EngineRoutine_C6F3 ; CPU:$D592 PRG:1592 ??
|
|
Flow_D563:
|
|
lda MathVectorYHi ; CPU:$D594 PRG:1594 ??
|
|
clc ; CPU:$D596 PRG:1596 ??
|
|
adc #$10 ; CPU:$D598 PRG:1598 ??
|
|
sta ContactPointY ; CPU:$D59A PRG:159A ??
|
|
lda MathVectorYLo ; CPU:$D59C PRG:159C ??
|
|
sta ContactPointX ; CPU:$D59E PRG:159E ??
|
|
rts ; CPU:$D5A0 PRG:15A0 ??
|
|
|
|
; =============================================================================
|
|
; Subtract16BitZp12FromZp14
|
|
; CPU address: $D56F PRG offset: $156F
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
Subtract16BitZp12FromZp14:
|
|
lda MathResultLo ; CPU:$D5A2 PRG:15A2 ??
|
|
sec ; CPU:$D5A4 PRG:15A4 ??
|
|
sbc MathOperandLo ; CPU:$D5A6 PRG:15A6 ??
|
|
sta MathResultLo ; CPU:$D5A8 PRG:15A8 ??
|
|
lda MathResultHi ; CPU:$D5AA PRG:15AA ??
|
|
sbc MathOperandHi ; CPU:$D5AC PRG:15AC ??
|
|
sta MathResultHi ; CPU:$D5AE PRG:15AE ??
|
|
rts ; PRG $157C / CPU $D57C ; CPU:$D5B0 PRG:15B0 ??
|
|
Flow_D57D:
|
|
jmp Flow_CD92 ; CPU:$D5B2 PRG:15B2 ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_D580
|
|
; CPU address: $D580 PRG offset: $1580
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D580:
|
|
lda ActiveObjectIndex ; CPU:$D5B4 PRG:15B4 ??
|
|
beq Flow_D57D ; CPU:$D5B6 PRG:15B6 ??
|
|
lda BallTrajectoryFlags ; CPU:$D5B8 PRG:15B8 ??
|
|
and #$02 ; CPU:$D5BA PRG:15BA ??
|
|
bne Flow_D57D ; CPU:$D5BC PRG:15BC ??
|
|
lda RallyFlags ; CPU:$D5BE PRG:15BE ??
|
|
and #$F3 ; CPU:$D5C0 PRG:15C0 ??
|
|
sta RallyFlags ; CPU:$D5C2 PRG:15C2 ??
|
|
lda Zp26 ; CPU:$D5C4 PRG:15C4 ??
|
|
cmp #$01 ; CPU:$D5C6 PRG:15C6 ??
|
|
beq Flow_D5A4 ; CPU:$D5C8 PRG:15C8 ??
|
|
lda PlayerMovementFlags ; CPU:$D5CA PRG:15CA ??
|
|
beq Flow_D609 ; CPU:$D5CC PRG:15CC ??
|
|
cmp #$01 ; CPU:$D5CE PRG:15CE ??
|
|
beq Flow_D5C9 ; CPU:$D5D0 PRG:15D0 ??
|
|
cmp #$02 ; CPU:$D5D2 PRG:15D2 ??
|
|
beq Flow_D5F0 ; CPU:$D5D4 PRG:15D4 ??
|
|
bne Flow_D57D ; CPU:$D5D6 PRG:15D6 ??
|
|
Flow_D5A4:
|
|
lda #$15 ; CPU:$D5D8 PRG:15D8 ??
|
|
sta Zp26 ; CPU:$D5DA PRG:15DA ??
|
|
lda #$01 ; CPU:$D5DC PRG:15DC ??
|
|
sta PlayerMovementFlags ; CPU:$D5DE PRG:15DE ??
|
|
lda #$13 ; CPU:$D5E0 PRG:15E0 ??
|
|
sta BallXPosition ; CPU:$D5E2 PRG:15E2 ??
|
|
lda #$12 ; CPU:$D5E4 PRG:15E4 ??
|
|
sta PlayerPoseId ; CPU:$D5E6 PRG:15E6 ??
|
|
jsr PhysicsRoutine_D519 ; CPU:$D5E8 PRG:15E8 ??
|
|
ldx #$00 ; CPU:$D5EA PRG:15EA ??
|
|
lda RacketTargetY ; CPU:$D5EC PRG:15EC ??
|
|
eor #$7F ; CPU:$D5EE PRG:15EE ??
|
|
bpl Flow_D5C0 ; CPU:$D5F0 PRG:15F0 ??
|
|
dex ; CPU:$D5F2 PRG:15F2 ??
|
|
Flow_D5C0:
|
|
adc ContactPointX ; CPU:$D5F4 PRG:15F4 ??
|
|
sta Player1YSubpixel ; CPU:$D5F6 PRG:15F6 ??
|
|
txa ; CPU:$D5F8 PRG:15F8 ??
|
|
adc ContactPointY ; CPU:$D5FA PRG:15FA ??
|
|
sta Player1YPosition ; CPU:$D5FC PRG:15FC ??
|
|
Flow_D5C9:
|
|
lda RallyFlags ; CPU:$D5FE PRG:15FE ??
|
|
and #$F0 ; CPU:$D600 PRG:1600 ??
|
|
sta RallyFlags ; CPU:$D602 PRG:1602 ??
|
|
lda BallXPosition ; CPU:$D604 PRG:1604 ??
|
|
bpl Flow_D5D9 ; CPU:$D606 PRG:1606 ??
|
|
lda BallHeight ; CPU:$D608 PRG:1608 ??
|
|
cmp #$64 ; CPU:$D60A PRG:160A ??
|
|
bcc Flow_D601 ; CPU:$D60C PRG:160C ??
|
|
Flow_D5D9:
|
|
lda RallyFlags ; CPU:$D60E PRG:160E ??
|
|
and #$80 ; CPU:$D610 PRG:1610 ??
|
|
beq Flow_D620 ; CPU:$D612 PRG:1612 ??
|
|
lda #$17 ; CPU:$D614 PRG:1614 ??
|
|
sta PlayerAnimationId ; CPU:$D616 PRG:1616 ??
|
|
inc PlayerMovementFlags ; CPU:$D618 PRG:1618 ??
|
|
lda #$B7 ; CPU:$D61A PRG:161A ??
|
|
sta PoseSequenceOffset ; CPU:$D61C PRG:161C ??
|
|
lda #$01 ; CPU:$D61E PRG:161E ??
|
|
sta PoseFrameTimer ; CPU:$D620 PRG:1620 ??
|
|
jmp Flow_D5FD ; CPU:$D622 PRG:1622 ??
|
|
Flow_D5F0:
|
|
lda PlayerAnimationId ; CPU:$D624 PRG:1624 ??
|
|
beq Flow_D57D ; CPU:$D626 PRG:1626 ??
|
|
cmp #$10 ; CPU:$D628 PRG:1628 ??
|
|
bne Flow_D5FD ; CPU:$D62A PRG:162A ??
|
|
inc PlayerMovementFlags ; CPU:$D62C PRG:162C ??
|
|
jsr PhysicsRoutine_D6C6 ; CPU:$D62E PRG:162E ??
|
|
Flow_D5FD:
|
|
jsr PhysicsRoutine_D27D ; CPU:$D630 PRG:1630 ??
|
|
rts ; CPU:$D632 PRG:1632 ??
|
|
Flow_D601:
|
|
lda #$00 ; CPU:$D634 PRG:1634 ??
|
|
sta PlayerMovementFlags ; CPU:$D636 PRG:1636 ??
|
|
lda #$11 ; CPU:$D638 PRG:1638 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $1607-$1608.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
PhysicsTable_D607:
|
|
.byte $85, $B6 ; PRG $1607 / CPU $D607 ; CPU:$D63A PRG:163A 85 B6
|
|
Flow_D609:
|
|
jsr PhysicsRoutine_D519 ; CPU:$D63C PRG:163C ??
|
|
lda ContactPointX ; CPU:$D63E PRG:163E ??
|
|
sta Player1YSubpixel ; CPU:$D640 PRG:1640 ??
|
|
lda ContactPointY ; CPU:$D642 PRG:1642 ??
|
|
sta Player1YPosition ; CPU:$D644 PRG:1644 ??
|
|
lda #$78 ; CPU:$D646 PRG:1646 ??
|
|
sta BallYSubpixel ; CPU:$D648 PRG:1648 ??
|
|
lda #$01 ; CPU:$D64A PRG:164A ??
|
|
sta BallYPosition ; CPU:$D64C PRG:164C ??
|
|
lda #$00 ; CPU:$D64E PRG:164E ??
|
|
sta BallXPosition ; CPU:$D650 PRG:1650 ??
|
|
Flow_D620:
|
|
rts ; CPU:$D652 PRG:1652 ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_D621
|
|
; CPU address: $D621 PRG offset: $1621
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D621:
|
|
lda ActiveObjectIndex ; CPU:$D654 PRG:1654 ??
|
|
beq Flow_D62B ; CPU:$D656 PRG:1656 ??
|
|
lda BallTrajectoryFlags ; CPU:$D658 PRG:1658 ??
|
|
and #$02 ; CPU:$D65A PRG:165A ??
|
|
bne Flow_D63A ; CPU:$D65C PRG:165C ??
|
|
Flow_D62B:
|
|
lda #$00 ; CPU:$D65E PRG:165E ??
|
|
sta RacketContactState ; CPU:$D660 PRG:1660 ??
|
|
lda #$01 ; CPU:$D662 PRG:1662 ??
|
|
sta BallContactTimer ; CPU:$D664 PRG:1664 ??
|
|
jsr PhysicsRoutine_DC11 ; CPU:$D666 PRG:1666 ??
|
|
jsr PhysicsRoutine_D2A5 ; CPU:$D668 PRG:1668 ??
|
|
rts ; CPU:$D66A PRG:166A ??
|
|
Flow_D63A:
|
|
lda Zp26 ; CPU:$D66C PRG:166C ??
|
|
cmp #$01 ; CPU:$D66E PRG:166E ??
|
|
bne Flow_D665 ; CPU:$D670 PRG:1670 ??
|
|
lda #$40 ; CPU:$D672 PRG:1672 ??
|
|
sta Zp26 ; CPU:$D674 PRG:1674 ??
|
|
lda #$13 ; CPU:$D676 PRG:1676 ??
|
|
sta BallXPosition ; CPU:$D678 PRG:1678 ??
|
|
lda #$01 ; CPU:$D67A PRG:167A ??
|
|
sta PlayerMovementFlags ; CPU:$D67C PRG:167C ??
|
|
lda #$2A ; CPU:$D67E PRG:167E ??
|
|
sta PlayerPoseId ; CPU:$D680 PRG:1680 ??
|
|
jsr PhysicsRoutine_D515 ; CPU:$D682 PRG:1682 ??
|
|
ldx #$00 ; CPU:$D684 PRG:1684 ??
|
|
lda RacketTargetY ; CPU:$D686 PRG:1686 ??
|
|
eor #$7F ; CPU:$D688 PRG:1688 ??
|
|
bpl Flow_D65C ; CPU:$D68A PRG:168A ??
|
|
dex ; CPU:$D68C PRG:168C ??
|
|
Flow_D65C:
|
|
adc ContactPointX ; CPU:$D68E PRG:168E ??
|
|
sta Player1YSubpixel ; CPU:$D690 PRG:1690 ??
|
|
txa ; CPU:$D692 PRG:1692 ??
|
|
adc ContactPointY ; CPU:$D694 PRG:1694 ??
|
|
sta Player1YPosition ; CPU:$D696 PRG:1696 ??
|
|
Flow_D665:
|
|
lda PlayerMovementFlags ; CPU:$D698 PRG:1698 ??
|
|
beq Flow_D69C ; CPU:$D69A PRG:169A ??
|
|
lda #$00 ; CPU:$D69C PRG:169C ??
|
|
sta RallyFlags ; CPU:$D69E PRG:169E ??
|
|
lda PlayerAnimationId ; CPU:$D6A0 PRG:16A0 ??
|
|
bne Flow_D694 ; CPU:$D6A2 PRG:16A2 ??
|
|
lda Zp26 ; CPU:$D6A4 PRG:16A4 ??
|
|
cmp #$39 ; CPU:$D6A6 PRG:16A6 ??
|
|
beq Flow_D682 ; CPU:$D6A8 PRG:16A8 ??
|
|
cmp #$3A ; CPU:$D6AA PRG:16AA ??
|
|
bne FlowEntry_D69B ; CPU:$D6AC PRG:16AC ??
|
|
lda $0501 ; CPU:$D6AE PRG:16AE ??
|
|
and #$03 ; CPU:$D6B0 PRG:16B0 ??
|
|
bne FlowEntry_D69B ; CPU:$D6B2 PRG:16B2 ??
|
|
Flow_D682:
|
|
inc PlayerMovementFlags ; CPU:$D6B4 PRG:16B4 ??
|
|
lda #$17 ; CPU:$D6B6 PRG:16B6 ??
|
|
sta PlayerAnimationId ; CPU:$D6B8 PRG:16B8 ??
|
|
lda #$60 ; CPU:$D6BA PRG:16BA ??
|
|
sta PoseSequenceOffset ; CPU:$D6BC PRG:16BC ??
|
|
lda #$01 ; CPU:$D6BE PRG:16BE ??
|
|
sta PoseFrameTimer ; CPU:$D6C0 PRG:16C0 ??
|
|
Flow_D690:
|
|
jsr PhysicsRoutine_D2A5 ; CPU:$D6C2 PRG:16C2 ??
|
|
rts ; CPU:$D6C4 PRG:16C4 ??
|
|
Flow_D694:
|
|
cmp #$10 ; CPU:$D6C6 PRG:16C6 ??
|
|
bne Flow_D690 ; CPU:$D6C8 PRG:16C8 ??
|
|
jsr PhysicsRoutine_D708 ; CPU:$D6CA PRG:16CA ??
|
|
FlowEntry_D69B:
|
|
rts ; PRG $169B / CPU $D69B ; CPU:$D6CC PRG:16CC ??
|
|
Flow_D69C:
|
|
lda Zp20 ; CPU:$D6CE PRG:16CE ??
|
|
beq Flow_D6A7 ; CPU:$D6D0 PRG:16D0 ??
|
|
lda $0502 ; CPU:$D6D2 PRG:16D2 ??
|
|
and #$70 ; CPU:$D6D4 PRG:16D4 ??
|
|
bne Flow_D6AE ; CPU:$D6D6 PRG:16D6 ??
|
|
Flow_D6A7:
|
|
lda $0503 ; CPU:$D6D8 PRG:16D8 ??
|
|
and #$03 ; CPU:$D6DA PRG:16DA ??
|
|
sta RallyFlags ; CPU:$D6DC PRG:16DC ??
|
|
Flow_D6AE:
|
|
jsr PhysicsRoutine_D515 ; CPU:$D6DE PRG:16DE ??
|
|
lda ContactPointX ; CPU:$D6E0 PRG:16E0 ??
|
|
sta Player1YSubpixel ; CPU:$D6E2 PRG:16E2 ??
|
|
lda ContactPointY ; CPU:$D6E4 PRG:16E4 ??
|
|
sta Player1YPosition ; CPU:$D6E6 PRG:16E6 ??
|
|
lda #$40 ; CPU:$D6E8 PRG:16E8 ??
|
|
sta BallYSubpixel ; CPU:$D6EA PRG:16EA ??
|
|
lda #$01 ; CPU:$D6EC PRG:16EC ??
|
|
sta BallYPosition ; CPU:$D6EE PRG:16EE ??
|
|
lda #$00 ; CPU:$D6F0 PRG:16F0 ??
|
|
sta BallXPosition ; CPU:$D6F2 PRG:16F2 ??
|
|
rts ; PRG $16C5 / CPU $D6C5 ; CPU:$D6F4 PRG:16F4 ??
|
|
; =============================================================================
|
|
; PhysicsRoutine_D6C6
|
|
; CPU address: $D6C6 PRG offset: $16C6
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D6C6:
|
|
ldy #$00 ; CPU:$D6F6 PRG:16F6 ??
|
|
ldx #$01 ; CPU:$D6F8 PRG:16F8 ??
|
|
lda BallHeight ; CPU:$D6FA PRG:16FA ??
|
|
cmp #$68 ; CPU:$D6FC PRG:16FC ??
|
|
bcc Flow_D703 ; CPU:$D6FE PRG:16FE ??
|
|
cmp #$B8 ; CPU:$D700 PRG:1700 ??
|
|
bcs Flow_D703 ; CPU:$D702 PRG:1702 ??
|
|
cmp #$78 ; CPU:$D704 PRG:1704 ??
|
|
bcc Flow_D6E4 ; CPU:$D706 PRG:1706 ??
|
|
iny ; CPU:$D708 PRG:1708 ??
|
|
cmp #$90 ; CPU:$D70A PRG:170A ??
|
|
bcc Flow_D6E4 ; CPU:$D70C PRG:170C ??
|
|
iny ; CPU:$D70E PRG:170E ??
|
|
dex ; CPU:$D710 PRG:1710 ??
|
|
cmp #$A8 ; CPU:$D712 PRG:1712 ??
|
|
bcc Flow_D6E4 ; CPU:$D714 PRG:1714 ??
|
|
iny ; CPU:$D716 PRG:1716 ??
|
|
Flow_D6E4:
|
|
jsr PhysicsRoutine_D73A ; CPU:$D718 PRG:1718 ??
|
|
lda BallHeight ; CPU:$D71A PRG:171A ??
|
|
cmp #$AC ; CPU:$D71C PRG:171C ??
|
|
bcs Flow_D702 ; CPU:$D71E PRG:171E ??
|
|
lda #$A5 ; CPU:$D720 PRG:1720 ??
|
|
ldy BallXPosition ; CPU:$D722 PRG:1722 ??
|
|
bpl Flow_D6F5 ; CPU:$D724 PRG:1724 ??
|
|
lda #$A0 ; CPU:$D726 PRG:1726 ??
|
|
Flow_D6F5:
|
|
cmp BallHeight ; CPU:$D728 PRG:1728 ??
|
|
bcs Flow_D702 ; CPU:$D72A PRG:172A ??
|
|
lda #$01 ; CPU:$D72C PRG:172C ??
|
|
sta $035E ; CPU:$D72E PRG:172E ??
|
|
lda #$02 ; CPU:$D730 PRG:1730 ??
|
|
sta PlayerActionParameter ; CPU:$D732 PRG:1732 ??
|
|
Flow_D702:
|
|
rts ; CPU:$D734 PRG:1734 ??
|
|
Flow_D703:
|
|
lda #$50 ; CPU:$D736 PRG:1736 ??
|
|
sta Zp26 ; CPU:$D738 PRG:1738 ??
|
|
rts ; CPU:$D73A PRG:173A ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_D708
|
|
; CPU address: $D708 PRG offset: $1708
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D708:
|
|
ldy #$04 ; CPU:$D73C PRG:173C ??
|
|
ldx #$00 ; CPU:$D73E PRG:173E ??
|
|
jsr RollRng ; CPU:$D740 PRG:1740 ??
|
|
cmp #$10 ; CPU:$D742 PRG:1742 ??
|
|
bcc Flow_D71F ; CPU:$D744 PRG:1744 ??
|
|
iny ; CPU:$D746 PRG:1746 ??
|
|
cmp #$80 ; CPU:$D748 PRG:1748 ??
|
|
bcc Flow_D71F ; CPU:$D74A PRG:174A ??
|
|
iny ; CPU:$D74C PRG:174C ??
|
|
cmp #$F4 ; CPU:$D74E PRG:174E ??
|
|
bcc Flow_D71F ; CPU:$D750 PRG:1750 ??
|
|
iny ; CPU:$D752 PRG:1752 ??
|
|
inx ; CPU:$D754 PRG:1754 ??
|
|
Flow_D71F:
|
|
jsr PhysicsRoutine_D73A ; CPU:$D756 PRG:1756 ??
|
|
lda $0501 ; CPU:$D758 PRG:1758 ??
|
|
ldy ServingPlayer ; CPU:$D75A PRG:175A ??
|
|
cmp $D735,y ; CPU:$D75C PRG:175C ??
|
|
bcs Flow_D734 ; CPU:$D75E PRG:175E ??
|
|
lda #$02 ; CPU:$D760 PRG:1760 ??
|
|
sta PlayerActionParameter ; CPU:$D762 PRG:1762 ??
|
|
lda #$0E ; CPU:$D764 PRG:1764 ??
|
|
sta PlayerTargetYHi ; CPU:$D766 PRG:1766 ??
|
|
Flow_D734:
|
|
rts ; CPU:$D768 PRG:1768 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $1735-$1739.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
NetCollisionThresholdTable:
|
|
.byte $18, $28, $38, $50, $60 ; PRG $1735 / CPU $D735 ; CPU:$D76A PRG:176A 18 28 38 50 60
|
|
; =============================================================================
|
|
; PhysicsRoutine_D73A
|
|
; CPU address: $D73A PRG offset: $173A
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D73A:
|
|
tya ; CPU:$D76F PRG:176F ??
|
|
asl a ; CPU:$D771 PRG:1771 ??
|
|
tay ; CPU:$D773 PRG:1773 ??
|
|
lda $D780,y ; CPU:$D775 PRG:1775 ??
|
|
sta PlayerTargetYLo ; CPU:$D777 PRG:1777 ??
|
|
lda $D781,y ; CPU:$D779 PRG:1779 ??
|
|
sta PlayerTargetYHi ; CPU:$D77B PRG:177B ??
|
|
stx PlayerActionParameter ; CPU:$D77D PRG:177D ??
|
|
lda #$03 ; CPU:$D77F PRG:177F ??
|
|
sta PlayerActionType ; CPU:$D781 PRG:1781 ??
|
|
ldx #$00 ; CPU:$D783 PRG:1783 ??
|
|
stx MathResultHi ; CPU:$D785 PRG:1785 ??
|
|
jsr RollRng ; CPU:$D787 PRG:1787 ??
|
|
sta MathResultLo ; CPU:$D789 PRG:1789 ??
|
|
jsr RollRng ; CPU:$D78B PRG:178B ??
|
|
adc MathResultLo ; CPU:$D78D PRG:178D ??
|
|
rol MathResultHi ; CPU:$D78F PRG:178F ??
|
|
sta MathResultLo ; CPU:$D791 PRG:1791 ??
|
|
ldx #$50 ; CPU:$D793 PRG:1793 ??
|
|
ldy #$0D ; CPU:$D795 PRG:1795 ??
|
|
lda BallTrajectoryFlags ; CPU:$D797 PRG:1797 ??
|
|
and #$01 ; CPU:$D799 PRG:1799 ??
|
|
bne Flow_D76D ; CPU:$D79B PRG:179B ??
|
|
ldx #$D0 ; CPU:$D79D PRG:179D ??
|
|
ldy #$10 ; CPU:$D79F PRG:179F ??
|
|
Flow_D76D:
|
|
txa ; CPU:$D7A1 PRG:17A1 ??
|
|
adc MathResultLo ; CPU:$D7A3 PRG:17A3 ??
|
|
sta PlayerTargetXLo ; CPU:$D7A5 PRG:17A5 ??
|
|
tya ; CPU:$D7A7 PRG:17A7 ??
|
|
adc MathResultHi ; CPU:$D7A9 PRG:17A9 ??
|
|
sta PlayerTargetXHi ; CPU:$D7AB PRG:17AB ??
|
|
lda #$01 ; CPU:$D7AD PRG:17AD ??
|
|
sta PlayerActionState ; CPU:$D7AF PRG:17AF ??
|
|
lda ActiveObjectIndex ; CPU:$D7B1 PRG:17B1 ??
|
|
sta Zp40 ; CPU:$D7B3 PRG:17B3 ??
|
|
rts ; CPU:$D7B5 PRG:17B5 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $1780-$178F.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
BallLandingBoundaryTable:
|
|
.byte $00, $13, $D0, $14, $00, $16, $00, $18, $80, $0C, $00, $0E, $C0, $0E, $00, $10 ; PRG $1780 / CPU $D780 ; CPU:$D7B7 PRG:17B7 00 13 D0 14 00 16 00 18 80 0C 00 0E C0 0E 00 10
|
|
; =============================================================================
|
|
; PhysicsRoutine_D790
|
|
; CPU address: $D790 PRG offset: $1790
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D790:
|
|
bit BallTrajectoryFlags ; CPU:$D7C7 PRG:17C7 ??
|
|
bpl FlowEntry_D7E0 ; CPU:$D7C9 PRG:17C9 ??
|
|
ldx #$06 ; CPU:$D7CB PRG:17CB ??
|
|
ldy $0309 ; CPU:$D7CD PRG:17CD ??
|
|
lda BallTrajectoryFlags ; CPU:$D7CF PRG:17CF ??
|
|
and #$02 ; CPU:$D7D1 PRG:17D1 ??
|
|
beq Flow_D7A4 ; CPU:$D7D3 PRG:17D3 ??
|
|
ldx #$F6 ; CPU:$D7D5 PRG:17D5 ??
|
|
ldy $0349 ; CPU:$D7D7 PRG:17D7 ??
|
|
Flow_D7A4:
|
|
stx MathResultHi ; CPU:$D7D9 PRG:17D9 ??
|
|
tya ; CPU:$D7DB PRG:17DB ??
|
|
clc ; CPU:$D7DD PRG:17DD ??
|
|
adc MathResultHi ; CPU:$D7DF PRG:17DF ??
|
|
ldx $038A ; CPU:$D7E1 PRG:17E1 ??
|
|
ldy PlayerMovementFlags ; CPU:$D7E3 PRG:17E3 ??
|
|
beq Flow_D7B7 ; CPU:$D7E5 PRG:17E5 ??
|
|
cpy #$01 ; CPU:$D7E7 PRG:17E7 ??
|
|
beq Flow_D7BA ; CPU:$D7E9 PRG:17E9 ??
|
|
bne Flow_D7BD ; CPU:$D7EB PRG:17EB ??
|
|
Flow_D7B7:
|
|
sta $0203,x ; CPU:$D7ED PRG:17ED ??
|
|
Flow_D7BA:
|
|
sta $0207,x ; CPU:$D7EF PRG:17EF ??
|
|
Flow_D7BD:
|
|
ldx PlayerActionState ; CPU:$D7F1 PRG:17F1 ??
|
|
beq FlowEntry_D7E0 ; CPU:$D7F3 PRG:17F3 ??
|
|
lda BallTrajectoryFlags ; CPU:$D7F5 PRG:17F5 ??
|
|
and #$7F ; CPU:$D7F7 PRG:17F7 ??
|
|
sta BallTrajectoryFlags ; CPU:$D7F9 PRG:17F9 ??
|
|
lda #$F0 ; CPU:$D7FB PRG:17FB ??
|
|
sta $0314 ; CPU:$D7FD PRG:17FD ??
|
|
lda #$10 ; CPU:$D7FF PRG:17FF ??
|
|
sta $0315 ; CPU:$D801 PRG:1801 ??
|
|
lda #$D0 ; CPU:$D803 PRG:1803 ??
|
|
sta $0354 ; CPU:$D805 PRG:1805 ??
|
|
lda #$30 ; CPU:$D807 PRG:1807 ??
|
|
sta $0355 ; CPU:$D809 PRG:1809 ??
|
|
lda #$00 ; CPU:$D80B PRG:180B ??
|
|
sta $037B ; CPU:$D80D PRG:180D ??
|
|
FlowEntry_D7E0:
|
|
rts ; PRG $17E0 / CPU $D7E0 ; CPU:$D80F PRG:180F ??
|
|
; =============================================================================
|
|
; PhysicsRoutine_D7E1
|
|
; CPU address: $D7E1 PRG offset: $17E1
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D7E1:
|
|
lda #$0A ; CPU:$D811 PRG:1811 ??
|
|
sta Zp26 ; CPU:$D813 PRG:1813 ??
|
|
lda BallTrajectoryFlags ; CPU:$D815 PRG:1815 ??
|
|
ora #$C0 ; CPU:$D817 PRG:1817 ??
|
|
sta BallTrajectoryFlags ; CPU:$D819 PRG:1819 ??
|
|
lda #$10 ; CPU:$D81B PRG:181B ??
|
|
sta Player1YPosition ; CPU:$D81D PRG:181D ??
|
|
lda #$01 ; CPU:$D81F PRG:181F ??
|
|
sta BallYPosition ; CPU:$D821 PRG:1821 ??
|
|
ldx #$0A ; CPU:$D823 PRG:1823 ??
|
|
ldy #$00 ; CPU:$D825 PRG:1825 ??
|
|
lda BallTrajectoryFlags ; CPU:$D827 PRG:1827 ??
|
|
and #$02 ; CPU:$D829 PRG:1829 ??
|
|
beq Flow_D801 ; CPU:$D82B PRG:182B ??
|
|
ldx #$1A ; CPU:$D82D PRG:182D ??
|
|
ldy #$C0 ; CPU:$D82F PRG:182F ??
|
|
Flow_D801:
|
|
stx Player2YPosition ; CPU:$D831 PRG:1831 ??
|
|
sty Player2YSubpixel ; CPU:$D833 PRG:1833 ??
|
|
lda BallTrajectoryFlags ; CPU:$D835 PRG:1835 ??
|
|
and #$03 ; CPU:$D837 PRG:1837 ??
|
|
asl a ; CPU:$D839 PRG:1839 ??
|
|
asl a ; CPU:$D83B PRG:183B ??
|
|
asl a ; CPU:$D83D PRG:183D ??
|
|
tay ; CPU:$D83F PRG:183F ??
|
|
lda $D889,y ; CPU:$D841 PRG:1841 ??
|
|
sta $0309 ; CPU:$D843 PRG:1843 ??
|
|
lda $D88A,y ; CPU:$D845 PRG:1845 ??
|
|
sta $0329 ; CPU:$D847 PRG:1847 ??
|
|
lda $D88B,y ; CPU:$D849 PRG:1849 ??
|
|
sta $0349 ; CPU:$D84B PRG:184B ??
|
|
lda $D88C,y ; CPU:$D84D PRG:184D ??
|
|
sta $0369 ; CPU:$D84F PRG:184F ??
|
|
lda BallTrajectoryFlags ; CPU:$D851 PRG:1851 ??
|
|
and #$02 ; CPU:$D853 PRG:1853 ??
|
|
bne Flow_D83A ; CPU:$D855 PRG:1855 ??
|
|
lda $D88D,y ; CPU:$D857 PRG:1857 ??
|
|
sta $0314 ; CPU:$D859 PRG:1859 ??
|
|
lda $D88E,y ; CPU:$D85B PRG:185B ??
|
|
sta $0315 ; CPU:$D85D PRG:185D ??
|
|
jmp Flow_D84C ; CPU:$D85F PRG:185F ??
|
|
Flow_D83A:
|
|
lda $D88D,y ; CPU:$D861 PRG:1861 ??
|
|
sta $0354 ; CPU:$D863 PRG:1863 ??
|
|
lda $D88E,y ; CPU:$D865 PRG:1865 ??
|
|
sta $0355 ; CPU:$D867 PRG:1867 ??
|
|
lda $D88F,y ; CPU:$D869 PRG:1869 ??
|
|
sta $0308 ; CPU:$D86B PRG:186B ??
|
|
Flow_D84C:
|
|
ldy #$01 ; CPU:$D86D PRG:186D ??
|
|
lda BallTrajectoryFlags ; CPU:$D86F PRG:186F ??
|
|
and #$02 ; CPU:$D871 PRG:1871 ??
|
|
beq Flow_D860 ; CPU:$D873 PRG:1873 ??
|
|
ldy #$02 ; CPU:$D875 PRG:1875 ??
|
|
lda #$10 ; CPU:$D877 PRG:1877 ??
|
|
sta $0315 ; CPU:$D879 PRG:1879 ??
|
|
lda #$F0 ; CPU:$D87B PRG:187B ??
|
|
sta $0314 ; CPU:$D87D PRG:187D ??
|
|
Flow_D860:
|
|
sty BallVerticalVelocityHi ; CPU:$D87F PRG:187F ??
|
|
lda #$E8 ; CPU:$D881 PRG:1881 ??
|
|
sta BallMotionControl ; CPU:$D883 PRG:1883 ??
|
|
lda #$80 ; CPU:$D885 PRG:1885 ??
|
|
sta BallTargetOffset ; CPU:$D887 PRG:1887 ??
|
|
lda #$00 ; CPU:$D889 PRG:1889 ??
|
|
sta Player1XSubpixel ; CPU:$D88B PRG:188B ??
|
|
sta Player1XPosition ; CPU:$D88D PRG:188D ??
|
|
sta Player2XSubpixel ; CPU:$D88F PRG:188F ??
|
|
sta Player2XPosition ; CPU:$D891 PRG:1891 ??
|
|
sta BallXSubpixel ; CPU:$D893 PRG:1893 ??
|
|
sta BallXPosition ; CPU:$D895 PRG:1895 ??
|
|
sta PlayerMovementFlags ; CPU:$D897 PRG:1897 ??
|
|
sta PlayerActionState ; CPU:$D899 PRG:1899 ??
|
|
sta UmpireMessageId ; CPU:$D89B PRG:189B ??
|
|
sta BallVerticalVelocityLo ; CPU:$D89D PRG:189D ??
|
|
sta BallCollisionFlags ; CPU:$D89F PRG:189F ??
|
|
sta BallContactState ; CPU:$D8A1 PRG:18A1 ??
|
|
sta Zp24 ; CPU:$D8A3 PRG:18A3 ??
|
|
sta BallBounceState ; CPU:$D8A5 PRG:18A5 ??
|
|
rts ; CPU:$D8A7 PRG:18A7 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $1889-$18A8.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
RacketHitTrajectoryTable:
|
|
.byte $58, $A8, $98, $64, $78, $40, $00, $00, $A8, $58, $68, $98, $C0, $88, $00, $00 ; PRG $1889 / CPU $D889 ; CPU:$D8A9 PRG:18A9 58 A8 98 64 78 40 00 00 A8 58 68 98 C0 88 00 00
|
|
.byte $A8, $58, $68, $98, $7C, $58, $C8, $00, $58, $A8, $98, $68, $A8, $84, $C8, $00 ; PRG $1899 / CPU $D899 ; CPU:$D8B9 PRG:18B9 A8 58 68 98 7C 58 C8 00 58 A8 98 68 A8 84 C8 00
|
|
; =============================================================================
|
|
; PhysicsRoutine_D8A9
|
|
; CPU address: $D8A9 PRG offset: $18A9
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D8A9:
|
|
lda #$40 ; CPU:$D8C9 PRG:18C9 ??
|
|
sta ObjectDataPointerLo ; CPU:$D8CB PRG:18CB ??
|
|
lda #$03 ; CPU:$D8CD PRG:18CD ??
|
|
sta ObjectDataPointerHi ; CPU:$D8CF PRG:18CF ??
|
|
lda #$00 ; CPU:$D8D1 PRG:18D1 ??
|
|
sta ObjectDataOffset ; CPU:$D8D3 PRG:18D3 ??
|
|
lda #$01 ; CPU:$D8D5 PRG:18D5 ??
|
|
sta ActiveObjectIndex ; CPU:$D8D7 PRG:18D7 ??
|
|
Flow_D8B9:
|
|
jsr EngineRoutine_C1F3 ; CPU:$D8D9 PRG:18D9 ??
|
|
lda AnimationFrame ; CPU:$D8DB PRG:18DB ??
|
|
beq Flow_D8DF ; CPU:$D8DD PRG:18DD ??
|
|
lda BallTrajectoryFlags ; CPU:$D8DF PRG:18DF ??
|
|
bmi Flow_D8CA ; CPU:$D8E1 PRG:18E1 ??
|
|
jsr PhysicsRoutine_D8E7 ; CPU:$D8E3 PRG:18E3 ??
|
|
jmp Flow_D8CD ; CPU:$D8E5 PRG:18E5 ??
|
|
Flow_D8CA:
|
|
jsr PhysicsRoutine_D621 ; CPU:$D8E7 PRG:18E7 ??
|
|
Flow_D8CD:
|
|
jsr PhysicsRoutine_DA48 ; CPU:$D8E9 PRG:18E9 ??
|
|
jsr PhysicsRoutine_D132 ; CPU:$D8EB PRG:18EB ??
|
|
jsr PhysicsRoutine_D20E ; CPU:$D8ED PRG:18ED ??
|
|
jsr PhysicsRoutine_DC8D ; CPU:$D8EF PRG:18EF ??
|
|
jsr EngineRoutine_C21C ; CPU:$D8F1 PRG:18F1 ??
|
|
jsr EngineRoutine_C20E ; CPU:$D8F3 PRG:18F3 ??
|
|
Flow_D8DF:
|
|
jsr EngineRoutine_C206 ; CPU:$D8F5 PRG:18F5 ??
|
|
dec ActiveObjectIndex ; CPU:$D8F7 PRG:18F7 ??
|
|
bpl Flow_D8B9 ; CPU:$D8F9 PRG:18F9 ??
|
|
rts ; CPU:$D8FB PRG:18FB ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_D8E7
|
|
; CPU address: $D8E7 PRG offset: $18E7
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_D8E7:
|
|
lda PlayerFacingDirection ; CPU:$D8FD PRG:18FD ??
|
|
cmp #$01 ; CPU:$D8FF PRG:18FF ??
|
|
beq Flow_D8F0 ; CPU:$D901 PRG:1901 ??
|
|
jmp Flow_D9EA ; CPU:$D903 PRG:1903 ??
|
|
Flow_D8F0:
|
|
lda BallContactTimer ; CPU:$D905 PRG:1905 ??
|
|
beq Flow_D918 ; CPU:$D907 PRG:1907 ??
|
|
dec BallContactTimer ; CPU:$D909 PRG:1909 ??
|
|
jsr RenderRoutine_DF8F ; CPU:$D90B PRG:190B ??
|
|
lda ActiveObjectIndex ; CPU:$D90D PRG:190D ??
|
|
bne Flow_D900 ; CPU:$D90F PRG:190F ??
|
|
jsr RenderRoutine_DFF5 ; CPU:$D911 PRG:1911 ??
|
|
Flow_D900:
|
|
jsr PhysicsRoutine_D486 ; CPU:$D913 PRG:1913 ??
|
|
lda #$00 ; CPU:$D915 PRG:1915 ??
|
|
ldy ObjectAnimationFrame ; CPU:$D917 PRG:1917 ??
|
|
bne Flow_D90B ; CPU:$D919 PRG:1919 ??
|
|
lda #$05 ; CPU:$D91B PRG:191B ??
|
|
Flow_D90B:
|
|
jsr RenderRoutine_E021 ; CPU:$D91D PRG:191D ??
|
|
ldx #$10 ; CPU:$D91F PRG:191F ??
|
|
stx RallyFlags ; CPU:$D921 PRG:1921 ??
|
|
jsr PhysicsRoutine_DA07 ; CPU:$D923 PRG:1923 ??
|
|
jmp Flow_DA00 ; CPU:$D925 PRG:1925 ??
|
|
Flow_D918:
|
|
lda GameMode ; CPU:$D927 PRG:1927 ??
|
|
beq Flow_D952 ; CPU:$D929 PRG:1929 ??
|
|
lda ObjectAnimationFrame ; CPU:$D92B PRG:192B ??
|
|
bne Flow_D952 ; CPU:$D92D PRG:192D ??
|
|
lda ActiveObjectIndex ; CPU:$D92F PRG:192F ??
|
|
bne Flow_D92E ; CPU:$D931 PRG:1931 ??
|
|
bit BallTrajectoryFlags ; CPU:$D933 PRG:1933 ??
|
|
bvs Flow_D945 ; CPU:$D935 PRG:1935 ??
|
|
lda $0348 ; CPU:$D937 PRG:1937 ??
|
|
jmp Flow_D931 ; CPU:$D939 PRG:1939 ??
|
|
Flow_D92E:
|
|
lda $0368 ; CPU:$D93B PRG:193B ??
|
|
Flow_D931:
|
|
sbc #$04 ; CPU:$D93D PRG:193D ??
|
|
cmp BallTargetOffset ; CPU:$D93F PRG:193F ??
|
|
bcc Flow_D945 ; CPU:$D941 PRG:1941 ??
|
|
ldy #$00 ; CPU:$D943 PRG:1943 ??
|
|
sty $0359 ; CPU:$D945 PRG:1945 ??
|
|
sty $0379 ; CPU:$D947 PRG:1947 ??
|
|
lda #$01 ; CPU:$D949 PRG:1949 ??
|
|
sta ObjectAnimationFrame ; CPU:$D94B PRG:194B ??
|
|
bne Flow_D94E ; CPU:$D94D PRG:194D ??
|
|
Flow_D945:
|
|
jsr PhysicsRoutine_DAC7 ; CPU:$D94F PRG:194F ??
|
|
jsr PhysicsRoutine_D46F ; CPU:$D951 PRG:1951 ??
|
|
jmp Flow_DA00 ; CPU:$D953 PRG:1953 ??
|
|
Flow_D94E:
|
|
lda #$10 ; CPU:$D955 PRG:1955 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $1950-$1951.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
PhysicsTable_D950:
|
|
.byte $85, $C0 ; PRG $1950 / CPU $D950 ; CPU:$D957 PRG:1957 85 C0
|
|
Flow_D952:
|
|
lda PlayerAnimationId ; CPU:$D959 PRG:1959 ??
|
|
beq Flow_D959 ; CPU:$D95B PRG:195B ??
|
|
jmp Flow_D9CE ; CPU:$D95D PRG:195D ??
|
|
Flow_D959:
|
|
lda SignedMovementDelta ; CPU:$D95F PRG:195F ??
|
|
sta Zp10 ; CPU:$D961 PRG:1961 ??
|
|
jsr PhysicsRoutine_D46F ; CPU:$D963 PRG:1963 ??
|
|
bit RacketAimOffset ; CPU:$D965 PRG:1965 ??
|
|
bpl Flow_D979 ; CPU:$D967 PRG:1967 ??
|
|
jsr PhysicsRoutine_DA07 ; CPU:$D969 PRG:1969 ??
|
|
bmi Flow_D979 ; CPU:$D96B PRG:196B ??
|
|
lda SignedMovementDelta ; CPU:$D96D PRG:196D ??
|
|
bmi Flow_D973 ; CPU:$D96F PRG:196F ??
|
|
cmp #$04 ; CPU:$D971 PRG:1971 ??
|
|
bcs Flow_D979 ; CPU:$D973 PRG:1973 ??
|
|
bcc Flow_D9B8 ; CPU:$D975 PRG:1975 ??
|
|
Flow_D973:
|
|
cmp #$FC ; CPU:$D977 PRG:1977 ??
|
|
bcc Flow_D979 ; CPU:$D979 PRG:1979 ??
|
|
bcs Flow_D9B8 ; CPU:$D97B PRG:197B ??
|
|
Flow_D979:
|
|
lda RallyFlags ; CPU:$D97D PRG:197D ??
|
|
beq Flow_D994 ; CPU:$D97F PRG:197F ??
|
|
lda SignedMovementDelta ; CPU:$D981 PRG:1981 ??
|
|
beq Flow_D987 ; CPU:$D983 PRG:1983 ??
|
|
eor Zp10 ; CPU:$D985 PRG:1985 ??
|
|
and #$80 ; CPU:$D987 PRG:1987 ??
|
|
beq Flow_D98C ; CPU:$D989 PRG:1989 ??
|
|
Flow_D987:
|
|
lda #$00 ; CPU:$D98B PRG:198B ??
|
|
jmp Flow_D994 ; CPU:$D98D PRG:198D ??
|
|
Flow_D98C:
|
|
lda #$01 ; CPU:$D98F PRG:198F ??
|
|
ldy SignedMovementDelta ; CPU:$D991 PRG:1991 ??
|
|
bpl Flow_D994 ; CPU:$D993 PRG:1993 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $1992-$1993.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
PhysicsTable_D992:
|
|
.byte $A9, $02 ; PRG $1992 / CPU $D992 ; CPU:$D995 PRG:1995 A9 02
|
|
Flow_D994:
|
|
ldy GameMode ; CPU:$D997 PRG:1997 ??
|
|
bne Flow_D9B3 ; CPU:$D999 PRG:1999 ??
|
|
ldy PlayerActionType ; CPU:$D99B PRG:199B ??
|
|
cpy #$04 ; CPU:$D99D PRG:199D ??
|
|
bne Flow_D9B3 ; CPU:$D99F PRG:199F ??
|
|
ldy RacketTargetX ; CPU:$D9A1 PRG:19A1 ??
|
|
cpy #$34 ; CPU:$D9A3 PRG:19A3 ??
|
|
bcc Flow_D9B3 ; CPU:$D9A5 PRG:19A5 ??
|
|
ora #$08 ; CPU:$D9A7 PRG:19A7 ??
|
|
sta RallyFlags ; CPU:$D9A9 PRG:19A9 ??
|
|
ldy #$01 ; CPU:$D9AB PRG:19AB ??
|
|
sty ObjectAnimationFrame ; CPU:$D9AD PRG:19AD ??
|
|
lda #$14 ; CPU:$D9AF PRG:19AF ??
|
|
jsr RenderRoutine_E021 ; CPU:$D9B1 PRG:19B1 ??
|
|
lda RallyFlags ; CPU:$D9B3 PRG:19B3 ??
|
|
Flow_D9B3:
|
|
sta RallyFlags ; CPU:$D9B5 PRG:19B5 ??
|
|
jmp Flow_DA00 ; CPU:$D9B7 PRG:19B7 ??
|
|
Flow_D9B8:
|
|
lda #$00 ; CPU:$D9B9 PRG:19B9 ??
|
|
sta RallyFlags ; CPU:$D9BB PRG:19BB ??
|
|
jsr PhysicsRoutine_DAE7 ; CPU:$D9BD PRG:19BD ??
|
|
beq Flow_D9CB ; CPU:$D9BF PRG:19BF ??
|
|
lda #$17 ; CPU:$D9C1 PRG:19C1 ??
|
|
sta PlayerAnimationId ; CPU:$D9C3 PRG:19C3 ??
|
|
jsr PhysicsRoutine_DA33 ; CPU:$D9C5 PRG:19C5 ??
|
|
jsr PhysicsRoutine_DA68 ; CPU:$D9C7 PRG:19C7 ??
|
|
Flow_D9CB:
|
|
jmp Flow_DA03 ; CPU:$D9C9 PRG:19C9 ??
|
|
Flow_D9CE:
|
|
bit RacketAimOffset ; CPU:$D9CB PRG:19CB ??
|
|
bpl Flow_DA00 ; CPU:$D9CD PRG:19CD ??
|
|
jsr PhysicsRoutine_DA33 ; CPU:$D9CF PRG:19CF ??
|
|
bmi Flow_DA00 ; CPU:$D9D1 PRG:19D1 ??
|
|
lda ObjectAnimationFrame ; CPU:$D9D3 PRG:19D3 ??
|
|
beq Flow_DA00 ; CPU:$D9D5 PRG:19D5 ??
|
|
jsr PhysicsRoutine_DC2D ; CPU:$D9D7 PRG:19D7 ??
|
|
jsr PhysicsRoutine_DCAB ; CPU:$D9D9 PRG:19D9 ??
|
|
jsr PhysicsRoutine_DD31 ; CPU:$D9DB PRG:19DB ??
|
|
jsr PhysicsRoutine_DD54 ; CPU:$D9DD PRG:19DD ??
|
|
jmp Flow_DA00 ; CPU:$D9DF PRG:19DF ??
|
|
Flow_D9EA:
|
|
lda BallContactTimer ; CPU:$D9E1 PRG:19E1 ??
|
|
bne Flow_D9F6 ; CPU:$D9E3 PRG:19E3 ??
|
|
inc BallContactTimer ; CPU:$D9E5 PRG:19E5 ??
|
|
jsr PhysicsRoutine_DB1E ; CPU:$D9E7 PRG:19E7 ??
|
|
jmp Flow_DA00 ; CPU:$D9E9 PRG:19E9 ??
|
|
Flow_D9F6:
|
|
lda PlayerAnimationId ; CPU:$D9EB PRG:19EB ??
|
|
bne Flow_DA00 ; CPU:$D9ED PRG:19ED ??
|
|
jsr PhysicsRoutine_DAA8 ; CPU:$D9EF PRG:19EF ??
|
|
jmp Flow_DA00 ; CPU:$D9F1 PRG:19F1 ??
|
|
Flow_DA00:
|
|
jsr PhysicsRoutine_DB82 ; CPU:$D9F3 PRG:19F3 ??
|
|
Flow_DA03:
|
|
jsr PhysicsRoutine_D2A5 ; CPU:$D9F5 PRG:19F5 ??
|
|
rts ; PRG $1A06 / CPU $DA06 ; CPU:$D9F7 PRG:19F7 ??
|
|
; =============================================================================
|
|
; PhysicsRoutine_DA07
|
|
; CPU address: $DA07 PRG offset: $1A07
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_DA07:
|
|
ldx #$01 ; CPU:$D9F9 PRG:19F9 ??
|
|
lda RacketTargetX ; CPU:$D9FB PRG:19FB ??
|
|
cmp #$50 ; CPU:$D9FD PRG:19FD ??
|
|
bcc Flow_DA12 ; CPU:$D9FF PRG:19FF ??
|
|
inx ; CPU:$DA01 PRG:1A01 ??
|
|
bne Flow_DA19 ; CPU:$DA03 PRG:1A03 ??
|
|
Flow_DA12:
|
|
ldy PlayerActionType ; CPU:$DA05 PRG:1A05 ??
|
|
cpy #$04 ; CPU:$DA07 PRG:1A07 ??
|
|
bne Flow_DA19 ; CPU:$DA09 PRG:1A09 ??
|
|
dex ; CPU:$DA0B PRG:1A0B ??
|
|
Flow_DA19:
|
|
clc ; CPU:$DA0D PRG:1A0D ??
|
|
adc $DA30,x ; CPU:$DA0F PRG:1A0F ??
|
|
sec ; CPU:$DA11 PRG:1A11 ??
|
|
sbc BallTargetOffset ; CPU:$DA13 PRG:1A13 ??
|
|
bcc Flow_DA29 ; CPU:$DA15 PRG:1A15 ??
|
|
bpl Flow_DA2D ; CPU:$DA17 PRG:1A17 ??
|
|
lda #$7F ; CPU:$DA19 PRG:1A19 ??
|
|
jmp Flow_DA2D ; CPU:$DA1B PRG:1A1B ??
|
|
Flow_DA29:
|
|
bmi Flow_DA2D ; CPU:$DA1D PRG:1A1D ??
|
|
lda #$80 ; CPU:$DA1F PRG:1A1F ??
|
|
Flow_DA2D:
|
|
sta RacketAimOffset ; CPU:$DA21 PRG:1A21 ??
|
|
rts ; CPU:$DA23 PRG:1A23 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $1A30-$1A32.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
RacketAimAdjustmentTable:
|
|
.byte $05, $06, $0B ; PRG $1A30 / CPU $DA30 ; CPU:$DA25 PRG:1A25 05 06 0B
|
|
; =============================================================================
|
|
; PhysicsRoutine_DA33
|
|
; CPU address: $DA33 PRG offset: $1A33
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_DA33:
|
|
lda RacketTargetX ; CPU:$DA28 PRG:1A28 ??
|
|
sec ; CPU:$DA2A PRG:1A2A ??
|
|
sbc BallTargetOffset ; CPU:$DA2C PRG:1A2C ??
|
|
bcc Flow_DA41 ; CPU:$DA2E PRG:1A2E ??
|
|
bpl Flow_DA45 ; CPU:$DA30 PRG:1A30 ??
|
|
lda #$7F ; CPU:$DA32 PRG:1A32 ??
|
|
jmp Flow_DA45 ; CPU:$DA34 PRG:1A34 ??
|
|
Flow_DA41:
|
|
bmi Flow_DA45 ; CPU:$DA36 PRG:1A36 ??
|
|
lda #$80 ; CPU:$DA38 PRG:1A38 ??
|
|
Flow_DA45:
|
|
sta RacketAimOffset ; CPU:$DA3A PRG:1A3A ??
|
|
rts ; PRG $1A47 / CPU $DA47 ; CPU:$DA3C PRG:1A3C ??
|
|
; =============================================================================
|
|
; PhysicsRoutine_DA48
|
|
; CPU address: $DA48 PRG offset: $1A48
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_DA48:
|
|
lda PlayerActionState ; CPU:$DA3E PRG:1A3E ??
|
|
sta MathResultHi ; CPU:$DA40 PRG:1A40 ??
|
|
jsr PhysicsRoutine_D0FA ; CPU:$DA42 PRG:1A42 ??
|
|
lda MathResultHi ; CPU:$DA44 PRG:1A44 ??
|
|
cmp #$01 ; CPU:$DA46 PRG:1A46 ??
|
|
beq Flow_DA65 ; CPU:$DA48 PRG:1A48 ??
|
|
lda PlayerActionState ; CPU:$DA4A PRG:1A4A ??
|
|
cmp #$02 ; CPU:$DA4C PRG:1A4C ??
|
|
bne Flow_DA67 ; CPU:$DA4E PRG:1A4E ??
|
|
ldy ObjectAnimationFrame ; CPU:$DA50 PRG:1A50 ??
|
|
beq Flow_DA67 ; CPU:$DA52 PRG:1A52 ??
|
|
ldy UmpireMessageId ; CPU:$DA54 PRG:1A54 ??
|
|
bne Flow_DA67 ; CPU:$DA56 PRG:1A56 ??
|
|
lda MathResultHi ; CPU:$DA58 PRG:1A58 ??
|
|
Flow_DA65:
|
|
sta PlayerActionState ; CPU:$DA5A PRG:1A5A ??
|
|
Flow_DA67:
|
|
rts ; CPU:$DA5C PRG:1A5C ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_DA68
|
|
; CPU address: $DA68 PRG offset: $1A68
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_DA68:
|
|
ldy #$00 ; CPU:$DA5E PRG:1A5E ??
|
|
lda RacketTargetX ; CPU:$DA60 PRG:1A60 ??
|
|
cmp #$50 ; CPU:$DA62 PRG:1A62 ??
|
|
bcs Flow_DA81 ; CPU:$DA64 PRG:1A64 ??
|
|
ldx #$32 ; CPU:$DA66 PRG:1A66 ??
|
|
lda CourtSide ; CPU:$DA68 PRG:1A68 ??
|
|
beq Flow_DA78 ; CPU:$DA6A PRG:1A6A ??
|
|
ldx #$28 ; CPU:$DA6C PRG:1A6C ??
|
|
Flow_DA78:
|
|
stx PoseSequenceOffset ; CPU:$DA6E PRG:1A6E ??
|
|
lda #$01 ; CPU:$DA70 PRG:1A70 ??
|
|
sta PoseFrameTimer ; CPU:$DA72 PRG:1A72 ??
|
|
sty ObjectAnimationState ; CPU:$DA74 PRG:1A74 ??
|
|
rts ; CPU:$DA76 PRG:1A76 ??
|
|
Flow_DA81:
|
|
iny ; CPU:$DA78 PRG:1A78 ??
|
|
lda BallHeight ; CPU:$DA7A PRG:1A7A ??
|
|
cmp #$50 ; CPU:$DA7C PRG:1A7C ??
|
|
bcc Flow_DA8E ; CPU:$DA7E PRG:1A7E ??
|
|
iny ; CPU:$DA80 PRG:1A80 ??
|
|
cmp #$88 ; CPU:$DA82 PRG:1A82 ??
|
|
bcc Flow_DA8E ; CPU:$DA84 PRG:1A84 ??
|
|
iny ; CPU:$DA86 PRG:1A86 ??
|
|
Flow_DA8E:
|
|
tya ; CPU:$DA88 PRG:1A88 ??
|
|
tax ; CPU:$DA8A PRG:1A8A ??
|
|
dex ; CPU:$DA8C PRG:1A8C ??
|
|
lda CourtSide ; CPU:$DA8E PRG:1A8E ??
|
|
beq Flow_DA9B ; CPU:$DA90 PRG:1A90 ??
|
|
lda $DAA2,x ; CPU:$DA92 PRG:1A92 ??
|
|
jmp Flow_DA9E ; CPU:$DA94 PRG:1A94 ??
|
|
Flow_DA9B:
|
|
lda $DAA5,x ; CPU:$DA96 PRG:1A96 ??
|
|
Flow_DA9E:
|
|
tax ; CPU:$DA98 PRG:1A98 ??
|
|
jmp Flow_DA78 ; CPU:$DA9A PRG:1A9A ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $1AA2-$1AA7.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
Player2CourtPositionTable:
|
|
.byte $28, $50, $3C, $32, $58, $46 ; PRG $1AA2 / CPU $DAA2 ; CPU:$DA9C PRG:1A9C 28 50 3C 32 58 46
|
|
; =============================================================================
|
|
; PhysicsRoutine_DAA8
|
|
; CPU address: $DAA8 PRG offset: $1AA8
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_DAA8:
|
|
lda RacketContactState ; CPU:$DAA2 PRG:1AA2 ??
|
|
beq Flow_DAC6 ; CPU:$DAA4 PRG:1AA4 ??
|
|
cmp #$01 ; CPU:$DAA6 PRG:1AA6 ??
|
|
beq Flow_DAB4 ; CPU:$DAA8 PRG:1AA8 ??
|
|
lda #$04 ; CPU:$DAAA PRG:1AAA ??
|
|
bne Flow_DAB6 ; CPU:$DAAC PRG:1AAC ??
|
|
Flow_DAB4:
|
|
lda #$00 ; CPU:$DAAE PRG:1AAE ??
|
|
Flow_DAB6:
|
|
ldy RacketTargetY ; CPU:$DAB0 PRG:1AB0 ??
|
|
cpy #$80 ; CPU:$DAB2 PRG:1AB2 ??
|
|
bcs Flow_DABF ; CPU:$DAB4 PRG:1AB4 ??
|
|
clc ; CPU:$DAB6 PRG:1AB6 ??
|
|
adc #$03 ; CPU:$DAB8 PRG:1AB8 ??
|
|
Flow_DABF:
|
|
jsr PhysicsRoutine_DE0B ; CPU:$DABA PRG:1ABA ??
|
|
bne Flow_DAC6 ; CPU:$DABC PRG:1ABC ??
|
|
sta RacketContactState ; CPU:$DABE PRG:1ABE ??
|
|
Flow_DAC6:
|
|
rts ; CPU:$DAC0 PRG:1AC0 ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_DAC7
|
|
; CPU address: $DAC7 PRG offset: $1AC7
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_DAC7:
|
|
lda ActiveObjectIndex ; CPU:$DAC2 PRG:1AC2 ??
|
|
beq Flow_DAD2 ; CPU:$DAC4 PRG:1AC4 ??
|
|
ldx $037C ; CPU:$DAC6 PRG:1AC6 ??
|
|
beq Flow_DAE6 ; CPU:$DAC8 PRG:1AC8 ??
|
|
bne Flow_DAD7 ; CPU:$DACA PRG:1ACA ??
|
|
Flow_DAD2:
|
|
ldx $035C ; CPU:$DACC PRG:1ACC ??
|
|
beq Flow_DAE6 ; CPU:$DACE PRG:1ACE ??
|
|
Flow_DAD7:
|
|
dex ; CPU:$DAD0 PRG:1AD0 ??
|
|
txa ; CPU:$DAD2 PRG:1AD2 ??
|
|
jsr PhysicsRoutine_DE0B ; CPU:$DAD4 PRG:1AD4 ??
|
|
bne Flow_DAE6 ; CPU:$DAD6 PRG:1AD6 ??
|
|
sta $035C ; CPU:$DAD8 PRG:1AD8 ??
|
|
sta $037C ; CPU:$DADA PRG:1ADA ??
|
|
sta BallContactFlags ; CPU:$DADC PRG:1ADC ??
|
|
Flow_DAE6:
|
|
rts ; CPU:$DADE PRG:1ADE ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_DAE7
|
|
; CPU address: $DAE7 PRG offset: $1AE7
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_DAE7:
|
|
lda UmpireMessageId ; CPU:$DAE0 PRG:1AE0 ??
|
|
bne Flow_DB19 ; CPU:$DAE2 PRG:1AE2 ??
|
|
lda PlayerPreviousY ; CPU:$DAE4 PRG:1AE4 ??
|
|
cmp #$2C ; CPU:$DAE6 PRG:1AE6 ??
|
|
bcc Flow_DB19 ; CPU:$DAE8 PRG:1AE8 ??
|
|
lda #$0C ; CPU:$DAEA PRG:1AEA ??
|
|
ldx #$20 ; CPU:$DAEC PRG:1AEC ??
|
|
ldy GameMode ; CPU:$DAEE PRG:1AEE ??
|
|
beq Flow_DAFD ; CPU:$DAF0 PRG:1AF0 ??
|
|
lda #$0B ; CPU:$DAF2 PRG:1AF2 ??
|
|
ldx #$80 ; CPU:$DAF4 PRG:1AF4 ??
|
|
Flow_DAFD:
|
|
cpx PlayerTargetXLo ; CPU:$DAF6 PRG:1AF6 ??
|
|
sbc PlayerTargetXHi ; CPU:$DAF8 PRG:1AF8 ??
|
|
bcs Flow_DB19 ; CPU:$DAFA PRG:1AFA ??
|
|
lda #$14 ; CPU:$DAFC PRG:1AFC ??
|
|
ldx #$00 ; CPU:$DAFE PRG:1AFE ??
|
|
ldy GameMode ; CPU:$DB00 PRG:1B00 ??
|
|
beq Flow_DB0F ; CPU:$DB02 PRG:1B02 ??
|
|
lda #$14 ; CPU:$DB04 PRG:1B04 ??
|
|
ldx #$A0 ; CPU:$DB06 PRG:1B06 ??
|
|
Flow_DB0F:
|
|
cpx PlayerTargetXLo ; CPU:$DB08 PRG:1B08 ??
|
|
sbc PlayerTargetXHi ; CPU:$DB0A PRG:1B0A ??
|
|
bcc Flow_DB19 ; CPU:$DB0C PRG:1B0C ??
|
|
lda #$01 ; CPU:$DB0E PRG:1B0E ??
|
|
bne FlowEntry_DB1D ; CPU:$DB10 PRG:1B10 ??
|
|
Flow_DB19:
|
|
lda #$00 ; CPU:$DB12 PRG:1B12 ??
|
|
sta ObjectAnimationFrame ; CPU:$DB14 PRG:1B14 ??
|
|
FlowEntry_DB1D:
|
|
rts ; PRG $1B1D / CPU $DB1D ; CPU:$DB16 PRG:1B16 ??
|
|
; =============================================================================
|
|
; PhysicsRoutine_DB1E
|
|
; CPU address: $DB1E PRG offset: $1B1E
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_DB1E:
|
|
lda RacketContactState ; CPU:$DB18 PRG:1B18 ??
|
|
bne FlowEntry_DB81 ; CPU:$DB1A PRG:1B1A ??
|
|
lda ActiveObjectIndex ; CPU:$DB1C PRG:1B1C ??
|
|
bne Flow_DB36 ; CPU:$DB1E PRG:1B1E ??
|
|
ldy $035A ; CPU:$DB20 PRG:1B20 ??
|
|
bne Flow_DB31 ; CPU:$DB22 PRG:1B22 ??
|
|
bit BallTrajectoryFlags ; CPU:$DB24 PRG:1B24 ??
|
|
bvc Flow_DB78 ; CPU:$DB26 PRG:1B26 ??
|
|
bvs Flow_DB62 ; CPU:$DB28 PRG:1B28 ??
|
|
Flow_DB31:
|
|
dey ; CPU:$DB2A PRG:1B2A ??
|
|
beq Flow_DB74 ; CPU:$DB2C PRG:1B2C ??
|
|
bne Flow_DB62 ; CPU:$DB2E PRG:1B2E ??
|
|
Flow_DB36:
|
|
lda GameMode ; CPU:$DB30 PRG:1B30 ??
|
|
beq Flow_DB49 ; CPU:$DB32 PRG:1B32 ??
|
|
jsr RollRng ; CPU:$DB34 PRG:1B34 ??
|
|
cmp #$25 ; CPU:$DB36 PRG:1B36 ??
|
|
bcs Flow_DB78 ; CPU:$DB38 PRG:1B38 ??
|
|
lda RacketTargetX ; CPU:$DB3A PRG:1B3A ??
|
|
cmp #$50 ; CPU:$DB3C PRG:1B3C ??
|
|
bcc Flow_DB62 ; CPU:$DB3E PRG:1B3E ??
|
|
bcs Flow_DB74 ; CPU:$DB40 PRG:1B40 ??
|
|
Flow_DB49:
|
|
ldx #$64 ; CPU:$DB42 PRG:1B42 ??
|
|
lda ServingPlayer ; CPU:$DB44 PRG:1B44 ??
|
|
cmp #$03 ; CPU:$DB46 PRG:1B46 ??
|
|
bcc Flow_DB53 ; CPU:$DB48 PRG:1B48 ??
|
|
ldx #$82 ; CPU:$DB4A PRG:1B4A ??
|
|
Flow_DB53:
|
|
stx Zp10 ; CPU:$DB4C PRG:1B4C ??
|
|
jsr RollRng ; CPU:$DB4E PRG:1B4E ??
|
|
cmp Zp10 ; CPU:$DB50 PRG:1B50 ??
|
|
bcs Flow_DB6E ; CPU:$DB52 PRG:1B52 ??
|
|
lda RacketTargetX ; CPU:$DB54 PRG:1B54 ??
|
|
cmp #$50 ; CPU:$DB56 PRG:1B56 ??
|
|
bcs FlowEntry_DB81 ; CPU:$DB58 PRG:1B58 ??
|
|
Flow_DB62:
|
|
inc RacketContactState ; CPU:$DB5A PRG:1B5A ??
|
|
lda #$10 ; CPU:$DB5C PRG:1B5C ??
|
|
sta RallyFlags ; CPU:$DB5E PRG:1B5E ??
|
|
lda #$0A ; CPU:$DB60 PRG:1B60 ??
|
|
jsr RenderRoutine_E021 ; CPU:$DB62 PRG:1B62 ??
|
|
rts ; CPU:$DB64 PRG:1B64 ??
|
|
Flow_DB6E:
|
|
lda RacketTargetX ; CPU:$DB66 PRG:1B66 ??
|
|
cmp #$50 ; CPU:$DB68 PRG:1B68 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $1B72-$1B73.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
PhysicsTable_DB72:
|
|
.byte $90, $0D ; PRG $1B72 / CPU $DB72 ; CPU:$DB6A PRG:1B6A 90 0D
|
|
Flow_DB74:
|
|
inc RacketContactState ; CPU:$DB6C PRG:1B6C ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $1B76-$1B77.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
PhysicsTable_DB76:
|
|
.byte $E6, $CA ; PRG $1B76 / CPU $DB76 ; CPU:$DB6E PRG:1B6E E6 CA
|
|
Flow_DB78:
|
|
lda #$10 ; CPU:$DB70 PRG:1B70 ??
|
|
sta RallyFlags ; CPU:$DB72 PRG:1B72 ??
|
|
lda #$0F ; CPU:$DB74 PRG:1B74 ??
|
|
jsr RenderRoutine_E021 ; CPU:$DB76 PRG:1B76 ??
|
|
FlowEntry_DB81:
|
|
rts ; PRG $1B81 / CPU $DB81 ; CPU:$DB78 PRG:1B78 ??
|
|
; =============================================================================
|
|
; PhysicsRoutine_DB82
|
|
; CPU address: $DB82 PRG offset: $1B82
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_DB82:
|
|
lda PlayerAnimationId ; CPU:$DB7A PRG:1B7A ??
|
|
bne Flow_DBBF ; CPU:$DB7C PRG:1B7C ??
|
|
lda PlayerFacingDirection ; CPU:$DB7E PRG:1B7E ??
|
|
cmp #$01 ; CPU:$DB80 PRG:1B80 ??
|
|
bne Flow_DBC0 ; CPU:$DB82 PRG:1B82 ??
|
|
lda PoseSequenceOffset ; CPU:$DB84 PRG:1B84 ??
|
|
cmp #$27 ; CPU:$DB86 PRG:1B86 ??
|
|
bcs Flow_DBBF ; CPU:$DB88 PRG:1B88 ??
|
|
cmp #$09 ; CPU:$DB8A PRG:1B8A ??
|
|
bcc Flow_DBA4 ; CPU:$DB8C PRG:1B8C ??
|
|
cmp #$1D ; CPU:$DB8E PRG:1B8E ??
|
|
bcs Flow_DBAE ; CPU:$DB90 PRG:1B90 ??
|
|
ldy #$6A ; CPU:$DB92 PRG:1B92 ??
|
|
lda CourtSide ; CPU:$DB94 PRG:1B94 ??
|
|
bne Flow_DBBC ; CPU:$DB96 PRG:1B96 ??
|
|
ldy #$72 ; CPU:$DB98 PRG:1B98 ??
|
|
bne Flow_DBBC ; CPU:$DB9A PRG:1B9A ??
|
|
Flow_DBA4:
|
|
ldy #$70 ; CPU:$DB9C PRG:1B9C ??
|
|
lda CourtSide ; CPU:$DB9E PRG:1B9E ??
|
|
beq Flow_DBBC ; CPU:$DBA0 PRG:1BA0 ??
|
|
ldy #$00 ; CPU:$DBA2 PRG:1BA2 ??
|
|
beq Flow_DBB6 ; CPU:$DBA4 PRG:1BA4 ??
|
|
Flow_DBAE:
|
|
ldy #$68 ; CPU:$DBA6 PRG:1BA6 ??
|
|
lda CourtSide ; CPU:$DBA8 PRG:1BA8 ??
|
|
bne Flow_DBBC ; CPU:$DBAA PRG:1BAA ??
|
|
ldy #$1E ; CPU:$DBAC PRG:1BAC ??
|
|
Flow_DBB6:
|
|
lda RallyFlags ; CPU:$DBAE PRG:1BAE ??
|
|
and #$0F ; CPU:$DBB0 PRG:1BB0 ??
|
|
bne Flow_DBBF ; CPU:$DBB2 PRG:1BB2 ??
|
|
Flow_DBBC:
|
|
jmp Flow_DC0A ; CPU:$DBB4 PRG:1BB4 ??
|
|
Flow_DBBF:
|
|
rts ; CPU:$DBB6 PRG:1BB6 ??
|
|
Flow_DBC0:
|
|
lda PoseSequenceOffset ; CPU:$DBB8 PRG:1BB8 ??
|
|
cmp #$27 ; CPU:$DBBA PRG:1BBA ??
|
|
bcs FlowEntry_DC10 ; CPU:$DBBC PRG:1BBC ??
|
|
cmp #$09 ; CPU:$DBBE PRG:1BBE ??
|
|
bcc Flow_DBEA ; CPU:$DBC0 PRG:1BC0 ??
|
|
cmp #$1D ; CPU:$DBC2 PRG:1BC2 ??
|
|
bcs Flow_DBFA ; CPU:$DBC4 PRG:1BC4 ??
|
|
lda RallyFlags ; CPU:$DBC6 PRG:1BC6 ??
|
|
and #$0F ; CPU:$DBC8 PRG:1BC8 ??
|
|
beq PhysicsRoutine_DC11 ; CPU:$DBCA PRG:1BCA ??
|
|
ldy #$72 ; CPU:$DBCC PRG:1BCC ??
|
|
and #$03 ; CPU:$DBCE PRG:1BCE ??
|
|
beq Flow_DBE2 ; CPU:$DBD0 PRG:1BD0 ??
|
|
cmp #$01 ; CPU:$DBD2 PRG:1BD2 ??
|
|
beq Flow_DC0A ; CPU:$DBD4 PRG:1BD4 ??
|
|
Flow_DBDE:
|
|
ldy #$6A ; CPU:$DBD6 PRG:1BD6 ??
|
|
bne Flow_DC0A ; CPU:$DBD8 PRG:1BD8 ??
|
|
Flow_DBE2:
|
|
lda RacketTargetY ; CPU:$DBDA PRG:1BDA ??
|
|
cmp #$80 ; CPU:$DBDC PRG:1BDC ??
|
|
bcc Flow_DC0A ; CPU:$DBDE PRG:1BDE ??
|
|
bcs Flow_DBDE ; CPU:$DBE0 PRG:1BE0 ??
|
|
Flow_DBEA:
|
|
ldy #$00 ; CPU:$DBE2 PRG:1BE2 ??
|
|
lda RallyFlags ; CPU:$DBE4 PRG:1BE4 ??
|
|
and #$0F ; CPU:$DBE6 PRG:1BE6 ??
|
|
beq Flow_DC0A ; CPU:$DBE8 PRG:1BE8 ??
|
|
ldy #$70 ; CPU:$DBEA PRG:1BEA ??
|
|
and #$01 ; CPU:$DBEC PRG:1BEC ??
|
|
bne Flow_DC0A ; CPU:$DBEE PRG:1BEE ??
|
|
beq FlowEntry_DC10 ; CPU:$DBF0 PRG:1BF0 ??
|
|
Flow_DBFA:
|
|
ldy #$1E ; CPU:$DBF2 PRG:1BF2 ??
|
|
lda RallyFlags ; CPU:$DBF4 PRG:1BF4 ??
|
|
and #$0F ; CPU:$DBF6 PRG:1BF6 ??
|
|
beq Flow_DC0A ; CPU:$DBF8 PRG:1BF8 ??
|
|
ldy #$68 ; CPU:$DBFA PRG:1BFA ??
|
|
and #$02 ; CPU:$DBFC PRG:1BFC ??
|
|
bne Flow_DC0A ; CPU:$DBFE PRG:1BFE ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $1C08-$1C09.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
PhysicsTable_DC08:
|
|
.byte $F0, $06 ; PRG $1C08 / CPU $DC08 ; CPU:$DC00 PRG:1C00 F0 06
|
|
Flow_DC0A:
|
|
sty PoseSequenceOffset ; CPU:$DC02 PRG:1C02 ??
|
|
lda #$00 ; CPU:$DC04 PRG:1C04 ??
|
|
sta PoseFrameTimer ; CPU:$DC06 PRG:1C06 ??
|
|
|
|
FlowEntry_DC10:
|
|
rts ; PRG $1C10 / CPU $DC10 ; CPU:$DC08 PRG:1C08 ??
|
|
; =============================================================================
|
|
; PhysicsRoutine_DC11
|
|
; CPU address: $DC11 PRG offset: $1C11
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_DC11:
|
|
ldx #$0A ; CPU:$DC0A PRG:1C0A ??
|
|
lda PoseSequenceOffset ; CPU:$DC0C PRG:1C0C ??
|
|
cmp #$13 ; CPU:$DC0E PRG:1C0E ??
|
|
bcc Flow_DC1B ; CPU:$DC10 PRG:1C10 ??
|
|
ldx #$14 ; CPU:$DC12 PRG:1C12 ??
|
|
Flow_DC1B:
|
|
stx MathResultHi ; CPU:$DC14 PRG:1C14 ??
|
|
ldy #$0A ; CPU:$DC16 PRG:1C16 ??
|
|
lda RacketTargetY ; CPU:$DC18 PRG:1C18 ??
|
|
cmp #$80 ; CPU:$DC1A PRG:1C1A ??
|
|
bcs Flow_DC27 ; CPU:$DC1C PRG:1C1C ??
|
|
ldy #$14 ; CPU:$DC1E PRG:1C1E ??
|
|
Flow_DC27:
|
|
cpy MathResultHi ; CPU:$DC20 PRG:1C20 ??
|
|
beq FlowEntry_DC10 ; CPU:$DC22 PRG:1C22 ??
|
|
bne Flow_DC0A ; CPU:$DC24 PRG:1C24 ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_DC2D
|
|
; CPU address: $DC2D PRG offset: $1C2D
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_DC2D:
|
|
lda #$51 ; CPU:$DC26 PRG:1C26 ??
|
|
sta MathResultLo ; CPU:$DC28 PRG:1C28 ??
|
|
lda #$DE ; CPU:$DC2A PRG:1C2A ??
|
|
sta MathResultHi ; CPU:$DC2C PRG:1C2C ??
|
|
lda #$40 ; CPU:$DC2E PRG:1C2E ??
|
|
sta MathOperandLo ; CPU:$DC30 PRG:1C30 ??
|
|
lda #$00 ; CPU:$DC32 PRG:1C32 ??
|
|
sta MathOperandHi ; CPU:$DC34 PRG:1C34 ??
|
|
ldy ServingPlayer ; CPU:$DC36 PRG:1C36 ??
|
|
beq Flow_DC48 ; CPU:$DC38 PRG:1C38 ??
|
|
lda BallTrajectoryFlags ; CPU:$DC3A PRG:1C3A ??
|
|
and #$02 ; CPU:$DC3C PRG:1C3C ??
|
|
bne Flow_DC48 ; CPU:$DC3E PRG:1C3E ??
|
|
dey ; CPU:$DC40 PRG:1C40 ??
|
|
Flow_DC48:
|
|
ldy ServingPlayer ; CPU:$DC42 PRG:1C42 ??
|
|
beq Flow_DC52 ; CPU:$DC44 PRG:1C44 ??
|
|
Flow_DC4C:
|
|
jsr Add16BitZp12ToZp14 ; CPU:$DC46 PRG:1C46 ??
|
|
dey ; CPU:$DC48 PRG:1C48 ??
|
|
bne Flow_DC4C ; CPU:$DC4A PRG:1C4A ??
|
|
Flow_DC52:
|
|
lda #$08 ; CPU:$DC4C PRG:1C4C ??
|
|
sta MathOperandLo ; CPU:$DC4E PRG:1C4E ??
|
|
jsr PhysicsRoutine_DC63 ; CPU:$DC50 PRG:1C50 ??
|
|
dex ; CPU:$DC52 PRG:1C52 ??
|
|
beq Flow_DC62 ; CPU:$DC54 PRG:1C54 ??
|
|
Flow_DC5C:
|
|
jsr Add16BitZp12ToZp14 ; CPU:$DC56 PRG:1C56 ??
|
|
dex ; CPU:$DC58 PRG:1C58 ??
|
|
bne Flow_DC5C ; CPU:$DC5A PRG:1C5A ??
|
|
Flow_DC62:
|
|
rts ; CPU:$DC5C PRG:1C5C ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_DC63
|
|
; CPU address: $DC63 PRG offset: $1C63
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_DC63:
|
|
ldy #$00 ; CPU:$DC5E PRG:1C5E ??
|
|
lda GameMode ; CPU:$DC60 PRG:1C60 ??
|
|
beq Flow_DC6F ; CPU:$DC62 PRG:1C62 ??
|
|
lda Zp40 ; CPU:$DC64 PRG:1C64 ??
|
|
beq Flow_DC6F ; CPU:$DC66 PRG:1C66 ??
|
|
ldy #$20 ; CPU:$DC68 PRG:1C68 ??
|
|
Flow_DC6F:
|
|
lda $0308,y ; CPU:$DC6A PRG:1C6A ??
|
|
ldx #$01 ; CPU:$DC6C PRG:1C6C ??
|
|
cmp #$A0 ; CPU:$DC6E PRG:1C6E ??
|
|
bcc Flow_DC7A ; CPU:$DC70 PRG:1C70 ??
|
|
ldx #$05 ; CPU:$DC72 PRG:1C72 ??
|
|
Flow_DC7A:
|
|
lda $0309,y ; CPU:$DC74 PRG:1C74 ??
|
|
cmp #$60 ; CPU:$DC76 PRG:1C76 ??
|
|
bcc FlowEntry_DC8C ; CPU:$DC78 PRG:1C78 ??
|
|
inx ; CPU:$DC7A PRG:1C7A ??
|
|
cmp #$80 ; CPU:$DC7C PRG:1C7C ??
|
|
bcc FlowEntry_DC8C ; CPU:$DC7E PRG:1C7E ??
|
|
inx ; CPU:$DC80 PRG:1C80 ??
|
|
cmp #$A0 ; CPU:$DC82 PRG:1C82 ??
|
|
bcc FlowEntry_DC8C ; CPU:$DC84 PRG:1C84 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $1C8B-$1C8C.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
PhysicsTable_DC8B:
|
|
.byte $E8 ; PRG $1C8B / CPU $DC8B ; CPU:$DC86 PRG:1C86 E8
|
|
FlowEntry_DC8C:
|
|
rts ; PRG $1C8C / CPU $DC8C ; CPU:$DC87 PRG:1C87 ??
|
|
; =============================================================================
|
|
; PhysicsRoutine_DC8D
|
|
; CPU address: $DC8D PRG offset: $1C8D
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_DC8D:
|
|
lda RacketTargetX ; CPU:$DC89 PRG:1C89 ??
|
|
ldx #$01 ; CPU:$DC8B PRG:1C8B ??
|
|
cmp #$44 ; CPU:$DC8D PRG:1C8D ??
|
|
bcc Flow_DC97 ; CPU:$DC8F PRG:1C8F ??
|
|
ldx #$05 ; CPU:$DC91 PRG:1C91 ??
|
|
Flow_DC97:
|
|
lda RacketTargetY ; CPU:$DC93 PRG:1C93 ??
|
|
cmp #$68 ; CPU:$DC95 PRG:1C95 ??
|
|
bcc Flow_DCA8 ; CPU:$DC97 PRG:1C97 ??
|
|
inx ; CPU:$DC99 PRG:1C99 ??
|
|
cmp #$80 ; CPU:$DC9B PRG:1C9B ??
|
|
bcc Flow_DCA8 ; CPU:$DC9D PRG:1C9D ??
|
|
inx ; CPU:$DC9F PRG:1C9F ??
|
|
cmp #$98 ; CPU:$DCA1 PRG:1CA1 ??
|
|
bcc Flow_DCA8 ; CPU:$DCA3 PRG:1CA3 ??
|
|
inx ; CPU:$DCA5 PRG:1CA5 ??
|
|
Flow_DCA8:
|
|
stx BallContactFlags ; CPU:$DCA7 PRG:1CA7 ??
|
|
rts ; CPU:$DCA9 PRG:1CA9 ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_DCAB
|
|
; CPU address: $DCAB PRG offset: $1CAB
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_DCAB:
|
|
ldy #$00 ; CPU:$DCAB PRG:1CAB ??
|
|
jsr RollRng ; CPU:$DCAD PRG:1CAD ??
|
|
cmp #$FF ; CPU:$DCAF PRG:1CAF ??
|
|
bne Flow_DCB6 ; CPU:$DCB1 PRG:1CB1 ??
|
|
sbc #$01 ; CPU:$DCB3 PRG:1CB3 ??
|
|
Flow_DCB6:
|
|
cmp (MathResultLo),y ; CPU:$DCB5 PRG:1CB5 ??
|
|
iny ; CPU:$DCB7 PRG:1CB7 ??
|
|
bcs Flow_DCB6 ; CPU:$DCB9 PRG:1CB9 ??
|
|
dey ; CPU:$DCBB PRG:1CBB ??
|
|
tya ; CPU:$DCBD PRG:1CBD ??
|
|
asl a ; CPU:$DCBF PRG:1CBF ??
|
|
asl a ; CPU:$DCC1 PRG:1CC1 ??
|
|
tay ; CPU:$DCC3 PRG:1CC3 ??
|
|
lda $DD11,y ; CPU:$DCC5 PRG:1CC5 ??
|
|
sty Zp10 ; CPU:$DCC7 PRG:1CC7 ??
|
|
cmp #$40 ; CPU:$DCC9 PRG:1CC9 ??
|
|
beq Flow_DCF1 ; CPU:$DCCB PRG:1CCB ??
|
|
ldx #$A0 ; CPU:$DCCD PRG:1CCD ??
|
|
cpy #$00 ; CPU:$DCCF PRG:1CCF ??
|
|
beq Flow_DCD5 ; CPU:$DCD1 PRG:1CD1 ??
|
|
cpy #$10 ; CPU:$DCD3 PRG:1CD3 ??
|
|
beq Flow_DCD5 ; CPU:$DCD5 PRG:1CD5 ??
|
|
ldx #$60 ; CPU:$DCD7 PRG:1CD7 ??
|
|
Flow_DCD5:
|
|
ldy GameMode ; CPU:$DCD9 PRG:1CD9 ??
|
|
bne Flow_DCDE ; CPU:$DCDB PRG:1CDB ??
|
|
stx MathOperandLo ; CPU:$DCDD PRG:1CDD ??
|
|
clc ; CPU:$DCDF PRG:1CDF ??
|
|
adc MathOperandLo ; CPU:$DCE1 PRG:1CE1 ??
|
|
Flow_DCDE:
|
|
ldy ServingPlayer ; CPU:$DCE3 PRG:1CE3 ??
|
|
cpy #$03 ; CPU:$DCE5 PRG:1CE5 ??
|
|
bcc Flow_DCF1 ; CPU:$DCE7 PRG:1CE7 ??
|
|
ldy #$20 ; CPU:$DCE9 PRG:1CE9 ??
|
|
cpx #$A0 ; CPU:$DCEB PRG:1CEB ??
|
|
beq Flow_DCEC ; CPU:$DCED PRG:1CED ??
|
|
ldy #$E0 ; CPU:$DCEF PRG:1CEF ??
|
|
Flow_DCEC:
|
|
sty MathOperandLo ; CPU:$DCF1 PRG:1CF1 ??
|
|
clc ; CPU:$DCF3 PRG:1CF3 ??
|
|
adc MathOperandLo ; CPU:$DCF5 PRG:1CF5 ??
|
|
Flow_DCF1:
|
|
sta MathOperandLo ; CPU:$DCF7 PRG:1CF7 ??
|
|
ldy Zp10 ; CPU:$DCF9 PRG:1CF9 ??
|
|
lda $DD12,y ; CPU:$DCFB PRG:1CFB ??
|
|
sta MathOperandHi ; CPU:$DCFD PRG:1CFD ??
|
|
lda $DD13,y ; CPU:$DCFF PRG:1CFF ??
|
|
cpy #$10 ; CPU:$DD01 PRG:1D01 ??
|
|
bcc Flow_DD09 ; CPU:$DD03 PRG:1D03 ??
|
|
ldx ServingPlayer ; CPU:$DD05 PRG:1D05 ??
|
|
cpx #$03 ; CPU:$DD07 PRG:1D07 ??
|
|
bcc Flow_DD09 ; CPU:$DD09 PRG:1D09 ??
|
|
adc #$37 ; CPU:$DD0B PRG:1D0B ??
|
|
Flow_DD09:
|
|
sta MathResultLo ; CPU:$DD0D PRG:1D0D ??
|
|
lda $DD14,y ; CPU:$DD0F PRG:1D0F ??
|
|
sta MathResultHi ; CPU:$DD11 PRG:1D11 ??
|
|
rts ; CPU:$DD13 PRG:1D13 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $1D11-$1D30.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
ScoreStateTransitionTable:
|
|
.byte $3F, $0C, $00, $0C, $40, $0E, $80, $0C, $40, $10, $80, $0C, $C1, $11, $00, $0C ; PRG $1D11 / CPU $DD11 ; CPU:$DD15 PRG:1D15 3F 0C 00 0C 40 0E 80 0C 40 10 80 0C C1 11 00 0C
|
|
.byte $10, $0C, $58, $0A, $40, $0E, $58, $0A, $40, $10, $58, $0A, $F0, $11, $58, $0A ; PRG $1D21 / CPU $DD21 ; CPU:$DD25 PRG:1D25 10 0C 58 0A 40 0E 58 0A 40 10 58 0A F0 11 58 0A
|
|
; =============================================================================
|
|
; PhysicsRoutine_DD31
|
|
; CPU address: $DD31 PRG offset: $1D31
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_DD31:
|
|
jsr RollRng ; CPU:$DD35 PRG:1D35 ??
|
|
clc ; CPU:$DD37 PRG:1D37 ??
|
|
adc MathOperandLo ; CPU:$DD39 PRG:1D39 ??
|
|
sta PlayerTargetXLo ; CPU:$DD3B PRG:1D3B ??
|
|
lda $0502 ; CPU:$DD3D PRG:1D3D ??
|
|
and #$01 ; CPU:$DD3F PRG:1D3F ??
|
|
adc MathOperandHi ; CPU:$DD41 PRG:1D41 ??
|
|
sta PlayerTargetXHi ; CPU:$DD43 PRG:1D43 ??
|
|
lda $0503 ; CPU:$DD45 PRG:1D45 ??
|
|
clc ; CPU:$DD47 PRG:1D47 ??
|
|
adc MathResultLo ; CPU:$DD49 PRG:1D49 ??
|
|
sta PlayerTargetYLo ; CPU:$DD4B PRG:1D4B ??
|
|
lda $0500 ; CPU:$DD4D PRG:1D4D ??
|
|
and #$01 ; CPU:$DD4F PRG:1D4F ??
|
|
adc MathResultHi ; CPU:$DD51 PRG:1D51 ??
|
|
sta PlayerTargetYHi ; CPU:$DD53 PRG:1D53 ??
|
|
rts ; CPU:$DD55 PRG:1D55 ??
|
|
|
|
; =============================================================================
|
|
; PhysicsRoutine_DD54
|
|
; CPU address: $DD54 PRG offset: $1D54
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_DD54:
|
|
lda BallHeight ; CPU:$DD57 PRG:1D57 ??
|
|
cmp #$B0 ; CPU:$DD59 PRG:1D59 ??
|
|
bcc Flow_DD5D ; CPU:$DD5B PRG:1D5B ??
|
|
jmp Flow_DDFA ; CPU:$DD5D PRG:1D5D ??
|
|
Flow_DD5D:
|
|
lda #$00 ; CPU:$DD5F PRG:1D5F ??
|
|
sta PlayerActionType ; CPU:$DD61 PRG:1D61 ??
|
|
sta PlayerActionParameter ; CPU:$DD63 PRG:1D63 ??
|
|
sta MathResultHi ; CPU:$DD65 PRG:1D65 ??
|
|
ldx ObjectAnimationState ; CPU:$DD67 PRG:1D67 ??
|
|
beq Flow_DD7F ; CPU:$DD69 PRG:1D69 ??
|
|
dex ; CPU:$DD6B PRG:1D6B ??
|
|
lda $DD7C,x ; CPU:$DD6D PRG:1D6D ??
|
|
sta PlayerActionType ; CPU:$DD6F PRG:1D6F ??
|
|
cmp #$04 ; CPU:$DD71 PRG:1D71 ??
|
|
bne Flow_DD79 ; CPU:$DD73 PRG:1D73 ??
|
|
lda #$02 ; CPU:$DD75 PRG:1D75 ??
|
|
sta PlayerActionParameter ; CPU:$DD77 PRG:1D77 ??
|
|
bne Flow_DDEA ; CPU:$DD79 PRG:1D79 ??
|
|
Flow_DD79:
|
|
jmp Flow_DDC5 ; CPU:$DD7B PRG:1D7B ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $1D7C-$1D7E.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
ServingPlayerLookupTable:
|
|
.byte $04, $01, $02 ; PRG $1D7C / CPU $DD7C ; CPU:$DD7D PRG:1D7D 04 01 02
|
|
Flow_DD7F:
|
|
lda GameMode ; CPU:$DD80 PRG:1D80 ??
|
|
beq Flow_DDB3 ; CPU:$DD82 PRG:1D82 ??
|
|
lda $0328 ; CPU:$DD84 PRG:1D84 ??
|
|
cmp #$A0 ; CPU:$DD86 PRG:1D86 ??
|
|
bcs Flow_DD8E ; CPU:$DD88 PRG:1D88 ??
|
|
lda #$01 ; CPU:$DD8A PRG:1D8A ??
|
|
sta MathResultHi ; CPU:$DD8C PRG:1D8C ??
|
|
Flow_DD8E:
|
|
ldy #$00 ; CPU:$DD8E PRG:1D8E ??
|
|
ldx $0308 ; CPU:$DD90 PRG:1D90 ??
|
|
cpx #$A0 ; CPU:$DD92 PRG:1D92 ??
|
|
bcs Flow_DD99 ; CPU:$DD94 PRG:1D94 ??
|
|
ldy #$01 ; CPU:$DD96 PRG:1D96 ??
|
|
Flow_DD99:
|
|
jsr RollRng ; CPU:$DD98 PRG:1D98 ??
|
|
and #$03 ; CPU:$DD9A PRG:1D9A ??
|
|
tax ; CPU:$DD9C PRG:1D9C ??
|
|
tya ; CPU:$DD9E PRG:1D9E ??
|
|
ora MathResultHi ; CPU:$DDA0 PRG:1DA0 ??
|
|
beq Flow_DDD0 ; CPU:$DDA2 PRG:1DA2 ??
|
|
tya ; CPU:$DDA4 PRG:1DA4 ??
|
|
and MathResultHi ; CPU:$DDA6 PRG:1DA6 ??
|
|
beq Flow_DDAE ; CPU:$DDA8 PRG:1DA8 ??
|
|
txa ; CPU:$DDAA PRG:1DAA ??
|
|
bne Flow_DDC1 ; CPU:$DDAC PRG:1DAC ??
|
|
beq Flow_DDD0 ; CPU:$DDAE PRG:1DAE ??
|
|
Flow_DDAE:
|
|
txa ; CPU:$DDB0 PRG:1DB0 ??
|
|
beq Flow_DDC1 ; CPU:$DDB2 PRG:1DB2 ??
|
|
bne Flow_DDD0 ; CPU:$DDB4 PRG:1DB4 ??
|
|
Flow_DDB3:
|
|
lda $0308 ; CPU:$DDB6 PRG:1DB6 ??
|
|
cmp #$A0 ; CPU:$DDB8 PRG:1DB8 ??
|
|
bcs Flow_DDD0 ; CPU:$DDBA PRG:1DBA ??
|
|
lda $0503 ; CPU:$DDBC PRG:1DBC ??
|
|
and #$01 ; CPU:$DDBE PRG:1DBE ??
|
|
beq Flow_DDD0 ; CPU:$DDC0 PRG:1DC0 ??
|
|
Flow_DDC1:
|
|
lda #$04 ; CPU:$DDC2 PRG:1DC2 ??
|
|
sta PlayerActionType ; CPU:$DDC4 PRG:1DC4 ??
|
|
Flow_DDC5:
|
|
lda $0502 ; CPU:$DDC6 PRG:1DC6 ??
|
|
and #$01 ; CPU:$DDC8 PRG:1DC8 ??
|
|
beq Flow_DDD8 ; CPU:$DDCA PRG:1DCA ??
|
|
inc PlayerActionParameter ; CPU:$DDCC PRG:1DCC ??
|
|
bne Flow_DDD8 ; CPU:$DDCE PRG:1DCE ??
|
|
Flow_DDD0:
|
|
lda PlayerTargetXHi ; CPU:$DDD0 PRG:1DD0 ??
|
|
cmp #$0D ; CPU:$DDD2 PRG:1DD2 ??
|
|
bcc Flow_DDD8 ; CPU:$DDD4 PRG:1DD4 ??
|
|
inc PlayerActionParameter ; CPU:$DDD6 PRG:1DD6 ??
|
|
Flow_DDD8:
|
|
lda ComputerActionState ; CPU:$DDD8 PRG:1DD8 ??
|
|
beq Flow_DDEA ; CPU:$DDDA PRG:1DDA ??
|
|
ldx ServingPlayer ; CPU:$DDDC PRG:1DDC ??
|
|
jsr RollRng ; CPU:$DDDE PRG:1DDE ??
|
|
cmp $DE06,x ; CPU:$DDE0 PRG:1DE0 ??
|
|
bcs Flow_DDFA ; CPU:$DDE2 PRG:1DE2 ??
|
|
lda #$00 ; CPU:$DDE4 PRG:1DE4 ??
|
|
sta ComputerActionState ; CPU:$DDE6 PRG:1DE6 ??
|
|
Flow_DDEA:
|
|
jsr RollRng ; CPU:$DDE8 PRG:1DE8 ??
|
|
ldy #$00 ; CPU:$DDEA PRG:1DEA ??
|
|
ldx ServingPlayer ; CPU:$DDEC PRG:1DEC ??
|
|
cmp $DE01,x ; CPU:$DDEE PRG:1DEE ??
|
|
bcc Flow_DDF7 ; CPU:$DDF0 PRG:1DF0 ??
|
|
iny ; CPU:$DDF2 PRG:1DF2 ??
|
|
Flow_DDF7:
|
|
sty PlayerActionState ; CPU:$DDF4 PRG:1DF4 ??
|
|
rts ; PRG $1DF9 / CPU $DDF9 ; CPU:$DDF6 PRG:1DF6 ??
|
|
Flow_DDFA:
|
|
lda #$00 ; CPU:$DDF8 PRG:1DF8 ??
|
|
sta ObjectAnimationFrame ; CPU:$DDFA PRG:1DFA ??
|
|
sta ComputerActionState ; CPU:$DDFC PRG:1DFC ??
|
|
rts ; CPU:$DDFE PRG:1DFE ??
|
|
|
|
ComputerActionProbabilityTable:
|
|
.byte $20, $20, $0E, $02, $01, $30, $50, $70, $90, $B0 ; PRG $1E01 / CPU $DE01 ; CPU:$DE00 PRG:1E00 20 20 0E 02 01 30 50 70 90 B0
|
|
; =============================================================================
|
|
; PhysicsRoutine_DE0B
|
|
; CPU address: $DE0B PRG offset: $1E0B
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
PhysicsRoutine_DE0B:
|
|
asl a ; CPU:$DE0A PRG:1E0A ??
|
|
tay ; CPU:$DE0C PRG:1E0C ??
|
|
lda #$41 ; CPU:$DE0E PRG:1E0E ??
|
|
sta Zp10 ; CPU:$DE10 PRG:1E10 ??
|
|
lda #$DE ; CPU:$DE12 PRG:1E12 ??
|
|
sta Zp11 ; CPU:$DE14 PRG:1E14 ??
|
|
lda (Zp10),y ; CPU:$DE16 PRG:1E16 ??
|
|
cmp RacketTargetX ; CPU:$DE18 PRG:1E18 ??
|
|
beq Flow_DE25 ; CPU:$DE1A PRG:1E1A ??
|
|
bcs Flow_DE21 ; CPU:$DE1C PRG:1E1C ??
|
|
lda #$08 ; CPU:$DE1E PRG:1E1E ??
|
|
bne Flow_DE27 ; CPU:$DE20 PRG:1E20 ??
|
|
Flow_DE21:
|
|
lda #$04 ; CPU:$DE22 PRG:1E22 ??
|
|
bne Flow_DE27 ; CPU:$DE24 PRG:1E24 ??
|
|
Flow_DE25:
|
|
lda #$00 ; CPU:$DE26 PRG:1E26 ??
|
|
Flow_DE27:
|
|
sta MathResultHi ; CPU:$DE28 PRG:1E28 ??
|
|
iny ; CPU:$DE2A PRG:1E2A ??
|
|
lda (Zp10),y ; CPU:$DE2C PRG:1E2C ??
|
|
cmp RacketTargetY ; CPU:$DE2E PRG:1E2E ??
|
|
beq Flow_DE3A ; CPU:$DE30 PRG:1E30 ??
|
|
bcs Flow_DE36 ; CPU:$DE32 PRG:1E32 ??
|
|
lda #$02 ; CPU:$DE34 PRG:1E34 ??
|
|
bne Flow_DE3C ; CPU:$DE36 PRG:1E36 ??
|
|
Flow_DE36:
|
|
lda #$01 ; CPU:$DE38 PRG:1E38 ??
|
|
bne Flow_DE3C ; CPU:$DE3A PRG:1E3A ??
|
|
Flow_DE3A:
|
|
lda #$00 ; CPU:$DE3C PRG:1E3C ??
|
|
Flow_DE3C:
|
|
ora MathResultHi ; CPU:$DE3E PRG:1E3E ??
|
|
sta RallyFlags ; CPU:$DE40 PRG:1E40 ??
|
|
rts ; CPU:$DE42 PRG:1E42 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $1E41-$1F8E.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
PhysicsTable_DE41:
|
|
.byte $5C, $8C, $5C, $9C, $5C, $64, $5C, $74, $2C, $8C, $2C, $A0, $2C, $60, $2C, $74 ; PRG $1E41 / CPU $DE41 ; CPU:$DE44 PRG:1E44 5C 8C 5C 9C 5C 64 5C 74 2C 8C 2C A0 2C 60 2C 74
|
|
.byte $34, $67, $67, $67, $CD, $FF, $FF, $FF, $00, $34, $67, $67, $67, $CD, $FF, $FF ; PRG $1E51 / CPU $DE51 ; CPU:$DE54 PRG:1E54 34 67 67 67 CD FF FF FF 00 34 67 67 67 CD FF FF
|
|
.byte $00, $34, $67, $67, $67, $9A, $FF, $FF, $00, $00, $34, $67, $67, $67, $9A, $FF ; PRG $1E61 / CPU $DE61 ; CPU:$DE64 PRG:1E64 00 34 67 67 67 9A FF FF 00 00 34 67 67 67 9A FF
|
|
.byte $1A, $1A, $1A, $1A, $B3, $E6, $FF, $FF, $00, $1A, $1A, $1A, $34, $CD, $FF, $FF ; PRG $1E71 / CPU $DE71 ; CPU:$DE74 PRG:1E74 1A 1A 1A 1A B3 E6 FF FF 00 1A 1A 1A 34 CD FF FF
|
|
.byte $00, $00, $1A, $1A, $1A, $4D, $E6, $FF, $00, $00, $00, $1A, $1A, $34, $67, $FF ; PRG $1E81 / CPU $DE81 ; CPU:$DE84 PRG:1E84 00 00 1A 1A 1A 4D E6 FF 00 00 00 1A 1A 34 67 FF
|
|
.byte $34, $67, $80, $80, $CD, $FF, $FF, $FF, $00, $34, $67, $80, $80, $CD, $FF, $FF ; PRG $1E91 / CPU $DE91 ; CPU:$DE94 PRG:1E94 34 67 80 80 CD FF FF FF 00 34 67 80 80 CD FF FF
|
|
.byte $1A, $4D, $80, $80, $80, $B3, $FF, $FF, $00, $1A, $4D, $80, $80, $80, $B3, $FF ; PRG $1EA1 / CPU $DEA1 ; CPU:$DEA4 PRG:1EA4 1A 4D 80 80 80 B3 FF FF 00 1A 4D 80 80 80 B3 FF
|
|
.byte $1A, $34, $34, $34, $B3, $E6, $FF, $FF, $00, $1A, $34, $34, $4D, $CD, $FF, $FF ; PRG $1EB1 / CPU $DEB1 ; CPU:$DEB4 PRG:1EB4 1A 34 34 34 B3 E6 FF FF 00 1A 34 34 4D CD FF FF
|
|
.byte $00, $1A, $34, $34, $34, $67, $E6, $FF, $00, $00, $1A, $34, $34, $4D, $80, $FF ; PRG $1EC1 / CPU $DEC1 ; CPU:$DEC4 PRG:1EC4 00 1A 34 34 34 67 E6 FF 00 00 1A 34 34 4D 80 FF
|
|
.byte $34, $67, $80, $80, $B3, $E6, $FF, $FF, $00, $34, $67, $80, $9A, $CD, $FF, $FF ; PRG $1ED1 / CPU $DED1 ; CPU:$DED4 PRG:1ED4 34 67 80 80 B3 E6 FF FF 00 34 67 80 9A CD FF FF
|
|
.byte $1A, $4D, $80, $80, $80, $B3, $E6, $FF, $00, $1A, $4D, $80, $80, $9A, $CD, $FF ; PRG $1EE1 / CPU $DEE1 ; CPU:$DEE4 PRG:1EE4 1A 4D 80 80 80 B3 E6 FF 00 1A 4D 80 80 9A CD FF
|
|
.byte $00, $1A, $34, $34, $9A, $CD, $E6, $FF, $00, $1A, $34, $34, $4D, $B3, $E6, $FF ; PRG $1EF1 / CPU $DEF1 ; CPU:$DEF4 PRG:1EF4 00 1A 34 34 9A CD E6 FF 00 1A 34 34 4D B3 E6 FF
|
|
.byte $00, $1A, $34, $34, $4D, $80, $E6, $FF, $00, $1A, $34, $34, $4D, $67, $FF, $34 ; PRG $1F01 / CPU $DF01 ; CPU:$DF04 PRG:1F04 00 1A 34 34 4D 80 E6 FF 00 1A 34 34 4D 67 FF 34
|
|
.byte $67, $80, $80, $B3, $E6, $FF, $FF, $00, $34, $67, $80, $9A, $CD, $FF, $FF, $1A ; PRG $1F11 / CPU $DF11 ; CPU:$DF14 PRG:1F14 67 80 80 B3 E6 FF FF 00 34 67 80 9A CD FF FF 1A
|
|
.byte $4D, $80, $80, $80, $B3, $FF, $00, $1A, $4D, $80, $80, $9A, $CD, $FF, $1A, $34 ; PRG $1F21 / CPU $DF21 ; CPU:$DF24 PRG:1F24 4D 80 80 80 B3 FF 00 1A 4D 80 80 9A CD FF 1A 34
|
|
.byte $4D, $4D, $9A, $CD, $E6, $FF, $1A, $34, $4D, $4D, $67, $B3, $E6, $FF, $00, $1A ; PRG $1F31 / CPU $DF31 ; CPU:$DF34 PRG:1F34 4D 4D 9A CD E6 FF 1A 34 4D 4D 67 B3 E6 FF 00 1A
|
|
.byte $34, $4D, $67, $9A, $E6, $FF, $00, $1A, $34, $4D, $67, $80, $B3, $FF, $34, $4D ; PRG $1F41 / CPU $DF41 ; CPU:$DF44 PRG:1F44 34 4D 67 9A E6 FF 00 1A 34 4D 67 80 B3 FF 34 4D
|
|
.byte $67, $80, $B3, $CD, $E6, $FF, $1A, $4D, $67, $80, $9A, $CD, $E6, $FF, $1A, $34 ; PRG $1F51 / CPU $DF51 ; CPU:$DF54 PRG:1F54 67 80 B3 CD E6 FF 1A 4D 67 80 9A CD E6 FF 1A 34
|
|
.byte $67, $80, $9A, $B3, $E6, $FF, $1A, $34, $4D, $80, $9A, $B3, $CD, $FF, $1A, $34 ; PRG $1F61 / CPU $DF61 ; CPU:$DF64 PRG:1F64 67 80 9A B3 E6 FF 1A 34 4D 80 9A B3 CD FF 1A 34
|
|
.byte $4D, $67, $9A, $B3, $CD, $FF, $1A, $34, $4D, $67, $80, $B3, $CD, $FF, $1A, $34 ; PRG $1F71 / CPU $DF71 ; CPU:$DF74 PRG:1F74 4D 67 9A B3 CD FF 1A 34 4D 67 80 B3 CD FF 1A 34
|
|
.byte $4D, $67, $9A, $B3, $E6, $FF, $1A, $34, $4D, $67, $9A, $B3, $CD, $FF ; PRG $1F81 / CPU $DF81 ; CPU:$DF84 PRG:1F84 4D 67 9A B3 E6 FF 1A 34 4D 67 9A B3 CD FF
|
|
; =============================================================================
|
|
; RenderRoutine_DF8F
|
|
; CPU address: $DF8F PRG offset: $1F8F
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_DF8F:
|
|
lda #$00 ; CPU:$DF92 PRG:1F92 ??
|
|
sta ObjectAnimationFrame ; CPU:$DF94 PRG:1F94 ??
|
|
lda RacketTargetX ; CPU:$DF96 PRG:1F96 ??
|
|
bit BallTrajectoryFlags ; CPU:$DF98 PRG:1F98 ??
|
|
bvc Flow_DF9D ; CPU:$DF9A PRG:1F9A ??
|
|
cmp #$44 ; CPU:$DF9C PRG:1F9C ??
|
|
bcs Flow_DFF4 ; CPU:$DF9E PRG:1F9E ??
|
|
Flow_DF9D:
|
|
cmp #$50 ; CPU:$DFA0 PRG:1FA0 ??
|
|
bcs Flow_DFDF ; CPU:$DFA2 PRG:1FA2 ??
|
|
lda RacketTargetY ; CPU:$DFA4 PRG:1FA4 ??
|
|
sec ; CPU:$DFA6 PRG:1FA6 ??
|
|
sbc PlayerPreviousX ; CPU:$DFA8 PRG:1FA8 ??
|
|
bcs Flow_DFAC ; CPU:$DFAA PRG:1FAA ??
|
|
eor #$FF ; CPU:$DFAC PRG:1FAC ??
|
|
adc #$01 ; CPU:$DFAE PRG:1FAE ??
|
|
Flow_DFAC:
|
|
sta MathResultHi ; CPU:$DFB0 PRG:1FB0 ??
|
|
ldx ServingPlayer ; CPU:$DFB2 PRG:1FB2 ??
|
|
lda BallTrajectoryFlags ; CPU:$DFB4 PRG:1FB4 ??
|
|
and #$02 ; CPU:$DFB6 PRG:1FB6 ??
|
|
beq Flow_DFB9 ; CPU:$DFB8 PRG:1FB8 ??
|
|
clc ; CPU:$DFBA PRG:1FBA ??
|
|
adc #$05 ; CPU:$DFBC PRG:1FBC ??
|
|
Flow_DFB9:
|
|
txa ; CPU:$DFBE PRG:1FBE ??
|
|
tay ; CPU:$DFC0 PRG:1FC0 ??
|
|
asl a ; CPU:$DFC2 PRG:1FC2 ??
|
|
tax ; CPU:$DFC4 PRG:1FC4 ??
|
|
lda $E044,x ; CPU:$DFC6 PRG:1FC6 ??
|
|
inx ; CPU:$DFC8 PRG:1FC8 ??
|
|
cmp MathResultHi ; CPU:$DFCA PRG:1FCA ??
|
|
bcc Flow_DFF4 ; CPU:$DFCC PRG:1FCC ??
|
|
lda RacketTargetX ; CPU:$DFCE PRG:1FCE ??
|
|
adc $E044,x ; CPU:$DFD0 PRG:1FD0 ??
|
|
sbc $E058,y ; CPU:$DFD2 PRG:1FD2 ??
|
|
sec ; CPU:$DFD4 PRG:1FD4 ??
|
|
sbc PlayerPreviousY ; CPU:$DFD6 PRG:1FD6 ??
|
|
bcs Flow_DFD6 ; CPU:$DFD8 PRG:1FD8 ??
|
|
eor #$FF ; CPU:$DFDA PRG:1FDA ??
|
|
adc #$01 ; CPU:$DFDC PRG:1FDC ??
|
|
Flow_DFD6:
|
|
sta MathResultHi ; CPU:$DFDE PRG:1FDE ??
|
|
lda $E044,x ; CPU:$DFE0 PRG:1FE0 ??
|
|
cmp MathResultHi ; CPU:$DFE2 PRG:1FE2 ??
|
|
bcc Flow_DFF4 ; CPU:$DFE4 PRG:1FE4 ??
|
|
Flow_DFDF:
|
|
lda ActiveObjectIndex ; CPU:$DFE6 PRG:1FE6 ??
|
|
bne Flow_DFF2 ; CPU:$DFE8 PRG:1FE8 ??
|
|
lda $0359 ; CPU:$DFEA PRG:1FEA ??
|
|
beq Flow_DFF2 ; CPU:$DFEC PRG:1FEC ??
|
|
jsr RollRng ; CPU:$DFEE PRG:1FEE ??
|
|
cmp #$A0 ; CPU:$DFF0 PRG:1FF0 ??
|
|
bcc Flow_DFF4 ; CPU:$DFF2 PRG:1FF2 ??
|
|
dec $0359 ; CPU:$DFF4 PRG:1FF4 ??
|
|
Flow_DFF2:
|
|
inc ObjectAnimationFrame ; CPU:$DFF6 PRG:1FF6 ??
|
|
Flow_DFF4:
|
|
rts ; CPU:$DFF8 PRG:1FF8 ??
|
|
|
|
; =============================================================================
|
|
; RenderRoutine_DFF5
|
|
; CPU address: $DFF5 PRG offset: $1FF5
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_DFF5:
|
|
lda PlayerActionType ; CPU:$DFFA PRG:1FFA ??
|
|
bne Flow_E020 ; CPU:$DFFC PRG:1FFC ??
|
|
lda ServingPlayer ; CPU:$DFFE PRG:1FFE ??
|
|
cmp #$03 ; CPU:$E000 PRG:2000 ??
|
|
bcc Flow_E020 ; CPU:$E002 PRG:2002 ??
|
|
ldx #$00 ; CPU:$E004 PRG:2004 ??
|
|
ldy #$01 ; CPU:$E006 PRG:2006 ??
|
|
lda ObjectAnimationFrame ; CPU:$E008 PRG:2008 ??
|
|
bne Flow_E014 ; CPU:$E00A PRG:200A ??
|
|
lda BallContactFlags ; CPU:$E00C PRG:200C ??
|
|
cmp #$05 ; CPU:$E00E PRG:200E ??
|
|
bcc Flow_E020 ; CPU:$E010 PRG:2010 ??
|
|
sty ObjectAnimationFrame ; CPU:$E012 PRG:2012 ??
|
|
stx $0359 ; CPU:$E014 PRG:2014 ??
|
|
bcs Flow_E020 ; CPU:$E016 PRG:2016 ??
|
|
Flow_E014:
|
|
lda $035C ; CPU:$E018 PRG:2018 ??
|
|
cmp #$05 ; CPU:$E01A PRG:201A ??
|
|
bcc Flow_E020 ; CPU:$E01C PRG:201C ??
|
|
sty $0359 ; CPU:$E01E PRG:201E ??
|
|
stx ObjectAnimationFrame ; CPU:$E020 PRG:2020 ??
|
|
Flow_E020:
|
|
rts ; CPU:$E022 PRG:2022 ??
|
|
|
|
; =============================================================================
|
|
; RenderRoutine_E021
|
|
; CPU address: $E021 PRG offset: $2021
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E021:
|
|
clc ; CPU:$E024 PRG:2024 ??
|
|
adc ServingPlayer ; CPU:$E026 PRG:2026 ??
|
|
tax ; CPU:$E028 PRG:2028 ??
|
|
lda $E02B,x ; CPU:$E02A PRG:202A ??
|
|
sta RallyPhase ; CPU:$E02C PRG:202C ??
|
|
rts ; CPU:$E02E PRG:202E ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $202B-$2075.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
CourtObjectMetaspriteData:
|
|
.byte $04, $06, $08, $0B, $0E, $03, $05, $06, $08, $0B, $06, $07, $08, $09, $0A, $04 ; PRG $202B / CPU $E02B ; CPU:$E030 PRG:2030 04 06 08 0B 0E 03 05 06 08 0B 06 07 08 09 0A 04
|
|
.byte $05, $06, $08, $0A, $01, $02, $02, $04, $06, $20, $20, $34, $24, $40, $28, $48 ; PRG $203B / CPU $E03B ; CPU:$E040 PRG:2040 05 06 08 0A 01 02 02 04 06 20 20 34 24 40 28 48
|
|
.byte $2C, $50, $32, $30, $24, $40, $28, $50, $2C, $60, $32, $80, $38, $08, $0E, $1C ; PRG $204B / CPU $E04B ; CPU:$E050 PRG:2050 2C 50 32 30 24 40 28 50 2C 60 32 80 38 08 0E 1C
|
|
.byte $24, $2C, $0A, $10, $1C, $24, $2C, $A5, $15, $85, $9B, $A5, $14, $85, $9C, $20 ; PRG $205B / CPU $E05B ; CPU:$E060 PRG:2060 24 2C 0A 10 1C 24 2C A5 15 85 9B A5 14 85 9C 20
|
|
.byte $F3, $C6, $A5, $9B, $85, $15, $A5, $9C, $85, $14, $60 ; PRG $206B / CPU $E06B ; CPU:$E070 PRG:2070 F3 C6 A5 9B 85 15 A5 9C 85 14 60
|
|
; =============================================================================
|
|
; RenderRoutine_E076
|
|
; CPU address: $E076 PRG offset: $2076
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E076:
|
|
lda #$80 ; CPU:$E07B PRG:207B ??
|
|
sta ObjectDataPointerLo ; CPU:$E07D PRG:207D ??
|
|
lda #$03 ; CPU:$E07F PRG:207F ??
|
|
sta ObjectDataPointerHi ; CPU:$E081 PRG:2081 ??
|
|
lda #$00 ; CPU:$E083 PRG:2083 ??
|
|
sta ObjectDataOffset ; CPU:$E085 PRG:2085 ??
|
|
jsr EngineRoutine_C1F3 ; CPU:$E087 PRG:2087 ??
|
|
lda AnimationFrame ; CPU:$E089 PRG:2089 ??
|
|
beq Flow_E0BA ; CPU:$E08B PRG:208B ??
|
|
jsr RenderRoutine_E146 ; CPU:$E08D PRG:208D ??
|
|
jsr EngineRoutine_C21C ; CPU:$E08F PRG:208F ??
|
|
jsr EngineRoutine_C20E ; CPU:$E091 PRG:2091 ??
|
|
jsr EngineRoutine_C206 ; CPU:$E093 PRG:2093 ??
|
|
jsr EngineRoutine_C1F3 ; CPU:$E095 PRG:2095 ??
|
|
jsr EngineRoutine_C499 ; CPU:$E097 PRG:2097 ??
|
|
lda $0386 ; CPU:$E099 PRG:2099 ??
|
|
cmp #$3E ; CPU:$E09B PRG:209B ??
|
|
beq Flow_E0AC ; CPU:$E09D PRG:209D ??
|
|
cmp #$2F ; CPU:$E09F PRG:209F ??
|
|
clc ; CPU:$E0A1 PRG:20A1 ??
|
|
bne Flow_E0A8 ; CPU:$E0A3 PRG:20A3 ??
|
|
sec ; CPU:$E0A5 PRG:20A5 ??
|
|
Flow_E0A8:
|
|
adc #$04 ; CPU:$E0A7 PRG:20A7 ??
|
|
sta PlayerPoseId ; CPU:$E0A9 PRG:20A9 ??
|
|
Flow_E0AC:
|
|
lda RacketTargetX ; CPU:$E0AB PRG:20AB ??
|
|
sta BallTargetOffset ; CPU:$E0AD PRG:20AD ??
|
|
lda RacketTargetY ; CPU:$E0AF PRG:20AF ??
|
|
sta BallHeightReference ; CPU:$E0B1 PRG:20B1 ??
|
|
jsr EngineRoutine_C21C ; CPU:$E0B3 PRG:20B3 ??
|
|
jsr EngineRoutine_C20E ; CPU:$E0B5 PRG:20B5 ??
|
|
Flow_E0BA:
|
|
rts ; CPU:$E0B7 PRG:20B7 ??
|
|
|
|
; =============================================================================
|
|
; RenderRoutine_E0BB
|
|
; CPU address: $E0BB PRG offset: $20BB
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E0BB:
|
|
lda PlayerActionState ; CPU:$E0B9 PRG:20B9 ??
|
|
cmp #$01 ; CPU:$E0BB PRG:20BB ??
|
|
bne Flow_E0D5 ; CPU:$E0BD PRG:20BD ??
|
|
lda PlayerPoseId ; CPU:$E0BF PRG:20BF ??
|
|
cmp #$3E ; CPU:$E0C1 PRG:20C1 ??
|
|
beq Flow_E0D1 ; CPU:$E0C3 PRG:20C3 ??
|
|
lda RallyPhase ; CPU:$E0C5 PRG:20C5 ??
|
|
cmp #$03 ; CPU:$E0C7 PRG:20C7 ??
|
|
bcs Flow_E0D1 ; CPU:$E0C9 PRG:20C9 ??
|
|
lda UmpireMessageId ; CPU:$E0CB PRG:20CB ??
|
|
beq Flow_E0D5 ; CPU:$E0CD PRG:20CD ??
|
|
Flow_E0D1:
|
|
ldy #$00 ; CPU:$E0CF PRG:20CF ??
|
|
sty PlayerActionState ; CPU:$E0D1 PRG:20D1 ??
|
|
Flow_E0D5:
|
|
rts ; CPU:$E0D3 PRG:20D3 ??
|
|
|
|
; =============================================================================
|
|
; RenderRoutine_E0D6
|
|
; CPU address: $E0D6 PRG offset: $20D6
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E0D6:
|
|
lda $03A8 ; CPU:$E0D5 PRG:20D5 ??
|
|
sta PlayerYPosition ; CPU:$E0D7 PRG:20D7 ??
|
|
lda $03A9 ; CPU:$E0D9 PRG:20D9 ??
|
|
sta PlayerXPosition ; CPU:$E0DB PRG:20DB ??
|
|
lda Player1YSubpixel ; CPU:$E0DD PRG:20DD ??
|
|
pha ; CPU:$E0DF PRG:20DF ??
|
|
lda Player1YPosition ; CPU:$E0E1 PRG:20E1 ??
|
|
pha ; CPU:$E0E3 PRG:20E3 ??
|
|
lda Player2YSubpixel ; CPU:$E0E5 PRG:20E5 ??
|
|
pha ; CPU:$E0E7 PRG:20E7 ??
|
|
lda Player2YPosition ; CPU:$E0E9 PRG:20E9 ??
|
|
pha ; CPU:$E0EB PRG:20EB ??
|
|
lda RacketTargetX ; CPU:$E0ED PRG:20ED ??
|
|
pha ; CPU:$E0EF PRG:20EF ??
|
|
lda RacketTargetY ; CPU:$E0F1 PRG:20F1 ??
|
|
pha ; CPU:$E0F3 PRG:20F3 ??
|
|
lda Player1XSubpixel ; CPU:$E0F5 PRG:20F5 ??
|
|
sta MathVectorYHi ; CPU:$E0F7 PRG:20F7 ??
|
|
lda #$00 ; CPU:$E0F9 PRG:20F9 ??
|
|
sta MathVectorYLo ; CPU:$E0FB PRG:20FB ??
|
|
sta MathVectorXHi ; CPU:$E0FD PRG:20FD ??
|
|
sta ProjectedXLo ; CPU:$E0FF PRG:20FF ??
|
|
sta ProjectedXHi ; CPU:$E101 PRG:2101 ??
|
|
jsr EngineRoutine_C6ED ; CPU:$E103 PRG:2103 ??
|
|
lda MathVectorYHi ; CPU:$E105 PRG:2105 ??
|
|
sta MathVectorXLo ; CPU:$E107 PRG:2107 ??
|
|
lda WorkPtrLo ; CPU:$E109 PRG:2109 ??
|
|
sta ProjectedYLo ; CPU:$E10B PRG:210B ??
|
|
lda WorkPtrHi ; CPU:$E10D PRG:210D ??
|
|
sta ProjectedYHi ; CPU:$E10F PRG:210F ??
|
|
jsr EngineRoutine_C62B ; CPU:$E111 PRG:2111 ??
|
|
jsr MatchRoutine_C705 ; CPU:$E113 PRG:2113 ??
|
|
lda PlayerTargetXLo ; CPU:$E115 PRG:2115 ??
|
|
clc ; CPU:$E117 PRG:2117 ??
|
|
adc MathVectorYHi ; CPU:$E119 PRG:2119 ??
|
|
sta Player1YSubpixel ; CPU:$E11B PRG:211B ??
|
|
lda PlayerTargetXHi ; CPU:$E11D PRG:211D ??
|
|
sta Player1YPosition ; CPU:$E11F PRG:211F ??
|
|
lda PlayerTargetYLo ; CPU:$E121 PRG:2121 ??
|
|
sta Player2YSubpixel ; CPU:$E123 PRG:2123 ??
|
|
lda PlayerTargetYHi ; CPU:$E125 PRG:2125 ??
|
|
sta Player2YPosition ; CPU:$E127 PRG:2127 ??
|
|
jsr EngineRoutine_C499 ; CPU:$E129 PRG:2129 ??
|
|
lda RacketTargetX ; CPU:$E12B PRG:212B ??
|
|
sta PlayerPreviousY ; CPU:$E12D PRG:212D ??
|
|
lda RacketTargetY ; CPU:$E12F PRG:212F ??
|
|
sta PlayerPreviousX ; CPU:$E131 PRG:2131 ??
|
|
pla ; CPU:$E133 PRG:2133 ??
|
|
sta RacketTargetY ; CPU:$E135 PRG:2135 ??
|
|
pla ; CPU:$E137 PRG:2137 ??
|
|
sta RacketTargetX ; CPU:$E139 PRG:2139 ??
|
|
pla ; CPU:$E13B PRG:213B ??
|
|
sta Player2YPosition ; CPU:$E13D PRG:213D ??
|
|
pla ; CPU:$E13F PRG:213F ??
|
|
sta Player2YSubpixel ; CPU:$E141 PRG:2141 ??
|
|
pla ; CPU:$E143 PRG:2143 ??
|
|
sta Player1YPosition ; CPU:$E145 PRG:2145 ??
|
|
pla ; CPU:$E147 PRG:2147 ??
|
|
sta Player1YSubpixel ; CPU:$E149 PRG:2149 ??
|
|
rts ; PRG $2145 / CPU $E145 ; CPU:$E14B PRG:214B ??
|
|
; =============================================================================
|
|
; RenderRoutine_E146
|
|
; CPU address: $E146 PRG offset: $2146
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E146:
|
|
jsr RenderRoutine_E0BB ; CPU:$E14D PRG:214D ??
|
|
lda NetAnimationTimer ; CPU:$E14F PRG:214F ??
|
|
beq Flow_E14F ; CPU:$E151 PRG:2151 ??
|
|
dec NetAnimationTimer ; CPU:$E153 PRG:2153 ??
|
|
Flow_E14F:
|
|
lda PlayerActionState ; CPU:$E155 PRG:2155 ??
|
|
bne Flow_E197 ; CPU:$E157 PRG:2157 ??
|
|
ldy #$01 ; CPU:$E159 PRG:2159 ??
|
|
lda Player2XPosition ; CPU:$E15B PRG:215B ??
|
|
bne Flow_E15D ; CPU:$E15D PRG:215D ??
|
|
ldy #$00 ; CPU:$E15F PRG:215F ??
|
|
beq Flow_E161 ; CPU:$E161 PRG:2161 ??
|
|
Flow_E15D:
|
|
bpl Flow_E161 ; CPU:$E163 PRG:2163 ??
|
|
ldy #$FF ; CPU:$E165 PRG:2165 ??
|
|
Flow_E161:
|
|
sty PlayerFacingDirection ; CPU:$E167 PRG:2167 ??
|
|
sty BallAnimationTimer ; CPU:$E169 PRG:2169 ??
|
|
jsr IntegrateObjectMotion ; CPU:$E16B PRG:216B ??
|
|
lda RacketTargetY ; CPU:$E16D PRG:216D ??
|
|
sta ObjectAnimationFrame ; CPU:$E16F PRG:216F ??
|
|
jsr EngineRoutine_C478 ; CPU:$E171 PRG:2171 ??
|
|
lda Player1XPosition ; CPU:$E173 PRG:2173 ??
|
|
bpl Flow_E18A ; CPU:$E175 PRG:2175 ??
|
|
lda RacketTargetY ; CPU:$E177 PRG:2177 ??
|
|
bpl Flow_E18A ; CPU:$E179 PRG:2179 ??
|
|
lda ObjectAnimationFrame ; CPU:$E17B PRG:217B ??
|
|
bmi Flow_E18A ; CPU:$E17D PRG:217D ??
|
|
lda #$00 ; CPU:$E17F PRG:217F ??
|
|
sta RacketTargetY ; CPU:$E181 PRG:2181 ??
|
|
sta Player1XSubpixel ; CPU:$E183 PRG:2183 ??
|
|
sta Player1XPosition ; CPU:$E185 PRG:2185 ??
|
|
lda #$3E ; CPU:$E187 PRG:2187 ??
|
|
sta PlayerPoseId ; CPU:$E189 PRG:2189 ??
|
|
sta $03A6 ; CPU:$E18B PRG:218B ??
|
|
Flow_E18A:
|
|
jsr RenderRoutine_E365 ; CPU:$E18D PRG:218D ??
|
|
jsr RenderRoutine_E422 ; CPU:$E18F PRG:218F ??
|
|
jsr RenderRoutine_E4D0 ; CPU:$E191 PRG:2191 ??
|
|
jsr RenderRoutine_E513 ; CPU:$E193 PRG:2193 ??
|
|
rts ; CPU:$E195 PRG:2195 ??
|
|
Flow_E197:
|
|
ldy #$00 ; CPU:$E197 PRG:2197 ??
|
|
sty PlayerActionState ; CPU:$E199 PRG:2199 ??
|
|
sty PlayerFacingDirection ; CPU:$E19B PRG:219B ??
|
|
cmp #$01 ; CPU:$E19D PRG:219D ??
|
|
bne Flow_E1A4 ; CPU:$E19F PRG:219F ??
|
|
jmp Flow_E23B ; CPU:$E1A1 PRG:21A1 ??
|
|
Flow_E1A4:
|
|
lda NetAnimationTimer ; CPU:$E1A3 PRG:21A3 ??
|
|
beq Flow_E1A9 ; CPU:$E1A5 PRG:21A5 ??
|
|
rts ; CPU:$E1A7 PRG:21A7 ??
|
|
Flow_E1A9:
|
|
lda #$05 ; CPU:$E1A9 PRG:21A9 ??
|
|
sta NetAnimationTimer ; CPU:$E1AB PRG:21AB ??
|
|
lda #$02 ; CPU:$E1AD PRG:21AD ??
|
|
sta AudioRequestFlags3 ; CPU:$E1AF PRG:21AF ??
|
|
lda BallTargetOffset ; CPU:$E1B1 PRG:21B1 ??
|
|
cmp #$44 ; CPU:$E1B3 PRG:21B3 ??
|
|
bcc Flow_E1D3 ; CPU:$E1B5 PRG:21B5 ??
|
|
cmp #$54 ; CPU:$E1B7 PRG:21B7 ??
|
|
bcc Flow_E1C3 ; CPU:$E1B9 PRG:21B9 ??
|
|
cmp #$88 ; CPU:$E1BB PRG:21BB ??
|
|
bcc Flow_E1C9 ; CPU:$E1BD PRG:21BD ??
|
|
cmp #$A0 ; CPU:$E1BF PRG:21BF ??
|
|
bcs Flow_E1D3 ; CPU:$E1C1 PRG:21C1 ??
|
|
Flow_E1C3:
|
|
jsr RenderRoutine_E535 ; CPU:$E1C3 PRG:21C3 ??
|
|
jmp Flow_E1D6 ; CPU:$E1C5 PRG:21C5 ??
|
|
Flow_E1C9:
|
|
inc ObjectAnimationState ; CPU:$E1C7 PRG:21C7 ??
|
|
lda #$00 ; CPU:$E1C9 PRG:21C9 ??
|
|
sta Player2XSubpixel ; CPU:$E1CB PRG:21CB ??
|
|
sta Player2XPosition ; CPU:$E1CD PRG:21CD ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $21D1-$21D2.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
GraphicsTable_E1D1:
|
|
.byte $F0, $03 ; PRG $21D1 / CPU $E1D1 ; CPU:$E1CF PRG:21CF F0 03
|
|
Flow_E1D3:
|
|
jsr RenderRoutine_E527 ; CPU:$E1D1 PRG:21D1 ??
|
|
Flow_E1D6:
|
|
ldy #$00 ; CPU:$E1D3 PRG:21D3 ??
|
|
sec ; CPU:$E1D5 PRG:21D5 ??
|
|
sbc Player1XSubpixel ; CPU:$E1D7 PRG:21D7 ??
|
|
sta Player1XSubpixel ; CPU:$E1D9 PRG:21D9 ??
|
|
tya ; CPU:$E1DB PRG:21DB ??
|
|
sbc Player1XPosition ; CPU:$E1DD PRG:21DD ??
|
|
sta Player1XPosition ; CPU:$E1DF PRG:21DF ??
|
|
jsr RenderRoutine_E56C ; CPU:$E1E1 PRG:21E1 ??
|
|
lda RallyPhase ; CPU:$E1E3 PRG:21E3 ??
|
|
bne FlowEntry_E23A ; CPU:$E1E5 PRG:21E5 ??
|
|
lda #$03 ; CPU:$E1E7 PRG:21E7 ??
|
|
sta RallyPhase ; CPU:$E1E9 PRG:21E9 ??
|
|
lda BallAnimationTimer ; CPU:$E1EB PRG:21EB ??
|
|
bmi Flow_E208 ; CPU:$E1ED PRG:21ED ??
|
|
ldy #$00 ; CPU:$E1EF PRG:21EF ??
|
|
ldx #$01 ; CPU:$E1F1 PRG:21F1 ??
|
|
lda BallTargetOffset ; CPU:$E1F3 PRG:21F3 ??
|
|
cmp #$70 ; CPU:$E1F5 PRG:21F5 ??
|
|
bcc Flow_E232 ; CPU:$E1F7 PRG:21F7 ??
|
|
bit BallTrajectoryFlags ; CPU:$E1F9 PRG:21F9 ??
|
|
bvc Flow_E202 ; CPU:$E1FB PRG:21FB ??
|
|
jmp Flow_E4A3 ; CPU:$E1FD PRG:21FD ??
|
|
Flow_E202:
|
|
ldy #$01 ; CPU:$E1FF PRG:21FF ??
|
|
ldx #$02 ; CPU:$E201 PRG:2201 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $2206-$2207.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
GraphicsTable_E206:
|
|
.byte $D0, $2A ; PRG $2206 / CPU $E206 ; CPU:$E203 PRG:2203 D0 2A
|
|
Flow_E208:
|
|
bit BallTrajectoryFlags ; CPU:$E205 PRG:2205 ??
|
|
bvc Flow_E21D ; CPU:$E207 PRG:2207 ??
|
|
sec ; CPU:$E209 PRG:2209 ??
|
|
lda Player2YSubpixel ; CPU:$E20B PRG:220B ??
|
|
sbc #$80 ; CPU:$E20D PRG:220D ??
|
|
sta Player2YSubpixel ; CPU:$E20F PRG:220F ??
|
|
bcs Flow_E217 ; CPU:$E211 PRG:2211 ??
|
|
dec Player2YPosition ; CPU:$E213 PRG:2213 ??
|
|
Flow_E217:
|
|
ldy #$00 ; CPU:$E215 PRG:2215 ??
|
|
ldx #$02 ; CPU:$E217 PRG:2217 ??
|
|
bpl Flow_E232 ; CPU:$E219 PRG:2219 ??
|
|
Flow_E21D:
|
|
ldy #$00 ; CPU:$E21B PRG:221B ??
|
|
ldx #$02 ; CPU:$E21D PRG:221D ??
|
|
lda BallTargetOffset ; CPU:$E21F PRG:221F ??
|
|
cmp #$70 ; CPU:$E221 PRG:2221 ??
|
|
bcs Flow_E232 ; CPU:$E223 PRG:2223 ??
|
|
bit BallTrajectoryFlags ; CPU:$E225 PRG:2225 ??
|
|
bvc Flow_E22E ; CPU:$E227 PRG:2227 ??
|
|
jmp Flow_E4A3 ; CPU:$E229 PRG:2229 ??
|
|
Flow_E22E:
|
|
ldy #$01 ; CPU:$E22B PRG:222B ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $2230-$2231.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
GraphicsTable_E230:
|
|
.byte $A2, $01 ; PRG $2230 / CPU $E230 ; CPU:$E22D PRG:222D A2 01
|
|
Flow_E232:
|
|
sty UmpireMessageId ; CPU:$E22F PRG:222F ??
|
|
stx CourtMessageId ; CPU:$E231 PRG:2231 ??
|
|
lda #$00 ; CPU:$E233 PRG:2233 ??
|
|
sta BallStateFlags ; CPU:$E235 PRG:2235 ??
|
|
FlowEntry_E23A:
|
|
rts ; PRG $223A / CPU $E23A ; CPU:$E237 PRG:2237 ??
|
|
Flow_E23B:
|
|
ldy PlayerActionDelay ; CPU:$E239 PRG:2239 ??
|
|
beq Flow_E262 ; CPU:$E23B PRG:223B ??
|
|
dec PlayerActionDelay ; CPU:$E23D PRG:223D ??
|
|
bne Flow_E262 ; CPU:$E23F PRG:223F ??
|
|
lda BallTrajectoryFlags ; CPU:$E241 PRG:2241 ??
|
|
and #$0F ; CPU:$E243 PRG:2243 ??
|
|
sta BallTrajectoryFlags ; CPU:$E245 PRG:2245 ??
|
|
ldx #$02 ; CPU:$E247 PRG:2247 ??
|
|
ldy RallyPhase ; CPU:$E249 PRG:2249 ??
|
|
bne Flow_E262 ; CPU:$E24B PRG:224B ??
|
|
ror a ; CPU:$E24D PRG:224D ??
|
|
ror a ; CPU:$E24F PRG:224F ??
|
|
bcs Flow_E255 ; CPU:$E251 PRG:2251 ??
|
|
ldx #$01 ; CPU:$E253 PRG:2253 ??
|
|
Flow_E255:
|
|
stx CourtMessageId ; CPU:$E255 PRG:2255 ??
|
|
ldy #$02 ; CPU:$E257 PRG:2257 ??
|
|
sty RallyPhase ; CPU:$E259 PRG:2259 ??
|
|
lda #$00 ; CPU:$E25B PRG:225B ??
|
|
sta BallStateFlags ; CPU:$E25D PRG:225D ??
|
|
jmp Flow_E1A4 ; CPU:$E25F PRG:225F ??
|
|
Flow_E262:
|
|
jsr MatchRoutine_C94D ; CPU:$E261 PRG:2261 ??
|
|
lda #$00 ; CPU:$E263 PRG:2263 ??
|
|
sta RallyPhase ; CPU:$E265 PRG:2265 ??
|
|
lda PlayerActionType ; CPU:$E267 PRG:2267 ??
|
|
asl a ; CPU:$E269 PRG:2269 ??
|
|
cmp #$08 ; CPU:$E26B PRG:226B ??
|
|
bcc Flow_E272 ; CPU:$E26D PRG:226D ??
|
|
adc #$00 ; CPU:$E26F PRG:226F ??
|
|
Flow_E272:
|
|
adc PlayerActionParameter ; CPU:$E271 PRG:2271 ??
|
|
sta Zp16 ; CPU:$E273 PRG:2273 ??
|
|
asl a ; CPU:$E275 PRG:2275 ??
|
|
asl a ; CPU:$E277 PRG:2277 ??
|
|
adc Zp16 ; CPU:$E279 PRG:2279 ??
|
|
adc ServingPlayer ; CPU:$E27B PRG:227B ??
|
|
asl a ; CPU:$E27D PRG:227D ??
|
|
sta MathOperandLo ; CPU:$E27F PRG:227F ??
|
|
lda #$00 ; CPU:$E281 PRG:2281 ??
|
|
sta MathOperandHi ; CPU:$E283 PRG:2283 ??
|
|
lda #$E3 ; CPU:$E285 PRG:2285 ??
|
|
sta MathResultHi ; CPU:$E287 PRG:2287 ??
|
|
lda #$AA ; CPU:$E289 PRG:2289 ??
|
|
sta MathResultLo ; CPU:$E28B PRG:228B ??
|
|
jsr Add16BitZp12ToZp14 ; CPU:$E28D PRG:228D ??
|
|
ldy #$00 ; CPU:$E28F PRG:228F ??
|
|
lda (MathResultLo),y ; CPU:$E291 PRG:2291 ??
|
|
sta BallMotionControl ; CPU:$E293 PRG:2293 ??
|
|
iny ; CPU:$E295 PRG:2295 ??
|
|
lda (MathResultLo),y ; CPU:$E297 PRG:2297 ??
|
|
sta Player2XPosition ; CPU:$E299 PRG:2299 ??
|
|
sec ; CPU:$E29B PRG:229B ??
|
|
lda PlayerTargetYLo ; CPU:$E29D PRG:229D ??
|
|
sbc Player2YSubpixel ; CPU:$E29F PRG:229F ??
|
|
sta MathVectorYLo ; CPU:$E2A1 PRG:22A1 ??
|
|
lda PlayerTargetYHi ; CPU:$E2A3 PRG:22A3 ??
|
|
sbc Player2YPosition ; CPU:$E2A5 PRG:22A5 ??
|
|
sta MathVectorYHi ; CPU:$E2A7 PRG:22A7 ??
|
|
jsr EngineRoutine_C6ED ; CPU:$E2A9 PRG:22A9 ??
|
|
lda MathVectorYHi ; CPU:$E2AB PRG:22AB ??
|
|
sta ProjectedXHi ; CPU:$E2AD PRG:22AD ??
|
|
lda MathVectorYLo ; CPU:$E2AF PRG:22AF ??
|
|
sta ProjectedYLo ; CPU:$E2B1 PRG:22B1 ??
|
|
lda #$00 ; CPU:$E2B3 PRG:22B3 ??
|
|
sta ProjectedXLo ; CPU:$E2B5 PRG:22B5 ??
|
|
sta ProjectedYHi ; CPU:$E2B7 PRG:22B7 ??
|
|
lda Player2XPosition ; CPU:$E2B9 PRG:22B9 ??
|
|
sta MathVectorYHi ; CPU:$E2BB PRG:22BB ??
|
|
lda Player2XSubpixel ; CPU:$E2BD PRG:22BD ??
|
|
sta MathVectorYLo ; CPU:$E2BF PRG:22BF ??
|
|
lda SignedAimDelta ; CPU:$E2C1 PRG:22C1 ??
|
|
bpl Flow_E2D1 ; CPU:$E2C3 PRG:22C3 ??
|
|
jsr EngineRoutine_C6F3 ; CPU:$E2C5 PRG:22C5 ??
|
|
lda MathVectorYHi ; CPU:$E2C7 PRG:22C7 ??
|
|
sta Player2XPosition ; CPU:$E2C9 PRG:22C9 ??
|
|
lda MathVectorYLo ; CPU:$E2CB PRG:22CB ??
|
|
sta Player2XSubpixel ; CPU:$E2CD PRG:22CD ??
|
|
jsr EngineRoutine_C6ED ; CPU:$E2CF PRG:22CF ??
|
|
Flow_E2D1:
|
|
lda MathVectorYHi ; CPU:$E2D1 PRG:22D1 ??
|
|
sta MathVectorXHi ; CPU:$E2D3 PRG:22D3 ??
|
|
lda MathVectorYLo ; CPU:$E2D5 PRG:22D5 ??
|
|
sta MathVectorXLo ; CPU:$E2D7 PRG:22D7 ??
|
|
jsr EngineRoutine_C684 ; CPU:$E2D9 PRG:22D9 ??
|
|
lda MathVectorYLo ; CPU:$E2DB PRG:22DB ??
|
|
sta WorkPtrHi ; CPU:$E2DD PRG:22DD ??
|
|
lda MathVectorYHi ; CPU:$E2DF PRG:22DF ??
|
|
sta WorkPtrLo ; CPU:$E2E1 PRG:22E1 ??
|
|
lda BallMotionControl ; CPU:$E2E3 PRG:22E3 ??
|
|
asl a ; CPU:$E2E5 PRG:22E5 ??
|
|
sta MathVectorXLo ; CPU:$E2E7 PRG:22E7 ??
|
|
lda #$00 ; CPU:$E2E9 PRG:22E9 ??
|
|
rol a ; CPU:$E2EB PRG:22EB ??
|
|
sta MathVectorXHi ; CPU:$E2ED PRG:22ED ??
|
|
jsr EngineRoutine_C62B ; CPU:$E2EF PRG:22EF ??
|
|
lda ProjectedYLo ; CPU:$E2F1 PRG:22F1 ??
|
|
sta BallXPosition ; CPU:$E2F3 PRG:22F3 ??
|
|
lda ProjectedYHi ; CPU:$E2F5 PRG:22F5 ??
|
|
sta BallXSubpixel ; CPU:$E2F7 PRG:22F7 ??
|
|
lda BallYPosition ; CPU:$E2F9 PRG:22F9 ??
|
|
sta ProjectedXHi ; CPU:$E2FB PRG:22FB ??
|
|
lda BallYSubpixel ; CPU:$E2FD PRG:22FD ??
|
|
sta ProjectedYLo ; CPU:$E2FF PRG:22FF ??
|
|
lda #$00 ; CPU:$E301 PRG:2301 ??
|
|
sta ProjectedXLo ; CPU:$E303 PRG:2303 ??
|
|
sta ProjectedYHi ; CPU:$E305 PRG:2305 ??
|
|
lda WorkPtrLo ; CPU:$E307 PRG:2307 ??
|
|
sta MathVectorXHi ; CPU:$E309 PRG:2309 ??
|
|
lda WorkPtrHi ; CPU:$E30B PRG:230B ??
|
|
sta MathVectorXLo ; CPU:$E30D PRG:230D ??
|
|
jsr EngineRoutine_C684 ; CPU:$E30F PRG:230F ??
|
|
sec ; CPU:$E311 PRG:2311 ??
|
|
lda BallXSubpixel ; CPU:$E313 PRG:2313 ??
|
|
sbc MathVectorYLo ; CPU:$E315 PRG:2315 ??
|
|
sta BallXSubpixel ; CPU:$E317 PRG:2317 ??
|
|
lda BallXPosition ; CPU:$E319 PRG:2319 ??
|
|
sbc MathVectorYHi ; CPU:$E31B PRG:231B ??
|
|
sta BallXPosition ; CPU:$E31D PRG:231D ??
|
|
sec ; CPU:$E31F PRG:231F ??
|
|
lda PlayerTargetXLo ; CPU:$E321 PRG:2321 ??
|
|
sbc Player1YSubpixel ; CPU:$E323 PRG:2323 ??
|
|
sta MathVectorYLo ; CPU:$E325 PRG:2325 ??
|
|
lda PlayerTargetXHi ; CPU:$E327 PRG:2327 ??
|
|
sbc Player1YPosition ; CPU:$E329 PRG:2329 ??
|
|
sta MathVectorYHi ; CPU:$E32B PRG:232B ??
|
|
jsr EngineRoutine_C6ED ; CPU:$E32D PRG:232D ??
|
|
lda MathVectorYHi ; CPU:$E32F PRG:232F ??
|
|
sta ProjectedXHi ; CPU:$E331 PRG:2331 ??
|
|
lda MathVectorYLo ; CPU:$E333 PRG:2333 ??
|
|
sta ProjectedYLo ; CPU:$E335 PRG:2335 ??
|
|
lda #$00 ; CPU:$E337 PRG:2337 ??
|
|
sta ProjectedXLo ; CPU:$E339 PRG:2339 ??
|
|
sta ProjectedYHi ; CPU:$E33B PRG:233B ??
|
|
lda WorkPtrLo ; CPU:$E33D PRG:233D ??
|
|
sta MathVectorXHi ; CPU:$E33F PRG:233F ??
|
|
lda WorkPtrHi ; CPU:$E341 PRG:2341 ??
|
|
sta MathVectorXLo ; CPU:$E343 PRG:2343 ??
|
|
jsr EngineRoutine_C684 ; CPU:$E345 PRG:2345 ??
|
|
jsr MatchRoutine_C705 ; CPU:$E347 PRG:2347 ??
|
|
lda MathVectorYHi ; CPU:$E349 PRG:2349 ??
|
|
sta Player1XPosition ; CPU:$E34B PRG:234B ??
|
|
lda MathVectorYLo ; CPU:$E34D PRG:234D ??
|
|
bpl Flow_E355 ; CPU:$E34F PRG:234F ??
|
|
inc Player1XPosition ; CPU:$E351 PRG:2351 ??
|
|
Flow_E355:
|
|
lda #$00 ; CPU:$E353 PRG:2353 ??
|
|
sta Player1XSubpixel ; CPU:$E355 PRG:2355 ??
|
|
lda BallMotionControl ; CPU:$E357 PRG:2357 ??
|
|
eor #$FF ; CPU:$E359 PRG:2359 ??
|
|
sta BallMotionControl ; CPU:$E35B PRG:235B ??
|
|
inc BallMotionControl ; CPU:$E35D PRG:235D ??
|
|
jsr RenderRoutine_E0D6 ; CPU:$E35F PRG:235F ??
|
|
rts ; PRG $2364 / CPU $E364 ; CPU:$E361 PRG:2361 ??
|
|
; =============================================================================
|
|
; RenderRoutine_E365
|
|
; CPU address: $E365 PRG offset: $2365
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E365:
|
|
lda PlayerPoseId ; CPU:$E363 PRG:2363 ??
|
|
cmp #$3E ; CPU:$E365 PRG:2365 ??
|
|
beq Flow_E3A9 ; CPU:$E367 PRG:2367 ??
|
|
lda Player2YPosition ; CPU:$E369 PRG:2369 ??
|
|
sec ; CPU:$E36B PRG:236B ??
|
|
sbc #$04 ; CPU:$E36D PRG:236D ??
|
|
asl a ; CPU:$E36F PRG:236F ??
|
|
asl a ; CPU:$E371 PRG:2371 ??
|
|
sta MathResultHi ; CPU:$E373 PRG:2373 ??
|
|
lda BallHeight ; CPU:$E375 PRG:2375 ??
|
|
clc ; CPU:$E377 PRG:2377 ??
|
|
adc #$20 ; CPU:$E379 PRG:2379 ??
|
|
php ; CPU:$E37B PRG:237B ??
|
|
sec ; CPU:$E37D PRG:237D ??
|
|
sbc MathResultHi ; CPU:$E37F PRG:237F ??
|
|
bcs Flow_E386 ; CPU:$E381 PRG:2381 ??
|
|
plp ; CPU:$E383 PRG:2383 ??
|
|
bcs Flow_E387 ; CPU:$E385 PRG:2385 ??
|
|
lda #$00 ; CPU:$E387 PRG:2387 ??
|
|
beq Flow_E387 ; CPU:$E389 PRG:2389 ??
|
|
Flow_E386:
|
|
plp ; CPU:$E38B PRG:238B ??
|
|
Flow_E387:
|
|
ldy #$33 ; CPU:$E38D PRG:238D ??
|
|
cmp #$A8 ; CPU:$E38F PRG:238F ??
|
|
bcs Flow_E3A7 ; CPU:$E391 PRG:2391 ??
|
|
dey ; CPU:$E393 PRG:2393 ??
|
|
cmp #$78 ; CPU:$E395 PRG:2395 ??
|
|
bcs Flow_E3A7 ; CPU:$E397 PRG:2397 ??
|
|
dey ; CPU:$E399 PRG:2399 ??
|
|
cmp #$2C ; CPU:$E39B PRG:239B ??
|
|
bcs Flow_E3A7 ; CPU:$E39D PRG:239D ??
|
|
dey ; CPU:$E39F PRG:239F ??
|
|
cmp #$01 ; CPU:$E3A1 PRG:23A1 ??
|
|
bcs Flow_E3A7 ; CPU:$E3A3 PRG:23A3 ??
|
|
lda BallTargetOffset ; CPU:$E3A5 PRG:23A5 ??
|
|
cmp #$70 ; CPU:$E3A7 PRG:23A7 ??
|
|
bcc Flow_E3A6 ; CPU:$E3A9 PRG:23A9 ??
|
|
lda ObjectAnimationState ; CPU:$E3AB PRG:23AB ??
|
|
bne Flow_E3A7 ; CPU:$E3AD PRG:23AD ??
|
|
Flow_E3A6:
|
|
dey ; CPU:$E3AF PRG:23AF ??
|
|
Flow_E3A7:
|
|
sty PlayerPoseId ; CPU:$E3B1 PRG:23B1 ??
|
|
Flow_E3A9:
|
|
rts ; CPU:$E3B3 PRG:23B3 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $23AA-$2421.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
GraphicsTable_E3AA:
|
|
.byte $15, $20, $21, $28, $2F, $30, $30, $38, $54, $40, $18, $20, $26, $28, $36, $30 ; PRG $23AA / CPU $E3AA ; CPU:$E3B5 PRG:23B5 15 20 21 28 2F 30 30 38 54 40 18 20 26 28 36 30
|
|
.byte $4A, $38, $60, $40, $15, $20, $21, $28, $28, $2C, $2F, $30, $40, $38, $1C, $20 ; PRG $23BA / CPU $E3BA ; CPU:$E3C5 PRG:23C5 4A 38 60 40 15 20 21 28 28 2C 2F 30 40 38 1C 20
|
|
.byte $2B, $28, $35, $2C, $3F, $30, $56, $38, $18, $30, $18, $38, $18, $44, $20, $5C ; PRG $23CA / CPU $E3CA ; CPU:$E3D5 PRG:23D5 2B 28 35 2C 3F 30 56 38 18 30 18 38 18 44 20 5C
|
|
.byte $20, $68, $18, $30, $18, $38, $20, $44, $20, $5C, $20, $68, $12, $22, $19, $28 ; PRG $23DA / CPU $E3DA ; CPU:$E3E5 PRG:23E5 20 68 18 30 18 38 20 44 20 5C 20 68 12 22 19 28
|
|
.byte $24, $30, $31, $38, $40, $40, $18, $22, $21, $28, $30, $30, $41, $38, $55, $40 ; PRG $23EA / CPU $E3EA ; CPU:$E3F5 PRG:23F5 24 30 31 38 40 40 18 22 21 28 30 30 41 38 55 40
|
|
.byte $14, $30, $1B, $38, $24, $40, $3D, $48, $37, $50, $09, $10, $0E, $14, $14, $18 ; PRG $23FA / CPU $E3FA ; CPU:$E405 PRG:2405 14 30 1B 38 24 40 3D 48 37 50 09 10 0E 14 14 18
|
|
.byte $24, $20, $38, $28, $0A, $10, $0F, $14, $16, $18, $28, $20, $3E, $28, $0C, $10 ; PRG $240A / CPU $E40A ; CPU:$E415 PRG:2415 24 20 38 28 0A 10 0F 14 16 18 28 20 3E 28 0C 10
|
|
.byte $14, $14, $1D, $18, $34, $20, $51, $28 ; PRG $241A / CPU $E41A ; CPU:$E425 PRG:2425 14 14 1D 18 34 20 51 28
|
|
; =============================================================================
|
|
; RenderRoutine_E422
|
|
; CPU address: $E422 PRG offset: $2422
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E422:
|
|
ldy #$40 ; CPU:$E42D PRG:242D ??
|
|
jsr TestCourtBoundary ; CPU:$E42F PRG:242F ??
|
|
sta PlayerAnimationFlags ; CPU:$E431 PRG:2431 ??
|
|
bne Flow_E48E ; CPU:$E433 PRG:2433 ??
|
|
ldy RallyPhase ; CPU:$E435 PRG:2435 ??
|
|
beq FlowEntry_E48D ; CPU:$E437 PRG:2437 ??
|
|
dey ; CPU:$E439 PRG:2439 ??
|
|
bne Flow_E46C ; CPU:$E43B PRG:243B ??
|
|
lda #$02 ; CPU:$E43D PRG:243D ??
|
|
sta RallyPhase ; CPU:$E43F PRG:243F ??
|
|
lda BallTrajectoryFlags ; CPU:$E441 PRG:2441 ??
|
|
bit BallTrajectoryFlags ; CPU:$E443 PRG:2443 ??
|
|
bpl Flow_E440 ; CPU:$E445 PRG:2445 ??
|
|
inc ObjectAnimationState ; CPU:$E447 PRG:2447 ??
|
|
bpl Flow_E4A3 ; CPU:$E449 PRG:2449 ??
|
|
Flow_E440:
|
|
bvs Flow_E45C ; CPU:$E44B PRG:244B ??
|
|
ldy #$20 ; CPU:$E44D PRG:244D ??
|
|
lda PlayerFacingDirection ; CPU:$E44F PRG:244F ??
|
|
bpl Flow_E44A ; CPU:$E451 PRG:2451 ??
|
|
ldy #$28 ; CPU:$E453 PRG:2453 ??
|
|
Flow_E44A:
|
|
lda GameMode ; CPU:$E455 PRG:2455 ??
|
|
beq Flow_E453 ; CPU:$E457 PRG:2457 ??
|
|
tya ; CPU:$E459 PRG:2459 ??
|
|
clc ; CPU:$E45B PRG:245B ??
|
|
adc #$10 ; CPU:$E45D PRG:245D ??
|
|
tay ; CPU:$E45F PRG:245F ??
|
|
Flow_E453:
|
|
jsr TestCourtBoundary ; CPU:$E461 PRG:2461 ??
|
|
sta UmpireMessageId ; CPU:$E463 PRG:2463 ??
|
|
beq Flow_E4C5 ; CPU:$E465 PRG:2465 ??
|
|
bne Flow_E498 ; CPU:$E467 PRG:2467 ??
|
|
Flow_E45C:
|
|
and #$03 ; CPU:$E469 PRG:2469 ??
|
|
asl a ; CPU:$E46B PRG:246B ??
|
|
asl a ; CPU:$E46D PRG:246D ??
|
|
asl a ; CPU:$E46F PRG:246F ??
|
|
tay ; CPU:$E471 PRG:2471 ??
|
|
jsr TestCourtBoundary ; CPU:$E473 PRG:2473 ??
|
|
bne Flow_E4A3 ; CPU:$E475 PRG:2475 ??
|
|
sta UmpireMessageId ; CPU:$E477 PRG:2477 ??
|
|
jmp Flow_E4C5 ; CPU:$E479 PRG:2479 ??
|
|
Flow_E46C:
|
|
cpy #$02 ; CPU:$E47B PRG:247B ??
|
|
bne Flow_E485 ; CPU:$E47D PRG:247D ??
|
|
lda #$01 ; CPU:$E47F PRG:247F ??
|
|
sta BallVerticalVelocityLo ; CPU:$E481 PRG:2481 ??
|
|
ldx BallTargetOffset ; CPU:$E483 PRG:2483 ??
|
|
cpx #$70 ; CPU:$E485 PRG:2485 ??
|
|
bcc Flow_E47C ; CPU:$E487 PRG:2487 ??
|
|
lda #$02 ; CPU:$E489 PRG:2489 ??
|
|
Flow_E47C:
|
|
jsr RenderRoutine_E621 ; CPU:$E48B PRG:248B ??
|
|
inc RallyPhase ; CPU:$E48D PRG:248D ??
|
|
jsr RenderRoutine_E646 ; CPU:$E48F PRG:248F ??
|
|
rts ; CPU:$E491 PRG:2491 ??
|
|
Flow_E485:
|
|
cpy #$07 ; CPU:$E493 PRG:2493 ??
|
|
bcc FlowEntry_E48D ; CPU:$E495 PRG:2495 ??
|
|
ldy #$01 ; CPU:$E497 PRG:2497 ??
|
|
sty PlayerAnimationFlags ; CPU:$E499 PRG:2499 ??
|
|
FlowEntry_E48D:
|
|
rts
|
|
Flow_E48E:
|
|
ldy RallyPhase ; CPU:$E49B PRG:249B ??
|
|
bne FlowEntry_E48D ; CPU:$E49D PRG:249D ??
|
|
lda #$01 ; CPU:$E49F PRG:249F ??
|
|
sta UmpireMessageId ; CPU:$E4A1 PRG:24A1 ??
|
|
bne Flow_E498 ; CPU:$E4A3 PRG:24A3 ??
|
|
Flow_E498:
|
|
ldx #$02 ; CPU:$E4A5 PRG:24A5 ??
|
|
lda PlayerFacingDirection ; CPU:$E4A7 PRG:24A7 ??
|
|
bpl Flow_E4A0 ; CPU:$E4A9 PRG:24A9 ??
|
|
ldx #$01 ; CPU:$E4AB PRG:24AB ??
|
|
Flow_E4A0:
|
|
jmp Flow_E4BE ; CPU:$E4AD PRG:24AD ??
|
|
Flow_E4A3:
|
|
lda #$03 ; CPU:$E4AF PRG:24AF ??
|
|
sta UmpireMessageId ; CPU:$E4B1 PRG:24B1 ??
|
|
lda BallStateFlags ; CPU:$E4B3 PRG:24B3 ??
|
|
bne Flow_E4B2 ; CPU:$E4B5 PRG:24B5 ??
|
|
inc BallStateFlags ; CPU:$E4B7 PRG:24B7 ??
|
|
lda #$00 ; CPU:$E4B9 PRG:24B9 ??
|
|
sta CourtMessageId ; CPU:$E4BB PRG:24BB ??
|
|
rts ; CPU:$E4BD PRG:24BD ??
|
|
Flow_E4B2:
|
|
inc UmpireMessageId ; CPU:$E4BF PRG:24BF ??
|
|
ldx #$01 ; CPU:$E4C1 PRG:24C1 ??
|
|
lda BallTrajectoryFlags ; CPU:$E4C3 PRG:24C3 ??
|
|
ror a ; CPU:$E4C5 PRG:24C5 ??
|
|
ror a ; CPU:$E4C7 PRG:24C7 ??
|
|
bcs Flow_E4BE ; CPU:$E4C9 PRG:24C9 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $24BC-$24BD.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
GraphicsTable_E4BC:
|
|
.byte $A2, $02 ; PRG $24BC / CPU $E4BC ; CPU:$E4CB PRG:24CB A2 02
|
|
Flow_E4BE:
|
|
stx CourtMessageId ; CPU:$E4CD PRG:24CD ??
|
|
lda #$00 ; CPU:$E4CF PRG:24CF ??
|
|
sta BallStateFlags ; CPU:$E4D1 PRG:24D1 ??
|
|
rts ; PRG $24C4 / CPU $E4C4 ; CPU:$E4D3 PRG:24D3 ??
|
|
Flow_E4C5:
|
|
ldx #$01 ; CPU:$E4D5 PRG:24D5 ??
|
|
lda PlayerFacingDirection ; CPU:$E4D7 PRG:24D7 ??
|
|
bpl Flow_E4CD ; CPU:$E4D9 PRG:24D9 ??
|
|
ldx #$02 ; CPU:$E4DB PRG:24DB ??
|
|
Flow_E4CD:
|
|
jmp Flow_E4BE ; CPU:$E4DD PRG:24DD ??
|
|
|
|
; =============================================================================
|
|
; RenderRoutine_E4D0
|
|
; CPU address: $E4D0 PRG offset: $24D0
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E4D0:
|
|
lda CourtSide ; CPU:$E4DF PRG:24DF ??
|
|
bne FlowEntry_E512 ; CPU:$E4E1 PRG:24E1 ??
|
|
sec ; CPU:$E4E3 PRG:24E3 ??
|
|
lda Player2YSubpixel ; CPU:$E4E5 PRG:24E5 ??
|
|
sbc #$B0 ; CPU:$E4E7 PRG:24E7 ??
|
|
lda Player2YPosition ; CPU:$E4E9 PRG:24E9 ??
|
|
sbc #$11 ; CPU:$E4EB PRG:24EB ??
|
|
tax ; CPU:$E4ED PRG:24ED ??
|
|
eor RallyFlags ; CPU:$E4EF PRG:24EF ??
|
|
bpl Flow_E510 ; CPU:$E4F1 PRG:24F1 ??
|
|
lda BallHeight ; CPU:$E4F3 PRG:24F3 ??
|
|
cmp #$40 ; CPU:$E4F5 PRG:24F5 ??
|
|
bcs Flow_E510 ; CPU:$E4F7 PRG:24F7 ??
|
|
lda BallHeightReference ; CPU:$E4F9 PRG:24F9 ??
|
|
cmp #$30 ; CPU:$E4FB PRG:24FB ??
|
|
bcc Flow_E510 ; CPU:$E4FD PRG:24FD ??
|
|
cmp #$D1 ; CPU:$E4FF PRG:24FF ??
|
|
bcs Flow_E510 ; CPU:$E501 PRG:2501 ??
|
|
lda #$01 ; CPU:$E503 PRG:2503 ??
|
|
sta CourtSide ; CPU:$E505 PRG:2505 ??
|
|
jsr RenderRoutine_E527 ; CPU:$E507 PRG:2507 ??
|
|
lda #$02 ; CPU:$E509 PRG:2509 ??
|
|
sta AudioRequestFlags3 ; CPU:$E50B PRG:250B ??
|
|
lda RallyPhase ; CPU:$E50D PRG:250D ??
|
|
bne Flow_E510 ; CPU:$E50F PRG:250F ??
|
|
lda #$02 ; CPU:$E511 PRG:2511 ??
|
|
sta RallyPhase ; CPU:$E513 PRG:2513 ??
|
|
bit BallTrajectoryFlags ; CPU:$E515 PRG:2515 ??
|
|
bvs Flow_E4A3 ; CPU:$E517 PRG:2517 ??
|
|
lda #$02 ; CPU:$E519 PRG:2519 ??
|
|
sta UmpireMessageId ; CPU:$E51B PRG:251B ??
|
|
jmp Flow_E498 ; CPU:$E51D PRG:251D ??
|
|
Flow_E510:
|
|
stx RallyFlags ; CPU:$E51F PRG:251F ??
|
|
FlowEntry_E512:
|
|
rts ; PRG $2512 / CPU $E512 ; CPU:$E521 PRG:2521 ??
|
|
; =============================================================================
|
|
; RenderRoutine_E513
|
|
; CPU address: $E513 PRG offset: $2513
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E513:
|
|
lda UmpireAnimationTimer ; CPU:$E523 PRG:2523 ??
|
|
bne Flow_E526 ; CPU:$E525 PRG:2525 ??
|
|
lda BallTargetOffset ; CPU:$E527 PRG:2527 ??
|
|
cmp #$20 ; CPU:$E529 PRG:2529 ??
|
|
bcs Flow_E526 ; CPU:$E52B PRG:252B ??
|
|
jsr RenderRoutine_E527 ; CPU:$E52D PRG:252D ??
|
|
lda #$02 ; CPU:$E52F PRG:252F ??
|
|
sta AudioRequestFlags3 ; CPU:$E531 PRG:2531 ??
|
|
inc UmpireAnimationTimer ; CPU:$E533 PRG:2533 ??
|
|
Flow_E526:
|
|
rts ; CPU:$E535 PRG:2535 ??
|
|
|
|
; =============================================================================
|
|
; RenderRoutine_E527
|
|
; CPU address: $E527 PRG offset: $2527
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E527:
|
|
lda Player1XPosition ; CPU:$E537 PRG:2537 ??
|
|
cmp #$80 ; CPU:$E539 PRG:2539 ??
|
|
ror a ; CPU:$E53B PRG:253B ??
|
|
ror Player1XSubpixel ; CPU:$E53D PRG:253D ??
|
|
cmp #$80 ; CPU:$E53F PRG:253F ??
|
|
ror a ; CPU:$E541 PRG:2541 ??
|
|
sta Player1XPosition ; CPU:$E543 PRG:2543 ??
|
|
ror Player1XSubpixel ; CPU:$E545 PRG:2545 ??
|
|
|
|
; =============================================================================
|
|
; RenderRoutine_E535
|
|
; CPU address: $E535 PRG offset: $2535
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E535:
|
|
jsr RenderRoutine_E56C ; CPU:$E547 PRG:2547 ??
|
|
ldy #$00 ; CPU:$E549 PRG:2549 ??
|
|
tya ; CPU:$E54B PRG:254B ??
|
|
sec ; CPU:$E54D PRG:254D ??
|
|
sbc Player2XSubpixel ; CPU:$E54F PRG:254F ??
|
|
sta Player2XSubpixel ; CPU:$E551 PRG:2551 ??
|
|
tya ; CPU:$E553 PRG:2553 ??
|
|
sbc Player2XPosition ; CPU:$E555 PRG:2555 ??
|
|
cmp #$80 ; CPU:$E557 PRG:2557 ??
|
|
ror a ; CPU:$E559 PRG:2559 ??
|
|
ror Player2XSubpixel ; CPU:$E55B PRG:255B ??
|
|
cmp #$80 ; CPU:$E55D PRG:255D ??
|
|
ror a ; CPU:$E55F PRG:255F ??
|
|
sta Player2XPosition ; CPU:$E561 PRG:2561 ??
|
|
ror Player2XSubpixel ; CPU:$E563 PRG:2563 ??
|
|
lda Player2XPosition ; CPU:$E565 PRG:2565 ??
|
|
bpl Flow_E55B ; CPU:$E567 PRG:2567 ??
|
|
cmp #$F4 ; CPU:$E569 PRG:2569 ??
|
|
bcs Flow_E563 ; CPU:$E56B PRG:256B ??
|
|
lda #$F4 ; CPU:$E56D PRG:256D ??
|
|
bne Flow_E561 ; CPU:$E56F PRG:256F ??
|
|
Flow_E55B:
|
|
cmp #$0B ; CPU:$E571 PRG:2571 ??
|
|
bcc Flow_E563 ; CPU:$E573 PRG:2573 ??
|
|
lda #$0B ; CPU:$E575 PRG:2575 ??
|
|
Flow_E561:
|
|
sta Player2XPosition ; CPU:$E577 PRG:2577 ??
|
|
Flow_E563:
|
|
lda BallTargetOffset ; CPU:$E579 PRG:2579 ??
|
|
cmp #$70 ; CPU:$E57B PRG:257B ??
|
|
bcc Flow_E569 ; CPU:$E57D PRG:257D ??
|
|
Flow_E569:
|
|
inc ObjectAnimationState ; CPU:$E57F PRG:257F ??
|
|
rts ; CPU:$E581 PRG:2581 ??
|
|
|
|
; =============================================================================
|
|
; RenderRoutine_E56C
|
|
; CPU address: $E56C PRG offset: $256C
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E56C:
|
|
lda Player1XPosition ; CPU:$E583 PRG:2583 ??
|
|
bpl Flow_E578 ; CPU:$E585 PRG:2585 ??
|
|
cmp #$F4 ; CPU:$E587 PRG:2587 ??
|
|
bcs FlowEntry_E580 ; CPU:$E589 PRG:2589 ??
|
|
lda #$F4 ; CPU:$E58B PRG:258B ??
|
|
bne Flow_E57E ; CPU:$E58D PRG:258D ??
|
|
Flow_E578:
|
|
cmp #$0B ; CPU:$E58F PRG:258F ??
|
|
bcc FlowEntry_E580 ; CPU:$E591 PRG:2591 ??
|
|
lda #$0B ; CPU:$E593 PRG:2593 ??
|
|
Flow_E57E:
|
|
sta Player1XPosition ; CPU:$E595 PRG:2595 ??
|
|
FlowEntry_E580:
|
|
rts ; PRG $2580 / CPU $E580 ; CPU:$E597 PRG:2597 ??
|
|
; =============================================================================
|
|
; TestCourtBoundary
|
|
; CPU address: $E581 PRG offset: $2581
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
TestCourtBoundary:
|
|
lda #$0A ; CPU:$E599 PRG:2599 ??
|
|
Flow_E583:
|
|
sec ; CPU:$E59B PRG:259B ??
|
|
sbc #$05 ; CPU:$E59D PRG:259D ??
|
|
tax ; CPU:$E59F PRG:259F ??
|
|
sec ; CPU:$E5A1 PRG:25A1 ??
|
|
lda Player1YSubpixel,x ; CPU:$E5A3 PRG:25A3 ??
|
|
sbc $E5AD,y ; CPU:$E5A5 PRG:25A5 ??
|
|
iny ; CPU:$E5A7 PRG:25A7 ??
|
|
lda Player1YPosition,x ; CPU:$E5A9 PRG:25A9 ??
|
|
sbc $E5AD,y ; CPU:$E5AB PRG:25AB ??
|
|
iny ; CPU:$E5AD PRG:25AD ??
|
|
bcc Flow_E5AA ; CPU:$E5AF PRG:25AF ??
|
|
lda Player1YSubpixel,x ; CPU:$E5B1 PRG:25B1 ??
|
|
sbc $E5AD,y ; CPU:$E5B3 PRG:25B3 ??
|
|
iny ; CPU:$E5B5 PRG:25B5 ??
|
|
lda Player1YPosition,x ; CPU:$E5B7 PRG:25B7 ??
|
|
sbc $E5AD,y ; CPU:$E5B9 PRG:25B9 ??
|
|
iny ; CPU:$E5BB PRG:25BB ??
|
|
bcs Flow_E5AA ; CPU:$E5BD PRG:25BD ??
|
|
txa ; CPU:$E5BF PRG:25BF ??
|
|
bne Flow_E583 ; CPU:$E5C1 PRG:25C1 ??
|
|
lda #$00 ; CPU:$E5C3 PRG:25C3 ??
|
|
rts ; CPU:$E5C5 PRG:25C5 ??
|
|
Flow_E5AA:
|
|
lda #$01 ; CPU:$E5C7 PRG:25C7 ??
|
|
rts ; CPU:$E5C9 PRG:25C9 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $25AD-$25F4.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
CourtBoundaryTable:
|
|
.byte $B0, $11, $50, $16, $10, $10, $50, $13, $B0, $11, $50, $16, $D0, $0C, $10, $10 ; PRG $25AD / CPU $E5AD ; CPU:$E5CB PRG:25CB B0 11 50 16 10 10 50 13 B0 11 50 16 D0 0C 10 10
|
|
.byte $90, $0D, $B0, $11, $10, $10, $50, $13, $90, $0D, $B0, $11, $D0, $0C, $10, $10 ; PRG $25BD / CPU $E5BD ; CPU:$E5DB PRG:25DB 90 0D B0 11 10 10 50 13 90 0D B0 11 D0 0C 10 10
|
|
.byte $B0, $11, $40, $1A, $C0, $0C, $50, $13, $60, $0A, $B0, $11, $D0, $0C, $50, $13 ; PRG $25CD / CPU $E5CD ; CPU:$E5EB PRG:25EB B0 11 40 1A C0 0C 50 13 60 0A B0 11 D0 0C 50 13
|
|
.byte $B0, $11, $40, $1A, $20, $0C, $F0, $13, $60, $0A, $B0, $11, $30, $0C, $F0, $13 ; PRG $25DD / CPU $E5DD ; CPU:$E5FB PRG:25FB B0 11 40 1A 20 0C F0 13 60 0A B0 11 30 0C F0 13
|
|
.byte $00, $04, $00, $20, $00, $04, $00, $19 ; PRG $25ED / CPU $E5ED ; CPU:$E60B PRG:260B 00 04 00 20 00 04 00 19
|
|
; =============================================================================
|
|
; RenderRoutine_E5F5
|
|
; CPU address: $E5F5 PRG offset: $25F5
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E5F5:
|
|
ldy UmpireMessageId ; CPU:$E613 PRG:2613 ??
|
|
cpy #$03 ; CPU:$E615 PRG:2615 ??
|
|
bcc Flow_E607 ; CPU:$E617 PRG:2617 ??
|
|
lda BallTrajectoryFlags ; CPU:$E619 PRG:2619 ??
|
|
ror a ; CPU:$E61B PRG:261B ??
|
|
ror a ; CPU:$E61D PRG:261D ??
|
|
lda #$01 ; CPU:$E61F PRG:261F ??
|
|
bcs RenderRoutine_E621 ; CPU:$E621 PRG:2621 ??
|
|
lda #$02 ; CPU:$E623 PRG:2623 ??
|
|
bne RenderRoutine_E621 ; CPU:$E625 PRG:2625 ??
|
|
Flow_E607:
|
|
lda BallVerticalVelocityLo ; CPU:$E627 PRG:2627 ??
|
|
bne Flow_E629 ; CPU:$E629 PRG:2629 ??
|
|
lda #$01 ; CPU:$E62B PRG:262B ??
|
|
ldx BallTargetOffset ; CPU:$E62D PRG:262D ??
|
|
cpx #$60 ; CPU:$E62F PRG:262F ??
|
|
bcc Flow_E61B ; CPU:$E631 PRG:2631 ??
|
|
lda #$00 ; CPU:$E633 PRG:2633 ??
|
|
cpx #$80 ; CPU:$E635 PRG:2635 ??
|
|
bcc Flow_E61B ; CPU:$E637 PRG:2637 ??
|
|
lda #$02 ; CPU:$E639 PRG:2639 ??
|
|
Flow_E61B:
|
|
cmp BallVerticalVelocityHi ; CPU:$E63B PRG:263B ??
|
|
beq Flow_E629 ; CPU:$E63D PRG:263D ??
|
|
sta BallVerticalVelocityHi ; CPU:$E63F PRG:263F ??
|
|
|
|
; =============================================================================
|
|
; RenderRoutine_E621
|
|
; CPU address: $E621 PRG offset: $2621
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E621:
|
|
clc ; CPU:$E641 PRG:2641 ??
|
|
adc #$06 ; CPU:$E643 PRG:2643 ??
|
|
asl a ; CPU:$E645 PRG:2645 ??
|
|
tay ; CPU:$E647 PRG:2647 ??
|
|
jsr RenderRoutine_E65D ; CPU:$E649 PRG:2649 ??
|
|
Flow_E629:
|
|
rts ; CPU:$E64B PRG:264B ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $262A-$2645.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
ScoreTextPpuAddressTable:
|
|
.byte $05, $21, $3B, $02, $7D, $AF, $05, $21, $3B, $02, $7E, $7F, $05, $21, $3B, $02 ; PRG $262A / CPU $E62A ; CPU:$E64D PRG:264D 05 21 3B 02 7D AF 05 21 3B 02 7E 7F 05 21 3B 02
|
|
.byte $80, $81, $02, $02, $02, $01, $02, $04, $02, $08, $02, $08 ; PRG $263A / CPU $E63A ; CPU:$E65D PRG:265D 80 81 02 02 02 01 02 04 02 08 02 08
|
|
; =============================================================================
|
|
; RenderRoutine_E646
|
|
; CPU address: $E646 PRG offset: $2646
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E646:
|
|
lda BallCollisionFlags ; CPU:$E669 PRG:2669 ??
|
|
bne Flow_E659 ; CPU:$E66B PRG:266B ??
|
|
inc BallCollisionFlags ; CPU:$E66D PRG:266D ??
|
|
lda UmpireMessageId ; CPU:$E66F PRG:266F ??
|
|
asl a ; CPU:$E671 PRG:2671 ??
|
|
tay ; CPU:$E673 PRG:2673 ??
|
|
lda $E63C,y ; CPU:$E675 PRG:2675 ??
|
|
tax ; CPU:$E677 PRG:2677 ??
|
|
lda $E63D,y ; CPU:$E679 PRG:2679 ??
|
|
sta AudioEventPriority,x ; CPU:$E67B PRG:267B ??
|
|
Flow_E659:
|
|
lda UmpireMessageId ; CPU:$E67D PRG:267D ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $265B-$265C.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
GraphicsTable_E65B:
|
|
.byte $0A, $A8 ; PRG $265B / CPU $E65B ; CPU:$E67F PRG:267F 0A A8
|
|
; =============================================================================
|
|
; RenderRoutine_E65D
|
|
; CPU address: $E65D PRG offset: $265D
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E65D:
|
|
lda $E693,y ; CPU:$E681 PRG:2681 ??
|
|
sta MathResultLo ; CPU:$E683 PRG:2683 ??
|
|
lda $E694,y ; CPU:$E685 PRG:2685 ??
|
|
sta MathResultHi ; CPU:$E687 PRG:2687 ??
|
|
ldy #$00 ; CPU:$E689 PRG:2689 ??
|
|
lda (MathResultLo),y ; CPU:$E68B PRG:268B ??
|
|
tax ; CPU:$E68D PRG:268D ??
|
|
ldy $0590 ; CPU:$E68F PRG:268F ??
|
|
inc MathResultLo ; CPU:$E691 PRG:2691 ??
|
|
bne Flow_E675 ; CPU:$E693 PRG:2693 ??
|
|
inc MathResultHi ; CPU:$E695 PRG:2695 ??
|
|
Flow_E675:
|
|
jsr RenderRoutine_ED2A ; CPU:$E697 PRG:2697 ??
|
|
lda #$00 ; CPU:$E699 PRG:2699 ??
|
|
sta $0591,y ; CPU:$E69B PRG:269B ??
|
|
sty $0590 ; CPU:$E69D PRG:269D ??
|
|
lda #$01 ; CPU:$E69F PRG:269F ??
|
|
sta PpuBufferReady ; CPU:$E6A1 PRG:26A1 ??
|
|
Flow_E684:
|
|
rts ; CPU:$E6A3 PRG:26A3 ??
|
|
|
|
; =============================================================================
|
|
; ShowDeuceMessage
|
|
; CPU address: $E685 PRG offset: $2685
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
ShowDeuceMessage:
|
|
lda UmpireMessageId ; CPU:$E6A5 PRG:26A5 ??
|
|
cmp #$03 ; CPU:$E6A7 PRG:26A7 ??
|
|
beq Flow_E684 ; CPU:$E6A9 PRG:26A9 ??
|
|
lda #$10 ; CPU:$E6AB PRG:26AB ??
|
|
sta AudioRequestFlags2 ; CPU:$E6AD PRG:26AD ??
|
|
ldy #$0A ; CPU:$E6AF PRG:26AF ??
|
|
bne RenderRoutine_E65D ; CPU:$E6B1 PRG:26B1 ??
|
|
lda PendingAudioCue ; CPU:$E6B3 PRG:26B3 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $2695-$277E.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
GraphicsTable_E695:
|
|
.byte $C2, $E6, $E2, $E6, $02, $E7, $25, $E7, $52, $E7, $2A, $E6, $30, $E6, $36, $E6 ; PRG $2695 / CPU $E695 ; CPU:$E6B5 PRG:26B5 C2 E6 E2 E6 02 E7 25 E7 52 E7 2A E6 30 E6 36 E6
|
|
.byte $1C, $20, $B8, $05, $B4, $B5, $B6, $B7, $B8, $20, $D8, $05, $B9, $BA, $BB, $BC ; PRG $26A5 / CPU $E6A5 ; CPU:$E6C5 PRG:26C5 1C 20 B8 05 B4 B5 B6 B7 B8 20 D8 05 B9 BA BB BC
|
|
.byte $D7, $20, $F8, $05, $BE, $BF, $B6, $C0, $C1, $21, $1B, $01, $C2, $1F, $20, $B7 ; PRG $26B5 / CPU $E6B5 ; CPU:$E6D5 PRG:26D5 D7 20 F8 05 BE BF B6 C0 C1 21 1B 01 C2 1F 20 B7
|
|
.byte $06, $B4, $B5, $B6, $B6, $B7, $B8, $20, $D7, $06, $B9, $C3, $C4, $C5, $BC, $D7 ; PRG $26C5 / CPU $E6C5 ; CPU:$E6E5 PRG:26E5 06 B4 B5 B6 B6 B7 B8 20 D7 06 B9 C3 C4 C5 BC D7
|
|
.byte $20, $F7, $06, $BE, $BF, $B6, $B6, $C0, $C1, $21, $1B, $01, $C2, $1F, $20, $B7 ; PRG $26D5 / CPU $E6D5 ; CPU:$E6F5 PRG:26F5 20 F7 06 BE BF B6 B6 C0 C1 21 1B 01 C2 1F 20 B7
|
|
.byte $06, $B4, $B5, $B6, $B6, $B7, $B8, $20, $D7, $06, $B9, $BB, $C6, $C5, $BC, $D7 ; PRG $26E5 / CPU $E6E5 ; CPU:$E705 PRG:2705 06 B4 B5 B6 B6 B7 B8 20 D7 06 B9 BB C6 C5 BC D7
|
|
.byte $20, $F7, $06, $BE, $BF, $B6, $B6, $C0, $C1, $21, $1B, $01, $C2, $22, $20, $B7 ; PRG $26F5 / CPU $E6F5 ; CPU:$E715 PRG:2715 20 F7 06 BE BF B6 B6 C0 C1 21 1B 01 C2 22 20 B7
|
|
.byte $07, $B4, $B5, $B6, $B6, $B6, $B7, $B8, $20, $D7, $07, $B9, $C7, $C8, $C9, $CA ; PRG $2705 / CPU $E705 ; CPU:$E725 PRG:2725 07 B4 B5 B6 B6 B6 B7 B8 20 D7 07 B9 C7 C8 C9 CA
|
|
.byte $BC, $BD, $20, $F7, $07, $BE, $BF, $B6, $B6, $B6, $C0, $D6, $21, $1B, $01, $CB ; PRG $2715 / CPU $E715 ; CPU:$E735 PRG:2735 BC BD 20 F7 07 BE BF B6 B6 B6 C0 D6 21 1B 01 CB
|
|
.byte $2C, $20, $97, $07, $B4, $B5, $B6, $B6, $B6, $B7, $B8, $20, $B7, $07, $B9, $CC ; PRG $2725 / CPU $E725 ; CPU:$E745 PRG:2745 2C 20 97 07 B4 B5 B6 B6 B6 B7 B8 20 B7 07 B9 CC
|
|
.byte $CD, $CE, $CF, $D0, $BD, $20, $D7, $07, $B9, $C7, $C8, $C9, $CA, $BC, $BD, $20 ; PRG $2735 / CPU $E735 ; CPU:$E755 PRG:2755 CD CE CF D0 BD 20 D7 07 B9 C7 C8 C9 CA BC BD 20
|
|
.byte $F7, $07, $BE, $BF, $B6, $B6, $B6, $C0, $D6, $21, $1B, $01, $CB, $2C, $20, $97 ; PRG $2745 / CPU $E745 ; CPU:$E765 PRG:2765 F7 07 BE BF B6 B6 B6 C0 D6 21 1B 01 CB 2C 20 97
|
|
.byte $07, $24, $24, $24, $7C, $4D, $4D, $4D, $20, $B7, $07, $B4, $B5, $B6, $B6, $B6 ; PRG $2755 / CPU $E755 ; CPU:$E775 PRG:2775 07 24 24 24 7C 4D 4D 4D 20 B7 07 B4 B5 B6 B6 B6
|
|
.byte $B7, $B8, $20, $D7, $07, $B9, $D5, $D1, $D2, $D3, $D4, $BD, $20, $F7, $07, $BE ; PRG $2765 / CPU $E765 ; CPU:$E785 PRG:2785 B7 B8 20 D7 07 B9 D5 D1 D2 D3 D4 BD 20 F7 07 BE
|
|
.byte $BF, $B6, $B6, $B6, $C0, $D6, $21, $1B, $01, $CB ; PRG $2775 / CPU $E775 ; CPU:$E795 PRG:2795 BF B6 B6 B6 C0 D6 21 1B 01 CB
|
|
; =============================================================================
|
|
; RenderRoutine_E77F
|
|
; CPU address: $E77F PRG offset: $277F
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E77F:
|
|
lda #$00 ; CPU:$E79F PRG:279F ??
|
|
sta MatchResultType ; CPU:$E7A1 PRG:27A1 ??
|
|
sta ScoreDisplayState ; CPU:$E7A3 PRG:27A3 ??
|
|
lda #$02 ; CPU:$E7A5 PRG:27A5 ??
|
|
sta PendingGameState ; CPU:$E7A7 PRG:27A7 ??
|
|
lda #$10 ; CPU:$E7A9 PRG:27A9 ??
|
|
sta StateTimer ; CPU:$E7AB PRG:27AB ??
|
|
lda CourtMessageId ; CPU:$E7AD PRG:27AD ??
|
|
bne Flow_E792 ; CPU:$E7AF PRG:27AF ??
|
|
rts ; CPU:$E7B1 PRG:27B1 ??
|
|
Flow_E792:
|
|
tax ; CPU:$E7B3 PRG:27B3 ??
|
|
dex ; CPU:$E7B5 PRG:27B5 ??
|
|
txa ; CPU:$E7B7 PRG:27B7 ??
|
|
eor #$01 ; CPU:$E7B9 PRG:27B9 ??
|
|
tay ; CPU:$E7BB PRG:27BB ??
|
|
inc ScoreLo,x ; CPU:$E7BD PRG:27BD ??
|
|
lda ScoreUpdatePhase ; CPU:$E7BF PRG:27BF ??
|
|
beq Flow_E7B8 ; CPU:$E7C1 PRG:27C1 ??
|
|
cmp #$02 ; CPU:$E7C3 PRG:27C3 ??
|
|
beq Flow_E7DA ; CPU:$E7C5 PRG:27C5 ??
|
|
lda $0058,y ; CPU:$E7C7 PRG:27C7 ??
|
|
beq Flow_E7AB ; CPU:$E7C9 PRG:27C9 ??
|
|
dec ScoreLo ; CPU:$E7CB PRG:27CB ??
|
|
dec ScoreHi ; CPU:$E7CD PRG:27CD ??
|
|
Flow_E7AB:
|
|
lda ScoreLo,x ; CPU:$E7CF PRG:27CF ??
|
|
cmp #$02 ; CPU:$E7D1 PRG:27D1 ??
|
|
bne Flow_E7D1 ; CPU:$E7D3 PRG:27D3 ??
|
|
Flow_E7B1:
|
|
dec ScoreLo,x ; CPU:$E7D5 PRG:27D5 ??
|
|
lda CourtMessageId ; CPU:$E7D7 PRG:27D7 ??
|
|
sta MatchResultType ; CPU:$E7D9 PRG:27D9 ??
|
|
rts ; CPU:$E7DB PRG:27DB ??
|
|
Flow_E7B8:
|
|
lda ScoreLo,x ; CPU:$E7DD PRG:27DD ??
|
|
cmp #$04 ; CPU:$E7DF PRG:27DF ??
|
|
beq Flow_E7B1 ; CPU:$E7E1 PRG:27E1 ??
|
|
cmp #$03 ; CPU:$E7E3 PRG:27E3 ??
|
|
bne Flow_E7D1 ; CPU:$E7E5 PRG:27E5 ??
|
|
lda $0058,y ; CPU:$E7E7 PRG:27E7 ??
|
|
cmp #$03 ; CPU:$E7E9 PRG:27E9 ??
|
|
bne Flow_E7D1 ; CPU:$E7EB PRG:27EB ??
|
|
inc ScoreUpdatePhase ; CPU:$E7ED PRG:27ED ??
|
|
lda #$00 ; CPU:$E7EF PRG:27EF ??
|
|
sta ScoreLo ; CPU:$E7F1 PRG:27F1 ??
|
|
sta ScoreHi ; CPU:$E7F3 PRG:27F3 ??
|
|
Flow_E7D1:
|
|
lda BallTrajectoryFlags ; CPU:$E7F5 PRG:27F5 ??
|
|
eor #$01 ; CPU:$E7F7 PRG:27F7 ??
|
|
Flow_E7D5:
|
|
ora #$C0 ; CPU:$E7F9 PRG:27F9 ??
|
|
sta BallTrajectoryFlags ; CPU:$E7FB PRG:27FB ??
|
|
rts ; CPU:$E7FD PRG:27FD ??
|
|
Flow_E7DA:
|
|
lda ScoreLo,x ; CPU:$E7FF PRG:27FF ??
|
|
cmp #$33 ; CPU:$E801 PRG:2801 ??
|
|
bne Flow_E7E4 ; CPU:$E803 PRG:2803 ??
|
|
dec ScoreLo ; CPU:$E805 PRG:2805 ??
|
|
dec ScoreHi ; CPU:$E807 PRG:2807 ??
|
|
Flow_E7E4:
|
|
lda ScoreLo,x ; CPU:$E809 PRG:2809 ??
|
|
cmp #$07 ; CPU:$E80B PRG:280B ??
|
|
bcc Flow_E7F3 ; CPU:$E80D PRG:280D ??
|
|
sbc $0058,y ; CPU:$E80F PRG:280F ??
|
|
bmi Flow_E7F3 ; CPU:$E811 PRG:2811 ??
|
|
cmp #$02 ; CPU:$E813 PRG:2813 ??
|
|
bcs Flow_E7B1 ; CPU:$E815 PRG:2815 ??
|
|
Flow_E7F3:
|
|
lda BallTrajectoryFlags ; CPU:$E817 PRG:2817 ??
|
|
and #$07 ; CPU:$E819 PRG:2819 ??
|
|
tax ; CPU:$E81B PRG:281B ??
|
|
lda $E804,x ; CPU:$E81D PRG:281D ??
|
|
ldy GameMode ; CPU:$E81F PRG:281F ??
|
|
bne Flow_E7D5 ; CPU:$E821 PRG:2821 ??
|
|
and #$03 ; CPU:$E823 PRG:2823 ??
|
|
jmp Flow_E7D5 ; CPU:$E825 PRG:2825 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $2804-$280B.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
ScoreIncrementLookupTable:
|
|
.byte $01, $03, $04, $02, $05, $07, $00, $06 ; PRG $2804 / CPU $E804 ; CPU:$E827 PRG:2827 01 03 04 02 05 07 00 06
|
|
; =============================================================================
|
|
; RenderRoutine_E80C
|
|
; CPU address: $E80C PRG offset: $280C
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E80C:
|
|
ldx PointWinner ; CPU:$E82F PRG:282F ??
|
|
ldy PointWinner ; CPU:$E831 PRG:2831 ??
|
|
lda MatchResultType ; CPU:$E833 PRG:2833 ??
|
|
bne Flow_E819 ; CPU:$E835 PRG:2835 ??
|
|
lda #$08 ; CPU:$E837 PRG:2837 ??
|
|
sta StateTimer ; CPU:$E839 PRG:2839 ??
|
|
rts ; CPU:$E83B PRG:283B ??
|
|
Flow_E819:
|
|
lda #$12 ; CPU:$E83D PRG:283D ??
|
|
sta StateTimer ; CPU:$E83F PRG:283F ??
|
|
lda MatchResultType ; CPU:$E841 PRG:2841 ??
|
|
cmp #$01 ; CPU:$E843 PRG:2843 ??
|
|
beq Flow_E829 ; CPU:$E845 PRG:2845 ??
|
|
inx ; CPU:$E847 PRG:2847 ??
|
|
inx ; CPU:$E849 PRG:2849 ??
|
|
inx ; CPU:$E84B PRG:284B ??
|
|
jmp Flow_E82C ; CPU:$E84D PRG:284D ??
|
|
Flow_E829:
|
|
iny ; CPU:$E84F PRG:284F ??
|
|
iny ; CPU:$E851 PRG:2851 ??
|
|
iny ; CPU:$E853 PRG:2853 ??
|
|
Flow_E82C:
|
|
lda #$00 ; CPU:$E855 PRG:2855 ??
|
|
sta ScoreLo ; CPU:$E857 PRG:2857 ??
|
|
sta ScoreHi ; CPU:$E859 PRG:2859 ??
|
|
sta ScoreUpdatePhase ; CPU:$E85B PRG:285B ??
|
|
inc PlayerPointScore,x ; CPU:$E85D PRG:285D ??
|
|
lda PlayerPointScore,x ; CPU:$E85F PRG:285F ??
|
|
cmp #$07 ; CPU:$E861 PRG:2861 ??
|
|
beq Flow_E876 ; CPU:$E863 PRG:2863 ??
|
|
cmp #$06 ; CPU:$E865 PRG:2865 ??
|
|
bne Flow_E84B ; CPU:$E867 PRG:2867 ??
|
|
lda $0051,y ; CPU:$E869 PRG:2869 ??
|
|
cmp #$06 ; CPU:$E86B PRG:286B ??
|
|
beq Flow_E86F ; CPU:$E86D PRG:286D ??
|
|
cmp #$05 ; CPU:$E86F PRG:286F ??
|
|
bne Flow_E876 ; CPU:$E871 PRG:2871 ??
|
|
Flow_E84B:
|
|
stx MessagePlayerIndex ; CPU:$E873 PRG:2873 ??
|
|
lda #$10 ; CPU:$E875 PRG:2875 ??
|
|
sta MessageTimer ; CPU:$E877 PRG:2877 ??
|
|
inc ScoreAnimationStep ; CPU:$E879 PRG:2879 ??
|
|
lda ScoreAnimationStep ; CPU:$E87B PRG:287B ??
|
|
and #$03 ; CPU:$E87D PRG:287D ??
|
|
asl a ; CPU:$E87F PRG:287F ??
|
|
ora #$C0 ; CPU:$E881 PRG:2881 ??
|
|
sta BallTrajectoryFlags ; CPU:$E883 PRG:2883 ??
|
|
lda ScoreAnimationStep ; CPU:$E885 PRG:2885 ??
|
|
and #$01 ; CPU:$E887 PRG:2887 ??
|
|
bne Flow_E864 ; CPU:$E889 PRG:2889 ??
|
|
inc BallTrajectoryFlags ; CPU:$E88B PRG:288B ??
|
|
Flow_E864:
|
|
lda GameMode ; CPU:$E88D PRG:288D ??
|
|
bne Flow_E86E ; CPU:$E88F PRG:288F ??
|
|
lda BallTrajectoryFlags ; CPU:$E891 PRG:2891 ??
|
|
and #$FB ; CPU:$E893 PRG:2893 ??
|
|
sta BallTrajectoryFlags ; CPU:$E895 PRG:2895 ??
|
|
Flow_E86E:
|
|
rts ; CPU:$E897 PRG:2897 ??
|
|
Flow_E86F:
|
|
lda #$02 ; CPU:$E899 PRG:2899 ??
|
|
sta ScoreUpdatePhase ; CPU:$E89B PRG:289B ??
|
|
jmp Flow_E84B ; CPU:$E89D PRG:289D ??
|
|
Flow_E876:
|
|
lda #$01 ; CPU:$E89F PRG:289F ??
|
|
sta ScoreDisplayState ; CPU:$E8A1 PRG:28A1 ??
|
|
lda PlayerPointScore,x ; CPU:$E8A3 PRG:28A3 ??
|
|
ora #$80 ; CPU:$E8A5 PRG:28A5 ??
|
|
sta PlayerPointScore,x ; CPU:$E8A7 PRG:28A7 ??
|
|
jmp Flow_E84B ; CPU:$E8A9 PRG:28A9 ??
|
|
|
|
; =============================================================================
|
|
; RenderRoutine_E883
|
|
; CPU address: $E883 PRG offset: $2883
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E883:
|
|
lda ScoreDisplayState ; CPU:$E8AB PRG:28AB ??
|
|
bne Flow_E888 ; CPU:$E8AD PRG:28AD ??
|
|
Flow_E887:
|
|
rts ; CPU:$E8AF PRG:28AF ??
|
|
Flow_E888:
|
|
lda #$18 ; CPU:$E8B1 PRG:28B1 ??
|
|
sta StateTimer ; CPU:$E8B3 PRG:28B3 ??
|
|
inc PointWinner ; CPU:$E8B5 PRG:28B5 ??
|
|
lda PointWinner ; CPU:$E8B7 PRG:28B7 ??
|
|
cmp #$03 ; CPU:$E8B9 PRG:28B9 ??
|
|
beq Flow_E8A6 ; CPU:$E8BB PRG:28BB ??
|
|
cmp #$02 ; CPU:$E8BD PRG:28BD ??
|
|
bne Flow_E887 ; CPU:$E8BF PRG:28BF ??
|
|
bit PlayerPointScore ; CPU:$E8C1 PRG:28C1 ??
|
|
bmi Flow_E8A2 ; CPU:$E8C3 PRG:28C3 ??
|
|
bit Player2PointScore ; CPU:$E8C5 PRG:28C5 ??
|
|
bpl Flow_E8A6 ; CPU:$E8C7 PRG:28C7 ??
|
|
bmi Flow_E887 ; CPU:$E8C9 PRG:28C9 ??
|
|
Flow_E8A2:
|
|
bit Player2PointScore ; CPU:$E8CB PRG:28CB ??
|
|
bpl Flow_E887 ; CPU:$E8CD PRG:28CD ??
|
|
Flow_E8A6:
|
|
lda #$0B ; CPU:$E8CF PRG:28CF ??
|
|
sta PendingGameState ; CPU:$E8D1 PRG:28D1 ??
|
|
lda #$20 ; CPU:$E8D3 PRG:28D3 ??
|
|
sta StateTimer ; CPU:$E8D5 PRG:28D5 ??
|
|
rts ; PRG $28AE / CPU $E8AE ; CPU:$E8D7 PRG:28D7 ??
|
|
; =============================================================================
|
|
; RenderRoutine_E8AF
|
|
; CPU address: $E8AF PRG offset: $28AF
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E8AF:
|
|
lda MatchResultType ; CPU:$E8D9 PRG:28D9 ??
|
|
cmp #$02 ; CPU:$E8DB PRG:28DB ??
|
|
beq FlowEntry_E8C9 ; CPU:$E8DD PRG:28DD ??
|
|
ldy ServingPlayer ; CPU:$E8DF PRG:28DF ??
|
|
cpy #$04 ; CPU:$E8E1 PRG:28E1 ??
|
|
beq Flow_E8BD ; CPU:$E8E3 PRG:28E3 ??
|
|
inc ServingPlayer ; CPU:$E8E5 PRG:28E5 ??
|
|
Flow_E8BD:
|
|
inc ModeAnimSubframe ; CPU:$E8E7 PRG:28E7 ??
|
|
ldy ModeAnimSubframe ; CPU:$E8E9 PRG:28E9 ??
|
|
cpy #$02 ; CPU:$E8EB PRG:28EB ??
|
|
bne FlowEntry_E8C9 ; CPU:$E8ED PRG:28ED ??
|
|
lda #$00 ; CPU:$E8EF PRG:28EF ??
|
|
sta MatchResultType ; CPU:$E8F1 PRG:28F1 ??
|
|
FlowEntry_E8C9:
|
|
rts ; PRG $28C9 / CPU $E8C9 ; CPU:$E8F3 PRG:28F3 ??
|
|
; =============================================================================
|
|
; RenderRoutine_E8CA
|
|
; CPU address: $E8CA PRG offset: $28CA
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E8CA:
|
|
ldy $0590 ; CPU:$E8F5 PRG:28F5 ??
|
|
ldx #$05 ; CPU:$E8F7 PRG:28F7 ??
|
|
lda #$EA ; CPU:$E8F9 PRG:28F9 ??
|
|
sta MathResultHi ; CPU:$E8FB PRG:28FB ??
|
|
lda #$8B ; CPU:$E8FD PRG:28FD ??
|
|
sta MathResultLo ; CPU:$E8FF PRG:28FF ??
|
|
jsr RenderRoutine_ED2A ; CPU:$E901 PRG:2901 ??
|
|
jsr RenderRoutine_E910 ; CPU:$E903 PRG:2903 ??
|
|
ldx #$0C ; CPU:$E905 PRG:2905 ??
|
|
lda #$EA ; CPU:$E907 PRG:2907 ??
|
|
sta MathResultHi ; CPU:$E909 PRG:2909 ??
|
|
lda #$90 ; CPU:$E90B PRG:290B ??
|
|
sta MathResultLo ; CPU:$E90D PRG:290D ??
|
|
jsr RenderRoutine_ED2A ; CPU:$E90F PRG:290F ??
|
|
inx ; CPU:$E911 PRG:2911 ??
|
|
jsr RenderRoutine_E910 ; CPU:$E913 PRG:2913 ??
|
|
lda ScoreUpdatePhase ; CPU:$E915 PRG:2915 ??
|
|
cmp #$01 ; CPU:$E917 PRG:2917 ??
|
|
bne Flow_E907 ; CPU:$E919 PRG:2919 ??
|
|
lda ScoreLo ; CPU:$E91B PRG:291B ??
|
|
ora ScoreHi ; CPU:$E91D PRG:291D ??
|
|
bne Flow_E907 ; CPU:$E91F PRG:291F ??
|
|
ldx #$0A ; CPU:$E921 PRG:2921 ??
|
|
lda #$EA ; CPU:$E923 PRG:2923 ??
|
|
sta MathResultHi ; CPU:$E925 PRG:2925 ??
|
|
lda #$D0 ; CPU:$E927 PRG:2927 ??
|
|
sta MathResultLo ; CPU:$E929 PRG:2929 ??
|
|
jsr RenderRoutine_ED2A ; CPU:$E92B PRG:292B ??
|
|
Flow_E907:
|
|
lda #$00 ; CPU:$E92D PRG:292D ??
|
|
sta $0591,y ; CPU:$E92F PRG:292F ??
|
|
sty $0590 ; CPU:$E931 PRG:2931 ??
|
|
rts ; CPU:$E933 PRG:2933 ??
|
|
|
|
; =============================================================================
|
|
; RenderRoutine_E910
|
|
; CPU address: $E910 PRG offset: $2910
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E910:
|
|
lda ScoreUpdatePhase ; CPU:$E935 PRG:2935 ??
|
|
beq Flow_E92E ; CPU:$E937 PRG:2937 ??
|
|
cmp #$02 ; CPU:$E939 PRG:2939 ??
|
|
beq Flow_E934 ; CPU:$E93B PRG:293B ??
|
|
lda ScoreLo,x ; CPU:$E93D PRG:293D ??
|
|
asl a ; CPU:$E93F PRG:293F ??
|
|
clc ; CPU:$E941 PRG:2941 ??
|
|
adc #$08 ; CPU:$E943 PRG:2943 ??
|
|
Flow_E91E:
|
|
tax ; CPU:$E945 PRG:2945 ??
|
|
lda $EA9C,x ; CPU:$E947 PRG:2947 ??
|
|
sta $0591,y ; CPU:$E949 PRG:2949 ??
|
|
iny ; CPU:$E94B PRG:294B ??
|
|
lda $EA9D,x ; CPU:$E94D PRG:294D ??
|
|
sta $0591,y ; CPU:$E94F PRG:294F ??
|
|
iny ; CPU:$E951 PRG:2951 ??
|
|
rts ; CPU:$E953 PRG:2953 ??
|
|
Flow_E92E:
|
|
lda ScoreLo,x ; CPU:$E955 PRG:2955 ??
|
|
asl a ; CPU:$E957 PRG:2957 ??
|
|
jmp Flow_E91E ; CPU:$E959 PRG:2959 ??
|
|
Flow_E934:
|
|
lda #$00 ; CPU:$E95B PRG:295B ??
|
|
sta MathResultHi ; CPU:$E95D PRG:295D ??
|
|
lda #$50 ; CPU:$E95F PRG:295F ??
|
|
sta MathResultLo ; CPU:$E961 PRG:2961 ??
|
|
lda #$04 ; CPU:$E963 PRG:2963 ??
|
|
sta Zp11 ; CPU:$E965 PRG:2965 ??
|
|
lda ScoreLo,x ; CPU:$E967 PRG:2967 ??
|
|
Flow_E942:
|
|
cmp MathResultLo ; CPU:$E969 PRG:2969 ??
|
|
rol MathResultHi ; CPU:$E96B PRG:296B ??
|
|
cmp MathResultLo ; CPU:$E96D PRG:296D ??
|
|
bcc Flow_E94C ; CPU:$E96F PRG:296F ??
|
|
sbc MathResultLo ; CPU:$E971 PRG:2971 ??
|
|
Flow_E94C:
|
|
lsr MathResultLo ; CPU:$E973 PRG:2973 ??
|
|
dec Zp11 ; CPU:$E975 PRG:2975 ??
|
|
bne Flow_E942 ; CPU:$E977 PRG:2977 ??
|
|
sta MathResultLo ; CPU:$E979 PRG:2979 ??
|
|
lda MathResultHi ; CPU:$E97B PRG:297B ??
|
|
bne Flow_E95A ; CPU:$E97D PRG:297D ??
|
|
lda #$76 ; CPU:$E97F PRG:297F ??
|
|
Flow_E95A:
|
|
sta $0591,y ; CPU:$E981 PRG:2981 ??
|
|
iny ; CPU:$E983 PRG:2983 ??
|
|
lda MathResultLo ; CPU:$E985 PRG:2985 ??
|
|
sta $0591,y ; CPU:$E987 PRG:2987 ??
|
|
iny ; CPU:$E989 PRG:2989 ??
|
|
rts ; CPU:$E98B PRG:298B ??
|
|
|
|
; =============================================================================
|
|
; RenderRoutine_E965
|
|
; CPU address: $E965 PRG offset: $2965
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E965:
|
|
lda MatchResultType ; CPU:$E98D PRG:298D ??
|
|
beq Flow_E9A2 ; CPU:$E98F PRG:298F ??
|
|
ldy #$20 ; CPU:$E991 PRG:2991 ??
|
|
lda BallTrajectoryFlags ; CPU:$E993 PRG:2993 ??
|
|
and #$02 ; CPU:$E995 PRG:2995 ??
|
|
beq Flow_E973 ; CPU:$E997 PRG:2997 ??
|
|
ldy #$40 ; CPU:$E999 PRG:2999 ??
|
|
Flow_E973:
|
|
sty AudioRequestFlags1 ; CPU:$E99B PRG:299B ??
|
|
ldy $0590 ; CPU:$E99D PRG:299D ??
|
|
ldx #$14 ; CPU:$E99F PRG:299F ??
|
|
lda #$EA ; CPU:$E9A1 PRG:29A1 ??
|
|
sta MathResultHi ; CPU:$E9A3 PRG:29A3 ??
|
|
lda #$A8 ; CPU:$E9A5 PRG:29A5 ??
|
|
sta MathResultLo ; CPU:$E9A7 PRG:29A7 ??
|
|
jsr RenderRoutine_ED2A ; CPU:$E9A9 PRG:29A9 ??
|
|
jsr RenderRoutine_E9A3 ; CPU:$E9AB PRG:29AB ??
|
|
ldx #$14 ; CPU:$E9AD PRG:29AD ??
|
|
lda #$EA ; CPU:$E9AF PRG:29AF ??
|
|
sta MathResultHi ; CPU:$E9B1 PRG:29B1 ??
|
|
lda #$BC ; CPU:$E9B3 PRG:29B3 ??
|
|
sta MathResultLo ; CPU:$E9B5 PRG:29B5 ??
|
|
jsr RenderRoutine_ED2A ; CPU:$E9B7 PRG:29B7 ??
|
|
ldx #$03 ; CPU:$E9B9 PRG:29B9 ??
|
|
jsr RenderRoutine_E9A3 ; CPU:$E9BB PRG:29BB ??
|
|
lda #$00 ; CPU:$E9BD PRG:29BD ??
|
|
sta $0591,y ; CPU:$E9BF PRG:29BF ??
|
|
sty $0590 ; CPU:$E9C1 PRG:29C1 ??
|
|
Flow_E9A2:
|
|
rts ; CPU:$E9C3 PRG:29C3 ??
|
|
|
|
; =============================================================================
|
|
; RenderRoutine_E9A3
|
|
; CPU address: $E9A3 PRG offset: $29A3
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E9A3:
|
|
lda PlayerPointScore,x ; CPU:$E9C5 PRG:29C5 ??
|
|
and #$0F ; CPU:$E9C7 PRG:29C7 ??
|
|
sta $0591,y ; CPU:$E9C9 PRG:29C9 ??
|
|
iny ; CPU:$E9CB PRG:29CB ??
|
|
jsr RenderRoutine_E9D4 ; CPU:$E9CD PRG:29CD ??
|
|
lda PointWinner ; CPU:$E9CF PRG:29CF ??
|
|
beq Flow_E9CE ; CPU:$E9D1 PRG:29D1 ??
|
|
lda Player2PointScore,x ; CPU:$E9D3 PRG:29D3 ??
|
|
and #$0F ; CPU:$E9D5 PRG:29D5 ??
|
|
sta $0591,y ; CPU:$E9D7 PRG:29D7 ??
|
|
iny ; CPU:$E9D9 PRG:29D9 ??
|
|
jsr RenderRoutine_E9D4 ; CPU:$E9DB PRG:29DB ??
|
|
lda PointWinner ; CPU:$E9DD PRG:29DD ??
|
|
cmp #$01 ; CPU:$E9DF PRG:29DF ??
|
|
beq RenderRoutine_E9D1 ; CPU:$E9E1 PRG:29E1 ??
|
|
lda PlayerGameScore,x ; CPU:$E9E3 PRG:29E3 ??
|
|
and #$0F ; CPU:$E9E5 PRG:29E5 ??
|
|
sta $0591,y ; CPU:$E9E7 PRG:29E7 ??
|
|
iny ; CPU:$E9E9 PRG:29E9 ??
|
|
jmp RenderRoutine_E9D4 ; CPU:$E9EB PRG:29EB ??
|
|
Flow_E9CE:
|
|
jsr RenderRoutine_E9D1 ; CPU:$E9ED PRG:29ED ??
|
|
|
|
; =============================================================================
|
|
; RenderRoutine_E9D1
|
|
; CPU address: $E9D1 PRG offset: $29D1
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E9D1:
|
|
jsr RenderRoutine_E9D4 ; CPU:$E9EF PRG:29EF ??
|
|
|
|
; =============================================================================
|
|
; RenderRoutine_E9D4
|
|
; CPU address: $E9D4 PRG offset: $29D4
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E9D4:
|
|
lda #$76 ; CPU:$E9F1 PRG:29F1 ??
|
|
sta $0591,y ; CPU:$E9F3 PRG:29F3 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $29D9-$29DA.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
GraphicsTable_E9D9:
|
|
.byte $C8, $60 ; PRG $29D9 / CPU $E9D9 ; CPU:$E9F5 PRG:29F5 C8 60
|
|
; =============================================================================
|
|
; RenderRoutine_E9DB
|
|
; CPU address: $E9DB PRG offset: $29DB
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_E9DB:
|
|
lda MatchResultType ; CPU:$E9F7 PRG:29F7 ??
|
|
beq Flow_E9EE ; CPU:$E9F9 PRG:29F9 ??
|
|
ldx MessagePlayerIndex ; CPU:$E9FB PRG:29FB ??
|
|
ldy $0590 ; CPU:$E9FD PRG:29FD ??
|
|
dec MessageTimer ; CPU:$E9FF PRG:29FF ??
|
|
beq Flow_E9EF ; CPU:$EA01 PRG:2A01 ??
|
|
lda MessageTimer ; CPU:$EA03 PRG:2A03 ??
|
|
cmp #$18 ; CPU:$EA05 PRG:2A05 ??
|
|
beq Flow_E9FE ; CPU:$EA07 PRG:2A07 ??
|
|
Flow_E9EE:
|
|
rts ; CPU:$EA09 PRG:2A09 ??
|
|
Flow_E9EF:
|
|
lda #$28 ; CPU:$EA0B PRG:2A0B ??
|
|
sta MessageTimer ; CPU:$EA0D PRG:2A0D ??
|
|
lda ScoreDisplayState ; CPU:$EA0F PRG:2A0F ??
|
|
bne Flow_EA2A ; CPU:$EA11 PRG:2A11 ??
|
|
jsr RenderRoutine_EA16 ; CPU:$EA13 PRG:2A13 ??
|
|
lda #$76 ; CPU:$EA15 PRG:2A15 ??
|
|
bne Flow_EA09 ; CPU:$EA17 PRG:2A17 ??
|
|
Flow_E9FE:
|
|
lda ScoreDisplayState ; CPU:$EA19 PRG:2A19 ??
|
|
bne Flow_EA49 ; CPU:$EA1B PRG:2A1B ??
|
|
jsr RenderRoutine_EA16 ; CPU:$EA1D PRG:2A1D ??
|
|
lda PlayerPointScore,x ; CPU:$EA1F PRG:2A1F ??
|
|
and #$0F ; CPU:$EA21 PRG:2A21 ??
|
|
Flow_EA09:
|
|
sta $0591,y ; CPU:$EA23 PRG:2A23 ??
|
|
iny ; CPU:$EA25 PRG:2A25 ??
|
|
lda #$00 ; CPU:$EA27 PRG:2A27 ??
|
|
sta $0591,y ; CPU:$EA29 PRG:2A29 ??
|
|
sty $0590 ; CPU:$EA2B PRG:2A2B ??
|
|
rts ; CPU:$EA2D PRG:2A2D ??
|
|
|
|
; =============================================================================
|
|
; RenderRoutine_EA16
|
|
; CPU address: $EA16 PRG offset: $2A16
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_EA16:
|
|
lda #$22 ; CPU:$EA2F PRG:2A2F ??
|
|
sta $0591,y ; CPU:$EA31 PRG:2A31 ??
|
|
iny ; CPU:$EA33 PRG:2A33 ??
|
|
lda $EA82,x ; CPU:$EA35 PRG:2A35 ??
|
|
sta $0591,y ; CPU:$EA37 PRG:2A37 ??
|
|
iny ; CPU:$EA39 PRG:2A39 ??
|
|
lda #$01 ; CPU:$EA3B PRG:2A3B ??
|
|
sta $0591,y ; CPU:$EA3D PRG:2A3D ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $2A28-$2A29.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
GraphicsTable_EA28:
|
|
.byte $C8, $60 ; PRG $2A28 / CPU $EA28 ; CPU:$EA3F PRG:2A3F C8 60
|
|
Flow_EA2A:
|
|
ldx PointWinner ; CPU:$EA41 PRG:2A41 ??
|
|
jsr RenderRoutine_EA6E ; CPU:$EA43 PRG:2A43 ??
|
|
lda #$76 ; CPU:$EA45 PRG:2A45 ??
|
|
sta $0591,y ; CPU:$EA47 PRG:2A47 ??
|
|
iny ; CPU:$EA49 PRG:2A49 ??
|
|
jsr RenderRoutine_EA16 ; CPU:$EA4B PRG:2A4B ??
|
|
lda #$76 ; CPU:$EA4D PRG:2A4D ??
|
|
sta $0591,y ; CPU:$EA4F PRG:2A4F ??
|
|
iny ; CPU:$EA51 PRG:2A51 ??
|
|
inx ; CPU:$EA53 PRG:2A53 ??
|
|
inx ; CPU:$EA55 PRG:2A55 ??
|
|
inx ; CPU:$EA57 PRG:2A57 ??
|
|
jsr RenderRoutine_EA16 ; CPU:$EA59 PRG:2A59 ??
|
|
lda #$76 ; CPU:$EA5B PRG:2A5B ??
|
|
jmp Flow_EA09 ; CPU:$EA5D PRG:2A5D ??
|
|
Flow_EA49:
|
|
ldx PointWinner ; CPU:$EA5F PRG:2A5F ??
|
|
jsr RenderRoutine_EA6E ; CPU:$EA61 PRG:2A61 ??
|
|
txa ; CPU:$EA63 PRG:2A63 ??
|
|
clc ; CPU:$EA65 PRG:2A65 ??
|
|
adc #$29 ; CPU:$EA67 PRG:2A67 ??
|
|
sta $0591,y ; CPU:$EA69 PRG:2A69 ??
|
|
iny ; CPU:$EA6B PRG:2A6B ??
|
|
jsr RenderRoutine_EA16 ; CPU:$EA6D PRG:2A6D ??
|
|
lda PlayerPointScore,x ; CPU:$EA6F PRG:2A6F ??
|
|
and #$0F ; CPU:$EA71 PRG:2A71 ??
|
|
sta $0591,y ; CPU:$EA73 PRG:2A73 ??
|
|
iny ; CPU:$EA75 PRG:2A75 ??
|
|
inx ; CPU:$EA77 PRG:2A77 ??
|
|
inx ; CPU:$EA79 PRG:2A79 ??
|
|
inx ; CPU:$EA7B PRG:2A7B ??
|
|
jsr RenderRoutine_EA16 ; CPU:$EA7D PRG:2A7D ??
|
|
lda PlayerPointScore,x ; CPU:$EA7F PRG:2A7F ??
|
|
and #$0F ; CPU:$EA81 PRG:2A81 ??
|
|
jmp Flow_EA09 ; CPU:$EA83 PRG:2A83 ??
|
|
|
|
; =============================================================================
|
|
; RenderRoutine_EA6E
|
|
; CPU address: $EA6E PRG offset: $2A6E
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_EA6E:
|
|
lda #$21 ; CPU:$EA85 PRG:2A85 ??
|
|
sta $0591,y ; CPU:$EA87 PRG:2A87 ??
|
|
iny ; CPU:$EA89 PRG:2A89 ??
|
|
lda $EA88,x ; CPU:$EA8B PRG:2A8B ??
|
|
sta $0591,y ; CPU:$EA8D PRG:2A8D ??
|
|
iny ; CPU:$EA8F PRG:2A8F ??
|
|
lda #$01 ; CPU:$EA91 PRG:2A91 ??
|
|
sta $0591,y ; CPU:$EA93 PRG:2A93 ??
|
|
iny ; CPU:$EA95 PRG:2A95 ??
|
|
rts ; CPU:$EA97 PRG:2A97 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $2A82-$2AD9.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
UmpireMessageTileData:
|
|
.byte $4F, $51, $53, $0F, $11, $13, $EF, $F1, $F3, $21, $24, $04, $0F, $11, $21, $04 ; PRG $2A82 / CPU $EA82 ; CPU:$EA99 PRG:2A99 4F 51 53 0F 11 13 EF F1 F3 21 24 04 0F 11 21 04
|
|
.byte $04, $76, $76, $76, $76, $20, $E4, $04, $14, $FF, $76, $00, $01, $05, $03, $00 ; PRG $2A92 / CPU $EA92 ; CPU:$EAA9 PRG:2AA9 04 76 76 76 76 20 E4 04 14 FF 76 00 01 05 03 00
|
|
.byte $04, $00, $76, $76, $76, $0A, $21, $EB, $0A, $76, $76, $76, $76, $29, $76, $2A ; PRG $2AA2 / CPU $EAA2 ; CPU:$EAB9 PRG:2AB9 04 00 76 76 76 0A 21 EB 0A 76 76 76 76 29 76 2A
|
|
.byte $76, $2B, $76, $22, $4B, $0A, $76, $0F, $11, $76, $22, $2B, $0A, $76, $76, $76 ; PRG $2AB2 / CPU $EAB2 ; CPU:$EAC9 PRG:2AC9 76 2B 76 22 4B 0A 76 0F 11 76 22 2B 0A 76 76 76
|
|
.byte $76, $76, $76, $76, $76, $76, $76, $22, $0B, $0A, $76, $14, $FF, $76, $20, $E6 ; PRG $2AC2 / CPU $EAC2 ; CPU:$EAD9 PRG:2AD9 76 76 76 76 76 76 76 22 0B 0A 76 14 FF 76 20 E6
|
|
.byte $02, $04, $00, $21, $26, $02, $04, $00 ; PRG $2AD2 / CPU $EAD2 ; CPU:$EAE9 PRG:2AE9 02 04 00 21 26 02 04 00
|
|
; =============================================================================
|
|
; RenderRoutine_EADA
|
|
; CPU address: $EADA PRG offset: $2ADA
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_EADA:
|
|
ldy $0590 ; CPU:$EAF1 PRG:2AF1 ??
|
|
lda #$EA ; CPU:$EAF3 PRG:2AF3 ??
|
|
sta MathResultHi ; CPU:$EAF5 PRG:2AF5 ??
|
|
lda #$EB ; CPU:$EAF7 PRG:2AF7 ??
|
|
sta MathResultLo ; CPU:$EAF9 PRG:2AF9 ??
|
|
ldx #$1A ; CPU:$EAFB PRG:2AFB ??
|
|
jsr RenderRoutine_ED1A ; CPU:$EAFD PRG:2AFD ??
|
|
rts ; CPU:$EAFF PRG:2AFF ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $2AEB-$2B04.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
GraphicsTable_EAEB:
|
|
.byte $22, $0B, $0A, $76, $76, $76, $17, $0E, $21, $1D, $76, $76, $76, $22, $4B, $0A ; PRG $2AEB / CPU $EAEB ; CPU:$EB01 PRG:2B01 22 0B 0A 76 76 76 17 0E 21 1D 76 76 76 22 4B 0A
|
|
.byte $76, $76, $19, $15, $0A, $22, $0E, $1B, $76, $76 ; PRG $2AFB / CPU $EAFB ; CPU:$EB11 PRG:2B11 76 76 19 15 0A 22 0E 1B 76 76
|
|
; =============================================================================
|
|
; RenderRoutine_EB05
|
|
; CPU address: $EB05 PRG offset: $2B05
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_EB05:
|
|
ldy $0590 ; CPU:$EB1B PRG:2B1B ??
|
|
lda #$EB ; CPU:$EB1D PRG:2B1D ??
|
|
sta MathResultHi ; CPU:$EB1F PRG:2B1F ??
|
|
lda #$92 ; CPU:$EB21 PRG:2B21 ??
|
|
sta MathResultLo ; CPU:$EB23 PRG:2B23 ??
|
|
ldx #$36 ; CPU:$EB25 PRG:2B25 ??
|
|
jsr RenderRoutine_ED1A ; CPU:$EB27 PRG:2B27 ??
|
|
lda #$01 ; CPU:$EB29 PRG:2B29 ??
|
|
sta NmiUpdatesEnabled ; CPU:$EB2B PRG:2B2B ??
|
|
jsr EngineRoutine_C422 ; CPU:$EB2D PRG:2B2D ??
|
|
jsr RenderRoutine_ED7D ; CPU:$EB2F PRG:2B2F ??
|
|
lda #$01 ; CPU:$EB31 PRG:2B31 ??
|
|
sta NmiUpdatesEnabled ; CPU:$EB33 PRG:2B33 ??
|
|
jsr EngineRoutine_C422 ; CPU:$EB35 PRG:2B35 ??
|
|
lda MatchResultType ; CPU:$EB37 PRG:2B37 ??
|
|
beq Flow_EB57 ; CPU:$EB39 PRG:2B39 ??
|
|
ldy $0590 ; CPU:$EB3B PRG:2B3B ??
|
|
ldx #$34 ; CPU:$EB3D PRG:2B3D ??
|
|
lda #$EB ; CPU:$EB3F PRG:2B3F ??
|
|
sta MathResultHi ; CPU:$EB41 PRG:2B41 ??
|
|
lda #$C8 ; CPU:$EB43 PRG:2B43 ??
|
|
sta MathResultLo ; CPU:$EB45 PRG:2B45 ??
|
|
jsr RenderRoutine_ED2A ; CPU:$EB47 PRG:2B47 ??
|
|
lda MatchResultType ; CPU:$EB49 PRG:2B49 ??
|
|
cmp #$01 ; CPU:$EB4B PRG:2B4B ??
|
|
beq Flow_EB49 ; CPU:$EB4D PRG:2B4D ??
|
|
lda #$EC ; CPU:$EB4F PRG:2B4F ??
|
|
sta MathResultHi ; CPU:$EB51 PRG:2B51 ??
|
|
lda #$09 ; CPU:$EB53 PRG:2B53 ??
|
|
jmp Flow_EB4F ; CPU:$EB55 PRG:2B55 ??
|
|
Flow_EB49:
|
|
lda #$EB ; CPU:$EB57 PRG:2B57 ??
|
|
sta MathResultHi ; CPU:$EB59 PRG:2B59 ??
|
|
lda #$FC ; CPU:$EB5B PRG:2B5B ??
|
|
Flow_EB4F:
|
|
sta MathResultLo ; CPU:$EB5D PRG:2B5D ??
|
|
ldx #$0D ; CPU:$EB5F PRG:2B5F ??
|
|
jsr RenderRoutine_ED1A ; CPU:$EB61 PRG:2B61 ??
|
|
rts ; PRG $2B56 / CPU $EB56 ; CPU:$EB63 PRG:2B63 ??
|
|
Flow_EB57:
|
|
ldy $0590 ; CPU:$EB65 PRG:2B65 ??
|
|
ldx #$5A ; CPU:$EB67 PRG:2B67 ??
|
|
lda #$EC ; CPU:$EB69 PRG:2B69 ??
|
|
sta MathResultHi ; CPU:$EB6B PRG:2B6B ??
|
|
lda #$16 ; CPU:$EB6D PRG:2B6D ??
|
|
sta MathResultLo ; CPU:$EB6F PRG:2B6F ??
|
|
jsr RenderRoutine_ED1A ; CPU:$EB71 PRG:2B71 ??
|
|
lda #$01 ; CPU:$EB73 PRG:2B73 ??
|
|
sta NmiUpdatesEnabled ; CPU:$EB75 PRG:2B75 ??
|
|
jsr EngineRoutine_C422 ; CPU:$EB77 PRG:2B77 ??
|
|
ldy $0590 ; CPU:$EB79 PRG:2B79 ??
|
|
lda Zp3A ; CPU:$EB7B PRG:2B7B ??
|
|
asl a ; CPU:$EB7D PRG:2B7D ??
|
|
tax ; CPU:$EB7F PRG:2B7F ??
|
|
lda $ECA2,x ; CPU:$EB81 PRG:2B81 ??
|
|
sta MathResultLo ; CPU:$EB83 PRG:2B83 ??
|
|
lda $ECA3,x ; CPU:$EB85 PRG:2B85 ??
|
|
sta MathResultHi ; CPU:$EB87 PRG:2B87 ??
|
|
ldx #$16 ; CPU:$EB89 PRG:2B89 ??
|
|
jsr RenderRoutine_ED2A ; CPU:$EB8B PRG:2B8B ??
|
|
ldx #$32 ; CPU:$EB8D PRG:2B8D ??
|
|
lda #$EC ; CPU:$EB8F PRG:2B8F ??
|
|
sta MathResultHi ; CPU:$EB91 PRG:2B91 ??
|
|
lda #$70 ; CPU:$EB93 PRG:2B93 ??
|
|
sta MathResultLo ; CPU:$EB95 PRG:2B95 ??
|
|
jsr RenderRoutine_ED1A ; CPU:$EB97 PRG:2B97 ??
|
|
rts ; CPU:$EB99 PRG:2B99 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $2B92-$2D19.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
MatchScreenTextData:
|
|
.byte $20, $C3, $06, $7B, $24, $24, $24, $24, $24, $20, $E3, $06, $24, $24, $24, $24 ; PRG $2B92 / CPU $EB92 ; CPU:$EB9B PRG:2B9B 20 C3 06 7B 24 24 24 24 24 20 E3 06 24 24 24 24
|
|
.byte $24, $24, $21, $03, $06, $24, $24, $24, $24, $24, $24, $21, $23, $06, $24, $24 ; PRG $2BA2 / CPU $EBA2 ; CPU:$EBAB PRG:2BAB 24 24 21 03 06 24 24 24 24 24 24 21 23 06 24 24
|
|
.byte $24, $24, $24, $24, $21, $43, $06, $24, $24, $24, $24, $24, $45, $23, $C8, $01 ; PRG $2BB2 / CPU $EBB2 ; CPU:$EBBB PRG:2BBB 24 24 24 24 21 43 06 24 24 24 24 24 45 23 C8 01
|
|
.byte $AA, $23, $CE, $02, $08, $AA, $21, $EB, $0A, $76, $76, $76, $76, $76, $76, $76 ; PRG $2BC2 / CPU $EBC2 ; CPU:$EBCB PRG:2BCB AA 23 CE 02 08 AA 21 EB 0A 76 76 76 76 76 76 76
|
|
.byte $76, $76, $76, $22, $0B, $0A, $76, $10, $0A, $16, $0E, $76, $1C, $0E, $1D, $76 ; PRG $2BD2 / CPU $EBD2 ; CPU:$EBDB PRG:2BDB 76 76 76 22 0B 0A 76 10 0A 16 0E 76 1C 0E 1D 76
|
|
.byte $22, $2B, $0A, $76, $76, $76, $76, $76, $76, $76, $76, $76, $76, $22, $6B, $0A ; PRG $2BE2 / CPU $EBE2 ; CPU:$EBEB PRG:2BEB 22 2B 0A 76 76 76 76 76 76 76 76 76 76 22 6B 0A
|
|
.byte $76, $76, $76, $76, $76, $76, $76, $76, $76, $76, $22, $4B, $0A, $76, $22, $18 ; PRG $2BF2 / CPU $EBF2 ; CPU:$EBFB PRG:2BFB 76 76 76 76 76 76 76 76 76 76 22 4B 0A 76 22 18
|
|
.byte $1E, $76, $20, $18, $17, $27, $76, $22, $4B, $0A, $76, $22, $18, $1E, $76, $15 ; PRG $2C02 / CPU $EC02 ; CPU:$EC0B PRG:2C0B 1E 76 20 18 17 27 76 22 4B 0A 76 22 18 1E 76 15
|
|
.byte $18, $1C, $1D, $27, $21, $EA, $0C, $76, $76, $76, $76, $76, $76, $76, $76, $76 ; PRG $2C12 / CPU $EC12 ; CPU:$EC1B PRG:2C1B 18 1C 1D 27 21 EA 0C 76 76 76 76 76 76 76 76 76
|
|
.byte $76, $76, $76, $22, $0A, $0C, $76, $76, $76, $20, $12, $17, $17, $0E, $1B, $76 ; PRG $2C22 / CPU $EC22 ; CPU:$EC2B PRG:2C2B 76 76 76 22 0A 0C 76 76 76 20 12 17 17 0E 1B 76
|
|
.byte $76, $76, $22, $2A, $0C, $76, $76, $76, $76, $76, $76, $76, $76, $76, $76, $76 ; PRG $2C32 / CPU $EC32 ; CPU:$EC3B PRG:2C3B 76 76 22 2A 0C 76 76 76 76 76 76 76 76 76 76 76
|
|
.byte $76, $22, $4A, $0C, $76, $0C, $18, $17, $10, $1B, $0A, $1D, $1E, $76, $76, $76 ; PRG $2C42 / CPU $EC42 ; CPU:$EC4B PRG:2C4B 76 22 4A 0C 76 0C 18 17 10 1B 0A 1D 1E 76 76 76
|
|
.byte $22, $6A, $0C, $76, $76, $76, $15, $0A, $1D, $12, $18, $17, $1C, $27, $76, $22 ; PRG $2C52 / CPU $EC52 ; CPU:$EC5B PRG:2C5B 22 6A 0C 76 76 76 15 0A 1D 12 18 17 1C 27 76 22
|
|
.byte $CA, $0C, $76, $76, $76, $76, $76, $76, $76, $76, $76, $76, $76, $76, $23, $0A ; PRG $2C62 / CPU $EC62 ; CPU:$EC6B PRG:2C6B CA 0C 76 76 76 76 76 76 76 76 76 76 76 76 23 0A
|
|
.byte $0C, $76, $76, $76, $76, $76, $76, $76, $76, $76, $76, $76, $76, $22, $8A, $0C ; PRG $2C72 / CPU $EC72 ; CPU:$EC7B PRG:2C7B 0C 76 76 76 76 76 76 76 76 76 76 76 76 22 8A 0C
|
|
.byte $76, $76, $76, $76, $76, $82, $83, $76, $76, $76, $76, $76, $22, $AA, $0C, $76 ; PRG $2C82 / CPU $EC82 ; CPU:$EC8B PRG:2C8B 76 76 76 76 76 82 83 76 76 76 76 76 22 AA 0C 76
|
|
.byte $76, $76, $76, $76, $84, $85, $76, $76, $76, $76, $76, $23, $EB, $02, $0C, $03 ; PRG $2C92 / CPU $EC92 ; CPU:$EC9B PRG:2C9B 76 76 76 76 84 85 76 76 76 76 76 23 EB 02 0C 03
|
|
.byte $AC, $EC, $C2, $EC, $D8, $EC, $EE, $EC, $04, $ED, $22, $EA, $0C, $76, $76, $2C ; PRG $2CA2 / CPU $ECA2 ; CPU:$ECAB PRG:2CAB AC EC C2 EC D8 EC EE EC 04 ED 22 EA 0C 76 76 2C
|
|
.byte $76, $76, $01, $00, $00, $00, $00, $76, $76, $3F, $0C, $04, $17, $0F, $30, $10 ; PRG $2CB2 / CPU $ECB2 ; CPU:$ECBB PRG:2CBB 76 76 01 00 00 00 00 76 76 3F 0C 04 17 0F 30 10
|
|
.byte $22, $EA, $0C, $76, $76, $2C, $76, $76, $02, $00, $00, $00, $00, $76, $76, $3F ; PRG $2CC2 / CPU $ECC2 ; CPU:$ECCB PRG:2CCB 22 EA 0C 76 76 2C 76 76 02 00 00 00 00 76 76 3F
|
|
.byte $0C, $04, $17, $0F, $25, $30, $22, $EA, $0C, $76, $76, $2C, $76, $76, $03, $00 ; PRG $2CD2 / CPU $ECD2 ; CPU:$ECDB PRG:2CDB 0C 04 17 0F 25 30 22 EA 0C 76 76 2C 76 76 03 00
|
|
.byte $00, $00, $00, $76, $76, $3F, $0C, $04, $17, $0F, $21, $30, $22, $EA, $0C, $76 ; PRG $2CE2 / CPU $ECE2 ; CPU:$ECEB PRG:2CEB 00 00 00 76 76 3F 0C 04 17 0F 21 30 22 EA 0C 76
|
|
.byte $76, $2C, $76, $76, $05, $00, $00, $00, $00, $76, $76, $3F, $0C, $04, $17, $0F ; PRG $2CF2 / CPU $ECF2 ; CPU:$ECFB PRG:2CFB 76 2C 76 76 05 00 00 00 00 76 76 3F 0C 04 17 0F
|
|
.byte $10, $30, $22, $EA, $0C, $76, $76, $2C, $76, $01, $00, $00, $00, $00, $00, $76 ; PRG $2D02 / CPU $ED02 ; CPU:$ED0B PRG:2D0B 10 30 22 EA 0C 76 76 2C 76 01 00 00 00 00 00 76
|
|
.byte $76, $3F, $0C, $04, $17, $0F, $27, $30 ; PRG $2D12 / CPU $ED12 ; CPU:$ED1B PRG:2D1B 76 3F 0C 04 17 0F 27 30
|
|
; =============================================================================
|
|
; RenderRoutine_ED1A
|
|
; CPU address: $ED1A PRG offset: $2D1A
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_ED1A:
|
|
jsr RenderRoutine_ED2A ; CPU:$ED23 PRG:2D23 ??
|
|
lda #$00 ; CPU:$ED25 PRG:2D25 ??
|
|
sta $0591,y ; CPU:$ED27 PRG:2D27 ??
|
|
sty $0590 ; CPU:$ED29 PRG:2D29 ??
|
|
lda #$01 ; CPU:$ED2B PRG:2D2B ??
|
|
sta PpuBufferReady ; CPU:$ED2D PRG:2D2D ??
|
|
rts ; CPU:$ED2F PRG:2D2F ??
|
|
|
|
; =============================================================================
|
|
; RenderRoutine_ED2A
|
|
; CPU address: $ED2A PRG offset: $2D2A
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_ED2A:
|
|
sty Zp11 ; CPU:$ED31 PRG:2D31 ??
|
|
lda MathResultLo ; CPU:$ED33 PRG:2D33 ??
|
|
sec ; CPU:$ED35 PRG:2D35 ??
|
|
sbc Zp11 ; CPU:$ED37 PRG:2D37 ??
|
|
sta MathResultLo ; CPU:$ED39 PRG:2D39 ??
|
|
bcs Flow_ED37 ; CPU:$ED3B PRG:2D3B ??
|
|
dec MathResultHi ; CPU:$ED3D PRG:2D3D ??
|
|
Flow_ED37:
|
|
lda (MathResultLo),y ; CPU:$ED3F PRG:2D3F ??
|
|
sta $0591,y ; CPU:$ED41 PRG:2D41 ??
|
|
iny ; CPU:$ED43 PRG:2D43 ??
|
|
dex ; CPU:$ED45 PRG:2D45 ??
|
|
bne Flow_ED37 ; CPU:$ED47 PRG:2D47 ??
|
|
rts ; PRG $2D40 / CPU $ED40 ; CPU:$ED49 PRG:2D49 ??
|
|
; =============================================================================
|
|
; RenderRoutine_ED41
|
|
; CPU address: $ED41 PRG offset: $2D41
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_ED41:
|
|
ldx #$09 ; CPU:$ED4B PRG:2D4B ??
|
|
ldy #$F0 ; CPU:$ED4D PRG:2D4D ??
|
|
jsr DrawScreenData ; CPU:$ED4F PRG:2D4F ??
|
|
lda #$01 ; CPU:$ED51 PRG:2D51 ??
|
|
sta PaletteUpdateMode ; CPU:$ED53 PRG:2D53 ??
|
|
rts ; CPU:$ED55 PRG:2D55 ??
|
|
|
|
; =============================================================================
|
|
; RenderRoutine_ED4D
|
|
; CPU address: $ED4D PRG offset: $2D4D
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_ED4D:
|
|
ldx #$8F ; CPU:$ED57 PRG:2D57 ??
|
|
ldy #$EE ; CPU:$ED59 PRG:2D59 ??
|
|
jsr DrawScreenData ; CPU:$ED5B PRG:2D5B ??
|
|
lda #$03 ; CPU:$ED5D PRG:2D5D ??
|
|
sta PaletteUpdateMode ; CPU:$ED5F PRG:2D5F ??
|
|
rts ; PRG $2D58 / CPU $ED58 ; CPU:$ED61 PRG:2D61 ??
|
|
; =============================================================================
|
|
; RenderRoutine_ED59
|
|
; CPU address: $ED59 PRG offset: $2D59
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_ED59:
|
|
lda ServingPlayer ; CPU:$ED63 PRG:2D63 ??
|
|
asl a ; CPU:$ED65 PRG:2D65 ??
|
|
tay ; CPU:$ED67 PRG:2D67 ??
|
|
lda $EE62,y ; CPU:$ED69 PRG:2D69 ??
|
|
sta MathResultLo ; CPU:$ED6B PRG:2D6B ??
|
|
lda $EE63,y ; CPU:$ED6D PRG:2D6D ??
|
|
sta MathResultHi ; CPU:$ED6F PRG:2D6F ??
|
|
ldx #$07 ; CPU:$ED71 PRG:2D71 ??
|
|
ldy $0590 ; CPU:$ED73 PRG:2D73 ??
|
|
jsr RenderRoutine_ED1A ; CPU:$ED75 PRG:2D75 ??
|
|
rts ; CPU:$ED77 PRG:2D77 ??
|
|
|
|
; =============================================================================
|
|
; RenderRoutine_ED70
|
|
; CPU address: $ED70 PRG offset: $2D70
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_ED70:
|
|
jsr RenderRoutine_ED7D ; CPU:$ED79 PRG:2D79 ??
|
|
lda #$01 ; CPU:$ED7B PRG:2D7B ??
|
|
sta NmiUpdatesEnabled ; CPU:$ED7D PRG:2D7D ??
|
|
jsr EngineRoutine_C422 ; CPU:$ED7F PRG:2D7F ??
|
|
jmp Flow_ED8E ; CPU:$ED81 PRG:2D81 ??
|
|
|
|
; =============================================================================
|
|
; RenderRoutine_ED7D
|
|
; CPU address: $ED7D PRG offset: $2D7D
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RenderRoutine_ED7D:
|
|
ldy $0590 ; CPU:$ED83 PRG:2D83 ??
|
|
lda #$9F ; CPU:$ED85 PRG:2D85 ??
|
|
sta MathResultLo ; CPU:$ED87 PRG:2D87 ??
|
|
lda #$ED ; CPU:$ED89 PRG:2D89 ??
|
|
sta MathResultHi ; CPU:$ED8B PRG:2D8B ??
|
|
ldx #$31 ; CPU:$ED8D PRG:2D8D ??
|
|
jsr RenderRoutine_ED1A ; CPU:$ED8F PRG:2D8F ??
|
|
rts ; CPU:$ED91 PRG:2D91 ??
|
|
Flow_ED8E:
|
|
lda #$D0 ; CPU:$ED93 PRG:2D93 ??
|
|
sta MathResultLo ; CPU:$ED95 PRG:2D95 ??
|
|
lda #$ED ; CPU:$ED97 PRG:2D97 ??
|
|
sta MathResultHi ; CPU:$ED99 PRG:2D99 ??
|
|
ldx #$41 ; CPU:$ED9B PRG:2D9B ??
|
|
ldy $0590 ; CPU:$ED9D PRG:2D9D ??
|
|
jsr RenderRoutine_ED1A ; CPU:$ED9F PRG:2D9F ??
|
|
rts ; CPU:$EDA1 PRG:2DA1 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $2D9F-$38DF.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
ScreenAndAnimationAssetData:
|
|
.byte $20, $97, $07, $24, $24, $24, $7C, $4D, $4D, $4D, $20, $B7, $07, $24, $24, $24 ; PRG $2D9F / CPU $ED9F ; CPU:$EDA3 PRG:2DA3 20 97 07 24 24 24 7C 4D 4D 4D 20 B7 07 24 24 24
|
|
.byte $24, $7C, $4D, $4D, $20, $D7, $07, $24, $24, $24, $24, $24, $7C, $4D, $20, $F7 ; PRG $2DAF / CPU $EDAF ; CPU:$EDB3 PRG:2DB3 24 7C 4D 4D 20 D7 07 24 24 24 24 24 7C 4D 20 F7
|
|
.byte $07, $24, $24, $24, $24, $24, $24, $7C, $21, $1B, $01, $24, $21, $3B, $02, $7D ; PRG $2DBF / CPU $EDBF ; CPU:$EDC3 PRG:2DC3 07 24 24 24 24 24 24 7C 21 1B 01 24 21 3B 02 7D
|
|
.byte $AF, $21, $EB, $0A, $4D, $4D, $4D, $4D, $6D, $6E, $4D, $4D, $4D, $4D, $22, $0B ; PRG $2DCF / CPU $EDCF ; CPU:$EDD3 PRG:2DD3 AF 21 EB 0A 4D 4D 4D 4D 6D 6E 4D 4D 4D 4D 22 0B
|
|
.byte $0A, $4D, $4D, $4D, $4D, $6D, $6E, $4D, $4D, $4D, $4D, $22, $2B, $0A, $4D, $4D ; PRG $2DDF / CPU $EDDF ; CPU:$EDE3 PRG:2DE3 0A 4D 4D 4D 4D 6D 6E 4D 4D 4D 4D 22 2B 0A 4D 4D
|
|
.byte $4D, $4D, $6D, $6E, $4D, $4D, $4D, $4D, $22, $4B, $0A, $4D, $4D, $4D, $4D, $6D ; PRG $2DEF / CPU $EDEF ; CPU:$EDF3 PRG:2DF3 4D 4D 6D 6E 4D 4D 4D 4D 22 4B 0A 4D 4D 4D 4D 6D
|
|
.byte $6E, $4D, $4D, $4D, $4D, $22, $6B, $0A, $A4, $A4, $A4, $A4, $89, $8A, $A4, $A4 ; PRG $2DFF / CPU $EDFF ; CPU:$EE03 PRG:2E03 6E 4D 4D 4D 4D 22 6B 0A A4 A4 A4 A4 89 8A A4 A4
|
|
.byte $A4, $A4, $3F, $00, $1D, $17, $0F, $30, $19, $17, $0F, $30, $27, $17, $21, $30 ; PRG $2E0F / CPU $EE0F ; CPU:$EE13 PRG:2E13 A4 A4 3F 00 1D 17 0F 30 19 17 0F 30 27 17 21 30
|
|
.byte $02, $17, $0F, $30, $02, $17, $0F, $27, $21, $17, $07, $27, $20, $17, $39, $0F ; PRG $2E1F / CPU $EE1F ; CPU:$EE23 PRG:2E23 02 17 0F 30 02 17 0F 27 21 17 07 27 20 17 39 0F
|
|
.byte $17, $17, $00, $3F, $00, $14, $0F, $30, $0F, $21, $0F, $0F, $27, $0F, $0F, $0F ; PRG $2E2F / CPU $EE2F ; CPU:$EE33 PRG:2E33 17 17 00 3F 00 14 0F 30 0F 21 0F 0F 27 0F 0F 0F
|
|
.byte $30, $0F, $0F, $30, $29, $19, $0F, $35, $35, $35, $00, $3F, $00, $14, $17, $0F ; PRG $2E3F / CPU $EE3F ; CPU:$EE43 PRG:2E43 30 0F 0F 30 29 19 0F 35 35 35 00 3F 00 14 17 0F
|
|
.byte $30, $19, $17, $0F, $30, $27, $17, $21, $30, $02, $17, $0F, $22, $02, $17, $30 ; PRG $2E4F / CPU $EE4F ; CPU:$EE53 PRG:2E53 30 19 17 0F 30 27 17 21 30 02 17 0F 22 02 17 30
|
|
.byte $25, $0F, $00, $6C, $EE, $73, $EE, $7A, $EE, $81, $EE, $88, $EE, $3F, $1C, $04 ; PRG $2E5F / CPU $EE5F ; CPU:$EE63 PRG:2E63 25 0F 00 6C EE 73 EE 7A EE 81 EE 88 EE 3F 1C 04
|
|
.byte $17, $07, $36, $2B, $3F, $1C, $04, $17, $07, $27, $25, $3F, $1C, $04, $17, $0F ; PRG $2E6F / CPU $EE6F ; CPU:$EE73 PRG:2E73 17 07 36 2B 3F 1C 04 17 07 27 25 3F 1C 04 17 0F
|
|
.byte $27, $31, $3F, $1C, $04, $17, $0F, $27, $04, $3F, $1C, $04, $17, $07, $26, $0F ; PRG $2E7F / CPU $EE7F ; CPU:$EE83 PRG:2E83 27 31 3F 1C 04 17 0F 27 04 3F 1C 04 17 07 26 0F
|
|
.byte $21, $EB, $4B, $76, $22, $0B, $0B, $76, $1C, $0E, $15, $0E, $0C, $1D, $76, $76 ; PRG $2E8F / CPU $EE8F ; CPU:$EE93 PRG:2E93 21 EB 4B 76 22 0B 0B 76 1C 0E 15 0E 0C 1D 76 76
|
|
.byte $76, $76, $22, $2B, $0B, $76, $76, $76, $76, $76, $15, $0E, $1F, $0E, $15, $76 ; PRG $2E9F / CPU $EE9F ; CPU:$EEA3 PRG:2EA3 76 76 22 2B 0B 76 76 76 76 76 15 0E 1F 0E 15 76
|
|
.byte $22, $4B, $4B, $76, $22, $6B, $0B, $76, $01, $76, $02, $76, $03, $76, $04, $76 ; PRG $2EAF / CPU $EEAF ; CPU:$EEB3 PRG:2EB3 22 4B 4B 76 22 6B 0B 76 01 76 02 76 03 76 04 76
|
|
.byte $05, $76, $22, $8B, $4B, $76, $22, $AB, $4B, $76, $20, $C4, $45, $24, $21, $43 ; PRG $2EBF / CPU $EEBF ; CPU:$EEC3 PRG:2EC3 05 76 22 8B 4B 76 22 AB 4B 76 20 C4 45 24 21 43
|
|
.byte $45, $24, $20, $C3, $84, $7B, $24, $24, $24, $20, $E8, $84, $24, $24, $24, $45 ; PRG $2ECF / CPU $EECF ; CPU:$EED3 PRG:2ED3 45 24 20 C3 84 7B 24 24 24 20 E8 84 24 24 24 45
|
|
.byte $23, $E3, $03, $F0, $F0, $30, $00, $20, $83, $1A, $D8, $D9, $D9, $DA, $24, $D8 ; PRG $2EDF / CPU $EEDF ; CPU:$EEE3 PRG:2EE3 23 E3 03 F0 F0 30 00 20 83 1A D8 D9 D9 DA 24 D8
|
|
.byte $D9, $D9, $DA, $24, $E7, $E8, $24, $E9, $24, $E7, $E8, $24, $E9, $24, $E9, $24 ; PRG $2EEF / CPU $EEEF ; CPU:$EEF3 PRG:2EF3 D9 D9 DA 24 E7 E8 24 E9 24 E7 E8 24 E9 24 E9 24
|
|
.byte $F8, $D9, $D9, $DA, $20, $A3, $1A, $DB, $DC, $DD, $DE, $24, $E3, $E4, $E4, $DE ; PRG $2EFF / CPU $EEFF ; CPU:$EF03 PRG:2F03 F8 D9 D9 DA 20 A3 1A DB DC DD DE 24 E3 E4 E4 DE
|
|
.byte $24, $EA, $EB, $EC, $E5, $24, $EA, $EB, $EC, $E5, $24, $E5, $24, $E3, $E4, $E4 ; PRG $2F0F / CPU $EF0F ; CPU:$EF13 PRG:2F13 24 EA EB EC E5 24 EA EB EC E5 24 E5 24 E3 E4 E4
|
|
.byte $DE, $20, $C4, $16, $DF, $E0, $24, $24, $E5, $24, $24, $24, $24, $EA, $4D, $ED ; PRG $2F1F / CPU $EF1F ; CPU:$EF23 PRG:2F23 DE 20 C4 16 DF E0 24 24 E5 24 24 24 24 EA 4D ED
|
|
.byte $E5, $24, $EA, $4D, $ED, $E5, $24, $E5, $24, $E5, $20, $E4, $19, $DF, $E0, $24 ; PRG $2F2F / CPU $EF2F ; CPU:$EF33 PRG:2F33 E5 24 EA 4D ED E5 24 E5 24 E5 20 E4 19 DF E0 24
|
|
.byte $24, $E6, $D9, $D9, $DA, $24, $EE, $EF, $F0, $F1, $24, $EE, $EF, $F0, $F1, $24 ; PRG $2F3F / CPU $EF3F ; CPU:$EF43 PRG:2F43 24 E6 D9 D9 DA 24 EE EF F0 F1 24 EE EF F0 F1 24
|
|
.byte $E5, $24, $E6, $D9, $D9, $F9, $21, $04, $19, $DF, $E0, $24, $24, $E3, $E4, $E4 ; PRG $2F4F / CPU $EF4F ; CPU:$EF53 PRG:2F53 E5 24 E6 D9 D9 F9 21 04 19 DF E0 24 24 E3 E4 E4
|
|
.byte $DE, $24, $E5, $F2, $4D, $F3, $24, $E5, $F2, $4D, $F3, $24, $E5, $24, $FA, $E4 ; PRG $2F5F / CPU $EF5F ; CPU:$EF63 PRG:2F63 DE 24 E5 F2 4D F3 24 E5 F2 4D F3 24 E5 24 FA E4
|
|
.byte $E4, $FD, $21, $24, $19, $DF, $E0, $24, $24, $E5, $24, $24, $24, $24, $E5, $F4 ; PRG $2F6F / CPU $EF6F ; CPU:$EF73 PRG:2F73 E4 FD 21 24 19 DF E0 24 24 E5 24 24 24 24 E5 F4
|
|
.byte $F5, $F3, $24, $E5, $F4, $F5, $F3, $24, $E5, $24, $24, $24, $24, $E5, $21, $44 ; PRG $2F7F / CPU $EF7F ; CPU:$EF83 PRG:2F83 F5 F3 24 E5 F4 F5 F3 24 E5 24 24 24 24 E5 21 44
|
|
.byte $19, $DF, $E0, $24, $24, $E6, $D9, $D9, $DA, $24, $E5, $24, $F6, $F7, $24, $E5 ; PRG $2F8F / CPU $EF8F ; CPU:$EF93 PRG:2F93 19 DF E0 24 24 E6 D9 D9 DA 24 E5 24 F6 F7 24 E5
|
|
.byte $24, $F6, $F7, $24, $E5, $24, $D8, $D9, $D9, $FE, $21, $64, $19, $E1, $E2, $24 ; PRG $2F9F / CPU $EF9F ; CPU:$EFA3 PRG:2FA3 24 F6 F7 24 E5 24 D8 D9 D9 FE 21 64 19 E1 E2 24
|
|
.byte $24, $DB, $E4, $E4, $DE, $24, $FC, $24, $24, $FC, $24, $FC, $24, $24, $FC, $24 ; PRG $2FAF / CPU $EFAF ; CPU:$EFB3 PRG:2FB3 24 DB E4 E4 DE 24 FC 24 24 FC 24 FC 24 24 FC 24
|
|
.byte $FC, $24, $DB, $E4, $E4, $FB, $22, $2A, $0C, $1C, $12, $17, $10, $15, $0E, $1C ; PRG $2FBF / CPU $EFBF ; CPU:$EFC3 PRG:2FC3 FC 24 DB E4 E4 FB 22 2A 0C 1C 12 17 10 15 0E 1C
|
|
.byte $24, $10, $0A, $16, $0E, $22, $8A, $0C, $0D, $18, $1E, $0B, $15, $0E, $1C, $24 ; PRG $2FCF / CPU $EFCF ; CPU:$EFD3 PRG:2FD3 24 10 0A 16 0E 22 8A 0C 0D 18 1E 0B 15 0E 1C 24
|
|
.byte $10, $0A, $16, $0E, $23, $05, $16, $25, $01, $09, $08, $03, $24, $17, $12, $17 ; PRG $2FDF / CPU $EFDF ; CPU:$EFE3 PRG:2FE3 10 0A 16 0E 23 05 16 25 01 09 08 03 24 17 12 17
|
|
.byte $1D, $0E, $17, $0D, $18, $24, $0C, $18, $28, $15, $1D, $0D, $26, $23, $C0, $60 ; PRG $2FEF / CPU $EFEF ; CPU:$EFF3 PRG:2FF3 1D 0E 17 0D 18 24 0C 18 28 15 1D 0D 26 23 C0 60
|
|
.byte $00, $23, $E0, $50, $55, $23, $F0, $50, $AA, $00, $20, $C9, $0E, $30, $31, $32 ; PRG $2FFF / CPU $EFFF ; CPU:$F003 PRG:3003 00 23 E0 50 55 23 F0 50 AA 00 20 C9 0E 30 31 32
|
|
.byte $32, $32, $32, $33, $34, $32, $32, $32, $32, $35, $36, $20, $E9, $0E, $37, $38 ; PRG $300F / CPU $F00F ; CPU:$F013 PRG:3013 32 32 32 33 34 32 32 32 32 35 36 20 E9 0E 37 38
|
|
.byte $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $39, $3A, $21, $09, $0E, $3B ; PRG $301F / CPU $F01F ; CPU:$F023 PRG:3023 4D 4D 4D 4D 4D 4D 4D 4D 4D 4D 39 3A 21 09 0E 3B
|
|
.byte $3C, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $3D, $3E, $21, $29, $0E ; PRG $302F / CPU $F02F ; CPU:$F033 PRG:3033 3C 4D 4D 4D 4D 4D 4D 4D 4D 4D 4D 3D 3E 21 29 0E
|
|
.byte $3F, $40, $32, $32, $32, $32, $41, $42, $32, $32, $32, $32, $43, $44, $21, $48 ; PRG $303F / CPU $F03F ; CPU:$F043 PRG:3043 3F 40 32 32 32 32 41 42 32 32 32 32 43 44 21 48
|
|
.byte $10, $45, $46, $47, $4D, $4D, $4D, $4D, $6D, $6E, $4D, $4D, $4D, $4D, $48, $49 ; PRG $304F / CPU $F04F ; CPU:$F053 PRG:3053 10 45 46 47 4D 4D 4D 4D 6D 6E 4D 4D 4D 4D 48 49
|
|
.byte $4A, $21, $68, $10, $9B, $90, $91, $4D, $4D, $4D, $4D, $6D, $6E, $4D, $4D, $4D ; PRG $305F / CPU $F05F ; CPU:$F063 PRG:3063 4A 21 68 10 9B 90 91 4D 4D 4D 4D 6D 6E 4D 4D 4D
|
|
.byte $4D, $92, $93, $9E, $21, $86, $14, $51, $52, $53, $54, $55, $56, $57, $55, $56 ; PRG $306F / CPU $F06F ; CPU:$F073 PRG:3073 4D 92 93 9E 21 86 14 51 52 53 54 55 56 57 55 56
|
|
.byte $58, $4B, $55, $56, $57, $55, $56, $59, $5A, $5B, $5C, $21, $A6, $14, $5D, $5E ; PRG $307F / CPU $F07F ; CPU:$F083 PRG:3083 58 4B 55 56 57 55 56 59 5A 5B 5C 21 A6 14 5D 5E
|
|
.byte $5F, $60, $61, $62, $63, $61, $62, $64, $4C, $61, $62, $63, $61, $62, $66, $67 ; PRG $308F / CPU $F08F ; CPU:$F093 PRG:3093 5F 60 61 62 63 61 62 64 4C 61 62 63 61 62 66 67
|
|
.byte $68, $69, $21, $C7, $12, $95, $96, $A0, $4D, $4D, $4D, $4D, $4D, $6D, $6E, $4D ; PRG $309F / CPU $F09F ; CPU:$F0A3 PRG:30A3 68 69 21 C7 12 95 96 A0 4D 4D 4D 4D 4D 6D 6E 4D
|
|
.byte $4D, $4D, $4D, $4D, $A1, $99, $9A, $21, $E7, $12, $9B, $4D, $8D, $4D, $4D, $4D ; PRG $30AF / CPU $F0AF ; CPU:$F0B3 PRG:30B3 4D 4D 4D 4D A1 99 9A 21 E7 12 9B 4D 8D 4D 4D 4D
|
|
.byte $4D, $4D, $6D, $6E, $4D, $4D, $4D, $4D, $4D, $8E, $4D, $9E, $22, $07, $12, $9F ; PRG $30BF / CPU $F0BF ; CPU:$F0C3 PRG:30C3 4D 4D 6D 6E 4D 4D 4D 4D 4D 8E 4D 9E 22 07 12 9F
|
|
.byte $90, $91, $4D, $4D, $4D, $4D, $4D, $6D, $6E, $4D, $4D, $4D, $4D, $4D, $92, $93 ; PRG $30CF / CPU $F0CF ; CPU:$F0D3 PRG:30D3 90 91 4D 4D 4D 4D 4D 6D 6E 4D 4D 4D 4D 4D 92 93
|
|
.byte $A2, $22, $27, $12, $8F, $97, $4D, $4D, $4D, $4D, $4D, $4D, $6D, $6E, $4D, $4D ; PRG $30DF / CPU $F0DF ; CPU:$F0E3 PRG:30E3 A2 22 27 12 8F 97 4D 4D 4D 4D 4D 4D 6D 6E 4D 4D
|
|
.byte $4D, $4D, $4D, $4D, $98, $94, $22, $46, $14, $95, $96, $9C, $4D, $4D, $4D, $4D ; PRG $30EF / CPU $F0EF ; CPU:$F0F3 PRG:30F3 4D 4D 4D 4D 98 94 22 46 14 95 96 9C 4D 4D 4D 4D
|
|
.byte $4D, $4D, $6D, $6E, $4D, $4D, $4D, $4D, $4D, $4D, $9D, $99, $9A, $22, $66, $14 ; PRG $30FF / CPU $F0FF ; CPU:$F103 PRG:3103 4D 4D 6D 6E 4D 4D 4D 4D 4D 4D 9D 99 9A 22 66 14
|
|
.byte $9B, $4D, $87, $A4, $A4, $A4, $A4, $A4, $A4, $89, $8A, $A4, $A4, $A4, $A4, $A4 ; PRG $310F / CPU $F10F ; CPU:$F113 PRG:3113 9B 4D 87 A4 A4 A4 A4 A4 A4 89 8A A4 A4 A4 A4 A4
|
|
.byte $A4, $8B, $4D, $9E, $22, $86, $03, $9F, $4D, $8D, $22, $97, $03, $8E, $4D, $A2 ; PRG $311F / CPU $F11F ; CPU:$F123 PRG:3123 A4 8B 4D 9E 22 86 03 9F 4D 8D 22 97 03 8E 4D A2
|
|
.byte $22, $A6, $03, $8F, $90, $91, $22, $B7, $03, $92, $93, $94, $22, $C5, $03, $95 ; PRG $312F / CPU $F12F ; CPU:$F133 PRG:3133 22 A6 03 8F 90 91 22 B7 03 92 93 94 22 C5 03 95
|
|
.byte $96, $97, $22, $D8, $03, $98, $99, $9A, $22, $E5, $03, $9B, $4D, $9C, $22, $F8 ; PRG $313F / CPU $F13F ; CPU:$F143 PRG:3143 96 97 22 D8 03 98 99 9A 22 E5 03 9B 4D 9C 22 F8
|
|
.byte $03, $9D, $4D, $9E, $23, $05, $03, $9F, $4D, $A0, $23, $18, $03, $A1, $4D, $A2 ; PRG $314F / CPU $F14F ; CPU:$F153 PRG:3153 03 9D 4D 9E 23 05 03 9F 4D A0 23 18 03 A1 4D A2
|
|
.byte $23, $25, $16, $A3, $A4, $A5, $A4, $A4, $A4, $A4, $A4, $A4, $A4, $A6, $A7, $A4 ; PRG $315F / CPU $F15F ; CPU:$F163 PRG:3163 23 25 16 A3 A4 A5 A4 A4 A4 A4 A4 A4 A4 A6 A7 A4
|
|
.byte $A4, $A4, $A4, $A4, $A4, $A4, $A8, $A4, $A9, $22, $89, $4E, $4D, $22, $A9, $4E ; PRG $316F / CPU $F16F ; CPU:$F173 PRG:3173 A4 A4 A4 A4 A4 A4 A8 A4 A9 22 89 4E 4D 22 A9 4E
|
|
.byte $4D, $22, $C8, $50, $4D, $22, $E8, $50, $4D, $23, $08, $50, $4D, $21, $3B, $86 ; PRG $317F / CPU $F17F ; CPU:$F183 PRG:3183 4D 22 C8 50 4D 22 E8 50 4D 23 08 50 4D 21 3B 86
|
|
.byte $7D, $AA, $AB, $AC, $AD, $13, $21, $3C, $85, $AF, $B0, $B1, $B2, $B3, $21, $BD ; PRG $318F / CPU $F18F ; CPU:$F193 PRG:3193 7D AA AB AC AD 13 21 3C 85 AF B0 B1 B2 B3 21 BD
|
|
.byte $82, $1A, $23, $20, $00, $20, $2F, $2E, $2F, $2E, $2F, $2E, $2F, $2E, $2F, $2E ; PRG $319F / CPU $F19F ; CPU:$F1A3 PRG:31A3 82 1A 23 20 00 20 2F 2E 2F 2E 2F 2E 2F 2E 2F 2E
|
|
.byte $2F, $2E, $2F, $2E, $2F, $2E, $2F, $2E, $2F, $2E, $2F, $2E, $2F, $2E, $2F, $2E ; PRG $31AF / CPU $F1AF ; CPU:$F1B3 PRG:31B3 2F 2E 2F 2E 2F 2E 2F 2E 2F 2E 2F 2E 2F 2E 2F 2E
|
|
.byte $2F, $2E, $2F, $2E, $2F, $2E, $20, $20, $20, $2E, $2F, $2E, $2F, $2E, $2F, $2E ; PRG $31BF / CPU $F1BF ; CPU:$F1C3 PRG:31C3 2F 2E 2F 2E 2F 2E 20 20 20 2E 2F 2E 2F 2E 2F 2E
|
|
.byte $2F, $2E, $2F, $2E, $2F, $2E, $2F, $2E, $2F, $2E, $2F, $2E, $2F, $2E, $2F, $2E ; PRG $31CF / CPU $F1CF ; CPU:$F1D3 PRG:31D3 2F 2E 2F 2E 2F 2E 2F 2E 2F 2E 2F 2E 2F 2E 2F 2E
|
|
.byte $2F, $2E, $2F, $2E, $2F, $2E, $2F, $2E, $2F, $20, $40, $07, $2F, $2E, $2F, $2E ; PRG $31DF / CPU $F1DF ; CPU:$F1E3 PRG:31E3 2F 2E 2F 2E 2F 2E 2F 2E 2F 20 40 07 2F 2E 2F 2E
|
|
.byte $2D, $78, $4F, $20, $47, $53, $4D, $20, $59, $14, $50, $79, $4E, $2F, $2E, $2F ; PRG $31EF / CPU $F1EF ; CPU:$F1F3 PRG:31F3 2D 78 4F 20 47 53 4D 20 59 14 50 79 4E 2F 2E 2F
|
|
.byte $2E, $2E, $2F, $2D, $78, $4D, $4D, $4F, $70, $71, $72, $73, $74, $75, $20, $6D ; PRG $31FF / CPU $F1FF ; CPU:$F203 PRG:3203 2E 2E 2F 2D 78 4D 4D 4F 70 71 72 73 74 75 20 6D
|
|
.byte $4C, $4D, $20, $79, $0D, $50, $4D, $4D, $79, $4E, $2E, $2F, $2D, $78, $4D, $4D ; PRG $320F / CPU $F20F ; CPU:$F213 PRG:3213 4C 4D 20 79 0D 50 4D 4D 79 4E 2E 2F 2D 78 4D 4D
|
|
.byte $4D, $7B, $20, $9A, $0B, $7C, $4D, $4D, $4D, $79, $4E, $4D, $4D, $4D, $4D, $7B ; PRG $321F / CPU $F21F ; CPU:$F223 PRG:3223 4D 7B 20 9A 0B 7C 4D 4D 4D 79 4E 4D 4D 4D 4D 7B
|
|
.byte $20, $BB, $09, $7C, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $7B, $20, $DC, $07, $7C ; PRG $322F / CPU $F22F ; CPU:$F233 PRG:3233 20 BB 09 7C 4D 4D 4D 4D 4D 4D 4D 7B 20 DC 07 7C
|
|
.byte $4D, $4D, $4D, $4D, $4D, $7B, $20, $FD, $05, $7C, $4D, $4D, $4D, $7B, $21, $1E ; PRG $323F / CPU $F23F ; CPU:$F243 PRG:3243 4D 4D 4D 4D 4D 7B 20 FD 05 7C 4D 4D 4D 7B 21 1E
|
|
.byte $03, $7C, $4D, $7B, $21, $3F, $01, $7C, $20, $C3, $85, $65, $6C, $6C, $6C, $86 ; PRG $324F / CPU $F24F ; CPU:$F253 PRG:3253 03 7C 4D 7B 21 3F 01 7C 20 C3 85 65 6C 6C 6C 86
|
|
.byte $20, $C8, $85, $6B, $6F, $6F, $6F, $8C, $20, $C4, $44, $6A, $21, $44, $44, $88 ; PRG $325F / CPU $F25F ; CPU:$F263 PRG:3263 20 C8 85 6B 6F 6F 6F 8C 20 C4 44 6A 21 44 44 88
|
|
.byte $23, $C0, $48, $AA, $23, $C8, $02, $EA, $02, $23, $CE, $03, $0C, $BB, $02, $23 ; PRG $326F / CPU $F26F ; CPU:$F273 PRG:3273 23 C0 48 AA 23 C8 02 EA 02 23 CE 03 0C BB 02 23
|
|
.byte $D6, $02, $44, $19, $00, $F4, $FE, $00, $40, $A0, $FD, $00, $98, $0A, $F3, $18 ; PRG $327F / CPU $F27F ; CPU:$F283 PRG:3283 D6 02 44 19 00 F4 FE 00 40 A0 FD 00 98 0A F3 18
|
|
.byte $F3, $26, $F3, $34, $F3, $42, $F3, $50, $F3, $5E, $F3, $6C, $F3, $7A, $F3, $88 ; PRG $328F / CPU $F28F ; CPU:$F293 PRG:3293 F3 26 F3 34 F3 42 F3 50 F3 5E F3 6C F3 7A F3 88
|
|
.byte $F3, $96, $F3, $A4, $F3, $B2, $F3, $C0, $F3, $CE, $F3, $DC, $F3, $EA, $F3, $F8 ; PRG $329F / CPU $F29F ; CPU:$F2A3 PRG:32A3 F3 96 F3 A4 F3 B2 F3 C0 F3 CE F3 DC F3 EA F3 F8
|
|
.byte $F3, $06, $F4, $14, $F4, $22, $F4, $30, $F4, $3E, $F4, $4C, $F4, $5A, $F4, $68 ; PRG $32AF / CPU $F2AF ; CPU:$F2B3 PRG:32B3 F3 06 F4 14 F4 22 F4 30 F4 3E F4 4C F4 5A F4 68
|
|
.byte $F4, $76, $F4, $81, $F4, $8C, $F4, $97, $F4, $A2, $F4, $AD, $F4, $B8, $F4, $C3 ; PRG $32BF / CPU $F2BF ; CPU:$F2C3 PRG:32C3 F4 76 F4 81 F4 8C F4 97 F4 A2 F4 AD F4 B8 F4 C3
|
|
.byte $F4, $CE, $F4, $D9, $F4, $E4, $F4, $F2, $F4, $FD, $F4, $08, $F5, $13, $F5, $1E ; PRG $32CF / CPU $F2CF ; CPU:$F2D3 PRG:32D3 F4 CE F4 D9 F4 E4 F4 F2 F4 FD F4 08 F5 13 F5 1E
|
|
.byte $F5, $29, $F5, $34, $F5, $3F, $F5, $4A, $F5, $55, $F5, $60, $F5, $65, $F5, $6A ; PRG $32DF / CPU $F2DF ; CPU:$F2E3 PRG:32E3 F5 29 F5 34 F5 3F F5 4A F5 55 F5 60 F5 65 F5 6A
|
|
.byte $F5, $6F, $F5, $74, $F5, $79, $F5, $7E, $F5, $83, $F5, $88, $F5, $8D, $F5, $98 ; PRG $32EF / CPU $F2EF ; CPU:$F2F3 PRG:32F3 F5 6F F5 74 F5 79 F5 7E F5 83 F5 88 F5 8D F5 98
|
|
.byte $F5, $A3, $F5, $B1, $F5, $BF, $F5, $CA, $F5, $D5, $F5, $DA, $F5, $00, $00, $01 ; PRG $32FF / CPU $F2FF ; CPU:$F303 PRG:3303 F5 A3 F5 B1 F5 BF F5 CA F5 D5 F5 DA F5 00 00 01
|
|
.byte $00, $03, $04, $02, $05, $06, $07, $08, $FF, $EF, $F5, $00, $00, $09, $0A, $0B ; PRG $330F / CPU $F30F ; CPU:$F313 PRG:3313 00 03 04 02 05 06 07 08 FF EF F5 00 00 09 0A 0B
|
|
.byte $0C, $0D, $06, $0E, $0F, $10, $FF, $04, $F6, $00, $00, $FF, $01, $FF, $11, $12 ; PRG $331F / CPU $F31F ; CPU:$F323 PRG:3323 0C 0D 06 0E 0F 10 FF 04 F6 00 00 FF 01 FF 11 12
|
|
.byte $13, $14, $15, $16, $17, $04, $F6, $00, $00, $FF, $18, $19, $1A, $1B, $1C, $1D ; PRG $332F / CPU $F32F ; CPU:$F333 PRG:3333 13 14 15 16 17 04 F6 00 00 FF 18 19 1A 1B 1C 1D
|
|
.byte $FF, $1E, $17, $58, $F6, $00, $00, $1F, $20, $FF, $21, $22, $FF, $23, $24, $1E ; PRG $333F / CPU $F33F ; CPU:$F343 PRG:3343 FF 1E 17 58 F6 00 00 1F 20 FF 21 22 FF 23 24 1E
|
|
.byte $17, $AC, $F6, $83, $00, $01, $FF, $25, $26, $28, $29, $08, $07, $27, $FF, $EF ; PRG $334F / CPU $F34F ; CPU:$F353 PRG:3353 17 AC F6 83 00 01 FF 25 26 28 29 08 07 27 FF EF
|
|
.byte $F5, $81, $80, $09, $2A, $2B, $FF, $2C, $2D, $FF, $10, $0F, $2E, $19, $F6, $41 ; PRG $335F / CPU $F35F ; CPU:$F363 PRG:3363 F5 81 80 09 2A 2B FF 2C 2D FF 10 0F 2E 19 F6 41
|
|
.byte $80, $FF, $01, $FF, $2F, $31, $32, $30, $17, $16, $FF, $19, $F6, $4D, $80, $33 ; PRG $336F / CPU $F36F ; CPU:$F373 PRG:3373 80 FF 01 FF 2F 31 32 30 17 16 FF 19 F6 4D 80 33
|
|
.byte $18, $34, $35, $1D, $1C, $FF, $17, $1E, $FF, $58, $F6, $93, $C0, $20, $36, $FF ; PRG $337F / CPU $F37F ; CPU:$F383 PRG:3383 18 34 35 1D 1C FF 17 1E FF 58 F6 93 C0 20 36 FF
|
|
.byte $22, $37, $FF, $24, $23, $17, $1E, $58, $F6, $00, $00, $38, $39, $FF, $3A, $3B ; PRG $338F / CPU $F38F ; CPU:$F393 PRG:3393 22 37 FF 24 23 17 1E 58 F6 00 00 38 39 FF 3A 3B
|
|
.byte $FF, $3C, $3D, $3E, $3F, $04, $F6, $00, $00, $FF, $40, $FF, $41, $42, $43, $44 ; PRG $339F / CPU $F39F ; CPU:$F3A3 PRG:33A3 FF 3C 3D 3E 3F 04 F6 00 00 FF 40 FF 41 42 43 44
|
|
.byte $FF, $45, $46, $51, $F7, $20, $00, $FF, $8D, $8A, $8E, $21, $8F, $23, $24, $1E ; PRG $33AF / CPU $F3AF ; CPU:$F3B3 PRG:33B3 FF 45 46 51 F7 20 00 FF 8D 8A 8E 21 8F 23 24 1E
|
|
.byte $17, $DA, $F5, $00, $00, $01, $00, $03, $04, $02, $4A, $4B, $47, $48, $FF, $DA ; PRG $33BF / CPU $F3BF ; CPU:$F3C3 PRG:33C3 17 DA F5 00 00 01 00 03 04 02 4A 4B 47 48 FF DA
|
|
.byte $F5, $00, $00, $01, $00, $03, $04, $02, $4C, $4D, $49, $8C, $FF, $AC, $F6, $83 ; PRG $33CF / CPU $F3CF ; CPU:$F3D3 PRG:33D3 F5 00 00 01 00 03 04 02 4C 4D 49 8C FF AC F6 83
|
|
.byte $00, $01, $FF, $25, $26, $4E, $4F, $48, $47, $27, $FF, $AC, $F6, $83, $00, $01 ; PRG $33DF / CPU $F3DF ; CPU:$F3E3 PRG:33E3 00 01 FF 25 26 4E 4F 48 47 27 FF AC F6 83 00 01
|
|
.byte $FF, $25, $26, $50, $51, $8C, $49, $27, $FF, $2E, $F6, $00, $00, $52, $53, $54 ; PRG $33EF / CPU $F3EF ; CPU:$F3F3 PRG:33F3 FF 25 26 50 51 8C 49 27 FF 2E F6 00 00 52 53 54
|
|
.byte $55, $56, $57, $58, $59, $FF, $FF, $58, $F6, $00, $00, $5A, $5B, $5C, $5D, $5E ; PRG $33FF / CPU $F3FF ; CPU:$F403 PRG:3403 55 56 57 58 59 FF FF 58 F6 00 00 5A 5B 5C 5D 5E
|
|
.byte $5F, $60, $61, $62, $63, $43, $F6, $00, $00, $64, $65, $66, $67, $68, $69, $6A ; PRG $340F / CPU $F40F ; CPU:$F413 PRG:3413 5F 60 61 62 63 43 F6 00 00 64 65 66 67 68 69 6A
|
|
.byte $FF, $FF, $FF, $97, $F6, $00, $00, $6B, $6C, $6D, $6E, $6F, $70, $71, $72, $73 ; PRG $341F / CPU $F41F ; CPU:$F423 PRG:3423 FF FF FF 97 F6 00 00 6B 6C 6D 6E 6F 70 71 72 73
|
|
.byte $FF, $6D, $F6, $00, $00, $74, $75, $76, $77, $78, $79, $FF, $FF, $FF, $FF, $82 ; PRG $342F / CPU $F42F ; CPU:$F433 PRG:3433 FF 6D F6 00 00 74 75 76 77 78 79 FF FF FF FF 82
|
|
.byte $F6, $00, $00, $7A, $7B, $7C, $7D, $7E, $7F, $FF, $FF, $FF, $FF, $04, $F6, $80 ; PRG $343F / CPU $F43F ; CPU:$F443 PRG:3443 F6 00 00 7A 7B 7C 7D 7E 7F FF FF FF FF 04 F6 80
|
|
.byte $C0, $01, $FF, $FF, $80, $81, $82, $83, $FF, $10, $0F, $AC, $F6, $83, $00, $01 ; PRG $344F / CPU $F44F ; CPU:$F453 PRG:3453 C0 01 FF FF 80 81 82 83 FF 10 0F AC F6 83 00 01
|
|
.byte $84, $85, $86, $87, $88, $17, $16, $FF, $FF, $C1, $F6, $8F, $00, $19, $89, $8A ; PRG $345F / CPU $F45F ; CPU:$F463 PRG:3463 84 85 86 87 88 17 16 FF FF C1 F6 8F 00 19 89 8A
|
|
.byte $8B, $1D, $1C, $17, $1E, $FF, $FF, $D6, $F6, $00, $00, $90, $91, $92, $93, $94 ; PRG $346F / CPU $F46F ; CPU:$F473 PRG:3473 8B 1D 1C 17 1E FF FF D6 F6 00 00 90 91 92 93 94
|
|
.byte $95, $96, $E5, $F6, $00, $00, $97, $98, $99, $9A, $9B, $9C, $FF, $F4, $F6, $00 ; PRG $347F / CPU $F47F ; CPU:$F483 PRG:3483 95 96 E5 F6 00 00 97 98 99 9A 9B 9C FF F4 F6 00
|
|
.byte $00, $9D, $FF, $FF, $9F, $A0, $9E, $A1, $F4, $F6, $00, $00, $FF, $A2, $A3, $FF ; PRG $348F / CPU $F48F ; CPU:$F493 PRG:3493 00 9D FF FF 9F A0 9E A1 F4 F6 00 00 FF A2 A3 FF
|
|
.byte $A4, $FF, $A5, $D6, $F6, $06, $00, $FF, $A6, $A7, $A8, $A9, $96, $95, $D6, $F6 ; PRG $349F / CPU $F49F ; CPU:$F4A3 PRG:34A3 A4 FF A5 D6 F6 06 00 FF A6 A7 A8 A9 96 95 D6 F6
|
|
.byte $06, $00, $FF, $AA, $AB, $AC, $AD, $9C, $9B, $03, $F7, $02, $00, $FF, $AE, $FF ; PRG $34AF / CPU $F4AF ; CPU:$F4B3 PRG:34B3 06 00 FF AA AB AC AD 9C 9B 03 F7 02 00 FF AE FF
|
|
.byte $FF, $AF, $B0, $A1, $03, $F7, $02, $00, $B1, $B3, $FF, $B2, $B4, $FF, $A5, $E5 ; PRG $34BF / CPU $F4BF ; CPU:$F4C3 PRG:34C3 FF AF B0 A1 03 F7 02 00 B1 B3 FF B2 B4 FF A5 E5
|
|
.byte $F6, $00, $00, $B5, $FF, $B6, $B7, $B8, $B9, $FF, $E5, $F6, $00, $00, $FF, $FF ; PRG $34CF / CPU $F4CF ; CPU:$F4D3 PRG:34D3 F6 00 00 B5 FF B6 B7 B8 B9 FF E5 F6 00 00 FF FF
|
|
.byte $BA, $BB, $BC, $BD, $B5, $51, $F7, $03, $C0, $F9, $FF, $FA, $8A, $FB, $FC, $24 ; PRG $34DF / CPU $F4DF ; CPU:$F4E3 PRG:34E3 BA BB BC BD B5 51 F7 03 C0 F9 FF FA 8A FB FC 24
|
|
.byte $23, $17, $1E, $D6, $F6, $00, $00, $90, $91, $92, $C2, $C3, $BE, $BF, $D6, $F6 ; PRG $34EF / CPU $F4EF ; CPU:$F4F3 PRG:34F3 23 17 1E D6 F6 00 00 90 91 92 C2 C3 BE BF D6 F6
|
|
.byte $00, $00, $90, $91, $92, $C2, $C4, $C0, $C1, $D6, $F6, $06, $00, $FF, $A6, $A7 ; PRG $34FF / CPU $F4FF ; CPU:$F503 PRG:3503 00 00 90 91 92 C2 C4 C0 C1 D6 F6 06 00 FF A6 A7
|
|
.byte $C5, $C6, $BF, $BE, $D6, $F6, $06, $00, $FF, $A6, $A7, $C7, $A9, $C1, $C0, $E5 ; PRG $350F / CPU $F50F ; CPU:$F513 PRG:3513 C5 C6 BF BE D6 F6 06 00 FF A6 A7 C7 A9 C1 C0 E5
|
|
.byte $F6, $00, $00, $C8, $FF, $C9, $CA, $CB, $CC, $FF, $12, $F7, $00, $00, $FF, $FF ; PRG $351F / CPU $F51F ; CPU:$F523 PRG:3523 F6 00 00 C8 FF C9 CA CB CC FF 12 F7 00 00 FF FF
|
|
.byte $CD, $CE, $CF, $D0, $D1, $12, $F7, $00, $00, $D2, $D3, $D4, $D5, $D6, $FF, $D7 ; PRG $352F / CPU $F52F ; CPU:$F533 PRG:3533 CD CE CF D0 D1 12 F7 00 00 D2 D3 D4 D5 D6 FF D7
|
|
.byte $21, $F7, $00, $00, $D8, $D9, $DA, $DB, $DC, $DD, $DE, $30, $F7, $00, $00, $DF ; PRG $353F / CPU $F53F ; CPU:$F543 PRG:3543 21 F7 00 00 D8 D9 DA DB DC DD DE 30 F7 00 00 DF
|
|
.byte $E0, $E1, $E2, $E3, $FF, $FF, $03, $F7, $00, $00, $FF, $A2, $A3, $FF, $A4, $FF ; PRG $354F / CPU $F54F ; CPU:$F553 PRG:3553 E0 E1 E2 E3 FF FF 03 F7 00 00 FF A2 A3 FF A4 FF
|
|
.byte $E4, $3F, $F7, $00, $00, $F0, $3F, $F7, $00, $00, $F1, $3F, $F7, $00, $00, $F2 ; PRG $355F / CPU $F55F ; CPU:$F563 PRG:3563 E4 3F F7 00 00 F0 3F F7 00 00 F1 3F F7 00 00 F2
|
|
.byte $3F, $F7, $00, $00, $F3, $3F, $F7, $00, $00, $F4, $3F, $F7, $00, $00, $F5, $3F ; PRG $356F / CPU $F56F ; CPU:$F573 PRG:3573 3F F7 00 00 F3 3F F7 00 00 F4 3F F7 00 00 F5 3F
|
|
.byte $F7, $00, $00, $F6, $3F, $F7, $00, $00, $F7, $3F, $F7, $00, $00, $F8, $D6, $F6 ; PRG $357F / CPU $F57F ; CPU:$F583 PRG:3583 F7 00 00 F6 3F F7 00 00 F7 3F F7 00 00 F8 D6 F6
|
|
.byte $04, $00, $FF, $AA, $E5, $E6, $E7, $9C, $E8, $42, $F7, $04, $00, $E9, $EA, $EB ; PRG $358F / CPU $F58F ; CPU:$F593 PRG:3593 04 00 FF AA E5 E6 E7 9C E8 42 F7 04 00 E9 EA EB
|
|
.byte $EC, $ED, $A5, $FF, $58, $F6, $FF, $C0, $39, $38, $FF, $3B, $3A, $FF, $3D, $3C ; PRG $359F / CPU $F59F ; CPU:$F5A3 PRG:35A3 EC ED A5 FF 58 F6 FF C0 39 38 FF 3B 3A FF 3D 3C
|
|
.byte $3F, $3E, $66, $F7, $FF, $C0, $40, $42, $41, $44, $43, $46, $45, $FF, $FF, $FF ; PRG $35AF / CPU $F5AF ; CPU:$F5B3 PRG:35B3 3F 3E 66 F7 FF C0 40 42 41 44 43 46 45 FF FF FF
|
|
.byte $E5, $F6, $FE, $00, $B5, $FF, $B7, $B6, $B9, $B8, $FF, $7B, $F7, $FE, $00, $B5 ; PRG $35BF / CPU $F5BF ; CPU:$F5C3 PRG:35C3 E5 F6 FE 00 B5 FF B7 B6 B9 B8 FF 7B F7 FE 00 B5
|
|
.byte $BB, $BA, $BD, $BC, $FF, $FF, $3F, $F7, $00, $00, $FF, $E3, $FD, $E7, $F0, $EB ; PRG $35CF / CPU $F5CF ; CPU:$F5D3 PRG:35D3 BB BA BD BC FF FF 3F F7 00 00 FF E3 FD E7 F0 EB
|
|
.byte $F8, $EB, $00, $EF, $F0, $F3, $F8, $F3, $00, $FB, $F8, $FB, $00, $04, $00, $AA ; PRG $35DF / CPU $F5DF ; CPU:$F5E3 PRG:35E3 F8 EB 00 EF F0 F3 F8 F3 00 FB F8 FB 00 04 00 AA
|
|
.byte $E3, $FC, $EB, $F8, $EB, $00, $F3, $F0, $F3, $F8, $F3, $00, $FB, $F0, $FB, $F8 ; PRG $35EF / CPU $F5EF ; CPU:$F5F3 PRG:35F3 E3 FC EB F8 EB 00 F3 F0 F3 F8 F3 00 FB F0 FB F8
|
|
.byte $FB, $00, $F7, $08, $AA, $E3, $FB, $E3, $FD, $E6, $0A, $EB, $FA, $EB, $02, $F3 ; PRG $35FF / CPU $F5FF ; CPU:$F603 PRG:3603 FB 00 F7 08 AA E3 FB E3 FD E6 0A EB FA EB 02 F3
|
|
.byte $F8, $F3, $00, $F7, $08, $FB, $F8, $FB, $00, $AA, $E3, $F0, $E3, $FB, $EB, $F4 ; PRG $360F / CPU $F60F ; CPU:$F613 PRG:3613 F8 F3 00 F7 08 FB F8 FB 00 AA E3 F0 E3 FB EB F4
|
|
.byte $EB, $FC, $F3, $F8, $F3, $00, $F5, $F0, $FB, $F8, $FB, $00, $04, $00, $AA, $E3 ; PRG $361F / CPU $F61F ; CPU:$F623 PRG:3623 EB FC F3 F8 F3 00 F5 F0 FB F8 FB 00 04 00 AA E3
|
|
.byte $FC, $EB, $F8, $EB, $00, $EB, $08, $F3, $F6, $F3, $FE, $FB, $F6, $FB, $FE, $04 ; PRG $362F / CPU $F62F ; CPU:$F633 PRG:3633 FC EB F8 EB 00 EB 08 F3 F6 F3 FE FB F6 FB FE 04
|
|
.byte $F8, $04, $00, $AA, $E3, $F0, $E3, $F8, $E3, $00, $EB, $FF, $F3, $FC, $FB, $F8 ; PRG $363F / CPU $F63F ; CPU:$F643 PRG:3643 F8 04 00 AA E3 F0 E3 F8 E3 00 EB FF F3 FC FB F8
|
|
.byte $FB, $00, $04, $F8, $04, $00, $0C, $00, $AA, $E3, $F8, $E3, $00, $EB, $F0, $EB ; PRG $364F / CPU $F64F ; CPU:$F653 PRG:3653 FB 00 04 F8 04 00 0C 00 AA E3 F8 E3 00 EB F0 EB
|
|
.byte $F8, $EB, $00, $F3, $F0, $F3, $F8, $F3, $00, $FB, $F8, $FB, $00, $AA, $E3, $00 ; PRG $365F / CPU $F65F ; CPU:$F663 PRG:3663 F8 EB 00 F3 F0 F3 F8 F3 00 FB F8 FB 00 AA E3 00
|
|
.byte $EB, $08, $EB, $FE, $EB, $06, $F3, $FE, $FB, $FE, $04, $F8, $04, $00, $0C, $F8 ; PRG $366F / CPU $F66F ; CPU:$F673 PRG:3673 EB 08 EB FE EB 06 F3 FE FB FE 04 F8 04 00 0C F8
|
|
.byte $0C, $00, $AA, $E3, $04, $EB, $FC, $EB, $04, $F3, $F8, $F3, $00, $FB, $00, $04 ; PRG $367F / CPU $F67F ; CPU:$F683 PRG:3683 0C 00 AA E3 04 EB FC EB 04 F3 F8 F3 00 FB 00 04
|
|
.byte $F8, $04, $00, $0C, $F8, $0C, $00, $AA, $D3, $08, $DB, $08, $E3, $00, $E3, $08 ; PRG $368F / CPU $F68F ; CPU:$F693 PRG:3693 F8 04 00 0C F8 0C 00 AA D3 08 DB 08 E3 00 E3 08
|
|
.byte $EB, $F8, $EB, $00, $F3, $F8, $F3, $00, $FB, $00, $FB, $08, $AA, $E3, $FB, $EB ; PRG $369F / CPU $F69F ; CPU:$F6A3 PRG:36A3 EB F8 EB 00 F3 F8 F3 00 FB 00 FB 08 AA E3 FB EB
|
|
.byte $F0, $EB, $F8, $EB, $00, $F3, $F8, $F3, $00, $FB, $F8, $FB, $00, $EB, $08, $04 ; PRG $36AF / CPU $F6AF ; CPU:$F6B3 PRG:36B3 F0 EB F8 EB 00 F3 F8 F3 00 FB F8 FB 00 EB 08 04
|
|
.byte $00, $AA, $DC, $F0, $E3, $F8, $E3, $00, $EB, $FC, $F3, $F8, $F3, $00, $FB, $F8 ; PRG $36BF / CPU $F6BF ; CPU:$F6C3 PRG:36C3 00 AA DC F0 E3 F8 E3 00 EB FC F3 F8 F3 00 FB F8
|
|
.byte $FB, $00, $04, $F8, $04, $00, $AA, $E3, $F8, $EB, $F8, $EB, $00, $F3, $F8, $F3 ; PRG $36CF / CPU $F6CF ; CPU:$F6D3 PRG:36D3 FB 00 04 F8 04 00 AA E3 F8 EB F8 EB 00 F3 F8 F3
|
|
.byte $00, $FB, $F8, $FB, $00, $AA, $EB, $FC, $EF, $F4, $F3, $F8, $F3, $00, $FB, $F8 ; PRG $36DF / CPU $F6DF ; CPU:$F6E3 PRG:36E3 00 FB F8 FB 00 AA EB FC EF F4 F3 F8 F3 00 FB F8
|
|
.byte $FB, $00, $EB, $FB, $AA, $EB, $FE, $EB, $00, $EB, $08, $F3, $F8, $F3, $00, $F7 ; PRG $36EF / CPU $F6EF ; CPU:$F6F3 PRG:36F3 FB 00 EB FB AA EB FE EB 00 EB 08 F3 F8 F3 00 F7
|
|
.byte $F4, $FB, $FE, $AA, $E7, $F2, $EB, $FA, $EB, $02, $EF, $F2, $F3, $FA, $F7, $02 ; PRG $36FF / CPU $F6FF ; CPU:$F703 PRG:3703 F4 FB FE AA E7 F2 EB FA EB 02 EF F2 F3 FA F7 02
|
|
.byte $FB, $FA, $AA, $E3, $00, $E3, $08, $EB, $F8, $EB, $00, $F3, $FC, $F3, $04, $FB ; PRG $370F / CPU $F70F ; CPU:$F713 PRG:3713 FB FA AA E3 00 E3 08 EB F8 EB 00 F3 FC F3 04 FB
|
|
.byte $FC, $AA, $DB, $FC, $E3, $FC, $EB, $F8, $EB, $00, $F3, $F8, $F3, $00, $FB, $FB ; PRG $371F / CPU $F71F ; CPU:$F723 PRG:3723 FC AA DB FC E3 FC EB F8 EB 00 F3 F8 F3 00 FB FB
|
|
.byte $AA, $EB, $FF, $F3, $F8, $F3, $00, $FB, $FB, $FB, $03, $04, $F8, $04, $00, $AA ; PRG $372F / CPU $F72F ; CPU:$F733 PRG:3733 AA EB FF F3 F8 F3 00 FB FB FB 03 04 F8 04 00 AA
|
|
.byte $FC, $FC, $AA, $E3, $F0, $EB, $F0, $EB, $F8, $F3, $F8, $F3, $00, $FB, $FA, $FB ; PRG $373F / CPU $F73F ; CPU:$F743 PRG:3743 FC FC AA E3 F0 EB F0 EB F8 F3 F8 F3 00 FB FA FB
|
|
.byte $02, $AA, $DB, $F8, $DB, $00, $E3, $F8, $E3, $00, $EB, $F8, $EB, $00, $F3, $F8 ; PRG $374F / CPU $F74F ; CPU:$F753 PRG:3753 02 AA DB F8 DB 00 E3 F8 E3 00 EB F8 EB 00 F3 F8
|
|
.byte $F3, $00, $FB, $F8, $FB, $00, $AA, $E3, $FB, $EB, $F6, $EB, $FE, $F3, $F8, $F3 ; PRG $375F / CPU $F75F ; CPU:$F763 PRG:3763 F3 00 FB F8 FB 00 AA E3 FB EB F6 EB FE F3 F8 F3
|
|
.byte $00, $FB, $F8, $FB, $00, $04, $F8, $04, $00, $0C, $F8, $AA, $EB, $FD, $F3, $F8 ; PRG $376F / CPU $F76F ; CPU:$F773 PRG:3773 00 FB F8 FB 00 04 F8 04 00 0C F8 AA EB FD F3 F8
|
|
.byte $F3, $00, $FB, $F8, $FB, $00, $04, $F8, $04, $00, $AA, $FF, $00, $FF, $00, $FF ; PRG $377F / CPU $F77F ; CPU:$F783 PRG:3783 F3 00 FB F8 FB 00 04 F8 04 00 AA FF 00 FF 00 FF
|
|
.byte $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF ; PRG $378F / CPU $F78F ; CPU:$F793 PRG:3793 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF
|
|
.byte $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF ; PRG $379F / CPU $F79F ; CPU:$F7A3 PRG:37A3 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF
|
|
.byte $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF ; PRG $37AF / CPU $F7AF ; CPU:$F7B3 PRG:37B3 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF
|
|
.byte $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF ; PRG $37BF / CPU $F7BF ; CPU:$F7C3 PRG:37C3 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF
|
|
.byte $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF ; PRG $37CF / CPU $F7CF ; CPU:$F7D3 PRG:37D3 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF
|
|
.byte $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF ; PRG $37DF / CPU $F7DF ; CPU:$F7E3 PRG:37E3 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF
|
|
.byte $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF ; PRG $37EF / CPU $F7EF ; CPU:$F7F3 PRG:37F3 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF
|
|
.byte $00, $08, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00 ; PRG $37FF / CPU $F7FF ; CPU:$F803 PRG:3803 00 08 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00
|
|
.byte $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00 ; PRG $380F / CPU $F80F ; CPU:$F813 PRG:3813 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00
|
|
.byte $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00 ; PRG $381F / CPU $F81F ; CPU:$F823 PRG:3823 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00
|
|
.byte $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00 ; PRG $382F / CPU $F82F ; CPU:$F833 PRG:3833 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00
|
|
.byte $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00 ; PRG $383F / CPU $F83F ; CPU:$F843 PRG:3843 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00
|
|
.byte $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00 ; PRG $384F / CPU $F84F ; CPU:$F853 PRG:3853 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00
|
|
.byte $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00 ; PRG $385F / CPU $F85F ; CPU:$F863 PRG:3863 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00
|
|
.byte $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00, $FF, $00 ; PRG $386F / CPU $F86F ; CPU:$F873 PRG:3873 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00 FF 00
|
|
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; PRG $387F / CPU $F87F ; CPU:$F883 PRG:3883 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
|
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; PRG $388F / CPU $F88F ; CPU:$F893 PRG:3893 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
|
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; PRG $389F / CPU $F89F ; CPU:$F8A3 PRG:38A3 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
|
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; PRG $38AF / CPU $F8AF ; CPU:$F8B3 PRG:38B3 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
|
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; PRG $38BF / CPU $F8BF ; CPU:$F8C3 PRG:38C3 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
|
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; PRG $38CF / CPU $F8CF ; CPU:$F8D3 PRG:38D3 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
|
.byte $FF ; PRG $38DF / CPU $F8DF ; CPU:$F8E3 PRG:38E3 FF
|
|
AudioEngineUpdate:
|
|
lda #$C0 ; CPU:$F8E4 PRG:38E4 ??
|
|
sta JOY2 ; CPU:$F8E6 PRG:38E6 ??
|
|
lda DmcOutputLevel ; CPU:$F8E8 PRG:38E8 69 FE
|
|
clc ; CPU:$F8EA PRG:38EA B0 02
|
|
adc #$FE ; CPU:$F8EC PRG:38EC A9 00
|
|
bcs Flow_F8EE ; CPU:$F8EE PRG:38EE 85 F0
|
|
lda #$00 ; CPU:$F8F0 PRG:38F0 8D 11 40
|
|
Flow_F8EE:
|
|
sta DmcOutputLevel ; CPU:$F8F3 PRG:38F3 20 39 FA
|
|
sta APUDMCDIRECT ; CPU:$F8F6 PRG:38F6 A9 00
|
|
jsr AudioRoutine_FA39 ; CPU:$F8F8 PRG:38F8 85 FF
|
|
lda #$00 ; CPU:$F8FA PRG:38FA 85 FE
|
|
sta AudioRequestFlags3 ; CPU:$F8FC PRG:38FC 85 FD
|
|
sta AudioRequestFlags2 ; CPU:$F8FE PRG:38FE 60
|
|
sta AudioRequestFlags1 ; CPU:$F8FF PRG:38FF ??
|
|
rts ; CPU:$F901 PRG:3901 ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $38FF-$395F.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
ApuPeriodAndDurationTables:
|
|
.byte $FF, $07, $F0, $00, $69, $00, $00, $00, $D4, $00, $BD, $00, $B2, $00, $A8, $00 ; PRG $38FF / CPU $F8FF ; CPU:$F903 PRG:3903 FF 07 F0 00 69 00 00 00 D4 00 BD 00 B2 00 A8 00
|
|
.byte $9F, $00, $96, $00, $8D, $00, $7E, $00, $70, $01, $AB, $01, $93, $01, $7C, $01 ; PRG $390F / CPU $F90F ; CPU:$F913 PRG:3913 9F 00 96 00 8D 00 7E 00 70 01 AB 01 93 01 7C 01
|
|
.byte $67, $01, $52, $01, $3F, $01, $2D, $01, $1C, $01, $0C, $00, $FD, $00, $EE, $00 ; PRG $391F / CPU $F91F ; CPU:$F923 PRG:3923 67 01 52 01 3F 01 2D 01 1C 01 0C 00 FD 00 EE 00
|
|
.byte $E1, $03, $57, $02, $F9, $02, $A6, $02, $80, $02, $3A, $01, $FC, $01, $C4, $00 ; PRG $392F / CPU $F92F ; CPU:$F933 PRG:3933 E1 03 57 02 F9 02 A6 02 80 02 3A 01 FC 01 C4 00
|
|
.byte $5E, $00, $53, $00, $4F, $00, $4A, $00, $20, $05, $0B, $16, $2C, $58, $21, $06 ; PRG $393F / CPU $F93F ; CPU:$F943 PRG:3943 5E 00 53 00 4F 00 4A 00 20 05 0B 16 2C 58 21 06
|
|
.byte $11, $05, $0A, $14, $28, $0D, $21, $06, $07, $06, $0C, $18, $30, $10, $24, $48 ; PRG $394F / CPU $F94F ; CPU:$F953 PRG:3953 11 05 0A 14 28 0D 21 06 07 06 0C 18 30 10 24 48
|
|
.byte $08 ; PRG $395F / CPU $F95F ; CPU:$F963 PRG:3963 08
|
|
; =============================================================================
|
|
; AudioRoutine_F960
|
|
; CPU address: $F960 PRG offset: $3960
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
AudioRoutine_F960:
|
|
tax ; CPU:$F964 PRG:3964 2A
|
|
ror a ; CPU:$F965 PRG:3965 2A
|
|
txa ; CPU:$F966 PRG:3966 29 07
|
|
rol a ; CPU:$F968 PRG:3968 18
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $3964-$3965.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
AudioTable_F964:
|
|
.byte $2A, $2A ; PRG $3964 / CPU $F964 ; CPU:$F969 PRG:3969 2A 2A
|
|
; =============================================================================
|
|
; AudioRoutine_F966
|
|
; CPU address: $F966 PRG offset: $3966
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
AudioRoutine_F966:
|
|
and #$07 ; CPU:$F96B PRG:396B A8
|
|
clc ; CPU:$F96C PRG:396C B9 48 F9
|
|
adc PitchAdjustment ; CPU:$F96F PRG:396F 60
|
|
tay ; CPU:$F970 PRG:3970 A2 90
|
|
lda $F948,y ; CPU:$F972 PRG:3972 D0 09
|
|
rts ; PRG $396F / CPU $F96F ; CPU:$F974 PRG:3974 A2 90
|
|
; =============================================================================
|
|
; AudioRoutine_F970
|
|
; CPU address: $F970 PRG offset: $3970
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
AudioRoutine_F970:
|
|
ldx #$90 ; CPU:$F976 PRG:3976 D0 0E
|
|
bne Flow_F97D ; CPU:$F978 PRG:3978 A0 7F
|
|
ldx #$90 ; CPU:$F97A PRG:397A 8C 01 40
|
|
bne Flow_F986 ; CPU:$F97D PRG:397D 8E 00 40
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $3978-$3979.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
AudioTable_F978:
|
|
.byte $A0, $7F ; PRG $3978 / CPU $F978 ; CPU:$F980 PRG:3980 A0 7F
|
|
; =============================================================================
|
|
; ConfigurePulse1
|
|
; CPU address: $F97A PRG offset: $397A
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
ConfigurePulse1:
|
|
sty APUPULSE1SWEEP ; CPU:$F982 PRG:3982 ??
|
|
Flow_F97D:
|
|
stx APUPULSE1CTRL ; CPU:$F984 PRG:3984 ??
|
|
rts ; CPU:$F986 PRG:3986 8E 04 40
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $3981-$3982.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
AudioTable_F981:
|
|
.byte $A0, $7F ; PRG $3981 / CPU $F981 ; CPU:$F989 PRG:3989 A0 7F
|
|
; =============================================================================
|
|
; ConfigurePulse2
|
|
; CPU address: $F983 PRG offset: $3983
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
ConfigurePulse2:
|
|
sty APUPULSE2SWEEP ; CPU:$F98B PRG:398B ??
|
|
Flow_F986:
|
|
stx APUPULSE2CTRL ; CPU:$F98D PRG:398D ??
|
|
rts ; PRG $3989 / CPU $F989 ; CPU:$F98F PRG:398F ??
|
|
; =============================================================================
|
|
; AudioRoutine_F98A
|
|
; CPU address: $F98A PRG offset: $398A
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
AudioRoutine_F98A:
|
|
sty AudioChannelControl ; CPU:$F991 PRG:3991 ??
|
|
stx SoundEffectTimer ; CPU:$F993 PRG:3993 A2 00
|
|
bne AudioRoutine_F993 ; CPU:$F995 PRG:3995 A8
|
|
|
|
; =============================================================================
|
|
; AudioRoutine_F990
|
|
; CPU address: $F990 PRG offset: $3990
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
AudioRoutine_F990:
|
|
jsr ConfigurePulse1 ; CPU:$F996 PRG:3996 B9 01 F9
|
|
|
|
; =============================================================================
|
|
; AudioRoutine_F993
|
|
; CPU address: $F993 PRG offset: $3993
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
AudioRoutine_F993:
|
|
ldx #$00 ; CPU:$F999 PRG:3999 F0 0B
|
|
tay ; CPU:$F99B PRG:399B 9D 02 40
|
|
lda $F901,y ; CPU:$F99E PRG:399E B9 00 F9
|
|
beq Flow_F9A6 ; CPU:$F9A1 PRG:39A1 09 08
|
|
sta APUPULSE1TIMERLO,x ; CPU:$F9A3 PRG:39A3 9D 03 40
|
|
lda $F900,y ; CPU:$F9A6 PRG:39A6 60
|
|
ora #$08 ; CPU:$F9A7 PRG:39A7 ??
|
|
sta APUPULSE1TIMERHI,x ; CPU:$F9A9 PRG:39A9 ??
|
|
Flow_F9A6:
|
|
rts ; CPU:$F9AB PRG:39AB ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $39A7-$39A9.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
AudioTable_F9A7:
|
|
.byte $20, $83, $F9 ; PRG $39A7 / CPU $F9A7 ; CPU:$F9AD PRG:39AD 20 83 F9
|
|
; =============================================================================
|
|
; AudioRoutine_F9AA
|
|
; CPU address: $F9AA PRG offset: $39AA
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
AudioRoutine_F9AA:
|
|
ldx #$04 ; CPU:$F9B0 PRG:39B0 D0 E3
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $39AC-$39AD.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
AudioTable_F9AC:
|
|
.byte $D0, $E7 ; PRG $39AC / CPU $F9AC ; CPU:$F9B2 PRG:39B2 D0 E7
|
|
; =============================================================================
|
|
; AudioRoutine_F9AE
|
|
; CPU address: $F9AE PRG offset: $39AE
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
AudioRoutine_F9AE:
|
|
ldx #$08 ; CPU:$F9B4 PRG:39B4 A0 1C
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $39B0-$39B1.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
AudioTable_F9B0:
|
|
.byte $D0, $E3 ; PRG $39B0 / CPU $F9B0 ; CPU:$F9B6 PRG:39B6 D0 E3
|
|
; =============================================================================
|
|
; AudioRoutine_F9B2
|
|
; CPU address: $F9B2 PRG offset: $39B2
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
AudioRoutine_F9B2:
|
|
sty AudioChannelControl ; CPU:$F9B8 PRG:39B8 8C 08 40
|
|
ldy #$1C ; CPU:$F9BB PRG:39BB 8D 0A 40
|
|
|
|
; =============================================================================
|
|
; ConfigureTriangleChannel
|
|
; CPU address: $F9B6 PRG offset: $39B6
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
ConfigureTriangleChannel:
|
|
stx SoundEffectTimer ; CPU:$F9BE PRG:39BE A9 08
|
|
sty APUTRIANGLECTRL ; CPU:$F9C0 PRG:39C0 8D 0B 40
|
|
sta APUTRIANGLETIMERLO ; CPU:$F9C3 PRG:39C3 A5 F0
|
|
lda #$08 ; CPU:$F9C5 PRG:39C5 18
|
|
sta APUTRIANGLETIMERHI ; CPU:$F9C6 PRG:39C6 69 C2
|
|
lda DmcOutputLevel ; CPU:$F9C8 PRG:39C8 B0 02
|
|
clc ; CPU:$F9CA PRG:39CA A9 00
|
|
adc #$C2 ; CPU:$F9CC PRG:39CC 85 F0
|
|
bcs Flow_F9CC ; CPU:$F9CE PRG:39CE 60
|
|
lda #$00 ; CPU:$F9CF PRG:39CF A9 10
|
|
Flow_F9CC:
|
|
sta DmcOutputLevel ; CPU:$F9D1 PRG:39D1 8D F8 07
|
|
rts ; PRG $39CE / CPU $F9CE ; CPU:$F9D4 PRG:39D4 A9 06
|
|
Flow_F9CF:
|
|
lda #$10 ; CPU:$F9D6 PRG:39D6 20 93 F9
|
|
sta $07F8 ; CPU:$F9D9 PRG:39D9 A2 96
|
|
lda #$06 ; CPU:$F9DB PRG:39DB A0 84
|
|
jsr AudioRoutine_F993 ; CPU:$F9DD PRG:39DD AD F8 07
|
|
Flow_F9D9:
|
|
ldx #$96 ; CPU:$F9E0 PRG:39E0 C9 0D
|
|
ldy #$84 ; CPU:$F9E2 PRG:39E2 B0 02
|
|
lda $07F8 ; CPU:$F9E4 PRG:39E4 A0 8D
|
|
cmp #$0D ; CPU:$F9E6 PRG:39E6 C9 0C
|
|
bcs Flow_F9E6 ; CPU:$F9E8 PRG:39E8 B0 04
|
|
ldy #$8D ; CPU:$F9EA PRG:39EA 4A
|
|
Flow_F9E6:
|
|
cmp #$0C ; CPU:$F9EB PRG:39EB 09 90
|
|
bcs Flow_F9EE ; CPU:$F9ED PRG:39ED AA
|
|
lsr a ; CPU:$F9EE PRG:39EE 20 7A F9
|
|
ora #$90 ; CPU:$F9F1 PRG:39F1 CE F8 07
|
|
tax ; CPU:$F9F4 PRG:39F4 D0 51
|
|
Flow_F9EE:
|
|
jsr ConfigurePulse1 ; CPU:$F9F6 PRG:39F6 20 70 F9
|
|
dec $07F8 ; CPU:$F9F9 PRG:39F9 D0 4C
|
|
bne Flow_FA47 ; CPU:$F9FB PRG:39FB A2 12
|
|
jsr AudioRoutine_F970 ; CPU:$F9FD PRG:39FD A9 1C
|
|
bne Flow_FA47 ; CPU:$F9FF PRG:39FF 20 8A F9
|
|
Flow_F9FB:
|
|
ldx #$12 ; CPU:$FA02 PRG:3A02 A9 0A
|
|
lda #$1C ; CPU:$FA04 PRG:3A04 85 F4
|
|
jsr AudioRoutine_F98A ; CPU:$FA06 PRG:3A06 A2 5A
|
|
lda #$0A ; CPU:$FA08 PRG:3A08 A0 8C
|
|
sta SoundEffectPhase ; CPU:$FA0A PRG:3A0A A5 F3
|
|
Flow_FA06:
|
|
ldx #$5A ; CPU:$FA0C PRG:3A0C C9 0F
|
|
ldy #$8C ; CPU:$FA0E PRG:3A0E B0 08
|
|
lda SoundEffectTimer ; CPU:$FA10 PRG:3A10 A0 8D
|
|
cmp #$0F ; CPU:$FA12 PRG:3A12 C9 0A
|
|
bcs Flow_FA18 ; CPU:$FA14 PRG:3A14 B0 12
|
|
ldy #$8D ; CPU:$FA16 PRG:3A16 D0 0D
|
|
cmp #$0A ; CPU:$FA18 PRG:3A18 D0 07
|
|
bcs Flow_FA28 ; CPU:$FA1A PRG:3A1A A9 18
|
|
bne Flow_FA25 ; CPU:$FA1C PRG:3A1C 20 93 F9
|
|
Flow_FA18:
|
|
bne Flow_FA21 ; CPU:$FA1F PRG:3A1F D0 07
|
|
lda #$18 ; CPU:$FA21 PRG:3A21 C6 F4
|
|
jsr AudioRoutine_F993 ; CPU:$FA23 PRG:3A23 A5 F4
|
|
bne Flow_FA28 ; CPU:$FA25 PRG:3A25 09 50
|
|
Flow_FA21:
|
|
dec SoundEffectPhase ; CPU:$FA27 PRG:3A27 AA
|
|
lda SoundEffectPhase ; CPU:$FA28 PRG:3A28 20 7A F9
|
|
Flow_FA25:
|
|
ora #$50 ; CPU:$FA2B PRG:3A2B C6 F3
|
|
tax ; CPU:$FA2D PRG:3A2D D0 07
|
|
Flow_FA28:
|
|
jsr ConfigurePulse1 ; CPU:$FA2F PRG:3A2F 20 70 F9
|
|
Flow_FA2B:
|
|
dec SoundEffectTimer ; CPU:$FA32 PRG:3A32 A9 00
|
|
bne Flow_FA36 ; CPU:$FA34 PRG:3A34 85 F1
|
|
Flow_FA2F:
|
|
jsr AudioRoutine_F970 ; CPU:$FA36 PRG:3A36 4C 7A FA
|
|
lda #$00 ; CPU:$FA39 PRG:3A39 A6 FA
|
|
sta AudioChannelControl ; CPU:$FA3B PRG:3A3B D0 3D
|
|
Flow_FA36:
|
|
jmp Flow_FA7A ; CPU:$FA3D PRG:3A3D AE F8 07
|
|
|
|
; =============================================================================
|
|
; AudioRoutine_FA39
|
|
; CPU address: $FA39 PRG offset: $3A39
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
AudioRoutine_FA39:
|
|
ldx AudioSequenceOffset ; CPU:$FA40 PRG:3A40 D0 97
|
|
bne Flow_FA7A ; CPU:$FA42 PRG:3A42 A5 FF
|
|
ldx $07F8 ; CPU:$FA44 PRG:3A44 4A
|
|
bne Flow_F9D9 ; CPU:$FA45 PRG:3A45 B0 88
|
|
lda AudioRequestFlags3 ; CPU:$FA47 PRG:3A47 A4 FF
|
|
lsr a ; CPU:$FA49 PRG:3A49 84 00
|
|
bcs Flow_F9CF ; CPU:$FA4B PRG:3A4B A5 F1
|
|
Flow_FA47:
|
|
ldy AudioRequestFlags3 ; CPU:$FA4D PRG:3A4D 4A
|
|
sty Zp00 ; CPU:$FA4E PRG:3A4E 46 FF
|
|
lda AudioChannelControl ; CPU:$FA50 PRG:3A50 4A
|
|
lsr a ; CPU:$FA51 PRG:3A51 B0 B3
|
|
lsr AudioRequestFlags3 ; CPU:$FA53 PRG:3A53 46 FF
|
|
lsr a ; CPU:$FA55 PRG:3A55 B0 A4
|
|
bcs Flow_FA06 ; CPU:$FA57 PRG:3A57 4A
|
|
lsr AudioRequestFlags3 ; CPU:$FA58 PRG:3A58 B0 2D
|
|
bcs Flow_F9FB ; CPU:$FA5A PRG:3A5A 46 FF
|
|
lsr a ; CPU:$FA5C PRG:3A5C B0 22
|
|
bcs Flow_FA87 ; CPU:$FA5E PRG:3A5E 4A
|
|
lsr AudioRequestFlags3 ; CPU:$FA5F PRG:3A5F B0 65
|
|
bcs Flow_FA80 ; CPU:$FA61 PRG:3A61 46 FF
|
|
lsr a ; CPU:$FA63 PRG:3A63 B0 56
|
|
bcs Flow_FAC6 ; CPU:$FA65 PRG:3A65 4A
|
|
lsr AudioRequestFlags3 ; CPU:$FA66 PRG:3A66 B0 35
|
|
bcs Flow_FABB ; CPU:$FA68 PRG:3A68 46 FF
|
|
lsr a ; CPU:$FA6A PRG:3A6A B0 2A
|
|
bcs Flow_FA9D ; CPU:$FA6C PRG:3A6C 4A
|
|
lsr AudioRequestFlags3 ; CPU:$FA6D PRG:3A6D B0 61
|
|
bcs Flow_FA96 ; CPU:$FA6F PRG:3A6F 46 FF
|
|
lsr a ; CPU:$FA71 PRG:3A71 B0 56
|
|
bcs Flow_FAD0 ; CPU:$FA73 PRG:3A73 4A
|
|
lsr AudioRequestFlags3 ; CPU:$FA74 PRG:3A74 B0 07
|
|
bcs Flow_FAC9 ; CPU:$FA76 PRG:3A76 46 FF
|
|
lsr a ; CPU:$FA78 PRG:3A78 B0 6B
|
|
bcs Flow_FA7D ; CPU:$FA7A PRG:3A7A 4C C1 FB
|
|
lsr AudioRequestFlags3 ; CPU:$FA7D PRG:3A7D 4C F4 FA
|
|
bcs Flow_FAE5 ; CPU:$FA80 PRG:3A80 A2 07
|
|
Flow_FA7A:
|
|
jmp Flow_FBC1 ; CPU:$FA82 PRG:3A82 A9 7F
|
|
Flow_FA7D:
|
|
jmp Flow_FAF4 ; CPU:$FA84 PRG:3A84 20 B2 F9
|
|
Flow_FA80:
|
|
ldx #$07 ; CPU:$FA87 PRG:3A87 A5 F0
|
|
lda #$7F ; CPU:$FA89 PRG:3A89 18
|
|
jsr AudioRoutine_F9B2 ; CPU:$FA8A PRG:3A8A 69 0F
|
|
Flow_FA87:
|
|
lda DmcOutputLevel ; CPU:$FA8C PRG:3A8C 85 F0
|
|
clc ; CPU:$FA8E PRG:3A8E A9 90
|
|
adc #$0F ; CPU:$FA90 PRG:3A90 8D 00 40
|
|
sta DmcOutputLevel ; CPU:$FA93 PRG:3A93 4C 2B FA
|
|
lda #$90 ; CPU:$FA96 PRG:3A96 A2 15
|
|
sta APUPULSE1CTRL ; CPU:$FA98 PRG:3A98 A9 47
|
|
jmp Flow_FA2B ; CPU:$FA9A PRG:3A9A 20 B2 F9
|
|
Flow_FA96:
|
|
ldx #$15 ; CPU:$FA9D PRG:3A9D A5 F3
|
|
lda #$47 ; CPU:$FA9F PRG:3A9F C9 10
|
|
jsr AudioRoutine_F9B2 ; CPU:$FAA1 PRG:3AA1 90 07
|
|
Flow_FA9D:
|
|
lda SoundEffectTimer ; CPU:$FAA3 PRG:3AA3 D0 E2
|
|
cmp #$10 ; CPU:$FAA5 PRG:3AA5 A9 02
|
|
bcc Flow_FAAA ; CPU:$FAA7 PRG:3AA7 20 93 F9
|
|
bne Flow_FA87 ; CPU:$FAAA PRG:3AAA A0 84
|
|
lda #$02 ; CPU:$FAAC PRG:3AAC A2 96
|
|
jsr AudioRoutine_F993 ; CPU:$FAAE PRG:3AAE A5 F3
|
|
Flow_FAAA:
|
|
ldy #$84 ; CPU:$FAB0 PRG:3AB0 C9 0C
|
|
Flow_FAAC:
|
|
ldx #$96 ; CPU:$FAB2 PRG:3AB2 B0 04
|
|
lda SoundEffectTimer ; CPU:$FAB4 PRG:3AB4 4A
|
|
cmp #$0C ; CPU:$FAB5 PRG:3AB5 09 90
|
|
bcs Flow_FAB8 ; CPU:$FAB7 PRG:3AB7 AA
|
|
lsr a ; CPU:$FAB8 PRG:3AB8 4C 28 FA
|
|
ora #$90 ; CPU:$FABB PRG:3ABB A2 05
|
|
tax ; CPU:$FABD PRG:3ABD A9 6A
|
|
Flow_FAB8:
|
|
jmp Flow_FA28 ; CPU:$FABF PRG:3ABF 84 F1
|
|
Flow_FABB:
|
|
ldx #$05 ; CPU:$FAC1 PRG:3AC1 A0 14
|
|
lda #$6A ; CPU:$FAC3 PRG:3AC3 20 B6 F9
|
|
sty AudioChannelControl ; CPU:$FAC6 PRG:3AC6 4C 2B FA
|
|
ldy #$14 ; CPU:$FAC9 PRG:3AC9 A2 22
|
|
jsr ConfigureTriangleChannel ; CPU:$FACB PRG:3ACB A9 6A
|
|
Flow_FAC6:
|
|
jmp Flow_FA2B ; CPU:$FACD PRG:3ACD 20 B2 F9
|
|
Flow_FAC9:
|
|
ldx #$22 ; CPU:$FAD0 PRG:3AD0 A5 F3
|
|
lda #$6A ; CPU:$FAD2 PRG:3AD2 C9 1B
|
|
jsr AudioRoutine_F9B2 ; CPU:$FAD4 PRG:3AD4 B0 B1
|
|
Flow_FAD0:
|
|
lda SoundEffectTimer ; CPU:$FAD6 PRG:3AD6 C9 18
|
|
cmp #$1B ; CPU:$FAD8 PRG:3AD8 90 07
|
|
bcs Flow_FA87 ; CPU:$FADA PRG:3ADA D0 DC
|
|
cmp #$18 ; CPU:$FADC PRG:3ADC A9 02
|
|
bcc Flow_FAE1 ; CPU:$FADE PRG:3ADE 20 93 F9
|
|
bne Flow_FAB8 ; CPU:$FAE1 PRG:3AE1 A0 85
|
|
lda #$02 ; CPU:$FAE3 PRG:3AE3 D0 C7
|
|
jsr AudioRoutine_F993 ; CPU:$FAE5 PRG:3AE5 A2 FF
|
|
Flow_FAE1:
|
|
ldy #$85 ; CPU:$FAE7 PRG:3AE7 A9 6A
|
|
bne Flow_FAAC ; CPU:$FAE9 PRG:3AE9 84 F1
|
|
Flow_FAE5:
|
|
ldx #$FF ; CPU:$FAEB PRG:3AEB A0 14
|
|
lda #$6A ; CPU:$FAED PRG:3AED 20 B6 F9
|
|
sty AudioChannelControl ; CPU:$FAF0 PRG:3AF0 A9 00
|
|
ldy #$14 ; CPU:$FAF2 PRG:3AF2 85 F4
|
|
jsr ConfigureTriangleChannel ; CPU:$FAF4 PRG:3AF4 A5 F3
|
|
lda #$00 ; CPU:$FAF6 PRG:3AF6 C9 F8
|
|
sta SoundEffectPhase ; CPU:$FAF8 PRG:3AF8 90 0D
|
|
Flow_FAF4:
|
|
lda SoundEffectTimer ; CPU:$FAFA PRG:3AFA D0 3D
|
|
cmp #$F8 ; CPU:$FAFC PRG:3AFC A2 B1
|
|
bcc Flow_FB07 ; CPU:$FAFE PRG:3AFE A0 9D
|
|
bne Flow_FB39 ; CPU:$FB00 PRG:3B00 A9 30
|
|
ldx #$B1 ; CPU:$FB02 PRG:3B02 20 90 F9
|
|
ldy #$9D ; CPU:$FB05 PRG:3B05 D0 2D
|
|
lda #$30 ; CPU:$FB07 PRG:3B07 46 FF
|
|
jsr AudioRoutine_F990 ; CPU:$FB09 PRG:3B09 B0 03
|
|
bne Flow_FB34 ; CPU:$FB0B PRG:3B0B 4C 2F FA
|
|
Flow_FB07:
|
|
lsr AudioRequestFlags3 ; CPU:$FB0E PRG:3B0E A5 00
|
|
bcs Flow_FB0E ; CPU:$FB10 PRG:3B10 29 80
|
|
jmp Flow_FA2F ; CPU:$FB12 PRG:3B12 D0 07
|
|
Flow_FB0E:
|
|
lda Zp00 ; CPU:$FB14 PRG:3B14 A0 9D
|
|
and #$80 ; CPU:$FB16 PRG:3B16 8C 01 40
|
|
bne Flow_FB1B ; CPU:$FB19 PRG:3B19 D0 19
|
|
ldy #$9D ; CPU:$FB1B PRG:3B1B A4 F4
|
|
sty APUPULSE1SWEEP ; CPU:$FB1D PRG:3B1D 85 F4
|
|
bne Flow_FB34 ; CPU:$FB1F PRG:3B1F 98
|
|
Flow_FB1B:
|
|
ldy SoundEffectPhase ; CPU:$FB20 PRG:3B20 45 F4
|
|
sta SoundEffectPhase ; CPU:$FB22 PRG:3B22 F0 10
|
|
tya ; CPU:$FB24 PRG:3B24 A5 F3
|
|
eor SoundEffectPhase ; CPU:$FB26 PRG:3B26 C9 A0
|
|
beq Flow_FB34 ; CPU:$FB28 PRG:3B28 B0 05
|
|
lda SoundEffectTimer ; CPU:$FB2A PRG:3B2A A9 46
|
|
cmp #$A0 ; CPU:$FB2C PRG:3B2C 20 93 F9
|
|
bcs Flow_FB2F ; CPU:$FB2F PRG:3B2F A0 A5
|
|
lda #$46 ; CPU:$FB31 PRG:3B31 8C 01 40
|
|
jsr AudioRoutine_F993 ; CPU:$FB34 PRG:3B34 A2 B1
|
|
Flow_FB2F:
|
|
ldy #$A5 ; CPU:$FB36 PRG:3B36 8E 00 40
|
|
sty APUPULSE1SWEEP ; CPU:$FB39 PRG:3B39 4C 2B FA
|
|
Flow_FB34:
|
|
ldx #$B1 ; CPU:$FB3C PRG:3B3C 84 F2
|
|
stx APUPULSE1CTRL ; CPU:$FB3E PRG:3B3E A9 18
|
|
Flow_FB39:
|
|
jmp Flow_FA2B ; CPU:$FB40 PRG:3B40 85 F5
|
|
Flow_FB3C:
|
|
sty ActiveSoundEffect ; CPU:$FB42 PRG:3B42 A2 81
|
|
lda #$18 ; CPU:$FB44 PRG:3B44 20 81 F9
|
|
sta Pulse2EffectTimer ; CPU:$FB47 PRG:3B47 A9 BD
|
|
ldx #$81 ; CPU:$FB49 PRG:3B49 D0 66
|
|
jsr $F981 ; CPU:$FB4B PRG:3B4B A5 F5
|
|
lda #$BD ; CPU:$FB4D PRG:3B4D C9 16
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $3B49-$3B4A.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
AudioTable_FB49:
|
|
.byte $D0, $66 ; PRG $3B49 / CPU $FB49 ; CPU:$FB4F PRG:3B4F D0 66
|
|
Flow_FB4B:
|
|
lda Pulse2EffectTimer ; CPU:$FB51 PRG:3B51 A9 B2
|
|
cmp #$16 ; CPU:$FB53 PRG:3B53 D0 5C
|
|
bne Flow_FB55 ; CPU:$FB55 PRG:3B55 C9 13
|
|
Flow_FB51:
|
|
lda #$B2 ; CPU:$FB57 PRG:3B57 D0 07
|
|
bne Flow_FBB1 ; CPU:$FB59 PRG:3B59 A2 82
|
|
Flow_FB55:
|
|
cmp #$13 ; CPU:$FB5B PRG:3B5B 20 81 F9
|
|
bne Flow_FB60 ; CPU:$FB5E PRG:3B5E D0 F1
|
|
ldx #$82 ; CPU:$FB60 PRG:3B60 C9 0C
|
|
jsr $F981 ; CPU:$FB62 PRG:3B62 D0 04
|
|
bne Flow_FB51 ; CPU:$FB64 PRG:3B64 A9 E1
|
|
Flow_FB60:
|
|
cmp #$0C ; CPU:$FB66 PRG:3B66 D0 49
|
|
bne Flow_FB68 ; CPU:$FB68 PRG:3B68 C9 0A
|
|
lda #$E1 ; CPU:$FB6A PRG:3B6A D0 42
|
|
bne Flow_FBB1 ; CPU:$FB6C PRG:3B6C A2 84
|
|
Flow_FB68:
|
|
cmp #$0A ; CPU:$FB6E PRG:3B6E 20 81 F9
|
|
bne Flow_FBAE ; CPU:$FB71 PRG:3B71 A9 FD
|
|
ldx #$84 ; CPU:$FB73 PRG:3B73 D0 3C
|
|
jsr $F981 ; CPU:$FB75 PRG:3B75 84 F2
|
|
lda #$FD ; CPU:$FB77 PRG:3B77 A9 18
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $3B73-$3B74.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
AudioTable_FB73:
|
|
.byte $D0, $3C ; PRG $3B73 / CPU $FB73 ; CPU:$FB79 PRG:3B79 D0 3C
|
|
Flow_FB75:
|
|
sty ActiveSoundEffect ; CPU:$FB7B PRG:3B7B A2 82
|
|
lda #$18 ; CPU:$FB7D PRG:3B7D 20 81 F9
|
|
sta Pulse2EffectTimer ; CPU:$FB80 PRG:3B80 A9 63
|
|
ldx #$82 ; CPU:$FB82 PRG:3B82 D0 2D
|
|
jsr $F981 ; CPU:$FB84 PRG:3B84 A5 F5
|
|
lda #$63 ; CPU:$FB86 PRG:3B86 C9 16
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $3B82-$3B83.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
AudioTable_FB82:
|
|
.byte $D0, $2D ; PRG $3B82 / CPU $FB82 ; CPU:$FB88 PRG:3B88 D0 2D
|
|
Flow_FB84:
|
|
lda Pulse2EffectTimer ; CPU:$FB8A PRG:3B8A A9 5E
|
|
cmp #$16 ; CPU:$FB8C PRG:3B8C D0 23
|
|
bne Flow_FB8E ; CPU:$FB8E PRG:3B8E C9 10
|
|
lda #$5E ; CPU:$FB90 PRG:3B90 D0 0B
|
|
bne Flow_FBB1 ; CPU:$FB92 PRG:3B92 A2 82
|
|
Flow_FB8E:
|
|
cmp #$10 ; CPU:$FB94 PRG:3B94 A0 85
|
|
bne Flow_FB9D ; CPU:$FB96 PRG:3B96 20 83 F9
|
|
ldx #$82 ; CPU:$FB99 PRG:3B99 A9 89
|
|
ldy #$85 ; CPU:$FB9B PRG:3B9B D0 14
|
|
jsr ConfigurePulse2 ; CPU:$FB9D PRG:3B9D C9 0F
|
|
lda #$89 ; CPU:$FB9F PRG:3B9F D0 04
|
|
bne Flow_FBB1 ; CPU:$FBA1 PRG:3BA1 A2 84
|
|
Flow_FB9D:
|
|
cmp #$0F ; CPU:$FBA3 PRG:3BA3 D0 06
|
|
bne Flow_FBA5 ; CPU:$FBA5 PRG:3BA5 C9 0C
|
|
ldx #$84 ; CPU:$FBA7 PRG:3BA7 D0 05
|
|
bne Flow_FBAB ; CPU:$FBA9 PRG:3BA9 A2 82
|
|
Flow_FBA5:
|
|
cmp #$0C ; CPU:$FBAB PRG:3BAB 20 81 F9
|
|
bne Flow_FBAE ; CPU:$FBAE PRG:3BAE 4C DC FC
|
|
ldx #$82 ; CPU:$FBB1 PRG:3BB1 A0 08
|
|
Flow_FBAB:
|
|
jsr $F981 ; CPU:$FBB3 PRG:3BB3 8C 07 40
|
|
Flow_FBAE:
|
|
jmp Flow_FCDC ; CPU:$FBB6 PRG:3BB6 8D 06 40
|
|
Flow_FBB1:
|
|
ldy #$08 ; CPU:$FBB9 PRG:3BB9 D0 F3
|
|
sty APUPULSE2TIMERHI ; CPU:$FBBB PRG:3BBB 4C 3C FB
|
|
sta APUPULSE2TIMERLO ; CPU:$FBBE PRG:3BBE 4C 4B FB
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $3BB9-$3BBA.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
AudioTable_FBB9:
|
|
.byte $D0, $F3 ; PRG $3BB9 / CPU $FBB9 ; CPU:$FBC1 PRG:3BC1 D0 F3
|
|
Flow_FBBB:
|
|
jmp Flow_FB3C ; CPU:$FBC3 PRG:3BC3 A5 F2
|
|
Flow_FBBE:
|
|
jmp Flow_FB4B ; CPU:$FBC5 PRG:3BC5 A6 FB
|
|
Flow_FBC1:
|
|
ldy AudioRequestFlags2 ; CPU:$FBC7 PRG:3BC7 D0 2D
|
|
lda ActiveSoundEffect ; CPU:$FBC9 PRG:3BC9 4A
|
|
ldx AudioStreamPosition ; CPU:$FBCA PRG:3BCA B0 F2
|
|
bne Flow_FBF6 ; CPU:$FBCC PRG:3BCC 46 FE
|
|
lsr a ; CPU:$FBCE PRG:3BCE B0 EB
|
|
bcs Flow_FBBE ; CPU:$FBD0 PRG:3BD0 4A
|
|
lsr AudioRequestFlags2 ; CPU:$FBD1 PRG:3BD1 B0 B1
|
|
bcs Flow_FBBB ; CPU:$FBD3 PRG:3BD3 46 FE
|
|
lsr a ; CPU:$FBD5 PRG:3BD5 B0 9E
|
|
bcs Flow_FB84 ; CPU:$FBD7 PRG:3BD7 4A
|
|
lsr AudioRequestFlags2 ; CPU:$FBD8 PRG:3BD8 B0 31
|
|
bcs Flow_FB75 ; CPU:$FBDA PRG:3BDA 46 FE
|
|
lsr a ; CPU:$FBDC PRG:3BDC B0 21
|
|
bcs Flow_FC0B ; CPU:$FBDE PRG:3BDE 4A
|
|
lsr AudioRequestFlags2 ; CPU:$FBDF PRG:3BDF B0 4A
|
|
bcs Flow_FBFF ; CPU:$FBE1 PRG:3BE1 46 FE
|
|
lsr a ; CPU:$FBE3 PRG:3BE3 B0 3A
|
|
bcs Flow_FC2B ; CPU:$FBE5 PRG:3BE5 4A
|
|
lsr AudioRequestFlags2 ; CPU:$FBE6 PRG:3BE6 B0 75
|
|
bcs Flow_FC1F ; CPU:$FBE8 PRG:3BE8 46 FE
|
|
lsr a ; CPU:$FBEA PRG:3BEA B0 65
|
|
bcs Flow_FC5D ; CPU:$FBEC PRG:3BEC 4A
|
|
lsr AudioRequestFlags2 ; CPU:$FBED PRG:3BED 46 FE
|
|
bcs Flow_FC51 ; CPU:$FBEF PRG:3BEF 4A
|
|
lsr a ; CPU:$FBF0 PRG:3BF0 B0 0A
|
|
lsr AudioRequestFlags2 ; CPU:$FBF2 PRG:3BF2 46 FE
|
|
lsr a ; CPU:$FBF4 PRG:3BF4 B0 03
|
|
bcs Flow_FBFC ; CPU:$FBF6 PRG:3BF6 4C E4 FC
|
|
lsr AudioRequestFlags2 ; CPU:$FBF9 PRG:3BF9 4C 9E FC
|
|
bcs Flow_FBF9 ; CPU:$FBFC PRG:3BFC 4C B4 FC
|
|
Flow_FBF6:
|
|
jmp Flow_FCE4 ; CPU:$FBFF PRG:3BFF 84 F2
|
|
Flow_FBF9:
|
|
jmp Flow_FC9E ; CPU:$FC01 PRG:3C01 A9 14
|
|
Flow_FBFC:
|
|
jmp Flow_FCB4 ; CPU:$FC03 PRG:3C03 85 F5
|
|
Flow_FBFF:
|
|
sty ActiveSoundEffect ; CPU:$FC05 PRG:3C05 A0 10
|
|
lda #$14 ; CPU:$FC07 PRG:3C07 A9 54
|
|
sta Pulse2EffectTimer ; CPU:$FC09 PRG:3C09 D0 38
|
|
ldy #$10 ; CPU:$FC0B PRG:3C0B A5 F5
|
|
lda #$54 ; CPU:$FC0D PRG:3C0D C9 13
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $3C09-$3C0A.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
AudioTable_FC09:
|
|
.byte $D0, $38 ; PRG $3C09 / CPU $FC09 ; CPU:$FC0F PRG:3C0F D0 38
|
|
Flow_FC0B:
|
|
lda Pulse2EffectTimer ; CPU:$FC11 PRG:3C11 A9 50
|
|
cmp #$13 ; CPU:$FC13 PRG:3C13 D0 31
|
|
bne Flow_FC15 ; CPU:$FC15 PRG:3C15 C9 06
|
|
lda #$50 ; CPU:$FC17 PRG:3C17 D0 35
|
|
bne Flow_FC46 ; CPU:$FC19 PRG:3C19 A0 0C
|
|
Flow_FC15:
|
|
cmp #$06 ; CPU:$FC1B PRG:3C1B A9 6A
|
|
bne Flow_FC4E ; CPU:$FC1D PRG:3C1D D0 24
|
|
ldy #$0C ; CPU:$FC1F PRG:3C1F 84 F2
|
|
lda #$6A ; CPU:$FC21 PRG:3C21 A9 18
|
|
bne Flow_FC43 ; CPU:$FC23 PRG:3C23 85 F5
|
|
Flow_FC1F:
|
|
sty ActiveSoundEffect ; CPU:$FC25 PRG:3C25 A0 14
|
|
lda #$18 ; CPU:$FC27 PRG:3C27 A9 4B
|
|
sta Pulse2EffectTimer ; CPU:$FC29 PRG:3C29 D0 18
|
|
ldy #$14 ; CPU:$FC2B PRG:3C2B A5 F5
|
|
Flow_FC27:
|
|
lda #$4B ; CPU:$FC2D PRG:3C2D C9 17
|
|
bne Flow_FC43 ; CPU:$FC2F PRG:3C2F D0 04
|
|
Flow_FC2B:
|
|
lda Pulse2EffectTimer ; CPU:$FC31 PRG:3C31 A9 47
|
|
cmp #$17 ; CPU:$FC33 PRG:3C33 D0 11
|
|
bne Flow_FC35 ; CPU:$FC35 PRG:3C35 A0 08
|
|
lda #$47 ; CPU:$FC37 PRG:3C37 C9 10
|
|
bne Flow_FC46 ; CPU:$FC39 PRG:3C39 F0 EC
|
|
Flow_FC35:
|
|
ldy #$08 ; CPU:$FC3B PRG:3C3B A0 10
|
|
cmp #$10 ; CPU:$FC3D PRG:3C3D C9 0B
|
|
beq Flow_FC27 ; CPU:$FC3F PRG:3C3F F0 E6
|
|
ldy #$10 ; CPU:$FC41 PRG:3C41 D0 0B
|
|
cmp #$0B ; CPU:$FC43 PRG:3C43 8C 08 40
|
|
beq Flow_FC27 ; CPU:$FC46 PRG:3C46 8D 0A 40
|
|
bne Flow_FC4E ; CPU:$FC49 PRG:3C49 A2 08
|
|
Flow_FC43:
|
|
sty APUTRIANGLECTRL ; CPU:$FC4B PRG:3C4B 8E 0B 40
|
|
Flow_FC46:
|
|
sta APUTRIANGLETIMERLO ; CPU:$FC4E PRG:3C4E 4C DC FC
|
|
ldx #$08 ; CPU:$FC51 PRG:3C51 84 F2
|
|
stx APUTRIANGLETIMERHI ; CPU:$FC53 PRG:3C53 A9 14
|
|
Flow_FC4E:
|
|
jmp Flow_FCDC ; CPU:$FC55 PRG:3C55 85 F5
|
|
Flow_FC51:
|
|
sty ActiveSoundEffect ; CPU:$FC57 PRG:3C57 A0 18
|
|
lda #$14 ; CPU:$FC59 PRG:3C59 A9 50
|
|
sta Pulse2EffectTimer ; CPU:$FC5B PRG:3C5B D0 E6
|
|
ldy #$18 ; CPU:$FC5D PRG:3C5D A5 F5
|
|
lda #$50 ; CPU:$FC5F PRG:3C5F C9 13
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $3C5B-$3C5C.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
AudioTable_FC5B:
|
|
.byte $D0, $E6 ; PRG $3C5B / CPU $FC5B ; CPU:$FC61 PRG:3C61 D0 E6
|
|
Flow_FC5D:
|
|
lda Pulse2EffectTimer ; CPU:$FC63 PRG:3C63 A9 47
|
|
cmp #$13 ; CPU:$FC65 PRG:3C65 D0 DF
|
|
bne Flow_FC67 ; CPU:$FC67 PRG:3C67 C9 0D
|
|
lda #$47 ; CPU:$FC69 PRG:3C69 D0 06
|
|
bne Flow_FC46 ; CPU:$FC6B PRG:3C6B A0 08
|
|
Flow_FC67:
|
|
cmp #$0D ; CPU:$FC6D PRG:3C6D A9 4B
|
|
bne Flow_FC71 ; CPU:$FC6F PRG:3C6F D0 D2
|
|
ldy #$08 ; CPU:$FC71 PRG:3C71 C9 06
|
|
lda #$4B ; CPU:$FC73 PRG:3C73 D0 06
|
|
bne Flow_FC43 ; CPU:$FC75 PRG:3C75 A0 0E
|
|
Flow_FC71:
|
|
cmp #$06 ; CPU:$FC77 PRG:3C77 A9 59
|
|
bne Flow_FC7B ; CPU:$FC79 PRG:3C79 D0 C8
|
|
ldy #$0E ; CPU:$FC7B PRG:3C7B C9 04
|
|
lda #$59 ; CPU:$FC7D PRG:3C7D D0 04
|
|
bne Flow_FC43 ; CPU:$FC7F PRG:3C7F A9 5F
|
|
Flow_FC7B:
|
|
cmp #$04 ; CPU:$FC81 PRG:3C81 D0 C3
|
|
bne Flow_FC83 ; CPU:$FC83 PRG:3C83 C9 01
|
|
lda #$5F ; CPU:$FC85 PRG:3C85 D0 06
|
|
bne Flow_FC46 ; CPU:$FC87 PRG:3C87 A0 02
|
|
Flow_FC83:
|
|
cmp #$01 ; CPU:$FC89 PRG:3C89 A9 64
|
|
bne Flow_FC8D ; CPU:$FC8B PRG:3C8B D0 B6
|
|
ldy #$02 ; CPU:$FC8D PRG:3C8D C9 06
|
|
lda #$64 ; CPU:$FC8F PRG:3C8F 90 04
|
|
bne Flow_FC43 ; CPU:$FC91 PRG:3C91 C9 0D
|
|
Flow_FC8D:
|
|
cmp #$06 ; CPU:$FC93 PRG:3C93 B0 B9
|
|
bcc Flow_FC95 ; CPU:$FC95 PRG:3C95 A5 F0
|
|
cmp #$0D ; CPU:$FC97 PRG:3C97 18
|
|
bcs Flow_FC4E ; CPU:$FC98 PRG:3C98 69 10
|
|
Flow_FC95:
|
|
lda DmcOutputLevel ; CPU:$FC9A PRG:3C9A 85 F0
|
|
clc ; CPU:$FC9C PRG:3C9C D0 B0
|
|
adc #$10 ; CPU:$FC9E PRG:3C9E 84 F2
|
|
sta DmcOutputLevel ; CPU:$FCA0 PRG:3CA0 A9 05
|
|
bne Flow_FC4E ; CPU:$FCA2 PRG:3CA2 85 F5
|
|
Flow_FC9E:
|
|
sty ActiveSoundEffect ; CPU:$FCA4 PRG:3CA4 A2 3F
|
|
lda #$05 ; CPU:$FCA6 PRG:3CA6 EE FD 07
|
|
sta Pulse2EffectTimer ; CPU:$FCA9 PRG:3CA9 AD FD 07
|
|
ldx #$3F ; CPU:$FCAC PRG:3CAC 4A
|
|
inc $07FD ; CPU:$FCAD PRG:3CAD 90 02
|
|
lda $07FD ; CPU:$FCAF PRG:3CAF A2 50
|
|
lsr a ; CPU:$FCB1 PRG:3CB1 8E F6 07
|
|
bcc Flow_FCB1 ; CPU:$FCB4 PRG:3CB4 AD F6 07
|
|
ldx #$50 ; CPU:$FCB7 PRG:3CB7 4A
|
|
Flow_FCB1:
|
|
stx $07F6 ; CPU:$FCB8 PRG:3CB8 4A
|
|
Flow_FCB4:
|
|
lda $07F6 ; CPU:$FCB9 PRG:3CB9 4A
|
|
lsr a ; CPU:$FCBA PRG:3CBA 6D F6 07
|
|
lsr a ; CPU:$FCBD PRG:3CBD 8D F6 07
|
|
lsr a ; CPU:$FCC0 PRG:3CC0 0A
|
|
adc $07F6 ; CPU:$FCC1 PRG:3CC1 0A
|
|
sta $07F6 ; CPU:$FCC2 PRG:3CC2 8D 06 40
|
|
asl a ; CPU:$FCC5 PRG:3CC5 2A
|
|
asl a ; CPU:$FCC6 PRG:3CC6 29 03
|
|
sta APUPULSE2TIMERLO ; CPU:$FCC8 PRG:3CC8 8D 07 40
|
|
rol a ; CPU:$FCCB PRG:3CCB A0 81
|
|
and #$03 ; CPU:$FCCD PRG:3CCD A2 50
|
|
sta APUPULSE2TIMERHI ; CPU:$FCCF PRG:3CCF A5 F5
|
|
ldy #$81 ; CPU:$FCD1 PRG:3CD1 C9 04
|
|
ldx #$50 ; CPU:$FCD3 PRG:3CD3 90 04
|
|
lda Pulse2EffectTimer ; CPU:$FCD5 PRG:3CD5 18
|
|
cmp #$04 ; CPU:$FCD6 PRG:3CD6 69 4D
|
|
bcc Flow_FCD9 ; CPU:$FCD8 PRG:3CD8 AA
|
|
clc ; CPU:$FCD9 PRG:3CD9 20 83 F9
|
|
adc #$4D ; CPU:$FCDC PRG:3CDC C6 F5
|
|
tax ; CPU:$FCDE PRG:3CDE D0 04
|
|
Flow_FCD9:
|
|
jsr ConfigurePulse2 ; CPU:$FCE0 PRG:3CE0 A9 00
|
|
Flow_FCDC:
|
|
dec Pulse2EffectTimer ; CPU:$FCE2 PRG:3CE2 85 F2
|
|
bne Flow_FCE4 ; CPU:$FCE4 PRG:3CE4 A5 FD
|
|
lda #$00 ; CPU:$FCE6 PRG:3CE6 D0 05
|
|
sta ActiveSoundEffect ; CPU:$FCE8 PRG:3CE8 A5 FB
|
|
Flow_FCE4:
|
|
lda AudioRequestFlags1 ; CPU:$FCEA PRG:3CEA D0 29
|
|
bne Flow_FCED ; CPU:$FCEC PRG:3CEC 60
|
|
lda AudioStreamPosition ; CPU:$FCED PRG:3CED A0 07
|
|
bne Flow_FD15 ; CPU:$FCEF PRG:3CEF 0A
|
|
rts ; CPU:$FCF0 PRG:3CF0 B0 03
|
|
Flow_FCED:
|
|
ldy #$07 ; CPU:$FCF2 PRG:3CF2 88
|
|
Flow_FCEF:
|
|
asl a ; CPU:$FCF3 PRG:3CF3 D0 FA
|
|
bcs Flow_FCF5 ; CPU:$FCF5 PRG:3CF5 84 FC
|
|
dey ; CPU:$FCF7 PRG:3CF7 B9 FA FD
|
|
bne Flow_FCEF ; CPU:$FCFA PRG:3CFA A8
|
|
Flow_FCF5:
|
|
sty AudioEventPriority ; CPU:$FCFB PRG:3CFB A2 00
|
|
lda $FDFA,y ; CPU:$FCFD PRG:3CFD 86 FB
|
|
tay ; CPU:$FCFF PRG:3CFF B9 FA FD
|
|
ldx #$00 ; CPU:$FD02 PRG:3D02 95 F6
|
|
stx AudioStreamPosition ; CPU:$FD04 PRG:3D04 C8
|
|
Flow_FCFF:
|
|
lda $FDFA,y ; CPU:$FD05 PRG:3D05 E8
|
|
sta PitchAdjustment,x ; CPU:$FD06 PRG:3D06 E0 05
|
|
iny ; CPU:$FD08 PRG:3D08 D0 F5
|
|
inx ; CPU:$FD0A PRG:3D0A A9 01
|
|
cpx #$05 ; CPU:$FD0C PRG:3D0C 8D F0 07
|
|
bne Flow_FCFF ; CPU:$FD0F PRG:3D0F 8D F1 07
|
|
lda #$01 ; CPU:$FD12 PRG:3D12 8D F2 07
|
|
sta $07F0 ; CPU:$FD15 PRG:3D15 A5 FC
|
|
sta $07F1 ; CPU:$FD17 PRG:3D17 D0 19
|
|
sta $07F2 ; CPU:$FD19 PRG:3D19 AD FE 07
|
|
Flow_FD15:
|
|
lda AudioEventPriority ; CPU:$FD1C PRG:3D1C F0 14
|
|
bne Flow_FD32 ; CPU:$FD1E PRG:3D1E AD F0 07
|
|
lda $07FE ; CPU:$FD21 PRG:3D21 A2 90
|
|
beq Flow_FD32 ; CPU:$FD23 PRG:3D23 C9 03
|
|
lda $07F0 ; CPU:$FD25 PRG:3D25 90 08
|
|
ldx #$90 ; CPU:$FD27 PRG:3D27 A2 9D
|
|
cmp #$03 ; CPU:$FD29 PRG:3D29 29 07
|
|
bcc Flow_FD2F ; CPU:$FD2B PRG:3D2B D0 02
|
|
ldx #$9D ; CPU:$FD2D PRG:3D2D A2 9A
|
|
and #$07 ; CPU:$FD2F PRG:3D2F 8E 04 40
|
|
bne Flow_FD2F ; CPU:$FD32 PRG:3D32 CE F0 07
|
|
ldx #$9A ; CPU:$FD35 PRG:3D35 D0 36
|
|
Flow_FD2F:
|
|
stx APUPULSE2CTRL ; CPU:$FD37 PRG:3D37 A4 FB
|
|
Flow_FD32:
|
|
dec $07F0 ; CPU:$FD39 PRG:3D39 E6 FB
|
|
bne Flow_FD6D ; CPU:$FD3B PRG:3D3B B1 F7
|
|
ldy AudioStreamPosition ; CPU:$FD3D PRG:3D3D D0 05
|
|
inc AudioStreamPosition ; CPU:$FD3F PRG:3D3F 85 FB
|
|
lda (AudioSequencePtrLo),y ; CPU:$FD41 PRG:3D41 85 FA
|
|
bne Flow_FD44 ; CPU:$FD43 PRG:3D43 60
|
|
sta AudioStreamPosition ; CPU:$FD44 PRG:3D44 20 60 F9
|
|
sta AudioSequenceOffset ; CPU:$FD47 PRG:3D47 8D F0 07
|
|
rts ; CPU:$FD4A PRG:3D4A 8A
|
|
Flow_FD44:
|
|
jsr AudioRoutine_F960 ; CPU:$FD4B PRG:3D4B 29 3E
|
|
sta $07F0 ; CPU:$FD4D PRG:3D4D 20 AA F9
|
|
txa ; CPU:$FD50 PRG:3D50 8D FE 07
|
|
and #$3E ; CPU:$FD53 PRG:3D53 D0 04
|
|
jsr AudioRoutine_F9AA ; CPU:$FD55 PRG:3D55 A2 90
|
|
sta $07FE ; CPU:$FD57 PRG:3D57 D0 11
|
|
bne Flow_FD59 ; CPU:$FD59 PRG:3D59 A2 9D
|
|
ldx #$90 ; CPU:$FD5B PRG:3D5B A5 FC
|
|
bne Flow_FD6A ; CPU:$FD5D PRG:3D5D F0 0B
|
|
Flow_FD59:
|
|
ldx #$9D ; CPU:$FD5F PRG:3D5F A2 86
|
|
lda AudioEventPriority ; CPU:$FD61 PRG:3D61 AD F0 07
|
|
beq Flow_FD6A ; CPU:$FD64 PRG:3D64 C9 08
|
|
ldx #$86 ; CPU:$FD66 PRG:3D66 B0 02
|
|
lda $07F0 ; CPU:$FD68 PRG:3D68 A2 82
|
|
cmp #$08 ; CPU:$FD6A PRG:3D6A 20 81 F9
|
|
bcs Flow_FD6A ; CPU:$FD6D PRG:3D6D A4 FA
|
|
ldx #$82 ; CPU:$FD6F PRG:3D6F F0 4E
|
|
Flow_FD6A:
|
|
jsr $F981 ; CPU:$FD71 PRG:3D71 A5 FC
|
|
Flow_FD6D:
|
|
ldy AudioSequenceOffset ; CPU:$FD73 PRG:3D73 D0 0A
|
|
beq Flow_FDBF ; CPU:$FD75 PRG:3D75 AD F1 07
|
|
lda AudioEventPriority ; CPU:$FD78 PRG:3D78 C9 03
|
|
bne Flow_FD7F ; CPU:$FD7A PRG:3D7A B0 03
|
|
lda $07F1 ; CPU:$FD7C PRG:3D7C 20 70 F9
|
|
cmp #$03 ; CPU:$FD7F PRG:3D7F CE F1 07
|
|
bcs Flow_FD7F ; CPU:$FD82 PRG:3D82 D0 3B
|
|
jsr AudioRoutine_F970 ; CPU:$FD84 PRG:3D84 E6 FA
|
|
Flow_FD7F:
|
|
dec $07F1 ; CPU:$FD86 PRG:3D86 B1 F7
|
|
bne Flow_FDBF ; CPU:$FD88 PRG:3D88 10 0C
|
|
inc AudioSequenceOffset ; CPU:$FD8A PRG:3D8A 20 66 F9
|
|
lda (AudioSequencePtrLo),y ; CPU:$FD8D PRG:3D8D 8D F3 07
|
|
bpl Flow_FD96 ; CPU:$FD90 PRG:3D90 A4 FA
|
|
jsr AudioRoutine_F966 ; CPU:$FD92 PRG:3D92 E6 FA
|
|
sta $07F3 ; CPU:$FD94 PRG:3D94 B1 F7
|
|
ldy AudioSequenceOffset ; CPU:$FD96 PRG:3D96 20 93 F9
|
|
inc AudioSequenceOffset ; CPU:$FD99 PRG:3D99 D0 04
|
|
lda (AudioSequencePtrLo),y ; CPU:$FD9B PRG:3D9B A2 10
|
|
Flow_FD96:
|
|
jsr AudioRoutine_F993 ; CPU:$FD9D PRG:3D9D D0 17
|
|
bne Flow_FD9F ; CPU:$FD9F PRG:3D9F A2 5A
|
|
ldx #$10 ; CPU:$FDA1 PRG:3DA1 A5 FC
|
|
bne Flow_FDB6 ; CPU:$FDA3 PRG:3DA3 F0 11
|
|
Flow_FD9F:
|
|
ldx #$5A ; CPU:$FDA5 PRG:3DA5 A2 46
|
|
lda AudioEventPriority ; CPU:$FDA7 PRG:3DA7 AD F3 07
|
|
beq Flow_FDB6 ; CPU:$FDAA PRG:3DAA C9 08
|
|
ldx #$46 ; CPU:$FDAC PRG:3DAC B0 02
|
|
lda $07F3 ; CPU:$FDAE PRG:3DAE A2 42
|
|
cmp #$08 ; CPU:$FDB0 PRG:3DB0 A5 F9
|
|
bcs Flow_FDB0 ; CPU:$FDB2 PRG:3DB2 D0 02
|
|
ldx #$42 ; CPU:$FDB4 PRG:3DB4 A2 86
|
|
Flow_FDB0:
|
|
lda AudioSequenceIndex ; CPU:$FDB6 PRG:3DB6 20 78 F9
|
|
bne Flow_FDB6 ; CPU:$FDB9 PRG:3DB9 AD F3 07
|
|
ldx #$86 ; CPU:$FDBC PRG:3DBC 8D F1 07
|
|
Flow_FDB6:
|
|
jsr $F978 ; CPU:$FDBF PRG:3DBF A4 F9
|
|
lda $07F3 ; CPU:$FDC1 PRG:3DC1 F0 36
|
|
sta $07F1 ; CPU:$FDC3 PRG:3DC3 AD F2 07
|
|
Flow_FDBF:
|
|
ldy AudioSequenceIndex ; CPU:$FDC6 PRG:3DC6 C9 02
|
|
beq Flow_FDF9 ; CPU:$FDC8 PRG:3DC8 D0 05
|
|
lda $07F2 ; CPU:$FDCA PRG:3DCA A9 00
|
|
cmp #$02 ; CPU:$FDCC PRG:3DCC 8D 08 40
|
|
bne Flow_FDCF ; CPU:$FDCF PRG:3DCF CE F2 07
|
|
lda #$00 ; CPU:$FDD2 PRG:3DD2 D0 25
|
|
sta APUTRIANGLECTRL ; CPU:$FDD4 PRG:3DD4 E6 F9
|
|
Flow_FDCF:
|
|
dec $07F2 ; CPU:$FDD6 PRG:3DD6 B1 F7
|
|
bne Flow_FDF9 ; CPU:$FDD8 PRG:3DD8 20 60 F9
|
|
inc AudioSequenceIndex ; CPU:$FDDB PRG:3DDB 8D F2 07
|
|
lda (AudioSequencePtrLo),y ; CPU:$FDDE PRG:3DDE A0 38
|
|
jsr AudioRoutine_F960 ; CPU:$FDE0 PRG:3DE0 18
|
|
sta $07F2 ; CPU:$FDE1 PRG:3DE1 69 FF
|
|
ldy #$38 ; CPU:$FDE3 PRG:3DE3 C9 0E
|
|
clc ; CPU:$FDE5 PRG:3DE5 B0 03
|
|
adc #$FF ; CPU:$FDE7 PRG:3DE7 0A
|
|
cmp #$0E ; CPU:$FDE8 PRG:3DE8 0A
|
|
bcs Flow_FDEA ; CPU:$FDE9 PRG:3DE9 A8
|
|
asl a ; CPU:$FDEA PRG:3DEA A5 FC
|
|
asl a ; CPU:$FDEC PRG:3DEC D0 02
|
|
tay ; CPU:$FDEE PRG:3DEE A0 88
|
|
Flow_FDEA:
|
|
lda AudioEventPriority ; CPU:$FDF0 PRG:3DF0 8C 08 40
|
|
bne Flow_FDF0 ; CPU:$FDF3 PRG:3DF3 8A
|
|
ldy #$88 ; CPU:$FDF4 PRG:3DF4 29 3E
|
|
Flow_FDF0:
|
|
sty APUTRIANGLECTRL ; CPU:$FDF6 PRG:3DF6 20 AE F9
|
|
txa ; CPU:$FDF9 PRG:3DF9 60
|
|
and #$3E ; CPU:$FDFA PRG:3DFA ??
|
|
jsr AudioRoutine_F9AE ; CPU:$FDFC PRG:3DFC ??
|
|
Flow_FDF9:
|
|
rts ; CPU:$FDFE PRG:3DFE ??
|
|
|
|
; -----------------------------------------------------------------------------
|
|
; Pass-1 non-code or currently untraced region: PRG $3DFA-$3FF6.
|
|
; Preserved verbatim pending data-format refinement in Pass 3.
|
|
; -----------------------------------------------------------------------------
|
|
AudioEventSequenceData:
|
|
.byte $08, $0D, $12, $17, $17, $1C, $21, $26, $10, $25, $FE, $72, $1B, $08, $B4, $FE ; PRG $3DFA / CPU $FDFA ; CPU:$FE00 PRG:3E00 08 0D 12 17 17 1C 21 26 10 25 FE 72 1B 08 B4 FE
|
|
.byte $28, $10, $10, $2A, $FF, $28, $0C, $08, $5B, $FF, $6E, $2A, $00, $ED, $FE, $08 ; PRG $3E0A / CPU $FE0A ; CPU:$FE10 PRG:3E10 28 10 10 2A FF 28 0C 08 5B FF 6E 2A 00 ED FE 08
|
|
.byte $00, $00, $06, $FF, $11, $00, $08, $E3, $FF, $00, $00, $C6, $67, $6A, $E0, $84 ; PRG $3E1A / CPU $FE1A ; CPU:$FE20 PRG:3E20 00 00 06 FF 11 00 08 E3 FF 00 00 C6 67 6A E0 84
|
|
.byte $23, $E7, $AA, $AE, $86, $88, $8D, $84, $CC, $CE, $CC, $44, $48, $46, $48, $C6 ; PRG $3E2A / CPU $FE2A ; CPU:$FE30 PRG:3E30 23 E7 AA AE 86 88 8D 84 CC CE CC 44 48 46 48 C6
|
|
.byte $44, $6E, $6A, $6E, $87, $00, $87, $26, $20, $18, $26, $20, $18, $20, $18, $38 ; PRG $3E3A / CPU $FE3A ; CPU:$FE40 PRG:3E40 44 6E 6A 6E 87 00 87 26 20 18 26 20 18 20 18 38
|
|
.byte $20, $18, $38, $20, $3C, $38, $20, $3C, $38, $20, $3C, $38, $20, $3C, $38, $22 ; PRG $3E4A / CPU $FE4A ; CPU:$FE50 PRG:3E50 20 18 38 20 3C 38 20 3C 38 20 3C 38 20 3C 38 22
|
|
.byte $18, $3A, $22, $18, $3A, $22, $18, $3A, $22, $18, $3A, $2A, $20, $18, $2A, $20 ; PRG $3E5A / CPU $FE5A ; CPU:$FE60 PRG:3E60 18 3A 22 18 3A 22 18 3A 22 18 3A 2A 20 18 2A 20
|
|
.byte $18, $2A, $20, $18, $2A, $20, $18, $26, $20, $18, $26, $20, $18, $2A, $22, $1C ; PRG $3E6A / CPU $FE6A ; CPU:$FE70 PRG:3E70 18 2A 20 18 2A 20 18 26 20 18 26 20 18 2A 22 1C
|
|
.byte $2A, $22, $1C, $2E, $26, $20, $2E, $26, $20, $2E, $26, $34, $2E, $26, $20, $2A ; PRG $3E7A / CPU $FE7A ; CPU:$FE80 PRG:3E80 2A 22 1C 2E 26 20 2E 26 20 2E 26 34 2E 26 20 2A
|
|
.byte $22, $18, $2A, $22, $18, $26, $1C, $3C, $26, $1C, $3C, $86, $26, $98, $B8, $98 ; PRG $3E8A / CPU $FE8A ; CPU:$FE90 PRG:3E90 22 18 2A 22 18 26 1C 3C 26 1C 3C 86 26 98 B8 98
|
|
.byte $B8, $A0, $BC, $A0, $BC, $A2, $98, $A2, $98, $AA, $A0, $AA, $A0, $98, $B8, $9C ; PRG $3E9A / CPU $FE9A ; CPU:$FEA0 PRG:3EA0 B8 A0 BC A0 BC A2 98 A2 98 AA A0 AA A0 98 B8 9C
|
|
.byte $BA, $A0, $BC, $A0, $BC, $A2, $98, $A6, $9C, $99, $10, $52, $12, $8E, $8C, $4E ; PRG $3EAA / CPU $FEAA ; CPU:$FEB0 PRG:3EB0 BA A0 BC A0 BC A2 98 A6 9C 99 10 52 12 8E 8C 4E
|
|
.byte $8C, $4C, $88, $86, $88, $C6, $C4, $C4, $84, $00, $80, $0A, $81, $0C, $80, $0C ; PRG $3EBA / CPU $FEBA ; CPU:$FEC0 PRG:3EC0 8C 4C 88 86 88 C6 C4 C4 84 00 80 0A 81 0C 80 0C
|
|
.byte $82, $08, $06, $81, $2A, $82, $06, $81, $2A, $82, $2E, $2A, $26, $83, $20, $04 ; PRG $3ECA / CPU $FECA ; CPU:$FED0 PRG:3ED0 82 08 06 81 2A 82 06 81 2A 82 2E 2A 26 83 20 04
|
|
.byte $04, $04, $98, $B8, $98, $B8, $BA, $B8, $BA, $B8, $24, $66, $26, $A2, $A0, $5C ; PRG $3EDA / CPU $FEDA ; CPU:$FEE0 PRG:3EE0 04 04 98 B8 98 B8 BA B8 BA B8 24 66 26 A2 A0 5C
|
|
.byte $D8, $58, $C4, $E7, $26, $A2, $A6, $AA, $AE, $07, $00, $84, $62, $58, $7A, $58 ; PRG $3EEA / CPU $FEEA ; CPU:$FEF0 PRG:3EF0 D8 58 C4 E7 26 A2 A6 AA AE 07 00 84 62 58 7A 58
|
|
.byte $66, $62, $5C, $66, $46, $AF, $2A, $A7, $22, $A1, $1C, $19, $0C, $8E, $C5, $47 ; PRG $3EFA / CPU $FEFA ; CPU:$FF00 PRG:3F00 66 62 5C 66 46 AF 2A A7 22 A1 1C 19 0C 8E C5 47
|
|
.byte $48, $46, $46, $6C, $6C, $6A, $6A, $66, $66, $22, $22, $E2, $00, $62, $58, $58 ; PRG $3F0A / CPU $FF0A ; CPU:$FF10 PRG:3F10 48 46 46 6C 6C 6A 6A 66 66 22 22 E2 00 62 58 58
|
|
.byte $58, $62, $58, $58, $58, $60, $58, $78, $58, $66, $60, $58, $60, $22, $22, $E2 ; PRG $3F1A / CPU $FF1A ; CPU:$FF20 PRG:3F20 58 62 58 58 58 60 58 78 58 66 60 58 60 22 22 E2
|
|
.byte $C7, $2F, $C7, $0D, $CF, $13, $CF, $8C, $88, $C6, $C4, $00, $87, $2A, $84, $26 ; PRG $3F2A / CPU $FF2A ; CPU:$FF30 PRG:3F30 C7 2F C7 0D CF 13 CF 8C 88 C6 C4 00 87 2A 84 26
|
|
.byte $87, $22, $18, $38, $34, $18, $38, $34, $3C, $38, $32, $3C, $38, $32, $84, $18 ; PRG $3F3A / CPU $FF3A ; CPU:$FF40 PRG:3F40 87 22 18 38 34 18 38 34 3C 38 32 3C 38 32 84 18
|
|
.byte $87, $38, $38, $3A, $3C, $82, $18, $18, $C5, $84, $98, $B8, $A6, $9C, $D8, $98 ; PRG $3F4A / CPU $FF4A ; CPU:$FF50 PRG:3F50 87 38 38 3A 3C 82 18 18 C5 84 98 B8 A6 9C D8 98
|
|
.byte $98, $6B, $E9, $67, $E5, $2B, $E7, $25, $E1, $DD, $85, $DB, $1D, $DF, $A0, $86 ; PRG $3F5A / CPU $FF5A ; CPU:$FF60 PRG:3F60 98 6B E9 67 E5 2B E7 25 E1 DD 85 DB 1D DF A0 86
|
|
.byte $AE, $AA, $2F, $E7, $3D, $E1, $DD, $85, $FD, $19, $DD, $60, $44, $A0, $64, $44 ; PRG $3F6A / CPU $FF6A ; CPU:$FF70 PRG:3F70 AE AA 2F E7 3D E1 DD 85 FD 19 DD 60 44 A0 64 44
|
|
.byte $A4, $E7, $85, $DD, $1B, $DD, $66, $44, $66, $44, $00, $85, $44, $87, $42, $85 ; PRG $3F7A / CPU $FF7A ; CPU:$FF80 PRG:3F80 A4 E7 85 DD 1B DD 66 44 66 44 00 85 44 87 42 85
|
|
.byte $40, $87, $3E, $84, $02, $87, $16, $84, $14, $87, $12, $87, $10, $85, $04, $87 ; PRG $3F8A / CPU $FF8A ; CPU:$FF90 PRG:3F90 40 87 3E 84 02 87 16 84 14 87 12 87 10 85 04 87
|
|
.byte $04, $12, $02, $84, $40, $87, $12, $12, $40, $12, $84, $02, $86, $0C, $04, $08 ; PRG $3F9A / CPU $FF9A ; CPU:$FFA0 PRG:3FA0 04 12 02 84 40 87 12 12 40 12 84 02 86 0C 04 08
|
|
.byte $16, $84, $3E, $87, $12, $12, $16, $12, $84, $14, $87, $16, $81, $02, $04, $82 ; PRG $3FAA / CPU $FFAA ; CPU:$FFB0 PRG:3FB0 16 84 3E 87 12 12 16 12 84 14 87 16 81 02 04 82
|
|
.byte $02, $81, $3E, $04, $82, $02, $87, $16, $85, $04, $81, $2E, $04, $2E, $04, $09 ; PRG $3FBA / CPU $FFBA ; CPU:$FFC0 PRG:3FC0 02 81 3E 04 82 02 87 16 85 04 81 2E 04 2E 04 09
|
|
.byte $DD, $9C, $2B, $FB, $BA, $9C, $BA, $DC, $98, $A6, $86, $98, $A6, $9C, $A6, $88 ; PRG $3FCA / CPU $FFCA ; CPU:$FFD0 PRG:3FD0 DD 9C 2B FB BA 9C BA DC 98 A6 86 98 A6 9C A6 88
|
|
.byte $07, $D9, $86, $09, $DD, $88, $E6, $A6, $B8, $02, $12, $02, $12, $02, $12, $02 ; PRG $3FDA / CPU $FFDA ; CPU:$FFE0 PRG:3FE0 07 D9 86 09 DD 88 E6 A6 B8 02 12 02 12 02 12 02
|
|
.byte $52, $00, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; PRG $3FEA / CPU $FFEA ; CPU:$FFF0 PRG:3FF0 52 00 FF FF FF FF FF FF FF FF FF FF FF
|
|
; =============================================================================
|
|
; RunAudioEngine
|
|
; CPU address: $FFF7 PRG offset: $3FF7
|
|
;
|
|
; Global description:
|
|
; Pass-1 discovered routine entry. Exact game-level responsibility remains to be established in the semantic naming pass.
|
|
;
|
|
; Parameters:
|
|
; Register and RAM inputs are not yet proven; inspect callers listed in reconstructed.map.
|
|
;
|
|
; Returns:
|
|
; Return convention follows the terminating RTS/RTI or tail jump in this block.
|
|
; =============================================================================
|
|
RunAudioEngine:
|
|
jmp AudioEngineUpdate ; CPU:$FFFD PRG:3FFD ??
|
|
|
|
; =============================================================================
|
|
; Hardware vectors
|
|
; =============================================================================
|
|
.word NmiHandler ; CPU:$FFFF PRG:3FFF ??
|
|
.word Reset ; CPU:$10001 PRG:4001 ??
|
|
.word Reset ; CPU:$10003 PRG:4003 ??
|
|
|