.setcpu "6502" .include "symbols.inc" .include "locals.inc" .segment "PRG" .byte $61,$C2,$5D,$C2,$55,$C3,$77,$C1,$92,$C0 ; PRG $0000 | CPU $C000 GameplayLookupTable_C00A: .byte $20,$AE,$06,$00,$20,$A3,$06,$00,$20,$B8,$06,$00,$AE,$00,$03,$BD ; PRG $000A | CPU $C00A .byte $02,$03,$F0,$37,$29,$F0,$4A,$4A,$4A,$A8,$B9,$FE,$BF,$85,$02,$C8 ; PRG $001A | CPU $C01A .byte $B9,$FE,$BF,$85,$03,$BD,$02,$03,$29,$0F,$85,$01,$A9,$00,$9D,$02 ; PRG $002A | CPU $C02A .byte $03,$A9,$C0,$48,$A9,$15,$48,$E8,$E8,$8A,$C9,$2E,$90,$02,$A9,$00 ; PRG $003A | CPU $C03A .byte $8D,$00,$03,$BD,$01,$03,$85,$00,$6C,$02,$00,$60,$AE,$01,$03,$BC ; PRG $004A | CPU $C04A .byte $02,$03,$D0,$14,$9D,$03,$03,$A5,$01,$9D,$02,$03,$E8,$E8,$8A,$C9 ; PRG $005A | CPU $C05A .byte $2E,$90,$02,$A9,$00,$8D,$01,$03,$60 ; PRG $006A | CPU $C06A ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C073. ; Local behavior: Executes the decoded update side scrolling gameplay c073 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C073: lda #$31 ; PRG $0073 | CPU $C073 | A9 31 sta ScratchValue0 ; PRG $0075 | CPU $C075 | 85 00 lda #$03 ; PRG $0077 | CPU $C077 | A9 03 sta ScratchValue1 ; PRG $0079 | CPU $C079 | 85 01 jsr FinishHudPlayfieldUploadAndResetScroll ; PRG $007B | CPU $C07B | 20 20 C1 lda #$00 ; PRG $007E | CPU $C07E | A9 00 sta Ram_0330 ; PRG $0080 | CPU $C080 | 8D 30 03 sta Ram_0331 ; PRG $0083 | CPU $C083 | 8D 31 03 rts ; PRG $0086 | CPU $C086 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Transfer Ship Target Oam Buffer. ; Local behavior: Executes the decoded transfer ship target oam buffer sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransferShipTargetOamBuffer: lda #$00 ; PRG $0087 | CPU $C087 | A9 00 sta OAMADDR ; PRG $0089 | CPU $C089 | 8D 03 20 lda #$02 ; PRG $008C | CPU $C08C | A9 02 sta OAMDMA ; PRG $008E | CPU $C08E | 8D 14 40 rts ; PRG $0091 | CPU $C091 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Configure Hud And Playfield Ppu C092. ; Local behavior: Executes the decoded configure hud and playfield ppu c092 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- ConfigureHudAndPlayfieldPpu_C092: lda PPUSTATUS ; PRG $0092 | CPU $C092 | AD 02 20 lda PpuControlShadow ; PRG $0095 | CPU $C095 | A5 10 and #$FB ; PRG $0097 | CPU $C097 | 29 FB sta PPUCTRL ; PRG $0099 | CPU $C099 | 8D 00 20 sta PpuControlShadow ; PRG $009C | CPU $C09C | 85 10 lda #$1C ; PRG $009E | CPU $C09E | A9 1C clc ; PRG $00A0 | CPU $C0A0 | 18 ; ----------------------------------------------------------------------------- ; Global purpose: Set Ppu Address C0 A1. ; Local behavior: Executes the decoded set ppu address c0 a1 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- SetPpuAddress_C0A1: adc #$04 ; PRG $00A1 | CPU $C0A1 | 69 04 dec ScratchValue1 ; PRG $00A3 | CPU $C0A3 | C6 01 bne SetPpuAddress_C0A1 ; PRG $00A5 | CPU $C0A5 | D0 FA sta ScratchValue2 ; PRG $00A7 | CPU $C0A7 | 85 02 sta PPUADDR ; PRG $00A9 | CPU $C0A9 | 8D 06 20 lda #$00 ; PRG $00AC | CPU $C0AC | A9 00 sta PPUADDR ; PRG $00AE | CPU $C0AE | 8D 06 20 ldx #$04 ; PRG $00B1 | CPU $C0B1 | A2 04 ldy #$00 ; PRG $00B3 | CPU $C0B3 | A0 00 lda ScratchValue0 ; PRG $00B5 | CPU $C0B5 | A5 00 ; ----------------------------------------------------------------------------- ; Global purpose: Fill Hud Or Playfield Tiles. ; Local behavior: Executes the decoded fill hud or playfield tiles sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- FillHudOrPlayfieldTiles: sta PPUDATA ; PRG $00B7 | CPU $C0B7 | 8D 07 20 dey ; PRG $00BA | CPU $C0BA | 88 bne FillHudOrPlayfieldTiles ; PRG $00BB | CPU $C0BB | D0 FA dex ; PRG $00BD | CPU $C0BD | CA bne FillHudOrPlayfieldTiles ; PRG $00BE | CPU $C0BE | D0 F7 lda ScratchValue2 ; PRG $00C0 | CPU $C0C0 | A5 02 adc #$03 ; PRG $00C2 | CPU $C0C2 | 69 03 sta PPUADDR ; PRG $00C4 | CPU $C0C4 | 8D 06 20 lda #$C0 ; PRG $00C7 | CPU $C0C7 | A9 C0 sta PPUADDR ; PRG $00C9 | CPU $C0C9 | 8D 06 20 ldy #$40 ; PRG $00CC | CPU $C0CC | A0 40 lda #$00 ; PRG $00CE | CPU $C0CE | A9 00 ; ----------------------------------------------------------------------------- ; Global purpose: Write Hud Or Playfield Tile Run. ; Local behavior: Executes the decoded write hud or playfield tile run sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- WriteHudOrPlayfieldTileRun: sta PPUDATA ; PRG $00D0 | CPU $C0D0 | 8D 07 20 dey ; PRG $00D3 | CPU $C0D3 | 88 bne WriteHudOrPlayfieldTileRun ; PRG $00D4 | CPU $C0D4 | D0 FA rts ; PRG $00D6 | CPU $C0D6 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C0 D7. ; Local behavior: Executes the decoded update side scrolling gameplay c0 d7 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C0D7: sta ScratchValue0 ; PRG $00D7 | CPU $C0D7 | 85 00 stx ScratchValue1 ; PRG $00D9 | CPU $C0D9 | 86 01 jmp FinishHudPlayfieldUploadAndResetScroll ; PRG $00DB | CPU $C0DB | 4C 20 C1 ; ----------------------------------------------------------------------------- ; Global purpose: Set Ppu Address C0 DE. ; Local behavior: Executes the decoded set ppu address c0 de sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- SetPpuAddress_C0DE: sta PPUADDR ; PRG $00DE | CPU $C0DE | 8D 06 20 iny ; PRG $00E1 | CPU $C0E1 | C8 lda (ScratchValue0),y ; PRG $00E2 | CPU $C0E2 | B1 00 sta PPUADDR ; PRG $00E4 | CPU $C0E4 | 8D 06 20 iny ; PRG $00E7 | CPU $C0E7 | C8 lda (ScratchValue0),y ; PRG $00E8 | CPU $C0E8 | B1 00 asl a ; PRG $00EA | CPU $C0EA | 0A pha ; PRG $00EB | CPU $C0EB | 48 lda PpuControlShadow ; PRG $00EC | CPU $C0EC | A5 10 ora #$04 ; PRG $00EE | CPU $C0EE | 09 04 bcs ConfigureHudAndPlayfieldPpu_C0F4 ; PRG $00F0 | CPU $C0F0 | B0 02 and #$FB ; PRG $00F2 | CPU $C0F2 | 29 FB ; ----------------------------------------------------------------------------- ; Global purpose: Configure Hud And Playfield Ppu C0 F4. ; Local behavior: Executes the decoded configure hud and playfield ppu c0 f4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- ConfigureHudAndPlayfieldPpu_C0F4: sta PPUCTRL ; PRG $00F4 | CPU $C0F4 | 8D 00 20 sta PpuControlShadow ; PRG $00F7 | CPU $C0F7 | 85 10 pla ; PRG $00F9 | CPU $C0F9 | 68 bmi TransformFlightState_C109 ; PRG $00FA | CPU $C0FA | 30 0D lsr a ; PRG $00FC | CPU $C0FC | 4A tax ; PRG $00FD | CPU $C0FD | AA ; ----------------------------------------------------------------------------- ; Global purpose: Write Hud Or Playfield Data C0 FE. ; Local behavior: Executes the decoded write hud or playfield data c0 fe sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- WriteHudOrPlayfieldData_C0FE: iny ; PRG $00FE | CPU $C0FE | C8 lda (ScratchValue0),y ; PRG $00FF | CPU $C0FF | B1 00 sta PPUDATA ; PRG $0101 | CPU $C101 | 8D 07 20 dex ; PRG $0104 | CPU $C104 | CA bne WriteHudOrPlayfieldData_C0FE ; PRG $0105 | CPU $C105 | D0 F7 beq UpdateSideScrollingGameplay_C116 ; PRG $0107 | CPU $C107 | F0 0D ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State C109. ; Local behavior: Executes the decoded transform flight state c109 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_C109: and #$7F ; PRG $0109 | CPU $C109 | 29 7F lsr a ; PRG $010B | CPU $C10B | 4A tax ; PRG $010C | CPU $C10C | AA iny ; PRG $010D | CPU $C10D | C8 ; ----------------------------------------------------------------------------- ; Global purpose: Write Hud Or Playfield Data C10 E. ; Local behavior: Executes the decoded write hud or playfield data c10 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- WriteHudOrPlayfieldData_C10E: lda (ScratchValue0),y ; PRG $010E | CPU $C10E | B1 00 sta PPUDATA ; PRG $0110 | CPU $C110 | 8D 07 20 dex ; PRG $0113 | CPU $C113 | CA bne WriteHudOrPlayfieldData_C10E ; PRG $0114 | CPU $C114 | D0 F8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C116. ; Local behavior: Executes the decoded update side scrolling gameplay c116 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C116: sec ; PRG $0116 | CPU $C116 | 38 tya ; PRG $0117 | CPU $C117 | 98 adc ScratchValue0 ; PRG $0118 | CPU $C118 | 65 00 sta ScratchValue0 ; PRG $011A | CPU $C11A | 85 00 bcc FinishHudPlayfieldUploadAndResetScroll ; PRG $011C | CPU $C11C | 90 02 inc ScratchValue1 ; PRG $011E | CPU $C11E | E6 01 ; ----------------------------------------------------------------------------- ; Global purpose: Finish Hud Playfield Upload And Reset Scroll. ; Local behavior: Executes the decoded finish hud playfield upload and reset scroll sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- FinishHudPlayfieldUploadAndResetScroll: ldx PPUSTATUS ; PRG $0120 | CPU $C120 | AE 02 20 ldy #$00 ; PRG $0123 | CPU $C123 | A0 00 lda (ScratchValue0),y ; PRG $0125 | CPU $C125 | B1 00 bne SetPpuAddress_C0DE ; PRG $0127 | CPU $C127 | D0 B5 lda PpuControlShadow ; PRG $0129 | CPU $C129 | A5 10 and #$FE ; PRG $012B | CPU $C12B | 29 FE sta PPUCTRL ; PRG $012D | CPU $C12D | 8D 00 20 lda #$00 ; PRG $0130 | CPU $C130 | A9 00 sta PPUSCROLL ; PRG $0132 | CPU $C132 | 8D 05 20 sta PPUSCROLL ; PRG $0135 | CPU $C135 | 8D 05 20 rts ; PRG $0138 | CPU $C138 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C139. ; Local behavior: Executes the decoded update side scrolling gameplay c139 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C139: pha ; PRG $0139 | CPU $C139 | 48 ldx #$00 ; PRG $013A | CPU $C13A | A2 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field C13 C. ; Local behavior: Executes the decoded update gameplay state field c13 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_C13C: dex ; PRG $013C | CPU $C13C | CA bne UpdateGameplayStateField_C13C ; PRG $013D | CPU $C13D | D0 FD jsr UpdateSideScrollingGameplay_C144 ; PRG $013F | CPU $C13F | 20 44 C1 pla ; PRG $0142 | CPU $C142 | 68 rts ; PRG $0143 | CPU $C143 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C144. ; Local behavior: Executes the decoded update side scrolling gameplay c144 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C144: lda PpuControlShadow ; PRG $0144 | CPU $C144 | A5 10 and #$01 ; PRG $0146 | CPU $C146 | 29 01 ora VerticalScroll ; PRG $0148 | CPU $C148 | 05 13 beq UpdateGameplayStateField_C160 ; PRG $014A | CPU $C14A | F0 14 ; ----------------------------------------------------------------------------- ; Global purpose: Apply Hud Playfield Scroll. ; Local behavior: Executes the decoded apply hud playfield scroll sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- ApplyHudPlayfieldScroll: bit PPUSTATUS ; PRG $014C | CPU $C14C | 2C 02 20 bvc ApplyHudPlayfieldScroll ; PRG $014F | CPU $C14F | 50 FB lda PpuControlShadow ; PRG $0151 | CPU $C151 | A5 10 sta PPUCTRL ; PRG $0153 | CPU $C153 | 8D 00 20 lda VerticalScroll ; PRG $0156 | CPU $C156 | A5 13 sta PPUSCROLL ; PRG $0158 | CPU $C158 | 8D 05 20 lda Zp_18 ; PRG $015B | CPU $C15B | A5 18 sta PPUSCROLL ; PRG $015D | CPU $C15D | 8D 05 20 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field C160. ; Local behavior: Executes the decoded update gameplay state field c160 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_C160: rts ; PRG $0160 | CPU $C160 | 60 .byte $A9,$00,$85,$03,$A9,$02,$85,$04 ; PRG $0161 | CPU $C161 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C169. ; Local behavior: Executes the decoded update side scrolling gameplay c169 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C169: ldy ScratchValue2 ; PRG $0169 | CPU $C169 | A4 02 dey ; PRG $016B | CPU $C16B | 88 ldx ScratchValue2 ; PRG $016C | CPU $C16C | A6 02 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C16 E. ; Local behavior: Executes the decoded update side scrolling gameplay c16 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C16E: lda (ScratchValue0),y ; PRG $016E | CPU $C16E | B1 00 sta (ScratchIndex),y ; PRG $0170 | CPU $C170 | 91 03 dey ; PRG $0172 | CPU $C172 | 88 dex ; PRG $0173 | CPU $C173 | CA bne UpdateSideScrollingGameplay_C16E ; PRG $0174 | CPU $C174 | D0 F8 rts ; PRG $0176 | CPU $C176 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State C177. ; Local behavior: Executes the decoded transform flight state c177 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_C177: ldx ScratchValue0 ; PRG $0177 | CPU $C177 | A6 00 jsr CalculateMovementAndClamp_C183 ; PRG $0179 | CPU $C179 | 20 83 C1 lda ScratchValue0 ; PRG $017C | CPU $C17C | A5 00 lsr a ; PRG $017E | CPU $C17E | 4A lsr a ; PRG $017F | CPU $C17F | 4A lsr a ; PRG $0180 | CPU $C180 | 4A lsr a ; PRG $0181 | CPU $C181 | 4A tax ; PRG $0182 | CPU $C182 | AA ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value C183. ; Local behavior: Executes the decoded calculate and clamp value c183 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_C183: inx ; PRG $0183 | CPU $C183 | E8 txa ; PRG $0184 | CPU $C184 | 8A and #$0F ; PRG $0185 | CPU $C185 | 29 0F cmp #$09 ; PRG $0187 | CPU $C187 | C9 09 bcs UpdateGameplayStateField_C1F7 ; PRG $0189 | CPU $C189 | B0 6C asl a ; PRG $018B | CPU $C18B | 0A asl a ; PRG $018C | CPU $C18C | 0A tay ; PRG $018D | CPU $C18D | A8 sta ScratchValue2 ; PRG $018E | CPU $C18E | 85 02 ldx Ram_0330 ; PRG $0190 | CPU $C190 | AE 30 03 lda GameplayLookupTable_C00A,y ; PRG $0193 | CPU $C193 | B9 0A C0 sta Ram_0331,x ; PRG $0196 | CPU $C196 | 9D 31 03 jsr UpdateSideScrollingGameplay_C24C ; PRG $0199 | CPU $C199 | 20 4C C2 iny ; PRG $019C | CPU $C19C | C8 lda GameplayLookupTable_C00A,y ; PRG $019D | CPU $C19D | B9 0A C0 sta Ram_0331,x ; PRG $01A0 | CPU $C1A0 | 9D 31 03 jsr UpdateSideScrollingGameplay_C24C ; PRG $01A3 | CPU $C1A3 | 20 4C C2 iny ; PRG $01A6 | CPU $C1A6 | C8 lda GameplayLookupTable_C00A,y ; PRG $01A7 | CPU $C1A7 | B9 0A C0 and #$07 ; PRG $01AA | CPU $C1AA | 29 07 sta Ram_0331,x ; PRG $01AC | CPU $C1AC | 9D 31 03 sta ScratchValue1 ; PRG $01AF | CPU $C1AF | 85 01 txa ; PRG $01B1 | CPU $C1B1 | 8A sec ; PRG $01B2 | CPU $C1B2 | 38 adc ScratchValue1 ; PRG $01B3 | CPU $C1B3 | 65 01 jsr UpdateSideScrollingGameplay_C24E ; PRG $01B5 | CPU $C1B5 | 20 4E C2 tax ; PRG $01B8 | CPU $C1B8 | AA stx Ram_0330 ; PRG $01B9 | CPU $C1B9 | 8E 30 03 lda #$00 ; PRG $01BC | CPU $C1BC | A9 00 sta Ram_0331,x ; PRG $01BE | CPU $C1BE | 9D 31 03 iny ; PRG $01C1 | CPU $C1C1 | C8 lda GameplayLookupTable_C00A,y ; PRG $01C2 | CPU $C1C2 | B9 0A C0 sta ScratchIndex ; PRG $01C5 | CPU $C1C5 | 85 03 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State C1 C7. ; Local behavior: Executes the decoded transform flight state c1 c7 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_C1C7: dex ; PRG $01C7 | CPU $C1C7 | CA lda Zp_40,y ; PRG $01C8 | CPU $C1C8 | B9 40 00 and #$0F ; PRG $01CB | CPU $C1CB | 29 0F sta Ram_0331,x ; PRG $01CD | CPU $C1CD | 9D 31 03 dec ScratchValue1 ; PRG $01D0 | CPU $C1D0 | C6 01 beq UpdateSideScrollingGameplay_C1E6 ; PRG $01D2 | CPU $C1D2 | F0 12 dex ; PRG $01D4 | CPU $C1D4 | CA lda Zp_40,y ; PRG $01D5 | CPU $C1D5 | B9 40 00 and #$F0 ; PRG $01D8 | CPU $C1D8 | 29 F0 lsr a ; PRG $01DA | CPU $C1DA | 4A lsr a ; PRG $01DB | CPU $C1DB | 4A lsr a ; PRG $01DC | CPU $C1DC | 4A lsr a ; PRG $01DD | CPU $C1DD | 4A sta Ram_0331,x ; PRG $01DE | CPU $C1DE | 9D 31 03 dey ; PRG $01E1 | CPU $C1E1 | 88 dec ScratchValue1 ; PRG $01E2 | CPU $C1E2 | C6 01 bne TransformFlightState_C1C7 ; PRG $01E4 | CPU $C1E4 | D0 E1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C1 E6. ; Local behavior: Executes the decoded update side scrolling gameplay c1 e6 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C1E6: lda ScratchIndex ; PRG $01E6 | CPU $C1E6 | A5 03 and #$01 ; PRG $01E8 | CPU $C1E8 | 29 01 beq UpdateGameplayStateField_C1F7 ; PRG $01EA | CPU $C1EA | F0 0B ldy ScratchValue2 ; PRG $01EC | CPU $C1EC | A4 02 clc ; PRG $01EE | CPU $C1EE | 18 lda Zp_40,y ; PRG $01EF | CPU $C1EF | B9 40 00 adc #$37 ; PRG $01F2 | CPU $C1F2 | 69 37 sta Ram_0331,x ; PRG $01F4 | CPU $C1F4 | 9D 31 03 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field C1 F7. ; Local behavior: Executes the decoded update gameplay state field c1 f7 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_C1F7: rts ; PRG $01F7 | CPU $C1F7 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State C1 F8. ; Local behavior: Executes the decoded transform flight state c1 f8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_C1F8: ldy #$00 ; PRG $01F8 | CPU $C1F8 | A0 00 lda (ScratchValue2),y ; PRG $01FA | CPU $C1FA | B1 02 and #$0F ; PRG $01FC | CPU $C1FC | 29 0F sta DataPointerHi ; PRG $01FE | CPU $C1FE | 85 05 lda (ScratchValue2),y ; PRG $0200 | CPU $C200 | B1 02 lsr a ; PRG $0202 | CPU $C202 | 4A lsr a ; PRG $0203 | CPU $C203 | 4A lsr a ; PRG $0204 | CPU $C204 | 4A lsr a ; PRG $0205 | CPU $C205 | 4A sta DataPointerLo ; PRG $0206 | CPU $C206 | 85 04 ldx Ram_0330 ; PRG $0208 | CPU $C208 | AE 30 03 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C20 B. ; Local behavior: Executes the decoded update side scrolling gameplay c20 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C20B: lda ScratchValue1 ; PRG $020B | CPU $C20B | A5 01 sta Ram_0331,x ; PRG $020D | CPU $C20D | 9D 31 03 jsr UpdateSideScrollingGameplay_C24C ; PRG $0210 | CPU $C210 | 20 4C C2 lda ScratchValue0 ; PRG $0213 | CPU $C213 | A5 00 sta Ram_0331,x ; PRG $0215 | CPU $C215 | 9D 31 03 jsr UpdateSideScrollingGameplay_C24C ; PRG $0218 | CPU $C218 | 20 4C C2 lda DataPointerHi ; PRG $021B | CPU $C21B | A5 05 sta TemporaryPointerLo ; PRG $021D | CPU $C21D | 85 06 sta Ram_0331,x ; PRG $021F | CPU $C21F | 9D 31 03 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C222. ; Local behavior: Executes the decoded update side scrolling gameplay c222 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C222: jsr UpdateSideScrollingGameplay_C24C ; PRG $0222 | CPU $C222 | 20 4C C2 iny ; PRG $0225 | CPU $C225 | C8 lda (ScratchValue2),y ; PRG $0226 | CPU $C226 | B1 02 sta Ram_0331,x ; PRG $0228 | CPU $C228 | 9D 31 03 dec TemporaryPointerLo ; PRG $022B | CPU $C22B | C6 06 bne UpdateSideScrollingGameplay_C222 ; PRG $022D | CPU $C22D | D0 F3 jsr UpdateSideScrollingGameplay_C24C ; PRG $022F | CPU $C22F | 20 4C C2 stx Ram_0330 ; PRG $0232 | CPU $C232 | 8E 30 03 clc ; PRG $0235 | CPU $C235 | 18 lda #$20 ; PRG $0236 | CPU $C236 | A9 20 adc ScratchValue0 ; PRG $0238 | CPU $C238 | 65 00 sta ScratchValue0 ; PRG $023A | CPU $C23A | 85 00 lda #$00 ; PRG $023C | CPU $C23C | A9 00 adc ScratchValue1 ; PRG $023E | CPU $C23E | 65 01 sta ScratchValue1 ; PRG $0240 | CPU $C240 | 85 01 dec DataPointerLo ; PRG $0242 | CPU $C242 | C6 04 bne UpdateSideScrollingGameplay_C20B ; PRG $0244 | CPU $C244 | D0 C5 lda #$00 ; PRG $0246 | CPU $C246 | A9 00 sta Ram_0331,x ; PRG $0248 | CPU $C248 | 9D 31 03 rts ; PRG $024B | CPU $C24B | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C24 C. ; Local behavior: Executes the decoded update side scrolling gameplay c24 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C24C: inx ; PRG $024C | CPU $C24C | E8 txa ; PRG $024D | CPU $C24D | 8A ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C24 E. ; Local behavior: Executes the decoded update side scrolling gameplay c24 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C24E: cmp #$3A ; PRG $024E | CPU $C24E | C9 3A bcc UpdateGameplayStateField_C25C ; PRG $0250 | CPU $C250 | 90 0A ldx Ram_0330 ; PRG $0252 | CPU $C252 | AE 30 03 lda #$00 ; PRG $0255 | CPU $C255 | A9 00 sta Ram_0331,x ; PRG $0257 | CPU $C257 | 9D 31 03 pla ; PRG $025A | CPU $C25A | 68 pla ; PRG $025B | CPU $C25B | 68 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field C25 C. ; Local behavior: Executes the decoded update gameplay state field c25 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_C25C: rts ; PRG $025C | CPU $C25C | 60 .byte $A2,$FF,$D0,$02 ; PRG $025D | CPU $C25D ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C261. ; Local behavior: Executes the decoded update side scrolling gameplay c261 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C261: ldx #$00 ; PRG $0261 | CPU $C261 | A2 00 stx DataPointerLo ; PRG $0263 | CPU $C263 | 86 04 ldx #$00 ; PRG $0265 | CPU $C265 | A2 00 stx DataPointerHi ; PRG $0267 | CPU $C267 | 86 05 stx TemporaryPointerLo ; PRG $0269 | CPU $C269 | 86 06 stx TemporaryPointerHi ; PRG $026B | CPU $C26B | 86 07 lda ScratchValue1 ; PRG $026D | CPU $C26D | A5 01 and #$08 ; PRG $026F | CPU $C26F | 29 08 bne UpdateGameplayStateField_C274 ; PRG $0271 | CPU $C271 | D0 01 inx ; PRG $0273 | CPU $C273 | E8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field C274. ; Local behavior: Executes the decoded update gameplay state field c274 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_C274: lda ScratchValue0 ; PRG $0274 | CPU $C274 | A5 00 sta TemporaryPointerLo,x ; PRG $0276 | CPU $C276 | 95 06 lda ScratchValue1 ; PRG $0278 | CPU $C278 | A5 01 jsr TransformFlightState_C27E ; PRG $027A | CPU $C27A | 20 7E C2 rts ; PRG $027D | CPU $C27D | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State C27 E. ; Local behavior: Executes the decoded transform flight state c27 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_C27E: and #$07 ; PRG $027E | CPU $C27E | 29 07 asl a ; PRG $0280 | CPU $C280 | 0A asl a ; PRG $0281 | CPU $C281 | 0A tax ; PRG $0282 | CPU $C282 | AA lda DataPointerLo ; PRG $0283 | CPU $C283 | A5 04 beq UpdateSideScrollingGameplay_C2AE ; PRG $0285 | CPU $C285 | F0 27 lda Zp_44,x ; PRG $0287 | CPU $C287 | B5 44 beq UpdateSideScrollingGameplay_C2B2 ; PRG $0289 | CPU $C289 | F0 27 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C28 B. ; Local behavior: Executes the decoded update side scrolling gameplay c28 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C28B: clc ; PRG $028B | CPU $C28B | 18 lda Zp_47,x ; PRG $028C | CPU $C28C | B5 47 sta ScratchIndex ; PRG $028E | CPU $C28E | 85 03 lda TemporaryPointerHi ; PRG $0290 | CPU $C290 | A5 07 jsr CalculateMovementAndClamp_C303 ; PRG $0292 | CPU $C292 | 20 03 C3 sta Zp_47,x ; PRG $0295 | CPU $C295 | 95 47 lda Zp_46,x ; PRG $0297 | CPU $C297 | B5 46 sta ScratchIndex ; PRG $0299 | CPU $C299 | 85 03 lda TemporaryPointerLo ; PRG $029B | CPU $C29B | A5 06 jsr CalculateMovementAndClamp_C303 ; PRG $029D | CPU $C29D | 20 03 C3 sta Zp_46,x ; PRG $02A0 | CPU $C2A0 | 95 46 lda Zp_45,x ; PRG $02A2 | CPU $C2A2 | B5 45 sta ScratchIndex ; PRG $02A4 | CPU $C2A4 | 85 03 lda DataPointerHi ; PRG $02A6 | CPU $C2A6 | A5 05 jsr CalculateMovementAndClamp_C303 ; PRG $02A8 | CPU $C2A8 | 20 03 C3 sta Zp_45,x ; PRG $02AB | CPU $C2AB | 95 45 rts ; PRG $02AD | CPU $C2AD | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C2 AE. ; Local behavior: Executes the decoded update side scrolling gameplay c2 ae sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C2AE: lda Zp_44,x ; PRG $02AE | CPU $C2AE | B5 44 beq UpdateSideScrollingGameplay_C28B ; PRG $02B0 | CPU $C2B0 | F0 D9 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C2 B2. ; Local behavior: Executes the decoded update side scrolling gameplay c2 b2 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C2B2: sec ; PRG $02B2 | CPU $C2B2 | 38 lda Zp_47,x ; PRG $02B3 | CPU $C2B3 | B5 47 sta ScratchIndex ; PRG $02B5 | CPU $C2B5 | 85 03 lda TemporaryPointerHi ; PRG $02B7 | CPU $C2B7 | A5 07 jsr UpdateSideScrollingGameplay_C324 ; PRG $02B9 | CPU $C2B9 | 20 24 C3 sta Zp_47,x ; PRG $02BC | CPU $C2BC | 95 47 lda Zp_46,x ; PRG $02BE | CPU $C2BE | B5 46 sta ScratchIndex ; PRG $02C0 | CPU $C2C0 | 85 03 lda TemporaryPointerLo ; PRG $02C2 | CPU $C2C2 | A5 06 jsr UpdateSideScrollingGameplay_C324 ; PRG $02C4 | CPU $C2C4 | 20 24 C3 sta Zp_46,x ; PRG $02C7 | CPU $C2C7 | 95 46 lda Zp_45,x ; PRG $02C9 | CPU $C2C9 | B5 45 sta ScratchIndex ; PRG $02CB | CPU $C2CB | 85 03 lda DataPointerHi ; PRG $02CD | CPU $C2CD | A5 05 jsr UpdateSideScrollingGameplay_C324 ; PRG $02CF | CPU $C2CF | 20 24 C3 sta Zp_45,x ; PRG $02D2 | CPU $C2D2 | 95 45 lda Zp_45,x ; PRG $02D4 | CPU $C2D4 | B5 45 bne UpdateSideScrollingGameplay_C2E0 ; PRG $02D6 | CPU $C2D6 | D0 08 lda Zp_46,x ; PRG $02D8 | CPU $C2D8 | B5 46 bne UpdateSideScrollingGameplay_C2E0 ; PRG $02DA | CPU $C2DA | D0 04 lda Zp_47,x ; PRG $02DC | CPU $C2DC | B5 47 beq UpdateSideScrollingGameplay_C2E6 ; PRG $02DE | CPU $C2DE | F0 06 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C2 E0. ; Local behavior: Executes the decoded update side scrolling gameplay c2 e0 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C2E0: bcs UpdateGameplayStateField_C302 ; PRG $02E0 | CPU $C2E0 | B0 20 lda Zp_44,x ; PRG $02E2 | CPU $C2E2 | B5 44 eor #$FF ; PRG $02E4 | CPU $C2E4 | 49 FF ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C2 E6. ; Local behavior: Executes the decoded update side scrolling gameplay c2 e6 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C2E6: sta Zp_44,x ; PRG $02E6 | CPU $C2E6 | 95 44 sec ; PRG $02E8 | CPU $C2E8 | 38 lda #$00 ; PRG $02E9 | CPU $C2E9 | A9 00 sta ScratchIndex ; PRG $02EB | CPU $C2EB | 85 03 lda Zp_47,x ; PRG $02ED | CPU $C2ED | B5 47 jsr UpdateSideScrollingGameplay_C324 ; PRG $02EF | CPU $C2EF | 20 24 C3 sta Zp_47,x ; PRG $02F2 | CPU $C2F2 | 95 47 lda Zp_46,x ; PRG $02F4 | CPU $C2F4 | B5 46 jsr UpdateSideScrollingGameplay_C324 ; PRG $02F6 | CPU $C2F6 | 20 24 C3 sta Zp_46,x ; PRG $02F9 | CPU $C2F9 | 95 46 lda Zp_45,x ; PRG $02FB | CPU $C2FB | B5 45 jsr UpdateSideScrollingGameplay_C324 ; PRG $02FD | CPU $C2FD | 20 24 C3 sta Zp_45,x ; PRG $0300 | CPU $C300 | 95 45 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field C302. ; Local behavior: Executes the decoded update gameplay state field c302 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_C302: rts ; PRG $0302 | CPU $C302 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value C303. ; Local behavior: Executes the decoded calculate and clamp value c303 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_C303: jsr UpdateSideScrollingGameplay_C346 ; PRG $0303 | CPU $C303 | 20 46 C3 adc ScratchValue1 ; PRG $0306 | CPU $C306 | 65 01 cmp #$0A ; PRG $0308 | CPU $C308 | C9 0A bcc UpdateSideScrollingGameplay_C30E ; PRG $030A | CPU $C30A | 90 02 adc #$05 ; PRG $030C | CPU $C30C | 69 05 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C30 E. ; Local behavior: Executes the decoded update side scrolling gameplay c30 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C30E: clc ; PRG $030E | CPU $C30E | 18 adc ScratchValue2 ; PRG $030F | CPU $C30F | 65 02 sta ScratchValue2 ; PRG $0311 | CPU $C311 | 85 02 lda ScratchIndex ; PRG $0313 | CPU $C313 | A5 03 and #$F0 ; PRG $0315 | CPU $C315 | 29 F0 adc ScratchValue2 ; PRG $0317 | CPU $C317 | 65 02 bcc UpdateGameplayStateField_C31F ; PRG $0319 | CPU $C319 | 90 04 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field C31 B. ; Local behavior: Executes the decoded update gameplay state field c31 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_C31B: adc #$5F ; PRG $031B | CPU $C31B | 69 5F sec ; PRG $031D | CPU $C31D | 38 rts ; PRG $031E | CPU $C31E | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field C31 F. ; Local behavior: Executes the decoded update gameplay state field c31 f sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_C31F: cmp #$A0 ; PRG $031F | CPU $C31F | C9 A0 bcs UpdateGameplayStateField_C31B ; PRG $0321 | CPU $C321 | B0 F8 rts ; PRG $0323 | CPU $C323 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C324. ; Local behavior: Executes the decoded update side scrolling gameplay c324 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C324: jsr UpdateSideScrollingGameplay_C346 ; PRG $0324 | CPU $C324 | 20 46 C3 sbc ScratchValue1 ; PRG $0327 | CPU $C327 | E5 01 sta ScratchValue1 ; PRG $0329 | CPU $C329 | 85 01 bcs UpdateSideScrollingGameplay_C337 ; PRG $032B | CPU $C32B | B0 0A adc #$0A ; PRG $032D | CPU $C32D | 69 0A sta ScratchValue1 ; PRG $032F | CPU $C32F | 85 01 lda ScratchValue2 ; PRG $0331 | CPU $C331 | A5 02 adc #$0F ; PRG $0333 | CPU $C333 | 69 0F sta ScratchValue2 ; PRG $0335 | CPU $C335 | 85 02 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C337. ; Local behavior: Executes the decoded update side scrolling gameplay c337 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C337: lda ScratchIndex ; PRG $0337 | CPU $C337 | A5 03 and #$F0 ; PRG $0339 | CPU $C339 | 29 F0 sec ; PRG $033B | CPU $C33B | 38 sbc ScratchValue2 ; PRG $033C | CPU $C33C | E5 02 bcs UpdateGameplayStateField_C343 ; PRG $033E | CPU $C33E | B0 03 adc #$A0 ; PRG $0340 | CPU $C340 | 69 A0 clc ; PRG $0342 | CPU $C342 | 18 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field C343. ; Local behavior: Executes the decoded update gameplay state field c343 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_C343: ora ScratchValue1 ; PRG $0343 | CPU $C343 | 05 01 rts ; PRG $0345 | CPU $C345 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C346. ; Local behavior: Executes the decoded update side scrolling gameplay c346 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C346: pha ; PRG $0346 | CPU $C346 | 48 and #$0F ; PRG $0347 | CPU $C347 | 29 0F sta ScratchValue1 ; PRG $0349 | CPU $C349 | 85 01 pla ; PRG $034B | CPU $C34B | 68 and #$F0 ; PRG $034C | CPU $C34C | 29 F0 sta ScratchValue2 ; PRG $034E | CPU $C34E | 85 02 lda ScratchIndex ; PRG $0350 | CPU $C350 | A5 03 and #$0F ; PRG $0352 | CPU $C352 | 29 0F rts ; PRG $0354 | CPU $C354 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State C355. ; Local behavior: Executes the decoded transform flight state c355 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_C355: lda #$00 ; PRG $0355 | CPU $C355 | A9 00 sta DataPointerLo ; PRG $0357 | CPU $C357 | 85 04 clc ; PRG $0359 | CPU $C359 | 18 lda ScratchValue0 ; PRG $035A | CPU $C35A | A5 00 adc #$10 ; PRG $035C | CPU $C35C | 69 10 and #$F0 ; PRG $035E | CPU $C35E | 29 F0 lsr a ; PRG $0360 | CPU $C360 | 4A lsr a ; PRG $0361 | CPU $C361 | 4A tay ; PRG $0362 | CPU $C362 | A8 lda ScratchValue0 ; PRG $0363 | CPU $C363 | A5 00 and #$07 ; PRG $0365 | CPU $C365 | 29 07 asl a ; PRG $0367 | CPU $C367 | 0A asl a ; PRG $0368 | CPU $C368 | 0A tax ; PRG $0369 | CPU $C369 | AA ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C36 A. ; Local behavior: Executes the decoded update side scrolling gameplay c36 a sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C36A: lda Zp_40,y ; PRG $036A | CPU $C36A | B9 40 00 beq UpdateSideScrollingGameplay_C3C0 ; PRG $036D | CPU $C36D | F0 51 lda Zp_44,x ; PRG $036F | CPU $C36F | B5 44 beq UpdateSideScrollingGameplay_C399 ; PRG $0371 | CPU $C371 | F0 26 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C373. ; Local behavior: Executes the decoded update side scrolling gameplay c373 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C373: sec ; PRG $0373 | CPU $C373 | 38 lda Zp_43,y ; PRG $0374 | CPU $C374 | B9 43 00 sta ScratchIndex ; PRG $0377 | CPU $C377 | 85 03 lda Zp_47,x ; PRG $0379 | CPU $C379 | B5 47 jsr UpdateSideScrollingGameplay_C324 ; PRG $037B | CPU $C37B | 20 24 C3 lda Zp_42,y ; PRG $037E | CPU $C37E | B9 42 00 sta ScratchIndex ; PRG $0381 | CPU $C381 | 85 03 lda Zp_46,x ; PRG $0383 | CPU $C383 | B5 46 jsr UpdateSideScrollingGameplay_C324 ; PRG $0385 | CPU $C385 | 20 24 C3 lda Zp_41,y ; PRG $0388 | CPU $C388 | B9 41 00 sta ScratchIndex ; PRG $038B | CPU $C38B | 85 03 lda Zp_45,x ; PRG $038D | CPU $C38D | B5 45 jsr UpdateSideScrollingGameplay_C324 ; PRG $038F | CPU $C38F | 20 24 C3 bcs UpdateSideScrollingGameplay_C3C4 ; PRG $0392 | CPU $C392 | B0 30 lda Zp_40,y ; PRG $0394 | CPU $C394 | B9 40 00 bne UpdateSideScrollingGameplay_C3C9 ; PRG $0397 | CPU $C397 | D0 30 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C399. ; Local behavior: Executes the decoded update side scrolling gameplay c399 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C399: lda #$FF ; PRG $0399 | CPU $C399 | A9 FF sta DataPointerLo ; PRG $039B | CPU $C39B | 85 04 sec ; PRG $039D | CPU $C39D | 38 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C39 E. ; Local behavior: Executes the decoded update side scrolling gameplay c39 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C39E: tya ; PRG $039E | CPU $C39E | 98 bne UpdateGameplayStateField_C3BF ; PRG $039F | CPU $C39F | D0 1E bcc UpdateSideScrollingGameplay_C3B3 ; PRG $03A1 | CPU $C3A1 | 90 10 lda Zp_44,x ; PRG $03A3 | CPU $C3A3 | B5 44 sta Zp_40 ; PRG $03A5 | CPU $C3A5 | 85 40 lda Zp_45,x ; PRG $03A7 | CPU $C3A7 | B5 45 sta Zp_41 ; PRG $03A9 | CPU $C3A9 | 85 41 lda Zp_46,x ; PRG $03AB | CPU $C3AB | B5 46 sta Zp_42 ; PRG $03AD | CPU $C3AD | 85 42 lda Zp_47,x ; PRG $03AF | CPU $C3AF | B5 47 sta Zp_43 ; PRG $03B1 | CPU $C3B1 | 85 43 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C3 B3. ; Local behavior: Executes the decoded update side scrolling gameplay c3 b3 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C3B3: lda ScratchValue0 ; PRG $03B3 | CPU $C3B3 | A5 00 and #$08 ; PRG $03B5 | CPU $C3B5 | 29 08 beq UpdateGameplayStateField_C3BF ; PRG $03B7 | CPU $C3B7 | F0 06 dex ; PRG $03B9 | CPU $C3B9 | CA dex ; PRG $03BA | CPU $C3BA | CA dex ; PRG $03BB | CPU $C3BB | CA dex ; PRG $03BC | CPU $C3BC | CA bpl UpdateSideScrollingGameplay_C36A ; PRG $03BD | CPU $C3BD | 10 AB ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field C3 BF. ; Local behavior: Executes the decoded update gameplay state field c3 bf sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_C3BF: rts ; PRG $03BF | CPU $C3BF | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C3 C0. ; Local behavior: Executes the decoded update side scrolling gameplay c3 c0 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C3C0: lda Zp_44,x ; PRG $03C0 | CPU $C3C0 | B5 44 beq UpdateSideScrollingGameplay_C373 ; PRG $03C2 | CPU $C3C2 | F0 AF ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C3 C4. ; Local behavior: Executes the decoded update side scrolling gameplay c3 c4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C3C4: lda Zp_40,y ; PRG $03C4 | CPU $C3C4 | B9 40 00 bne UpdateSideScrollingGameplay_C399 ; PRG $03C7 | CPU $C3C7 | D0 D0 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C3 C9. ; Local behavior: Executes the decoded update side scrolling gameplay c3 c9 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C3C9: clc ; PRG $03C9 | CPU $C3C9 | 18 bcc UpdateSideScrollingGameplay_C39E ; PRG $03CA | CPU $C3CA | 90 D2 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C3 CC. ; Local behavior: Executes the decoded update side scrolling gameplay c3 cc sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C3CC: ldx #$0E ; PRG $03CC | CPU $C3CC | A2 0E dec Zp_D0 ; PRG $03CE | CPU $C3CE | C6 D0 bpl UpdateSideScrollingGameplay_C3D8 ; PRG $03D0 | CPU $C3D0 | 10 06 lda #$0A ; PRG $03D2 | CPU $C3D2 | A9 0A sta Zp_D0 ; PRG $03D4 | CPU $C3D4 | 85 D0 ldx #$1E ; PRG $03D6 | CPU $C3D6 | A2 1E ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C3 D8. ; Local behavior: Executes the decoded update side scrolling gameplay c3 d8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C3D8: lda Zp_D1,x ; PRG $03D8 | CPU $C3D8 | B5 D1 beq UpdateGameplayStateField_C3DE ; PRG $03DA | CPU $C3DA | F0 02 dec Zp_D1,x ; PRG $03DC | CPU $C3DC | D6 D1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field C3 DE. ; Local behavior: Executes the decoded update gameplay state field c3 de sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_C3DE: dex ; PRG $03DE | CPU $C3DE | CA bpl UpdateSideScrollingGameplay_C3D8 ; PRG $03DF | CPU $C3DF | 10 F7 rts ; PRG $03E1 | CPU $C3E1 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C3 E2. ; Local behavior: Executes the decoded update side scrolling gameplay c3 e2 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C3E2: ldx Ram_0330 ; PRG $03E2 | CPU $C3E2 | AE 30 03 lda ScratchValue1 ; PRG $03E5 | CPU $C3E5 | A5 01 sta Ram_0331,x ; PRG $03E7 | CPU $C3E7 | 9D 31 03 jsr UpdateSideScrollingGameplay_C24C ; PRG $03EA | CPU $C3EA | 20 4C C2 lda ScratchValue0 ; PRG $03ED | CPU $C3ED | A5 00 sta Ram_0331,x ; PRG $03EF | CPU $C3EF | 9D 31 03 jsr UpdateSideScrollingGameplay_C24C ; PRG $03F2 | CPU $C3F2 | 20 4C C2 lda #$01 ; PRG $03F5 | CPU $C3F5 | A9 01 sta Ram_0331,x ; PRG $03F7 | CPU $C3F7 | 9D 31 03 jsr UpdateSideScrollingGameplay_C24C ; PRG $03FA | CPU $C3FA | 20 4C C2 tya ; PRG $03FD | CPU $C3FD | 98 sta Ram_0331,x ; PRG $03FE | CPU $C3FE | 9D 31 03 jsr UpdateSideScrollingGameplay_C24C ; PRG $0401 | CPU $C401 | 20 4C C2 lda #$00 ; PRG $0404 | CPU $C404 | A9 00 sta Ram_0331,x ; PRG $0406 | CPU $C406 | 9D 31 03 stx Ram_0330 ; PRG $0409 | CPU $C409 | 8E 30 03 rts ; PRG $040C | CPU $C40C | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C40 D. ; Local behavior: Executes the decoded update side scrolling gameplay c40 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C40D: lda Zp_1D ; PRG $040D | CPU $C40D | A5 1D and #$02 ; PRG $040F | CPU $C40F | 29 02 sta ScratchValue0 ; PRG $0411 | CPU $C411 | 85 00 lda Zp_1E ; PRG $0413 | CPU $C413 | A5 1E and #$02 ; PRG $0415 | CPU $C415 | 29 02 eor ScratchValue0 ; PRG $0417 | CPU $C417 | 45 00 clc ; PRG $0419 | CPU $C419 | 18 beq TransformFlightState_C41D ; PRG $041A | CPU $C41A | F0 01 sec ; PRG $041C | CPU $C41C | 38 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State C41 D. ; Local behavior: Executes the decoded transform flight state c41 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_C41D: ror Zp_1D ; PRG $041D | CPU $C41D | 66 1D ror Zp_1E ; PRG $041F | CPU $C41F | 66 1E ror Zp_1F ; PRG $0421 | CPU $C421 | 66 1F ror Zp_20 ; PRG $0423 | CPU $C423 | 66 20 ror Zp_21 ; PRG $0425 | CPU $C425 | 66 21 ror Zp_22 ; PRG $0427 | CPU $C427 | 66 22 ror Zp_23 ; PRG $0429 | CPU $C429 | 66 23 ror Zp_24 ; PRG $042B | CPU $C42B | 66 24 ror Zp_25 ; PRG $042D | CPU $C42D | 66 25 ror Zp_26 ; PRG $042F | CPU $C42F | 66 26 ror Zp_27 ; PRG $0431 | CPU $C431 | 66 27 rts ; PRG $0433 | CPU $C433 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Poll Ship Controllers. ; Local behavior: Executes the decoded poll ship controllers sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- PollShipControllers: lda #$01 ; PRG $0434 | CPU $C434 | A9 01 sta JOY1 ; PRG $0436 | CPU $C436 | 8D 16 40 ldx #$00 ; PRG $0439 | CPU $C439 | A2 00 lda #$00 ; PRG $043B | CPU $C43B | A9 00 sta JOY1 ; PRG $043D | CPU $C43D | 8D 16 40 jsr ReadControllerShiftRegister ; PRG $0440 | CPU $C440 | 20 48 C4 inx ; PRG $0443 | CPU $C443 | E8 jsr ReadControllerShiftRegister ; PRG $0444 | CPU $C444 | 20 48 C4 rts ; PRG $0447 | CPU $C447 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Read Controller Shift Register. ; Local behavior: Executes the decoded read controller shift register sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- ReadControllerShiftRegister: ldy #$08 ; PRG $0448 | CPU $C448 | A0 08 ; ----------------------------------------------------------------------------- ; Global purpose: Read Ship Controls C44 A. ; Local behavior: Executes the decoded read ship controls c44 a sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- ReadShipControls_C44A: pha ; PRG $044A | CPU $C44A | 48 lda JOY1,x ; PRG $044B | CPU $C44B | BD 16 40 sta ScratchValue0 ; PRG $044E | CPU $C44E | 85 00 lsr a ; PRG $0450 | CPU $C450 | 4A ora ScratchValue0 ; PRG $0451 | CPU $C451 | 05 00 lsr a ; PRG $0453 | CPU $C453 | 4A pla ; PRG $0454 | CPU $C454 | 68 rol a ; PRG $0455 | CPU $C455 | 2A dey ; PRG $0456 | CPU $C456 | 88 bne ReadShipControls_C44A ; PRG $0457 | CPU $C457 | D0 F1 ldy PreviousControllerButtons,x ; PRG $0459 | CPU $C459 | B4 19 sty ScratchValue0 ; PRG $045B | CPU $C45B | 84 00 sta PreviousControllerButtons,x ; PRG $045D | CPU $C45D | 95 19 and #$FF ; PRG $045F | CPU $C45F | 29 FF bpl DeriveNewlyPressedButtons ; PRG $0461 | CPU $C461 | 10 06 bit ScratchValue0 ; PRG $0463 | CPU $C463 | 24 00 bpl DeriveNewlyPressedButtons ; PRG $0465 | CPU $C465 | 10 02 and #$7F ; PRG $0467 | CPU $C467 | 29 7F ; ----------------------------------------------------------------------------- ; Global purpose: Process Game Logic C469. ; Local behavior: Executes the decoded process game logic c469 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- DeriveNewlyPressedButtons: ldy CurrentControllerButtons,x ; PRG $0469 | CPU $C469 | B4 1B sta CurrentControllerButtons,x ; PRG $046B | CPU $C46B | 95 1B tya ; PRG $046D | CPU $C46D | 98 and #$0F ; PRG $046E | CPU $C46E | 29 0F and CurrentControllerButtons,x ; PRG $0470 | CPU $C470 | 35 1B beq UpdateGameplayStateField_C47A ; PRG $0472 | CPU $C472 | F0 06 ora #$F0 ; PRG $0474 | CPU $C474 | 09 F0 and CurrentControllerButtons,x ; PRG $0476 | CPU $C476 | 35 1B sta CurrentControllerButtons,x ; PRG $0478 | CPU $C478 | 95 1B ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field C47 A. ; Local behavior: Executes the decoded update gameplay state field c47 a sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_C47A: rts ; PRG $047A | CPU $C47A | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field C47 B. ; Local behavior: Executes the decoded update gameplay state field c47 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_C47B: rts ; PRG $047B | CPU $C47B | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State C47 C. ; Local behavior: Executes the decoded transform flight state c47 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_C47C: ldy #$0B ; PRG $047C | CPU $C47C | A0 0B lda (ScratchValue0),y ; PRG $047E | CPU $C47E | B1 00 sta ScratchValue2 ; PRG $0480 | CPU $C480 | 85 02 lda #$02 ; PRG $0482 | CPU $C482 | A9 02 sta ScratchIndex ; PRG $0484 | CPU $C484 | 85 03 dey ; PRG $0486 | CPU $C486 | 88 lda (ScratchValue0),y ; PRG $0487 | CPU $C487 | B1 00 lsr a ; PRG $0489 | CPU $C489 | 4A lsr a ; PRG $048A | CPU $C48A | 4A lsr a ; PRG $048B | CPU $C48B | 4A lsr a ; PRG $048C | CPU $C48C | 4A beq UpdateGameplayStateField_C47B ; PRG $048D | CPU $C48D | F0 EC sta DataPointerLo ; PRG $048F | CPU $C48F | 85 04 sta Zp_0C ; PRG $0491 | CPU $C491 | 85 0C lda (ScratchValue0),y ; PRG $0493 | CPU $C493 | B1 00 and #$0F ; PRG $0495 | CPU $C495 | 29 0F beq UpdateGameplayStateField_C47B ; PRG $0497 | CPU $C497 | F0 E2 sta DataPointerHi ; PRG $0499 | CPU $C499 | 85 05 ldy #$01 ; PRG $049B | CPU $C49B | A0 01 lda (ScratchValue0),y ; PRG $049D | CPU $C49D | B1 00 tax ; PRG $049F | CPU $C49F | AA dey ; PRG $04A0 | CPU $C4A0 | 88 lda (ScratchValue0),y ; PRG $04A1 | CPU $C4A1 | B1 00 beq TransformFlightState_C4A7 ; PRG $04A3 | CPU $C4A3 | F0 02 ldx #$F4 ; PRG $04A5 | CPU $C4A5 | A2 F4 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State C4 A7. ; Local behavior: Executes the decoded transform flight state c4 a7 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_C4A7: stx Zp_08 ; PRG $04A7 | CPU $C4A7 | 86 08 ldy #$08 ; PRG $04A9 | CPU $C4A9 | A0 08 lda (ScratchValue0),y ; PRG $04AB | CPU $C4AB | B1 00 lsr a ; PRG $04AD | CPU $C4AD | 4A and #$08 ; PRG $04AE | CPU $C4AE | 29 08 beq TransformFlightState_C4B4 ; PRG $04B0 | CPU $C4B0 | F0 02 lda #$80 ; PRG $04B2 | CPU $C4B2 | A9 80 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State C4 B4. ; Local behavior: Executes the decoded transform flight state c4 b4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_C4B4: ror a ; PRG $04B4 | CPU $C4B4 | 6A sta Zp_09 ; PRG $04B5 | CPU $C4B5 | 85 09 iny ; PRG $04B7 | CPU $C4B7 | C8 lda (ScratchValue0),y ; PRG $04B8 | CPU $C4B8 | B1 00 and #$23 ; PRG $04BA | CPU $C4BA | 29 23 ora Zp_09 ; PRG $04BC | CPU $C4BC | 05 09 sta Zp_09 ; PRG $04BE | CPU $C4BE | 85 09 ldy #$03 ; PRG $04C0 | CPU $C4C0 | A0 03 lda (ScratchValue0),y ; PRG $04C2 | CPU $C4C2 | B1 00 sta Zp_0A ; PRG $04C4 | CPU $C4C4 | 85 0A lda DataPointerHi ; PRG $04C6 | CPU $C4C6 | A5 05 sta TemporaryPointerHi ; PRG $04C8 | CPU $C4C8 | 85 07 ldy #$00 ; PRG $04CA | CPU $C4CA | A0 00 sty Zp_0B ; PRG $04CC | CPU $C4CC | 84 0B ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C4 CE. ; Local behavior: Executes the decoded update side scrolling gameplay c4 ce sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C4CE: lda DataPointerLo ; PRG $04CE | CPU $C4CE | A5 04 sta TemporaryPointerLo ; PRG $04D0 | CPU $C4D0 | 85 06 ldx Zp_08 ; PRG $04D2 | CPU $C4D2 | A6 08 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value C4 D4. ; Local behavior: Executes the decoded calculate and clamp value c4 d4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_C4D4: txa ; PRG $04D4 | CPU $C4D4 | 8A sta (ScratchValue2),y ; PRG $04D5 | CPU $C4D5 | 91 02 cmp #$F4 ; PRG $04D7 | CPU $C4D7 | C9 F4 beq UpdateSideScrollingGameplay_C4DF ; PRG $04D9 | CPU $C4D9 | F0 04 clc ; PRG $04DB | CPU $C4DB | 18 adc #$08 ; PRG $04DC | CPU $C4DC | 69 08 tax ; PRG $04DE | CPU $C4DE | AA ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C4 DF. ; Local behavior: Executes the decoded update side scrolling gameplay c4 df sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C4DF: iny ; PRG $04DF | CPU $C4DF | C8 iny ; PRG $04E0 | CPU $C4E0 | C8 lda Zp_09 ; PRG $04E1 | CPU $C4E1 | A5 09 sta (ScratchValue2),y ; PRG $04E3 | CPU $C4E3 | 91 02 iny ; PRG $04E5 | CPU $C4E5 | C8 lda Zp_0A ; PRG $04E6 | CPU $C4E6 | A5 0A sta (ScratchValue2),y ; PRG $04E8 | CPU $C4E8 | 91 02 iny ; PRG $04EA | CPU $C4EA | C8 inc Zp_0B ; PRG $04EB | CPU $C4EB | E6 0B dec TemporaryPointerLo ; PRG $04ED | CPU $C4ED | C6 06 bne CalculateMovementAndClamp_C4D4 ; PRG $04EF | CPU $C4EF | D0 E3 lda Zp_0A ; PRG $04F1 | CPU $C4F1 | A5 0A clc ; PRG $04F3 | CPU $C4F3 | 18 adc #$08 ; PRG $04F4 | CPU $C4F4 | 69 08 sta Zp_0A ; PRG $04F6 | CPU $C4F6 | 85 0A dec TemporaryPointerHi ; PRG $04F8 | CPU $C4F8 | C6 07 bne UpdateSideScrollingGameplay_C4CE ; PRG $04FA | CPU $C4FA | D0 D2 lda #$00 ; PRG $04FC | CPU $C4FC | A9 00 sta TemporaryPointerHi ; PRG $04FE | CPU $C4FE | 85 07 sta Zp_08 ; PRG $0500 | CPU $C500 | 85 08 sta Zp_0A ; PRG $0502 | CPU $C502 | 85 0A clc ; PRG $0504 | CPU $C504 | 18 ldx Zp_0B ; PRG $0505 | CPU $C505 | A6 0B ldy #$05 ; PRG $0507 | CPU $C507 | A0 05 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C509. ; Local behavior: Executes the decoded update side scrolling gameplay c509 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C509: lda (ScratchValue0),y ; PRG $0509 | CPU $C509 | B1 00 clc ; PRG $050B | CPU $C50B | 18 adc TemporaryPointerHi ; PRG $050C | CPU $C50C | 65 07 sta TemporaryPointerHi ; PRG $050E | CPU $C50E | 85 07 lda #$00 ; PRG $0510 | CPU $C510 | A9 00 adc Zp_08 ; PRG $0512 | CPU $C512 | 65 08 sta Zp_08 ; PRG $0514 | CPU $C514 | 85 08 dex ; PRG $0516 | CPU $C516 | CA bne UpdateSideScrollingGameplay_C509 ; PRG $0517 | CPU $C517 | D0 F0 inc ScratchValue2 ; PRG $0519 | CPU $C519 | E6 02 ldy #$07 ; PRG $051B | CPU $C51B | A0 07 clc ; PRG $051D | CPU $C51D | 18 lda (ScratchValue0),y ; PRG $051E | CPU $C51E | B1 00 adc TemporaryPointerHi ; PRG $0520 | CPU $C520 | 65 07 sta TemporaryPointerHi ; PRG $0522 | CPU $C522 | 85 07 dey ; PRG $0524 | CPU $C524 | 88 lda (ScratchValue0),y ; PRG $0525 | CPU $C525 | B1 00 ldy #$00 ; PRG $0527 | CPU $C527 | A0 00 adc Zp_08 ; PRG $0529 | CPU $C529 | 65 08 sta Zp_08 ; PRG $052B | CPU $C52B | 85 08 bmi UpdateSideScrollingGameplay_C533 ; PRG $052D | CPU $C52D | 30 04 dec Zp_0A ; PRG $052F | CPU $C52F | C6 0A ldy TemporaryPointerHi ; PRG $0531 | CPU $C531 | A4 07 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C533. ; Local behavior: Executes the decoded update side scrolling gameplay c533 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C533: lda #$FF ; PRG $0533 | CPU $C533 | A9 FF bit Zp_09 ; PRG $0535 | CPU $C535 | 24 09 bmi UpdateSideScrollingGameplay_C55A ; PRG $0537 | CPU $C537 | 30 21 bvs UpdateSideScrollingGameplay_C55C ; PRG $0539 | CPU $C539 | 70 21 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C53 B. ; Local behavior: Executes the decoded update side scrolling gameplay c53 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C53B: lda Zp_0A ; PRG $053B | CPU $C53B | A5 0A bpl UpdateSideScrollingGameplay_C555 ; PRG $053D | CPU $C53D | 10 16 tya ; PRG $053F | CPU $C53F | 98 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C540. ; Local behavior: Executes the decoded update side scrolling gameplay c540 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C540: sta (ScratchValue2,x) ; PRG $0540 | CPU $C540 | 81 02 dey ; PRG $0542 | CPU $C542 | 88 bit Zp_09 ; PRG $0543 | CPU $C543 | 24 09 bmi UpdateSideScrollingGameplay_C549 ; PRG $0545 | CPU $C545 | 30 02 iny ; PRG $0547 | CPU $C547 | C8 iny ; PRG $0548 | CPU $C548 | C8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C549. ; Local behavior: Executes the decoded update side scrolling gameplay c549 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C549: lda #$04 ; PRG $0549 | CPU $C549 | A9 04 clc ; PRG $054B | CPU $C54B | 18 adc ScratchValue2 ; PRG $054C | CPU $C54C | 65 02 sta ScratchValue2 ; PRG $054E | CPU $C54E | 85 02 dec Zp_0B ; PRG $0550 | CPU $C550 | C6 0B bne UpdateSideScrollingGameplay_C53B ; PRG $0552 | CPU $C552 | D0 E7 rts ; PRG $0554 | CPU $C554 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C555. ; Local behavior: Executes the decoded update side scrolling gameplay c555 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C555: lda (TemporaryPointerHi),y ; PRG $0555 | CPU $C555 | B1 07 jmp UpdateSideScrollingGameplay_C540 ; PRG $0557 | CPU $C557 | 4C 40 C5 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C55 A. ; Local behavior: Executes the decoded update side scrolling gameplay c55 a sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C55A: bvc UpdateSideScrollingGameplay_C56E ; PRG $055A | CPU $C55A | 50 12 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C55 C. ; Local behavior: Executes the decoded update side scrolling gameplay c55 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C55C: tya ; PRG $055C | CPU $C55C | 98 clc ; PRG $055D | CPU $C55D | 18 adc Zp_0B ; PRG $055E | CPU $C55E | 65 0B tay ; PRG $0560 | CPU $C560 | A8 dey ; PRG $0561 | CPU $C561 | 88 lda #$FF ; PRG $0562 | CPU $C562 | A9 FF bit Zp_09 ; PRG $0564 | CPU $C564 | 24 09 bmi UpdateSideScrollingGameplay_C53B ; PRG $0566 | CPU $C566 | 30 D3 eor Zp_0C ; PRG $0568 | CPU $C568 | 45 0C sta Zp_0C ; PRG $056A | CPU $C56A | 85 0C inc Zp_0C ; PRG $056C | CPU $C56C | E6 0C ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C56 E. ; Local behavior: Executes the decoded update side scrolling gameplay c56 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C56E: tya ; PRG $056E | CPU $C56E | 98 clc ; PRG $056F | CPU $C56F | 18 adc Zp_0C ; PRG $0570 | CPU $C570 | 65 0C tay ; PRG $0572 | CPU $C572 | A8 lda DataPointerLo ; PRG $0573 | CPU $C573 | A5 04 sta TemporaryPointerLo ; PRG $0575 | CPU $C575 | 85 06 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C577. ; Local behavior: Executes the decoded update side scrolling gameplay c577 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C577: dey ; PRG $0577 | CPU $C577 | 88 bit Zp_09 ; PRG $0578 | CPU $C578 | 24 09 bmi UpdateSideScrollingGameplay_C57E ; PRG $057A | CPU $C57A | 30 02 iny ; PRG $057C | CPU $C57C | C8 iny ; PRG $057D | CPU $C57D | C8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C57 E. ; Local behavior: Executes the decoded update side scrolling gameplay c57 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C57E: lda (TemporaryPointerHi),y ; PRG $057E | CPU $C57E | B1 07 bit Zp_0A ; PRG $0580 | CPU $C580 | 24 0A bpl UpdateSideScrollingGameplay_C585 ; PRG $0582 | CPU $C582 | 10 01 tya ; PRG $0584 | CPU $C584 | 98 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C585. ; Local behavior: Executes the decoded update side scrolling gameplay c585 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C585: sta (ScratchValue2,x) ; PRG $0585 | CPU $C585 | 81 02 lda #$04 ; PRG $0587 | CPU $C587 | A9 04 clc ; PRG $0589 | CPU $C589 | 18 adc ScratchValue2 ; PRG $058A | CPU $C58A | 65 02 sta ScratchValue2 ; PRG $058C | CPU $C58C | 85 02 dec TemporaryPointerLo ; PRG $058E | CPU $C58E | C6 06 bne UpdateSideScrollingGameplay_C577 ; PRG $0590 | CPU $C590 | D0 E5 tya ; PRG $0592 | CPU $C592 | 98 clc ; PRG $0593 | CPU $C593 | 18 adc Zp_0C ; PRG $0594 | CPU $C594 | 65 0C tay ; PRG $0596 | CPU $C596 | A8 dec DataPointerHi ; PRG $0597 | CPU $C597 | C6 05 bne UpdateSideScrollingGameplay_C56E ; PRG $0599 | CPU $C599 | D0 D3 rts ; PRG $059B | CPU $C59B | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value C59 C. ; Local behavior: Executes the decoded calculate and clamp value c59 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_C59C: lda DataPointerLo ; PRG $059C | CPU $C59C | A5 04 pha ; PRG $059E | CPU $C59E | 48 clc ; PRG $059F | CPU $C59F | 18 ldy #$00 ; PRG $05A0 | CPU $C5A0 | A0 00 lda (ScratchValue0),y ; PRG $05A2 | CPU $C5A2 | B1 00 bne UpdateGameplayStateField_C5FF ; PRG $05A4 | CPU $C5A4 | D0 59 lda (ScratchValue2),y ; PRG $05A6 | CPU $C5A6 | B1 02 bne UpdateGameplayStateField_C5FF ; PRG $05A8 | CPU $C5A8 | D0 55 ldy #$0C ; PRG $05AA | CPU $C5AA | A0 0C lda (ScratchValue2),y ; PRG $05AC | CPU $C5AC | B1 02 ldy #$01 ; PRG $05AE | CPU $C5AE | A0 01 adc (ScratchValue2),y ; PRG $05B0 | CPU $C5B0 | 71 02 sta DataPointerLo ; PRG $05B2 | CPU $C5B2 | 85 04 lda (ScratchValue0),y ; PRG $05B4 | CPU $C5B4 | B1 00 ldy #$0E ; PRG $05B6 | CPU $C5B6 | A0 0E clc ; PRG $05B8 | CPU $C5B8 | 18 adc (ScratchValue0),y ; PRG $05B9 | CPU $C5B9 | 71 00 cmp DataPointerLo ; PRG $05BB | CPU $C5BB | C5 04 bcc UpdateGameplayStateField_C5FF ; PRG $05BD | CPU $C5BD | 90 40 ldy #$0C ; PRG $05BF | CPU $C5BF | A0 0C lda (ScratchValue0),y ; PRG $05C1 | CPU $C5C1 | B1 00 ldy #$01 ; PRG $05C3 | CPU $C5C3 | A0 01 clc ; PRG $05C5 | CPU $C5C5 | 18 adc (ScratchValue0),y ; PRG $05C6 | CPU $C5C6 | 71 00 sta DataPointerLo ; PRG $05C8 | CPU $C5C8 | 85 04 lda (ScratchValue2),y ; PRG $05CA | CPU $C5CA | B1 02 ldy #$0E ; PRG $05CC | CPU $C5CC | A0 0E clc ; PRG $05CE | CPU $C5CE | 18 adc (ScratchValue2),y ; PRG $05CF | CPU $C5CF | 71 02 cmp DataPointerLo ; PRG $05D1 | CPU $C5D1 | C5 04 bcc UpdateGameplayStateField_C5FF ; PRG $05D3 | CPU $C5D3 | 90 2A ldy #$0D ; PRG $05D5 | CPU $C5D5 | A0 0D lda (ScratchValue2),y ; PRG $05D7 | CPU $C5D7 | B1 02 ldy #$03 ; PRG $05D9 | CPU $C5D9 | A0 03 clc ; PRG $05DB | CPU $C5DB | 18 adc (ScratchValue2),y ; PRG $05DC | CPU $C5DC | 71 02 sta DataPointerLo ; PRG $05DE | CPU $C5DE | 85 04 lda (ScratchValue0),y ; PRG $05E0 | CPU $C5E0 | B1 00 ldy #$0F ; PRG $05E2 | CPU $C5E2 | A0 0F clc ; PRG $05E4 | CPU $C5E4 | 18 adc (ScratchValue0),y ; PRG $05E5 | CPU $C5E5 | 71 00 cmp DataPointerLo ; PRG $05E7 | CPU $C5E7 | C5 04 bcc UpdateGameplayStateField_C5FF ; PRG $05E9 | CPU $C5E9 | 90 14 ldy #$0D ; PRG $05EB | CPU $C5EB | A0 0D lda (ScratchValue0),y ; PRG $05ED | CPU $C5ED | B1 00 ldy #$03 ; PRG $05EF | CPU $C5EF | A0 03 clc ; PRG $05F1 | CPU $C5F1 | 18 adc (ScratchValue0),y ; PRG $05F2 | CPU $C5F2 | 71 00 sta DataPointerLo ; PRG $05F4 | CPU $C5F4 | 85 04 lda (ScratchValue2),y ; PRG $05F6 | CPU $C5F6 | B1 02 ldy #$0F ; PRG $05F8 | CPU $C5F8 | A0 0F clc ; PRG $05FA | CPU $C5FA | 18 adc (ScratchValue2),y ; PRG $05FB | CPU $C5FB | 71 02 cmp DataPointerLo ; PRG $05FD | CPU $C5FD | C5 04 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field C5 FF. ; Local behavior: Executes the decoded update gameplay state field c5 ff sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_C5FF: pla ; PRG $05FF | CPU $C5FF | 68 sta DataPointerLo ; PRG $0600 | CPU $C600 | 85 04 rts ; PRG $0602 | CPU $C602 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C603. ; Local behavior: Executes the decoded update side scrolling gameplay c603 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C603: sta ScratchValue0 ; PRG $0603 | CPU $C603 | 85 00 stx ScratchValue1 ; PRG $0605 | CPU $C605 | 86 01 ldy #$04 ; PRG $0607 | CPU $C607 | A0 04 lda (ScratchValue0),y ; PRG $0609 | CPU $C609 | B1 00 sta ScratchIndex ; PRG $060B | CPU $C60B | 85 03 dey ; PRG $060D | CPU $C60D | 88 lda (ScratchValue0),y ; PRG $060E | CPU $C60E | B1 00 sta ScratchValue2 ; PRG $0610 | CPU $C610 | 85 02 dey ; PRG $0612 | CPU $C612 | 88 lda (ScratchValue0),y ; PRG $0613 | CPU $C613 | B1 00 sta DataPointerHi ; PRG $0615 | CPU $C615 | 85 05 dey ; PRG $0617 | CPU $C617 | 88 lda (ScratchValue0),y ; PRG $0618 | CPU $C618 | B1 00 sta DataPointerLo ; PRG $061A | CPU $C61A | 85 04 dey ; PRG $061C | CPU $C61C | 88 lda (ScratchValue0),y ; PRG $061D | CPU $C61D | B1 00 sta TemporaryPointerLo ; PRG $061F | CPU $C61F | 85 06 lda #$05 ; PRG $0621 | CPU $C621 | A9 05 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C623. ; Local behavior: Executes the decoded update side scrolling gameplay c623 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C623: clc ; PRG $0623 | CPU $C623 | 18 adc ScratchValue0,y ; PRG $0624 | CPU $C624 | 79 00 00 sta ScratchValue0,y ; PRG $0627 | CPU $C627 | 99 00 00 lda #$00 ; PRG $062A | CPU $C62A | A9 00 adc ScratchValue1,y ; PRG $062C | CPU $C62C | 79 01 00 sta ScratchValue1,y ; PRG $062F | CPU $C62F | 99 01 00 ldy #$00 ; PRG $0632 | CPU $C632 | A0 00 ldx DataPointerHi ; PRG $0634 | CPU $C634 | A6 05 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C636. ; Local behavior: Executes the decoded update side scrolling gameplay c636 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C636: lda (ScratchValue0),y ; PRG $0636 | CPU $C636 | B1 00 sta (ScratchValue2),y ; PRG $0638 | CPU $C638 | 91 02 iny ; PRG $063A | CPU $C63A | C8 dex ; PRG $063B | CPU $C63B | CA bne UpdateSideScrollingGameplay_C636 ; PRG $063C | CPU $C63C | D0 F8 lda TemporaryPointerLo ; PRG $063E | CPU $C63E | A5 06 ldy #$02 ; PRG $0640 | CPU $C640 | A0 02 dec DataPointerLo ; PRG $0642 | CPU $C642 | C6 04 bne UpdateSideScrollingGameplay_C623 ; PRG $0644 | CPU $C644 | D0 DD rts ; PRG $0646 | CPU $C646 | 60 .byte $20,$44,$45,$42,$55,$47,$45,$44,$20,$42,$59,$20,$54,$4F,$53,$48 ; PRG $0647 | CPU $C647 .byte $49,$4F,$20,$53,$45,$4E,$47,$4F,$4B,$55,$20,$20,$28,$20,$49,$6E ; PRG $0657 | CPU $C657 .byte $74,$65,$6C,$6C,$69,$67,$65,$6E,$74,$20,$53,$79,$73,$74,$65,$6D ; PRG $0667 | CPU $C667 .byte $73,$20,$29,$20,$20,$31,$39,$38,$37,$2F,$30,$37,$2F,$33,$31,$20 ; PRG $0677 | CPU $C677 .byte $31,$35,$3A,$30,$30,$20,$0A,$EA ; PRG $0687 | CPU $C687 GameplayConstantData_C68F: .byte $C7 ; PRG $068F | CPU $C68F GameplayConstantData_C690: .byte $EA,$A0,$EA,$E8,$EA,$02,$EE,$57,$EE,$66,$EE,$14,$EF,$AB,$B2,$B3 ; PRG $0690 | CPU $C690 .byte $AC,$B4,$B5,$AD,$B6,$B7,$A8,$B2,$B3,$A9,$B4,$B5,$AA,$B6,$B7,$AB ; PRG $06A0 | CPU $C6A0 .byte $B8,$B9,$AB,$BA,$BB,$A8,$B8,$B9,$A8,$BA,$BB,$B1,$AF,$AE,$8A ; PRG $06B0 | CPU $C6B0 GameplayLookupTable_C6BF: .byte $89 ; PRG $06BF | CPU $C6BF GameplayLookupTable_C6C0: .byte $AE,$8D,$FE,$8E,$FE,$F8,$FE,$8F,$FE,$FC,$FF,$FD,$FF,$16,$24,$24 ; PRG $06C0 | CPU $C6C0 .byte $24,$24,$24,$24 ; PRG $06D0 | CPU $C6D0 GameplayLookupTable_C6D4: .byte $01,$02,$04,$08,$10,$20,$40,$80 ; PRG $06D4 | CPU $C6D4 GameplayLookupTable_C6DC: .byte $01,$02,$03,$04,$10,$15,$00,$01,$10,$C0,$03,$00,$6C,$00,$24,$00 ; PRG $06DC | CPU $C6DC .byte $00,$C6,$9D,$00,$00,$13,$04,$02,$06,$06,$12,$10,$02,$10,$E0,$03 ; PRG $06EC | CPU $C6EC .byte $F4,$00,$00,$00,$00,$00,$C6,$BB,$00,$01,$13,$74,$03,$10,$07,$17 ; PRG $06FC | CPU $C6FC .byte $20,$0A,$0B,$05,$04,$00,$00,$A0,$00,$02,$12,$00,$00,$04,$08,$0A ; PRG $070C | CPU $C70C .byte $00,$01,$30,$D0,$02,$F4,$F3,$20,$00,$F4,$F3,$20,$00,$F4,$F3,$20 ; PRG $071C | CPU $C71C .byte $00,$F4,$F3,$20,$00,$F4,$F3,$20,$00,$F4,$F3,$20,$00,$F4,$F3,$20 ; PRG $072C | CPU $C72C .byte $00,$F4,$F3,$20,$00,$F4,$F3,$20,$00,$F4,$F3,$20,$00,$F4,$F3,$20 ; PRG $073C | CPU $C73C .byte $00,$F4,$F3,$20,$00,$20,$18,$01,$00,$04,$F4,$00,$01,$0B,$65,$06 ; PRG $074C | CPU $C74C .byte $00,$00,$3C,$00,$00,$11,$10,$00,$02,$08,$06,$20,$04,$12,$85,$06 ; PRG $075C | CPU $C75C .byte $00,$00,$00,$00,$01,$11,$8C,$04,$03,$05,$04,$00,$00,$00,$00,$00 ; PRG $076C | CPU $C76C .byte $80,$80,$20,$02,$10,$A0,$05,$01,$80,$00,$80,$00,$00,$00,$D0,$00 ; PRG $077C | CPU $C77C .byte $03,$22,$00,$04,$04,$0C,$0C,$20,$02,$10,$60,$05,$02,$80,$00,$80 ; PRG $078C | CPU $C78C .byte $00,$00,$00,$E0,$00,$01,$22,$00,$04,$04,$0C,$0C,$00,$01,$0B,$45 ; PRG $079C | CPU $C79C .byte $05,$00,$00,$C4,$00,$03,$12,$3C,$02,$04,$06,$0B,$20,$02,$0B,$E5 ; PRG $07AC | CPU $C7AC .byte $05,$00,$00,$90,$00,$00,$11,$64,$02,$01,$05,$06,$20,$02,$0B,$25 ; PRG $07BC | CPU $C7BC .byte $06,$00,$00,$9D,$00,$03,$11,$6C,$00,$00,$07,$07 ; PRG $07CC | CPU $C7CC GameplayLookupTable_C7D8: .byte $02,$80,$00,$80,$00,$00,$00,$40,$FF,$C0,$04,$50,$00,$80,$00,$00 ; PRG $07D8 | CPU $C7D8 .byte $FF,$C0,$FF,$C0,$01,$60,$00,$80,$00,$00,$00,$40,$00,$10,$03,$70 ; PRG $07E8 | CPU $C7E8 .byte $00,$80,$00,$00,$FF,$C0,$FF,$F0,$00,$01,$0A,$30,$03,$08,$23,$D0 ; PRG $07F8 | CPU $C7F8 .byte $58,$00,$27,$D0,$58,$00,$00,$00,$01,$0A,$30,$03,$08,$23,$D0,$58 ; PRG $0808 | CPU $C808 .byte $55,$27,$D0,$58,$55,$00,$00,$01,$0A,$30,$03,$08,$23,$D0,$58,$AA ; PRG $0818 | CPU $C818 .byte $27,$D0,$58,$AA,$00,$00,$01,$0A,$30,$03,$08,$23,$D0,$58,$FF,$27 ; PRG $0828 | CPU $C828 .byte $D0,$58,$FF,$00,$00,$01,$10,$B0,$03,$00,$00,$00,$40,$00,$60,$00 ; PRG $0838 | CPU $C838 .byte $B8,$01,$00,$01,$50,$01,$68,$01,$80,$10,$20,$63,$44,$24,$20,$83 ; PRG $0848 | CPU $C848 .byte $46,$24,$20,$78,$44,$24,$20,$98,$46,$24,$00,$10,$20,$4A,$C3,$24 ; PRG $0858 | CPU $C858 .byte $20,$55,$C3,$24,$20,$A2,$5C,$24,$20,$CA,$4C,$47,$00,$22,$48,$4A ; PRG $0868 | CPU $C868 .byte $49,$4B,$22,$24,$24,$24,$24,$18,$19,$15,$0A,$22,$0E,$1B,$24,$25 ; PRG $0878 | CPU $C878 .byte $18,$19,$15,$0A,$22,$0E,$1B,$24,$26,$1A,$10,$0A,$16,$0E,$24,$24 ; PRG $0888 | CPU $C888 .byte $18,$1F,$0E,$1B,$12,$2E,$2F ; PRG $0898 | CPU $C898 GameplayLookupTable_C89F: .byte $00,$00,$00,$90,$00,$B0,$00,$D0,$00,$F0,$01,$10,$FF,$70,$FF,$50 ; PRG $089F | CPU $C89F .byte $FF,$30,$FF,$10,$FE,$F0 ; PRG $08AF | CPU $C8AF GameplayLookupTable_C8B5: .byte $00,$00,$00,$40,$00,$60,$00,$80,$00,$A0,$00,$C0,$FF,$C0,$FF,$A0 ; PRG $08B5 | CPU $C8B5 .byte $FF,$80,$FF,$60,$FF,$40 ; PRG $08C5 | CPU $C8C5 GameplayLookupTable_C8CB: .byte $01,$E0,$02,$00,$02,$20,$02,$40,$FE,$20,$FE,$00,$FD,$E0,$FD,$C0 ; PRG $08CB | CPU $C8CB GameplayLookupTable_C8DB: .byte $00,$C0,$00,$E0,$01,$00,$01,$20,$FF,$40,$FF,$20,$FF,$00,$FE,$E0 ; PRG $08DB | CPU $C8DB GameplayLookupTable_C8EB: .byte $40,$55,$74,$78 ; PRG $08EB | CPU $C8EB GameplayLookupTable_C8EF: .byte $01,$01,$02,$03 ; PRG $08EF | CPU $C8EF GameplayLookupTable_C8F3: .byte $07,$08,$09,$0A ; PRG $08F3 | CPU $C8F3 GameplayConstantData_C8F7: .byte $80,$90,$A0,$B0 ; PRG $08F7 | CPU $C8F7 GameplayConstantData_C8FB: .byte $03,$05,$07,$09 ; PRG $08FB | CPU $C8FB GameplayConstantData_C8FF: .byte $10,$20,$30,$40 ; PRG $08FF | CPU $C8FF GameplayLookupTable_C903: .byte $08,$08,$82,$02,$82,$02,$05,$05,$05,$05,$89,$09,$89,$09,$01,$01 ; PRG $0903 | CPU $C903 .byte $01,$01,$08,$88,$08,$84,$04,$08,$08,$84,$04,$84,$00,$00,$00,$00 ; PRG $0913 | CPU $C913 .byte $08,$08,$82,$02,$82,$02,$05,$05,$05,$05,$89,$09,$89,$09,$01,$01 ; PRG $0923 | CPU $C923 .byte $01,$01,$08,$88,$08,$84,$04,$08,$08,$01,$01,$01,$00,$00,$00,$00 ; PRG $0933 | CPU $C933 .byte $08,$08,$82,$02,$82,$02,$05,$05,$05,$05,$89,$09,$89,$09,$01,$01 ; PRG $0943 | CPU $C943 .byte $01,$01,$02,$82,$02,$02,$02,$8A,$0A,$8A,$06,$06,$40,$00,$00,$82 ; PRG $0953 | CPU $C953 .byte $82,$02,$82,$02,$82,$02,$81,$01,$85,$05,$89,$09,$89,$09,$41,$01 ; PRG $0963 | CPU $C963 .byte $01,$01,$01,$81,$01,$81,$01,$00,$80,$00,$80,$00,$80,$00,$80,$00 ; PRG $0973 | CPU $C973 ; ----------------------------------------------------------------------------- ; Global purpose: Reset Handler. ; Local behavior: Executes the decoded reset handler sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- ResetHandler: sei ; PRG $0983 | CPU $C983 | 78 cld ; PRG $0984 | CPU $C984 | D8 ldx #$00 ; PRG $0985 | CPU $C985 | A2 00 stx PPUCTRL ; PRG $0987 | CPU $C987 | 8E 00 20 dex ; PRG $098A | CPU $C98A | CA txs ; PRG $098B | CPU $C98B | 9A ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay C98 C. ; Local behavior: Executes the decoded update side scrolling gameplay c98 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_C98C: lda PPUSTATUS ; PRG $098C | CPU $C98C | AD 02 20 and #$80 ; PRG $098F | CPU $C98F | 29 80 beq UpdateSideScrollingGameplay_C98C ; PRG $0991 | CPU $C991 | F0 F9 ldy #$07 ; PRG $0993 | CPU $C993 | A0 07 sty ScratchValue1 ; PRG $0995 | CPU $C995 | 84 01 ldy #$00 ; PRG $0997 | CPU $C997 | A0 00 sty ScratchValue0 ; PRG $0999 | CPU $C999 | 84 00 lda #$00 ; PRG $099B | CPU $C99B | A9 00 ; ----------------------------------------------------------------------------- ; Global purpose: Configure Hud And Playfield Ppu C99 D. ; Local behavior: Executes the decoded configure hud and playfield ppu c99 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- ConfigureHudAndPlayfieldPpu_C99D: sta (ScratchValue0),y ; PRG $099D | CPU $C99D | 91 00 dey ; PRG $099F | CPU $C99F | 88 bne ConfigureHudAndPlayfieldPpu_C99D ; PRG $09A0 | CPU $C9A0 | D0 FB dec ScratchValue1 ; PRG $09A2 | CPU $C9A2 | C6 01 bpl ConfigureHudAndPlayfieldPpu_C99D ; PRG $09A4 | CPU $C9A4 | 10 F7 lda #$00 ; PRG $09A6 | CPU $C9A6 | A9 00 sta PPUCTRL ; PRG $09A8 | CPU $C9A8 | 8D 00 20 sta PpuControlShadow ; PRG $09AB | CPU $C9AB | 85 10 lda #$02 ; PRG $09AD | CPU $C9AD | A9 02 sta PPUMASK ; PRG $09AF | CPU $C9AF | 8D 01 20 sta PpuMaskShadow ; PRG $09B2 | CPU $C9B2 | 85 11 lda #$00 ; PRG $09B4 | CPU $C9B4 | A9 00 sta PPUSCROLL ; PRG $09B6 | CPU $C9B6 | 8D 05 20 sta HorizontalScroll ; PRG $09B9 | CPU $C9B9 | 85 12 sta PPUSCROLL ; PRG $09BB | CPU $C9BB | 8D 05 20 sta VerticalScroll ; PRG $09BE | CPU $C9BE | 85 13 lda #$24 ; PRG $09C0 | CPU $C9C0 | A9 24 sta ScratchValue0 ; PRG $09C2 | CPU $C9C2 | 85 00 lda #$01 ; PRG $09C4 | CPU $C9C4 | A9 01 sta ScratchValue1 ; PRG $09C6 | CPU $C9C6 | 85 01 jsr ConfigureHudAndPlayfieldPpu_C092 ; PRG $09C8 | CPU $C9C8 | 20 92 C0 lda #$02 ; PRG $09CB | CPU $C9CB | A9 02 sta ScratchValue1 ; PRG $09CD | CPU $C9CD | 85 01 jsr ConfigureHudAndPlayfieldPpu_C092 ; PRG $09CF | CPU $C9CF | 20 92 C0 jsr UpdateSideScrollingGameplay_CA8E ; PRG $09D2 | CPU $C9D2 | 20 8E CA lda #$E2 ; PRG $09D5 | CPU $C9D5 | A9 E2 ldx #$C6 ; PRG $09D7 | CPU $C9D7 | A2 C6 jsr UpdateSideScrollingGameplay_C603 ; PRG $09D9 | CPU $C9D9 | 20 03 C6 lda #$F7 ; PRG $09DC | CPU $C9DC | A9 F7 ldx #$C6 ; PRG $09DE | CPU $C9DE | A2 C6 jsr UpdateSideScrollingGameplay_C603 ; PRG $09E0 | CPU $C9E0 | 20 03 C6 lda #$0C ; PRG $09E3 | CPU $C9E3 | A9 0C ldx #$C7 ; PRG $09E5 | CPU $C9E5 | A2 C7 jsr UpdateSideScrollingGameplay_C603 ; PRG $09E7 | CPU $C9E7 | 20 03 C6 lda #$51 ; PRG $09EA | CPU $C9EA | A9 51 ldx #$C7 ; PRG $09EC | CPU $C9EC | A2 C7 jsr UpdateSideScrollingGameplay_C603 ; PRG $09EE | CPU $C9EE | 20 03 C6 lda #$57 ; PRG $09F1 | CPU $C9F1 | A9 57 ldx #$C7 ; PRG $09F3 | CPU $C9F3 | A2 C7 jsr UpdateSideScrollingGameplay_C603 ; PRG $09F5 | CPU $C9F5 | 20 03 C6 lda #$67 ; PRG $09F8 | CPU $C9F8 | A9 67 ldx #$C7 ; PRG $09FA | CPU $C9FA | A2 C7 jsr UpdateSideScrollingGameplay_C603 ; PRG $09FC | CPU $C9FC | 20 03 C6 lda #$7E ; PRG $09FF | CPU $C9FF | A9 7E ldx #$C7 ; PRG $0A01 | CPU $CA01 | A2 C7 jsr UpdateSideScrollingGameplay_C603 ; PRG $0A03 | CPU $CA03 | 20 03 C6 lda #$93 ; PRG $0A06 | CPU $CA06 | A9 93 ldx #$C7 ; PRG $0A08 | CPU $CA08 | A2 C7 jsr UpdateSideScrollingGameplay_C603 ; PRG $0A0A | CPU $CA0A | 20 03 C6 lda #$B8 ; PRG $0A0D | CPU $CA0D | A9 B8 ldx #$C7 ; PRG $0A0F | CPU $CA0F | A2 C7 jsr UpdateSideScrollingGameplay_C603 ; PRG $0A11 | CPU $CA11 | 20 03 C6 lda #$C8 ; PRG $0A14 | CPU $CA14 | A9 C8 ldx #$C7 ; PRG $0A16 | CPU $CA16 | A2 C7 jsr UpdateSideScrollingGameplay_C603 ; PRG $0A18 | CPU $CA18 | 20 03 C6 lda #$A8 ; PRG $0A1B | CPU $CA1B | A9 A8 ldx #$C7 ; PRG $0A1D | CPU $CA1D | A2 C7 jsr UpdateSideScrollingGameplay_C603 ; PRG $0A1F | CPU $CA1F | 20 03 C6 lda #$3C ; PRG $0A22 | CPU $CA22 | A9 3C ldx #$C8 ; PRG $0A24 | CPU $CA24 | A2 C8 jsr UpdateSideScrollingGameplay_C603 ; PRG $0A26 | CPU $CA26 | 20 03 C6 lda #$80 ; PRG $0A29 | CPU $CA29 | A9 80 sta Ram_03FB ; PRG $0A2B | CPU $CA2B | 8D FB 03 lda #$90 ; PRG $0A2E | CPU $CA2E | A9 90 sta Ram_06AB ; PRG $0A30 | CPU $CA30 | 8D AB 06 lda #$94 ; PRG $0A33 | CPU $CA33 | A9 94 sta Ram_06CB ; PRG $0A35 | CPU $CA35 | 8D CB 06 lda #$98 ; PRG $0A38 | CPU $CA38 | A9 98 sta Ram_06EB ; PRG $0A3A | CPU $CA3A | 8D EB 06 lda #$03 ; PRG $0A3D | CPU $CA3D | A9 03 sta Ram_05C0 ; PRG $0A3F | CPU $CA3F | 8D C0 05 lda #$04 ; PRG $0A42 | CPU $CA42 | A9 04 sta Ram_0580 ; PRG $0A44 | CPU $CA44 | 8D 80 05 lda #$68 ; PRG $0A47 | CPU $CA47 | A9 68 sta Ram_060B ; PRG $0A49 | CPU $CA49 | 8D 0B 06 lda #$70 ; PRG $0A4C | CPU $CA4C | A9 70 sta Ram_064B ; PRG $0A4E | CPU $CA4E | 8D 4B 06 lda #$55 ; PRG $0A51 | CPU $CA51 | A9 55 sta Zp_1D ; PRG $0A53 | CPU $CA53 | 85 1D lda #$0F ; PRG $0A55 | CPU $CA55 | A9 0F sta SND_CHN ; PRG $0A57 | CPU $CA57 | 8D 15 40 sta Ram_0100 ; PRG $0A5A | CPU $CA5A | 8D 00 01 lda #$01 ; PRG $0A5D | CPU $CA5D | A9 01 sta Zp_36 ; PRG $0A5F | CPU $CA5F | 85 36 lda PpuControlShadow ; PRG $0A61 | CPU $CA61 | A5 10 ora #$80 ; PRG $0A63 | CPU $CA63 | 09 80 sta PpuControlShadow ; PRG $0A65 | CPU $CA65 | 85 10 sta PPUCTRL ; PRG $0A67 | CPU $CA67 | 8D 00 20 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CA6 A. ; Local behavior: Executes the decoded update side scrolling gameplay ca6 a sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CA6A: jsr UpdateSideScrollingGameplay_C40D ; PRG $0A6A | CPU $CA6A | 20 0D C4 lda Zp_A2 ; PRG $0A6D | CPU $CA6D | A5 A2 beq UpdateSideScrollingGameplay_CA6A ; PRG $0A6F | CPU $CA6F | F0 F9 dec Zp_A2 ; PRG $0A71 | CPU $CA71 | C6 A2 jsr UpdateSideScrollingGameplay_E47A ; PRG $0A73 | CPU $CA73 | 20 7A E4 jsr UpdateSideScrollingGameplay_DC7B ; PRG $0A76 | CPU $CA76 | 20 7B DC jsr UpdateSideScrollingGameplay_E6E1 ; PRG $0A79 | CPU $CA79 | 20 E1 E6 jsr UpdateSideScrollingGameplay_D91A ; PRG $0A7C | CPU $CA7C | 20 1A D9 jsr UpdateSideScrollingGameplay_E6D5 ; PRG $0A7F | CPU $CA7F | 20 D5 E6 jsr UpdateSideScrollingGameplay_E7AA ; PRG $0A82 | CPU $CA82 | 20 AA E7 jsr UpdateSideScrollingGameplay_E029 ; PRG $0A85 | CPU $CA85 | 20 29 E0 jsr UpdateSideScrollingGameplay_DE78 ; PRG $0A88 | CPU $CA88 | 20 78 DE jmp UpdateSideScrollingGameplay_CA6A ; PRG $0A8B | CPU $CA8B | 4C 6A CA ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CA8 E. ; Local behavior: Executes the decoded update side scrolling gameplay ca8 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CA8E: ldy #$02 ; PRG $0A8E | CPU $CA8E | A0 02 sty ScratchValue1 ; PRG $0A90 | CPU $CA90 | 84 01 ldy #$00 ; PRG $0A92 | CPU $CA92 | A0 00 sty ScratchValue0 ; PRG $0A94 | CPU $CA94 | 84 00 lda #$F4 ; PRG $0A96 | CPU $CA96 | A9 F4 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field CA98. ; Local behavior: Executes the decoded update gameplay state field ca98 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_CA98: sta (ScratchValue0),y ; PRG $0A98 | CPU $CA98 | 91 00 dey ; PRG $0A9A | CPU $CA9A | 88 bne UpdateGameplayStateField_CA98 ; PRG $0A9B | CPU $CA9B | D0 FB rts ; PRG $0A9D | CPU $CA9D | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Irq Handler. ; Local behavior: Executes the decoded irq handler sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- IrqHandler: jmp IrqHandler ; PRG $0A9E | CPU $CA9E | 4C 9E CA ; ----------------------------------------------------------------------------- ; Global purpose: Nmi Handler. ; Local behavior: Executes the decoded nmi handler sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- NmiHandler: pha ; PRG $0AA1 | CPU $CAA1 | 48 txa ; PRG $0AA2 | CPU $CAA2 | 8A pha ; PRG $0AA3 | CPU $CAA3 | 48 tya ; PRG $0AA4 | CPU $CAA4 | 98 pha ; PRG $0AA5 | CPU $CAA5 | 48 ldx #$00 ; PRG $0AA6 | CPU $CAA6 | A2 00 ; ----------------------------------------------------------------------------- ; Global purpose: Configure Hud And Playfield Ppu CAA8. ; Local behavior: Executes the decoded configure hud and playfield ppu caa8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- ConfigureHudAndPlayfieldPpu_CAA8: lda ScratchValue0,x ; PRG $0AA8 | CPU $CAA8 | B5 00 pha ; PRG $0AAA | CPU $CAAA | 48 inx ; PRG $0AAB | CPU $CAAB | E8 cpx #$10 ; PRG $0AAC | CPU $CAAC | E0 10 bcc ConfigureHudAndPlayfieldPpu_CAA8 ; PRG $0AAE | CPU $CAAE | 90 F8 lda PpuControlShadow ; PRG $0AB0 | CPU $CAB0 | A5 10 and #$7F ; PRG $0AB2 | CPU $CAB2 | 29 7F sta PpuControlShadow ; PRG $0AB4 | CPU $CAB4 | 85 10 sta PPUCTRL ; PRG $0AB6 | CPU $CAB6 | 8D 00 20 jsr ConfigureHudAndPlayfieldPpu_D2CF ; PRG $0AB9 | CPU $CAB9 | 20 CF D2 jsr TransferShipTargetOamBuffer ; PRG $0ABC | CPU $CABC | 20 87 C0 jsr UpdateSideScrollingGameplay_C073 ; PRG $0ABF | CPU $CABF | 20 73 C0 lda PpuMaskShadow ; PRG $0AC2 | CPU $CAC2 | A5 11 sta PPUMASK ; PRG $0AC4 | CPU $CAC4 | 8D 01 20 jsr PollShipControllers ; PRG $0AC7 | CPU $CAC7 | 20 34 C4 jsr TransformFlightState_CEE8 ; PRG $0ACA | CPU $CACA | 20 E8 CE lda Zp_3B ; PRG $0ACD | CPU $CACD | A5 3B bne UpdateSideScrollingGameplay_CAD4 ; PRG $0ACF | CPU $CACF | D0 03 jsr UpdateSideScrollingGameplay_C3CC ; PRG $0AD1 | CPU $CAD1 | 20 CC C3 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CAD4. ; Local behavior: Executes the decoded update side scrolling gameplay cad4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CAD4: jsr ReadShipControls_F880 ; PRG $0AD4 | CPU $CAD4 | 20 80 F8 jsr UpdateSideScrollingGameplay_CBD4 ; PRG $0AD7 | CPU $CAD7 | 20 D4 CB ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CADA. ; Local behavior: Executes the decoded update side scrolling gameplay cada sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CADA: jsr UpdateSideScrollingGameplay_D6D8 ; PRG $0ADA | CPU $CADA | 20 D8 D6 ldx #$0F ; PRG $0ADD | CPU $CADD | A2 0F ; ----------------------------------------------------------------------------- ; Global purpose: Configure Hud And Playfield Ppu CADF. ; Local behavior: Executes the decoded configure hud and playfield ppu cadf sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- ConfigureHudAndPlayfieldPpu_CADF: pla ; PRG $0ADF | CPU $CADF | 68 sta ScratchValue0,x ; PRG $0AE0 | CPU $CAE0 | 95 00 dex ; PRG $0AE2 | CPU $CAE2 | CA bpl ConfigureHudAndPlayfieldPpu_CADF ; PRG $0AE3 | CPU $CAE3 | 10 FA pla ; PRG $0AE5 | CPU $CAE5 | 68 tay ; PRG $0AE6 | CPU $CAE6 | A8 pla ; PRG $0AE7 | CPU $CAE7 | 68 tax ; PRG $0AE8 | CPU $CAE8 | AA lda PpuControlShadow ; PRG $0AE9 | CPU $CAE9 | A5 10 ora #$80 ; PRG $0AEB | CPU $CAEB | 09 80 sta PpuControlShadow ; PRG $0AED | CPU $CAED | 85 10 sta PPUCTRL ; PRG $0AEF | CPU $CAEF | 8D 00 20 pla ; PRG $0AF2 | CPU $CAF2 | 68 rti ; PRG $0AF3 | CPU $CAF3 | 40 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CAF4. ; Local behavior: Executes the decoded update side scrolling gameplay caf4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CAF4: lda #$0B ; PRG $0AF4 | CPU $CAF4 | A9 0B jsr UpdateSideScrollingGameplay_CE5B ; PRG $0AF6 | CPU $CAF6 | 20 5B CE jsr TransformFlightState_CE1D ; PRG $0AF9 | CPU $CAF9 | 20 1D CE jsr UpdateSideScrollingGameplay_D449 ; PRG $0AFC | CPU $CAFC | 20 49 D4 jsr UpdateSideScrollingGameplay_DEE9 ; PRG $0AFF | CPU $CAFF | 20 E9 DE jsr TransformFlightState_E4D8 ; PRG $0B02 | CPU $CB02 | 20 D8 E4 jsr UpdateSideScrollingGameplay_D950 ; PRG $0B05 | CPU $CB05 | 20 50 D9 jsr UpdateSideScrollingGameplay_D5E8 ; PRG $0B08 | CPU $CB08 | 20 E8 D5 jsr CalculateMovementAndClamp_D4E9 ; PRG $0B0B | CPU $CB0B | 20 E9 D4 jsr CalculateMovementAndClamp_DFC8 ; PRG $0B0E | CPU $CB0E | 20 C8 DF jsr UpdateSideScrollingGameplay_DEB3 ; PRG $0B11 | CPU $CB11 | 20 B3 DE inc Zp_A2 ; PRG $0B14 | CPU $CB14 | E6 A2 jsr UpdateSideScrollingGameplay_E306 ; PRG $0B16 | CPU $CB16 | 20 06 E3 jsr UpdateSideScrollingGameplay_E888 ; PRG $0B19 | CPU $CB19 | 20 88 E8 jsr UpdateSideScrollingGameplay_E3D1 ; PRG $0B1C | CPU $CB1C | 20 D1 E3 jsr UpdateSideScrollingGameplay_E5C1 ; PRG $0B1F | CPU $CB1F | 20 C1 E5 jsr UpdateSideScrollingGameplay_E611 ; PRG $0B22 | CPU $CB22 | 20 11 E6 jsr UpdateSideScrollingGameplay_E6BE ; PRG $0B25 | CPU $CB25 | 20 BE E6 jsr UpdateSideScrollingGameplay_C144 ; PRG $0B28 | CPU $CB28 | 20 44 C1 jsr UpdateSideScrollingGameplay_DE22 ; PRG $0B2B | CPU $CB2B | 20 22 DE jsr UpdateSideScrollingGameplay_CD89 ; PRG $0B2E | CPU $CB2E | 20 89 CD jsr UpdateSideScrollingGameplay_DCCA ; PRG $0B31 | CPU $CB31 | 20 CA DC jsr UpdateSideScrollingGameplay_DE99 ; PRG $0B34 | CPU $CB34 | 20 99 DE jsr UpdateSideScrollingGameplay_D098 ; PRG $0B37 | CPU $CB37 | 20 98 D0 jsr UpdateSideScrollingGameplay_E240 ; PRG $0B3A | CPU $CB3A | 20 40 E2 jsr UpdateSideScrollingGameplay_DF77 ; PRG $0B3D | CPU $CB3D | 20 77 DF jsr UpdateSideScrollingGameplay_E046 ; PRG $0B40 | CPU $CB40 | 20 46 E0 jsr CalculateMovementAndClamp_D867 ; PRG $0B43 | CPU $CB43 | 20 67 D8 jsr UpdateSideScrollingGameplay_D726 ; PRG $0B46 | CPU $CB46 | 20 26 D7 jsr UpdateSideScrollingGameplay_D7D0 ; PRG $0B49 | CPU $CB49 | 20 D0 D7 jsr UpdateSideScrollingGameplay_D8CD ; PRG $0B4C | CPU $CB4C | 20 CD D8 jsr UpdateSideScrollingGameplay_DB2B ; PRG $0B4F | CPU $CB4F | 20 2B DB jsr UpdateSideScrollingGameplay_DC49 ; PRG $0B52 | CPU $CB52 | 20 49 DC jsr UpdateSideScrollingGameplay_DBC1 ; PRG $0B55 | CPU $CB55 | 20 C1 DB jsr UpdateSideScrollingGameplay_DC62 ; PRG $0B58 | CPU $CB58 | 20 62 DC jsr UpdateFlyingEntity_CF11 ; PRG $0B5B | CPU $CB5B | 20 11 CF jsr UpdateSideScrollingGameplay_E6F8 ; PRG $0B5E | CPU $CB5E | 20 F8 E6 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CB61. ; Local behavior: Executes the decoded update side scrolling gameplay cb61 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CB61: jsr UpdateSideScrollingGameplay_CD4D ; PRG $0B61 | CPU $CB61 | 20 4D CD jsr UpdateSideScrollingGameplay_E814 ; PRG $0B64 | CPU $CB64 | 20 14 E8 jmp UpdateSideScrollingGameplay_E944 ; PRG $0B67 | CPU $CB67 | 4C 44 E9 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CB6 A. ; Local behavior: Executes the decoded update side scrolling gameplay cb6 a sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CB6A: dec Zp_EB ; PRG $0B6A | CPU $CB6A | C6 EB jmp UpdateSideScrollingGameplay_D072 ; PRG $0B6C | CPU $CB6C | 4C 72 D0 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CB6 F. ; Local behavior: Executes the decoded update side scrolling gameplay cb6 f sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CB6F: lda Zp_31 ; PRG $0B6F | CPU $CB6F | A5 31 beq UpdateGameplayStateField_CB7B ; PRG $0B71 | CPU $CB71 | F0 08 ldx #$02 ; PRG $0B73 | CPU $CB73 | A2 02 lda Zp_32 ; PRG $0B75 | CPU $CB75 | A5 32 beq UpdateGameplayStateField_CB7B ; PRG $0B77 | CPU $CB77 | F0 02 ldx #$04 ; PRG $0B79 | CPU $CB79 | A2 04 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field CB7 B. ; Local behavior: Executes the decoded update gameplay state field cb7 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_CB7B: stx Zp_38 ; PRG $0B7B | CPU $CB7B | 86 38 dec Zp_E9 ; PRG $0B7D | CPU $CB7D | C6 E9 rts ; PRG $0B7F | CPU $CB7F | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CB80. ; Local behavior: Executes the decoded update side scrolling gameplay cb80 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CB80: jmp UpdateSideScrollingGameplay_CB6F ; PRG $0B80 | CPU $CB80 | 4C 6F CB ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CB83. ; Local behavior: Executes the decoded update side scrolling gameplay cb83 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CB83: cmp #$0F ; PRG $0B83 | CPU $CB83 | C9 0F beq UpdateSideScrollingGameplay_CB6A ; PRG $0B85 | CPU $CB85 | F0 E3 cmp #$01 ; PRG $0B87 | CPU $CB87 | C9 01 bne UpdateGameplayStateField_CBB4 ; PRG $0B89 | CPU $CB89 | D0 29 lda Zp_31 ; PRG $0B8B | CPU $CB8B | A5 31 beq UpdateSideScrollingGameplay_CB93 ; PRG $0B8D | CPU $CB8D | F0 04 lda Zp_34 ; PRG $0B8F | CPU $CB8F | A5 34 beq UpdateSideScrollingGameplay_CBB9 ; PRG $0B91 | CPU $CB91 | F0 26 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CB93. ; Local behavior: Executes the decoded update side scrolling gameplay cb93 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CB93: lda #$00 ; PRG $0B93 | CPU $CB93 | A9 00 sta Zp_35 ; PRG $0B95 | CPU $CB95 | 85 35 sta Zp_34 ; PRG $0B97 | CPU $CB97 | 85 34 sta Zp_37 ; PRG $0B99 | CPU $CB99 | 85 37 sta Zp_EB ; PRG $0B9B | CPU $CB9B | 85 EB lda #$01 ; PRG $0B9D | CPU $CB9D | A9 01 sta Zp_36 ; PRG $0B9F | CPU $CB9F | 85 36 ldx #$03 ; PRG $0BA1 | CPU $CBA1 | A2 03 ldy #$03 ; PRG $0BA3 | CPU $CBA3 | A0 03 lda Zp_33 ; PRG $0BA5 | CPU $CBA5 | A5 33 beq UpdateSideScrollingGameplay_CBAB ; PRG $0BA7 | CPU $CBA7 | F0 02 ldy #$07 ; PRG $0BA9 | CPU $CBA9 | A0 07 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CBAB. ; Local behavior: Executes the decoded update side scrolling gameplay cbab sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CBAB: lda Zp_40,x ; PRG $0BAB | CPU $CBAB | B5 40 sta Zp_4C,y ; PRG $0BAD | CPU $CBAD | 99 4C 00 dey ; PRG $0BB0 | CPU $CBB0 | 88 dex ; PRG $0BB1 | CPU $CBB1 | CA bpl UpdateSideScrollingGameplay_CBAB ; PRG $0BB2 | CPU $CBB2 | 10 F7 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field CBB4. ; Local behavior: Executes the decoded update gameplay state field cbb4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_CBB4: lda #$00 ; PRG $0BB4 | CPU $CBB4 | A9 00 sta Zp_EE ; PRG $0BB6 | CPU $CBB6 | 85 EE rts ; PRG $0BB8 | CPU $CBB8 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CBB9. ; Local behavior: Executes the decoded update side scrolling gameplay cbb9 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CBB9: sta Zp_36 ; PRG $0BB9 | CPU $CBB9 | 85 36 sta Zp_EB ; PRG $0BBB | CPU $CBBB | 85 EB inc Zp_34 ; PRG $0BBD | CPU $CBBD | E6 34 lda #$09 ; PRG $0BBF | CPU $CBBF | A9 09 sta Zp_E9 ; PRG $0BC1 | CPU $CBC1 | 85 E9 lda #$08 ; PRG $0BC3 | CPU $CBC3 | A9 08 sta Zp_38 ; PRG $0BC5 | CPU $CBC5 | 85 38 jmp UpdateGameplayStateField_CBB4 ; PRG $0BC7 | CPU $CBC7 | 4C B4 CB ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CBCA. ; Local behavior: Executes the decoded update side scrolling gameplay cbca sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CBCA: jsr UpdateSideScrollingGameplay_D1DD ; PRG $0BCA | CPU $CBCA | 20 DD D1 lda Zp_3B ; PRG $0BCD | CPU $CBCD | A5 3B beq UpdateSideScrollingGameplay_CC3D ; PRG $0BCF | CPU $CBCF | F0 6C jmp UpdateSideScrollingGameplay_C139 ; PRG $0BD1 | CPU $CBD1 | 4C 39 C1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CBD4. ; Local behavior: Executes the decoded update side scrolling gameplay cbd4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CBD4: lda Zp_35 ; PRG $0BD4 | CPU $CBD4 | A5 35 beq UpdateSideScrollingGameplay_CC03 ; PRG $0BD6 | CPU $CBD6 | F0 2B lda Zp_EB ; PRG $0BD8 | CPU $CBD8 | A5 EB bne UpdateSideScrollingGameplay_CB83 ; PRG $0BDA | CPU $CBDA | D0 A7 lda Zp_EE ; PRG $0BDC | CPU $CBDC | A5 EE beq UpdateSideScrollingGameplay_CBE6 ; PRG $0BDE | CPU $CBDE | F0 06 jsr UpdateSideScrollingGameplay_C139 ; PRG $0BE0 | CPU $CBE0 | 20 39 C1 jmp UpdateSideScrollingGameplay_CCBF ; PRG $0BE3 | CPU $CBE3 | 4C BF CC ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CBE6. ; Local behavior: Executes the decoded update side scrolling gameplay cbe6 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CBE6: lda Zp_36 ; PRG $0BE6 | CPU $CBE6 | A5 36 beq UpdateSideScrollingGameplay_CBED ; PRG $0BE8 | CPU $CBE8 | F0 03 jsr UpdateSideScrollingGameplay_D12F ; PRG $0BEA | CPU $CBEA | 20 2F D1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CBED. ; Local behavior: Executes the decoded update side scrolling gameplay cbed sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CBED: lda Zp_E9 ; PRG $0BED | CPU $CBED | A5 E9 beq UpdateSideScrollingGameplay_CBCA ; PRG $0BEF | CPU $CBEF | F0 D9 ldx #$08 ; PRG $0BF1 | CPU $CBF1 | A2 08 cmp #$07 ; PRG $0BF3 | CPU $CBF3 | C9 07 beq UpdateSideScrollingGameplay_CB80 ; PRG $0BF5 | CPU $CBF5 | F0 89 cmp #$02 ; PRG $0BF7 | CPU $CBF7 | C9 02 beq UpdateGameplayStateField_CB7B ; PRG $0BF9 | CPU $CBF9 | F0 80 cmp #$01 ; PRG $0BFB | CPU $CBFB | C9 01 bne UpdateGameplayStateField_CC02 ; PRG $0BFD | CPU $CBFD | D0 03 jsr UpdateSideScrollingGameplay_CF50 ; PRG $0BFF | CPU $CBFF | 20 50 CF ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field CC02. ; Local behavior: Executes the decoded update gameplay state field cc02 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_CC02: rts ; PRG $0C02 | CPU $CC02 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CC03. ; Local behavior: Executes the decoded update side scrolling gameplay cc03 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CC03: lda Zp_36 ; PRG $0C03 | CPU $CC03 | A5 36 bne UpdateSideScrollingGameplay_CC52 ; PRG $0C05 | CPU $CC05 | D0 4B lda Zp_39 ; PRG $0C07 | CPU $CC07 | A5 39 cmp #$02 ; PRG $0C09 | CPU $CC09 | C9 02 beq UpdateSideScrollingGameplay_CC47 ; PRG $0C0B | CPU $CC0B | F0 3A cmp #$01 ; PRG $0C0D | CPU $CC0D | C9 01 beq UpdateSideScrollingGameplay_CC67 ; PRG $0C0F | CPU $CC0F | F0 56 lda Zp_E9 ; PRG $0C11 | CPU $CC11 | A5 E9 beq UpdateSideScrollingGameplay_CC37 ; PRG $0C13 | CPU $CC13 | F0 22 cmp #$02 ; PRG $0C15 | CPU $CC15 | C9 02 beq UpdateGameplayStateField_CC40 ; PRG $0C17 | CPU $CC17 | F0 27 cmp #$01 ; PRG $0C19 | CPU $CC19 | C9 01 beq UpdateSideScrollingGameplay_CC2F ; PRG $0C1B | CPU $CC1B | F0 12 lda Ram_0104 ; PRG $0C1D | CPU $CC1D | AD 04 01 beq UpdateSideScrollingGameplay_CC2C ; PRG $0C20 | CPU $CC20 | F0 0A lda Zp_3C ; PRG $0C22 | CPU $CC22 | A5 3C bne UpdateSideScrollingGameplay_CC2C ; PRG $0C24 | CPU $CC24 | D0 06 lda #$10 ; PRG $0C26 | CPU $CC26 | A9 10 bit PreviousControllerButtons ; PRG $0C28 | CPU $CC28 | 24 19 bne UpdateSideScrollingGameplay_CC8C ; PRG $0C2A | CPU $CC2A | D0 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CC2 C. ; Local behavior: Executes the decoded update side scrolling gameplay cc2 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CC2C: jmp UpdateSideScrollingGameplay_D1FB ; PRG $0C2C | CPU $CC2C | 4C FB D1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CC2 F. ; Local behavior: Executes the decoded update side scrolling gameplay cc2 f sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CC2F: lda #$00 ; PRG $0C2F | CPU $CC2F | A9 00 sta Ram_0104 ; PRG $0C31 | CPU $CC31 | 8D 04 01 jmp UpdateSideScrollingGameplay_CF50 ; PRG $0C34 | CPU $CC34 | 4C 50 CF ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CC37. ; Local behavior: Executes the decoded update side scrolling gameplay cc37 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CC37: lda #$30 ; PRG $0C37 | CPU $CC37 | A9 30 bit PreviousControllerButtons ; PRG $0C39 | CPU $CC39 | 24 19 bne UpdateSideScrollingGameplay_CC5D ; PRG $0C3B | CPU $CC3B | D0 20 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CC3 D. ; Local behavior: Executes the decoded update side scrolling gameplay cc3 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CC3D: jmp UpdateSideScrollingGameplay_CAF4 ; PRG $0C3D | CPU $CC3D | 4C F4 CA ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field CC40. ; Local behavior: Executes the decoded update gameplay state field cc40 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_CC40: dec Zp_E9 ; PRG $0C40 | CPU $CC40 | C6 E9 lda #$08 ; PRG $0C42 | CPU $CC42 | A9 08 sta Zp_38 ; PRG $0C44 | CPU $CC44 | 85 38 rts ; PRG $0C46 | CPU $CC46 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CC47. ; Local behavior: Executes the decoded update side scrolling gameplay cc47 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CC47: lda #$01 ; PRG $0C47 | CPU $CC47 | A9 01 sta Zp_3C ; PRG $0C49 | CPU $CC49 | 85 3C sta Zp_39 ; PRG $0C4B | CPU $CC4B | 85 39 lda #$0B ; PRG $0C4D | CPU $CC4D | A9 0B sta Zp_38 ; PRG $0C4F | CPU $CC4F | 85 38 rts ; PRG $0C51 | CPU $CC51 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CC52. ; Local behavior: Executes the decoded update side scrolling gameplay cc52 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CC52: lda #$13 ; PRG $0C52 | CPU $CC52 | A9 13 jsr UpdateSideScrollingGameplay_CE5B ; PRG $0C54 | CPU $CC54 | 20 5B CE lda #$00 ; PRG $0C57 | CPU $CC57 | A9 00 sta Zp_36 ; PRG $0C59 | CPU $CC59 | 85 36 beq UpdateGameplayStateField_CC5F ; PRG $0C5B | CPU $CC5B | F0 02 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CC5 D. ; Local behavior: Executes the decoded update side scrolling gameplay cc5 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CC5D: lda #$01 ; PRG $0C5D | CPU $CC5D | A9 01 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field CC5 F. ; Local behavior: Executes the decoded update gameplay state field cc5 f sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_CC5F: sta Ram_0104 ; PRG $0C5F | CPU $CC5F | 8D 04 01 lda #$02 ; PRG $0C62 | CPU $CC62 | A9 02 sta Zp_39 ; PRG $0C64 | CPU $CC64 | 85 39 rts ; PRG $0C66 | CPU $CC66 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CC67. ; Local behavior: Executes the decoded update side scrolling gameplay cc67 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CC67: lda #$00 ; PRG $0C67 | CPU $CC67 | A9 00 sta Zp_39 ; PRG $0C69 | CPU $CC69 | 85 39 lda #$3E ; PRG $0C6B | CPU $CC6B | A9 3E sta Zp_E9 ; PRG $0C6D | CPU $CC6D | 85 E9 lda #$01 ; PRG $0C6F | CPU $CC6F | A9 01 ldx Ram_0104 ; PRG $0C71 | CPU $CC71 | AE 04 01 bne UpdateSideScrollingGameplay_CC78 ; PRG $0C74 | CPU $CC74 | D0 02 lda #$0C ; PRG $0C76 | CPU $CC76 | A9 0C ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CC78. ; Local behavior: Executes the decoded update side scrolling gameplay cc78 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CC78: sta Zp_38 ; PRG $0C78 | CPU $CC78 | 85 38 lda #$38 ; PRG $0C7A | CPU $CC7A | A9 38 sta Ram_02FF ; PRG $0C7C | CPU $CC7C | 8D FF 02 lda #$00 ; PRG $0C7F | CPU $CC7F | A9 00 sta Ram_02FE ; PRG $0C81 | CPU $CC81 | 8D FE 02 lda #$AC ; PRG $0C84 | CPU $CC84 | A9 AC sta Ram_02FD ; PRG $0C86 | CPU $CC86 | 8D FD 02 jmp UpdateSideScrollingGameplay_D1FB ; PRG $0C89 | CPU $CC89 | 4C FB D1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CC8 C. ; Local behavior: Executes the decoded update side scrolling gameplay cc8 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CC8C: lda #$01 ; PRG $0C8C | CPU $CC8C | A9 01 sta Zp_35 ; PRG $0C8E | CPU $CC8E | 85 35 sta Zp_37 ; PRG $0C90 | CPU $CC90 | 85 37 sta Zp_3A ; PRG $0C92 | CPU $CC92 | 85 3A lda #$00 ; PRG $0C94 | CPU $CC94 | A9 00 sta Zp_36 ; PRG $0C96 | CPU $CC96 | 85 36 lda #$15 ; PRG $0C98 | CPU $CC98 | A9 15 sta Zp_E9 ; PRG $0C9A | CPU $CC9A | 85 E9 ldx #$00 ; PRG $0C9C | CPU $CC9C | A2 00 lda Zp_30 ; PRG $0C9E | CPU $CC9E | A5 30 cmp #$02 ; PRG $0CA0 | CPU $CCA0 | C9 02 bcc UpdateSideScrollingGameplay_CCA5 ; PRG $0CA2 | CPU $CCA2 | 90 01 inx ; PRG $0CA4 | CPU $CCA4 | E8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CCA5. ; Local behavior: Executes the decoded update side scrolling gameplay cca5 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CCA5: stx Zp_31 ; PRG $0CA5 | CPU $CCA5 | 86 31 ldx #$00 ; PRG $0CA7 | CPU $CCA7 | A2 00 lda Zp_30 ; PRG $0CA9 | CPU $CCA9 | A5 30 and #$01 ; PRG $0CAB | CPU $CCAB | 29 01 beq UpdateSideScrollingGameplay_CCB0 ; PRG $0CAD | CPU $CCAD | F0 01 inx ; PRG $0CAF | CPU $CCAF | E8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CCB0. ; Local behavior: Executes the decoded update side scrolling gameplay ccb0 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CCB0: stx Zp_33 ; PRG $0CB0 | CPU $CCB0 | 86 33 lda #$00 ; PRG $0CB2 | CPU $CCB2 | A9 00 sta Zp_32 ; PRG $0CB4 | CPU $CCB4 | 85 32 lda #$01 ; PRG $0CB6 | CPU $CCB6 | A9 01 sta Zp_BC ; PRG $0CB8 | CPU $CCB8 | 85 BC lda #$10 ; PRG $0CBA | CPU $CCBA | A9 10 jmp UpdateSideScrollingGameplay_CE5B ; PRG $0CBC | CPU $CCBC | 4C 5B CE ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CCBF. ; Local behavior: Executes the decoded update side scrolling gameplay ccbf sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CCBF: cmp #$1F ; PRG $0CBF | CPU $CCBF | C9 1F beq UpdateSideScrollingGameplay_CCDD ; PRG $0CC1 | CPU $CCC1 | F0 1A cmp #$1E ; PRG $0CC3 | CPU $CCC3 | C9 1E beq UpdateSideScrollingGameplay_CD0A ; PRG $0CC5 | CPU $CCC5 | F0 43 cmp #$03 ; PRG $0CC7 | CPU $CCC7 | C9 03 beq UpdateGameplayStateField_CD03 ; PRG $0CC9 | CPU $CCC9 | F0 38 cmp #$01 ; PRG $0CCB | CPU $CCCB | C9 01 bne UpdateGameplayStateField_CCDC ; PRG $0CCD | CPU $CCCD | D0 0D lda #$00 ; PRG $0CCF | CPU $CCCF | A9 00 sta Zp_36 ; PRG $0CD1 | CPU $CCD1 | 85 36 lda #$03 ; PRG $0CD3 | CPU $CCD3 | A9 03 sta Zp_37 ; PRG $0CD5 | CPU $CCD5 | 85 37 jsr UpdateSideScrollingGameplay_CF50 ; PRG $0CD7 | CPU $CCD7 | 20 50 CF dec Zp_EE ; PRG $0CDA | CPU $CCDA | C6 EE ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field CCDC. ; Local behavior: Executes the decoded update gameplay state field ccdc sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_CCDC: rts ; PRG $0CDC | CPU $CCDC | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CCDD. ; Local behavior: Executes the decoded update side scrolling gameplay ccdd sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CCDD: lda Zp_35 ; PRG $0CDD | CPU $CCDD | A5 35 beq UpdateGameplayStateField_CD03 ; PRG $0CDF | CPU $CCDF | F0 22 ldy Zp_32 ; PRG $0CE1 | CPU $CCE1 | A4 32 lda Zp_5C,y ; PRG $0CE3 | CPU $CCE3 | B9 5C 00 beq UpdateGameplayStateField_CD03 ; PRG $0CE6 | CPU $CCE6 | F0 1B sta ScratchIndex ; PRG $0CE8 | CPU $CCE8 | 85 03 lda Zp_5E,y ; PRG $0CEA | CPU $CCEA | B9 5E 00 cmp #$08 ; PRG $0CED | CPU $CCED | C9 08 bcc UpdateSideScrollingGameplay_CCF3 ; PRG $0CEF | CPU $CCEF | 90 02 lda #$08 ; PRG $0CF1 | CPU $CCF1 | A9 08 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CCF3. ; Local behavior: Executes the decoded update side scrolling gameplay ccf3 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CCF3: tax ; PRG $0CF3 | CPU $CCF3 | AA inx ; PRG $0CF4 | CPU $CCF4 | E8 lda #$00 ; PRG $0CF5 | CPU $CCF5 | A9 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CCF7. ; Local behavior: Executes the decoded update side scrolling gameplay ccf7 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CCF7: clc ; PRG $0CF7 | CPU $CCF7 | 18 jsr CalculateMovementAndClamp_C303 ; PRG $0CF8 | CPU $CCF8 | 20 03 C3 dex ; PRG $0CFB | CPU $CCFB | CA bne UpdateSideScrollingGameplay_CCF7 ; PRG $0CFC | CPU $CCFC | D0 F9 sta ScratchValue0 ; PRG $0CFE | CPU $CCFE | 85 00 jsr UpdateSideScrollingGameplay_CEC4 ; PRG $0D00 | CPU $CD00 | 20 C4 CE ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field CD03. ; Local behavior: Executes the decoded update gameplay state field cd03 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_CD03: ldx #$08 ; PRG $0D03 | CPU $CD03 | A2 08 stx Zp_38 ; PRG $0D05 | CPU $CD05 | 86 38 dec Zp_EE ; PRG $0D07 | CPU $CD07 | C6 EE rts ; PRG $0D09 | CPU $CD09 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CD0 A. ; Local behavior: Executes the decoded update side scrolling gameplay cd0 a sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CD0A: ldx #$0A ; PRG $0D0A | CPU $CD0A | A2 0A stx Zp_38 ; PRG $0D0C | CPU $CD0C | 86 38 lda #$96 ; PRG $0D0E | CPU $CD0E | A9 96 sta ScratchValue0 ; PRG $0D10 | CPU $CD10 | 85 00 lda #$21 ; PRG $0D12 | CPU $CD12 | A9 21 sta ScratchValue1 ; PRG $0D14 | CPU $CD14 | 85 01 ldx Zp_32 ; PRG $0D16 | CPU $CD16 | A6 32 ldy Zp_5E,x ; PRG $0D18 | CPU $CD18 | B4 5E jsr UpdateSideScrollingGameplay_C3E2 ; PRG $0D1A | CPU $CD1A | 20 E2 C3 lda #$92 ; PRG $0D1D | CPU $CD1D | A9 92 sta ScratchValue0 ; PRG $0D1F | CPU $CD1F | 85 00 lda #$22 ; PRG $0D21 | CPU $CD21 | A9 22 sta ScratchValue1 ; PRG $0D23 | CPU $CD23 | 85 01 ldx Zp_32 ; PRG $0D25 | CPU $CD25 | A6 32 lda Zp_5E,x ; PRG $0D27 | CPU $CD27 | B5 5E cmp #$08 ; PRG $0D29 | CPU $CD29 | C9 08 bcc UpdateSideScrollingGameplay_CD2F ; PRG $0D2B | CPU $CD2B | 90 02 lda #$08 ; PRG $0D2D | CPU $CD2D | A9 08 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CD2 F. ; Local behavior: Executes the decoded update side scrolling gameplay cd2 f sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CD2F: tay ; PRG $0D2F | CPU $CD2F | A8 iny ; PRG $0D30 | CPU $CD30 | C8 jsr UpdateSideScrollingGameplay_C3E2 ; PRG $0D31 | CPU $CD31 | 20 E2 C3 lda #$22 ; PRG $0D34 | CPU $CD34 | A9 22 sta ScratchValue2 ; PRG $0D36 | CPU $CD36 | 85 02 ldx Zp_32 ; PRG $0D38 | CPU $CD38 | A6 32 lda Zp_5C,x ; PRG $0D3A | CPU $CD3A | B5 5C beq UpdateGameplayStateField_CD47 ; PRG $0D3C | CPU $CD3C | F0 09 php ; PRG $0D3E | CPU $CD3E | 08 ldx #$3C ; PRG $0D3F | CPU $CD3F | A2 3C ldy #$CA ; PRG $0D41 | CPU $CD41 | A0 CA plp ; PRG $0D43 | CPU $CD43 | 28 jsr UpdateSideScrollingGameplay_D1A8 ; PRG $0D44 | CPU $CD44 | 20 A8 D1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field CD47. ; Local behavior: Executes the decoded update gameplay state field cd47 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_CD47: dec Zp_EE ; PRG $0D47 | CPU $CD47 | C6 EE jsr UpdateSideScrollingGameplay_D072 ; PRG $0D49 | CPU $CD49 | 20 72 D0 rts ; PRG $0D4C | CPU $CD4C | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CD4 D. ; Local behavior: Executes the decoded update side scrolling gameplay cd4 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CD4D: ldx Zp_38 ; PRG $0D4D | CPU $CD4D | A6 38 bne UpdateGameplayStateField_CD88 ; PRG $0D4F | CPU $CD4F | D0 37 ldx Ram_0330 ; PRG $0D51 | CPU $CD51 | AE 30 03 bne UpdateGameplayStateField_CD88 ; PRG $0D54 | CPU $CD54 | D0 32 lda Zp_EF ; PRG $0D56 | CPU $CD56 | A5 EF bne UpdateGameplayStateField_CD88 ; PRG $0D58 | CPU $CD58 | D0 2E lda #$01 ; PRG $0D5A | CPU $CD5A | A9 01 sta Zp_EF ; PRG $0D5C | CPU $CD5C | 85 EF dec Zp_C4 ; PRG $0D5E | CPU $CD5E | C6 C4 lda Zp_C4 ; PRG $0D60 | CPU $CD60 | A5 C4 bpl UpdateSideScrollingGameplay_CD66 ; PRG $0D62 | CPU $CD62 | 10 02 lda #$03 ; PRG $0D64 | CPU $CD64 | A9 03 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CD66. ; Local behavior: Executes the decoded update side scrolling gameplay cd66 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CD66: sta Zp_C4 ; PRG $0D66 | CPU $CD66 | 85 C4 ldy #$00 ; PRG $0D68 | CPU $CD68 | A0 00 ldx #$C8 ; PRG $0D6A | CPU $CD6A | A2 C8 cmp #$00 ; PRG $0D6C | CPU $CD6C | C9 00 beq UpdateSideScrollingGameplay_CD84 ; PRG $0D6E | CPU $CD6E | F0 14 ldy #$0F ; PRG $0D70 | CPU $CD70 | A0 0F ldx #$C8 ; PRG $0D72 | CPU $CD72 | A2 C8 cmp #$01 ; PRG $0D74 | CPU $CD74 | C9 01 beq UpdateSideScrollingGameplay_CD84 ; PRG $0D76 | CPU $CD76 | F0 0C ldy #$1E ; PRG $0D78 | CPU $CD78 | A0 1E ldx #$C8 ; PRG $0D7A | CPU $CD7A | A2 C8 cmp #$02 ; PRG $0D7C | CPU $CD7C | C9 02 beq UpdateSideScrollingGameplay_CD84 ; PRG $0D7E | CPU $CD7E | F0 04 ldy #$2D ; PRG $0D80 | CPU $CD80 | A0 2D ldx #$C8 ; PRG $0D82 | CPU $CD82 | A2 C8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CD84. ; Local behavior: Executes the decoded update side scrolling gameplay cd84 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CD84: tya ; PRG $0D84 | CPU $CD84 | 98 jsr UpdateSideScrollingGameplay_C603 ; PRG $0D85 | CPU $CD85 | 20 03 C6 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field CD88. ; Local behavior: Executes the decoded update gameplay state field cd88 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_CD88: rts ; PRG $0D88 | CPU $CD88 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CD89. ; Local behavior: Executes the decoded update side scrolling gameplay cd89 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CD89: lda Ram_06E0 ; PRG $0D89 | CPU $CD89 | AD E0 06 bne CalculateMovementAndClamp_CD99 ; PRG $0D8C | CPU $CD8C | D0 0B dec Ram_06F7 ; PRG $0D8E | CPU $CD8E | CE F7 06 bne UpdateGameplayStateField_CD98 ; PRG $0D91 | CPU $CD91 | D0 05 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CD93. ; Local behavior: Executes the decoded update side scrolling gameplay cd93 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CD93: lda #$F4 ; PRG $0D93 | CPU $CD93 | A9 F4 sta Ram_06E0 ; PRG $0D95 | CPU $CD95 | 8D E0 06 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field CD98. ; Local behavior: Executes the decoded update gameplay state field cd98 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_CD98: rts ; PRG $0D98 | CPU $CD98 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value CD99. ; Local behavior: Executes the decoded calculate and clamp value cd99 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_CD99: cmp #$F4 ; PRG $0D99 | CPU $CD99 | C9 F4 bne UpdateSideScrollingGameplay_CD93 ; PRG $0D9B | CPU $CD9B | D0 F6 ldx Zp_32 ; PRG $0D9D | CPU $CD9D | A6 32 lda Zp_58,x ; PRG $0D9F | CPU $CD9F | B5 58 cmp #$02 ; PRG $0DA1 | CPU $CDA1 | C9 02 bcc UpdateGameplayStateField_CD98 ; PRG $0DA3 | CPU $CDA3 | 90 F3 lda Zp_1D ; PRG $0DA5 | CPU $CDA5 | A5 1D cmp #$80 ; PRG $0DA7 | CPU $CDA7 | C9 80 bcs UpdateGameplayStateField_CD98 ; PRG $0DA9 | CPU $CDA9 | B0 ED lda Ram_05A0 ; PRG $0DAB | CPU $CDAB | AD A0 05 bne UpdateGameplayStateField_CD98 ; PRG $0DAE | CPU $CDAE | D0 E8 lda Ram_05A1 ; PRG $0DB0 | CPU $CDB0 | AD A1 05 clc ; PRG $0DB3 | CPU $CDB3 | 18 adc #$04 ; PRG $0DB4 | CPU $CDB4 | 69 04 cmp Ram_03C1 ; PRG $0DB6 | CPU $CDB6 | CD C1 03 bne UpdateGameplayStateField_CD98 ; PRG $0DB9 | CPU $CDB9 | D0 DD ldy #$03 ; PRG $0DBB | CPU $CDBB | A0 03 jsr UpdateSideScrollingGameplay_CDD6 ; PRG $0DBD | CPU $CDBD | 20 D6 CD lda Ram_05C0 ; PRG $0DC0 | CPU $CDC0 | AD C0 05 bne UpdateGameplayStateField_CD98 ; PRG $0DC3 | CPU $CDC3 | D0 D3 lda Ram_05C1 ; PRG $0DC5 | CPU $CDC5 | AD C1 05 clc ; PRG $0DC8 | CPU $CDC8 | 18 adc #$04 ; PRG $0DC9 | CPU $CDC9 | 69 04 cmp Ram_03C1 ; PRG $0DCB | CPU $CDCB | CD C1 03 bne UpdateGameplayStateField_CD98 ; PRG $0DCE | CPU $CDCE | D0 C8 ldy #$23 ; PRG $0DD0 | CPU $CDD0 | A0 23 jsr UpdateSideScrollingGameplay_CDD6 ; PRG $0DD2 | CPU $CDD2 | 20 D6 CD rts ; PRG $0DD5 | CPU $CDD5 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CDD6. ; Local behavior: Executes the decoded update side scrolling gameplay cdd6 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CDD6: sta Ram_06E1 ; PRG $0DD6 | CPU $CDD6 | 8D E1 06 lda #$00 ; PRG $0DD9 | CPU $CDD9 | A9 00 sta Ram_06E0 ; PRG $0DDB | CPU $CDDB | 8D E0 06 lda Ram_05A0,y ; PRG $0DDE | CPU $CDDE | B9 A0 05 sta Ram_06E3 ; PRG $0DE1 | CPU $CDE1 | 8D E3 06 sec ; PRG $0DE4 | CPU $CDE4 | 38 sbc Ram_03C3 ; PRG $0DE5 | CPU $CDE5 | ED C3 03 bcs UpdateSideScrollingGameplay_CDEF ; PRG $0DE8 | CPU $CDE8 | B0 05 eor #$FF ; PRG $0DEA | CPU $CDEA | 49 FF clc ; PRG $0DEC | CPU $CDEC | 18 adc #$01 ; PRG $0DED | CPU $CDED | 69 01 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CDEF. ; Local behavior: Executes the decoded update side scrolling gameplay cdef sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CDEF: cmp #$20 ; PRG $0DEF | CPU $CDEF | C9 20 bcc UpdateGameplayStateField_CE1C ; PRG $0DF1 | CPU $CDF1 | 90 29 lda Ram_05A0,y ; PRG $0DF3 | CPU $CDF3 | B9 A0 05 cmp Ram_03C3 ; PRG $0DF6 | CPU $CDF6 | CD C3 03 ldx #$FD ; PRG $0DF9 | CPU $CDF9 | A2 FD bcs UpdateSideScrollingGameplay_CDFF ; PRG $0DFB | CPU $CDFB | B0 02 ldx #$03 ; PRG $0DFD | CPU $CDFD | A2 03 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CDFF. ; Local behavior: Executes the decoded update side scrolling gameplay cdff sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CDFF: stx Ram_06F3 ; PRG $0DFF | CPU $CDFF | 8E F3 06 lda #$00 ; PRG $0E02 | CPU $CE02 | A9 00 sta Ram_06F1 ; PRG $0E04 | CPU $CE04 | 8D F1 06 sta Ram_06F2 ; PRG $0E07 | CPU $CE07 | 8D F2 06 sta Ram_06F4 ; PRG $0E0A | CPU $CE0A | 8D F4 06 lda #$CC ; PRG $0E0D | CPU $CE0D | A9 CC sta Ram_06E7 ; PRG $0E0F | CPU $CE0F | 8D E7 06 lda #$28 ; PRG $0E12 | CPU $CE12 | A9 28 sta Ram_06F7 ; PRG $0E14 | CPU $CE14 | 8D F7 06 lda #$09 ; PRG $0E17 | CPU $CE17 | A9 09 jsr UpdateSideScrollingGameplay_CE5B ; PRG $0E19 | CPU $CE19 | 20 5B CE ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field CE1 C. ; Local behavior: Executes the decoded update gameplay state field ce1 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_CE1C: rts ; PRG $0E1C | CPU $CE1C | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State CE1 D. ; Local behavior: Executes the decoded transform flight state ce1 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_CE1D: lda Zp_35 ; PRG $0E1D | CPU $CE1D | A5 35 beq UpdateGameplayStateField_CE46 ; PRG $0E1F | CPU $CE1F | F0 25 ldx Zp_32 ; PRG $0E21 | CPU $CE21 | A6 32 lda Zp_60,x ; PRG $0E23 | CPU $CE23 | B5 60 bne UpdateGameplayStateField_CE46 ; PRG $0E25 | CPU $CE25 | D0 1F txa ; PRG $0E27 | CPU $CE27 | 8A and #$01 ; PRG $0E28 | CPU $CE28 | 29 01 asl a ; PRG $0E2A | CPU $CE2A | 0A asl a ; PRG $0E2B | CPU $CE2B | 0A tay ; PRG $0E2C | CPU $CE2C | A8 lda Zp_45,y ; PRG $0E2D | CPU $CE2D | B9 45 00 cmp #$02 ; PRG $0E30 | CPU $CE30 | C9 02 bne UpdateGameplayStateField_CE46 ; PRG $0E32 | CPU $CE32 | D0 12 lda #$01 ; PRG $0E34 | CPU $CE34 | A9 01 sta Zp_60,x ; PRG $0E36 | CPU $CE36 | 95 60 inc Zp_54,x ; PRG $0E38 | CPU $CE38 | F6 54 lda #$06 ; PRG $0E3A | CPU $CE3A | A9 06 sta Zp_56,x ; PRG $0E3C | CPU $CE3C | 95 56 jsr UpdateSideScrollingGameplay_D17B ; PRG $0E3E | CPU $CE3E | 20 7B D1 lda #$08 ; PRG $0E41 | CPU $CE41 | A9 08 jsr UpdateSideScrollingGameplay_CE5B ; PRG $0E43 | CPU $CE43 | 20 5B CE ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field CE46. ; Local behavior: Executes the decoded update gameplay state field ce46 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_CE46: rts ; PRG $0E46 | CPU $CE46 | 60 .byte $08,$48,$84,$C2,$86,$C3,$98,$4C,$61,$CE ; PRG $0E47 | CPU $CE47 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CE51. ; Local behavior: Executes the decoded update side scrolling gameplay ce51 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CE51: php ; PRG $0E51 | CPU $CE51 | 08 pha ; PRG $0E52 | CPU $CE52 | 48 sty Zp_C2 ; PRG $0E53 | CPU $CE53 | 84 C2 stx Zp_C3 ; PRG $0E55 | CPU $CE55 | 86 C3 txa ; PRG $0E57 | CPU $CE57 | 8A jmp UpdateSideScrollingGameplay_CE61 ; PRG $0E58 | CPU $CE58 | 4C 61 CE ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CE5 B. ; Local behavior: Executes the decoded update side scrolling gameplay ce5 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CE5B: php ; PRG $0E5B | CPU $CE5B | 08 pha ; PRG $0E5C | CPU $CE5C | 48 sty Zp_C2 ; PRG $0E5D | CPU $CE5D | 84 C2 stx Zp_C3 ; PRG $0E5F | CPU $CE5F | 86 C3 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CE61. ; Local behavior: Executes the decoded update side scrolling gameplay ce61 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CE61: cmp #$13 ; PRG $0E61 | CPU $CE61 | C9 13 beq UpdateSideScrollingGameplay_CE87 ; PRG $0E63 | CPU $CE63 | F0 22 ldy Zp_35 ; PRG $0E65 | CPU $CE65 | A4 35 beq UpdateGameplayStateField_CE80 ; PRG $0E67 | CPU $CE67 | F0 17 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value CE69. ; Local behavior: Executes the decoded calculate and clamp value ce69 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_CE69: ldy #$FF ; PRG $0E69 | CPU $CE69 | A0 FF cmp #$08 ; PRG $0E6B | CPU $CE6B | C9 08 bcc UpdateSideScrollingGameplay_CE79 ; PRG $0E6D | CPU $CE6D | 90 0A sbc #$08 ; PRG $0E6F | CPU $CE6F | E9 08 dey ; PRG $0E71 | CPU $CE71 | 88 cmp #$08 ; PRG $0E72 | CPU $CE72 | C9 08 bcc UpdateSideScrollingGameplay_CE79 ; PRG $0E74 | CPU $CE74 | 90 03 sbc #$08 ; PRG $0E76 | CPU $CE76 | E9 08 dey ; PRG $0E78 | CPU $CE78 | 88 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CE79. ; Local behavior: Executes the decoded update side scrolling gameplay ce79 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CE79: tax ; PRG $0E79 | CPU $CE79 | AA lda GameplayLookupTable_C6D4,x ; PRG $0E7A | CPU $CE7A | BD D4 C6 sta ScratchValue0,y ; PRG $0E7D | CPU $CE7D | 99 00 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field CE80. ; Local behavior: Executes the decoded update gameplay state field ce80 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_CE80: ldx Zp_C3 ; PRG $0E80 | CPU $CE80 | A6 C3 ldy Zp_C2 ; PRG $0E82 | CPU $CE82 | A4 C2 pla ; PRG $0E84 | CPU $CE84 | 68 plp ; PRG $0E85 | CPU $CE85 | 28 rts ; PRG $0E86 | CPU $CE86 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CE87. ; Local behavior: Executes the decoded update side scrolling gameplay ce87 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CE87: dec Zp_3E ; PRG $0E87 | CPU $CE87 | C6 3E bpl UpdateGameplayStateField_CE80 ; PRG $0E89 | CPU $CE89 | 10 F5 ldy #$04 ; PRG $0E8B | CPU $CE8B | A0 04 sty Zp_3E ; PRG $0E8D | CPU $CE8D | 84 3E bne CalculateMovementAndClamp_CE69 ; PRG $0E8F | CPU $CE8F | D0 D8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CE91. ; Local behavior: Executes the decoded update side scrolling gameplay ce91 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CE91: sta Zp_0F ; PRG $0E91 | CPU $CE91 | 85 0F php ; PRG $0E93 | CPU $CE93 | 08 pha ; PRG $0E94 | CPU $CE94 | 48 txa ; PRG $0E95 | CPU $CE95 | 8A pha ; PRG $0E96 | CPU $CE96 | 48 tya ; PRG $0E97 | CPU $CE97 | 98 pha ; PRG $0E98 | CPU $CE98 | 48 lda ScratchValue0 ; PRG $0E99 | CPU $CE99 | A5 00 pha ; PRG $0E9B | CPU $CE9B | 48 lda ScratchValue1 ; PRG $0E9C | CPU $CE9C | A5 01 pha ; PRG $0E9E | CPU $CE9E | 48 lda ScratchValue2 ; PRG $0E9F | CPU $CE9F | A5 02 pha ; PRG $0EA1 | CPU $CEA1 | 48 lda ScratchIndex ; PRG $0EA2 | CPU $CEA2 | A5 03 pha ; PRG $0EA4 | CPU $CEA4 | 48 lda Zp_35 ; PRG $0EA5 | CPU $CEA5 | A5 35 beq UpdateSideScrollingGameplay_CEB1 ; PRG $0EA7 | CPU $CEA7 | F0 08 ldy Zp_0F ; PRG $0EA9 | CPU $CEA9 | A4 0F lda GameplayLookupTable_C6DC,y ; PRG $0EAB | CPU $CEAB | B9 DC C6 jsr UpdateSideScrollingGameplay_CEC4 ; PRG $0EAE | CPU $CEAE | 20 C4 CE ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CEB1. ; Local behavior: Executes the decoded update side scrolling gameplay ceb1 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CEB1: pla ; PRG $0EB1 | CPU $CEB1 | 68 sta ScratchIndex ; PRG $0EB2 | CPU $CEB2 | 85 03 pla ; PRG $0EB4 | CPU $CEB4 | 68 sta ScratchValue2 ; PRG $0EB5 | CPU $CEB5 | 85 02 pla ; PRG $0EB7 | CPU $CEB7 | 68 sta ScratchValue1 ; PRG $0EB8 | CPU $CEB8 | 85 01 pla ; PRG $0EBA | CPU $CEBA | 68 sta ScratchValue0 ; PRG $0EBB | CPU $CEBB | 85 00 pla ; PRG $0EBD | CPU $CEBD | 68 tay ; PRG $0EBE | CPU $CEBE | A8 pla ; PRG $0EBF | CPU $CEBF | 68 tax ; PRG $0EC0 | CPU $CEC0 | AA pla ; PRG $0EC1 | CPU $CEC1 | 68 plp ; PRG $0EC2 | CPU $CEC2 | 28 rts ; PRG $0EC3 | CPU $CEC3 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CEC4. ; Local behavior: Executes the decoded update side scrolling gameplay cec4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CEC4: sta ScratchValue0 ; PRG $0EC4 | CPU $CEC4 | 85 00 lda Zp_32 ; PRG $0EC6 | CPU $CEC6 | A5 32 ora #$08 ; PRG $0EC8 | CPU $CEC8 | 09 08 sta ScratchValue1 ; PRG $0ECA | CPU $CECA | 85 01 jsr UpdateSideScrollingGameplay_C261 ; PRG $0ECC | CPU $CECC | 20 61 C2 lda #$F9 ; PRG $0ECF | CPU $CECF | A9 F9 sta ScratchValue0 ; PRG $0ED1 | CPU $CED1 | 85 00 jsr TransformFlightState_C355 ; PRG $0ED3 | CPU $CED3 | 20 55 C3 lda Zp_A1 ; PRG $0ED6 | CPU $CED6 | A5 A1 bne UpdateGameplayStateField_CEE7 ; PRG $0ED8 | CPU $CED8 | D0 0D ldx #$F0 ; PRG $0EDA | CPU $CEDA | A2 F0 lda Zp_32 ; PRG $0EDC | CPU $CEDC | A5 32 beq UpdateSideScrollingGameplay_CEE2 ; PRG $0EDE | CPU $CEDE | F0 02 ldx #$F1 ; PRG $0EE0 | CPU $CEE0 | A2 F1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CEE2. ; Local behavior: Executes the decoded update side scrolling gameplay cee2 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CEE2: stx ScratchValue0 ; PRG $0EE2 | CPU $CEE2 | 86 00 jsr TransformFlightState_C177 ; PRG $0EE4 | CPU $CEE4 | 20 77 C1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field CEE7. ; Local behavior: Executes the decoded update gameplay state field cee7 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_CEE7: rts ; PRG $0EE7 | CPU $CEE7 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State CEE8. ; Local behavior: Executes the decoded transform flight state cee8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_CEE8: lda Zp_35 ; PRG $0EE8 | CPU $CEE8 | A5 35 bne UpdateGameplayStateField_CF10 ; PRG $0EEA | CPU $CEEA | D0 24 lda Ram_0104 ; PRG $0EEC | CPU $CEEC | AD 04 01 bne UpdateGameplayStateField_CF10 ; PRG $0EEF | CPU $CEEF | D0 1F lda Zp_EC ; PRG $0EF1 | CPU $CEF1 | A5 EC lsr a ; PRG $0EF3 | CPU $CEF3 | 4A tay ; PRG $0EF4 | CPU $CEF4 | A8 lda GameplayLookupTable_C903,y ; PRG $0EF5 | CPU $CEF5 | B9 03 C9 and #$CF ; PRG $0EF8 | CPU $CEF8 | 29 CF sta ScratchValue0 ; PRG $0EFA | CPU $CEFA | 85 00 lda PreviousControllerButtons ; PRG $0EFC | CPU $CEFC | A5 19 and #$30 ; PRG $0EFE | CPU $CEFE | 29 30 ora ScratchValue0 ; PRG $0F00 | CPU $CF00 | 05 00 sta PreviousControllerButtons ; PRG $0F02 | CPU $CF02 | 85 19 and #$80 ; PRG $0F04 | CPU $CF04 | 29 80 beq UpdateSideScrollingGameplay_CF0E ; PRG $0F06 | CPU $CF06 | F0 06 ldx Zp_C1 ; PRG $0F08 | CPU $CF08 | A6 C1 bne UpdateSideScrollingGameplay_CF0E ; PRG $0F0A | CPU $CF0A | D0 02 sta CurrentControllerButtons ; PRG $0F0C | CPU $CF0C | 85 1B ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CF0 E. ; Local behavior: Executes the decoded update side scrolling gameplay cf0 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CF0E: sta Zp_C1 ; PRG $0F0E | CPU $CF0E | 85 C1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field CF10. ; Local behavior: Executes the decoded update gameplay state field cf10 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_CF10: rts ; PRG $0F10 | CPU $CF10 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Flying Entity CF11. ; Local behavior: Executes the decoded update flying entity cf11 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateFlyingEntity_CF11: ldx Zp_32 ; PRG $0F11 | CPU $CF11 | A6 32 lda Zp_5A,x ; PRG $0F13 | CPU $CF13 | B5 5A bne UpdateGameplayStateField_CF4F ; PRG $0F15 | CPU $CF15 | D0 38 jsr UpdateSideScrollingGameplay_D6ED ; PRG $0F17 | CPU $CF17 | 20 ED D6 cmp #$00 ; PRG $0F1A | CPU $CF1A | C9 00 bne UpdateGameplayStateField_CF4F ; PRG $0F1C | CPU $CF1C | D0 31 lda Ram_05E0 ; PRG $0F1E | CPU $CF1E | AD E0 05 cmp #$F4 ; PRG $0F21 | CPU $CF21 | C9 F4 bne UpdateGameplayStateField_CF4F ; PRG $0F23 | CPU $CF23 | D0 2A lda Ram_0600 ; PRG $0F25 | CPU $CF25 | AD 00 06 cmp #$F4 ; PRG $0F28 | CPU $CF28 | C9 F4 bne UpdateGameplayStateField_CF4F ; PRG $0F2A | CPU $CF2A | D0 23 lda Zp_A3 ; PRG $0F2C | CPU $CF2C | A5 A3 cmp #$E8 ; PRG $0F2E | CPU $CF2E | C9 E8 bne UpdateGameplayStateField_CF4F ; PRG $0F30 | CPU $CF30 | D0 1D jsr UpdateSideScrollingGameplay_D6FB ; PRG $0F32 | CPU $CF32 | 20 FB D6 cmp #$00 ; PRG $0F35 | CPU $CF35 | C9 00 bne UpdateGameplayStateField_CF4F ; PRG $0F37 | CPU $CF37 | D0 16 lda #$20 ; PRG $0F39 | CPU $CF39 | A9 20 sta Zp_EE ; PRG $0F3B | CPU $CF3B | 85 EE ldy #$0F ; PRG $0F3D | CPU $CF3D | A0 0F jsr UpdateSideScrollingGameplay_D6CC ; PRG $0F3F | CPU $CF3F | 20 CC D6 lda #$F4 ; PRG $0F42 | CPU $CF42 | A9 F4 sta Ram_03E0 ; PRG $0F44 | CPU $CF44 | 8D E0 03 sta Ram_03F0 ; PRG $0F47 | CPU $CF47 | 8D F0 03 lda #$11 ; PRG $0F4A | CPU $CF4A | A9 11 jsr UpdateSideScrollingGameplay_CE5B ; PRG $0F4C | CPU $CF4C | 20 5B CE ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field CF4 F. ; Local behavior: Executes the decoded update gameplay state field cf4 f sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_CF4F: rts ; PRG $0F4F | CPU $CF4F | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CF50. ; Local behavior: Executes the decoded update side scrolling gameplay cf50 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CF50: lda Zp_37 ; PRG $0F50 | CPU $CF50 | A5 37 bne UpdateSideScrollingGameplay_CF8C ; PRG $0F52 | CPU $CF52 | D0 38 lda #$01 ; PRG $0F54 | CPU $CF54 | A9 01 sta Zp_5E ; PRG $0F56 | CPU $CF56 | 85 5E sta Zp_5F ; PRG $0F58 | CPU $CF58 | 85 5F lda #$01 ; PRG $0F5A | CPU $CF5A | A9 01 sta Zp_54 ; PRG $0F5C | CPU $CF5C | 85 54 lda #$06 ; PRG $0F5E | CPU $CF5E | A9 06 sta Zp_56 ; PRG $0F60 | CPU $CF60 | 85 56 lda #$00 ; PRG $0F62 | CPU $CF62 | A9 00 sta Zp_58 ; PRG $0F64 | CPU $CF64 | 85 58 sta Zp_32 ; PRG $0F66 | CPU $CF66 | 85 32 jmp TransformFlightState_CFCE ; PRG $0F68 | CPU $CF68 | 4C CE CF ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CF6 B. ; Local behavior: Executes the decoded update side scrolling gameplay cf6 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CF6B: cmp #$03 ; PRG $0F6B | CPU $CF6B | C9 03 bne UpdateSideScrollingGameplay_CFDE ; PRG $0F6D | CPU $CF6D | D0 6F ldx Zp_32 ; PRG $0F6F | CPU $CF6F | A6 32 inc Zp_5E,x ; PRG $0F71 | CPU $CF71 | F6 5E lda Zp_58,x ; PRG $0F73 | CPU $CF73 | B5 58 cmp #$03 ; PRG $0F75 | CPU $CF75 | C9 03 beq TransformFlightState_CF7B ; PRG $0F77 | CPU $CF77 | F0 02 inc Zp_58,x ; PRG $0F79 | CPU $CF79 | F6 58 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State CF7 B. ; Local behavior: Executes the decoded transform flight state cf7 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_CF7B: ldx Zp_32 ; PRG $0F7B | CPU $CF7B | A6 32 lda #$08 ; PRG $0F7D | CPU $CF7D | A9 08 sta Zp_5C,x ; PRG $0F7F | CPU $CF7F | 95 5C lda Zp_58,x ; PRG $0F81 | CPU $CF81 | B5 58 asl a ; PRG $0F83 | CPU $CF83 | 0A clc ; PRG $0F84 | CPU $CF84 | 18 adc #$0F ; PRG $0F85 | CPU $CF85 | 69 0F sta Zp_5A,x ; PRG $0F87 | CPU $CF87 | 95 5A jmp UpdateFlyingEntity_CFE2 ; PRG $0F89 | CPU $CF89 | 4C E2 CF ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CF8 C. ; Local behavior: Executes the decoded update side scrolling gameplay cf8 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CF8C: cmp #$01 ; PRG $0F8C | CPU $CF8C | C9 01 bne UpdateSideScrollingGameplay_CF6B ; PRG $0F8E | CPU $CF8E | D0 DB ldx #$07 ; PRG $0F90 | CPU $CF90 | A2 07 lda #$00 ; PRG $0F92 | CPU $CF92 | A9 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CF94. ; Local behavior: Executes the decoded update side scrolling gameplay cf94 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CF94: sta Zp_44,x ; PRG $0F94 | CPU $CF94 | 95 44 dex ; PRG $0F96 | CPU $CF96 | CA bpl UpdateSideScrollingGameplay_CF94 ; PRG $0F97 | CPU $CF97 | 10 FB sta Zp_60 ; PRG $0F99 | CPU $CF99 | 85 60 sta Zp_61 ; PRG $0F9B | CPU $CF9B | 85 61 ldx #$03 ; PRG $0F9D | CPU $CF9D | A2 03 ldy #$03 ; PRG $0F9F | CPU $CF9F | A0 03 lda Zp_33 ; PRG $0FA1 | CPU $CFA1 | A5 33 beq UpdateSideScrollingGameplay_CFA7 ; PRG $0FA3 | CPU $CFA3 | F0 02 ldy #$07 ; PRG $0FA5 | CPU $CFA5 | A0 07 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CFA7. ; Local behavior: Executes the decoded update side scrolling gameplay cfa7 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CFA7: lda Zp_4C,y ; PRG $0FA7 | CPU $CFA7 | B9 4C 00 sta Zp_40,x ; PRG $0FAA | CPU $CFAA | 95 40 dey ; PRG $0FAC | CPU $CFAC | 88 dex ; PRG $0FAD | CPU $CFAD | CA bpl UpdateSideScrollingGameplay_CFA7 ; PRG $0FAE | CPU $CFAE | 10 F7 lda #$01 ; PRG $0FB0 | CPU $CFB0 | A9 01 sta Zp_5E ; PRG $0FB2 | CPU $CFB2 | 85 5E sta Zp_5F ; PRG $0FB4 | CPU $CFB4 | 85 5F lda #$03 ; PRG $0FB6 | CPU $CFB6 | A9 03 sta Zp_54 ; PRG $0FB8 | CPU $CFB8 | 85 54 sta Zp_55 ; PRG $0FBA | CPU $CFBA | 85 55 lda #$06 ; PRG $0FBC | CPU $CFBC | A9 06 sta Zp_56 ; PRG $0FBE | CPU $CFBE | 85 56 sta Zp_57 ; PRG $0FC0 | CPU $CFC0 | 85 57 ldx #$00 ; PRG $0FC2 | CPU $CFC2 | A2 00 lda Zp_33 ; PRG $0FC4 | CPU $CFC4 | A5 33 beq UpdateSideScrollingGameplay_CFCA ; PRG $0FC6 | CPU $CFC6 | F0 02 ldx #$01 ; PRG $0FC8 | CPU $CFC8 | A2 01 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CFCA. ; Local behavior: Executes the decoded update side scrolling gameplay cfca sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CFCA: stx Zp_58 ; PRG $0FCA | CPU $CFCA | 86 58 stx Zp_59 ; PRG $0FCC | CPU $CFCC | 86 59 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State CFCE. ; Local behavior: Executes the decoded transform flight state cfce sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_CFCE: lda #$08 ; PRG $0FCE | CPU $CFCE | A9 08 sta Zp_5C ; PRG $0FD0 | CPU $CFD0 | 85 5C sta Zp_5D ; PRG $0FD2 | CPU $CFD2 | 85 5D lda Zp_58 ; PRG $0FD4 | CPU $CFD4 | A5 58 asl a ; PRG $0FD6 | CPU $CFD6 | 0A clc ; PRG $0FD7 | CPU $CFD7 | 18 adc #$0F ; PRG $0FD8 | CPU $CFD8 | 69 0F sta Zp_5A ; PRG $0FDA | CPU $CFDA | 85 5A sta Zp_5B ; PRG $0FDC | CPU $CFDC | 85 5B ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay CFDE. ; Local behavior: Executes the decoded update side scrolling gameplay cfde sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_CFDE: ldx Zp_32 ; PRG $0FDE | CPU $CFDE | A6 32 dec Zp_54,x ; PRG $0FE0 | CPU $CFE0 | D6 54 ; ----------------------------------------------------------------------------- ; Global purpose: Update Flying Entity CFE2. ; Local behavior: Executes the decoded update flying entity cfe2 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateFlyingEntity_CFE2: jsr UpdateSideScrollingGameplay_D072 ; PRG $0FE2 | CPU $CFE2 | 20 72 D0 lda #$08 ; PRG $0FE5 | CPU $CFE5 | A9 08 sta Zp_ED ; PRG $0FE7 | CPU $CFE7 | 85 ED jsr UpdateSideScrollingGameplay_D17B ; PRG $0FE9 | CPU $CFE9 | 20 7B D1 lda #$00 ; PRG $0FEC | CPU $CFEC | A9 00 sta Zp_A1 ; PRG $0FEE | CPU $CFEE | 85 A1 lda #$FF ; PRG $0FF0 | CPU $CFF0 | A9 FF sta Zp_EC ; PRG $0FF2 | CPU $CFF2 | 85 EC lda #$1C ; PRG $0FF4 | CPU $CFF4 | A9 1C ldx #$C7 ; PRG $0FF6 | CPU $CFF6 | A2 C7 jsr UpdateSideScrollingGameplay_C603 ; PRG $0FF8 | CPU $CFF8 | 20 03 C6 lda #$2F ; PRG $0FFB | CPU $CFFB | A9 2F sta OamBuffer ; PRG $0FFD | CPU $CFFD | 8D 00 02 lda #$47 ; PRG $1000 | CPU $D000 | A9 47 sta Ram_0201 ; PRG $1002 | CPU $D002 | 8D 01 02 lda #$20 ; PRG $1005 | CPU $D005 | A9 20 sta Ram_0202 ; PRG $1007 | CPU $D007 | 8D 02 02 lda #$10 ; PRG $100A | CPU $D00A | A9 10 sta Ram_0203 ; PRG $100C | CPU $D00C | 8D 03 02 lda #$E2 ; PRG $100F | CPU $D00F | A9 E2 ldx #$C6 ; PRG $1011 | CPU $D011 | A2 C6 jsr UpdateSideScrollingGameplay_C603 ; PRG $1013 | CPU $D013 | 20 03 C6 lda #$F4 ; PRG $1016 | CPU $D016 | A9 F4 sta Ram_03E0 ; PRG $1018 | CPU $D018 | 8D E0 03 sta Ram_03F0 ; PRG $101B | CPU $D01B | 8D F0 03 lda #$51 ; PRG $101E | CPU $D01E | A9 51 ldx #$C7 ; PRG $1020 | CPU $D020 | A2 C7 jsr UpdateSideScrollingGameplay_C603 ; PRG $1022 | CPU $D022 | 20 03 C6 ldy #$27 ; PRG $1025 | CPU $D025 | A0 27 ldx #$74 ; PRG $1027 | CPU $D027 | A2 74 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D029. ; Local behavior: Executes the decoded update side scrolling gameplay d029 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D029: lda GameplayLookupTable_C7D8,y ; PRG $1029 | CPU $D029 | B9 D8 C7 sta Ram_0560,x ; PRG $102C | CPU $D02C | 9D 60 05 txa ; PRG $102F | CPU $D02F | 8A and #$0F ; PRG $1030 | CPU $D030 | 29 0F bne TransformFlightState_D039 ; PRG $1032 | CPU $D032 | D0 05 txa ; PRG $1034 | CPU $D034 | 8A sec ; PRG $1035 | CPU $D035 | 38 sbc #$0B ; PRG $1036 | CPU $D036 | E9 0B tax ; PRG $1038 | CPU $D038 | AA ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State D039. ; Local behavior: Executes the decoded transform flight state d039 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_D039: dex ; PRG $1039 | CPU $D039 | CA dey ; PRG $103A | CPU $D03A | 88 bpl UpdateSideScrollingGameplay_D029 ; PRG $103B | CPU $D03B | 10 EC lda #$3C ; PRG $103D | CPU $D03D | A9 3C ldx #$C8 ; PRG $103F | CPU $D03F | A2 C8 jsr UpdateSideScrollingGameplay_C603 ; PRG $1041 | CPU $D041 | 20 03 C6 ldx Zp_32 ; PRG $1044 | CPU $D044 | A6 32 lda Zp_5C,x ; PRG $1046 | CPU $D046 | B5 5C eor #$FF ; PRG $1048 | CPU $D048 | 49 FF clc ; PRG $104A | CPU $D04A | 18 adc #$08 ; PRG $104B | CPU $D04B | 69 08 bmi UpdateSideScrollingGameplay_D059 ; PRG $104D | CPU $D04D | 30 0A asl a ; PRG $104F | CPU $D04F | 0A tay ; PRG $1050 | CPU $D050 | A8 lda #$F4 ; PRG $1051 | CPU $D051 | A9 F4 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D053. ; Local behavior: Executes the decoded update side scrolling gameplay d053 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D053: sta Ram_03B0,y ; PRG $1053 | CPU $D053 | 99 B0 03 dey ; PRG $1056 | CPU $D056 | 88 bpl UpdateSideScrollingGameplay_D053 ; PRG $1057 | CPU $D057 | 10 FA ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D059. ; Local behavior: Executes the decoded update side scrolling gameplay d059 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D059: lda #$06 ; PRG $1059 | CPU $D059 | A9 06 sta Zp_38 ; PRG $105B | CPU $D05B | 85 38 lda #$00 ; PRG $105D | CPU $D05D | A9 00 sta Zp_E9 ; PRG $105F | CPU $D05F | 85 E9 ldx #$2F ; PRG $1061 | CPU $D061 | A2 2F lda #$00 ; PRG $1063 | CPU $D063 | A9 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D065. ; Local behavior: Executes the decoded update side scrolling gameplay d065 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D065: sta Zp_A0,x ; PRG $1065 | CPU $D065 | 95 A0 dex ; PRG $1067 | CPU $D067 | CA bpl UpdateSideScrollingGameplay_D065 ; PRG $1068 | CPU $D068 | 10 FB ldx #$0F ; PRG $106A | CPU $D06A | A2 0F ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D06 C. ; Local behavior: Executes the decoded update gameplay state field d06 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D06C: sta Zp_D0,x ; PRG $106C | CPU $D06C | 95 D0 dex ; PRG $106E | CPU $D06E | CA bne UpdateGameplayStateField_D06C ; PRG $106F | CPU $D06F | D0 FB rts ; PRG $1071 | CPU $D071 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D072. ; Local behavior: Executes the decoded update side scrolling gameplay d072 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D072: lda #$F0 ; PRG $1072 | CPU $D072 | A9 F0 sta ScratchValue0 ; PRG $1074 | CPU $D074 | 85 00 jsr TransformFlightState_C177 ; PRG $1076 | CPU $D076 | 20 77 C1 lda Zp_31 ; PRG $1079 | CPU $D079 | A5 31 beq UpdateGameplayStateField_D097 ; PRG $107B | CPU $D07B | F0 1A lda #$81 ; PRG $107D | CPU $D07D | A9 81 sta ScratchValue0 ; PRG $107F | CPU $D07F | 85 00 jsr TransformFlightState_C177 ; PRG $1081 | CPU $D081 | 20 77 C1 lda #$B6 ; PRG $1084 | CPU $D084 | A9 B6 sta ScratchValue0 ; PRG $1086 | CPU $D086 | 85 00 lda #$20 ; PRG $1088 | CPU $D088 | A9 20 sta ScratchValue1 ; PRG $108A | CPU $D08A | 85 01 lda #$9C ; PRG $108C | CPU $D08C | A9 9C sta ScratchValue2 ; PRG $108E | CPU $D08E | 85 02 lda #$C8 ; PRG $1090 | CPU $D090 | A9 C8 sta ScratchIndex ; PRG $1092 | CPU $D092 | 85 03 jsr TransformFlightState_C1F8 ; PRG $1094 | CPU $D094 | 20 F8 C1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D097. ; Local behavior: Executes the decoded update gameplay state field d097 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D097: rts ; PRG $1097 | CPU $D097 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D098. ; Local behavior: Executes the decoded update side scrolling gameplay d098 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D098: lda Zp_ED ; PRG $1098 | CPU $D098 | A5 ED bne CalculateMovementAndClamp_D0BD ; PRG $109A | CPU $D09A | D0 21 jsr UpdateSideScrollingGameplay_D6ED ; PRG $109C | CPU $D09C | 20 ED D6 cmp #$04 ; PRG $109F | CPU $D09F | C9 04 bcs UpdateGameplayStateField_D0BC ; PRG $10A1 | CPU $D0A1 | B0 19 lda #$24 ; PRG $10A3 | CPU $D0A3 | A9 24 sta Zp_ED ; PRG $10A5 | CPU $D0A5 | 85 ED lda #$00 ; PRG $10A7 | CPU $D0A7 | A9 00 sta Zp_BD ; PRG $10A9 | CPU $D0A9 | 85 BD lda #$04 ; PRG $10AB | CPU $D0AB | A9 04 sta Zp_BE ; PRG $10AD | CPU $D0AD | 85 BE ldx Zp_32 ; PRG $10AF | CPU $D0AF | A6 32 ldy Zp_58,x ; PRG $10B1 | CPU $D0B1 | B4 58 lda GameplayLookupTable_C8F3,y ; PRG $10B3 | CPU $D0B3 | B9 F3 C8 sta Zp_C0 ; PRG $10B6 | CPU $D0B6 | 85 C0 lda #$00 ; PRG $10B8 | CPU $D0B8 | A9 00 sta Zp_BF ; PRG $10BA | CPU $D0BA | 85 BF ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D0 BC. ; Local behavior: Executes the decoded update gameplay state field d0 bc sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D0BC: rts ; PRG $10BC | CPU $D0BC | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value D0 BD. ; Local behavior: Executes the decoded calculate and clamp value d0 bd sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_D0BD: ldx Zp_32 ; PRG $10BD | CPU $D0BD | A6 32 lda Zp_5A,x ; PRG $10BF | CPU $D0BF | B5 5A beq UpdateGameplayStateField_D0BC ; PRG $10C1 | CPU $D0C1 | F0 F9 lda Zp_C0 ; PRG $10C3 | CPU $D0C3 | A5 C0 beq UpdateGameplayStateField_D0BC ; PRG $10C5 | CPU $D0C5 | F0 F5 lda Zp_BF ; PRG $10C7 | CPU $D0C7 | A5 BF sta ScratchValue2 ; PRG $10C9 | CPU $D0C9 | 85 02 ldy #$00 ; PRG $10CB | CPU $D0CB | A0 00 lda (Zp_BD),y ; PRG $10CD | CPU $D0CD | B1 BD cmp #$F4 ; PRG $10CF | CPU $D0CF | C9 F4 bne UpdateSideScrollingGameplay_D115 ; PRG $10D1 | CPU $D0D1 | D0 42 lda Zp_1D ; PRG $10D3 | CPU $D0D3 | A5 1D cmp #$F0 ; PRG $10D5 | CPU $D0D5 | C9 F0 bcs UpdateSideScrollingGameplay_D115 ; PRG $10D7 | CPU $D0D7 | B0 3C lda Zp_1E ; PRG $10D9 | CPU $D0D9 | A5 1E and #$1F ; PRG $10DB | CPU $D0DB | 29 1F adc #$38 ; PRG $10DD | CPU $D0DD | 69 38 sta ScratchIndex ; PRG $10DF | CPU $D0DF | 85 03 lda Zp_1F ; PRG $10E1 | CPU $D0E1 | A5 1F cmp #$20 ; PRG $10E3 | CPU $D0E3 | C9 20 bcs CalculateMovementAndClamp_D0E9 ; PRG $10E5 | CPU $D0E5 | B0 02 adc #$20 ; PRG $10E7 | CPU $D0E7 | 69 20 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value D0 E9. ; Local behavior: Executes the decoded calculate and clamp value d0 e9 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_D0E9: cmp #$E0 ; PRG $10E9 | CPU $D0E9 | C9 E0 bcc CalculateMovementAndClamp_D0EF ; PRG $10EB | CPU $D0EB | 90 02 adc #$E0 ; PRG $10ED | CPU $D0ED | 69 E0 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value D0 EF. ; Local behavior: Executes the decoded calculate and clamp value d0 ef sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_D0EF: sta DataPointerLo ; PRG $10EF | CPU $D0EF | 85 04 lda Zp_20 ; PRG $10F1 | CPU $D0F1 | A5 20 cmp #$34 ; PRG $10F3 | CPU $D0F3 | C9 34 bcc UpdateSideScrollingGameplay_D127 ; PRG $10F5 | CPU $D0F5 | 90 30 lda Zp_21 ; PRG $10F7 | CPU $D0F7 | A5 21 and #$03 ; PRG $10F9 | CPU $D0F9 | 29 03 clc ; PRG $10FB | CPU $D0FB | 18 adc #$01 ; PRG $10FC | CPU $D0FC | 69 01 sta (Zp_BD),y ; PRG $10FE | CPU $D0FE | 91 BD iny ; PRG $1100 | CPU $D100 | C8 lda ScratchIndex ; PRG $1101 | CPU $D101 | A5 03 sta (Zp_BD),y ; PRG $1103 | CPU $D103 | 91 BD ldy #$03 ; PRG $1105 | CPU $D105 | A0 03 lda DataPointerLo ; PRG $1107 | CPU $D107 | A5 04 sta (Zp_BD),y ; PRG $1109 | CPU $D109 | 91 BD ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D10 B. ; Local behavior: Executes the decoded update side scrolling gameplay d10 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D10B: lda #$00 ; PRG $110B | CPU $D10B | A9 00 ldy #$10 ; PRG $110D | CPU $D10D | A0 10 sta (Zp_BD),y ; PRG $110F | CPU $D10F | 91 BD ldx Zp_32 ; PRG $1111 | CPU $D111 | A6 32 dec Zp_5A,x ; PRG $1113 | CPU $D113 | D6 5A ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D115. ; Local behavior: Executes the decoded update side scrolling gameplay d115 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D115: inc Zp_BF ; PRG $1115 | CPU $D115 | E6 BF dec Zp_C0 ; PRG $1117 | CPU $D117 | C6 C0 clc ; PRG $1119 | CPU $D119 | 18 lda #$20 ; PRG $111A | CPU $D11A | A9 20 adc Zp_BD ; PRG $111C | CPU $D11C | 65 BD sta Zp_BD ; PRG $111E | CPU $D11E | 85 BD lda #$00 ; PRG $1120 | CPU $D120 | A9 00 adc Zp_BE ; PRG $1122 | CPU $D122 | 65 BE sta Zp_BE ; PRG $1124 | CPU $D124 | 85 BE rts ; PRG $1126 | CPU $D126 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D127. ; Local behavior: Executes the decoded update side scrolling gameplay d127 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D127: jsr UpdateSideScrollingGameplay_DAD9 ; PRG $1127 | CPU $D127 | 20 D9 DA bcc UpdateSideScrollingGameplay_D115 ; PRG $112A | CPU $D12A | 90 E9 jmp UpdateSideScrollingGameplay_D10B ; PRG $112C | CPU $D12C | 4C 0B D1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D12 F. ; Local behavior: Executes the decoded update side scrolling gameplay d12 f sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D12F: lda #$02 ; PRG $112F | CPU $D12F | A9 02 sta Zp_37 ; PRG $1131 | CPU $D131 | 85 37 lda #$00 ; PRG $1133 | CPU $D133 | A9 00 sta Zp_36 ; PRG $1135 | CPU $D135 | 85 36 ldx Zp_32 ; PRG $1137 | CPU $D137 | A6 32 lda Zp_54,x ; PRG $1139 | CPU $D139 | B5 54 beq UpdateSideScrollingGameplay_D160 ; PRG $113B | CPU $D13B | F0 23 jsr UpdateSideScrollingGameplay_D6ED ; PRG $113D | CPU $D13D | 20 ED D6 clc ; PRG $1140 | CPU $D140 | 18 ldx Zp_32 ; PRG $1141 | CPU $D141 | A6 32 adc Zp_5A,x ; PRG $1143 | CPU $D143 | 75 5A sta Zp_5A,x ; PRG $1145 | CPU $D145 | 95 5A lda Zp_31 ; PRG $1147 | CPU $D147 | A5 31 beq UpdateGameplayStateField_D157 ; PRG $1149 | CPU $D149 | F0 0C lda Zp_32 ; PRG $114B | CPU $D14B | A5 32 eor #$01 ; PRG $114D | CPU $D14D | 49 01 tay ; PRG $114F | CPU $D14F | A8 lda Zp_54,y ; PRG $1150 | CPU $D150 | B9 54 00 beq UpdateGameplayStateField_D157 ; PRG $1153 | CPU $D153 | F0 02 sty Zp_32 ; PRG $1155 | CPU $D155 | 84 32 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D157. ; Local behavior: Executes the decoded update gameplay state field d157 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D157: lda #$08 ; PRG $1157 | CPU $D157 | A9 08 sta Zp_E9 ; PRG $1159 | CPU $D159 | 85 E9 lda #$08 ; PRG $115B | CPU $D15B | A9 08 sta Zp_38 ; PRG $115D | CPU $D15D | 85 38 rts ; PRG $115F | CPU $D15F | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D160. ; Local behavior: Executes the decoded update side scrolling gameplay d160 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D160: ldx #$07 ; PRG $1160 | CPU $D160 | A2 07 lda Zp_31 ; PRG $1162 | CPU $D162 | A5 31 beq UpdateSideScrollingGameplay_D16E ; PRG $1164 | CPU $D164 | F0 08 ldx #$03 ; PRG $1166 | CPU $D166 | A2 03 lda Zp_32 ; PRG $1168 | CPU $D168 | A5 32 beq UpdateSideScrollingGameplay_D16E ; PRG $116A | CPU $D16A | F0 02 ldx #$05 ; PRG $116C | CPU $D16C | A2 05 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D16 E. ; Local behavior: Executes the decoded update side scrolling gameplay d16 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D16E: stx Zp_38 ; PRG $116E | CPU $D16E | 86 38 lda #$10 ; PRG $1170 | CPU $D170 | A9 10 sta Zp_EB ; PRG $1172 | CPU $D172 | 85 EB lda Zp_32 ; PRG $1174 | CPU $D174 | A5 32 eor #$01 ; PRG $1176 | CPU $D176 | 49 01 sta Zp_32 ; PRG $1178 | CPU $D178 | 85 32 rts ; PRG $117A | CPU $D17A | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D17 B. ; Local behavior: Executes the decoded update side scrolling gameplay d17 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D17B: lda #$20 ; PRG $117B | CPU $D17B | A9 20 sta ScratchValue2 ; PRG $117D | CPU $D17D | 85 02 ldy #$63 ; PRG $117F | CPU $D17F | A0 63 ldx #$3E ; PRG $1181 | CPU $D181 | A2 3E lda Zp_54 ; PRG $1183 | CPU $D183 | A5 54 jsr UpdateSideScrollingGameplay_D1A8 ; PRG $1185 | CPU $D185 | 20 A8 D1 ldy #$83 ; PRG $1188 | CPU $D188 | A0 83 ldx #$3D ; PRG $118A | CPU $D18A | A2 3D lda Zp_56 ; PRG $118C | CPU $D18C | A5 56 jsr UpdateSideScrollingGameplay_D1A8 ; PRG $118E | CPU $D18E | 20 A8 D1 lda Zp_31 ; PRG $1191 | CPU $D191 | A5 31 beq UpdateGameplayStateField_D1A7 ; PRG $1193 | CPU $D193 | F0 12 ldy #$78 ; PRG $1195 | CPU $D195 | A0 78 ldx #$3E ; PRG $1197 | CPU $D197 | A2 3E lda Zp_55 ; PRG $1199 | CPU $D199 | A5 55 jsr UpdateSideScrollingGameplay_D1A8 ; PRG $119B | CPU $D19B | 20 A8 D1 ldy #$98 ; PRG $119E | CPU $D19E | A0 98 ldx #$3D ; PRG $11A0 | CPU $D1A0 | A2 3D lda Zp_57 ; PRG $11A2 | CPU $D1A2 | A5 57 jsr UpdateSideScrollingGameplay_D1A8 ; PRG $11A4 | CPU $D1A4 | 20 A8 D1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D1 A7. ; Local behavior: Executes the decoded update gameplay state field d1 a7 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D1A7: rts ; PRG $11A7 | CPU $D1A7 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D1 A8. ; Local behavior: Executes the decoded update side scrolling gameplay d1 a8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D1A8: bmi UpdateGameplayStateField_D1DC ; PRG $11A8 | CPU $D1A8 | 30 32 beq UpdateGameplayStateField_D1DC ; PRG $11AA | CPU $D1AA | F0 30 sta ScratchValue0 ; PRG $11AC | CPU $D1AC | 85 00 stx ScratchValue1 ; PRG $11AE | CPU $D1AE | 86 01 ldx Ram_0330 ; PRG $11B0 | CPU $D1B0 | AE 30 03 lda ScratchValue2 ; PRG $11B3 | CPU $D1B3 | A5 02 sta Ram_0331,x ; PRG $11B5 | CPU $D1B5 | 9D 31 03 jsr UpdateSideScrollingGameplay_C24C ; PRG $11B8 | CPU $D1B8 | 20 4C C2 tya ; PRG $11BB | CPU $D1BB | 98 sta Ram_0331,x ; PRG $11BC | CPU $D1BC | 9D 31 03 jsr UpdateSideScrollingGameplay_C24C ; PRG $11BF | CPU $D1BF | 20 4C C2 lda ScratchValue0 ; PRG $11C2 | CPU $D1C2 | A5 00 ora #$40 ; PRG $11C4 | CPU $D1C4 | 09 40 sta Ram_0331,x ; PRG $11C6 | CPU $D1C6 | 9D 31 03 jsr UpdateSideScrollingGameplay_C24C ; PRG $11C9 | CPU $D1C9 | 20 4C C2 lda ScratchValue1 ; PRG $11CC | CPU $D1CC | A5 01 sta Ram_0331,x ; PRG $11CE | CPU $D1CE | 9D 31 03 jsr UpdateSideScrollingGameplay_C24C ; PRG $11D1 | CPU $D1D1 | 20 4C C2 stx Ram_0330 ; PRG $11D4 | CPU $D1D4 | 8E 30 03 lda #$00 ; PRG $11D7 | CPU $D1D7 | A9 00 sta Ram_0331,x ; PRG $11D9 | CPU $D1D9 | 9D 31 03 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D1 DC. ; Local behavior: Executes the decoded update gameplay state field d1 dc sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D1DC: rts ; PRG $11DC | CPU $D1DC | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D1 DD. ; Local behavior: Executes the decoded update side scrolling gameplay d1 dd sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D1DD: lda Zp_DC ; PRG $11DD | CPU $D1DD | A5 DC bne UpdateGameplayStateField_D1FA ; PRG $11DF | CPU $D1DF | D0 19 lda PreviousControllerButtons ; PRG $11E1 | CPU $D1E1 | A5 19 and #$10 ; PRG $11E3 | CPU $D1E3 | 29 10 beq UpdateSideScrollingGameplay_D1F8 ; PRG $11E5 | CPU $D1E5 | F0 11 lda Zp_3A ; PRG $11E7 | CPU $D1E7 | A5 3A bne UpdateSideScrollingGameplay_D1F8 ; PRG $11E9 | CPU $D1E9 | D0 0D lda #$01 ; PRG $11EB | CPU $D1EB | A9 01 eor Zp_3B ; PRG $11ED | CPU $D1ED | 45 3B sta Zp_3B ; PRG $11EF | CPU $D1EF | 85 3B lda #$12 ; PRG $11F1 | CPU $D1F1 | A9 12 jsr UpdateSideScrollingGameplay_CE5B ; PRG $11F3 | CPU $D1F3 | 20 5B CE lda #$01 ; PRG $11F6 | CPU $D1F6 | A9 01 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D1 F8. ; Local behavior: Executes the decoded update side scrolling gameplay d1 f8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D1F8: sta Zp_3A ; PRG $11F8 | CPU $D1F8 | 85 3A ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D1 FA. ; Local behavior: Executes the decoded update gameplay state field d1 fa sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D1FA: rts ; PRG $11FA | CPU $D1FA | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D1 FB. ; Local behavior: Executes the decoded update side scrolling gameplay d1 fb sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D1FB: lda Ram_0104 ; PRG $11FB | CPU $D1FB | AD 04 01 bne UpdateSideScrollingGameplay_D216 ; PRG $11FE | CPU $D1FE | D0 16 lda PreviousControllerButtons ; PRG $1200 | CPU $D200 | A5 19 and #$30 ; PRG $1202 | CPU $D202 | 29 30 beq UpdateSideScrollingGameplay_D210 ; PRG $1204 | CPU $D204 | F0 0A inc Ram_0104 ; PRG $1206 | CPU $D206 | EE 04 01 lda #$02 ; PRG $1209 | CPU $D209 | A9 02 sta Zp_39 ; PRG $120B | CPU $D20B | 85 39 sta Zp_3C ; PRG $120D | CPU $D20D | 85 3C rts ; PRG $120F | CPU $D20F | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D210. ; Local behavior: Executes the decoded update side scrolling gameplay d210 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D210: ldx #$00 ; PRG $1210 | CPU $D210 | A2 00 lda #$F4 ; PRG $1212 | CPU $D212 | A9 F4 bne UpdateSideScrollingGameplay_D246 ; PRG $1214 | CPU $D214 | D0 30 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D216. ; Local behavior: Executes the decoded update side scrolling gameplay d216 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D216: ldx #$00 ; PRG $1216 | CPU $D216 | A2 00 lda PreviousControllerButtons ; PRG $1218 | CPU $D218 | A5 19 and #$3C ; PRG $121A | CPU $D21A | 29 3C beq TransformFlightState_D239 ; PRG $121C | CPU $D21C | F0 1B inx ; PRG $121E | CPU $D21E | E8 lda Zp_3C ; PRG $121F | CPU $D21F | A5 3C bne TransformFlightState_D239 ; PRG $1221 | CPU $D221 | D0 16 lda PreviousControllerButtons ; PRG $1223 | CPU $D223 | A5 19 and #$10 ; PRG $1225 | CPU $D225 | 29 10 bne TransformFlightState_D239 ; PRG $1227 | CPU $D227 | D0 10 lda #$3E ; PRG $1229 | CPU $D229 | A9 3E sta Zp_E9 ; PRG $122B | CPU $D22B | 85 E9 inc Zp_30 ; PRG $122D | CPU $D22D | E6 30 lda PreviousControllerButtons ; PRG $122F | CPU $D22F | A5 19 and #$08 ; PRG $1231 | CPU $D231 | 29 08 beq TransformFlightState_D239 ; PRG $1233 | CPU $D233 | F0 04 dec Zp_30 ; PRG $1235 | CPU $D235 | C6 30 dec Zp_30 ; PRG $1237 | CPU $D237 | C6 30 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State D239. ; Local behavior: Executes the decoded transform flight state d239 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_D239: lda Zp_30 ; PRG $1239 | CPU $D239 | A5 30 and #$03 ; PRG $123B | CPU $D23B | 29 03 sta Zp_30 ; PRG $123D | CPU $D23D | 85 30 asl a ; PRG $123F | CPU $D23F | 0A asl a ; PRG $1240 | CPU $D240 | 0A asl a ; PRG $1241 | CPU $D241 | 0A asl a ; PRG $1242 | CPU $D242 | 0A clc ; PRG $1243 | CPU $D243 | 18 adc #$58 ; PRG $1244 | CPU $D244 | 69 58 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D246. ; Local behavior: Executes the decoded update side scrolling gameplay d246 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D246: sta Ram_02FC ; PRG $1246 | CPU $D246 | 8D FC 02 stx Zp_3C ; PRG $1249 | CPU $D249 | 86 3C lda Zp_DD ; PRG $124B | CPU $D24B | A5 DD bne UpdateGameplayStateField_D253 ; PRG $124D | CPU $D24D | D0 04 lda #$07 ; PRG $124F | CPU $D24F | A9 07 sta Zp_DD ; PRG $1251 | CPU $D251 | 85 DD ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D253. ; Local behavior: Executes the decoded update gameplay state field d253 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D253: rts ; PRG $1253 | CPU $D253 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D254. ; Local behavior: Executes the decoded update side scrolling gameplay d254 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D254: lda #$67 ; PRG $1254 | CPU $D254 | A9 67 ldx #$EC ; PRG $1256 | CPU $D256 | A2 EC bne UpdateSideScrollingGameplay_D25E ; PRG $1258 | CPU $D258 | D0 04 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D25 A. ; Local behavior: Executes the decoded update side scrolling gameplay d25 a sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D25A: lda #$E8 ; PRG $125A | CPU $D25A | A9 E8 ldx #$EA ; PRG $125C | CPU $D25C | A2 EA ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D25 E. ; Local behavior: Executes the decoded update side scrolling gameplay d25 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D25E: jsr UpdateSideScrollingGameplay_C0D7 ; PRG $125E | CPU $D25E | 20 D7 C0 jmp UpdateSideScrollingGameplay_D326 ; PRG $1261 | CPU $D261 | 4C 26 D3 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D264. ; Local behavior: Executes the decoded update side scrolling gameplay d264 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D264: lda #$01 ; PRG $1264 | CPU $D264 | A9 01 sta Zp_0F ; PRG $1266 | CPU $D266 | 85 0F lda #$0B ; PRG $1268 | CPU $D268 | A9 0B sta ScratchValue0 ; PRG $126A | CPU $D26A | 85 00 lda #$22 ; PRG $126C | CPU $D26C | A9 22 sta ScratchValue1 ; PRG $126E | CPU $D26E | 85 01 lda #$91 ; PRG $1270 | CPU $D270 | A9 91 sta ScratchValue2 ; PRG $1272 | CPU $D272 | 85 02 lda #$C8 ; PRG $1274 | CPU $D274 | A9 C8 sta ScratchIndex ; PRG $1276 | CPU $D276 | 85 03 jsr TransformFlightState_C1F8 ; PRG $1278 | CPU $D278 | 20 F8 C1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D27 B. ; Local behavior: Executes the decoded update side scrolling gameplay d27 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D27B: lda #$CC ; PRG $127B | CPU $D27B | A9 CC sta ScratchValue0 ; PRG $127D | CPU $D27D | 85 00 lda #$21 ; PRG $127F | CPU $D27F | A9 21 sta ScratchValue1 ; PRG $1281 | CPU $D281 | 85 01 lda #$7F ; PRG $1283 | CPU $D283 | A9 7F sta ScratchValue2 ; PRG $1285 | CPU $D285 | 85 02 lda #$C8 ; PRG $1287 | CPU $D287 | A9 C8 sta ScratchIndex ; PRG $1289 | CPU $D289 | 85 03 jsr TransformFlightState_C1F8 ; PRG $128B | CPU $D28B | 20 F8 C1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D28 E. ; Local behavior: Executes the decoded update side scrolling gameplay d28 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D28E: lda #$24 ; PRG $128E | CPU $D28E | A9 24 bne UpdateSideScrollingGameplay_D294 ; PRG $1290 | CPU $D290 | D0 02 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D292. ; Local behavior: Executes the decoded update side scrolling gameplay d292 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D292: lda #$FF ; PRG $1292 | CPU $D292 | A9 FF ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D294. ; Local behavior: Executes the decoded update side scrolling gameplay d294 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D294: sta ScratchValue0 ; PRG $1294 | CPU $D294 | 85 00 lda #$01 ; PRG $1296 | CPU $D296 | A9 01 sta ScratchValue1 ; PRG $1298 | CPU $D298 | 85 01 jsr ConfigureHudAndPlayfieldPpu_C092 ; PRG $129A | CPU $D29A | 20 92 C0 lda #$02 ; PRG $129D | CPU $D29D | A9 02 sta ScratchValue1 ; PRG $129F | CPU $D29F | 85 01 jsr ConfigureHudAndPlayfieldPpu_C092 ; PRG $12A1 | CPU $D2A1 | 20 92 C0 lda Zp_0F ; PRG $12A4 | CPU $D2A4 | A5 0F beq UpdateSideScrollingGameplay_D2AF ; PRG $12A6 | CPU $D2A6 | F0 07 lda #$57 ; PRG $12A8 | CPU $D2A8 | A9 57 ldx #$EE ; PRG $12AA | CPU $D2AA | A2 EE jsr UpdateSideScrollingGameplay_C0D7 ; PRG $12AC | CPU $D2AC | 20 D7 C0 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D2 AF. ; Local behavior: Executes the decoded update side scrolling gameplay d2 af sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D2AF: lda #$00 ; PRG $12AF | CPU $D2AF | A9 00 ldx #$06 ; PRG $12B1 | CPU $D2B1 | A2 06 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D2 B3. ; Local behavior: Executes the decoded update side scrolling gameplay d2 b3 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D2B3: sta PpuMaskShadow,x ; PRG $12B3 | CPU $D2B3 | 95 11 dex ; PRG $12B5 | CPU $D2B5 | CA bne UpdateSideScrollingGameplay_D2B3 ; PRG $12B6 | CPU $D2B6 | D0 FB lda PpuControlShadow ; PRG $12B8 | CPU $D2B8 | A5 10 and #$FC ; PRG $12BA | CPU $D2BA | 29 FC sta PpuControlShadow ; PRG $12BC | CPU $D2BC | 85 10 jsr UpdateSideScrollingGameplay_CA8E ; PRG $12BE | CPU $D2BE | 20 8E CA jmp UpdateSideScrollingGameplay_D326 ; PRG $12C1 | CPU $D2C1 | 4C 26 D3 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D2 C4. ; Local behavior: Executes the decoded update side scrolling gameplay d2 c4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D2C4: lda #$A0 ; PRG $12C4 | CPU $D2C4 | A9 A0 ldx #$EA ; PRG $12C6 | CPU $D2C6 | A2 EA jsr UpdateSideScrollingGameplay_C0D7 ; PRG $12C8 | CPU $D2C8 | 20 D7 C0 jmp UpdateSideScrollingGameplay_D32C ; PRG $12CB | CPU $D2CB | 4C 2C D3 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D2 CE. ; Local behavior: Executes the decoded update gameplay state field d2 ce sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D2CE: rts ; PRG $12CE | CPU $D2CE | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Configure Hud And Playfield Ppu D2 CF. ; Local behavior: Executes the decoded configure hud and playfield ppu d2 cf sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- ConfigureHudAndPlayfieldPpu_D2CF: ldx Zp_38 ; PRG $12CF | CPU $D2CF | A6 38 beq UpdateGameplayStateField_D2CE ; PRG $12D1 | CPU $D2D1 | F0 FB lda #$00 ; PRG $12D3 | CPU $D2D3 | A9 00 sta Zp_38 ; PRG $12D5 | CPU $D2D5 | 85 38 lda PpuMaskShadow ; PRG $12D7 | CPU $D2D7 | A5 11 and #$E7 ; PRG $12D9 | CPU $D2D9 | 29 E7 sta PpuMaskShadow ; PRG $12DB | CPU $D2DB | 85 11 sta PPUMASK ; PRG $12DD | CPU $D2DD | 8D 01 20 lda #$00 ; PRG $12E0 | CPU $D2E0 | A9 00 sta Zp_0F ; PRG $12E2 | CPU $D2E2 | 85 0F lda PpuControlShadow ; PRG $12E4 | CPU $D2E4 | A5 10 ora #$18 ; PRG $12E6 | CPU $D2E6 | 09 18 sta PpuControlShadow ; PRG $12E8 | CPU $D2E8 | 85 10 dex ; PRG $12EA | CPU $D2EA | CA bne UpdateSideScrollingGameplay_D2F0 ; PRG $12EB | CPU $D2EB | D0 03 jmp UpdateSideScrollingGameplay_D25A ; PRG $12ED | CPU $D2ED | 4C 5A D2 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D2 F0. ; Local behavior: Executes the decoded update side scrolling gameplay d2 f0 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D2F0: lda PpuControlShadow ; PRG $12F0 | CPU $D2F0 | A5 10 and #$E7 ; PRG $12F2 | CPU $D2F2 | 29 E7 sta PpuControlShadow ; PRG $12F4 | CPU $D2F4 | 85 10 dex ; PRG $12F6 | CPU $D2F6 | CA beq UpdateSideScrollingGameplay_D27B ; PRG $12F7 | CPU $D2F7 | F0 82 dex ; PRG $12F9 | CPU $D2F9 | CA bne UpdateSideScrollingGameplay_D2FF ; PRG $12FA | CPU $D2FA | D0 03 jmp UpdateSideScrollingGameplay_D264 ; PRG $12FC | CPU $D2FC | 4C 64 D2 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D2 FF. ; Local behavior: Executes the decoded update side scrolling gameplay d2 ff sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D2FF: dex ; PRG $12FF | CPU $D2FF | CA beq UpdateSideScrollingGameplay_D348 ; PRG $1300 | CPU $D300 | F0 46 dex ; PRG $1302 | CPU $D302 | CA beq UpdateSideScrollingGameplay_D331 ; PRG $1303 | CPU $D303 | F0 2C dex ; PRG $1305 | CPU $D305 | CA beq TransformFlightState_D382 ; PRG $1306 | CPU $D306 | F0 7A dex ; PRG $1308 | CPU $D308 | CA beq UpdateSideScrollingGameplay_D35E ; PRG $1309 | CPU $D309 | F0 53 dex ; PRG $130B | CPU $D30B | CA beq UpdateSideScrollingGameplay_D28E ; PRG $130C | CPU $D30C | F0 80 dex ; PRG $130E | CPU $D30E | CA beq UpdateSideScrollingGameplay_D2C4 ; PRG $130F | CPU $D30F | F0 B3 dex ; PRG $1311 | CPU $D311 | CA beq UpdateSideScrollingGameplay_D378 ; PRG $1312 | CPU $D312 | F0 64 lda PpuControlShadow ; PRG $1314 | CPU $D314 | A5 10 ora #$18 ; PRG $1316 | CPU $D316 | 09 18 sta PpuControlShadow ; PRG $1318 | CPU $D318 | 85 10 dex ; PRG $131A | CPU $D31A | CA bne UpdateSideScrollingGameplay_D320 ; PRG $131B | CPU $D31B | D0 03 jmp UpdateSideScrollingGameplay_D292 ; PRG $131D | CPU $D31D | 4C 92 D2 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D320. ; Local behavior: Executes the decoded update side scrolling gameplay d320 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D320: dex ; PRG $1320 | CPU $D320 | CA bne UpdateSideScrollingGameplay_D326 ; PRG $1321 | CPU $D321 | D0 03 jmp UpdateSideScrollingGameplay_D254 ; PRG $1323 | CPU $D323 | 4C 54 D2 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D326. ; Local behavior: Executes the decoded update side scrolling gameplay d326 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D326: lda PpuMaskShadow ; PRG $1326 | CPU $D326 | A5 11 ora #$18 ; PRG $1328 | CPU $D328 | 09 18 sta PpuMaskShadow ; PRG $132A | CPU $D32A | 85 11 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D32 C. ; Local behavior: Executes the decoded update side scrolling gameplay d32 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D32C: pla ; PRG $132C | CPU $D32C | 68 pla ; PRG $132D | CPU $D32D | 68 jmp UpdateSideScrollingGameplay_CADA ; PRG $132E | CPU $D32E | 4C DA CA ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D331. ; Local behavior: Executes the decoded update side scrolling gameplay d331 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D331: lda #$01 ; PRG $1331 | CPU $D331 | A9 01 sta Zp_0F ; PRG $1333 | CPU $D333 | 85 0F lda #$0B ; PRG $1335 | CPU $D335 | A9 0B sta ScratchValue0 ; PRG $1337 | CPU $D337 | 85 00 lda #$22 ; PRG $1339 | CPU $D339 | A9 22 sta ScratchValue1 ; PRG $133B | CPU $D33B | 85 01 lda #$91 ; PRG $133D | CPU $D33D | A9 91 sta ScratchValue2 ; PRG $133F | CPU $D33F | 85 02 lda #$C8 ; PRG $1341 | CPU $D341 | A9 C8 sta ScratchIndex ; PRG $1343 | CPU $D343 | 85 03 jsr TransformFlightState_C1F8 ; PRG $1345 | CPU $D345 | 20 F8 C1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D348. ; Local behavior: Executes the decoded update side scrolling gameplay d348 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D348: lda #$CC ; PRG $1348 | CPU $D348 | A9 CC sta ScratchValue0 ; PRG $134A | CPU $D34A | 85 00 lda #$21 ; PRG $134C | CPU $D34C | A9 21 sta ScratchValue1 ; PRG $134E | CPU $D34E | 85 01 lda #$88 ; PRG $1350 | CPU $D350 | A9 88 sta ScratchValue2 ; PRG $1352 | CPU $D352 | 85 02 lda #$C8 ; PRG $1354 | CPU $D354 | A9 C8 sta ScratchIndex ; PRG $1356 | CPU $D356 | 85 03 jsr TransformFlightState_C1F8 ; PRG $1358 | CPU $D358 | 20 F8 C1 jmp UpdateSideScrollingGameplay_D28E ; PRG $135B | CPU $D35B | 4C 8E D2 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D35 E. ; Local behavior: Executes the decoded update side scrolling gameplay d35 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D35E: lda #$01 ; PRG $135E | CPU $D35E | A9 01 sta Zp_0F ; PRG $1360 | CPU $D360 | 85 0F lda #$0B ; PRG $1362 | CPU $D362 | A9 0B sta ScratchValue0 ; PRG $1364 | CPU $D364 | 85 00 lda #$22 ; PRG $1366 | CPU $D366 | A9 22 sta ScratchValue1 ; PRG $1368 | CPU $D368 | 85 01 lda #$91 ; PRG $136A | CPU $D36A | A9 91 sta ScratchValue2 ; PRG $136C | CPU $D36C | 85 02 lda #$C8 ; PRG $136E | CPU $D36E | A9 C8 sta ScratchIndex ; PRG $1370 | CPU $D370 | 85 03 jsr TransformFlightState_C1F8 ; PRG $1372 | CPU $D372 | 20 F8 C1 jmp UpdateSideScrollingGameplay_D28E ; PRG $1375 | CPU $D375 | 4C 8E D2 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D378. ; Local behavior: Executes the decoded update side scrolling gameplay d378 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D378: lda #$02 ; PRG $1378 | CPU $D378 | A9 02 ldx #$EE ; PRG $137A | CPU $D37A | A2 EE jsr UpdateSideScrollingGameplay_C0D7 ; PRG $137C | CPU $D37C | 20 D7 C0 jmp UpdateSideScrollingGameplay_D326 ; PRG $137F | CPU $D37F | 4C 26 D3 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State D382. ; Local behavior: Executes the decoded transform flight state d382 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_D382: lda #$0A ; PRG $1382 | CPU $D382 | A9 0A ldx #$EA ; PRG $1384 | CPU $D384 | A2 EA jsr UpdateSideScrollingGameplay_C0D7 ; PRG $1386 | CPU $D386 | 20 D7 C0 lda #$00 ; PRG $1389 | CPU $D389 | A9 00 sta ScratchValue2 ; PRG $138B | CPU $D38B | 85 02 ldx Zp_32 ; PRG $138D | CPU $D38D | A6 32 lda Zp_5C,x ; PRG $138F | CPU $D38F | B5 5C beq UpdateSideScrollingGameplay_D3AC ; PRG $1391 | CPU $D391 | F0 19 eor #$FF ; PRG $1393 | CPU $D393 | 49 FF clc ; PRG $1395 | CPU $D395 | 18 adc #$09 ; PRG $1396 | CPU $D396 | 69 09 asl a ; PRG $1398 | CPU $D398 | 0A rol ScratchValue2 ; PRG $1399 | CPU $D399 | 26 02 asl a ; PRG $139B | CPU $D39B | 0A rol ScratchValue2 ; PRG $139C | CPU $D39C | 26 02 clc ; PRG $139E | CPU $D39E | 18 adc #$C7 ; PRG $139F | CPU $D39F | 69 C7 sta ScratchValue0 ; PRG $13A1 | CPU $D3A1 | 85 00 lda ScratchValue2 ; PRG $13A3 | CPU $D3A3 | A5 02 adc #$EA ; PRG $13A5 | CPU $D3A5 | 69 EA sta ScratchValue1 ; PRG $13A7 | CPU $D3A7 | 85 01 jsr FinishHudPlayfieldUploadAndResetScroll ; PRG $13A9 | CPU $D3A9 | 20 20 C1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D3 AC. ; Local behavior: Executes the decoded update side scrolling gameplay d3 ac sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D3AC: ldx Zp_32 ; PRG $13AC | CPU $D3AC | A6 32 lda Zp_5E,x ; PRG $13AE | CPU $D3AE | B5 5E cmp #$04 ; PRG $13B0 | CPU $D3B0 | C9 04 bcs UpdateSideScrollingGameplay_D3BE ; PRG $13B2 | CPU $D3B2 | B0 0A lda #$66 ; PRG $13B4 | CPU $D3B4 | A9 66 ldx #$EE ; PRG $13B6 | CPU $D3B6 | A2 EE ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D3 B8. ; Local behavior: Executes the decoded update side scrolling gameplay d3 b8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D3B8: jsr UpdateSideScrollingGameplay_C0D7 ; PRG $13B8 | CPU $D3B8 | 20 D7 C0 jmp UpdateSideScrollingGameplay_D326 ; PRG $13BB | CPU $D3BB | 4C 26 D3 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D3 BE. ; Local behavior: Executes the decoded update side scrolling gameplay d3 be sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D3BE: lda #$14 ; PRG $13BE | CPU $D3BE | A9 14 ldx #$EF ; PRG $13C0 | CPU $D3C0 | A2 EF bne UpdateSideScrollingGameplay_D3B8 ; PRG $13C2 | CPU $D3C2 | D0 F4 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D3 C4. ; Local behavior: Executes the decoded update side scrolling gameplay d3 c4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D3C4: lda HorizontalScroll ; PRG $13C4 | CPU $D3C4 | A5 12 cmp Zp_BA ; PRG $13C6 | CPU $D3C6 | C5 BA sta Zp_BA ; PRG $13C8 | CPU $D3C8 | 85 BA beq UpdateSideScrollingGameplay_D3EF ; PRG $13CA | CPU $D3CA | F0 23 and #$FF ; PRG $13CC | CPU $D3CC | 29 FF beq UpdateSideScrollingGameplay_D436 ; PRG $13CE | CPU $D3CE | F0 66 lda VerticalScroll ; PRG $13D0 | CPU $D3D0 | A5 13 bpl UpdateSideScrollingGameplay_D43A ; PRG $13D2 | CPU $D3D2 | 10 66 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D3 D4. ; Local behavior: Executes the decoded update side scrolling gameplay d3 d4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D3D4: lda Zp_BB ; PRG $13D4 | CPU $D3D4 | A5 BB eor #$01 ; PRG $13D6 | CPU $D3D6 | 49 01 sta Zp_BB ; PRG $13D8 | CPU $D3D8 | 85 BB bne UpdateSideScrollingGameplay_D43D ; PRG $13DA | CPU $D3DA | D0 61 lda #$7A ; PRG $13DC | CPU $D3DC | A9 7A sta ScratchValue2 ; PRG $13DE | CPU $D3DE | 85 02 lda #$C8 ; PRG $13E0 | CPU $D3E0 | A9 C8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D3 E2. ; Local behavior: Executes the decoded update side scrolling gameplay d3 e2 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D3E2: sta ScratchIndex ; PRG $13E2 | CPU $D3E2 | 85 03 lda #$25 ; PRG $13E4 | CPU $D3E4 | A9 25 sta ScratchValue1 ; PRG $13E6 | CPU $D3E6 | 85 01 lda #$6F ; PRG $13E8 | CPU $D3E8 | A9 6F sta ScratchValue0 ; PRG $13EA | CPU $D3EA | 85 00 jsr TransformFlightState_C1F8 ; PRG $13EC | CPU $D3EC | 20 F8 C1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D3 EF. ; Local behavior: Executes the decoded update side scrolling gameplay d3 ef sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D3EF: lda Zp_BB ; PRG $13EF | CPU $D3EF | A5 BB beq UpdateGameplayStateField_D435 ; PRG $13F1 | CPU $D3F1 | F0 42 sec ; PRG $13F3 | CPU $D3F3 | 38 lda #$74 ; PRG $13F4 | CPU $D3F4 | A9 74 sbc VerticalScroll ; PRG $13F6 | CPU $D3F6 | E5 13 sta ScratchValue0 ; PRG $13F8 | CPU $D3F8 | 85 00 lda #$01 ; PRG $13FA | CPU $D3FA | A9 01 sbc HorizontalScroll ; PRG $13FC | CPU $D3FC | E5 12 bne UpdateGameplayStateField_D435 ; PRG $13FE | CPU $D3FE | D0 35 lda Ram_03C3 ; PRG $1400 | CPU $D400 | AD C3 03 sec ; PRG $1403 | CPU $D403 | 38 sbc ScratchValue0 ; PRG $1404 | CPU $D404 | E5 00 bcs CalculateMovementAndClamp_D40D ; PRG $1406 | CPU $D406 | B0 05 eor #$FF ; PRG $1408 | CPU $D408 | 49 FF clc ; PRG $140A | CPU $D40A | 18 adc #$01 ; PRG $140B | CPU $D40B | 69 01 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value D40 D. ; Local behavior: Executes the decoded calculate and clamp value d40 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_D40D: cmp #$08 ; PRG $140D | CPU $D40D | C9 08 bcs UpdateGameplayStateField_D435 ; PRG $140F | CPU $D40F | B0 24 lda Ram_03C1 ; PRG $1411 | CPU $D411 | AD C1 03 sec ; PRG $1414 | CPU $D414 | 38 sbc #$5B ; PRG $1415 | CPU $D415 | E9 5B bcs UpdateSideScrollingGameplay_D41E ; PRG $1417 | CPU $D417 | B0 05 eor #$FF ; PRG $1419 | CPU $D419 | 49 FF clc ; PRG $141B | CPU $D41B | 18 adc #$01 ; PRG $141C | CPU $D41C | 69 01 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D41 E. ; Local behavior: Executes the decoded update side scrolling gameplay d41 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D41E: cmp #$05 ; PRG $141E | CPU $D41E | C9 05 bcs UpdateGameplayStateField_D435 ; PRG $1420 | CPU $D420 | B0 13 lda Ram_03C0 ; PRG $1422 | CPU $D422 | AD C0 03 bne UpdateGameplayStateField_D435 ; PRG $1425 | CPU $D425 | D0 0E ldy #$10 ; PRG $1427 | CPU $D427 | A0 10 jsr UpdateSideScrollingGameplay_D6CC ; PRG $1429 | CPU $D429 | 20 CC D6 lda #$00 ; PRG $142C | CPU $D42C | A9 00 jsr UpdateSideScrollingGameplay_CE5B ; PRG $142E | CPU $D42E | 20 5B CE lda #$80 ; PRG $1431 | CPU $D431 | A9 80 sta Zp_DC ; PRG $1433 | CPU $D433 | 85 DC ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D435. ; Local behavior: Executes the decoded update gameplay state field d435 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D435: rts ; PRG $1435 | CPU $D435 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D436. ; Local behavior: Executes the decoded update side scrolling gameplay d436 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D436: lda VerticalScroll ; PRG $1436 | CPU $D436 | A5 13 bpl UpdateSideScrollingGameplay_D3D4 ; PRG $1438 | CPU $D438 | 10 9A ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D43 A. ; Local behavior: Executes the decoded update side scrolling gameplay d43 a sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D43A: jmp UpdateSideScrollingGameplay_D3EF ; PRG $143A | CPU $D43A | 4C EF D3 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D43 D. ; Local behavior: Executes the decoded update side scrolling gameplay d43 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D43D: lda #$75 ; PRG $143D | CPU $D43D | A9 75 sta ScratchValue2 ; PRG $143F | CPU $D43F | 85 02 lda #$C8 ; PRG $1441 | CPU $D441 | A9 C8 jmp UpdateSideScrollingGameplay_D3E2 ; PRG $1443 | CPU $D443 | 4C E2 D3 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D446. ; Local behavior: Executes the decoded update side scrolling gameplay d446 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D446: jmp UpdateSideScrollingGameplay_D3C4 ; PRG $1446 | CPU $D446 | 4C C4 D3 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D449. ; Local behavior: Executes the decoded update side scrolling gameplay d449 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D449: lda Zp_DC ; PRG $1449 | CPU $D449 | A5 DC beq UpdateSideScrollingGameplay_D446 ; PRG $144B | CPU $D44B | F0 F9 cmp #$01 ; PRG $144D | CPU $D44D | C9 01 bne UpdateSideScrollingGameplay_D457 ; PRG $144F | CPU $D44F | D0 06 lda PpuMaskShadow ; PRG $1451 | CPU $D451 | A5 11 ora #$18 ; PRG $1453 | CPU $D453 | 09 18 sta PpuMaskShadow ; PRG $1455 | CPU $D455 | 85 11 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D457. ; Local behavior: Executes the decoded update side scrolling gameplay d457 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D457: cmp #$40 ; PRG $1457 | CPU $D457 | C9 40 bne UpdateSideScrollingGameplay_D4D0 ; PRG $1459 | CPU $D459 | D0 75 lda PpuMaskShadow ; PRG $145B | CPU $D45B | A5 11 and #$E7 ; PRG $145D | CPU $D45D | 29 E7 sta PpuMaskShadow ; PRG $145F | CPU $D45F | 85 11 lda PpuControlShadow ; PRG $1461 | CPU $D461 | A5 10 and #$FE ; PRG $1463 | CPU $D463 | 29 FE sta PpuControlShadow ; PRG $1465 | CPU $D465 | 85 10 lda #$00 ; PRG $1467 | CPU $D467 | A9 00 ldx #$05 ; PRG $1469 | CPU $D469 | A2 05 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D46 B. ; Local behavior: Executes the decoded update side scrolling gameplay d46 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D46B: sta HorizontalScroll,x ; PRG $146B | CPU $D46B | 95 12 dex ; PRG $146D | CPU $D46D | CA bpl UpdateSideScrollingGameplay_D46B ; PRG $146E | CPU $D46E | 10 FB sta Ram_03D3 ; PRG $1470 | CPU $D470 | 8D D3 03 sta Ram_03D4 ; PRG $1473 | CPU $D473 | 8D D4 03 sta Ram_03C4 ; PRG $1476 | CPU $D476 | 8D C4 03 ldx #$24 ; PRG $1479 | CPU $D479 | A2 24 lda Ram_03C8 ; PRG $147B | CPU $D47B | AD C8 03 and #$10 ; PRG $147E | CPU $D47E | 29 10 beq UpdateSideScrollingGameplay_D484 ; PRG $1480 | CPU $D480 | F0 02 ldx #$C4 ; PRG $1482 | CPU $D482 | A2 C4 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D484. ; Local behavior: Executes the decoded update side scrolling gameplay d484 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D484: stx Ram_03C3 ; PRG $1484 | CPU $D484 | 8E C3 03 lda #$F4 ; PRG $1487 | CPU $D487 | A9 F4 sta Ram_03E0 ; PRG $1489 | CPU $D489 | 8D E0 03 sta Ram_03F0 ; PRG $148C | CPU $D48C | 8D F0 03 sta Ram_0680 ; PRG $148F | CPU $D48F | 8D 80 06 sta Ram_06A0 ; PRG $1492 | CPU $D492 | 8D A0 06 sta Ram_06C0 ; PRG $1495 | CPU $D495 | 8D C0 06 sta Ram_06E0 ; PRG $1498 | CPU $D498 | 8D E0 06 jsr UpdateSideScrollingGameplay_D072 ; PRG $149B | CPU $D49B | 20 72 D0 lda #$09 ; PRG $149E | CPU $D49E | A9 09 sta Zp_38 ; PRG $14A0 | CPU $D4A0 | 85 38 lda #$00 ; PRG $14A2 | CPU $D4A2 | A9 00 sta Zp_A1 ; PRG $14A4 | CPU $D4A4 | 85 A1 lda #$00 ; PRG $14A6 | CPU $D4A6 | A9 00 sta ScratchValue0 ; PRG $14A8 | CPU $D4A8 | 85 00 lda #$04 ; PRG $14AA | CPU $D4AA | A9 04 sta ScratchValue1 ; PRG $14AC | CPU $D4AC | 85 01 ldx #$14 ; PRG $14AE | CPU $D4AE | A2 14 ldy #$00 ; PRG $14B0 | CPU $D4B0 | A0 00 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value D4 B2. ; Local behavior: Executes the decoded calculate and clamp value d4 b2 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_D4B2: lda (ScratchValue0),y ; PRG $14B2 | CPU $D4B2 | B1 00 cmp #$F4 ; PRG $14B4 | CPU $D4B4 | C9 F4 beq UpdateSideScrollingGameplay_D4C3 ; PRG $14B6 | CPU $D4B6 | F0 0B clc ; PRG $14B8 | CPU $D4B8 | 18 adc #$02 ; PRG $14B9 | CPU $D4B9 | 69 02 cmp #$05 ; PRG $14BB | CPU $D4BB | C9 05 bcc UpdateSideScrollingGameplay_D4C1 ; PRG $14BD | CPU $D4BD | 90 02 sbc #$05 ; PRG $14BF | CPU $D4BF | E9 05 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D4 C1. ; Local behavior: Executes the decoded update side scrolling gameplay d4 c1 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D4C1: sta (ScratchValue0),y ; PRG $14C1 | CPU $D4C1 | 91 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D4 C3. ; Local behavior: Executes the decoded update side scrolling gameplay d4 c3 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D4C3: jsr UpdateSideScrollingGameplay_DB1D ; PRG $14C3 | CPU $D4C3 | 20 1D DB dex ; PRG $14C6 | CPU $D4C6 | CA bne CalculateMovementAndClamp_D4B2 ; PRG $14C7 | CPU $D4C7 | D0 E9 inc Zp_A2 ; PRG $14C9 | CPU $D4C9 | E6 A2 pla ; PRG $14CB | CPU $D4CB | 68 pla ; PRG $14CC | CPU $D4CC | 68 jmp UpdateSideScrollingGameplay_CB61 ; PRG $14CD | CPU $D4CD | 4C 61 CB ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D4 D0. ; Local behavior: Executes the decoded update side scrolling gameplay d4 d0 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D4D0: ldy #$0F ; PRG $14D0 | CPU $D4D0 | A0 0F cmp #$3F ; PRG $14D2 | CPU $D4D2 | C9 3F bne UpdateSideScrollingGameplay_D4D9 ; PRG $14D4 | CPU $D4D4 | D0 03 jsr UpdateSideScrollingGameplay_D6CC ; PRG $14D6 | CPU $D4D6 | 20 CC D6 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D4 D9. ; Local behavior: Executes the decoded update side scrolling gameplay d4 d9 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D4D9: cmp #$19 ; PRG $14D9 | CPU $D4D9 | C9 19 bne UpdateSideScrollingGameplay_D4E0 ; PRG $14DB | CPU $D4DB | D0 03 jsr UpdateSideScrollingGameplay_D17B ; PRG $14DD | CPU $D4DD | 20 7B D1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D4 E0. ; Local behavior: Executes the decoded update side scrolling gameplay d4 e0 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D4E0: pla ; PRG $14E0 | CPU $D4E0 | 68 pla ; PRG $14E1 | CPU $D4E1 | 68 jsr UpdateSideScrollingGameplay_C139 ; PRG $14E2 | CPU $D4E2 | 20 39 C1 jmp UpdateSideScrollingGameplay_CB61 ; PRG $14E5 | CPU $D4E5 | 4C 61 CB ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D4 E8. ; Local behavior: Executes the decoded update gameplay state field d4 e8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D4E8: rts ; PRG $14E8 | CPU $D4E8 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value D4 E9. ; Local behavior: Executes the decoded calculate and clamp value d4 e9 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_D4E9: lda Zp_EC ; PRG $14E9 | CPU $D4E9 | A5 EC ldx Zp_32 ; PRG $14EB | CPU $D4EB | A6 32 ldy Zp_58,x ; PRG $14ED | CPU $D4ED | B4 58 cmp GameplayConstantData_C8F7,y ; PRG $14EF | CPU $D4EF | D9 F7 C8 bcs UpdateGameplayStateField_D4E8 ; PRG $14F2 | CPU $D4F2 | B0 F4 lda Zp_DF ; PRG $14F4 | CPU $D4F4 | A5 DF bne UpdateGameplayStateField_D4E8 ; PRG $14F6 | CPU $D4F6 | D0 F0 lda #$20 ; PRG $14F8 | CPU $D4F8 | A9 20 sta Zp_DF ; PRG $14FA | CPU $D4FA | 85 DF lda Zp_1D ; PRG $14FC | CPU $D4FC | A5 1D ldx Zp_32 ; PRG $14FE | CPU $D4FE | A6 32 ldy Zp_58,x ; PRG $1500 | CPU $D500 | B4 58 cmp GameplayConstantData_C8FF,y ; PRG $1502 | CPU $D502 | D9 FF C8 bcs UpdateGameplayStateField_D4E8 ; PRG $1505 | CPU $D505 | B0 E1 jsr UpdateSideScrollingGameplay_D6ED ; PRG $1507 | CPU $D507 | 20 ED D6 pha ; PRG $150A | CPU $D50A | 48 jsr UpdateSideScrollingGameplay_D6FB ; PRG $150B | CPU $D50B | 20 FB D6 sta ScratchValue0 ; PRG $150E | CPU $D50E | 85 00 pla ; PRG $1510 | CPU $D510 | 68 clc ; PRG $1511 | CPU $D511 | 18 adc ScratchValue0 ; PRG $1512 | CPU $D512 | 65 00 ldx Zp_32 ; PRG $1514 | CPU $D514 | A6 32 ldy Zp_58,x ; PRG $1516 | CPU $D516 | B4 58 cmp GameplayConstantData_C8FB,y ; PRG $1518 | CPU $D518 | D9 FB C8 bcs UpdateGameplayStateField_D4E8 ; PRG $151B | CPU $D51B | B0 CB lda Zp_1E ; PRG $151D | CPU $D51D | A5 1E cmp #$71 ; PRG $151F | CPU $D51F | C9 71 bcc UpdateSideScrollingGameplay_D58B ; PRG $1521 | CPU $D521 | 90 68 cmp #$C6 ; PRG $1523 | CPU $D523 | C9 C6 bcc UpdateSideScrollingGameplay_D583 ; PRG $1525 | CPU $D525 | 90 5C lda Ram_05E0 ; PRG $1527 | CPU $D527 | AD E0 05 cmp #$F4 ; PRG $152A | CPU $D52A | C9 F4 bne UpdateGameplayStateField_D4E8 ; PRG $152C | CPU $D52C | D0 BA lda Ram_0600 ; PRG $152E | CPU $D52E | AD 00 06 cmp #$F4 ; PRG $1531 | CPU $D531 | C9 F4 bne UpdateGameplayStateField_D4E8 ; PRG $1533 | CPU $D533 | D0 B3 lda Zp_58,x ; PRG $1535 | CPU $D535 | B5 58 cmp #$02 ; PRG $1537 | CPU $D537 | C9 02 bcc UpdateGameplayStateField_D4E8 ; PRG $1539 | CPU $D539 | 90 AD ldx #$01 ; PRG $153B | CPU $D53B | A2 01 lda Ram_03C8 ; PRG $153D | CPU $D53D | AD C8 03 and #$10 ; PRG $1540 | CPU $D540 | 29 10 beq UpdateFlyingEntity_D546 ; PRG $1542 | CPU $D542 | F0 02 ldx #$04 ; PRG $1544 | CPU $D544 | A2 04 ; ----------------------------------------------------------------------------- ; Global purpose: Update Flying Entity D546. ; Local behavior: Executes the decoded update flying entity d546 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateFlyingEntity_D546: stx Ram_05E0 ; PRG $1546 | CPU $D546 | 8E E0 05 stx Ram_0600 ; PRG $1549 | CPU $D549 | 8E 00 06 lda #$80 ; PRG $154C | CPU $D54C | A9 80 sta Ram_05E1 ; PRG $154E | CPU $D54E | 8D E1 05 sta Ram_05E2 ; PRG $1551 | CPU $D551 | 8D E2 05 sta Ram_05E3 ; PRG $1554 | CPU $D554 | 8D E3 05 sta Ram_05E4 ; PRG $1557 | CPU $D557 | 8D E4 05 lda #$98 ; PRG $155A | CPU $D55A | A9 98 sta Ram_0601 ; PRG $155C | CPU $D55C | 8D 01 06 sta Ram_0602 ; PRG $155F | CPU $D55F | 8D 02 06 sta Ram_0603 ; PRG $1562 | CPU $D562 | 8D 03 06 sta Ram_0604 ; PRG $1565 | CPU $D565 | 8D 04 06 lda #$00 ; PRG $1568 | CPU $D568 | A9 00 sta Ram_05F1 ; PRG $156A | CPU $D56A | 8D F1 05 sta Ram_05F2 ; PRG $156D | CPU $D56D | 8D F2 05 sta Ram_05F3 ; PRG $1570 | CPU $D570 | 8D F3 05 sta Ram_05F4 ; PRG $1573 | CPU $D573 | 8D F4 05 sta Ram_0611 ; PRG $1576 | CPU $D576 | 8D 11 06 sta Ram_0612 ; PRG $1579 | CPU $D579 | 8D 12 06 sta Ram_0613 ; PRG $157C | CPU $D57C | 8D 13 06 sta Ram_0614 ; PRG $157F | CPU $D57F | 8D 14 06 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D582. ; Local behavior: Executes the decoded update gameplay state field d582 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D582: rts ; PRG $1582 | CPU $D582 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D583. ; Local behavior: Executes the decoded update side scrolling gameplay d583 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D583: ldx #$0A ; PRG $1583 | CPU $D583 | A2 0A lda Ram_0540 ; PRG $1585 | CPU $D585 | AD 40 05 jmp CalculateMovementAndClamp_D59C ; PRG $1588 | CPU $D588 | 4C 9C D5 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D58 B. ; Local behavior: Executes the decoded update side scrolling gameplay d58 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D58B: lda Zp_1E ; PRG $158B | CPU $D58B | A5 1E ldx #$11 ; PRG $158D | CPU $D58D | A2 11 ldy #$00 ; PRG $158F | CPU $D58F | A0 00 and #$01 ; PRG $1591 | CPU $D591 | 29 01 beq UpdateSideScrollingGameplay_D599 ; PRG $1593 | CPU $D593 | F0 04 ldx #$12 ; PRG $1595 | CPU $D595 | A2 12 ldy #$20 ; PRG $1597 | CPU $D597 | A0 20 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D599. ; Local behavior: Executes the decoded update side scrolling gameplay d599 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D599: lda Ram_0620,y ; PRG $1599 | CPU $D599 | B9 20 06 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value D59 C. ; Local behavior: Executes the decoded calculate and clamp value d59 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_D59C: cmp #$F4 ; PRG $159C | CPU $D59C | C9 F4 bne UpdateGameplayStateField_D582 ; PRG $159E | CPU $D59E | D0 E2 stx ScratchValue2 ; PRG $15A0 | CPU $D5A0 | 86 02 lda Zp_1F ; PRG $15A2 | CPU $D5A2 | A5 1F cmp #$48 ; PRG $15A4 | CPU $D5A4 | C9 48 bcs CalculateMovementAndClamp_D5AA ; PRG $15A6 | CPU $D5A6 | B0 02 adc #$48 ; PRG $15A8 | CPU $D5A8 | 69 48 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value D5 AA. ; Local behavior: Executes the decoded calculate and clamp value d5 aa sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_D5AA: cmp #$B8 ; PRG $15AA | CPU $D5AA | C9 B8 bcc UpdateSideScrollingGameplay_D5B0 ; PRG $15AC | CPU $D5AC | 90 02 adc #$B8 ; PRG $15AE | CPU $D5AE | 69 B8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D5 B0. ; Local behavior: Executes the decoded update side scrolling gameplay d5 b0 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D5B0: bpl UpdateSideScrollingGameplay_D5D8 ; PRG $15B0 | CPU $D5B0 | 10 26 ldx Ram_03C1 ; PRG $15B2 | CPU $D5B2 | AE C1 03 bpl UpdateSideScrollingGameplay_D5DD ; PRG $15B5 | CPU $D5B5 | 10 26 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D5 B7. ; Local behavior: Executes the decoded update side scrolling gameplay d5 b7 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D5B7: eor #$FF ; PRG $15B7 | CPU $D5B7 | 49 FF ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value D5 B9. ; Local behavior: Executes the decoded calculate and clamp value d5 b9 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_D5B9: sta ScratchIndex ; PRG $15B9 | CPU $D5B9 | 85 03 lda Zp_20 ; PRG $15BB | CPU $D5BB | A5 20 cmp #$20 ; PRG $15BD | CPU $D5BD | C9 20 bcs CalculateMovementAndClamp_D5C3 ; PRG $15BF | CPU $D5BF | B0 02 adc #$20 ; PRG $15C1 | CPU $D5C1 | 69 20 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value D5 C3. ; Local behavior: Executes the decoded calculate and clamp value d5 c3 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_D5C3: cmp #$E0 ; PRG $15C3 | CPU $D5C3 | C9 E0 bcc UpdateSideScrollingGameplay_D5C9 ; PRG $15C5 | CPU $D5C5 | 90 02 adc #$E0 ; PRG $15C7 | CPU $D5C7 | 69 E0 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D5 C9. ; Local behavior: Executes the decoded update side scrolling gameplay d5 c9 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D5C9: bpl UpdateSideScrollingGameplay_D5E0 ; PRG $15C9 | CPU $D5C9 | 10 15 ldx Ram_03C3 ; PRG $15CB | CPU $D5CB | AE C3 03 bpl UpdateSideScrollingGameplay_D5E5 ; PRG $15CE | CPU $D5CE | 10 15 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D5 D0. ; Local behavior: Executes the decoded update side scrolling gameplay d5 d0 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D5D0: eor #$FF ; PRG $15D0 | CPU $D5D0 | 49 FF ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D5 D2. ; Local behavior: Executes the decoded update gameplay state field d5 d2 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D5D2: sta DataPointerLo ; PRG $15D2 | CPU $D5D2 | 85 04 jsr UpdateSideScrollingGameplay_DAD9 ; PRG $15D4 | CPU $D5D4 | 20 D9 DA rts ; PRG $15D7 | CPU $D5D7 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D5 D8. ; Local behavior: Executes the decoded update side scrolling gameplay d5 d8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D5D8: ldx Ram_03C1 ; PRG $15D8 | CPU $D5D8 | AE C1 03 bpl UpdateSideScrollingGameplay_D5B7 ; PRG $15DB | CPU $D5DB | 10 DA ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D5 DD. ; Local behavior: Executes the decoded update side scrolling gameplay d5 dd sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D5DD: jmp CalculateMovementAndClamp_D5B9 ; PRG $15DD | CPU $D5DD | 4C B9 D5 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D5 E0. ; Local behavior: Executes the decoded update side scrolling gameplay d5 e0 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D5E0: ldx Ram_03C3 ; PRG $15E0 | CPU $D5E0 | AE C3 03 bpl UpdateSideScrollingGameplay_D5D0 ; PRG $15E3 | CPU $D5E3 | 10 EB ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D5 E5. ; Local behavior: Executes the decoded update side scrolling gameplay d5 e5 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D5E5: jmp UpdateGameplayStateField_D5D2 ; PRG $15E5 | CPU $D5E5 | 4C D2 D5 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D5 E8. ; Local behavior: Executes the decoded update side scrolling gameplay d5 e8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D5E8: lda Zp_B9 ; PRG $15E8 | CPU $D5E8 | A5 B9 bne UpdateSideScrollingGameplay_D655 ; PRG $15EA | CPU $D5EA | D0 69 ldx Zp_32 ; PRG $15EC | CPU $D5EC | A6 32 lda PreviousControllerButtons,x ; PRG $15EE | CPU $D5EE | B5 19 and #$40 ; PRG $15F0 | CPU $D5F0 | 29 40 beq UpdateGameplayStateField_D63E ; PRG $15F2 | CPU $D5F2 | F0 4A lda Zp_3D ; PRG $15F4 | CPU $D5F4 | A5 3D bne UpdateGameplayStateField_D63E ; PRG $15F6 | CPU $D5F6 | D0 46 lda Zp_56,x ; PRG $15F8 | CPU $D5F8 | B5 56 beq UpdateGameplayStateField_D63E ; PRG $15FA | CPU $D5FA | F0 42 dec Zp_56,x ; PRG $15FC | CPU $D5FC | D6 56 lda #$00 ; PRG $15FE | CPU $D5FE | A9 00 sta Zp_B7 ; PRG $1600 | CPU $D600 | 85 B7 lda #$04 ; PRG $1602 | CPU $D602 | A9 04 sta Zp_B8 ; PRG $1604 | CPU $D604 | 85 B8 lda #$13 ; PRG $1606 | CPU $D606 | A9 13 sta Zp_B9 ; PRG $1608 | CPU $D608 | 85 B9 lda Zp_A1 ; PRG $160A | CPU $D60A | A5 A1 bne UpdateSideScrollingGameplay_D632 ; PRG $160C | CPU $D60C | D0 24 lda #$CD ; PRG $160E | CPU $D60E | A9 CD sta ScratchValue2 ; PRG $1610 | CPU $D610 | 85 02 lda #$C6 ; PRG $1612 | CPU $D612 | A9 C6 sta ScratchIndex ; PRG $1614 | CPU $D614 | 85 03 lda #$20 ; PRG $1616 | CPU $D616 | A9 20 sta ScratchValue1 ; PRG $1618 | CPU $D618 | 85 01 lda Zp_32 ; PRG $161A | CPU $D61A | A5 32 bne UpdateSideScrollingGameplay_D641 ; PRG $161C | CPU $D61C | D0 23 lda #$83 ; PRG $161E | CPU $D61E | A9 83 sta ScratchValue0 ; PRG $1620 | CPU $D620 | 85 00 jsr TransformFlightState_C1F8 ; PRG $1622 | CPU $D622 | 20 F8 C1 lda #$20 ; PRG $1625 | CPU $D625 | A9 20 sta ScratchValue2 ; PRG $1627 | CPU $D627 | 85 02 ldy #$83 ; PRG $1629 | CPU $D629 | A0 83 ldx #$3D ; PRG $162B | CPU $D62B | A2 3D lda Zp_56 ; PRG $162D | CPU $D62D | A5 56 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D62 F. ; Local behavior: Executes the decoded update side scrolling gameplay d62 f sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D62F: jsr UpdateSideScrollingGameplay_D1A8 ; PRG $162F | CPU $D62F | 20 A8 D1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D632. ; Local behavior: Executes the decoded update side scrolling gameplay d632 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D632: lda #$0E ; PRG $1632 | CPU $D632 | A9 0E jsr UpdateSideScrollingGameplay_CE5B ; PRG $1634 | CPU $D634 | 20 5B CE ldy #$30 ; PRG $1637 | CPU $D637 | A0 30 jsr UpdateGameplayStateField_D6EA ; PRG $1639 | CPU $D639 | 20 EA D6 lda #$01 ; PRG $163C | CPU $D63C | A9 01 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D63 E. ; Local behavior: Executes the decoded update gameplay state field d63 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D63E: sta Zp_3D ; PRG $163E | CPU $D63E | 85 3D rts ; PRG $1640 | CPU $D640 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D641. ; Local behavior: Executes the decoded update side scrolling gameplay d641 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D641: lda #$98 ; PRG $1641 | CPU $D641 | A9 98 sta ScratchValue0 ; PRG $1643 | CPU $D643 | 85 00 jsr TransformFlightState_C1F8 ; PRG $1645 | CPU $D645 | 20 F8 C1 lda #$20 ; PRG $1648 | CPU $D648 | A9 20 sta ScratchValue2 ; PRG $164A | CPU $D64A | 85 02 ldy #$98 ; PRG $164C | CPU $D64C | A0 98 ldx #$3D ; PRG $164E | CPU $D64E | A2 3D lda Zp_57 ; PRG $1650 | CPU $D650 | A5 57 jmp UpdateSideScrollingGameplay_D62F ; PRG $1652 | CPU $D652 | 4C 2F D6 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D655. ; Local behavior: Executes the decoded update side scrolling gameplay d655 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D655: lda Zp_DB ; PRG $1655 | CPU $D655 | A5 DB bne UpdateGameplayStateField_D63E ; PRG $1657 | CPU $D657 | D0 E5 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D659. ; Local behavior: Executes the decoded update side scrolling gameplay d659 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D659: ldy #$00 ; PRG $1659 | CPU $D659 | A0 00 lda (Zp_B7),y ; PRG $165B | CPU $D65B | B1 B7 bne UpdateSideScrollingGameplay_D6BA ; PRG $165D | CPU $D65D | D0 5B lda #$F4 ; PRG $165F | CPU $D65F | A9 F4 sta (Zp_B7),y ; PRG $1661 | CPU $D661 | 91 B7 iny ; PRG $1663 | CPU $D663 | C8 lda (Zp_B7),y ; PRG $1664 | CPU $D664 | B1 B7 sta Zp_A4 ; PRG $1666 | CPU $D666 | 85 A4 ldy #$03 ; PRG $1668 | CPU $D668 | A0 03 lda (Zp_B7),y ; PRG $166A | CPU $D66A | B1 B7 sta Zp_A5 ; PRG $166C | CPU $D66C | 85 A5 lda #$28 ; PRG $166E | CPU $D66E | A9 28 sta Zp_A3 ; PRG $1670 | CPU $D670 | 85 A3 lda #$00 ; PRG $1672 | CPU $D672 | A9 00 sta Zp_A7 ; PRG $1674 | CPU $D674 | 85 A7 lda #$04 ; PRG $1676 | CPU $D676 | A9 04 sta Zp_DB ; PRG $1678 | CPU $D678 | 85 DB lda Zp_B9 ; PRG $167A | CPU $D67A | A5 B9 ldy #$03 ; PRG $167C | CPU $D67C | A0 03 cmp #$09 ; PRG $167E | CPU $D67E | C9 09 beq UpdateSideScrollingGameplay_D68B ; PRG $1680 | CPU $D680 | F0 09 dey ; PRG $1682 | CPU $D682 | 88 dey ; PRG $1683 | CPU $D683 | 88 bcs UpdateSideScrollingGameplay_D68B ; PRG $1684 | CPU $D684 | B0 05 cmp #$05 ; PRG $1686 | CPU $D686 | C9 05 bcs UpdateSideScrollingGameplay_D68B ; PRG $1688 | CPU $D688 | B0 01 iny ; PRG $168A | CPU $D68A | C8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D68 B. ; Local behavior: Executes the decoded update side scrolling gameplay d68 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D68B: tya ; PRG $168B | CPU $D68B | 98 jsr UpdateSideScrollingGameplay_CE91 ; PRG $168C | CPU $D68C | 20 91 CE lda #$0E ; PRG $168F | CPU $D68F | A9 0E jsr UpdateSideScrollingGameplay_CE5B ; PRG $1691 | CPU $D691 | 20 5B CE dec Zp_B9 ; PRG $1694 | CPU $D694 | C6 B9 ldy #$30 ; PRG $1696 | CPU $D696 | A0 30 jsr UpdateGameplayStateField_D6EA ; PRG $1698 | CPU $D698 | 20 EA D6 clc ; PRG $169B | CPU $D69B | 18 lda #$20 ; PRG $169C | CPU $D69C | A9 20 adc Zp_B7 ; PRG $169E | CPU $D69E | 65 B7 sta Zp_B7 ; PRG $16A0 | CPU $D6A0 | 85 B7 lda #$00 ; PRG $16A2 | CPU $D6A2 | A9 00 adc Zp_B8 ; PRG $16A4 | CPU $D6A4 | 65 B8 sta Zp_B8 ; PRG $16A6 | CPU $D6A6 | 85 B8 rts ; PRG $16A8 | CPU $D6A8 | 60 .byte $84,$0E,$A0,$10,$B1,$B7,$C9,$03,$D0,$02,$E6,$0E,$A4,$0E,$4C,$8B ; PRG $16A9 | CPU $D6A9 .byte $D6 ; PRG $16B9 | CPU $D6B9 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D6 BA. ; Local behavior: Executes the decoded update side scrolling gameplay d6 ba sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D6BA: clc ; PRG $16BA | CPU $D6BA | 18 lda #$20 ; PRG $16BB | CPU $D6BB | A9 20 adc Zp_B7 ; PRG $16BD | CPU $D6BD | 65 B7 sta Zp_B7 ; PRG $16BF | CPU $D6BF | 85 B7 lda #$00 ; PRG $16C1 | CPU $D6C1 | A9 00 adc Zp_B8 ; PRG $16C3 | CPU $D6C3 | 65 B8 sta Zp_B8 ; PRG $16C5 | CPU $D6C5 | 85 B8 dec Zp_B9 ; PRG $16C7 | CPU $D6C7 | C6 B9 bne UpdateSideScrollingGameplay_D659 ; PRG $16C9 | CPU $D6C9 | D0 8E rts ; PRG $16CB | CPU $D6CB | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D6 CC. ; Local behavior: Executes the decoded update side scrolling gameplay d6 cc sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D6CC: lda #$10 ; PRG $16CC | CPU $D6CC | A9 10 sta ScratchValue0 ; PRG $16CE | CPU $D6CE | 85 00 lda #$3F ; PRG $16D0 | CPU $D6D0 | A9 3F sta ScratchValue1 ; PRG $16D2 | CPU $D6D2 | 85 01 jsr UpdateSideScrollingGameplay_C3E2 ; PRG $16D4 | CPU $D6D4 | 20 E2 C3 rts ; PRG $16D7 | CPU $D6D7 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D6 D8. ; Local behavior: Executes the decoded update side scrolling gameplay d6 d8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D6D8: ldx #$00 ; PRG $16D8 | CPU $D6D8 | A2 00 ldy #$0F ; PRG $16DA | CPU $D6DA | A0 0F lda Zp_3F ; PRG $16DC | CPU $D6DC | A5 3F beq UpdateGameplayStateField_D6E9 ; PRG $16DE | CPU $D6DE | F0 09 bmi UpdateSideScrollingGameplay_D6E4 ; PRG $16E0 | CPU $D6E0 | 30 02 tay ; PRG $16E2 | CPU $D6E2 | A8 dex ; PRG $16E3 | CPU $D6E3 | CA ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D6 E4. ; Local behavior: Executes the decoded update side scrolling gameplay d6 e4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D6E4: stx Zp_3F ; PRG $16E4 | CPU $D6E4 | 86 3F jsr UpdateSideScrollingGameplay_D6CC ; PRG $16E6 | CPU $D6E6 | 20 CC D6 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D6 E9. ; Local behavior: Executes the decoded update gameplay state field d6 e9 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D6E9: rts ; PRG $16E9 | CPU $D6E9 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D6 EA. ; Local behavior: Executes the decoded update gameplay state field d6 ea sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D6EA: sty Zp_3F ; PRG $16EA | CPU $D6EA | 84 3F rts ; PRG $16EC | CPU $D6EC | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D6 ED. ; Local behavior: Executes the decoded update side scrolling gameplay d6 ed sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D6ED: lda #$00 ; PRG $16ED | CPU $D6ED | A9 00 sta ScratchValue0 ; PRG $16EF | CPU $D6EF | 85 00 lda #$04 ; PRG $16F1 | CPU $D6F1 | A9 04 sta ScratchValue1 ; PRG $16F3 | CPU $D6F3 | 85 01 ldx #$0A ; PRG $16F5 | CPU $D6F5 | A2 0A jsr UpdateSideScrollingGameplay_D709 ; PRG $16F7 | CPU $D6F7 | 20 09 D7 rts ; PRG $16FA | CPU $D6FA | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D6 FB. ; Local behavior: Executes the decoded update side scrolling gameplay d6 fb sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D6FB: lda #$60 ; PRG $16FB | CPU $D6FB | A9 60 sta ScratchValue0 ; PRG $16FD | CPU $D6FD | 85 00 lda #$05 ; PRG $16FF | CPU $D6FF | A9 05 sta ScratchValue1 ; PRG $1701 | CPU $D701 | 85 01 ldx #$04 ; PRG $1703 | CPU $D703 | A2 04 jsr UpdateSideScrollingGameplay_D709 ; PRG $1705 | CPU $D705 | 20 09 D7 rts ; PRG $1708 | CPU $D708 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D709. ; Local behavior: Executes the decoded update side scrolling gameplay d709 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D709: ldy #$00 ; PRG $1709 | CPU $D709 | A0 00 sty ScratchValue2 ; PRG $170B | CPU $D70B | 84 02 sty ScratchIndex ; PRG $170D | CPU $D70D | 84 03 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D70 F. ; Local behavior: Executes the decoded update side scrolling gameplay d70 f sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D70F: lda (ScratchValue0),y ; PRG $170F | CPU $D70F | B1 00 bne UpdateSideScrollingGameplay_D715 ; PRG $1711 | CPU $D711 | D0 02 inc ScratchIndex ; PRG $1713 | CPU $D713 | E6 03 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D715. ; Local behavior: Executes the decoded update side scrolling gameplay d715 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D715: cmp #$F4 ; PRG $1715 | CPU $D715 | C9 F4 beq UpdateSideScrollingGameplay_D71B ; PRG $1717 | CPU $D717 | F0 02 inc ScratchValue2 ; PRG $1719 | CPU $D719 | E6 02 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D71 B. ; Local behavior: Executes the decoded update side scrolling gameplay d71 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D71B: jsr UpdateSideScrollingGameplay_DB1D ; PRG $171B | CPU $D71B | 20 1D DB dex ; PRG $171E | CPU $D71E | CA bne UpdateSideScrollingGameplay_D70F ; PRG $171F | CPU $D71F | D0 EE lda ScratchValue2 ; PRG $1721 | CPU $D721 | A5 02 ldx ScratchIndex ; PRG $1723 | CPU $D723 | A6 03 rts ; PRG $1725 | CPU $D725 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D726. ; Local behavior: Executes the decoded update side scrolling gameplay d726 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D726: lda #$20 ; PRG $1726 | CPU $D726 | A9 20 sta ScratchValue0 ; PRG $1728 | CPU $D728 | 85 00 lda #$06 ; PRG $172A | CPU $D72A | A9 06 sta ScratchValue1 ; PRG $172C | CPU $D72C | 85 01 ldx #$06 ; PRG $172E | CPU $D72E | A2 06 jsr CalculateMovementAndClamp_D73C ; PRG $1730 | CPU $D730 | 20 3C D7 jsr UpdateSideScrollingGameplay_DB1D ; PRG $1733 | CPU $D733 | 20 1D DB ldx #$07 ; PRG $1736 | CPU $D736 | A2 07 jsr CalculateMovementAndClamp_D73C ; PRG $1738 | CPU $D738 | 20 3C D7 rts ; PRG $173B | CPU $D73B | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value D73 C. ; Local behavior: Executes the decoded calculate and clamp value d73 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_D73C: stx ScratchValue2 ; PRG $173C | CPU $D73C | 86 02 ldy #$00 ; PRG $173E | CPU $D73E | A0 00 lda (ScratchValue0),y ; PRG $1740 | CPU $D740 | B1 00 cmp #$F4 ; PRG $1742 | CPU $D742 | C9 F4 beq UpdateGameplayStateField_D7A1 ; PRG $1744 | CPU $D744 | F0 5B lda Zp_E0,x ; PRG $1746 | CPU $D746 | B5 E0 bne UpdateSideScrollingGameplay_D7A2 ; PRG $1748 | CPU $D748 | D0 58 lda #$06 ; PRG $174A | CPU $D74A | A9 06 sta Zp_E0,x ; PRG $174C | CPU $D74C | 95 E0 lda Zp_1D,x ; PRG $174E | CPU $D74E | B5 1D cmp #$30 ; PRG $1750 | CPU $D750 | C9 30 bcc CalculateMovementAndClamp_D76F ; PRG $1752 | CPU $D752 | 90 1B ldy #$15 ; PRG $1754 | CPU $D754 | A0 15 lda (ScratchValue0),y ; PRG $1756 | CPU $D756 | B1 00 sec ; PRG $1758 | CPU $D758 | 38 ldy #$01 ; PRG $1759 | CPU $D759 | A0 01 sbc (ScratchValue0),y ; PRG $175B | CPU $D75B | F1 00 lda #$00 ; PRG $175D | CPU $D75D | A9 00 ldx #$40 ; PRG $175F | CPU $D75F | A2 40 bcs UpdateSideScrollingGameplay_D767 ; PRG $1761 | CPU $D761 | B0 04 lda #$FF ; PRG $1763 | CPU $D763 | A9 FF ldx #$C0 ; PRG $1765 | CPU $D765 | A2 C0 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D767. ; Local behavior: Executes the decoded update side scrolling gameplay d767 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D767: ldy #$11 ; PRG $1767 | CPU $D767 | A0 11 sta (ScratchValue0),y ; PRG $1769 | CPU $D769 | 91 00 txa ; PRG $176B | CPU $D76B | 8A iny ; PRG $176C | CPU $D76C | C8 sta (ScratchValue0),y ; PRG $176D | CPU $D76D | 91 00 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value D76 F. ; Local behavior: Executes the decoded calculate and clamp value d76 f sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_D76F: ldx ScratchValue2 ; PRG $176F | CPU $D76F | A6 02 lda Zp_1C,x ; PRG $1771 | CPU $D771 | B5 1C cmp #$30 ; PRG $1773 | CPU $D773 | C9 30 bcc UpdateGameplayStateField_D7A1 ; PRG $1775 | CPU $D775 | 90 2A ldy #$00 ; PRG $1777 | CPU $D777 | A0 00 lda (ScratchValue0),y ; PRG $1779 | CPU $D779 | B1 00 bne UpdateSideScrollingGameplay_D7B4 ; PRG $177B | CPU $D77B | D0 37 ldy #$16 ; PRG $177D | CPU $D77D | A0 16 lda (ScratchValue0),y ; PRG $177F | CPU $D77F | B1 00 sec ; PRG $1781 | CPU $D781 | 38 ldy #$03 ; PRG $1782 | CPU $D782 | A0 03 sbc (ScratchValue0),y ; PRG $1784 | CPU $D784 | F1 00 ldy #$13 ; PRG $1786 | CPU $D786 | A0 13 lda Zp_16 ; PRG $1788 | CPU $D788 | A5 16 bcs UpdateSideScrollingGameplay_D7C1 ; PRG $178A | CPU $D78A | B0 35 bpl UpdateSideScrollingGameplay_D7C3 ; PRG $178C | CPU $D78C | 10 35 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D78 E. ; Local behavior: Executes the decoded update side scrolling gameplay d78 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D78E: sta (ScratchValue0),y ; PRG $178E | CPU $D78E | 91 00 bne UpdateSideScrollingGameplay_D7CB ; PRG $1790 | CPU $D790 | D0 39 ldx ScratchValue2 ; PRG $1792 | CPU $D792 | A6 02 lda Zp_1A,x ; PRG $1794 | CPU $D794 | B5 1A bpl UpdateSideScrollingGameplay_D79C ; PRG $1796 | CPU $D796 | 10 04 lda #$FF ; PRG $1798 | CPU $D798 | A9 FF sta (ScratchValue0),y ; PRG $179A | CPU $D79A | 91 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D79 C. ; Local behavior: Executes the decoded update side scrolling gameplay d79 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D79C: lda CurrentControllerButtons,x ; PRG $179C | CPU $D79C | B5 1B ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D79 E. ; Local behavior: Executes the decoded update side scrolling gameplay d79 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D79E: iny ; PRG $179E | CPU $D79E | C8 sta (ScratchValue0),y ; PRG $179F | CPU $D79F | 91 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D7 A1. ; Local behavior: Executes the decoded update gameplay state field d7 a1 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D7A1: rts ; PRG $17A1 | CPU $D7A1 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D7 A2. ; Local behavior: Executes the decoded update side scrolling gameplay d7 a2 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D7A2: iny ; PRG $17A2 | CPU $D7A2 | C8 lda (ScratchValue0),y ; PRG $17A3 | CPU $D7A3 | B1 00 cmp #$30 ; PRG $17A5 | CPU $D7A5 | C9 30 bcs UpdateSideScrollingGameplay_D7AB ; PRG $17A7 | CPU $D7A7 | B0 02 lda #$D4 ; PRG $17A9 | CPU $D7A9 | A9 D4 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D7 AB. ; Local behavior: Executes the decoded update side scrolling gameplay d7 ab sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D7AB: cmp #$D8 ; PRG $17AB | CPU $D7AB | C9 D8 bcc UpdateGameplayStateField_D7B1 ; PRG $17AD | CPU $D7AD | 90 02 lda #$34 ; PRG $17AF | CPU $D7AF | A9 34 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D7 B1. ; Local behavior: Executes the decoded update gameplay state field d7 b1 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D7B1: sta (ScratchValue0),y ; PRG $17B1 | CPU $D7B1 | 91 00 rts ; PRG $17B3 | CPU $D7B3 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D7 B4. ; Local behavior: Executes the decoded update side scrolling gameplay d7 b4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D7B4: ldy #$13 ; PRG $17B4 | CPU $D7B4 | A0 13 cmp #$03 ; PRG $17B6 | CPU $D7B6 | C9 03 lda #$03 ; PRG $17B8 | CPU $D7B8 | A9 03 bcs UpdateSideScrollingGameplay_D78E ; PRG $17BA | CPU $D7BA | B0 D2 lda #$FD ; PRG $17BC | CPU $D7BC | A9 FD jmp UpdateSideScrollingGameplay_D78E ; PRG $17BE | CPU $D7BE | 4C 8E D7 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D7 C1. ; Local behavior: Executes the decoded update side scrolling gameplay d7 c1 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D7C1: bpl UpdateSideScrollingGameplay_D78E ; PRG $17C1 | CPU $D7C1 | 10 CB ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D7 C3. ; Local behavior: Executes the decoded update side scrolling gameplay d7 c3 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D7C3: eor #$FF ; PRG $17C3 | CPU $D7C3 | 49 FF clc ; PRG $17C5 | CPU $D7C5 | 18 adc #$01 ; PRG $17C6 | CPU $D7C6 | 69 01 jmp UpdateSideScrollingGameplay_D78E ; PRG $17C8 | CPU $D7C8 | 4C 8E D7 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D7 CB. ; Local behavior: Executes the decoded update side scrolling gameplay d7 cb sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D7CB: lda Zp_17 ; PRG $17CB | CPU $D7CB | A5 17 jmp UpdateSideScrollingGameplay_D79E ; PRG $17CD | CPU $D7CD | 4C 9E D7 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D7 D0. ; Local behavior: Executes the decoded update side scrolling gameplay d7 d0 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D7D0: lda #$E0 ; PRG $17D0 | CPU $D7D0 | A9 E0 sta ScratchValue0 ; PRG $17D2 | CPU $D7D2 | 85 00 lda #$05 ; PRG $17D4 | CPU $D7D4 | A9 05 sta ScratchValue1 ; PRG $17D6 | CPU $D7D6 | 85 01 jsr CalculateMovementAndClamp_D7EA ; PRG $17D8 | CPU $D7D8 | 20 EA D7 jsr UpdateSideScrollingGameplay_DB1D ; PRG $17DB | CPU $D7DB | 20 1D DB jsr CalculateMovementAndClamp_D7EA ; PRG $17DE | CPU $D7DE | 20 EA D7 lda Zp_E8 ; PRG $17E1 | CPU $D7E1 | A5 E8 bne UpdateGameplayStateField_D7E9 ; PRG $17E3 | CPU $D7E3 | D0 04 lda #$04 ; PRG $17E5 | CPU $D7E5 | A9 04 sta Zp_E8 ; PRG $17E7 | CPU $D7E7 | 85 E8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D7 E9. ; Local behavior: Executes the decoded update gameplay state field d7 e9 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D7E9: rts ; PRG $17E9 | CPU $D7E9 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value D7 EA. ; Local behavior: Executes the decoded calculate and clamp value d7 ea sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_D7EA: ldy #$00 ; PRG $17EA | CPU $D7EA | A0 00 lda (ScratchValue0),y ; PRG $17EC | CPU $D7EC | B1 00 cmp #$F4 ; PRG $17EE | CPU $D7EE | C9 F4 beq UpdateGameplayStateField_D84B ; PRG $17F0 | CPU $D7F0 | F0 59 lda Zp_E8 ; PRG $17F2 | CPU $D7F2 | A5 E8 bne UpdateSideScrollingGameplay_D7A2 ; PRG $17F4 | CPU $D7F4 | D0 AC lda Zp_1D ; PRG $17F6 | CPU $D7F6 | A5 1D cmp #$30 ; PRG $17F8 | CPU $D7F8 | C9 30 bcc CalculateMovementAndClamp_D817 ; PRG $17FA | CPU $D7FA | 90 1B ldy #$15 ; PRG $17FC | CPU $D7FC | A0 15 lda (ScratchValue0),y ; PRG $17FE | CPU $D7FE | B1 00 sec ; PRG $1800 | CPU $D800 | 38 ldy #$01 ; PRG $1801 | CPU $D801 | A0 01 sbc (ScratchValue0),y ; PRG $1803 | CPU $D803 | F1 00 lda #$00 ; PRG $1805 | CPU $D805 | A9 00 ldx #$30 ; PRG $1807 | CPU $D807 | A2 30 bcs UpdateSideScrollingGameplay_D80F ; PRG $1809 | CPU $D809 | B0 04 lda #$FF ; PRG $180B | CPU $D80B | A9 FF ldx #$D0 ; PRG $180D | CPU $D80D | A2 D0 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D80 F. ; Local behavior: Executes the decoded update side scrolling gameplay d80 f sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D80F: ldy #$11 ; PRG $180F | CPU $D80F | A0 11 sta (ScratchValue0),y ; PRG $1811 | CPU $D811 | 91 00 txa ; PRG $1813 | CPU $D813 | 8A iny ; PRG $1814 | CPU $D814 | C8 sta (ScratchValue0),y ; PRG $1815 | CPU $D815 | 91 00 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value D817. ; Local behavior: Executes the decoded calculate and clamp value d817 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_D817: lda Zp_1E ; PRG $1817 | CPU $D817 | A5 1E cmp #$30 ; PRG $1819 | CPU $D819 | C9 30 bcc UpdateGameplayStateField_D84B ; PRG $181B | CPU $D81B | 90 2E ldy #$00 ; PRG $181D | CPU $D81D | A0 00 lda (ScratchValue0),y ; PRG $181F | CPU $D81F | B1 00 bne UpdateSideScrollingGameplay_D84C ; PRG $1821 | CPU $D821 | D0 29 ldy #$16 ; PRG $1823 | CPU $D823 | A0 16 lda (ScratchValue0),y ; PRG $1825 | CPU $D825 | B1 00 sec ; PRG $1827 | CPU $D827 | 38 ldy #$03 ; PRG $1828 | CPU $D828 | A0 03 sbc (ScratchValue0),y ; PRG $182A | CPU $D82A | F1 00 php ; PRG $182C | CPU $D82C | 08 bcs UpdateSideScrollingGameplay_D834 ; PRG $182D | CPU $D82D | B0 05 eor #$FF ; PRG $182F | CPU $D82F | 49 FF clc ; PRG $1831 | CPU $D831 | 18 adc #$01 ; PRG $1832 | CPU $D832 | 69 01 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D834. ; Local behavior: Executes the decoded update side scrolling gameplay d834 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D834: cmp #$40 ; PRG $1834 | CPU $D834 | C9 40 bcc UpdateSideScrollingGameplay_D859 ; PRG $1836 | CPU $D836 | 90 21 plp ; PRG $1838 | CPU $D838 | 28 lda #$02 ; PRG $1839 | CPU $D839 | A9 02 ldx #$80 ; PRG $183B | CPU $D83B | A2 80 bcs UpdateSideScrollingGameplay_D843 ; PRG $183D | CPU $D83D | B0 04 lda #$FD ; PRG $183F | CPU $D83F | A9 FD ldx #$80 ; PRG $1841 | CPU $D841 | A2 80 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D843. ; Local behavior: Executes the decoded update side scrolling gameplay d843 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D843: ldy #$13 ; PRG $1843 | CPU $D843 | A0 13 sta (ScratchValue0),y ; PRG $1845 | CPU $D845 | 91 00 txa ; PRG $1847 | CPU $D847 | 8A iny ; PRG $1848 | CPU $D848 | C8 sta (ScratchValue0),y ; PRG $1849 | CPU $D849 | 91 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D84 B. ; Local behavior: Executes the decoded update gameplay state field d84 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D84B: rts ; PRG $184B | CPU $D84B | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D84 C. ; Local behavior: Executes the decoded update side scrolling gameplay d84 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D84C: ldx #$00 ; PRG $184C | CPU $D84C | A2 00 cmp #$03 ; PRG $184E | CPU $D84E | C9 03 lda #$02 ; PRG $1850 | CPU $D850 | A9 02 bcs UpdateSideScrollingGameplay_D843 ; PRG $1852 | CPU $D852 | B0 EF lda #$FE ; PRG $1854 | CPU $D854 | A9 FE jmp UpdateSideScrollingGameplay_D843 ; PRG $1856 | CPU $D856 | 4C 43 D8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D859. ; Local behavior: Executes the decoded update side scrolling gameplay d859 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D859: plp ; PRG $1859 | CPU $D859 | 28 lda #$01 ; PRG $185A | CPU $D85A | A9 01 ldx #$40 ; PRG $185C | CPU $D85C | A2 40 bcs UpdateSideScrollingGameplay_D843 ; PRG $185E | CPU $D85E | B0 E3 lda #$FE ; PRG $1860 | CPU $D860 | A9 FE ldx #$C0 ; PRG $1862 | CPU $D862 | A2 C0 jmp UpdateSideScrollingGameplay_D843 ; PRG $1864 | CPU $D864 | 4C 43 D8 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value D867. ; Local behavior: Executes the decoded calculate and clamp value d867 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_D867: lda Ram_0540 ; PRG $1867 | CPU $D867 | AD 40 05 cmp #$F4 ; PRG $186A | CPU $D86A | C9 F4 beq UpdateGameplayStateField_D8AE ; PRG $186C | CPU $D86C | F0 40 lda Zp_E5 ; PRG $186E | CPU $D86E | A5 E5 bne UpdateSideScrollingGameplay_D8AF ; PRG $1870 | CPU $D870 | D0 3D lda #$04 ; PRG $1872 | CPU $D872 | A9 04 sta Zp_E5 ; PRG $1874 | CPU $D874 | 85 E5 lda Zp_1D ; PRG $1876 | CPU $D876 | A5 1D cmp #$30 ; PRG $1878 | CPU $D878 | C9 30 bcc CalculateMovementAndClamp_D893 ; PRG $187A | CPU $D87A | 90 17 lda Ram_03C1 ; PRG $187C | CPU $D87C | AD C1 03 sec ; PRG $187F | CPU $D87F | 38 sbc Ram_0541 ; PRG $1880 | CPU $D880 | ED 41 05 lda #$00 ; PRG $1883 | CPU $D883 | A9 00 ldx #$A0 ; PRG $1885 | CPU $D885 | A2 A0 bcs UpdateSideScrollingGameplay_D88D ; PRG $1887 | CPU $D887 | B0 04 lda #$FF ; PRG $1889 | CPU $D889 | A9 FF ldx #$60 ; PRG $188B | CPU $D88B | A2 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D88 D. ; Local behavior: Executes the decoded update side scrolling gameplay d88 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D88D: sta Ram_0551 ; PRG $188D | CPU $D88D | 8D 51 05 stx Ram_0552 ; PRG $1890 | CPU $D890 | 8E 52 05 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value D893. ; Local behavior: Executes the decoded calculate and clamp value d893 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_D893: lda Zp_1E ; PRG $1893 | CPU $D893 | A5 1E cmp #$30 ; PRG $1895 | CPU $D895 | C9 30 bcc UpdateGameplayStateField_D8AE ; PRG $1897 | CPU $D897 | 90 15 lda Ram_0540 ; PRG $1899 | CPU $D899 | AD 40 05 bne UpdateSideScrollingGameplay_D8C2 ; PRG $189C | CPU $D89C | D0 24 lda Ram_03C3 ; PRG $189E | CPU $D89E | AD C3 03 sec ; PRG $18A1 | CPU $D8A1 | 38 sbc Ram_0543 ; PRG $18A2 | CPU $D8A2 | ED 43 05 lda #$02 ; PRG $18A5 | CPU $D8A5 | A9 02 bcs UpdateSideScrollingGameplay_D8AB ; PRG $18A7 | CPU $D8A7 | B0 02 lda #$FE ; PRG $18A9 | CPU $D8A9 | A9 FE ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D8 AB. ; Local behavior: Executes the decoded update side scrolling gameplay d8 ab sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D8AB: sta Ram_0553 ; PRG $18AB | CPU $D8AB | 8D 53 05 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D8 AE. ; Local behavior: Executes the decoded update gameplay state field d8 ae sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D8AE: rts ; PRG $18AE | CPU $D8AE | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D8 AF. ; Local behavior: Executes the decoded update side scrolling gameplay d8 af sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D8AF: lda Ram_0541 ; PRG $18AF | CPU $D8AF | AD 41 05 cmp #$30 ; PRG $18B2 | CPU $D8B2 | C9 30 bcs UpdateSideScrollingGameplay_D8B8 ; PRG $18B4 | CPU $D8B4 | B0 02 lda #$D4 ; PRG $18B6 | CPU $D8B6 | A9 D4 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D8 B8. ; Local behavior: Executes the decoded update side scrolling gameplay d8 b8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D8B8: cmp #$D8 ; PRG $18B8 | CPU $D8B8 | C9 D8 bcc UpdateGameplayStateField_D8BE ; PRG $18BA | CPU $D8BA | 90 02 lda #$34 ; PRG $18BC | CPU $D8BC | A9 34 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D8 BE. ; Local behavior: Executes the decoded update gameplay state field d8 be sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D8BE: sta Ram_0541 ; PRG $18BE | CPU $D8BE | 8D 41 05 rts ; PRG $18C1 | CPU $D8C1 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D8 C2. ; Local behavior: Executes the decoded update side scrolling gameplay d8 c2 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D8C2: cmp #$03 ; PRG $18C2 | CPU $D8C2 | C9 03 lda #$03 ; PRG $18C4 | CPU $D8C4 | A9 03 bcs UpdateSideScrollingGameplay_D8AB ; PRG $18C6 | CPU $D8C6 | B0 E3 lda #$FD ; PRG $18C8 | CPU $D8C8 | A9 FD jmp UpdateSideScrollingGameplay_D8AB ; PRG $18CA | CPU $D8CA | 4C AB D8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D8 CD. ; Local behavior: Executes the decoded update side scrolling gameplay d8 cd sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D8CD: lda Zp_DA ; PRG $18CD | CPU $D8CD | A5 DA bne UpdateGameplayStateField_D90C ; PRG $18CF | CPU $D8CF | D0 3B lda #$03 ; PRG $18D1 | CPU $D8D1 | A9 03 sta Zp_DA ; PRG $18D3 | CPU $D8D3 | 85 DA dec Zp_B5 ; PRG $18D5 | CPU $D8D5 | C6 B5 bpl UpdateSideScrollingGameplay_D8DD ; PRG $18D7 | CPU $D8D7 | 10 04 lda #$03 ; PRG $18D9 | CPU $D8D9 | A9 03 sta Zp_B5 ; PRG $18DB | CPU $D8DB | 85 B5 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D8 DD. ; Local behavior: Executes the decoded update side scrolling gameplay d8 dd sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D8DD: lda Zp_B5 ; PRG $18DD | CPU $D8DD | A5 B5 sta Ram_0545 ; PRG $18DF | CPU $D8DF | 8D 45 05 dec Zp_B6 ; PRG $18E2 | CPU $D8E2 | C6 B6 bpl UpdateSideScrollingGameplay_D8EA ; PRG $18E4 | CPU $D8E4 | 10 04 lda #$02 ; PRG $18E6 | CPU $D8E6 | A9 02 sta Zp_B6 ; PRG $18E8 | CPU $D8E8 | 85 B6 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D8 EA. ; Local behavior: Executes the decoded update side scrolling gameplay d8 ea sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D8EA: lda Zp_B6 ; PRG $18EA | CPU $D8EA | A5 B6 sta Ram_0625 ; PRG $18EC | CPU $D8EC | 8D 25 06 sta Ram_0645 ; PRG $18EF | CPU $D8EF | 8D 45 06 sta Ram_05E5 ; PRG $18F2 | CPU $D8F2 | 8D E5 05 sta Ram_0605 ; PRG $18F5 | CPU $D8F5 | 8D 05 06 ldy #$00 ; PRG $18F8 | CPU $D8F8 | A0 00 jsr UpdateSideScrollingGameplay_D90D ; PRG $18FA | CPU $D8FA | 20 0D D9 ldy #$20 ; PRG $18FD | CPU $D8FD | A0 20 jsr UpdateSideScrollingGameplay_D90D ; PRG $18FF | CPU $D8FF | 20 0D D9 ldy #$40 ; PRG $1902 | CPU $D902 | A0 40 jsr UpdateSideScrollingGameplay_D90D ; PRG $1904 | CPU $D904 | 20 0D D9 ldy #$60 ; PRG $1907 | CPU $D907 | A0 60 jsr UpdateSideScrollingGameplay_D90D ; PRG $1909 | CPU $D909 | 20 0D D9 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D90 C. ; Local behavior: Executes the decoded update gameplay state field d90 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D90C: rts ; PRG $190C | CPU $D90C | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D90 D. ; Local behavior: Executes the decoded update side scrolling gameplay d90 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D90D: lda #$00 ; PRG $190D | CPU $D90D | A9 00 ldx Ram_05F3,y ; PRG $190F | CPU $D90F | BE F3 05 bpl UpdateGameplayStateField_D916 ; PRG $1912 | CPU $D912 | 10 02 lda #$10 ; PRG $1914 | CPU $D914 | A9 10 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D916. ; Local behavior: Executes the decoded update gameplay state field d916 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D916: sta Ram_05E8,y ; PRG $1916 | CPU $D916 | 99 E8 05 rts ; PRG $1919 | CPU $D919 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D91 A. ; Local behavior: Executes the decoded update side scrolling gameplay d91 a sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D91A: lda #$40 ; PRG $191A | CPU $D91A | A9 40 sta ScratchValue0 ; PRG $191C | CPU $D91C | 85 00 lda #$05 ; PRG $191E | CPU $D91E | A9 05 sta ScratchValue1 ; PRG $1920 | CPU $D920 | 85 01 jsr TransformFlightState_C47C ; PRG $1922 | CPU $D922 | 20 7C C4 lda #$E0 ; PRG $1925 | CPU $D925 | A9 E0 sta ScratchValue0 ; PRG $1927 | CPU $D927 | 85 00 lda #$05 ; PRG $1929 | CPU $D929 | A9 05 sta ScratchValue1 ; PRG $192B | CPU $D92B | 85 01 jsr TransformFlightState_C47C ; PRG $192D | CPU $D92D | 20 7C C4 jsr UpdateSideScrollingGameplay_DB1D ; PRG $1930 | CPU $D930 | 20 1D DB jsr TransformFlightState_C47C ; PRG $1933 | CPU $D933 | 20 7C C4 jsr UpdateSideScrollingGameplay_DB1D ; PRG $1936 | CPU $D936 | 20 1D DB jsr TransformFlightState_C47C ; PRG $1939 | CPU $D939 | 20 7C C4 jsr UpdateSideScrollingGameplay_DB1D ; PRG $193C | CPU $D93C | 20 1D DB jsr TransformFlightState_C47C ; PRG $193F | CPU $D93F | 20 7C C4 rts ; PRG $1942 | CPU $D942 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D943. ; Local behavior: Executes the decoded update side scrolling gameplay d943 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D943: ldx #$00 ; PRG $1943 | CPU $D943 | A2 00 stx ScratchValue1 ; PRG $1945 | CPU $D945 | 86 01 jsr UpdateSideScrollingGameplay_DA03 ; PRG $1947 | CPU $D947 | 20 03 DA ldx #$03 ; PRG $194A | CPU $D94A | A2 03 jsr UpdateSideScrollingGameplay_DA03 ; PRG $194C | CPU $D94C | 20 03 DA ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field D94 F. ; Local behavior: Executes the decoded update gameplay state field d94 f sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_D94F: rts ; PRG $194F | CPU $D94F | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D950. ; Local behavior: Executes the decoded update side scrolling gameplay d950 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D950: lda Zp_B1 ; PRG $1950 | CPU $D950 | A5 B1 beq UpdateGameplayStateField_D94F ; PRG $1952 | CPU $D952 | F0 FB inc Zp_B1 ; PRG $1954 | CPU $D954 | E6 B1 lda Zp_B1 ; PRG $1956 | CPU $D956 | A5 B1 cmp #$02 ; PRG $1958 | CPU $D958 | C9 02 beq UpdateSideScrollingGameplay_D9A8 ; PRG $195A | CPU $D95A | F0 4C cmp #$13 ; PRG $195C | CPU $D95C | C9 13 bne UpdateSideScrollingGameplay_D943 ; PRG $195E | CPU $D95E | D0 E3 lda #$00 ; PRG $1960 | CPU $D960 | A9 00 sta Zp_B1 ; PRG $1962 | CPU $D962 | 85 B1 lda #$F4 ; PRG $1964 | CPU $D964 | A9 F4 ldy #$00 ; PRG $1966 | CPU $D966 | A0 00 jsr UpdateSideScrollingGameplay_E9BA ; PRG $1968 | CPU $D968 | 20 BA E9 lda #$00 ; PRG $196B | CPU $D96B | A9 00 sta ScratchValue0 ; PRG $196D | CPU $D96D | 85 00 lda #$04 ; PRG $196F | CPU $D96F | A9 04 sta ScratchValue1 ; PRG $1971 | CPU $D971 | 85 01 ldx Zp_B4 ; PRG $1973 | CPU $D973 | A6 B4 beq UpdateSideScrollingGameplay_D97D ; PRG $1975 | CPU $D975 | F0 06 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D977. ; Local behavior: Executes the decoded update side scrolling gameplay d977 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D977: jsr UpdateSideScrollingGameplay_DB1D ; PRG $1977 | CPU $D977 | 20 1D DB dex ; PRG $197A | CPU $D97A | CA bne UpdateSideScrollingGameplay_D977 ; PRG $197B | CPU $D97B | D0 FA ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D97 D. ; Local behavior: Executes the decoded update side scrolling gameplay d97 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D97D: lda #$00 ; PRG $197D | CPU $D97D | A9 00 ldy #$00 ; PRG $197F | CPU $D97F | A0 00 sta (ScratchValue0),y ; PRG $1981 | CPU $D981 | 91 00 lda Zp_B2 ; PRG $1983 | CPU $D983 | A5 B2 iny ; PRG $1985 | CPU $D985 | C8 sta (ScratchValue0),y ; PRG $1986 | CPU $D986 | 91 00 lda #$00 ; PRG $1988 | CPU $D988 | A9 00 iny ; PRG $198A | CPU $D98A | C8 sta (ScratchValue0),y ; PRG $198B | CPU $D98B | 91 00 lda Zp_B3 ; PRG $198D | CPU $D98D | A5 B3 iny ; PRG $198F | CPU $D98F | C8 sta (ScratchValue0),y ; PRG $1990 | CPU $D990 | 91 00 lda #$00 ; PRG $1992 | CPU $D992 | A9 00 iny ; PRG $1994 | CPU $D994 | C8 sta (ScratchValue0),y ; PRG $1995 | CPU $D995 | 91 00 ldy #$10 ; PRG $1997 | CPU $D997 | A0 10 sta (ScratchValue0),y ; PRG $1999 | CPU $D999 | 91 00 iny ; PRG $199B | CPU $D99B | C8 sta (ScratchValue0),y ; PRG $199C | CPU $D99C | 91 00 iny ; PRG $199E | CPU $D99E | C8 sta (ScratchValue0),y ; PRG $199F | CPU $D99F | 91 00 iny ; PRG $19A1 | CPU $D9A1 | C8 sta (ScratchValue0),y ; PRG $19A2 | CPU $D9A2 | 91 00 iny ; PRG $19A4 | CPU $D9A4 | C8 sta (ScratchValue0),y ; PRG $19A5 | CPU $D9A5 | 91 00 rts ; PRG $19A7 | CPU $D9A7 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D9 A8. ; Local behavior: Executes the decoded update side scrolling gameplay d9 a8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D9A8: jsr UpdateSideScrollingGameplay_DA40 ; PRG $19A8 | CPU $D9A8 | 20 40 DA lda #$30 ; PRG $19AB | CPU $D9AB | A9 30 sta Ram_029C ; PRG $19AD | CPU $D9AD | 8D 9C 02 sta Ram_02A0 ; PRG $19B0 | CPU $D9B0 | 8D A0 02 sta Ram_02A4 ; PRG $19B3 | CPU $D9B3 | 8D A4 02 lda #$D8 ; PRG $19B6 | CPU $D9B6 | A9 D8 sta Ram_02AC ; PRG $19B8 | CPU $D9B8 | 8D AC 02 sta Ram_02B0 ; PRG $19BB | CPU $D9BB | 8D B0 02 sta Ram_02B4 ; PRG $19BE | CPU $D9BE | 8D B4 02 lda #$80 ; PRG $19C1 | CPU $D9C1 | A9 80 sta Ram_02A8 ; PRG $19C3 | CPU $D9C3 | 8D A8 02 sta Ram_02B8 ; PRG $19C6 | CPU $D9C6 | 8D B8 02 sta Ram_02A3 ; PRG $19C9 | CPU $D9C9 | 8D A3 02 sta Ram_02B3 ; PRG $19CC | CPU $D9CC | 8D B3 02 lda #$F7 ; PRG $19CF | CPU $D9CF | A9 F7 sta Ram_02A7 ; PRG $19D1 | CPU $D9D1 | 8D A7 02 sta Ram_02AB ; PRG $19D4 | CPU $D9D4 | 8D AB 02 sta Ram_02AF ; PRG $19D7 | CPU $D9D7 | 8D AF 02 lda #$01 ; PRG $19DA | CPU $D9DA | A9 01 sta Ram_029F ; PRG $19DC | CPU $D9DC | 8D 9F 02 sta Ram_02B7 ; PRG $19DF | CPU $D9DF | 8D B7 02 sta Ram_02BB ; PRG $19E2 | CPU $D9E2 | 8D BB 02 lda #$F6 ; PRG $19E5 | CPU $D9E5 | A9 F6 ldy #$01 ; PRG $19E7 | CPU $D9E7 | A0 01 jsr UpdateSideScrollingGameplay_E9BA ; PRG $19E9 | CPU $D9E9 | 20 BA E9 lda #$01 ; PRG $19EC | CPU $D9EC | A9 01 ldy #$02 ; PRG $19EE | CPU $D9EE | A0 02 jsr UpdateSideScrollingGameplay_E9BA ; PRG $19F0 | CPU $D9F0 | 20 BA E9 ldx #$1F ; PRG $19F3 | CPU $D9F3 | A2 1F lda #$00 ; PRG $19F5 | CPU $D9F5 | A9 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay D9 F7. ; Local behavior: Executes the decoded update side scrolling gameplay d9 f7 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_D9F7: sta Ram_0380,x ; PRG $19F7 | CPU $D9F7 | 9D 80 03 dex ; PRG $19FA | CPU $D9FA | CA bpl UpdateSideScrollingGameplay_D9F7 ; PRG $19FB | CPU $D9FB | 10 FA lda #$03 ; PRG $19FD | CPU $D9FD | A9 03 jsr UpdateSideScrollingGameplay_CE5B ; PRG $19FF | CPU $D9FF | 20 5B CE rts ; PRG $1A02 | CPU $DA02 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DA03. ; Local behavior: Executes the decoded update side scrolling gameplay da03 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DA03: lda #$08 ; PRG $1A03 | CPU $DA03 | A9 08 sta ScratchValue0 ; PRG $1A05 | CPU $DA05 | 85 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DA07. ; Local behavior: Executes the decoded update side scrolling gameplay da07 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DA07: ldy ScratchValue1 ; PRG $1A07 | CPU $DA07 | A4 01 lda GameplayLookupTable_DA30,y ; PRG $1A09 | CPU $DA09 | B9 30 DA tay ; PRG $1A0C | CPU $DA0C | A8 jsr UpdateSideScrollingGameplay_DA1B ; PRG $1A0D | CPU $DA0D | 20 1B DA inx ; PRG $1A10 | CPU $DA10 | E8 inx ; PRG $1A11 | CPU $DA11 | E8 inx ; PRG $1A12 | CPU $DA12 | E8 inx ; PRG $1A13 | CPU $DA13 | E8 inc ScratchValue1 ; PRG $1A14 | CPU $DA14 | E6 01 dec ScratchValue0 ; PRG $1A16 | CPU $DA16 | C6 00 bne UpdateSideScrollingGameplay_DA07 ; PRG $1A18 | CPU $DA18 | D0 ED rts ; PRG $1A1A | CPU $DA1A | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DA1 B. ; Local behavior: Executes the decoded update side scrolling gameplay da1 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DA1B: lda Ram_0380,x ; PRG $1A1B | CPU $DA1B | BD 80 03 clc ; PRG $1A1E | CPU $DA1E | 18 adc Ram_03A0,y ; PRG $1A1F | CPU $DA1F | 79 A0 03 sta Ram_0380,x ; PRG $1A22 | CPU $DA22 | 9D 80 03 dey ; PRG $1A25 | CPU $DA25 | 88 lda Ram_029C,x ; PRG $1A26 | CPU $DA26 | BD 9C 02 adc Ram_03A0,y ; PRG $1A29 | CPU $DA29 | 79 A0 03 sta Ram_029C,x ; PRG $1A2C | CPU $DA2C | 9D 9C 02 rts ; PRG $1A2F | CPU $DA2F | 60 GameplayLookupTable_DA30: .byte $01,$01,$01,$05,$03,$03,$03,$05,$07,$0B,$09,$09,$09,$0B,$07,$07 ; PRG $1A30 | CPU $DA30 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DA40. ; Local behavior: Executes the decoded update side scrolling gameplay da40 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DA40: lda #$00 ; PRG $1A40 | CPU $DA40 | A9 00 sta ScratchValue0 ; PRG $1A42 | CPU $DA42 | 85 00 ldx #$00 ; PRG $1A44 | CPU $DA44 | A2 00 lda #$30 ; PRG $1A46 | CPU $DA46 | A9 30 sta ScratchValue2 ; PRG $1A48 | CPU $DA48 | 85 02 lda Zp_B2 ; PRG $1A4A | CPU $DA4A | A5 B2 jsr UpdateGameplayStateField_DAA7 ; PRG $1A4C | CPU $DA4C | 20 A7 DA lda Zp_B2 ; PRG $1A4F | CPU $DA4F | A5 B2 sta ScratchValue2 ; PRG $1A51 | CPU $DA51 | 85 02 lda #$D8 ; PRG $1A53 | CPU $DA53 | A9 D8 jsr UpdateSideScrollingGameplay_DAB1 ; PRG $1A55 | CPU $DA55 | 20 B1 DA lda Zp_B2 ; PRG $1A58 | CPU $DA58 | A5 B2 jsr UpdateSideScrollingGameplay_DABE ; PRG $1A5A | CPU $DA5A | 20 BE DA lda #$01 ; PRG $1A5D | CPU $DA5D | A9 01 sta ScratchValue2 ; PRG $1A5F | CPU $DA5F | 85 02 lda Zp_B3 ; PRG $1A61 | CPU $DA61 | A5 B3 jsr UpdateGameplayStateField_DAA7 ; PRG $1A63 | CPU $DA63 | 20 A7 DA lda Zp_B3 ; PRG $1A66 | CPU $DA66 | A5 B3 sta ScratchValue2 ; PRG $1A68 | CPU $DA68 | 85 02 lda #$F7 ; PRG $1A6A | CPU $DA6A | A9 F7 jsr UpdateSideScrollingGameplay_DAB1 ; PRG $1A6C | CPU $DA6C | 20 B1 DA lda Zp_B3 ; PRG $1A6F | CPU $DA6F | A5 B3 jsr UpdateSideScrollingGameplay_DABE ; PRG $1A71 | CPU $DA71 | 20 BE DA rts ; PRG $1A74 | CPU $DA74 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State DA75. ; Local behavior: Executes the decoded transform flight state da75 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_DA75: lsr a ; PRG $1A75 | CPU $DA75 | 4A ror ScratchValue0 ; PRG $1A76 | CPU $DA76 | 66 00 lsr a ; PRG $1A78 | CPU $DA78 | 4A ror ScratchValue0 ; PRG $1A79 | CPU $DA79 | 66 00 lsr a ; PRG $1A7B | CPU $DA7B | 4A ror ScratchValue0 ; PRG $1A7C | CPU $DA7C | 66 00 lsr a ; PRG $1A7E | CPU $DA7E | 4A ror ScratchValue0 ; PRG $1A7F | CPU $DA7F | 66 00 nop ; PRG $1A81 | CPU $DA81 | EA nop ; PRG $1A82 | CPU $DA82 | EA nop ; PRG $1A83 | CPU $DA83 | EA nop ; PRG $1A84 | CPU $DA84 | EA nop ; PRG $1A85 | CPU $DA85 | EA nop ; PRG $1A86 | CPU $DA86 | EA nop ; PRG $1A87 | CPU $DA87 | EA nop ; PRG $1A88 | CPU $DA88 | EA rts ; PRG $1A89 | CPU $DA89 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DA8 A. ; Local behavior: Executes the decoded update side scrolling gameplay da8 a sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DA8A: sta ScratchValue1 ; PRG $1A8A | CPU $DA8A | 85 01 lda #$00 ; PRG $1A8C | CPU $DA8C | A9 00 sec ; PRG $1A8E | CPU $DA8E | 38 sbc ScratchValue0 ; PRG $1A8F | CPU $DA8F | E5 00 sta ScratchValue0 ; PRG $1A91 | CPU $DA91 | 85 00 lda #$00 ; PRG $1A93 | CPU $DA93 | A9 00 sbc ScratchValue1 ; PRG $1A95 | CPU $DA95 | E5 01 rts ; PRG $1A97 | CPU $DA97 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DA98. ; Local behavior: Executes the decoded update side scrolling gameplay da98 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DA98: sta Ram_03A0,x ; PRG $1A98 | CPU $DA98 | 9D A0 03 lda ScratchValue0 ; PRG $1A9B | CPU $DA9B | A5 00 inx ; PRG $1A9D | CPU $DA9D | E8 sta Ram_03A0,x ; PRG $1A9E | CPU $DA9E | 9D A0 03 inx ; PRG $1AA1 | CPU $DAA1 | E8 lda #$00 ; PRG $1AA2 | CPU $DAA2 | A9 00 sta ScratchValue0 ; PRG $1AA4 | CPU $DAA4 | 85 00 rts ; PRG $1AA6 | CPU $DAA6 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field DAA7. ; Local behavior: Executes the decoded update gameplay state field daa7 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_DAA7: sec ; PRG $1AA7 | CPU $DAA7 | 38 sbc ScratchValue2 ; PRG $1AA8 | CPU $DAA8 | E5 02 jsr TransformFlightState_DA75 ; PRG $1AAA | CPU $DAAA | 20 75 DA jsr UpdateSideScrollingGameplay_DA98 ; PRG $1AAD | CPU $DAAD | 20 98 DA rts ; PRG $1AB0 | CPU $DAB0 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DAB1. ; Local behavior: Executes the decoded update side scrolling gameplay dab1 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DAB1: sec ; PRG $1AB1 | CPU $DAB1 | 38 sbc ScratchValue2 ; PRG $1AB2 | CPU $DAB2 | E5 02 jsr TransformFlightState_DA75 ; PRG $1AB4 | CPU $DAB4 | 20 75 DA jsr UpdateSideScrollingGameplay_DA8A ; PRG $1AB7 | CPU $DAB7 | 20 8A DA jsr UpdateSideScrollingGameplay_DA98 ; PRG $1ABA | CPU $DABA | 20 98 DA rts ; PRG $1ABD | CPU $DABD | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DABE. ; Local behavior: Executes the decoded update side scrolling gameplay dabe sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DABE: sec ; PRG $1ABE | CPU $DABE | 38 sbc #$80 ; PRG $1ABF | CPU $DABF | E9 80 bcs UpdateGameplayStateField_DAD2 ; PRG $1AC1 | CPU $DAC1 | B0 0F eor #$FF ; PRG $1AC3 | CPU $DAC3 | 49 FF clc ; PRG $1AC5 | CPU $DAC5 | 18 adc #$01 ; PRG $1AC6 | CPU $DAC6 | 69 01 jsr TransformFlightState_DA75 ; PRG $1AC8 | CPU $DAC8 | 20 75 DA jsr UpdateSideScrollingGameplay_DA8A ; PRG $1ACB | CPU $DACB | 20 8A DA jsr UpdateSideScrollingGameplay_DA98 ; PRG $1ACE | CPU $DACE | 20 98 DA rts ; PRG $1AD1 | CPU $DAD1 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field DAD2. ; Local behavior: Executes the decoded update gameplay state field dad2 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_DAD2: jsr TransformFlightState_DA75 ; PRG $1AD2 | CPU $DAD2 | 20 75 DA jsr UpdateSideScrollingGameplay_DA98 ; PRG $1AD5 | CPU $DAD5 | 20 98 DA rts ; PRG $1AD8 | CPU $DAD8 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DAD9. ; Local behavior: Executes the decoded update side scrolling gameplay dad9 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DAD9: lda Zp_B1 ; PRG $1AD9 | CPU $DAD9 | A5 B1 bne UpdateGameplayStateField_DB03 ; PRG $1ADB | CPU $DADB | D0 26 lda Zp_A3 ; PRG $1ADD | CPU $DADD | A5 A3 cmp #$E8 ; PRG $1ADF | CPU $DADF | C9 E8 bne UpdateGameplayStateField_DB03 ; PRG $1AE1 | CPU $DAE1 | D0 20 lda Ram_03E0 ; PRG $1AE3 | CPU $DAE3 | AD E0 03 cmp #$F4 ; PRG $1AE6 | CPU $DAE6 | C9 F4 bne UpdateSideScrollingGameplay_DB05 ; PRG $1AE8 | CPU $DAE8 | D0 1B lda Ram_03F0 ; PRG $1AEA | CPU $DAEA | AD F0 03 cmp #$F4 ; PRG $1AED | CPU $DAED | C9 F4 bne UpdateSideScrollingGameplay_DB05 ; PRG $1AEF | CPU $DAEF | D0 14 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DAF1. ; Local behavior: Executes the decoded update side scrolling gameplay daf1 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DAF1: lda #$01 ; PRG $1AF1 | CPU $DAF1 | A9 01 sta Zp_B1 ; PRG $1AF3 | CPU $DAF3 | 85 B1 lda ScratchIndex ; PRG $1AF5 | CPU $DAF5 | A5 03 sta Zp_B2 ; PRG $1AF7 | CPU $DAF7 | 85 B2 lda DataPointerLo ; PRG $1AF9 | CPU $DAF9 | A5 04 sta Zp_B3 ; PRG $1AFB | CPU $DAFB | 85 B3 lda ScratchValue2 ; PRG $1AFD | CPU $DAFD | A5 02 sta Zp_B4 ; PRG $1AFF | CPU $DAFF | 85 B4 sec ; PRG $1B01 | CPU $DB01 | 38 rts ; PRG $1B02 | CPU $DB02 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field DB03. ; Local behavior: Executes the decoded update gameplay state field db03 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_DB03: clc ; PRG $1B03 | CPU $DB03 | 18 rts ; PRG $1B04 | CPU $DB04 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DB05. ; Local behavior: Executes the decoded update side scrolling gameplay db05 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DB05: lda #$00 ; PRG $1B05 | CPU $DB05 | A9 00 sta ScratchValue0 ; PRG $1B07 | CPU $DB07 | 85 00 lda #$04 ; PRG $1B09 | CPU $DB09 | A9 04 sta ScratchValue1 ; PRG $1B0B | CPU $DB0B | 85 01 ldx #$14 ; PRG $1B0D | CPU $DB0D | A2 14 ldy #$00 ; PRG $1B0F | CPU $DB0F | A0 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DB11. ; Local behavior: Executes the decoded update side scrolling gameplay db11 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DB11: lda (ScratchValue0),y ; PRG $1B11 | CPU $DB11 | B1 00 beq UpdateGameplayStateField_DB03 ; PRG $1B13 | CPU $DB13 | F0 EE jsr UpdateSideScrollingGameplay_DB1D ; PRG $1B15 | CPU $DB15 | 20 1D DB dex ; PRG $1B18 | CPU $DB18 | CA bne UpdateSideScrollingGameplay_DB11 ; PRG $1B19 | CPU $DB19 | D0 F6 beq UpdateSideScrollingGameplay_DAF1 ; PRG $1B1B | CPU $DB1B | F0 D4 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DB1 D. ; Local behavior: Executes the decoded update side scrolling gameplay db1 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DB1D: clc ; PRG $1B1D | CPU $DB1D | 18 lda #$20 ; PRG $1B1E | CPU $DB1E | A9 20 adc ScratchValue0 ; PRG $1B20 | CPU $DB20 | 65 00 sta ScratchValue0 ; PRG $1B22 | CPU $DB22 | 85 00 lda #$00 ; PRG $1B24 | CPU $DB24 | A9 00 adc ScratchValue1 ; PRG $1B26 | CPU $DB26 | 65 01 sta ScratchValue1 ; PRG $1B28 | CPU $DB28 | 85 01 rts ; PRG $1B2A | CPU $DB2A | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DB2 B. ; Local behavior: Executes the decoded update side scrolling gameplay db2 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DB2B: lda #$A0 ; PRG $1B2B | CPU $DB2B | A9 A0 sta ScratchValue0 ; PRG $1B2D | CPU $DB2D | 85 00 lda #$05 ; PRG $1B2F | CPU $DB2F | A9 05 sta ScratchValue1 ; PRG $1B31 | CPU $DB31 | 85 01 ldx Zp_1E ; PRG $1B33 | CPU $DB33 | A6 1E jsr UpdateSideScrollingGameplay_DB46 ; PRG $1B35 | CPU $DB35 | 20 46 DB lda #$C0 ; PRG $1B38 | CPU $DB38 | A9 C0 sta ScratchValue0 ; PRG $1B3A | CPU $DB3A | 85 00 lda #$05 ; PRG $1B3C | CPU $DB3C | A9 05 sta ScratchValue1 ; PRG $1B3E | CPU $DB3E | 85 01 ldx Zp_1F ; PRG $1B40 | CPU $DB40 | A6 1F jsr UpdateSideScrollingGameplay_DB46 ; PRG $1B42 | CPU $DB42 | 20 46 DB rts ; PRG $1B45 | CPU $DB45 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DB46. ; Local behavior: Executes the decoded update side scrolling gameplay db46 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DB46: ldy #$00 ; PRG $1B46 | CPU $DB46 | A0 00 lda (ScratchValue0),y ; PRG $1B48 | CPU $DB48 | B1 00 cmp #$F4 ; PRG $1B4A | CPU $DB4A | C9 F4 beq UpdateGameplayStateField_DB99 ; PRG $1B4C | CPU $DB4C | F0 4B ldy #$01 ; PRG $1B4E | CPU $DB4E | A0 01 lda (ScratchValue0),y ; PRG $1B50 | CPU $DB50 | B1 00 cmp #$30 ; PRG $1B52 | CPU $DB52 | C9 30 bcs UpdateSideScrollingGameplay_DB60 ; PRG $1B54 | CPU $DB54 | B0 0A lda Zp_1D ; PRG $1B56 | CPU $DB56 | A5 1D bpl UpdateSideScrollingGameplay_DB9E ; PRG $1B58 | CPU $DB58 | 10 44 lda #$D4 ; PRG $1B5A | CPU $DB5A | A9 D4 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DB5 C. ; Local behavior: Executes the decoded update side scrolling gameplay db5 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DB5C: ldy #$01 ; PRG $1B5C | CPU $DB5C | A0 01 sta (ScratchValue0),y ; PRG $1B5E | CPU $DB5E | 91 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DB60. ; Local behavior: Executes the decoded update side scrolling gameplay db60 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DB60: cmp #$D8 ; PRG $1B60 | CPU $DB60 | C9 D8 bcc CalculateMovementAndClamp_DB6E ; PRG $1B62 | CPU $DB62 | 90 0A lda Zp_1D ; PRG $1B64 | CPU $DB64 | A5 1D bpl UpdateSideScrollingGameplay_DBA8 ; PRG $1B66 | CPU $DB66 | 10 40 lda #$34 ; PRG $1B68 | CPU $DB68 | A9 34 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DB6 A. ; Local behavior: Executes the decoded update side scrolling gameplay db6 a sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DB6A: ldy #$01 ; PRG $1B6A | CPU $DB6A | A0 01 sta (ScratchValue0),y ; PRG $1B6C | CPU $DB6C | 91 00 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value DB6 E. ; Local behavior: Executes the decoded calculate and clamp value db6 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_DB6E: lda Ram_03C1 ; PRG $1B6E | CPU $DB6E | AD C1 03 sec ; PRG $1B71 | CPU $DB71 | 38 sbc #$14 ; PRG $1B72 | CPU $DB72 | E9 14 cmp (ScratchValue0),y ; PRG $1B74 | CPU $DB74 | D1 00 bcs UpdateSideScrollingGameplay_DB8F ; PRG $1B76 | CPU $DB76 | B0 17 clc ; PRG $1B78 | CPU $DB78 | 18 adc #$20 ; PRG $1B79 | CPU $DB79 | 69 20 cmp (ScratchValue0),y ; PRG $1B7B | CPU $DB7B | D1 00 bcc UpdateSideScrollingGameplay_DB8F ; PRG $1B7D | CPU $DB7D | 90 10 sec ; PRG $1B7F | CPU $DB7F | 38 sbc #$08 ; PRG $1B80 | CPU $DB80 | E9 08 cmp (ScratchValue0),y ; PRG $1B82 | CPU $DB82 | D1 00 ldy #$12 ; PRG $1B84 | CPU $DB84 | A0 12 lda (ScratchValue0),y ; PRG $1B86 | CPU $DB86 | B1 00 bcs UpdateSideScrollingGameplay_DB9A ; PRG $1B88 | CPU $DB88 | B0 10 bpl UpdateSideScrollingGameplay_DB8F ; PRG $1B8A | CPU $DB8A | 10 03 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DB8 C. ; Local behavior: Executes the decoded update side scrolling gameplay db8 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DB8C: jsr UpdateSideScrollingGameplay_DBB2 ; PRG $1B8C | CPU $DB8C | 20 B2 DB ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DB8 F. ; Local behavior: Executes the decoded update side scrolling gameplay db8 f sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DB8F: txa ; PRG $1B8F | CPU $DB8F | 8A cmp #$10 ; PRG $1B90 | CPU $DB90 | C9 10 bcs UpdateGameplayStateField_DB99 ; PRG $1B92 | CPU $DB92 | B0 05 ldy #$14 ; PRG $1B94 | CPU $DB94 | A0 14 jsr UpdateSideScrollingGameplay_DBB2 ; PRG $1B96 | CPU $DB96 | 20 B2 DB ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field DB99. ; Local behavior: Executes the decoded update gameplay state field db99 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_DB99: rts ; PRG $1B99 | CPU $DB99 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DB9 A. ; Local behavior: Executes the decoded update side scrolling gameplay db9 a sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DB9A: bmi UpdateSideScrollingGameplay_DB8F ; PRG $1B9A | CPU $DB9A | 30 F3 bpl UpdateSideScrollingGameplay_DB8C ; PRG $1B9C | CPU $DB9C | 10 EE ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DB9 E. ; Local behavior: Executes the decoded update side scrolling gameplay db9 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DB9E: ldy #$12 ; PRG $1B9E | CPU $DB9E | A0 12 jsr UpdateSideScrollingGameplay_DBB2 ; PRG $1BA0 | CPU $DBA0 | 20 B2 DB lda #$30 ; PRG $1BA3 | CPU $DBA3 | A9 30 jmp UpdateSideScrollingGameplay_DB5C ; PRG $1BA5 | CPU $DBA5 | 4C 5C DB ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DBA8. ; Local behavior: Executes the decoded update side scrolling gameplay dba8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DBA8: ldy #$12 ; PRG $1BA8 | CPU $DBA8 | A0 12 jsr UpdateSideScrollingGameplay_DBB2 ; PRG $1BAA | CPU $DBAA | 20 B2 DB lda #$D8 ; PRG $1BAD | CPU $DBAD | A9 D8 jmp UpdateSideScrollingGameplay_DB6A ; PRG $1BAF | CPU $DBAF | 4C 6A DB ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DBB2. ; Local behavior: Executes the decoded update side scrolling gameplay dbb2 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DBB2: sec ; PRG $1BB2 | CPU $DBB2 | 38 lda #$00 ; PRG $1BB3 | CPU $DBB3 | A9 00 sbc (ScratchValue0),y ; PRG $1BB5 | CPU $DBB5 | F1 00 sta (ScratchValue0),y ; PRG $1BB7 | CPU $DBB7 | 91 00 lda #$00 ; PRG $1BB9 | CPU $DBB9 | A9 00 dey ; PRG $1BBB | CPU $DBBB | 88 sbc (ScratchValue0),y ; PRG $1BBC | CPU $DBBC | F1 00 sta (ScratchValue0),y ; PRG $1BBE | CPU $DBBE | 91 00 rts ; PRG $1BC0 | CPU $DBC0 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DBC1. ; Local behavior: Executes the decoded update side scrolling gameplay dbc1 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DBC1: lda #$60 ; PRG $1BC1 | CPU $DBC1 | A9 60 sta ScratchValue0 ; PRG $1BC3 | CPU $DBC3 | 85 00 lda #$05 ; PRG $1BC5 | CPU $DBC5 | A9 05 sta ScratchValue1 ; PRG $1BC7 | CPU $DBC7 | 85 01 ldx #$00 ; PRG $1BC9 | CPU $DBC9 | A2 00 jsr UpdateSideScrollingGameplay_DBF1 ; PRG $1BCB | CPU $DBCB | 20 F1 DB lda #$80 ; PRG $1BCE | CPU $DBCE | A9 80 sta ScratchValue0 ; PRG $1BD0 | CPU $DBD0 | 85 00 lda #$05 ; PRG $1BD2 | CPU $DBD2 | A9 05 sta ScratchValue1 ; PRG $1BD4 | CPU $DBD4 | 85 01 ldx #$02 ; PRG $1BD6 | CPU $DBD6 | A2 02 jsr UpdateSideScrollingGameplay_DBF1 ; PRG $1BD8 | CPU $DBD8 | 20 F1 DB ldx #$04 ; PRG $1BDB | CPU $DBDB | A2 04 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DBDD. ; Local behavior: Executes the decoded update side scrolling gameplay dbdd sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DBDD: lda Zp_E0,x ; PRG $1BDD | CPU $DBDD | B5 E0 bne UpdateSideScrollingGameplay_DBE3 ; PRG $1BDF | CPU $DBDF | D0 02 lda #$FF ; PRG $1BE1 | CPU $DBE1 | A9 FF ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DBE3. ; Local behavior: Executes the decoded update side scrolling gameplay dbe3 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DBE3: sta Zp_E0,x ; PRG $1BE3 | CPU $DBE3 | 95 E0 lda Zp_1D,x ; PRG $1BE5 | CPU $DBE5 | B5 1D cmp #$03 ; PRG $1BE7 | CPU $DBE7 | C9 03 bcs UpdateGameplayStateField_DBED ; PRG $1BE9 | CPU $DBE9 | B0 02 inc Zp_E0,x ; PRG $1BEB | CPU $DBEB | F6 E0 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field DBED. ; Local behavior: Executes the decoded update gameplay state field dbed sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_DBED: dex ; PRG $1BED | CPU $DBED | CA bne UpdateSideScrollingGameplay_DBDD ; PRG $1BEE | CPU $DBEE | D0 ED rts ; PRG $1BF0 | CPU $DBF0 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DBF1. ; Local behavior: Executes the decoded update side scrolling gameplay dbf1 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DBF1: ldy #$00 ; PRG $1BF1 | CPU $DBF1 | A0 00 lda (ScratchValue0),y ; PRG $1BF3 | CPU $DBF3 | B1 00 cmp #$F4 ; PRG $1BF5 | CPU $DBF5 | C9 F4 beq UpdateGameplayStateField_DC16 ; PRG $1BF7 | CPU $DBF7 | F0 1D ldy #$01 ; PRG $1BF9 | CPU $DBF9 | A0 01 lda (ScratchValue0),y ; PRG $1BFB | CPU $DBFB | B1 00 cmp #$30 ; PRG $1BFD | CPU $DBFD | C9 30 bcs UpdateSideScrollingGameplay_DC03 ; PRG $1BFF | CPU $DBFF | B0 02 lda #$D4 ; PRG $1C01 | CPU $DC01 | A9 D4 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DC03. ; Local behavior: Executes the decoded update side scrolling gameplay dc03 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DC03: cmp #$D8 ; PRG $1C03 | CPU $DC03 | C9 D8 bcc UpdateSideScrollingGameplay_DC09 ; PRG $1C05 | CPU $DC05 | 90 02 lda #$34 ; PRG $1C07 | CPU $DC07 | A9 34 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DC09. ; Local behavior: Executes the decoded update side scrolling gameplay dc09 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DC09: sta (ScratchValue0),y ; PRG $1C09 | CPU $DC09 | 91 00 ldy #$11 ; PRG $1C0B | CPU $DC0B | A0 11 jsr CalculateMovementAndClamp_DC17 ; PRG $1C0D | CPU $DC0D | 20 17 DC inx ; PRG $1C10 | CPU $DC10 | E8 ldy #$13 ; PRG $1C11 | CPU $DC11 | A0 13 jsr CalculateMovementAndClamp_DC17 ; PRG $1C13 | CPU $DC13 | 20 17 DC ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field DC16. ; Local behavior: Executes the decoded update gameplay state field dc16 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_DC16: rts ; PRG $1C16 | CPU $DC16 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value DC17. ; Local behavior: Executes the decoded calculate and clamp value dc17 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_DC17: lda Zp_E1,x ; PRG $1C17 | CPU $DC17 | B5 E1 and #$10 ; PRG $1C19 | CPU $DC19 | 29 10 beq CalculateMovementAndClamp_DC33 ; PRG $1C1B | CPU $DC1B | F0 16 lda (ScratchValue0),y ; PRG $1C1D | CPU $DC1D | B1 00 cmp #$02 ; PRG $1C1F | CPU $DC1F | C9 02 beq UpdateGameplayStateField_DC32 ; PRG $1C21 | CPU $DC21 | F0 0F clc ; PRG $1C23 | CPU $DC23 | 18 lda #$01 ; PRG $1C24 | CPU $DC24 | A9 01 iny ; PRG $1C26 | CPU $DC26 | C8 adc (ScratchValue0),y ; PRG $1C27 | CPU $DC27 | 71 00 sta (ScratchValue0),y ; PRG $1C29 | CPU $DC29 | 91 00 lda #$00 ; PRG $1C2B | CPU $DC2B | A9 00 dey ; PRG $1C2D | CPU $DC2D | 88 adc (ScratchValue0),y ; PRG $1C2E | CPU $DC2E | 71 00 sta (ScratchValue0),y ; PRG $1C30 | CPU $DC30 | 91 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field DC32. ; Local behavior: Executes the decoded update gameplay state field dc32 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_DC32: rts ; PRG $1C32 | CPU $DC32 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value DC33. ; Local behavior: Executes the decoded calculate and clamp value dc33 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_DC33: lda (ScratchValue0),y ; PRG $1C33 | CPU $DC33 | B1 00 cmp #$FE ; PRG $1C35 | CPU $DC35 | C9 FE beq UpdateGameplayStateField_DC32 ; PRG $1C37 | CPU $DC37 | F0 F9 sec ; PRG $1C39 | CPU $DC39 | 38 iny ; PRG $1C3A | CPU $DC3A | C8 lda (ScratchValue0),y ; PRG $1C3B | CPU $DC3B | B1 00 sbc #$01 ; PRG $1C3D | CPU $DC3D | E9 01 sta (ScratchValue0),y ; PRG $1C3F | CPU $DC3F | 91 00 dey ; PRG $1C41 | CPU $DC41 | 88 lda (ScratchValue0),y ; PRG $1C42 | CPU $DC42 | B1 00 sbc #$00 ; PRG $1C44 | CPU $DC44 | E9 00 sta (ScratchValue0),y ; PRG $1C46 | CPU $DC46 | 91 00 rts ; PRG $1C48 | CPU $DC48 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DC49. ; Local behavior: Executes the decoded update side scrolling gameplay dc49 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DC49: lda Zp_D9 ; PRG $1C49 | CPU $DC49 | A5 D9 bne UpdateGameplayStateField_DC61 ; PRG $1C4B | CPU $DC4B | D0 14 lda #$01 ; PRG $1C4D | CPU $DC4D | A9 01 sta Zp_D9 ; PRG $1C4F | CPU $DC4F | 85 D9 dec Zp_AF ; PRG $1C51 | CPU $DC51 | C6 AF bpl UpdateSideScrollingGameplay_DC59 ; PRG $1C53 | CPU $DC53 | 10 04 lda #$03 ; PRG $1C55 | CPU $DC55 | A9 03 sta Zp_AF ; PRG $1C57 | CPU $DC57 | 85 AF ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DC59. ; Local behavior: Executes the decoded update side scrolling gameplay dc59 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DC59: lda Zp_AF ; PRG $1C59 | CPU $DC59 | A5 AF sta Ram_05A5 ; PRG $1C5B | CPU $DC5B | 8D A5 05 sta Ram_05C5 ; PRG $1C5E | CPU $DC5E | 8D C5 05 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field DC61. ; Local behavior: Executes the decoded update gameplay state field dc61 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_DC61: rts ; PRG $1C61 | CPU $DC61 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DC62. ; Local behavior: Executes the decoded update side scrolling gameplay dc62 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DC62: lda Zp_D8 ; PRG $1C62 | CPU $DC62 | A5 D8 bne UpdateGameplayStateField_DC7A ; PRG $1C64 | CPU $DC64 | D0 14 lda #$01 ; PRG $1C66 | CPU $DC66 | A9 01 sta Zp_D8 ; PRG $1C68 | CPU $DC68 | 85 D8 dec Zp_B0 ; PRG $1C6A | CPU $DC6A | C6 B0 bpl UpdateSideScrollingGameplay_DC72 ; PRG $1C6C | CPU $DC6C | 10 04 lda #$03 ; PRG $1C6E | CPU $DC6E | A9 03 sta Zp_B0 ; PRG $1C70 | CPU $DC70 | 85 B0 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DC72. ; Local behavior: Executes the decoded update side scrolling gameplay dc72 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DC72: lda Zp_B0 ; PRG $1C72 | CPU $DC72 | A5 B0 sta Ram_0565 ; PRG $1C74 | CPU $DC74 | 8D 65 05 sta Ram_0585 ; PRG $1C77 | CPU $DC77 | 8D 85 05 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field DC7 A. ; Local behavior: Executes the decoded update gameplay state field dc7 a sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_DC7A: rts ; PRG $1C7A | CPU $DC7A | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DC7 B. ; Local behavior: Executes the decoded update side scrolling gameplay dc7 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DC7B: lda #$60 ; PRG $1C7B | CPU $DC7B | A9 60 sta ScratchValue0 ; PRG $1C7D | CPU $DC7D | 85 00 lda #$05 ; PRG $1C7F | CPU $DC7F | A9 05 sta ScratchValue1 ; PRG $1C81 | CPU $DC81 | 85 01 ldx #$04 ; PRG $1C83 | CPU $DC83 | A2 04 lda #$44 ; PRG $1C85 | CPU $DC85 | A9 44 sta ScratchValue2 ; PRG $1C87 | CPU $DC87 | 85 02 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value DC89. ; Local behavior: Executes the decoded calculate and clamp value dc89 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_DC89: ldy #$00 ; PRG $1C89 | CPU $DC89 | A0 00 lda (ScratchValue0),y ; PRG $1C8B | CPU $DC8B | B1 00 bne UpdateSideScrollingGameplay_DCA0 ; PRG $1C8D | CPU $DC8D | D0 11 ldy #$0B ; PRG $1C8F | CPU $DC8F | A0 0B lda ScratchValue2 ; PRG $1C91 | CPU $DC91 | A5 02 sta (ScratchValue0),y ; PRG $1C93 | CPU $DC93 | 91 00 clc ; PRG $1C95 | CPU $DC95 | 18 adc #$10 ; PRG $1C96 | CPU $DC96 | 69 10 cmp #$64 ; PRG $1C98 | CPU $DC98 | C9 64 bne UpdateSideScrollingGameplay_DC9E ; PRG $1C9A | CPU $DC9A | D0 02 lda #$44 ; PRG $1C9C | CPU $DC9C | A9 44 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DC9 E. ; Local behavior: Executes the decoded update side scrolling gameplay dc9 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DC9E: sta ScratchValue2 ; PRG $1C9E | CPU $DC9E | 85 02 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DCA0. ; Local behavior: Executes the decoded update side scrolling gameplay dca0 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DCA0: clc ; PRG $1CA0 | CPU $DCA0 | 18 lda #$20 ; PRG $1CA1 | CPU $DCA1 | A9 20 adc ScratchValue0 ; PRG $1CA3 | CPU $DCA3 | 65 00 sta ScratchValue0 ; PRG $1CA5 | CPU $DCA5 | 85 00 lda #$00 ; PRG $1CA7 | CPU $DCA7 | A9 00 adc ScratchValue1 ; PRG $1CA9 | CPU $DCA9 | 65 01 sta ScratchValue1 ; PRG $1CAB | CPU $DCAB | 85 01 dex ; PRG $1CAD | CPU $DCAD | CA bne CalculateMovementAndClamp_DC89 ; PRG $1CAE | CPU $DCAE | D0 D9 lda #$F4 ; PRG $1CB0 | CPU $DCB0 | A9 F4 ldy #$1C ; PRG $1CB2 | CPU $DCB2 | A0 1C ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DCB4. ; Local behavior: Executes the decoded update side scrolling gameplay dcb4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DCB4: sta Ram_0244,y ; PRG $1CB4 | CPU $DCB4 | 99 44 02 dey ; PRG $1CB7 | CPU $DCB7 | 88 dey ; PRG $1CB8 | CPU $DCB8 | 88 dey ; PRG $1CB9 | CPU $DCB9 | 88 dey ; PRG $1CBA | CPU $DCBA | 88 bpl UpdateSideScrollingGameplay_DCB4 ; PRG $1CBB | CPU $DCBB | 10 F7 lda #$60 ; PRG $1CBD | CPU $DCBD | A9 60 sta ScratchValue0 ; PRG $1CBF | CPU $DCBF | 85 00 lda #$05 ; PRG $1CC1 | CPU $DCC1 | A9 05 sta ScratchValue1 ; PRG $1CC3 | CPU $DCC3 | 85 01 ldx #$04 ; PRG $1CC5 | CPU $DCC5 | A2 04 jmp UpdateSideScrollingGameplay_E7F6 ; PRG $1CC7 | CPU $DCC7 | 4C F6 E7 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DCCA. ; Local behavior: Executes the decoded update side scrolling gameplay dcca sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DCCA: lda #$00 ; PRG $1CCA | CPU $DCCA | A9 00 sta ScratchValue0 ; PRG $1CCC | CPU $DCCC | 85 00 lda #$04 ; PRG $1CCE | CPU $DCCE | A9 04 sta ScratchValue1 ; PRG $1CD0 | CPU $DCD0 | 85 01 lda #$80 ; PRG $1CD2 | CPU $DCD2 | A9 80 sta ScratchValue2 ; PRG $1CD4 | CPU $DCD4 | 85 02 lda #$06 ; PRG $1CD6 | CPU $DCD6 | A9 06 sta ScratchIndex ; PRG $1CD8 | CPU $DCD8 | 85 03 ldx Zp_32 ; PRG $1CDA | CPU $DCDA | A6 32 ldy Zp_58,x ; PRG $1CDC | CPU $DCDC | B4 58 lda GameplayLookupTable_C8EF,y ; PRG $1CDE | CPU $DCDE | B9 EF C8 beq UpdateGameplayStateField_DD23 ; PRG $1CE1 | CPU $DCE1 | F0 40 sta TemporaryPointerLo ; PRG $1CE3 | CPU $DCE3 | 85 06 sta TemporaryPointerHi ; PRG $1CE5 | CPU $DCE5 | 85 07 lda Zp_E0 ; PRG $1CE7 | CPU $DCE7 | A5 E0 bne CalculateMovementAndClamp_DCEF ; PRG $1CE9 | CPU $DCE9 | D0 04 lda #$28 ; PRG $1CEB | CPU $DCEB | A9 28 sta Zp_E0 ; PRG $1CED | CPU $DCED | 85 E0 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value DCEF. ; Local behavior: Executes the decoded calculate and clamp value dcef sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_DCEF: ldy #$00 ; PRG $1CEF | CPU $DCEF | A0 00 lda (ScratchValue2),y ; PRG $1CF1 | CPU $DCF1 | B1 02 bne UpdateSideScrollingGameplay_DD24 ; PRG $1CF3 | CPU $DCF3 | D0 2F ldy #$17 ; PRG $1CF5 | CPU $DCF5 | A0 17 lda (ScratchValue2),y ; PRG $1CF7 | CPU $DCF7 | B1 02 sec ; PRG $1CF9 | CPU $DCF9 | 38 sbc #$01 ; PRG $1CFA | CPU $DCFA | E9 01 sta (ScratchValue2),y ; PRG $1CFC | CPU $DCFC | 91 02 beq UpdateSideScrollingGameplay_DD0C ; PRG $1CFE | CPU $DCFE | F0 0C ldy #$01 ; PRG $1D00 | CPU $DD00 | A0 01 lda (ScratchValue2),y ; PRG $1D02 | CPU $DD02 | B1 02 cmp #$30 ; PRG $1D04 | CPU $DD04 | C9 30 bcc UpdateSideScrollingGameplay_DD0C ; PRG $1D06 | CPU $DD06 | 90 04 cmp #$D8 ; PRG $1D08 | CPU $DD08 | C9 D8 bcc UpdateSideScrollingGameplay_DD12 ; PRG $1D0A | CPU $DD0A | 90 06 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DD0 C. ; Local behavior: Executes the decoded update side scrolling gameplay dd0 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DD0C: lda #$F4 ; PRG $1D0C | CPU $DD0C | A9 F4 ldy #$00 ; PRG $1D0E | CPU $DD0E | A0 00 sta (ScratchValue2),y ; PRG $1D10 | CPU $DD10 | 91 02 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DD12. ; Local behavior: Executes the decoded update side scrolling gameplay dd12 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DD12: lda #$20 ; PRG $1D12 | CPU $DD12 | A9 20 clc ; PRG $1D14 | CPU $DD14 | 18 adc ScratchValue2 ; PRG $1D15 | CPU $DD15 | 65 02 sta ScratchValue2 ; PRG $1D17 | CPU $DD17 | 85 02 lda #$00 ; PRG $1D19 | CPU $DD19 | A9 00 adc ScratchIndex ; PRG $1D1B | CPU $DD1B | 65 03 sta ScratchIndex ; PRG $1D1D | CPU $DD1D | 85 03 dec TemporaryPointerLo ; PRG $1D1F | CPU $DD1F | C6 06 bne CalculateMovementAndClamp_DCEF ; PRG $1D21 | CPU $DD21 | D0 CC ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field DD23. ; Local behavior: Executes the decoded update gameplay state field dd23 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_DD23: rts ; PRG $1D23 | CPU $DD23 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DD24. ; Local behavior: Executes the decoded update side scrolling gameplay dd24 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DD24: cmp #$F4 ; PRG $1D24 | CPU $DD24 | C9 F4 bne UpdateSideScrollingGameplay_DD0C ; PRG $1D26 | CPU $DD26 | D0 E4 lda TemporaryPointerHi ; PRG $1D28 | CPU $DD28 | A5 07 beq UpdateSideScrollingGameplay_DD12 ; PRG $1D2A | CPU $DD2A | F0 E6 lda Zp_E0 ; PRG $1D2C | CPU $DD2C | A5 E0 cmp #$1F ; PRG $1D2E | CPU $DD2E | C9 1F bcs UpdateSideScrollingGameplay_DD12 ; PRG $1D30 | CPU $DD30 | B0 E0 and #$01 ; PRG $1D32 | CPU $DD32 | 29 01 bne UpdateSideScrollingGameplay_DD12 ; PRG $1D34 | CPU $DD34 | D0 DC dec Zp_AC ; PRG $1D36 | CPU $DD36 | C6 AC beq UpdateSideScrollingGameplay_DD52 ; PRG $1D38 | CPU $DD38 | F0 18 bpl UpdateSideScrollingGameplay_DD40 ; PRG $1D3A | CPU $DD3A | 10 04 ldx #$0C ; PRG $1D3C | CPU $DD3C | A2 0C stx Zp_AC ; PRG $1D3E | CPU $DD3E | 86 AC ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DD40. ; Local behavior: Executes the decoded update side scrolling gameplay dd40 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DD40: ldx Zp_AC ; PRG $1D40 | CPU $DD40 | A6 AC ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DD42. ; Local behavior: Executes the decoded update side scrolling gameplay dd42 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DD42: clc ; PRG $1D42 | CPU $DD42 | 18 lda #$20 ; PRG $1D43 | CPU $DD43 | A9 20 adc ScratchValue0 ; PRG $1D45 | CPU $DD45 | 65 00 sta ScratchValue0 ; PRG $1D47 | CPU $DD47 | 85 00 lda #$00 ; PRG $1D49 | CPU $DD49 | A9 00 adc ScratchValue1 ; PRG $1D4B | CPU $DD4B | 65 01 sta ScratchValue1 ; PRG $1D4D | CPU $DD4D | 85 01 dex ; PRG $1D4F | CPU $DD4F | CA bne UpdateSideScrollingGameplay_DD42 ; PRG $1D50 | CPU $DD50 | D0 F0 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DD52. ; Local behavior: Executes the decoded update side scrolling gameplay dd52 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DD52: ldy #$00 ; PRG $1D52 | CPU $DD52 | A0 00 lda (ScratchValue0),y ; PRG $1D54 | CPU $DD54 | B1 00 bne UpdateSideScrollingGameplay_DDB8 ; PRG $1D56 | CPU $DD56 | D0 60 lda Zp_AC ; PRG $1D58 | CPU $DD58 | A5 AC cmp #$0A ; PRG $1D5A | CPU $DD5A | C9 0A bcs CalculateMovementAndClamp_DD6C ; PRG $1D5C | CPU $DD5C | B0 0E and #$07 ; PRG $1D5E | CPU $DD5E | 29 07 ldx Zp_32 ; PRG $1D60 | CPU $DD60 | A6 32 ldy Zp_58,x ; PRG $1D62 | CPU $DD62 | B4 58 tax ; PRG $1D64 | CPU $DD64 | AA lda GameplayLookupTable_C8EB,y ; PRG $1D65 | CPU $DD65 | B9 EB C8 cmp Zp_1D,x ; PRG $1D68 | CPU $DD68 | D5 1D bcc UpdateSideScrollingGameplay_DDB8 ; PRG $1D6A | CPU $DD6A | 90 4C ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value DD6 C. ; Local behavior: Executes the decoded calculate and clamp value dd6 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_DD6C: jsr UpdateSideScrollingGameplay_DDC3 ; PRG $1D6C | CPU $DD6C | 20 C3 DD ldy #$00 ; PRG $1D6F | CPU $DD6F | A0 00 lda #$00 ; PRG $1D71 | CPU $DD71 | A9 00 sta (ScratchValue2),y ; PRG $1D73 | CPU $DD73 | 91 02 iny ; PRG $1D75 | CPU $DD75 | C8 lda (ScratchValue0),y ; PRG $1D76 | CPU $DD76 | B1 00 sta (ScratchValue2),y ; PRG $1D78 | CPU $DD78 | 91 02 ldy #$03 ; PRG $1D7A | CPU $DD7A | A0 03 lda (ScratchValue0),y ; PRG $1D7C | CPU $DD7C | B1 00 clc ; PRG $1D7E | CPU $DD7E | 18 adc #$04 ; PRG $1D7F | CPU $DD7F | 69 04 sta (ScratchValue2),y ; PRG $1D81 | CPU $DD81 | 91 02 lda Zp_AC ; PRG $1D83 | CPU $DD83 | A5 AC cmp #$0B ; PRG $1D85 | CPU $DD85 | C9 0B lda #$99 ; PRG $1D87 | CPU $DD87 | A9 99 bcc UpdateSideScrollingGameplay_DD8D ; PRG $1D89 | CPU $DD89 | 90 02 lda #$9B ; PRG $1D8B | CPU $DD8B | A9 9B ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DD8 D. ; Local behavior: Executes the decoded update side scrolling gameplay dd8 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DD8D: ldy #$07 ; PRG $1D8D | CPU $DD8D | A0 07 sta (ScratchValue2),y ; PRG $1D8F | CPU $DD8F | 91 02 lda #$00 ; PRG $1D91 | CPU $DD91 | A9 00 sta TemporaryPointerHi ; PRG $1D93 | CPU $DD93 | 85 07 ldy #$17 ; PRG $1D95 | CPU $DD95 | A0 17 lda #$80 ; PRG $1D97 | CPU $DD97 | A9 80 sta (ScratchValue2),y ; PRG $1D99 | CPU $DD99 | 91 02 ldy #$10 ; PRG $1D9B | CPU $DD9B | A0 10 lda (ScratchValue0),y ; PRG $1D9D | CPU $DD9D | B1 00 cmp #$03 ; PRG $1D9F | CPU $DD9F | C9 03 ldx #$07 ; PRG $1DA1 | CPU $DDA1 | A2 07 bcc UpdateSideScrollingGameplay_DDA7 ; PRG $1DA3 | CPU $DDA3 | 90 02 ldx #$06 ; PRG $1DA5 | CPU $DDA5 | A2 06 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DDA7. ; Local behavior: Executes the decoded update side scrolling gameplay dda7 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DDA7: lda Zp_AC ; PRG $1DA7 | CPU $DDA7 | A5 AC cmp #$0A ; PRG $1DA9 | CPU $DDA9 | C9 0A bcc UpdateSideScrollingGameplay_DDB5 ; PRG $1DAB | CPU $DDAB | 90 08 ldx #$07 ; PRG $1DAD | CPU $DDAD | A2 07 cmp #$0A ; PRG $1DAF | CPU $DDAF | C9 0A beq UpdateSideScrollingGameplay_DDB5 ; PRG $1DB1 | CPU $DDB1 | F0 02 ldx #$05 ; PRG $1DB3 | CPU $DDB3 | A2 05 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DDB5. ; Local behavior: Executes the decoded update side scrolling gameplay ddb5 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DDB5: jsr UpdateSideScrollingGameplay_CE51 ; PRG $1DB5 | CPU $DDB5 | 20 51 CE ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DDB8. ; Local behavior: Executes the decoded update side scrolling gameplay ddb8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DDB8: lda #$00 ; PRG $1DB8 | CPU $DDB8 | A9 00 sta ScratchValue0 ; PRG $1DBA | CPU $DDBA | 85 00 lda #$04 ; PRG $1DBC | CPU $DDBC | A9 04 sta ScratchValue1 ; PRG $1DBE | CPU $DDBE | 85 01 jmp UpdateSideScrollingGameplay_DD12 ; PRG $1DC0 | CPU $DDC0 | 4C 12 DD ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DDC3. ; Local behavior: Executes the decoded update side scrolling gameplay ddc3 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DDC3: lda #$12 ; PRG $1DC3 | CPU $DDC3 | A9 12 ldx #$01 ; PRG $1DC5 | CPU $DDC5 | A2 01 ldy #$15 ; PRG $1DC7 | CPU $DDC7 | A0 15 jsr UpdateSideScrollingGameplay_DDD6 ; PRG $1DC9 | CPU $DDC9 | 20 D6 DD lda #$14 ; PRG $1DCC | CPU $DDCC | A9 14 ldx #$03 ; PRG $1DCE | CPU $DDCE | A2 03 ldy #$16 ; PRG $1DD0 | CPU $DDD0 | A0 16 jsr UpdateSideScrollingGameplay_DDD6 ; PRG $1DD2 | CPU $DDD2 | 20 D6 DD rts ; PRG $1DD5 | CPU $DDD5 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DDD6. ; Local behavior: Executes the decoded update side scrolling gameplay ddd6 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DDD6: pha ; PRG $1DD6 | CPU $DDD6 | 48 lda #$00 ; PRG $1DD7 | CPU $DDD7 | A9 00 sta DataPointerLo ; PRG $1DD9 | CPU $DDD9 | 85 04 lda (ScratchValue2),y ; PRG $1DDB | CPU $DDDB | B1 02 sec ; PRG $1DDD | CPU $DDDD | 38 stx DataPointerHi ; PRG $1DDE | CPU $DDDE | 86 05 ldy DataPointerHi ; PRG $1DE0 | CPU $DDE0 | A4 05 sbc (ScratchValue0),y ; PRG $1DE2 | CPU $DDE2 | F1 00 bcs UpdateSideScrollingGameplay_DDFF ; PRG $1DE4 | CPU $DDE4 | B0 19 eor #$FF ; PRG $1DE6 | CPU $DDE6 | 49 FF clc ; PRG $1DE8 | CPU $DDE8 | 18 adc #$01 ; PRG $1DE9 | CPU $DDE9 | 69 01 jsr TransformFlightState_DE0E ; PRG $1DEB | CPU $DDEB | 20 0E DE pla ; PRG $1DEE | CPU $DDEE | 68 tay ; PRG $1DEF | CPU $DDEF | A8 lda #$00 ; PRG $1DF0 | CPU $DDF0 | A9 00 sec ; PRG $1DF2 | CPU $DDF2 | 38 sbc DataPointerLo ; PRG $1DF3 | CPU $DDF3 | E5 04 sta (ScratchValue2),y ; PRG $1DF5 | CPU $DDF5 | 91 02 lda #$00 ; PRG $1DF7 | CPU $DDF7 | A9 00 sbc DataPointerHi ; PRG $1DF9 | CPU $DDF9 | E5 05 dey ; PRG $1DFB | CPU $DDFB | 88 sta (ScratchValue2),y ; PRG $1DFC | CPU $DDFC | 91 02 rts ; PRG $1DFE | CPU $DDFE | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DDFF. ; Local behavior: Executes the decoded update side scrolling gameplay ddff sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DDFF: jsr TransformFlightState_DE0E ; PRG $1DFF | CPU $DDFF | 20 0E DE pla ; PRG $1E02 | CPU $DE02 | 68 tay ; PRG $1E03 | CPU $DE03 | A8 lda DataPointerLo ; PRG $1E04 | CPU $DE04 | A5 04 sta (ScratchValue2),y ; PRG $1E06 | CPU $DE06 | 91 02 dey ; PRG $1E08 | CPU $DE08 | 88 lda DataPointerHi ; PRG $1E09 | CPU $DE09 | A5 05 sta (ScratchValue2),y ; PRG $1E0B | CPU $DE0B | 91 02 rts ; PRG $1E0D | CPU $DE0D | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State DE0 E. ; Local behavior: Executes the decoded transform flight state de0 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_DE0E: lsr a ; PRG $1E0E | CPU $DE0E | 4A ror DataPointerLo ; PRG $1E0F | CPU $DE0F | 66 04 cmp #$02 ; PRG $1E11 | CPU $DE11 | C9 02 bcs TransformFlightState_DE0E ; PRG $1E13 | CPU $DE13 | B0 F9 sta DataPointerHi ; PRG $1E15 | CPU $DE15 | 85 05 lda Zp_1D ; PRG $1E17 | CPU $DE17 | A5 1D cmp #$C0 ; PRG $1E19 | CPU $DE19 | C9 C0 bcs UpdateGameplayStateField_DE21 ; PRG $1E1B | CPU $DE1B | B0 04 lsr DataPointerHi ; PRG $1E1D | CPU $DE1D | 46 05 ror DataPointerLo ; PRG $1E1F | CPU $DE1F | 66 04 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field DE21. ; Local behavior: Executes the decoded update gameplay state field de21 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_DE21: rts ; PRG $1E21 | CPU $DE21 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DE22. ; Local behavior: Executes the decoded update side scrolling gameplay de22 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DE22: lda #$00 ; PRG $1E22 | CPU $DE22 | A9 00 sta ScratchValue0 ; PRG $1E24 | CPU $DE24 | 85 00 lda #$E0 ; PRG $1E26 | CPU $DE26 | A9 E0 sta ScratchValue2 ; PRG $1E28 | CPU $DE28 | 85 02 lda #$05 ; PRG $1E2A | CPU $DE2A | A9 05 sta ScratchIndex ; PRG $1E2C | CPU $DE2C | 85 03 ldx Zp_AB ; PRG $1E2E | CPU $DE2E | A6 AB dex ; PRG $1E30 | CPU $DE30 | CA bpl CalculateMovementAndClamp_DE35 ; PRG $1E31 | CPU $DE31 | 10 02 ldx #$08 ; PRG $1E33 | CPU $DE33 | A2 08 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value DE35. ; Local behavior: Executes the decoded calculate and clamp value de35 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_DE35: stx Zp_AB ; PRG $1E35 | CPU $DE35 | 86 AB txa ; PRG $1E37 | CPU $DE37 | 8A asl a ; PRG $1E38 | CPU $DE38 | 0A rol ScratchValue0 ; PRG $1E39 | CPU $DE39 | 26 00 asl a ; PRG $1E3B | CPU $DE3B | 0A rol ScratchValue0 ; PRG $1E3C | CPU $DE3C | 26 00 asl a ; PRG $1E3E | CPU $DE3E | 0A rol ScratchValue0 ; PRG $1E3F | CPU $DE3F | 26 00 asl a ; PRG $1E41 | CPU $DE41 | 0A rol ScratchValue0 ; PRG $1E42 | CPU $DE42 | 26 00 asl a ; PRG $1E44 | CPU $DE44 | 0A rol ScratchValue0 ; PRG $1E45 | CPU $DE45 | 26 00 clc ; PRG $1E47 | CPU $DE47 | 18 adc ScratchValue2 ; PRG $1E48 | CPU $DE48 | 65 02 sta ScratchValue2 ; PRG $1E4A | CPU $DE4A | 85 02 lda ScratchValue0 ; PRG $1E4C | CPU $DE4C | A5 00 adc ScratchIndex ; PRG $1E4E | CPU $DE4E | 65 03 sta ScratchIndex ; PRG $1E50 | CPU $DE50 | 85 03 ldy #$15 ; PRG $1E52 | CPU $DE52 | A0 15 lda Zp_1D ; PRG $1E54 | CPU $DE54 | A5 1D cmp #$10 ; PRG $1E56 | CPU $DE56 | C9 10 bcc CalculateMovementAndClamp_DE60 ; PRG $1E58 | CPU $DE58 | 90 06 cmp #$F0 ; PRG $1E5A | CPU $DE5A | C9 F0 bcs CalculateMovementAndClamp_DE60 ; PRG $1E5C | CPU $DE5C | B0 02 lda #$00 ; PRG $1E5E | CPU $DE5E | A9 00 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value DE60. ; Local behavior: Executes the decoded calculate and clamp value de60 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_DE60: adc Ram_03C1 ; PRG $1E60 | CPU $DE60 | 6D C1 03 sta (ScratchValue2),y ; PRG $1E63 | CPU $DE63 | 91 02 iny ; PRG $1E65 | CPU $DE65 | C8 lda Zp_1E ; PRG $1E66 | CPU $DE66 | A5 1E cmp #$10 ; PRG $1E68 | CPU $DE68 | C9 10 bcc UpdateGameplayStateField_DE72 ; PRG $1E6A | CPU $DE6A | 90 06 cmp #$F0 ; PRG $1E6C | CPU $DE6C | C9 F0 bcs UpdateGameplayStateField_DE72 ; PRG $1E6E | CPU $DE6E | B0 02 lda #$00 ; PRG $1E70 | CPU $DE70 | A9 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field DE72. ; Local behavior: Executes the decoded update gameplay state field de72 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_DE72: adc Ram_03C3 ; PRG $1E72 | CPU $DE72 | 6D C3 03 sta (ScratchValue2),y ; PRG $1E75 | CPU $DE75 | 91 02 rts ; PRG $1E77 | CPU $DE77 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DE78. ; Local behavior: Executes the decoded update side scrolling gameplay de78 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DE78: lda #$80 ; PRG $1E78 | CPU $DE78 | A9 80 sta ScratchValue0 ; PRG $1E7A | CPU $DE7A | 85 00 lda #$06 ; PRG $1E7C | CPU $DE7C | A9 06 sta ScratchValue1 ; PRG $1E7E | CPU $DE7E | 85 01 lda #$04 ; PRG $1E80 | CPU $DE80 | A9 04 sta Zp_0D ; PRG $1E82 | CPU $DE82 | 85 0D ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DE84. ; Local behavior: Executes the decoded update side scrolling gameplay de84 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DE84: jsr TransformFlightState_C47C ; PRG $1E84 | CPU $DE84 | 20 7C C4 clc ; PRG $1E87 | CPU $DE87 | 18 lda #$20 ; PRG $1E88 | CPU $DE88 | A9 20 adc ScratchValue0 ; PRG $1E8A | CPU $DE8A | 65 00 sta ScratchValue0 ; PRG $1E8C | CPU $DE8C | 85 00 lda #$00 ; PRG $1E8E | CPU $DE8E | A9 00 adc ScratchValue1 ; PRG $1E90 | CPU $DE90 | 65 01 sta ScratchValue1 ; PRG $1E92 | CPU $DE92 | 85 01 dec Zp_0D ; PRG $1E94 | CPU $DE94 | C6 0D bne UpdateSideScrollingGameplay_DE84 ; PRG $1E96 | CPU $DE96 | D0 EC rts ; PRG $1E98 | CPU $DE98 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DE99. ; Local behavior: Executes the decoded update side scrolling gameplay de99 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DE99: lda Zp_D7 ; PRG $1E99 | CPU $DE99 | A5 D7 bne UpdateGameplayStateField_DEB2 ; PRG $1E9B | CPU $DE9B | D0 15 lda #$03 ; PRG $1E9D | CPU $DE9D | A9 03 sta Zp_D7 ; PRG $1E9F | CPU $DE9F | 85 D7 lda Ram_0685 ; PRG $1EA1 | CPU $DEA1 | AD 85 06 eor #$01 ; PRG $1EA4 | CPU $DEA4 | 49 01 sta Ram_0685 ; PRG $1EA6 | CPU $DEA6 | 8D 85 06 sta Ram_06A5 ; PRG $1EA9 | CPU $DEA9 | 8D A5 06 sta Ram_06C5 ; PRG $1EAC | CPU $DEAC | 8D C5 06 sta Ram_06E5 ; PRG $1EAF | CPU $DEAF | 8D E5 06 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field DEB2. ; Local behavior: Executes the decoded update gameplay state field deb2 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_DEB2: rts ; PRG $1EB2 | CPU $DEB2 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DEB3. ; Local behavior: Executes the decoded update side scrolling gameplay deb3 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DEB3: lda Zp_D5 ; PRG $1EB3 | CPU $DEB3 | A5 D5 bne UpdateGameplayStateField_DEDE ; PRG $1EB5 | CPU $DEB5 | D0 27 lda #$00 ; PRG $1EB7 | CPU $DEB7 | A9 00 sta ScratchValue0 ; PRG $1EB9 | CPU $DEB9 | 85 00 lda #$04 ; PRG $1EBB | CPU $DEBB | A9 04 sta ScratchValue1 ; PRG $1EBD | CPU $DEBD | 85 01 lda #$C0 ; PRG $1EBF | CPU $DEBF | A9 C0 sta ScratchValue2 ; PRG $1EC1 | CPU $DEC1 | 85 02 lda #$03 ; PRG $1EC3 | CPU $DEC3 | A9 03 sta ScratchIndex ; PRG $1EC5 | CPU $DEC5 | 85 03 ldx #$18 ; PRG $1EC7 | CPU $DEC7 | A2 18 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DEC9. ; Local behavior: Executes the decoded update side scrolling gameplay dec9 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DEC9: jsr CalculateMovementAndClamp_C59C ; PRG $1EC9 | CPU $DEC9 | 20 9C C5 bcs UpdateGameplayStateField_DEDF ; PRG $1ECC | CPU $DECC | B0 11 lda #$20 ; PRG $1ECE | CPU $DECE | A9 20 clc ; PRG $1ED0 | CPU $DED0 | 18 adc ScratchValue0 ; PRG $1ED1 | CPU $DED1 | 65 00 sta ScratchValue0 ; PRG $1ED3 | CPU $DED3 | 85 00 lda #$00 ; PRG $1ED5 | CPU $DED5 | A9 00 adc ScratchValue1 ; PRG $1ED7 | CPU $DED7 | 65 01 sta ScratchValue1 ; PRG $1ED9 | CPU $DED9 | 85 01 dex ; PRG $1EDB | CPU $DEDB | CA bne UpdateSideScrollingGameplay_DEC9 ; PRG $1EDC | CPU $DEDC | D0 EB ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field DEDE. ; Local behavior: Executes the decoded update gameplay state field dede sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_DEDE: rts ; PRG $1EDE | CPU $DEDE | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field DEDF. ; Local behavior: Executes the decoded update gameplay state field dedf sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_DEDF: lda #$FF ; PRG $1EDF | CPU $DEDF | A9 FF sta Zp_D5 ; PRG $1EE1 | CPU $DEE1 | 85 D5 lda #$09 ; PRG $1EE3 | CPU $DEE3 | A9 09 jsr UpdateSideScrollingGameplay_CE5B ; PRG $1EE5 | CPU $DEE5 | 20 5B CE rts ; PRG $1EE8 | CPU $DEE8 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DEE9. ; Local behavior: Executes the decoded update side scrolling gameplay dee9 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DEE9: lda Zp_D5 ; PRG $1EE9 | CPU $DEE9 | A5 D5 beq UpdateGameplayStateField_DF11 ; PRG $1EEB | CPU $DEEB | F0 24 cmp #$E0 ; PRG $1EED | CPU $DEED | C9 E0 bcs UpdateSideScrollingGameplay_DF3C ; PRG $1EEF | CPU $DEEF | B0 4B cmp #$D9 ; PRG $1EF1 | CPU $DEF1 | C9 D9 beq UpdateSideScrollingGameplay_DF12 ; PRG $1EF3 | CPU $DEF3 | F0 1D cmp #$D0 ; PRG $1EF5 | CPU $DEF5 | C9 D0 beq UpdateSideScrollingGameplay_DF17 ; PRG $1EF7 | CPU $DEF7 | F0 1E cmp #$C3 ; PRG $1EF9 | CPU $DEF9 | C9 C3 beq UpdateSideScrollingGameplay_DF17 ; PRG $1EFB | CPU $DEFB | F0 1A cmp #$B0 ; PRG $1EFD | CPU $DEFD | C9 B0 beq UpdateSideScrollingGameplay_DF17 ; PRG $1EFF | CPU $DEFF | F0 16 cmp #$40 ; PRG $1F01 | CPU $DF01 | C9 40 bne UpdateSideScrollingGameplay_DF09 ; PRG $1F03 | CPU $DF03 | D0 04 lda #$01 ; PRG $1F05 | CPU $DF05 | A9 01 sta Zp_36 ; PRG $1F07 | CPU $DF07 | 85 36 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DF09. ; Local behavior: Executes the decoded update side scrolling gameplay df09 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DF09: pla ; PRG $1F09 | CPU $DF09 | 68 pla ; PRG $1F0A | CPU $DF0A | 68 jsr UpdateSideScrollingGameplay_C139 ; PRG $1F0B | CPU $DF0B | 20 39 C1 jmp UpdateSideScrollingGameplay_CB61 ; PRG $1F0E | CPU $DF0E | 4C 61 CB ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field DF11. ; Local behavior: Executes the decoded update gameplay state field df11 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_DF11: rts ; PRG $1F11 | CPU $DF11 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DF12. ; Local behavior: Executes the decoded update side scrolling gameplay df12 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DF12: lda #$F4 ; PRG $1F12 | CPU $DF12 | A9 F4 sta Ram_03C0 ; PRG $1F14 | CPU $DF14 | 8D C0 03 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DF17. ; Local behavior: Executes the decoded update side scrolling gameplay df17 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DF17: lda Ram_03C1 ; PRG $1F17 | CPU $DF17 | AD C1 03 clc ; PRG $1F1A | CPU $DF1A | 18 adc Ram_03CC ; PRG $1F1B | CPU $DF1B | 6D CC 03 sta Zp_A4 ; PRG $1F1E | CPU $DF1E | 85 A4 lda Ram_03C3 ; PRG $1F20 | CPU $DF20 | AD C3 03 clc ; PRG $1F23 | CPU $DF23 | 18 adc Ram_03CD ; PRG $1F24 | CPU $DF24 | 6D CD 03 sta Zp_A5 ; PRG $1F27 | CPU $DF27 | 85 A5 lda #$28 ; PRG $1F29 | CPU $DF29 | A9 28 sta Zp_A3 ; PRG $1F2B | CPU $DF2B | 85 A3 lda #$01 ; PRG $1F2D | CPU $DF2D | A9 01 sta Zp_A7 ; PRG $1F2F | CPU $DF2F | 85 A7 jsr UpdateSideScrollingGameplay_E6D5 ; PRG $1F31 | CPU $DF31 | 20 D5 E6 lda #$0F ; PRG $1F34 | CPU $DF34 | A9 0F jsr UpdateSideScrollingGameplay_CE5B ; PRG $1F36 | CPU $DF36 | 20 5B CE jmp UpdateSideScrollingGameplay_DF09 ; PRG $1F39 | CPU $DF39 | 4C 09 DF ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DF3 C. ; Local behavior: Executes the decoded update side scrolling gameplay df3 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DF3C: lda Ram_03C5 ; PRG $1F3C | CPU $DF3C | AD C5 03 tax ; PRG $1F3F | CPU $DF3F | AA cmp #$08 ; PRG $1F40 | CPU $DF40 | C9 08 bcs UpdateSideScrollingGameplay_DF4F ; PRG $1F42 | CPU $DF42 | B0 0B cmp #$06 ; PRG $1F44 | CPU $DF44 | C9 06 bcs UpdateSideScrollingGameplay_DF53 ; PRG $1F46 | CPU $DF46 | B0 0B cmp #$03 ; PRG $1F48 | CPU $DF48 | C9 03 lda #$01 ; PRG $1F4A | CPU $DF4A | A9 01 sta Ram_03C9 ; PRG $1F4C | CPU $DF4C | 8D C9 03 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DF4 F. ; Local behavior: Executes the decoded update side scrolling gameplay df4 f sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DF4F: ldx #$08 ; PRG $1F4F | CPU $DF4F | A2 08 bcs UpdateSideScrollingGameplay_DF55 ; PRG $1F51 | CPU $DF51 | B0 02 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DF53. ; Local behavior: Executes the decoded update side scrolling gameplay df53 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DF53: ldx #$06 ; PRG $1F53 | CPU $DF53 | A2 06 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DF55. ; Local behavior: Executes the decoded update side scrolling gameplay df55 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DF55: ldy #$25 ; PRG $1F55 | CPU $DF55 | A0 25 lda Zp_D5 ; PRG $1F57 | CPU $DF57 | A5 D5 and #$02 ; PRG $1F59 | CPU $DF59 | 29 02 beq UpdateSideScrollingGameplay_DF60 ; PRG $1F5B | CPU $DF5B | F0 03 ldy #$0F ; PRG $1F5D | CPU $DF5D | A0 0F inx ; PRG $1F5F | CPU $DF5F | E8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DF60. ; Local behavior: Executes the decoded update side scrolling gameplay df60 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DF60: stx Ram_03C5 ; PRG $1F60 | CPU $DF60 | 8E C5 03 jsr UpdateGameplayStateField_D6EA ; PRG $1F63 | CPU $DF63 | 20 EA D6 jsr UpdateSideScrollingGameplay_E6D5 ; PRG $1F66 | CPU $DF66 | 20 D5 E6 lda #$F4 ; PRG $1F69 | CPU $DF69 | A9 F4 sta Ram_03E0 ; PRG $1F6B | CPU $DF6B | 8D E0 03 sta Ram_03F0 ; PRG $1F6E | CPU $DF6E | 8D F0 03 jsr UpdateSideScrollingGameplay_E6E1 ; PRG $1F71 | CPU $DF71 | 20 E1 E6 jmp UpdateSideScrollingGameplay_DF09 ; PRG $1F74 | CPU $DF74 | 4C 09 DF ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DF77. ; Local behavior: Executes the decoded update side scrolling gameplay df77 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DF77: lda Zp_D4 ; PRG $1F77 | CPU $DF77 | A5 D4 bne UpdateGameplayStateField_DFC7 ; PRG $1F79 | CPU $DF79 | D0 4C lda #$03 ; PRG $1F7B | CPU $DF7B | A9 03 sta Zp_D4 ; PRG $1F7D | CPU $DF7D | 85 D4 inc Zp_AA ; PRG $1F7F | CPU $DF7F | E6 AA lda #$00 ; PRG $1F81 | CPU $DF81 | A9 00 sta ScratchValue0 ; PRG $1F83 | CPU $DF83 | 85 00 lda #$04 ; PRG $1F85 | CPU $DF85 | A9 04 sta ScratchValue1 ; PRG $1F87 | CPU $DF87 | 85 01 lda #$0A ; PRG $1F89 | CPU $DF89 | A9 0A sta ScratchValue2 ; PRG $1F8B | CPU $DF8B | 85 02 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DF8 D. ; Local behavior: Executes the decoded update side scrolling gameplay df8 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DF8D: ldy #$00 ; PRG $1F8D | CPU $DF8D | A0 00 lda (ScratchValue0),y ; PRG $1F8F | CPU $DF8F | B1 00 cmp #$F4 ; PRG $1F91 | CPU $DF91 | C9 F4 beq UpdateSideScrollingGameplay_DFB6 ; PRG $1F93 | CPU $DF93 | F0 21 lda Zp_AA ; PRG $1F95 | CPU $DF95 | A5 AA and #$03 ; PRG $1F97 | CPU $DF97 | 29 03 ldy #$05 ; PRG $1F99 | CPU $DF99 | A0 05 sta (ScratchValue0),y ; PRG $1F9B | CPU $DF9B | 91 00 ldy #$10 ; PRG $1F9D | CPU $DF9D | A0 10 lda (ScratchValue0),y ; PRG $1F9F | CPU $DF9F | B1 00 cmp #$03 ; PRG $1FA1 | CPU $DFA1 | C9 03 lda #$BC ; PRG $1FA3 | CPU $DFA3 | A9 BC ldx #$03 ; PRG $1FA5 | CPU $DFA5 | A2 03 bcs UpdateSideScrollingGameplay_DFAD ; PRG $1FA7 | CPU $DFA7 | B0 04 lda #$A0 ; PRG $1FA9 | CPU $DFA9 | A9 A0 ldx #$02 ; PRG $1FAB | CPU $DFAB | A2 02 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DFAD. ; Local behavior: Executes the decoded update side scrolling gameplay dfad sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DFAD: ldy #$07 ; PRG $1FAD | CPU $DFAD | A0 07 sta (ScratchValue0),y ; PRG $1FAF | CPU $DFAF | 91 00 txa ; PRG $1FB1 | CPU $DFB1 | 8A ldy #$09 ; PRG $1FB2 | CPU $DFB2 | A0 09 sta (ScratchValue0),y ; PRG $1FB4 | CPU $DFB4 | 91 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DFB6. ; Local behavior: Executes the decoded update side scrolling gameplay dfb6 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DFB6: clc ; PRG $1FB6 | CPU $DFB6 | 18 lda #$20 ; PRG $1FB7 | CPU $DFB7 | A9 20 adc ScratchValue0 ; PRG $1FB9 | CPU $DFB9 | 65 00 sta ScratchValue0 ; PRG $1FBB | CPU $DFBB | 85 00 lda #$00 ; PRG $1FBD | CPU $DFBD | A9 00 adc ScratchValue1 ; PRG $1FBF | CPU $DFBF | 65 01 sta ScratchValue1 ; PRG $1FC1 | CPU $DFC1 | 85 01 dec ScratchValue2 ; PRG $1FC3 | CPU $DFC3 | C6 02 bne UpdateSideScrollingGameplay_DF8D ; PRG $1FC5 | CPU $DFC5 | D0 C6 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field DFC7. ; Local behavior: Executes the decoded update gameplay state field dfc7 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_DFC7: rts ; PRG $1FC7 | CPU $DFC7 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value DFC8. ; Local behavior: Executes the decoded calculate and clamp value dfc8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_DFC8: lda Ram_0660 ; PRG $1FC8 | CPU $DFC8 | AD 60 06 cmp #$F4 ; PRG $1FCB | CPU $DFCB | C9 F4 beq UpdateGameplayStateField_DFFC ; PRG $1FCD | CPU $DFCD | F0 2D lda Ram_0661 ; PRG $1FCF | CPU $DFCF | AD 61 06 cmp #$D0 ; PRG $1FD2 | CPU $DFD2 | C9 D0 bcs UpdateGameplayStateField_E023 ; PRG $1FD4 | CPU $DFD4 | B0 4D lda #$C0 ; PRG $1FD6 | CPU $DFD6 | A9 C0 sta ScratchValue0 ; PRG $1FD8 | CPU $DFD8 | 85 00 lda #$03 ; PRG $1FDA | CPU $DFDA | A9 03 sta ScratchValue1 ; PRG $1FDC | CPU $DFDC | 85 01 lda #$60 ; PRG $1FDE | CPU $DFDE | A9 60 sta ScratchValue2 ; PRG $1FE0 | CPU $DFE0 | 85 02 lda #$06 ; PRG $1FE2 | CPU $DFE2 | A9 06 sta ScratchIndex ; PRG $1FE4 | CPU $DFE4 | 85 03 jsr CalculateMovementAndClamp_C59C ; PRG $1FE6 | CPU $DFE6 | 20 9C C5 bcs UpdateSideScrollingGameplay_DFFD ; PRG $1FE9 | CPU $DFE9 | B0 12 clc ; PRG $1FEB | CPU $DFEB | 18 lda #$02 ; PRG $1FEC | CPU $DFEC | A9 02 adc Ram_0672 ; PRG $1FEE | CPU $DFEE | 6D 72 06 sta Ram_0672 ; PRG $1FF1 | CPU $DFF1 | 8D 72 06 lda #$00 ; PRG $1FF4 | CPU $DFF4 | A9 00 adc Ram_0671 ; PRG $1FF6 | CPU $DFF6 | 6D 71 06 sta Ram_0671 ; PRG $1FF9 | CPU $DFF9 | 8D 71 06 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field DFFC. ; Local behavior: Executes the decoded update gameplay state field dffc sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_DFFC: rts ; PRG $1FFC | CPU $DFFC | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay DFFD. ; Local behavior: Executes the decoded update side scrolling gameplay dffd sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_DFFD: lda #$05 ; PRG $1FFD | CPU $DFFD | A9 05 ldx Zp_1D ; PRG $1FFF | CPU $DFFF | A6 1D bmi UpdateSideScrollingGameplay_E005 ; PRG $2001 | CPU $E001 | 30 02 lda #$06 ; PRG $2003 | CPU $E003 | A9 06 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E005. ; Local behavior: Executes the decoded update side scrolling gameplay e005 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E005: sta Zp_A6 ; PRG $2005 | CPU $E005 | 85 A6 sec ; PRG $2007 | CPU $E007 | 38 sbc #$01 ; PRG $2008 | CPU $E008 | E9 01 jsr UpdateSideScrollingGameplay_CE91 ; PRG $200A | CPU $E00A | 20 91 CE lda #$00 ; PRG $200D | CPU $E00D | A9 00 sta Zp_A3 ; PRG $200F | CPU $E00F | 85 A3 lda Ram_0661 ; PRG $2011 | CPU $E011 | AD 61 06 sec ; PRG $2014 | CPU $E014 | 38 sbc #$04 ; PRG $2015 | CPU $E015 | E9 04 sta Zp_A4 ; PRG $2017 | CPU $E017 | 85 A4 lda #$08 ; PRG $2019 | CPU $E019 | A9 08 jsr UpdateSideScrollingGameplay_CE5B ; PRG $201B | CPU $E01B | 20 5B CE lda Ram_0663 ; PRG $201E | CPU $E01E | AD 63 06 sta Zp_A5 ; PRG $2021 | CPU $E021 | 85 A5 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field E023. ; Local behavior: Executes the decoded update gameplay state field e023 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_E023: lda #$F4 ; PRG $2023 | CPU $E023 | A9 F4 sta Ram_0660 ; PRG $2025 | CPU $E025 | 8D 60 06 rts ; PRG $2028 | CPU $E028 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E029. ; Local behavior: Executes the decoded update side scrolling gameplay e029 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E029: lda #$60 ; PRG $2029 | CPU $E029 | A9 60 sta ScratchValue0 ; PRG $202B | CPU $E02B | 85 00 lda #$06 ; PRG $202D | CPU $E02D | A9 06 sta ScratchValue1 ; PRG $202F | CPU $E02F | 85 01 jmp TransformFlightState_C47C ; PRG $2031 | CPU $E031 | 4C 7C C4 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E034. ; Local behavior: Executes the decoded update side scrolling gameplay e034 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E034: lda #$20 ; PRG $2034 | CPU $E034 | A9 20 clc ; PRG $2036 | CPU $E036 | 18 adc ScratchValue0 ; PRG $2037 | CPU $E037 | 65 00 sta ScratchValue0 ; PRG $2039 | CPU $E039 | 85 00 lda #$00 ; PRG $203B | CPU $E03B | A9 00 adc ScratchValue1 ; PRG $203D | CPU $E03D | 65 01 sta ScratchValue1 ; PRG $203F | CPU $E03F | 85 01 dec ScratchValue2 ; PRG $2041 | CPU $E041 | C6 02 bne UpdateSideScrollingGameplay_E059 ; PRG $2043 | CPU $E043 | D0 14 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field E045. ; Local behavior: Executes the decoded update gameplay state field e045 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_E045: rts ; PRG $2045 | CPU $E045 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E046. ; Local behavior: Executes the decoded update side scrolling gameplay e046 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E046: lda #$00 ; PRG $2046 | CPU $E046 | A9 00 sta ScratchValue0 ; PRG $2048 | CPU $E048 | 85 00 lda #$04 ; PRG $204A | CPU $E04A | A9 04 sta ScratchValue1 ; PRG $204C | CPU $E04C | 85 01 lda #$0A ; PRG $204E | CPU $E04E | A9 0A sta ScratchValue2 ; PRG $2050 | CPU $E050 | 85 02 lda Ram_0660 ; PRG $2052 | CPU $E052 | AD 60 06 cmp #$F4 ; PRG $2055 | CPU $E055 | C9 F4 bne UpdateGameplayStateField_E045 ; PRG $2057 | CPU $E057 | D0 EC ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E059. ; Local behavior: Executes the decoded update side scrolling gameplay e059 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E059: ldy #$10 ; PRG $2059 | CPU $E059 | A0 10 lda (ScratchValue0),y ; PRG $205B | CPU $E05B | B1 00 cmp #$01 ; PRG $205D | CPU $E05D | C9 01 bne UpdateSideScrollingGameplay_E034 ; PRG $205F | CPU $E05F | D0 D3 ldy #$01 ; PRG $2061 | CPU $E061 | A0 01 lda (ScratchValue0),y ; PRG $2063 | CPU $E063 | B1 00 cmp #$C0 ; PRG $2065 | CPU $E065 | C9 C0 bcc UpdateSideScrollingGameplay_E034 ; PRG $2067 | CPU $E067 | 90 CB ldx #$0F ; PRG $2069 | CPU $E069 | A2 0F ldy #$00 ; PRG $206B | CPU $E06B | A0 00 lda (ScratchValue0),y ; PRG $206D | CPU $E06D | B1 00 beq UpdateSideScrollingGameplay_E0A4 ; PRG $206F | CPU $E06F | F0 33 cmp #$F4 ; PRG $2071 | CPU $E071 | C9 F4 beq UpdateSideScrollingGameplay_E034 ; PRG $2073 | CPU $E073 | F0 BF lda Zp_1D ; PRG $2075 | CPU $E075 | A5 1D cmp #$A0 ; PRG $2077 | CPU $E077 | C9 A0 bcc UpdateSideScrollingGameplay_E034 ; PRG $2079 | CPU $E079 | 90 B9 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E07 B. ; Local behavior: Executes the decoded update side scrolling gameplay e07 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E07B: sec ; PRG $207B | CPU $E07B | 38 lda Ram_03B0,x ; PRG $207C | CPU $E07C | BD B0 03 sbc VerticalScroll ; PRG $207F | CPU $E07F | E5 13 dex ; PRG $2081 | CPU $E081 | CA php ; PRG $2082 | CPU $E082 | 08 lda Ram_03B0,x ; PRG $2083 | CPU $E083 | BD B0 03 bne UpdateSideScrollingGameplay_E08F ; PRG $2086 | CPU $E086 | D0 07 ldy HorizontalScroll ; PRG $2088 | CPU $E088 | A4 12 beq UpdateSideScrollingGameplay_E08F ; PRG $208A | CPU $E08A | F0 03 clc ; PRG $208C | CPU $E08C | 18 adc #$02 ; PRG $208D | CPU $E08D | 69 02 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E08 F. ; Local behavior: Executes the decoded update side scrolling gameplay e08 f sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E08F: plp ; PRG $208F | CPU $E08F | 28 sbc HorizontalScroll ; PRG $2090 | CPU $E090 | E5 12 bcs UpdateSideScrollingGameplay_E099 ; PRG $2092 | CPU $E092 | B0 05 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E094. ; Local behavior: Executes the decoded update side scrolling gameplay e094 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E094: bmi UpdateSideScrollingGameplay_E09B ; PRG $2094 | CPU $E094 | 30 05 jmp UpdateSideScrollingGameplay_E0D2 ; PRG $2096 | CPU $E096 | 4C D2 E0 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E099. ; Local behavior: Executes the decoded update side scrolling gameplay e099 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E099: bne UpdateSideScrollingGameplay_E094 ; PRG $2099 | CPU $E099 | D0 F9 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E09 B. ; Local behavior: Executes the decoded update side scrolling gameplay e09 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E09B: dex ; PRG $209B | CPU $E09B | CA bpl UpdateSideScrollingGameplay_E07B ; PRG $209C | CPU $E09C | 10 DD jmp UpdateSideScrollingGameplay_E034 ; PRG $209E | CPU $E09E | 4C 34 E0 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E0 A1. ; Local behavior: Executes the decoded update side scrolling gameplay e0 a1 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E0A1: dex ; PRG $20A1 | CPU $E0A1 | CA bmi UpdateSideScrollingGameplay_E034 ; PRG $20A2 | CPU $E0A2 | 30 90 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E0 A4. ; Local behavior: Executes the decoded update side scrolling gameplay e0 a4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E0A4: lda Ram_03B0,x ; PRG $20A4 | CPU $E0A4 | BD B0 03 sbc VerticalScroll ; PRG $20A7 | CPU $E0A7 | E5 13 sta ScratchIndex ; PRG $20A9 | CPU $E0A9 | 85 03 dex ; PRG $20AB | CPU $E0AB | CA php ; PRG $20AC | CPU $E0AC | 08 lda Ram_03B0,x ; PRG $20AD | CPU $E0AD | BD B0 03 bne CalculateMovementAndClamp_E0B9 ; PRG $20B0 | CPU $E0B0 | D0 07 ldy HorizontalScroll ; PRG $20B2 | CPU $E0B2 | A4 12 beq CalculateMovementAndClamp_E0B9 ; PRG $20B4 | CPU $E0B4 | F0 03 clc ; PRG $20B6 | CPU $E0B6 | 18 adc #$02 ; PRG $20B7 | CPU $E0B7 | 69 02 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value E0 B9. ; Local behavior: Executes the decoded calculate and clamp value e0 b9 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_E0B9: plp ; PRG $20B9 | CPU $E0B9 | 28 sbc HorizontalScroll ; PRG $20BA | CPU $E0BA | E5 12 bcc UpdateSideScrollingGameplay_E0A1 ; PRG $20BC | CPU $E0BC | 90 E3 bne UpdateSideScrollingGameplay_E0A1 ; PRG $20BE | CPU $E0BE | D0 E1 ldy #$03 ; PRG $20C0 | CPU $E0C0 | A0 03 lda (ScratchValue0),y ; PRG $20C2 | CPU $E0C2 | B1 00 clc ; PRG $20C4 | CPU $E0C4 | 18 adc #$02 ; PRG $20C5 | CPU $E0C5 | 69 02 cmp ScratchIndex ; PRG $20C7 | CPU $E0C7 | C5 03 bcs UpdateSideScrollingGameplay_E0A1 ; PRG $20C9 | CPU $E0C9 | B0 D6 clc ; PRG $20CB | CPU $E0CB | 18 adc #$04 ; PRG $20CC | CPU $E0CC | 69 04 cmp ScratchIndex ; PRG $20CE | CPU $E0CE | C5 03 bcc UpdateSideScrollingGameplay_E0A1 ; PRG $20D0 | CPU $E0D0 | 90 CF ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E0 D2. ; Local behavior: Executes the decoded update side scrolling gameplay e0 d2 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E0D2: ldy #$03 ; PRG $20D2 | CPU $E0D2 | A0 03 lda (ScratchValue0),y ; PRG $20D4 | CPU $E0D4 | B1 00 cmp #$10 ; PRG $20D6 | CPU $E0D6 | C9 10 bcc UpdateGameplayStateField_E13F ; PRG $20D8 | CPU $E0D8 | 90 65 cmp #$F0 ; PRG $20DA | CPU $E0DA | C9 F0 bcs UpdateGameplayStateField_E13F ; PRG $20DC | CPU $E0DC | B0 61 ldy #$04 ; PRG $20DE | CPU $E0DE | A0 04 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State E0 E0. ; Local behavior: Executes the decoded transform flight state e0 e0 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_E0E0: lda (ScratchValue0),y ; PRG $20E0 | CPU $E0E0 | B1 00 sta Ram_0660,y ; PRG $20E2 | CPU $E0E2 | 99 60 06 dey ; PRG $20E5 | CPU $E0E5 | 88 bpl TransformFlightState_E0E0 ; PRG $20E6 | CPU $E0E6 | 10 F8 ldy #$03 ; PRG $20E8 | CPU $E0E8 | A0 03 lda #$04 ; PRG $20EA | CPU $E0EA | A9 04 clc ; PRG $20EC | CPU $E0EC | 18 adc Ram_0660,y ; PRG $20ED | CPU $E0ED | 79 60 06 sta Ram_0660,y ; PRG $20F0 | CPU $E0F0 | 99 60 06 ldy #$01 ; PRG $20F3 | CPU $E0F3 | A0 01 lda #$08 ; PRG $20F5 | CPU $E0F5 | A9 08 clc ; PRG $20F7 | CPU $E0F7 | 18 adc Ram_0660,y ; PRG $20F8 | CPU $E0F8 | 79 60 06 sta Ram_0660,y ; PRG $20FB | CPU $E0FB | 99 60 06 ldy #$10 ; PRG $20FE | CPU $E0FE | A0 10 lda #$02 ; PRG $2100 | CPU $E100 | A9 02 sta (ScratchValue0),y ; PRG $2102 | CPU $E102 | 91 00 iny ; PRG $2104 | CPU $E104 | C8 lda #$FF ; PRG $2105 | CPU $E105 | A9 FF sta (ScratchValue0),y ; PRG $2107 | CPU $E107 | 91 00 iny ; PRG $2109 | CPU $E109 | C8 lda #$80 ; PRG $210A | CPU $E10A | A9 80 sta (ScratchValue0),y ; PRG $210C | CPU $E10C | 91 00 iny ; PRG $210E | CPU $E10E | C8 lda #$00 ; PRG $210F | CPU $E10F | A9 00 sta (ScratchValue0),y ; PRG $2111 | CPU $E111 | 91 00 iny ; PRG $2113 | CPU $E113 | C8 sta (ScratchValue0),y ; PRG $2114 | CPU $E114 | 91 00 lda #$F4 ; PRG $2116 | CPU $E116 | A9 F4 sta Ram_03B0,x ; PRG $2118 | CPU $E118 | 9D B0 03 txa ; PRG $211B | CPU $E11B | 8A asl a ; PRG $211C | CPU $E11C | 0A tay ; PRG $211D | CPU $E11D | A8 lda GameplayConstantData_C690 ; PRG $211E | CPU $E11E | AD 90 C6 sta ScratchIndex ; PRG $2121 | CPU $E121 | 85 03 lda GameplayConstantData_C68F ; PRG $2123 | CPU $E123 | AD 8F C6 sta ScratchValue2 ; PRG $2126 | CPU $E126 | 85 02 lda (ScratchValue2),y ; PRG $2128 | CPU $E128 | B1 02 sta ScratchValue1 ; PRG $212A | CPU $E12A | 85 01 iny ; PRG $212C | CPU $E12C | C8 lda (ScratchValue2),y ; PRG $212D | CPU $E12D | B1 02 sta ScratchValue0 ; PRG $212F | CPU $E12F | 85 00 ldy #$24 ; PRG $2131 | CPU $E131 | A0 24 jsr UpdateSideScrollingGameplay_C3E2 ; PRG $2133 | CPU $E133 | 20 E2 C3 ldx Zp_32 ; PRG $2136 | CPU $E136 | A6 32 dec Zp_5C,x ; PRG $2138 | CPU $E138 | D6 5C lda #$04 ; PRG $213A | CPU $E13A | A9 04 jsr UpdateSideScrollingGameplay_CE5B ; PRG $213C | CPU $E13C | 20 5B CE ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field E13 F. ; Local behavior: Executes the decoded update gameplay state field e13 f sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_E13F: rts ; PRG $213F | CPU $E13F | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E140. ; Local behavior: Executes the decoded update side scrolling gameplay e140 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E140: ldx Zp_32 ; PRG $2140 | CPU $E140 | A6 32 lda Zp_58,x ; PRG $2142 | CPU $E142 | B5 58 bcs TransformFlightState_E149 ; PRG $2144 | CPU $E144 | B0 03 clc ; PRG $2146 | CPU $E146 | 18 adc #$04 ; PRG $2147 | CPU $E147 | 69 04 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State E149. ; Local behavior: Executes the decoded transform flight state e149 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_E149: asl a ; PRG $2149 | CPU $E149 | 0A tax ; PRG $214A | CPU $E14A | AA rts ; PRG $214B | CPU $E14B | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E14 C. ; Local behavior: Executes the decoded update side scrolling gameplay e14 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E14C: ldy #$16 ; PRG $214C | CPU $E14C | A0 16 lda (ScratchValue0),y ; PRG $214E | CPU $E14E | B1 00 clc ; PRG $2150 | CPU $E150 | 18 adc #$01 ; PRG $2151 | CPU $E151 | 69 01 sta (ScratchValue0),y ; PRG $2153 | CPU $E153 | 91 00 rts ; PRG $2155 | CPU $E155 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E156. ; Local behavior: Executes the decoded update side scrolling gameplay e156 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E156: lda Zp_1D ; PRG $2156 | CPU $E156 | A5 1D and #$03 ; PRG $2158 | CPU $E158 | 29 03 beq UpdateSideScrollingGameplay_E177 ; PRG $215A | CPU $E15A | F0 1B bne UpdateSideScrollingGameplay_E1BF ; PRG $215C | CPU $E15C | D0 61 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E15 E. ; Local behavior: Executes the decoded update side scrolling gameplay e15 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E15E: lda #$01 ; PRG $215E | CPU $E15E | A9 01 ldx #$80 ; PRG $2160 | CPU $E160 | A2 80 jmp UpdateSideScrollingGameplay_E1FB ; PRG $2162 | CPU $E162 | 4C FB E1 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value E165. ; Local behavior: Executes the decoded calculate and clamp value e165 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_E165: sty Zp_A9 ; PRG $2165 | CPU $E165 | 84 A9 lda Ram_03C3 ; PRG $2167 | CPU $E167 | AD C3 03 ldy #$03 ; PRG $216A | CPU $E16A | A0 03 cmp (ScratchValue0),y ; PRG $216C | CPU $E16C | D1 00 bcs UpdateSideScrollingGameplay_E156 ; PRG $216E | CPU $E16E | B0 E6 clc ; PRG $2170 | CPU $E170 | 18 adc #$0A ; PRG $2171 | CPU $E171 | 69 0A cmp (ScratchValue0),y ; PRG $2173 | CPU $E173 | D1 00 bcc UpdateSideScrollingGameplay_E156 ; PRG $2175 | CPU $E175 | 90 DF ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E177. ; Local behavior: Executes the decoded update side scrolling gameplay e177 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E177: lda Ram_03C1 ; PRG $2177 | CPU $E177 | AD C1 03 ldy #$01 ; PRG $217A | CPU $E17A | A0 01 cmp (ScratchValue0),y ; PRG $217C | CPU $E17C | D1 00 jsr UpdateSideScrollingGameplay_E140 ; PRG $217E | CPU $E17E | 20 40 E1 ldy #$11 ; PRG $2181 | CPU $E181 | A0 11 lda GameplayLookupTable_C8DB,x ; PRG $2183 | CPU $E183 | BD DB C8 sta (ScratchValue0),y ; PRG $2186 | CPU $E186 | 91 00 iny ; PRG $2188 | CPU $E188 | C8 inx ; PRG $2189 | CPU $E189 | E8 lda GameplayLookupTable_C8DB,x ; PRG $218A | CPU $E18A | BD DB C8 sta (ScratchValue0),y ; PRG $218D | CPU $E18D | 91 00 ldy ScratchValue2 ; PRG $218F | CPU $E18F | A4 02 lda Zp_1D,y ; PRG $2191 | CPU $E191 | B9 1D 00 cmp #$40 ; PRG $2194 | CPU $E194 | C9 40 bcc UpdateSideScrollingGameplay_E19B ; PRG $2196 | CPU $E196 | 90 03 jsr UpdateSideScrollingGameplay_E14C ; PRG $2198 | CPU $E198 | 20 4C E1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E19 B. ; Local behavior: Executes the decoded update side scrolling gameplay e19 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E19B: ldy #$13 ; PRG $219B | CPU $E19B | A0 13 and #$02 ; PRG $219D | CPU $E19D | 29 02 beq UpdateSideScrollingGameplay_E15E ; PRG $219F | CPU $E19F | F0 BD lda #$FE ; PRG $21A1 | CPU $E1A1 | A9 FE ldx #$80 ; PRG $21A3 | CPU $E1A3 | A2 80 jmp UpdateSideScrollingGameplay_E1FB ; PRG $21A5 | CPU $E1A5 | 4C FB E1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E1 A8. ; Local behavior: Executes the decoded update side scrolling gameplay e1 a8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E1A8: lda (ScratchValue0),y ; PRG $21A8 | CPU $E1A8 | B1 00 cmp #$30 ; PRG $21AA | CPU $E1AA | C9 30 bcc UpdateSideScrollingGameplay_E1F5 ; PRG $21AC | CPU $E1AC | 90 47 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E1 AE. ; Local behavior: Executes the decoded update side scrolling gameplay e1 ae sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E1AE: ldy #$11 ; PRG $21AE | CPU $E1AE | A0 11 lda #$FF ; PRG $21B0 | CPU $E1B0 | A9 FF ldx #$00 ; PRG $21B2 | CPU $E1B2 | A2 00 jmp UpdateSideScrollingGameplay_E1FB ; PRG $21B4 | CPU $E1B4 | 4C FB E1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E1 B7. ; Local behavior: Executes the decoded update side scrolling gameplay e1 b7 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E1B7: ldy #$00 ; PRG $21B7 | CPU $E1B7 | A0 00 lda (ScratchValue0),y ; PRG $21B9 | CPU $E1B9 | B1 00 beq CalculateMovementAndClamp_E165 ; PRG $21BB | CPU $E1BB | F0 A8 cmp #$03 ; PRG $21BD | CPU $E1BD | C9 03 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E1 BF. ; Local behavior: Executes the decoded update side scrolling gameplay e1 bf sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E1BF: jsr UpdateSideScrollingGameplay_E140 ; PRG $21BF | CPU $E1BF | 20 40 E1 ldy #$13 ; PRG $21C2 | CPU $E1C2 | A0 13 lda GameplayLookupTable_C8CB,x ; PRG $21C4 | CPU $E1C4 | BD CB C8 sta (ScratchValue0),y ; PRG $21C7 | CPU $E1C7 | 91 00 iny ; PRG $21C9 | CPU $E1C9 | C8 inx ; PRG $21CA | CPU $E1CA | E8 lda GameplayLookupTable_C8CB,x ; PRG $21CB | CPU $E1CB | BD CB C8 sta (ScratchValue0),y ; PRG $21CE | CPU $E1CE | 91 00 lda Zp_A9 ; PRG $21D0 | CPU $E1D0 | A5 A9 beq UpdateSideScrollingGameplay_E1DD ; PRG $21D2 | CPU $E1D2 | F0 09 ldy #$13 ; PRG $21D4 | CPU $E1D4 | A0 13 lda #$00 ; PRG $21D6 | CPU $E1D6 | A9 00 ldx #$00 ; PRG $21D8 | CPU $E1D8 | A2 00 jsr UpdateSideScrollingGameplay_E1FB ; PRG $21DA | CPU $E1DA | 20 FB E1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E1 DD. ; Local behavior: Executes the decoded update side scrolling gameplay e1 dd sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E1DD: ldy ScratchValue2 ; PRG $21DD | CPU $E1DD | A4 02 lda Zp_1D,y ; PRG $21DF | CPU $E1DF | B9 1D 00 cmp #$20 ; PRG $21E2 | CPU $E1E2 | C9 20 bcc UpdateSideScrollingGameplay_E1E9 ; PRG $21E4 | CPU $E1E4 | 90 03 jsr UpdateSideScrollingGameplay_E14C ; PRG $21E6 | CPU $E1E6 | 20 4C E1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E1 E9. ; Local behavior: Executes the decoded update side scrolling gameplay e1 e9 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E1E9: ldy #$01 ; PRG $21E9 | CPU $E1E9 | A0 01 and #$02 ; PRG $21EB | CPU $E1EB | 29 02 beq UpdateSideScrollingGameplay_E1A8 ; PRG $21ED | CPU $E1ED | F0 B9 lda (ScratchValue0),y ; PRG $21EF | CPU $E1EF | B1 00 cmp #$C8 ; PRG $21F1 | CPU $E1F1 | C9 C8 bcs UpdateSideScrollingGameplay_E1AE ; PRG $21F3 | CPU $E1F3 | B0 B9 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E1 F5. ; Local behavior: Executes the decoded update side scrolling gameplay e1 f5 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E1F5: ldy #$11 ; PRG $21F5 | CPU $E1F5 | A0 11 lda #$01 ; PRG $21F7 | CPU $E1F7 | A9 01 ldx #$00 ; PRG $21F9 | CPU $E1F9 | A2 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E1 FB. ; Local behavior: Executes the decoded update side scrolling gameplay e1 fb sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E1FB: sta (ScratchValue0),y ; PRG $21FB | CPU $E1FB | 91 00 iny ; PRG $21FD | CPU $E1FD | C8 txa ; PRG $21FE | CPU $E1FE | 8A sta (ScratchValue0),y ; PRG $21FF | CPU $E1FF | 91 00 jmp UpdateSideScrollingGameplay_E2ED ; PRG $2201 | CPU $E201 | 4C ED E2 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E204. ; Local behavior: Executes the decoded update side scrolling gameplay e204 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E204: jmp UpdateSideScrollingGameplay_E294 ; PRG $2204 | CPU $E204 | 4C 94 E2 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E207. ; Local behavior: Executes the decoded update side scrolling gameplay e207 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E207: cmp #$01 ; PRG $2207 | CPU $E207 | C9 01 beq UpdateSideScrollingGameplay_E204 ; PRG $2209 | CPU $E209 | F0 F9 cmp #$02 ; PRG $220B | CPU $E20B | C9 02 bne UpdateSideScrollingGameplay_E1B7 ; PRG $220D | CPU $E20D | D0 A8 ldy #$14 ; PRG $220F | CPU $E20F | A0 14 ldx #$04 ; PRG $2211 | CPU $E211 | A2 04 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E213. ; Local behavior: Executes the decoded update side scrolling gameplay e213 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E213: lda (ScratchValue0),y ; PRG $2213 | CPU $E213 | B1 00 sta Ram_0660,y ; PRG $2215 | CPU $E215 | 99 60 06 dey ; PRG $2218 | CPU $E218 | 88 dex ; PRG $2219 | CPU $E219 | CA bne UpdateSideScrollingGameplay_E213 ; PRG $221A | CPU $E21A | D0 F7 lda Ram_0660 ; PRG $221C | CPU $E21C | AD 60 06 cmp #$F4 ; PRG $221F | CPU $E21F | C9 F4 lda #$00 ; PRG $2221 | CPU $E221 | A9 00 bcs UpdateSideScrollingGameplay_E239 ; PRG $2223 | CPU $E223 | B0 14 ldy #$01 ; PRG $2225 | CPU $E225 | A0 01 lda (ScratchValue0),y ; PRG $2227 | CPU $E227 | B1 00 cmp #$34 ; PRG $2229 | CPU $E229 | C9 34 bcs UpdateSideScrollingGameplay_E23D ; PRG $222B | CPU $E22B | B0 10 lda #$F4 ; PRG $222D | CPU $E22D | A9 F4 sta Ram_0660 ; PRG $222F | CPU $E22F | 8D 60 06 lda #$0D ; PRG $2232 | CPU $E232 | A9 0D jsr UpdateSideScrollingGameplay_CE5B ; PRG $2234 | CPU $E234 | 20 5B CE lda #$03 ; PRG $2237 | CPU $E237 | A9 03 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E239. ; Local behavior: Executes the decoded update side scrolling gameplay e239 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E239: ldy #$10 ; PRG $2239 | CPU $E239 | A0 10 sta (ScratchValue0),y ; PRG $223B | CPU $E23B | 91 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E23 D. ; Local behavior: Executes the decoded update side scrolling gameplay e23 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E23D: jmp UpdateSideScrollingGameplay_E2ED ; PRG $223D | CPU $E23D | 4C ED E2 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E240. ; Local behavior: Executes the decoded update side scrolling gameplay e240 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E240: lda #$00 ; PRG $2240 | CPU $E240 | A9 00 sta ScratchValue0 ; PRG $2242 | CPU $E242 | 85 00 lda #$04 ; PRG $2244 | CPU $E244 | A9 04 sta ScratchValue1 ; PRG $2246 | CPU $E246 | 85 01 lda #$0A ; PRG $2248 | CPU $E248 | A9 0A sta ScratchValue2 ; PRG $224A | CPU $E24A | 85 02 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E24 C. ; Local behavior: Executes the decoded update side scrolling gameplay e24 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E24C: ldy #$00 ; PRG $224C | CPU $E24C | A0 00 lda (ScratchValue0),y ; PRG $224E | CPU $E24E | B1 00 cmp #$F4 ; PRG $2250 | CPU $E250 | C9 F4 beq UpdateSideScrollingGameplay_E23D ; PRG $2252 | CPU $E252 | F0 E9 ldy #$10 ; PRG $2254 | CPU $E254 | A0 10 lda (ScratchValue0),y ; PRG $2256 | CPU $E256 | B1 00 bne UpdateSideScrollingGameplay_E207 ; PRG $2258 | CPU $E258 | D0 AD lda #$01 ; PRG $225A | CPU $E25A | A9 01 sta (ScratchValue0),y ; PRG $225C | CPU $E25C | 91 00 ldy ScratchValue2 ; PRG $225E | CPU $E25E | A4 02 lda Zp_1D,y ; PRG $2260 | CPU $E260 | B9 1D 00 ldx #$02 ; PRG $2263 | CPU $E263 | A2 02 and #$01 ; PRG $2265 | CPU $E265 | 29 01 beq UpdateSideScrollingGameplay_E26B ; PRG $2267 | CPU $E267 | F0 02 ldx #$0C ; PRG $2269 | CPU $E269 | A2 0C ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E26 B. ; Local behavior: Executes the decoded update side scrolling gameplay e26 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E26B: lda Zp_1D,y ; PRG $226B | CPU $E26B | B9 1D 00 cmp #$C0 ; PRG $226E | CPU $E26E | C9 C0 bcc UpdateSideScrollingGameplay_E274 ; PRG $2270 | CPU $E270 | 90 02 inx ; PRG $2272 | CPU $E272 | E8 inx ; PRG $2273 | CPU $E273 | E8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E274. ; Local behavior: Executes the decoded update side scrolling gameplay e274 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E274: ldy Zp_32 ; PRG $2274 | CPU $E274 | A4 32 lda Zp_58,y ; PRG $2276 | CPU $E276 | B9 58 00 beq UpdateSideScrollingGameplay_E283 ; PRG $2279 | CPU $E279 | F0 08 inx ; PRG $227B | CPU $E27B | E8 inx ; PRG $227C | CPU $E27C | E8 cmp #$01 ; PRG $227D | CPU $E27D | C9 01 beq UpdateSideScrollingGameplay_E283 ; PRG $227F | CPU $E27F | F0 02 inx ; PRG $2281 | CPU $E281 | E8 inx ; PRG $2282 | CPU $E282 | E8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E283. ; Local behavior: Executes the decoded update side scrolling gameplay e283 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E283: lda GameplayLookupTable_C89F,x ; PRG $2283 | CPU $E283 | BD 9F C8 ldy #$13 ; PRG $2286 | CPU $E286 | A0 13 sta (ScratchValue0),y ; PRG $2288 | CPU $E288 | 91 00 inx ; PRG $228A | CPU $E28A | E8 lda GameplayLookupTable_C89F,x ; PRG $228B | CPU $E28B | BD 9F C8 ldy #$14 ; PRG $228E | CPU $E28E | A0 14 sta (ScratchValue0),y ; PRG $2290 | CPU $E290 | 91 00 lda #$00 ; PRG $2292 | CPU $E292 | A9 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E294. ; Local behavior: Executes the decoded update side scrolling gameplay e294 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E294: ldx #$02 ; PRG $2294 | CPU $E294 | A2 02 ldy #$01 ; PRG $2296 | CPU $E296 | A0 01 lda (ScratchValue0),y ; PRG $2298 | CPU $E298 | B1 00 cmp #$80 ; PRG $229A | CPU $E29A | C9 80 ldy ScratchValue2 ; PRG $229C | CPU $E29C | A4 02 bcc UpdateSideScrollingGameplay_E2BD ; PRG $229E | CPU $E29E | 90 1D cmp #$C8 ; PRG $22A0 | CPU $E2A0 | C9 C8 bcs UpdateSideScrollingGameplay_E2BB ; PRG $22A2 | CPU $E2A2 | B0 17 ldy #$15 ; PRG $22A4 | CPU $E2A4 | A0 15 lda (ScratchValue0),y ; PRG $22A6 | CPU $E2A6 | B1 00 bne UpdateSideScrollingGameplay_E2E6 ; PRG $22A8 | CPU $E2A8 | D0 3C ldy ScratchValue2 ; PRG $22AA | CPU $E2AA | A4 02 lda Zp_1D,y ; PRG $22AC | CPU $E2AC | B9 1D 00 ldx #$00 ; PRG $22AF | CPU $E2AF | A2 00 cmp #$90 ; PRG $22B1 | CPU $E2B1 | C9 90 bcc UpdateSideScrollingGameplay_E2D5 ; PRG $22B3 | CPU $E2B3 | 90 20 ldx #$02 ; PRG $22B5 | CPU $E2B5 | A2 02 and #$01 ; PRG $22B7 | CPU $E2B7 | 29 01 beq UpdateSideScrollingGameplay_E2BD ; PRG $22B9 | CPU $E2B9 | F0 02 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E2 BB. ; Local behavior: Executes the decoded update side scrolling gameplay e2 bb sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E2BB: ldx #$0C ; PRG $22BB | CPU $E2BB | A2 0C ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E2 BD. ; Local behavior: Executes the decoded update side scrolling gameplay e2 bd sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E2BD: lda Zp_1D,y ; PRG $22BD | CPU $E2BD | B9 1D 00 and #$0C ; PRG $22C0 | CPU $E2C0 | 29 0C bne UpdateSideScrollingGameplay_E2C6 ; PRG $22C2 | CPU $E2C2 | D0 02 inx ; PRG $22C4 | CPU $E2C4 | E8 inx ; PRG $22C5 | CPU $E2C5 | E8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E2 C6. ; Local behavior: Executes the decoded update side scrolling gameplay e2 c6 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E2C6: ldy Zp_32 ; PRG $22C6 | CPU $E2C6 | A4 32 lda Zp_58,y ; PRG $22C8 | CPU $E2C8 | B9 58 00 beq UpdateSideScrollingGameplay_E2D5 ; PRG $22CB | CPU $E2CB | F0 08 inx ; PRG $22CD | CPU $E2CD | E8 inx ; PRG $22CE | CPU $E2CE | E8 cmp #$01 ; PRG $22CF | CPU $E2CF | C9 01 beq UpdateSideScrollingGameplay_E2D5 ; PRG $22D1 | CPU $E2D1 | F0 02 inx ; PRG $22D3 | CPU $E2D3 | E8 inx ; PRG $22D4 | CPU $E2D4 | E8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E2 D5. ; Local behavior: Executes the decoded update side scrolling gameplay e2 d5 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E2D5: lda GameplayLookupTable_C8B5,x ; PRG $22D5 | CPU $E2D5 | BD B5 C8 ldy #$11 ; PRG $22D8 | CPU $E2D8 | A0 11 sta (ScratchValue0),y ; PRG $22DA | CPU $E2DA | 91 00 inx ; PRG $22DC | CPU $E2DC | E8 lda GameplayLookupTable_C8B5,x ; PRG $22DD | CPU $E2DD | BD B5 C8 ldy #$12 ; PRG $22E0 | CPU $E2E0 | A0 12 sta (ScratchValue0),y ; PRG $22E2 | CPU $E2E2 | 91 00 lda #$80 ; PRG $22E4 | CPU $E2E4 | A9 80 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E2 E6. ; Local behavior: Executes the decoded update side scrolling gameplay e2 e6 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E2E6: clc ; PRG $22E6 | CPU $E2E6 | 18 ldy #$15 ; PRG $22E7 | CPU $E2E7 | A0 15 adc #$01 ; PRG $22E9 | CPU $E2E9 | 69 01 sta (ScratchValue0),y ; PRG $22EB | CPU $E2EB | 91 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E2 ED. ; Local behavior: Executes the decoded update side scrolling gameplay e2 ed sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E2ED: clc ; PRG $22ED | CPU $E2ED | 18 lda #$20 ; PRG $22EE | CPU $E2EE | A9 20 adc ScratchValue0 ; PRG $22F0 | CPU $E2F0 | 65 00 sta ScratchValue0 ; PRG $22F2 | CPU $E2F2 | 85 00 lda #$00 ; PRG $22F4 | CPU $E2F4 | A9 00 adc ScratchValue1 ; PRG $22F6 | CPU $E2F6 | 65 01 sta ScratchValue1 ; PRG $22F8 | CPU $E2F8 | 85 01 dec ScratchValue2 ; PRG $22FA | CPU $E2FA | C6 02 beq UpdateGameplayStateField_E301 ; PRG $22FC | CPU $E2FC | F0 03 jmp UpdateSideScrollingGameplay_E24C ; PRG $22FE | CPU $E2FE | 4C 4C E2 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field E301. ; Local behavior: Executes the decoded update gameplay state field e301 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_E301: lda #$00 ; PRG $2301 | CPU $E301 | A9 00 sta Zp_A9 ; PRG $2303 | CPU $E303 | 85 A9 rts ; PRG $2305 | CPU $E305 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E306. ; Local behavior: Executes the decoded update side scrolling gameplay e306 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E306: lda #$E0 ; PRG $2306 | CPU $E306 | A9 E0 sta ScratchValue0 ; PRG $2308 | CPU $E308 | 85 00 lda #$03 ; PRG $230A | CPU $E30A | A9 03 sta ScratchValue1 ; PRG $230C | CPU $E30C | 85 01 jsr UpdateSideScrollingGameplay_E31D ; PRG $230E | CPU $E30E | 20 1D E3 lda #$F0 ; PRG $2311 | CPU $E311 | A9 F0 sta ScratchValue0 ; PRG $2313 | CPU $E313 | 85 00 lda #$03 ; PRG $2315 | CPU $E315 | A9 03 sta ScratchValue1 ; PRG $2317 | CPU $E317 | 85 01 jsr UpdateSideScrollingGameplay_E31D ; PRG $2319 | CPU $E319 | 20 1D E3 rts ; PRG $231C | CPU $E31C | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E31 D. ; Local behavior: Executes the decoded update side scrolling gameplay e31 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E31D: lda #$00 ; PRG $231D | CPU $E31D | A9 00 sta ScratchValue2 ; PRG $231F | CPU $E31F | 85 02 lda #$04 ; PRG $2321 | CPU $E321 | A9 04 sta ScratchIndex ; PRG $2323 | CPU $E323 | 85 03 ldx #$18 ; PRG $2325 | CPU $E325 | A2 18 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value E327. ; Local behavior: Executes the decoded calculate and clamp value e327 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_E327: jsr CalculateMovementAndClamp_C59C ; PRG $2327 | CPU $E327 | 20 9C C5 bcc UpdateSideScrollingGameplay_E37A ; PRG $232A | CPU $E32A | 90 4E lda #$F4 ; PRG $232C | CPU $E32C | A9 F4 ldy #$00 ; PRG $232E | CPU $E32E | A0 00 sta (ScratchValue0),y ; PRG $2330 | CPU $E330 | 91 00 sta (ScratchValue2),y ; PRG $2332 | CPU $E332 | 91 02 ldy #$0C ; PRG $2334 | CPU $E334 | A0 0C clc ; PRG $2336 | CPU $E336 | 18 lda (ScratchValue2),y ; PRG $2337 | CPU $E337 | B1 02 ldy #$01 ; PRG $2339 | CPU $E339 | A0 01 adc (ScratchValue2),y ; PRG $233B | CPU $E33B | 71 02 sta Zp_A4 ; PRG $233D | CPU $E33D | 85 A4 ldy #$0D ; PRG $233F | CPU $E33F | A0 0D clc ; PRG $2341 | CPU $E341 | 18 lda (ScratchValue2),y ; PRG $2342 | CPU $E342 | B1 02 ldy #$03 ; PRG $2344 | CPU $E344 | A0 03 adc (ScratchValue2),y ; PRG $2346 | CPU $E346 | 71 02 sta Zp_A5 ; PRG $2348 | CPU $E348 | 85 A5 lda #$00 ; PRG $234A | CPU $E34A | A9 00 sta Zp_A7 ; PRG $234C | CPU $E34C | 85 A7 ldy #$28 ; PRG $234E | CPU $E34E | A0 28 txa ; PRG $2350 | CPU $E350 | 8A cmp #$05 ; PRG $2351 | CPU $E351 | C9 05 beq UpdateSideScrollingGameplay_E39E ; PRG $2353 | CPU $E353 | F0 49 bcc UpdateSideScrollingGameplay_E371 ; PRG $2355 | CPU $E355 | 90 1A iny ; PRG $2357 | CPU $E357 | C8 iny ; PRG $2358 | CPU $E358 | C8 iny ; PRG $2359 | CPU $E359 | C8 iny ; PRG $235A | CPU $E35A | C8 cmp #$0E ; PRG $235B | CPU $E35B | C9 0E beq UpdateSideScrollingGameplay_E39E ; PRG $235D | CPU $E35D | F0 3F dey ; PRG $235F | CPU $E35F | 88 dey ; PRG $2360 | CPU $E360 | 88 bcs UpdateSideScrollingGameplay_E38B ; PRG $2361 | CPU $E361 | B0 28 cmp #$0A ; PRG $2363 | CPU $E363 | C9 0A lda #$02 ; PRG $2365 | CPU $E365 | A9 02 bcs UpdateSideScrollingGameplay_E36C ; PRG $2367 | CPU $E367 | B0 03 lda #$02 ; PRG $2369 | CPU $E369 | A9 02 iny ; PRG $236B | CPU $E36B | C8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E36 C. ; Local behavior: Executes the decoded update side scrolling gameplay e36 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E36C: jsr UpdateSideScrollingGameplay_CE5B ; PRG $236C | CPU $E36C | 20 5B CE sty Zp_A3 ; PRG $236F | CPU $E36F | 84 A3 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E371. ; Local behavior: Executes the decoded update side scrolling gameplay e371 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E371: sec ; PRG $2371 | CPU $E371 | 38 tya ; PRG $2372 | CPU $E372 | 98 sbc #$29 ; PRG $2373 | CPU $E373 | E9 29 bmi UpdateSideScrollingGameplay_E37A ; PRG $2375 | CPU $E375 | 30 03 jsr UpdateSideScrollingGameplay_CE91 ; PRG $2377 | CPU $E377 | 20 91 CE ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E37 A. ; Local behavior: Executes the decoded update side scrolling gameplay e37 a sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E37A: lda #$20 ; PRG $237A | CPU $E37A | A9 20 clc ; PRG $237C | CPU $E37C | 18 adc ScratchValue2 ; PRG $237D | CPU $E37D | 65 02 sta ScratchValue2 ; PRG $237F | CPU $E37F | 85 02 lda #$00 ; PRG $2381 | CPU $E381 | A9 00 adc ScratchIndex ; PRG $2383 | CPU $E383 | 65 03 sta ScratchIndex ; PRG $2385 | CPU $E385 | 85 03 dex ; PRG $2387 | CPU $E387 | CA bne CalculateMovementAndClamp_E327 ; PRG $2388 | CPU $E388 | D0 9D rts ; PRG $238A | CPU $E38A | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E38 B. ; Local behavior: Executes the decoded update side scrolling gameplay e38 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E38B: sty Zp_0F ; PRG $238B | CPU $E38B | 84 0F ldy #$10 ; PRG $238D | CPU $E38D | A0 10 lda (ScratchValue2),y ; PRG $238F | CPU $E38F | B1 02 cmp #$03 ; PRG $2391 | CPU $E391 | C9 03 bne UpdateSideScrollingGameplay_E397 ; PRG $2393 | CPU $E393 | D0 02 inc Zp_0F ; PRG $2395 | CPU $E395 | E6 0F ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E397. ; Local behavior: Executes the decoded update side scrolling gameplay e397 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E397: ldy Zp_0F ; PRG $2397 | CPU $E397 | A4 0F lda #$02 ; PRG $2399 | CPU $E399 | A9 02 jmp UpdateSideScrollingGameplay_E36C ; PRG $239B | CPU $E39B | 4C 6C E3 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E39 E. ; Local behavior: Executes the decoded update side scrolling gameplay e39 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E39E: lda #$02 ; PRG $239E | CPU $E39E | A9 02 jmp UpdateSideScrollingGameplay_E36C ; PRG $23A0 | CPU $E3A0 | 4C 6C E3 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E3 A3. ; Local behavior: Executes the decoded update side scrolling gameplay e3 a3 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E3A3: jsr UpdateSideScrollingGameplay_E5A8 ; PRG $23A3 | CPU $E3A3 | 20 A8 E5 bcs UpdateSideScrollingGameplay_E3E1 ; PRG $23A6 | CPU $E3A6 | B0 39 lda Zp_15 ; PRG $23A8 | CPU $E3A8 | A5 15 beq UpdateSideScrollingGameplay_E3C2 ; PRG $23AA | CPU $E3AA | F0 16 sec ; PRG $23AC | CPU $E3AC | 38 lda #$00 ; PRG $23AD | CPU $E3AD | A9 00 sbc Zp_17 ; PRG $23AF | CPU $E3AF | E5 17 sta ScratchValue2 ; PRG $23B1 | CPU $E3B1 | 85 02 lda #$00 ; PRG $23B3 | CPU $E3B3 | A9 00 sbc Zp_16 ; PRG $23B5 | CPU $E3B5 | E5 16 sta ScratchValue1 ; PRG $23B7 | CPU $E3B7 | 85 01 lda #$00 ; PRG $23B9 | CPU $E3B9 | A9 00 sbc Zp_15 ; PRG $23BB | CPU $E3BB | E5 15 sta ScratchValue0 ; PRG $23BD | CPU $E3BD | 85 00 jmp TransformFlightState_E434 ; PRG $23BF | CPU $E3BF | 4C 34 E4 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E3 C2. ; Local behavior: Executes the decoded update side scrolling gameplay e3 c2 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E3C2: lda Zp_17 ; PRG $23C2 | CPU $E3C2 | A5 17 sta ScratchValue2 ; PRG $23C4 | CPU $E3C4 | 85 02 lda Zp_16 ; PRG $23C6 | CPU $E3C6 | A5 16 sta ScratchValue1 ; PRG $23C8 | CPU $E3C8 | 85 01 lda Zp_15 ; PRG $23CA | CPU $E3CA | A5 15 sta ScratchValue0 ; PRG $23CC | CPU $E3CC | 85 00 jmp TransformFlightState_E3F8 ; PRG $23CE | CPU $E3CE | 4C F8 E3 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E3 D1. ; Local behavior: Executes the decoded update side scrolling gameplay e3 d1 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E3D1: lda Zp_D1 ; PRG $23D1 | CPU $E3D1 | A5 D1 bne UpdateGameplayStateField_E420 ; PRG $23D3 | CPU $E3D3 | D0 4B lda #$05 ; PRG $23D5 | CPU $E3D5 | A9 05 sta Zp_D1 ; PRG $23D7 | CPU $E3D7 | 85 D1 ldx Zp_32 ; PRG $23D9 | CPU $E3D9 | A6 32 lda PreviousControllerButtons,x ; PRG $23DB | CPU $E3DB | B5 19 and #$03 ; PRG $23DD | CPU $E3DD | 29 03 beq UpdateSideScrollingGameplay_E3A3 ; PRG $23DF | CPU $E3DF | F0 C2 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E3 E1. ; Local behavior: Executes the decoded update side scrolling gameplay e3 e1 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E3E1: and #$01 ; PRG $23E1 | CPU $E3E1 | 29 01 bne UpdateSideScrollingGameplay_E421 ; PRG $23E3 | CPU $E3E3 | D0 3C clc ; PRG $23E5 | CPU $E3E5 | 18 lda #$80 ; PRG $23E6 | CPU $E3E6 | A9 80 adc Zp_17 ; PRG $23E8 | CPU $E3E8 | 65 17 sta ScratchValue2 ; PRG $23EA | CPU $E3EA | 85 02 lda #$04 ; PRG $23EC | CPU $E3EC | A9 04 adc Zp_16 ; PRG $23EE | CPU $E3EE | 65 16 sta ScratchValue1 ; PRG $23F0 | CPU $E3F0 | 85 01 lda #$00 ; PRG $23F2 | CPU $E3F2 | A9 00 adc Zp_15 ; PRG $23F4 | CPU $E3F4 | 65 15 sta ScratchValue0 ; PRG $23F6 | CPU $E3F6 | 85 00 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State E3 F8. ; Local behavior: Executes the decoded transform flight state e3 f8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_E3F8: lsr ScratchValue0 ; PRG $23F8 | CPU $E3F8 | 46 00 ror ScratchValue1 ; PRG $23FA | CPU $E3FA | 66 01 ror ScratchValue2 ; PRG $23FC | CPU $E3FC | 66 02 lsr ScratchValue0 ; PRG $23FE | CPU $E3FE | 46 00 ror ScratchValue1 ; PRG $2400 | CPU $E400 | 66 01 ror ScratchValue2 ; PRG $2402 | CPU $E402 | 66 02 lsr ScratchValue0 ; PRG $2404 | CPU $E404 | 46 00 ror ScratchValue1 ; PRG $2406 | CPU $E406 | 66 01 ror ScratchValue2 ; PRG $2408 | CPU $E408 | 66 02 jsr UpdateSideScrollingGameplay_E45D ; PRG $240A | CPU $E40A | 20 5D E4 sec ; PRG $240D | CPU $E40D | 38 lda Zp_17 ; PRG $240E | CPU $E40E | A5 17 sbc ScratchValue2 ; PRG $2410 | CPU $E410 | E5 02 sta Zp_17 ; PRG $2412 | CPU $E412 | 85 17 lda Zp_16 ; PRG $2414 | CPU $E414 | A5 16 sbc ScratchValue1 ; PRG $2416 | CPU $E416 | E5 01 sta Zp_16 ; PRG $2418 | CPU $E418 | 85 16 lda Zp_15 ; PRG $241A | CPU $E41A | A5 15 sbc ScratchValue0 ; PRG $241C | CPU $E41C | E5 00 sta Zp_15 ; PRG $241E | CPU $E41E | 85 15 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field E420. ; Local behavior: Executes the decoded update gameplay state field e420 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_E420: rts ; PRG $2420 | CPU $E420 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E421. ; Local behavior: Executes the decoded update side scrolling gameplay e421 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E421: sec ; PRG $2421 | CPU $E421 | 38 lda #$80 ; PRG $2422 | CPU $E422 | A9 80 sbc Zp_17 ; PRG $2424 | CPU $E424 | E5 17 sta ScratchValue2 ; PRG $2426 | CPU $E426 | 85 02 lda #$04 ; PRG $2428 | CPU $E428 | A9 04 sbc Zp_16 ; PRG $242A | CPU $E42A | E5 16 sta ScratchValue1 ; PRG $242C | CPU $E42C | 85 01 lda #$00 ; PRG $242E | CPU $E42E | A9 00 sbc Zp_15 ; PRG $2430 | CPU $E430 | E5 15 sta ScratchValue0 ; PRG $2432 | CPU $E432 | 85 00 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State E434. ; Local behavior: Executes the decoded transform flight state e434 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_E434: lsr ScratchValue0 ; PRG $2434 | CPU $E434 | 46 00 ror ScratchValue1 ; PRG $2436 | CPU $E436 | 66 01 ror ScratchValue2 ; PRG $2438 | CPU $E438 | 66 02 lsr ScratchValue0 ; PRG $243A | CPU $E43A | 46 00 ror ScratchValue1 ; PRG $243C | CPU $E43C | 66 01 ror ScratchValue2 ; PRG $243E | CPU $E43E | 66 02 lsr ScratchValue0 ; PRG $2440 | CPU $E440 | 46 00 ror ScratchValue1 ; PRG $2442 | CPU $E442 | 66 01 ror ScratchValue2 ; PRG $2444 | CPU $E444 | 66 02 jsr UpdateSideScrollingGameplay_E45D ; PRG $2446 | CPU $E446 | 20 5D E4 clc ; PRG $2449 | CPU $E449 | 18 lda Zp_17 ; PRG $244A | CPU $E44A | A5 17 adc ScratchValue2 ; PRG $244C | CPU $E44C | 65 02 sta Zp_17 ; PRG $244E | CPU $E44E | 85 17 lda Zp_16 ; PRG $2450 | CPU $E450 | A5 16 adc ScratchValue1 ; PRG $2452 | CPU $E452 | 65 01 sta Zp_16 ; PRG $2454 | CPU $E454 | 85 16 lda Zp_15 ; PRG $2456 | CPU $E456 | A5 15 adc ScratchValue0 ; PRG $2458 | CPU $E458 | 65 00 sta Zp_15 ; PRG $245A | CPU $E45A | 85 15 rts ; PRG $245C | CPU $E45C | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E45 D. ; Local behavior: Executes the decoded update side scrolling gameplay e45 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E45D: lda ScratchValue0 ; PRG $245D | CPU $E45D | A5 00 bne UpdateGameplayStateField_E479 ; PRG $245F | CPU $E45F | D0 18 lda ScratchValue1 ; PRG $2461 | CPU $E461 | A5 01 bne UpdateGameplayStateField_E479 ; PRG $2463 | CPU $E463 | D0 14 lda ScratchValue2 ; PRG $2465 | CPU $E465 | A5 02 bne UpdateGameplayStateField_E479 ; PRG $2467 | CPU $E467 | D0 10 lda Zp_16 ; PRG $2469 | CPU $E469 | A5 16 beq UpdateSideScrollingGameplay_E471 ; PRG $246B | CPU $E46B | F0 04 cmp #$FF ; PRG $246D | CPU $E46D | C9 FF bne UpdateGameplayStateField_E479 ; PRG $246F | CPU $E46F | D0 08 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E471. ; Local behavior: Executes the decoded update side scrolling gameplay e471 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E471: lda #$00 ; PRG $2471 | CPU $E471 | A9 00 sta Zp_17 ; PRG $2473 | CPU $E473 | 85 17 sta Zp_16 ; PRG $2475 | CPU $E475 | 85 16 sta Zp_15 ; PRG $2477 | CPU $E477 | 85 15 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field E479. ; Local behavior: Executes the decoded update gameplay state field e479 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_E479: rts ; PRG $2479 | CPU $E479 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E47 A. ; Local behavior: Executes the decoded update side scrolling gameplay e47 a sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E47A: clc ; PRG $247A | CPU $E47A | 18 lda Zp_14 ; PRG $247B | CPU $E47B | A5 14 adc Zp_17 ; PRG $247D | CPU $E47D | 65 17 sta Zp_14 ; PRG $247F | CPU $E47F | 85 14 lda VerticalScroll ; PRG $2481 | CPU $E481 | A5 13 adc Zp_16 ; PRG $2483 | CPU $E483 | 65 16 sta VerticalScroll ; PRG $2485 | CPU $E485 | 85 13 lda HorizontalScroll ; PRG $2487 | CPU $E487 | A5 12 adc Zp_15 ; PRG $2489 | CPU $E489 | 65 15 sta HorizontalScroll ; PRG $248B | CPU $E48B | 85 12 sec ; PRG $248D | CPU $E48D | 38 lda Zp_14 ; PRG $248E | CPU $E48E | A5 14 sbc Ram_03D4 ; PRG $2490 | CPU $E490 | ED D4 03 sta Zp_14 ; PRG $2493 | CPU $E493 | 85 14 lda VerticalScroll ; PRG $2495 | CPU $E495 | A5 13 sbc Ram_03D3 ; PRG $2497 | CPU $E497 | ED D3 03 sta VerticalScroll ; PRG $249A | CPU $E49A | 85 13 lda HorizontalScroll ; PRG $249C | CPU $E49C | A5 12 ldx #$00 ; PRG $249E | CPU $E49E | A2 00 ldy Ram_03D3 ; PRG $24A0 | CPU $E4A0 | AC D3 03 bpl UpdateSideScrollingGameplay_E4A7 ; PRG $24A3 | CPU $E4A3 | 10 02 ldx #$01 ; PRG $24A5 | CPU $E4A5 | A2 01 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E4 A7. ; Local behavior: Executes the decoded update side scrolling gameplay e4 a7 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E4A7: stx ScratchValue0 ; PRG $24A7 | CPU $E4A7 | 86 00 sbc ScratchValue0 ; PRG $24A9 | CPU $E4A9 | E5 00 and #$01 ; PRG $24AB | CPU $E4AB | 29 01 sta HorizontalScroll ; PRG $24AD | CPU $E4AD | 85 12 lda PpuControlShadow ; PRG $24AF | CPU $E4AF | A5 10 and #$FE ; PRG $24B1 | CPU $E4B1 | 29 FE ora HorizontalScroll ; PRG $24B3 | CPU $E4B3 | 05 12 sta PpuControlShadow ; PRG $24B5 | CPU $E4B5 | 85 10 rts ; PRG $24B7 | CPU $E4B7 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E4 B8. ; Local behavior: Executes the decoded update side scrolling gameplay e4 b8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E4B8: lda Ram_03C8 ; PRG $24B8 | CPU $E4B8 | AD C8 03 and #$10 ; PRG $24BB | CPU $E4BB | 29 10 beq UpdateSideScrollingGameplay_E4C4 ; PRG $24BD | CPU $E4BD | F0 05 lda #$00 ; PRG $24BF | CPU $E4BF | A9 00 sta Ram_03C8 ; PRG $24C1 | CPU $E4C1 | 8D C8 03 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E4 C4. ; Local behavior: Executes the decoded update side scrolling gameplay e4 c4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E4C4: lda #$24 ; PRG $24C4 | CPU $E4C4 | A9 24 jmp UpdateSideScrollingGameplay_E50D ; PRG $24C6 | CPU $E4C6 | 4C 0D E5 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E4 C9. ; Local behavior: Executes the decoded update side scrolling gameplay e4 c9 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E4C9: jsr UpdateSideScrollingGameplay_E5A8 ; PRG $24C9 | CPU $E4C9 | 20 A8 E5 bcs UpdateSideScrollingGameplay_E4F2 ; PRG $24CC | CPU $E4CC | B0 24 lda Ram_03C8 ; PRG $24CE | CPU $E4CE | AD C8 03 and #$10 ; PRG $24D1 | CPU $E4D1 | 29 10 beq UpdateSideScrollingGameplay_E4C4 ; PRG $24D3 | CPU $E4D3 | F0 EF jmp UpdateSideScrollingGameplay_E50B ; PRG $24D5 | CPU $E4D5 | 4C 0B E5 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State E4 D8. ; Local behavior: Executes the decoded transform flight state e4 d8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_E4D8: lda Zp_17 ; PRG $24D8 | CPU $E4D8 | A5 17 asl a ; PRG $24DA | CPU $E4DA | 0A sta ScratchIndex ; PRG $24DB | CPU $E4DB | 85 03 lda Zp_16 ; PRG $24DD | CPU $E4DD | A5 16 rol a ; PRG $24DF | CPU $E4DF | 2A sta ScratchValue2 ; PRG $24E0 | CPU $E4E0 | 85 02 asl ScratchIndex ; PRG $24E2 | CPU $E4E2 | 06 03 rol ScratchValue2 ; PRG $24E4 | CPU $E4E4 | 26 02 asl ScratchIndex ; PRG $24E6 | CPU $E4E6 | 06 03 rol ScratchValue2 ; PRG $24E8 | CPU $E4E8 | 26 02 ldx Zp_32 ; PRG $24EA | CPU $E4EA | A6 32 lda PreviousControllerButtons,x ; PRG $24EC | CPU $E4EC | B5 19 and #$03 ; PRG $24EE | CPU $E4EE | 29 03 beq UpdateSideScrollingGameplay_E4C9 ; PRG $24F0 | CPU $E4F0 | F0 D7 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E4 F2. ; Local behavior: Executes the decoded update side scrolling gameplay e4 f2 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E4F2: ldx #$06 ; PRG $24F2 | CPU $E4F2 | A2 06 stx Zp_DE ; PRG $24F4 | CPU $E4F4 | 86 DE ldx #$0C ; PRG $24F6 | CPU $E4F6 | A2 0C jsr UpdateSideScrollingGameplay_CE51 ; PRG $24F8 | CPU $E4F8 | 20 51 CE and #$01 ; PRG $24FB | CPU $E4FB | 29 01 bne UpdateSideScrollingGameplay_E4B8 ; PRG $24FD | CPU $E4FD | D0 B9 lda Ram_03C8 ; PRG $24FF | CPU $E4FF | AD C8 03 and #$10 ; PRG $2502 | CPU $E502 | 29 10 bne UpdateSideScrollingGameplay_E50B ; PRG $2504 | CPU $E504 | D0 05 lda #$10 ; PRG $2506 | CPU $E506 | A9 10 sta Ram_03C8 ; PRG $2508 | CPU $E508 | 8D C8 03 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E50 B. ; Local behavior: Executes the decoded update side scrolling gameplay e50 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E50B: lda #$C4 ; PRG $250B | CPU $E50B | A9 C4 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E50 D. ; Local behavior: Executes the decoded update side scrolling gameplay e50 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E50D: clc ; PRG $250D | CPU $E50D | 18 adc ScratchValue2 ; PRG $250E | CPU $E50E | 65 02 sta DataPointerLo ; PRG $2510 | CPU $E510 | 85 04 sec ; PRG $2512 | CPU $E512 | 38 sbc Ram_03C3 ; PRG $2513 | CPU $E513 | ED C3 03 php ; PRG $2516 | CPU $E516 | 08 bcs TransformFlightState_E51E ; PRG $2517 | CPU $E517 | B0 05 eor #$FF ; PRG $2519 | CPU $E519 | 49 FF clc ; PRG $251B | CPU $E51B | 18 adc #$01 ; PRG $251C | CPU $E51C | 69 01 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State E51 E. ; Local behavior: Executes the decoded transform flight state e51 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_E51E: sta DataPointerHi ; PRG $251E | CPU $E51E | 85 05 lda #$00 ; PRG $2520 | CPU $E520 | A9 00 sta TemporaryPointerLo ; PRG $2522 | CPU $E522 | 85 06 lsr DataPointerHi ; PRG $2524 | CPU $E524 | 46 05 ror TemporaryPointerLo ; PRG $2526 | CPU $E526 | 66 06 lsr DataPointerHi ; PRG $2528 | CPU $E528 | 46 05 ror TemporaryPointerLo ; PRG $252A | CPU $E52A | 66 06 lsr DataPointerHi ; PRG $252C | CPU $E52C | 46 05 ror TemporaryPointerLo ; PRG $252E | CPU $E52E | 66 06 lsr DataPointerHi ; PRG $2530 | CPU $E530 | 46 05 ror TemporaryPointerLo ; PRG $2532 | CPU $E532 | 66 06 lsr DataPointerHi ; PRG $2534 | CPU $E534 | 46 05 ror TemporaryPointerLo ; PRG $2536 | CPU $E536 | 66 06 plp ; PRG $2538 | CPU $E538 | 28 bcs UpdateSideScrollingGameplay_E548 ; PRG $2539 | CPU $E539 | B0 0D lda #$00 ; PRG $253B | CPU $E53B | A9 00 sec ; PRG $253D | CPU $E53D | 38 sbc TemporaryPointerLo ; PRG $253E | CPU $E53E | E5 06 sta TemporaryPointerLo ; PRG $2540 | CPU $E540 | 85 06 lda #$00 ; PRG $2542 | CPU $E542 | A9 00 sbc DataPointerHi ; PRG $2544 | CPU $E544 | E5 05 sta DataPointerHi ; PRG $2546 | CPU $E546 | 85 05 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E548. ; Local behavior: Executes the decoded update side scrolling gameplay e548 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E548: lda DataPointerHi ; PRG $2548 | CPU $E548 | A5 05 sta Ram_03D3 ; PRG $254A | CPU $E54A | 8D D3 03 lda TemporaryPointerLo ; PRG $254D | CPU $E54D | A5 06 sta Ram_03D4 ; PRG $254F | CPU $E54F | 8D D4 03 ldx Zp_32 ; PRG $2552 | CPU $E552 | A6 32 lda PreviousControllerButtons,x ; PRG $2554 | CPU $E554 | B5 19 ldx #$00 ; PRG $2556 | CPU $E556 | A2 00 ldy #$00 ; PRG $2558 | CPU $E558 | A0 00 and #$0C ; PRG $255A | CPU $E55A | 29 0C beq UpdateSideScrollingGameplay_E56D ; PRG $255C | CPU $E55C | F0 0F and #$04 ; PRG $255E | CPU $E55E | 29 04 beq UpdateSideScrollingGameplay_E59A ; PRG $2560 | CPU $E560 | F0 38 lda Ram_03C1 ; PRG $2562 | CPU $E562 | AD C1 03 cmp #$C7 ; PRG $2565 | CPU $E565 | C9 C7 bcs UpdateSideScrollingGameplay_E56D ; PRG $2567 | CPU $E567 | B0 04 ldx #$01 ; PRG $2569 | CPU $E569 | A2 01 ldy #$80 ; PRG $256B | CPU $E56B | A0 80 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E56 D. ; Local behavior: Executes the decoded update side scrolling gameplay e56 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E56D: stx Ram_03D1 ; PRG $256D | CPU $E56D | 8E D1 03 sty Ram_03D2 ; PRG $2570 | CPU $E570 | 8C D2 03 clc ; PRG $2573 | CPU $E573 | 18 lda Ram_03D4 ; PRG $2574 | CPU $E574 | AD D4 03 adc Ram_03C4 ; PRG $2577 | CPU $E577 | 6D C4 03 sta Ram_03C4 ; PRG $257A | CPU $E57A | 8D C4 03 lda Ram_03D3 ; PRG $257D | CPU $E57D | AD D3 03 adc Ram_03C3 ; PRG $2580 | CPU $E580 | 6D C3 03 sta Ram_03C3 ; PRG $2583 | CPU $E583 | 8D C3 03 clc ; PRG $2586 | CPU $E586 | 18 lda Ram_03D2 ; PRG $2587 | CPU $E587 | AD D2 03 adc Ram_03C2 ; PRG $258A | CPU $E58A | 6D C2 03 sta Ram_03C2 ; PRG $258D | CPU $E58D | 8D C2 03 lda Ram_03D1 ; PRG $2590 | CPU $E590 | AD D1 03 adc Ram_03C1 ; PRG $2593 | CPU $E593 | 6D C1 03 sta Ram_03C1 ; PRG $2596 | CPU $E596 | 8D C1 03 rts ; PRG $2599 | CPU $E599 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E59 A. ; Local behavior: Executes the decoded update side scrolling gameplay e59 a sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E59A: lda Ram_03C1 ; PRG $259A | CPU $E59A | AD C1 03 cmp #$34 ; PRG $259D | CPU $E59D | C9 34 bcc UpdateSideScrollingGameplay_E56D ; PRG $259F | CPU $E59F | 90 CC ldx #$FE ; PRG $25A1 | CPU $E5A1 | A2 FE ldy #$80 ; PRG $25A3 | CPU $E5A3 | A0 80 jmp UpdateSideScrollingGameplay_E56D ; PRG $25A5 | CPU $E5A5 | 4C 6D E5 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E5 A8. ; Local behavior: Executes the decoded update side scrolling gameplay e5 a8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E5A8: clc ; PRG $25A8 | CPU $E5A8 | 18 lda Zp_DE ; PRG $25A9 | CPU $E5A9 | A5 DE beq UpdateGameplayStateField_E5C0 ; PRG $25AB | CPU $E5AB | F0 13 lda PreviousControllerButtons,x ; PRG $25AD | CPU $E5AD | B5 19 and #$0C ; PRG $25AF | CPU $E5AF | 29 0C beq UpdateGameplayStateField_E5C0 ; PRG $25B1 | CPU $E5B1 | F0 0D ldx #$01 ; PRG $25B3 | CPU $E5B3 | A2 01 lda Ram_03C8 ; PRG $25B5 | CPU $E5B5 | AD C8 03 and #$10 ; PRG $25B8 | CPU $E5B8 | 29 10 beq UpdateSideScrollingGameplay_E5BE ; PRG $25BA | CPU $E5BA | F0 02 ldx #$00 ; PRG $25BC | CPU $E5BC | A2 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E5 BE. ; Local behavior: Executes the decoded update side scrolling gameplay e5 be sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E5BE: txa ; PRG $25BE | CPU $E5BE | 8A sec ; PRG $25BF | CPU $E5BF | 38 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field E5 C0. ; Local behavior: Executes the decoded update gameplay state field e5 c0 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_E5C0: rts ; PRG $25C0 | CPU $E5C0 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E5 C1. ; Local behavior: Executes the decoded update side scrolling gameplay e5 c1 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E5C1: lda Ram_03C5 ; PRG $25C1 | CPU $E5C1 | AD C5 03 cmp #$06 ; PRG $25C4 | CPU $E5C4 | C9 06 bcs UpdateGameplayStateField_E610 ; PRG $25C6 | CPU $E5C6 | B0 48 ldx Zp_32 ; PRG $25C8 | CPU $E5C8 | A6 32 lda PreviousControllerButtons,x ; PRG $25CA | CPU $E5CA | B5 19 and #$03 ; PRG $25CC | CPU $E5CC | 29 03 beq CalculateMovementAndClamp_E5EF ; PRG $25CE | CPU $E5CE | F0 1F ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value E5 D0. ; Local behavior: Executes the decoded calculate and clamp value e5 d0 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_E5D0: lda Ram_03C5 ; PRG $25D0 | CPU $E5D0 | AD C5 03 cmp #$03 ; PRG $25D3 | CPU $E5D3 | C9 03 bcs CalculateMovementAndClamp_E5DA ; PRG $25D5 | CPU $E5D5 | B0 03 clc ; PRG $25D7 | CPU $E5D7 | 18 adc #$03 ; PRG $25D8 | CPU $E5D8 | 69 03 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value E5 DA. ; Local behavior: Executes the decoded calculate and clamp value e5 da sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_E5DA: ldx Zp_D2 ; PRG $25DA | CPU $E5DA | A6 D2 bne UpdateGameplayStateField_E5EB ; PRG $25DC | CPU $E5DC | D0 0D ldx #$03 ; PRG $25DE | CPU $E5DE | A2 03 stx Zp_D2 ; PRG $25E0 | CPU $E5E0 | 86 D2 sec ; PRG $25E2 | CPU $E5E2 | 38 sbc #$01 ; PRG $25E3 | CPU $E5E3 | E9 01 cmp #$02 ; PRG $25E5 | CPU $E5E5 | C9 02 bne UpdateGameplayStateField_E5EB ; PRG $25E7 | CPU $E5E7 | D0 02 lda #$05 ; PRG $25E9 | CPU $E5E9 | A9 05 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field E5 EB. ; Local behavior: Executes the decoded update gameplay state field e5 eb sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_E5EB: sta Ram_03C5 ; PRG $25EB | CPU $E5EB | 8D C5 03 rts ; PRG $25EE | CPU $E5EE | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value E5 EF. ; Local behavior: Executes the decoded calculate and clamp value e5 ef sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_E5EF: jsr UpdateSideScrollingGameplay_E5A8 ; PRG $25EF | CPU $E5EF | 20 A8 E5 bcs CalculateMovementAndClamp_E5D0 ; PRG $25F2 | CPU $E5F2 | B0 DC lda Ram_03C5 ; PRG $25F4 | CPU $E5F4 | AD C5 03 cmp #$03 ; PRG $25F7 | CPU $E5F7 | C9 03 bcc UpdateSideScrollingGameplay_E5FE ; PRG $25F9 | CPU $E5F9 | 90 03 sec ; PRG $25FB | CPU $E5FB | 38 sbc #$03 ; PRG $25FC | CPU $E5FC | E9 03 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E5 FE. ; Local behavior: Executes the decoded update side scrolling gameplay e5 fe sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E5FE: ldx Zp_D2 ; PRG $25FE | CPU $E5FE | A6 D2 bne UpdateSideScrollingGameplay_E60D ; PRG $2600 | CPU $E600 | D0 0B ldx #$03 ; PRG $2602 | CPU $E602 | A2 03 stx Zp_D2 ; PRG $2604 | CPU $E604 | 86 D2 sec ; PRG $2606 | CPU $E606 | 38 sbc #$01 ; PRG $2607 | CPU $E607 | E9 01 bpl UpdateSideScrollingGameplay_E60D ; PRG $2609 | CPU $E609 | 10 02 lda #$02 ; PRG $260B | CPU $E60B | A9 02 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E60 D. ; Local behavior: Executes the decoded update side scrolling gameplay e60 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E60D: sta Ram_03C5 ; PRG $260D | CPU $E60D | 8D C5 03 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field E610. ; Local behavior: Executes the decoded update gameplay state field e610 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_E610: rts ; PRG $2610 | CPU $E610 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E611. ; Local behavior: Executes the decoded update side scrolling gameplay e611 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E611: lda Ram_03E0 ; PRG $2611 | CPU $E611 | AD E0 03 bne UpdateSideScrollingGameplay_E632 ; PRG $2614 | CPU $E614 | D0 1C ldx #$F8 ; PRG $2616 | CPU $E616 | A2 F8 lda Ram_03E8 ; PRG $2618 | CPU $E618 | AD E8 03 and #$10 ; PRG $261B | CPU $E61B | 29 10 bne CalculateMovementAndClamp_E621 ; PRG $261D | CPU $E61D | D0 02 ldx #$08 ; PRG $261F | CPU $E61F | A2 08 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value E621. ; Local behavior: Executes the decoded calculate and clamp value e621 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_E621: txa ; PRG $2621 | CPU $E621 | 8A clc ; PRG $2622 | CPU $E622 | 18 adc Ram_03E3 ; PRG $2623 | CPU $E623 | 6D E3 03 cmp #$E8 ; PRG $2626 | CPU $E626 | C9 E8 bcc UpdateSideScrollingGameplay_E62F ; PRG $2628 | CPU $E628 | 90 05 lda #$F4 ; PRG $262A | CPU $E62A | A9 F4 sta Ram_03E0 ; PRG $262C | CPU $E62C | 8D E0 03 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E62 F. ; Local behavior: Executes the decoded update side scrolling gameplay e62 f sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E62F: sta Ram_03E3 ; PRG $262F | CPU $E62F | 8D E3 03 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E632. ; Local behavior: Executes the decoded update side scrolling gameplay e632 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E632: lda Ram_03F0 ; PRG $2632 | CPU $E632 | AD F0 03 bne UpdateSideScrollingGameplay_E653 ; PRG $2635 | CPU $E635 | D0 1C ldx #$F8 ; PRG $2637 | CPU $E637 | A2 F8 lda Ram_03F8 ; PRG $2639 | CPU $E639 | AD F8 03 and #$10 ; PRG $263C | CPU $E63C | 29 10 bne CalculateMovementAndClamp_E642 ; PRG $263E | CPU $E63E | D0 02 ldx #$08 ; PRG $2640 | CPU $E640 | A2 08 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value E642. ; Local behavior: Executes the decoded calculate and clamp value e642 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_E642: txa ; PRG $2642 | CPU $E642 | 8A clc ; PRG $2643 | CPU $E643 | 18 adc Ram_03F3 ; PRG $2644 | CPU $E644 | 6D F3 03 cmp #$E8 ; PRG $2647 | CPU $E647 | C9 E8 bcc UpdateSideScrollingGameplay_E650 ; PRG $2649 | CPU $E649 | 90 05 lda #$F4 ; PRG $264B | CPU $E64B | A9 F4 sta Ram_03F0 ; PRG $264D | CPU $E64D | 8D F0 03 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E650. ; Local behavior: Executes the decoded update side scrolling gameplay e650 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E650: sta Ram_03F3 ; PRG $2650 | CPU $E650 | 8D F3 03 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E653. ; Local behavior: Executes the decoded update side scrolling gameplay e653 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E653: ldx Zp_32 ; PRG $2653 | CPU $E653 | A6 32 lda CurrentControllerButtons,x ; PRG $2655 | CPU $E655 | B5 1B and #$80 ; PRG $2657 | CPU $E657 | 29 80 beq UpdateGameplayStateField_E665 ; PRG $2659 | CPU $E659 | F0 0A lda Ram_03E0 ; PRG $265B | CPU $E65B | AD E0 03 bne UpdateSideScrollingGameplay_E692 ; PRG $265E | CPU $E65E | D0 32 lda Ram_03F0 ; PRG $2660 | CPU $E660 | AD F0 03 bne UpdateSideScrollingGameplay_E666 ; PRG $2663 | CPU $E663 | D0 01 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field E665. ; Local behavior: Executes the decoded update gameplay state field e665 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_E665: rts ; PRG $2665 | CPU $E665 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E666. ; Local behavior: Executes the decoded update side scrolling gameplay e666 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E666: lda #$00 ; PRG $2666 | CPU $E666 | A9 00 sta Ram_03F0 ; PRG $2668 | CPU $E668 | 8D F0 03 lda Ram_03C1 ; PRG $266B | CPU $E66B | AD C1 03 sta Ram_03F1 ; PRG $266E | CPU $E66E | 8D F1 03 ldx #$FA ; PRG $2671 | CPU $E671 | A2 FA lda Ram_03C8 ; PRG $2673 | CPU $E673 | AD C8 03 and #$10 ; PRG $2676 | CPU $E676 | 29 10 bne UpdateSideScrollingGameplay_E67C ; PRG $2678 | CPU $E678 | D0 02 ldx #$06 ; PRG $267A | CPU $E67A | A2 06 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E67 C. ; Local behavior: Executes the decoded update side scrolling gameplay e67 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E67C: txa ; PRG $267C | CPU $E67C | 8A clc ; PRG $267D | CPU $E67D | 18 adc Ram_03C3 ; PRG $267E | CPU $E67E | 6D C3 03 sta Ram_03F3 ; PRG $2681 | CPU $E681 | 8D F3 03 lda Ram_03C8 ; PRG $2684 | CPU $E684 | AD C8 03 and #$10 ; PRG $2687 | CPU $E687 | 29 10 sta Ram_03F8 ; PRG $2689 | CPU $E689 | 8D F8 03 lda #$0A ; PRG $268C | CPU $E68C | A9 0A jsr UpdateSideScrollingGameplay_CE5B ; PRG $268E | CPU $E68E | 20 5B CE rts ; PRG $2691 | CPU $E691 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E692. ; Local behavior: Executes the decoded update side scrolling gameplay e692 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E692: lda #$00 ; PRG $2692 | CPU $E692 | A9 00 sta Ram_03E0 ; PRG $2694 | CPU $E694 | 8D E0 03 lda Ram_03C1 ; PRG $2697 | CPU $E697 | AD C1 03 sta Ram_03E1 ; PRG $269A | CPU $E69A | 8D E1 03 ldx #$FA ; PRG $269D | CPU $E69D | A2 FA lda Ram_03C8 ; PRG $269F | CPU $E69F | AD C8 03 and #$10 ; PRG $26A2 | CPU $E6A2 | 29 10 bne UpdateSideScrollingGameplay_E6A8 ; PRG $26A4 | CPU $E6A4 | D0 02 ldx #$06 ; PRG $26A6 | CPU $E6A6 | A2 06 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E6 A8. ; Local behavior: Executes the decoded update side scrolling gameplay e6 a8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E6A8: txa ; PRG $26A8 | CPU $E6A8 | 8A clc ; PRG $26A9 | CPU $E6A9 | 18 adc Ram_03C3 ; PRG $26AA | CPU $E6AA | 6D C3 03 sta Ram_03E3 ; PRG $26AD | CPU $E6AD | 8D E3 03 lda Ram_03C8 ; PRG $26B0 | CPU $E6B0 | AD C8 03 and #$10 ; PRG $26B3 | CPU $E6B3 | 29 10 sta Ram_03E8 ; PRG $26B5 | CPU $E6B5 | 8D E8 03 lda #$0A ; PRG $26B8 | CPU $E6B8 | A9 0A jsr UpdateSideScrollingGameplay_CE5B ; PRG $26BA | CPU $E6BA | 20 5B CE rts ; PRG $26BD | CPU $E6BD | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E6 BE. ; Local behavior: Executes the decoded update side scrolling gameplay e6 be sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E6BE: lda Zp_D3 ; PRG $26BE | CPU $E6BE | A5 D3 bne UpdateGameplayStateField_E6D4 ; PRG $26C0 | CPU $E6C0 | D0 12 lda #$02 ; PRG $26C2 | CPU $E6C2 | A9 02 sta Zp_D3 ; PRG $26C4 | CPU $E6C4 | 85 D3 lda #$01 ; PRG $26C6 | CPU $E6C6 | A9 01 inc Ram_03E5 ; PRG $26C8 | CPU $E6C8 | EE E5 03 and Ram_03E5 ; PRG $26CB | CPU $E6CB | 2D E5 03 sta Ram_03E5 ; PRG $26CE | CPU $E6CE | 8D E5 03 sta Ram_03F5 ; PRG $26D1 | CPU $E6D1 | 8D F5 03 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field E6 D4. ; Local behavior: Executes the decoded update gameplay state field e6 d4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_E6D4: rts ; PRG $26D4 | CPU $E6D4 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E6 D5. ; Local behavior: Executes the decoded update side scrolling gameplay e6 d5 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E6D5: lda #$C0 ; PRG $26D5 | CPU $E6D5 | A9 C0 sta ScratchValue0 ; PRG $26D7 | CPU $E6D7 | 85 00 lda #$03 ; PRG $26D9 | CPU $E6D9 | A9 03 sta ScratchValue1 ; PRG $26DB | CPU $E6DB | 85 01 jsr TransformFlightState_C47C ; PRG $26DD | CPU $E6DD | 20 7C C4 rts ; PRG $26E0 | CPU $E6E0 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E6 E1. ; Local behavior: Executes the decoded update side scrolling gameplay e6 e1 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E6E1: lda #$E0 ; PRG $26E1 | CPU $E6E1 | A9 E0 sta ScratchValue0 ; PRG $26E3 | CPU $E6E3 | 85 00 lda #$03 ; PRG $26E5 | CPU $E6E5 | A9 03 sta ScratchValue1 ; PRG $26E7 | CPU $E6E7 | 85 01 jsr TransformFlightState_C47C ; PRG $26E9 | CPU $E6E9 | 20 7C C4 lda #$F0 ; PRG $26EC | CPU $E6EC | A9 F0 sta ScratchValue0 ; PRG $26EE | CPU $E6EE | 85 00 lda #$03 ; PRG $26F0 | CPU $E6F0 | A9 03 sta ScratchValue1 ; PRG $26F2 | CPU $E6F2 | 85 01 jsr TransformFlightState_C47C ; PRG $26F4 | CPU $E6F4 | 20 7C C4 rts ; PRG $26F7 | CPU $E6F7 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E6 F8. ; Local behavior: Executes the decoded update side scrolling gameplay e6 f8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E6F8: sec ; PRG $26F8 | CPU $E6F8 | 38 lda Ram_03D4 ; PRG $26F9 | CPU $E6F9 | AD D4 03 sbc Zp_17 ; PRG $26FC | CPU $E6FC | E5 17 sta ScratchValue2 ; PRG $26FE | CPU $E6FE | 85 02 lda Ram_03D3 ; PRG $2700 | CPU $E700 | AD D3 03 sbc Zp_16 ; PRG $2703 | CPU $E703 | E5 16 sta ScratchValue1 ; PRG $2705 | CPU $E705 | 85 01 lda #$00 ; PRG $2707 | CPU $E707 | A9 00 ldy Ram_03D3 ; PRG $2709 | CPU $E709 | AC D3 03 bpl UpdateSideScrollingGameplay_E710 ; PRG $270C | CPU $E70C | 10 02 lda #$FF ; PRG $270E | CPU $E70E | A9 FF ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E710. ; Local behavior: Executes the decoded update side scrolling gameplay e710 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E710: sbc Zp_15 ; PRG $2710 | CPU $E710 | E5 15 sta ScratchValue0 ; PRG $2712 | CPU $E712 | 85 00 ldx #$18 ; PRG $2714 | CPU $E714 | A2 18 stx Zp_08 ; PRG $2716 | CPU $E716 | 86 08 lda #$00 ; PRG $2718 | CPU $E718 | A9 00 sta ScratchIndex ; PRG $271A | CPU $E71A | 85 03 lda #$04 ; PRG $271C | CPU $E71C | A9 04 sta DataPointerLo ; PRG $271E | CPU $E71E | 85 04 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E720. ; Local behavior: Executes the decoded update side scrolling gameplay e720 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E720: ldy #$00 ; PRG $2720 | CPU $E720 | A0 00 lda (ScratchIndex),y ; PRG $2722 | CPU $E722 | B1 03 bmi UpdateSideScrollingGameplay_E759 ; PRG $2724 | CPU $E724 | 30 33 ldx #$00 ; PRG $2726 | CPU $E726 | A2 00 jsr CalculateMovementAndClamp_E76B ; PRG $2728 | CPU $E728 | 20 6B E7 ldy #$14 ; PRG $272B | CPU $E72B | A0 14 lda (ScratchIndex),y ; PRG $272D | CPU $E72D | B1 03 sta TemporaryPointerHi ; PRG $272F | CPU $E72F | 85 07 dey ; PRG $2731 | CPU $E731 | 88 lda (ScratchIndex),y ; PRG $2732 | CPU $E732 | B1 03 sta TemporaryPointerLo ; PRG $2734 | CPU $E734 | 85 06 ldx #$00 ; PRG $2736 | CPU $E736 | A2 00 and TemporaryPointerLo ; PRG $2738 | CPU $E738 | 25 06 bpl UpdateSideScrollingGameplay_E73D ; PRG $273A | CPU $E73A | 10 01 dex ; PRG $273C | CPU $E73C | CA ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E73 D. ; Local behavior: Executes the decoded update side scrolling gameplay e73 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E73D: stx DataPointerHi ; PRG $273D | CPU $E73D | 86 05 ldx #$05 ; PRG $273F | CPU $E73F | A2 05 jsr CalculateMovementAndClamp_E76B ; PRG $2741 | CPU $E741 | 20 6B E7 ldy #$12 ; PRG $2744 | CPU $E744 | A0 12 clc ; PRG $2746 | CPU $E746 | 18 lda (ScratchIndex),y ; PRG $2747 | CPU $E747 | B1 03 ldy #$02 ; PRG $2749 | CPU $E749 | A0 02 adc (ScratchIndex),y ; PRG $274B | CPU $E74B | 71 03 sta (ScratchIndex),y ; PRG $274D | CPU $E74D | 91 03 ldy #$11 ; PRG $274F | CPU $E74F | A0 11 lda (ScratchIndex),y ; PRG $2751 | CPU $E751 | B1 03 ldy #$01 ; PRG $2753 | CPU $E753 | A0 01 adc (ScratchIndex),y ; PRG $2755 | CPU $E755 | 71 03 sta (ScratchIndex),y ; PRG $2757 | CPU $E757 | 91 03 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E759. ; Local behavior: Executes the decoded update side scrolling gameplay e759 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E759: clc ; PRG $2759 | CPU $E759 | 18 lda #$20 ; PRG $275A | CPU $E75A | A9 20 adc ScratchIndex ; PRG $275C | CPU $E75C | 65 03 sta ScratchIndex ; PRG $275E | CPU $E75E | 85 03 lda #$00 ; PRG $2760 | CPU $E760 | A9 00 adc DataPointerLo ; PRG $2762 | CPU $E762 | 65 04 sta DataPointerLo ; PRG $2764 | CPU $E764 | 85 04 dec Zp_08 ; PRG $2766 | CPU $E766 | C6 08 bne UpdateSideScrollingGameplay_E720 ; PRG $2768 | CPU $E768 | D0 B6 rts ; PRG $276A | CPU $E76A | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value E76 B. ; Local behavior: Executes the decoded calculate and clamp value e76 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_E76B: ldy #$04 ; PRG $276B | CPU $E76B | A0 04 clc ; PRG $276D | CPU $E76D | 18 lda ScratchValue2,x ; PRG $276E | CPU $E76E | B5 02 adc (ScratchIndex),y ; PRG $2770 | CPU $E770 | 71 03 sta (ScratchIndex),y ; PRG $2772 | CPU $E772 | 91 03 dey ; PRG $2774 | CPU $E774 | 88 lda ScratchValue1,x ; PRG $2775 | CPU $E775 | B5 01 adc (ScratchIndex),y ; PRG $2777 | CPU $E777 | 71 03 pha ; PRG $2779 | CPU $E779 | 48 php ; PRG $277A | CPU $E77A | 08 cmp #$F8 ; PRG $277B | CPU $E77B | C9 F8 bcc CalculateMovementAndClamp_E78B ; PRG $277D | CPU $E77D | 90 0C plp ; PRG $277F | CPU $E77F | 28 lda (ScratchIndex),y ; PRG $2780 | CPU $E780 | B1 03 bmi UpdateSideScrollingGameplay_E7A4 ; PRG $2782 | CPU $E782 | 30 20 sec ; PRG $2784 | CPU $E784 | 38 pla ; PRG $2785 | CPU $E785 | 68 sbc #$08 ; PRG $2786 | CPU $E786 | E9 08 clc ; PRG $2788 | CPU $E788 | 18 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E789. ; Local behavior: Executes the decoded update side scrolling gameplay e789 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E789: pha ; PRG $2789 | CPU $E789 | 48 php ; PRG $278A | CPU $E78A | 08 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value E78 B. ; Local behavior: Executes the decoded calculate and clamp value e78 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_E78B: plp ; PRG $278B | CPU $E78B | 28 pla ; PRG $278C | CPU $E78C | 68 sta (ScratchIndex),y ; PRG $278D | CPU $E78D | 91 03 ldy #$00 ; PRG $278F | CPU $E78F | A0 00 lda ScratchValue0,x ; PRG $2791 | CPU $E791 | B5 00 adc (ScratchIndex),y ; PRG $2793 | CPU $E793 | 71 03 cmp #$05 ; PRG $2795 | CPU $E795 | C9 05 bne UpdateSideScrollingGameplay_E79B ; PRG $2797 | CPU $E797 | D0 02 lda #$00 ; PRG $2799 | CPU $E799 | A9 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E79 B. ; Local behavior: Executes the decoded update side scrolling gameplay e79 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E79B: cmp #$FF ; PRG $279B | CPU $E79B | C9 FF bne UpdateGameplayStateField_E7A1 ; PRG $279D | CPU $E79D | D0 02 lda #$04 ; PRG $279F | CPU $E79F | A9 04 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field E7 A1. ; Local behavior: Executes the decoded update gameplay state field e7 a1 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_E7A1: sta (ScratchIndex),y ; PRG $27A1 | CPU $E7A1 | 91 03 rts ; PRG $27A3 | CPU $E7A3 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E7 A4. ; Local behavior: Executes the decoded update side scrolling gameplay e7 a4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E7A4: clc ; PRG $27A4 | CPU $E7A4 | 18 pla ; PRG $27A5 | CPU $E7A5 | 68 adc #$08 ; PRG $27A6 | CPU $E7A6 | 69 08 bcs UpdateSideScrollingGameplay_E789 ; PRG $27A8 | CPU $E7A8 | B0 DF ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E7 AA. ; Local behavior: Executes the decoded update side scrolling gameplay e7 aa sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E7AA: lda #$00 ; PRG $27AA | CPU $E7AA | A9 00 sta ScratchValue0 ; PRG $27AC | CPU $E7AC | 85 00 lda #$04 ; PRG $27AE | CPU $E7AE | A9 04 sta ScratchValue1 ; PRG $27B0 | CPU $E7B0 | 85 01 ldx #$0A ; PRG $27B2 | CPU $E7B2 | A2 0A lda #$14 ; PRG $27B4 | CPU $E7B4 | A9 14 sta ScratchValue2 ; PRG $27B6 | CPU $E7B6 | 85 02 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value E7 B8. ; Local behavior: Executes the decoded calculate and clamp value e7 b8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_E7B8: ldy #$00 ; PRG $27B8 | CPU $E7B8 | A0 00 lda (ScratchValue0),y ; PRG $27BA | CPU $E7BA | B1 00 bne UpdateSideScrollingGameplay_E7CF ; PRG $27BC | CPU $E7BC | D0 11 ldy #$0B ; PRG $27BE | CPU $E7BE | A0 0B lda ScratchValue2 ; PRG $27C0 | CPU $E7C0 | A5 02 sta (ScratchValue0),y ; PRG $27C2 | CPU $E7C2 | 91 00 clc ; PRG $27C4 | CPU $E7C4 | 18 adc #$08 ; PRG $27C5 | CPU $E7C5 | 69 08 cmp #$3C ; PRG $27C7 | CPU $E7C7 | C9 3C bne UpdateSideScrollingGameplay_E7CD ; PRG $27C9 | CPU $E7C9 | D0 02 lda #$14 ; PRG $27CB | CPU $E7CB | A9 14 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E7 CD. ; Local behavior: Executes the decoded update side scrolling gameplay e7 cd sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E7CD: sta ScratchValue2 ; PRG $27CD | CPU $E7CD | 85 02 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E7 CF. ; Local behavior: Executes the decoded update side scrolling gameplay e7 cf sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E7CF: clc ; PRG $27CF | CPU $E7CF | 18 lda #$20 ; PRG $27D0 | CPU $E7D0 | A9 20 adc ScratchValue0 ; PRG $27D2 | CPU $E7D2 | 65 00 sta ScratchValue0 ; PRG $27D4 | CPU $E7D4 | 85 00 lda #$00 ; PRG $27D6 | CPU $E7D6 | A9 00 adc ScratchValue1 ; PRG $27D8 | CPU $E7D8 | 65 01 sta ScratchValue1 ; PRG $27DA | CPU $E7DA | 85 01 dex ; PRG $27DC | CPU $E7DC | CA bne CalculateMovementAndClamp_E7B8 ; PRG $27DD | CPU $E7DD | D0 D9 lda #$F4 ; PRG $27DF | CPU $E7DF | A9 F4 ldy #$24 ; PRG $27E1 | CPU $E7E1 | A0 24 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E7 E3. ; Local behavior: Executes the decoded update side scrolling gameplay e7 e3 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E7E3: sta Ram_0214,y ; PRG $27E3 | CPU $E7E3 | 99 14 02 dey ; PRG $27E6 | CPU $E7E6 | 88 dey ; PRG $27E7 | CPU $E7E7 | 88 dey ; PRG $27E8 | CPU $E7E8 | 88 dey ; PRG $27E9 | CPU $E7E9 | 88 bpl UpdateSideScrollingGameplay_E7E3 ; PRG $27EA | CPU $E7EA | 10 F7 lda #$00 ; PRG $27EC | CPU $E7EC | A9 00 sta ScratchValue0 ; PRG $27EE | CPU $E7EE | 85 00 lda #$04 ; PRG $27F0 | CPU $E7F0 | A9 04 sta ScratchValue1 ; PRG $27F2 | CPU $E7F2 | 85 01 ldx #$0A ; PRG $27F4 | CPU $E7F4 | A2 0A ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E7 F6. ; Local behavior: Executes the decoded update side scrolling gameplay e7 f6 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- E7F6: UpdateSideScrollingGameplay_E7F6: ldy #$00 ; PRG $27F6 | CPU $E7F6 | A0 00 lda (ScratchValue0),y ; PRG $27F8 | CPU $E7F8 | B1 00 bne UpdateSideScrollingGameplay_E803 ; PRG $27FA | CPU $E7FA | D0 07 txa ; PRG $27FC | CPU $E7FC | 8A pha ; PRG $27FD | CPU $E7FD | 48 jsr TransformFlightState_C47C ; PRG $27FE | CPU $E7FE | 20 7C C4 pla ; PRG $2801 | CPU $E801 | 68 tax ; PRG $2802 | CPU $E802 | AA ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E803. ; Local behavior: Executes the decoded update side scrolling gameplay e803 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E803: clc ; PRG $2803 | CPU $E803 | 18 lda #$20 ; PRG $2804 | CPU $E804 | A9 20 adc ScratchValue0 ; PRG $2806 | CPU $E806 | 65 00 sta ScratchValue0 ; PRG $2808 | CPU $E808 | 85 00 lda #$00 ; PRG $280A | CPU $E80A | A9 00 adc ScratchValue1 ; PRG $280C | CPU $E80C | 65 01 sta ScratchValue1 ; PRG $280E | CPU $E80E | 85 01 dex ; PRG $2810 | CPU $E810 | CA bne *-$1B ; PRG $3AB4 | CPU $FAB4 | d0 e3 rts ; PRG $2813 | CPU $E813 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E814. ; Local behavior: Executes the decoded update side scrolling gameplay e814 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E814: lda #$D0 ; PRG $2814 | CPU $E814 | A9 D0 sta ScratchValue2 ; PRG $2816 | CPU $E816 | 85 02 lda #$02 ; PRG $2818 | CPU $E818 | A9 02 sta ScratchIndex ; PRG $281A | CPU $E81A | 85 03 lda #$00 ; PRG $281C | CPU $E81C | A9 00 sta ScratchValue0 ; PRG $281E | CPU $E81E | 85 00 lda #$04 ; PRG $2820 | CPU $E820 | A9 04 sta ScratchValue1 ; PRG $2822 | CPU $E822 | 85 01 ldx Zp_AD ; PRG $2824 | CPU $E824 | A6 AD dex ; PRG $2826 | CPU $E826 | CA bpl UpdateSideScrollingGameplay_E833 ; PRG $2827 | CPU $E827 | 10 0A lda #$40 ; PRG $2829 | CPU $E829 | A9 40 sta ScratchValue0 ; PRG $282B | CPU $E82B | 85 00 lda #$05 ; PRG $282D | CPU $E82D | A9 05 sta ScratchValue1 ; PRG $282F | CPU $E82F | 85 01 ldx #$01 ; PRG $2831 | CPU $E831 | A2 01 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E833. ; Local behavior: Executes the decoded update side scrolling gameplay e833 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E833: stx Zp_AD ; PRG $2833 | CPU $E833 | 86 AD ldx #$0A ; PRG $2835 | CPU $E835 | A2 0A ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State E837. ; Local behavior: Executes the decoded transform flight state e837 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_E837: ldy #$00 ; PRG $2837 | CPU $E837 | A0 00 lda (ScratchValue0),y ; PRG $2839 | CPU $E839 | B1 00 bmi UpdateSideScrollingGameplay_E86E ; PRG $283B | CPU $E83B | 30 31 sta DataPointerLo ; PRG $283D | CPU $E83D | 85 04 ldy #$03 ; PRG $283F | CPU $E83F | A0 03 lda (ScratchValue0),y ; PRG $2841 | CPU $E841 | B1 00 ror DataPointerLo ; PRG $2843 | CPU $E843 | 66 04 ror a ; PRG $2845 | CPU $E845 | 6A ror DataPointerLo ; PRG $2846 | CPU $E846 | 66 04 ror a ; PRG $2848 | CPU $E848 | 6A ror DataPointerLo ; PRG $2849 | CPU $E849 | 66 04 ror a ; PRG $284B | CPU $E84B | 6A ror DataPointerLo ; PRG $284C | CPU $E84C | 66 04 ror a ; PRG $284E | CPU $E84E | 6A cmp #$30 ; PRG $284F | CPU $E84F | C9 30 sta DataPointerLo ; PRG $2851 | CPU $E851 | 85 04 lda #$78 ; PRG $2853 | CPU $E853 | A9 78 bcc TransformFlightState_E859 ; PRG $2855 | CPU $E855 | 90 02 lda #$28 ; PRG $2857 | CPU $E857 | A9 28 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State E859. ; Local behavior: Executes the decoded transform flight state e859 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_E859: clc ; PRG $2859 | CPU $E859 | 18 adc DataPointerLo ; PRG $285A | CPU $E85A | 65 04 ldy #$03 ; PRG $285C | CPU $E85C | A0 03 sta (ScratchValue2),y ; PRG $285E | CPU $E85E | 91 02 ldy #$01 ; PRG $2860 | CPU $E860 | A0 01 lda (ScratchValue0),y ; PRG $2862 | CPU $E862 | B1 00 sec ; PRG $2864 | CPU $E864 | 38 sbc #$2E ; PRG $2865 | CPU $E865 | E9 2E lsr a ; PRG $2867 | CPU $E867 | 4A lsr a ; PRG $2868 | CPU $E868 | 4A lsr a ; PRG $2869 | CPU $E869 | 4A lsr a ; PRG $286A | CPU $E86A | 4A clc ; PRG $286B | CPU $E86B | 18 adc #$17 ; PRG $286C | CPU $E86C | 69 17 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E86 E. ; Local behavior: Executes the decoded update side scrolling gameplay e86 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E86E: ldy #$00 ; PRG $286E | CPU $E86E | A0 00 sta (ScratchValue2),y ; PRG $2870 | CPU $E870 | 91 02 lda ScratchValue0 ; PRG $2872 | CPU $E872 | A5 00 clc ; PRG $2874 | CPU $E874 | 18 adc #$20 ; PRG $2875 | CPU $E875 | 69 20 sta ScratchValue0 ; PRG $2877 | CPU $E877 | 85 00 bcc UpdateSideScrollingGameplay_E87D ; PRG $2879 | CPU $E879 | 90 02 inc ScratchValue1 ; PRG $287B | CPU $E87B | E6 01 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E87 D. ; Local behavior: Executes the decoded update side scrolling gameplay e87 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E87D: lda ScratchValue2 ; PRG $287D | CPU $E87D | A5 02 clc ; PRG $287F | CPU $E87F | 18 adc #$04 ; PRG $2880 | CPU $E880 | 69 04 sta ScratchValue2 ; PRG $2882 | CPU $E882 | 85 02 dex ; PRG $2884 | CPU $E884 | CA bne TransformFlightState_E837 ; PRG $2885 | CPU $E885 | D0 B0 rts ; PRG $2887 | CPU $E887 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E888. ; Local behavior: Executes the decoded update side scrolling gameplay e888 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E888: lda Zp_A1 ; PRG $2888 | CPU $E888 | A5 A1 bmi UpdateGameplayStateField_E896 ; PRG $288A | CPU $E88A | 30 0A bne UpdateSideScrollingGameplay_E8B3 ; PRG $288C | CPU $E88C | D0 25 ldx Zp_32 ; PRG $288E | CPU $E88E | A6 32 lda PreviousControllerButtons,x ; PRG $2890 | CPU $E890 | B5 19 and #$03 ; PRG $2892 | CPU $E892 | 29 03 beq UpdateGameplayStateField_E896 ; PRG $2894 | CPU $E894 | F0 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field E896. ; Local behavior: Executes the decoded update gameplay state field e896 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_E896: rts ; PRG $2896 | CPU $E896 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E897. ; Local behavior: Executes the decoded update side scrolling gameplay e897 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E897: lda #$01 ; PRG $2897 | CPU $E897 | A9 01 sta Zp_A1 ; PRG $2899 | CPU $E899 | 85 A1 lda #$51 ; PRG $289B | CPU $E89B | A9 51 sta ScratchValue0 ; PRG $289D | CPU $E89D | 85 00 lda #$C8 ; PRG $289F | CPU $E89F | A9 C8 sta ScratchValue1 ; PRG $28A1 | CPU $E8A1 | 85 01 lda #$12 ; PRG $28A3 | CPU $E8A3 | A9 12 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E8 A5. ; Local behavior: Executes the decoded update side scrolling gameplay e8 a5 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E8A5: sta ScratchValue2 ; PRG $28A5 | CPU $E8A5 | 85 02 lda #$30 ; PRG $28A7 | CPU $E8A7 | A9 30 sta ScratchIndex ; PRG $28A9 | CPU $E8A9 | 85 03 lda #$03 ; PRG $28AB | CPU $E8AB | A9 03 sta DataPointerLo ; PRG $28AD | CPU $E8AD | 85 04 jsr UpdateSideScrollingGameplay_C169 ; PRG $28AF | CPU $E8AF | 20 69 C1 rts ; PRG $28B2 | CPU $E8B2 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E8 B3. ; Local behavior: Executes the decoded update side scrolling gameplay e8 b3 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E8B3: ldx Ram_0330 ; PRG $28B3 | CPU $E8B3 | AE 30 03 bne UpdateGameplayStateField_E896 ; PRG $28B6 | CPU $E8B6 | D0 DE cmp #$02 ; PRG $28B8 | CPU $E8B8 | C9 02 beq UpdateSideScrollingGameplay_E897 ; PRG $28BA | CPU $E8BA | F0 DB lda #$FF ; PRG $28BC | CPU $E8BC | A9 FF sta Zp_A1 ; PRG $28BE | CPU $E8BE | 85 A1 lda #$63 ; PRG $28C0 | CPU $E8C0 | A9 63 sta ScratchValue0 ; PRG $28C2 | CPU $E8C2 | 85 00 lda #$C8 ; PRG $28C4 | CPU $E8C4 | A9 C8 sta ScratchValue1 ; PRG $28C6 | CPU $E8C6 | 85 01 lda #$12 ; PRG $28C8 | CPU $E8C8 | A9 12 bne UpdateSideScrollingGameplay_E8A5 ; PRG $28CA | CPU $E8CA | D0 D9 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E8 CC. ; Local behavior: Executes the decoded update side scrolling gameplay e8 cc sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E8CC: lda #$E8 ; PRG $28CC | CPU $E8CC | A9 E8 sta Zp_A3 ; PRG $28CE | CPU $E8CE | 85 A3 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E8 D0. ; Local behavior: Executes the decoded update side scrolling gameplay e8 d0 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E8D0: lda #$F4 ; PRG $28D0 | CPU $E8D0 | A9 F4 sta Zp_A4 ; PRG $28D2 | CPU $E8D2 | 85 A4 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E8 D4. ; Local behavior: Executes the decoded update side scrolling gameplay e8 d4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E8D4: lda Zp_A4 ; PRG $28D4 | CPU $E8D4 | A5 A4 ldy #$00 ; PRG $28D6 | CPU $E8D6 | A0 00 jsr UpdateSideScrollingGameplay_E9BA ; PRG $28D8 | CPU $E8D8 | 20 BA E9 lda Zp_A5 ; PRG $28DB | CPU $E8DB | A5 A5 ldy #$03 ; PRG $28DD | CPU $E8DD | A0 03 jsr UpdateSideScrollingGameplay_E9BA ; PRG $28DF | CPU $E8DF | 20 BA E9 lda #$93 ; PRG $28E2 | CPU $E8E2 | A9 93 ldy #$01 ; PRG $28E4 | CPU $E8E4 | A0 01 jsr UpdateSideScrollingGameplay_E9BA ; PRG $28E6 | CPU $E8E6 | 20 BA E9 lda #$01 ; PRG $28E9 | CPU $E8E9 | A9 01 ldy #$02 ; PRG $28EB | CPU $E8EB | A0 02 jsr UpdateSideScrollingGameplay_E9BA ; PRG $28ED | CPU $E8ED | 20 BA E9 lda #$00 ; PRG $28F0 | CPU $E8F0 | A9 00 sta Zp_B1 ; PRG $28F2 | CPU $E8F2 | 85 B1 rts ; PRG $28F4 | CPU $E8F4 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E8 F5. ; Local behavior: Executes the decoded update side scrolling gameplay e8 f5 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E8F5: cmp #$E8 ; PRG $28F5 | CPU $E8F5 | C9 E8 beq UpdateGameplayStateField_E901 ; PRG $28F7 | CPU $E8F7 | F0 08 dec Zp_A3 ; PRG $28F9 | CPU $E8F9 | C6 A3 lda Zp_A3 ; PRG $28FB | CPU $E8FB | A5 A3 cmp #$E8 ; PRG $28FD | CPU $E8FD | C9 E8 beq UpdateSideScrollingGameplay_E8D0 ; PRG $28FF | CPU $E8FF | F0 CF ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field E901. ; Local behavior: Executes the decoded update gameplay state field e901 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_E901: rts ; PRG $2901 | CPU $E901 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E902. ; Local behavior: Executes the decoded update side scrolling gameplay e902 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E902: sta Zp_A6 ; PRG $2902 | CPU $E902 | 85 A6 lda #$27 ; PRG $2904 | CPU $E904 | A9 27 sta Zp_A3 ; PRG $2906 | CPU $E906 | 85 A3 bne UpdateSideScrollingGameplay_E8D4 ; PRG $2908 | CPU $E908 | D0 CA ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State E90 A. ; Local behavior: Executes the decoded transform flight state e90 a sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_E90A: lda Zp_A6 ; PRG $290A | CPU $E90A | A5 A6 beq UpdateSideScrollingGameplay_E8CC ; PRG $290C | CPU $E90C | F0 BE asl a ; PRG $290E | CPU $E90E | 0A tay ; PRG $290F | CPU $E90F | A8 lda GameplayLookupTable_C6BF,y ; PRG $2910 | CPU $E910 | B9 BF C6 sta Ram_029D ; PRG $2913 | CPU $E913 | 8D 9D 02 lda GameplayLookupTable_C6C0,y ; PRG $2916 | CPU $E916 | B9 C0 C6 sta Ram_02A1 ; PRG $2919 | CPU $E919 | 8D A1 02 lda #$F4 ; PRG $291C | CPU $E91C | A9 F4 ldy #$00 ; PRG $291E | CPU $E91E | A0 00 jsr UpdateSideScrollingGameplay_E9BA ; PRG $2920 | CPU $E920 | 20 BA E9 lda Zp_A4 ; PRG $2923 | CPU $E923 | A5 A4 sta Ram_029C ; PRG $2925 | CPU $E925 | 8D 9C 02 sta Ram_02A0 ; PRG $2928 | CPU $E928 | 8D A0 02 lda Zp_A5 ; PRG $292B | CPU $E92B | A5 A5 sta Ram_029F ; PRG $292D | CPU $E92D | 8D 9F 02 clc ; PRG $2930 | CPU $E930 | 18 adc #$08 ; PRG $2931 | CPU $E931 | 69 08 sta Ram_02A3 ; PRG $2933 | CPU $E933 | 8D A3 02 lda #$01 ; PRG $2936 | CPU $E936 | A9 01 ldy #$02 ; PRG $2938 | CPU $E938 | A0 02 jsr UpdateSideScrollingGameplay_E9BA ; PRG $293A | CPU $E93A | 20 BA E9 dec Zp_A3 ; PRG $293D | CPU $E93D | C6 A3 lda #$00 ; PRG $293F | CPU $E93F | A9 00 sta Zp_B1 ; PRG $2941 | CPU $E941 | 85 B1 rts ; PRG $2943 | CPU $E943 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E944. ; Local behavior: Executes the decoded update side scrolling gameplay e944 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E944: lda Zp_A3 ; PRG $2944 | CPU $E944 | A5 A3 beq TransformFlightState_E90A ; PRG $2946 | CPU $E946 | F0 C2 bmi UpdateSideScrollingGameplay_E8F5 ; PRG $2948 | CPU $E948 | 30 AB sec ; PRG $294A | CPU $E94A | 38 sbc #$28 ; PRG $294B | CPU $E94B | E9 28 bcs UpdateSideScrollingGameplay_E902 ; PRG $294D | CPU $E94D | B0 B3 dec Zp_A3 ; PRG $294F | CPU $E94F | C6 A3 and #$02 ; PRG $2951 | CPU $E951 | 29 02 ldx Zp_A7 ; PRG $2953 | CPU $E953 | A6 A7 beq UpdateSideScrollingGameplay_E958 ; PRG $2955 | CPU $E955 | F0 01 sec ; PRG $2957 | CPU $E957 | 38 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E958. ; Local behavior: Executes the decoded update side scrolling gameplay e958 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E958: adc #$93 ; PRG $2958 | CPU $E958 | 69 93 ldy #$01 ; PRG $295A | CPU $E95A | A0 01 jsr UpdateSideScrollingGameplay_E9BA ; PRG $295C | CPU $E95C | 20 BA E9 ldx #$03 ; PRG $295F | CPU $E95F | A2 03 ldy #$00 ; PRG $2961 | CPU $E961 | A0 00 lda #$FE ; PRG $2963 | CPU $E963 | A9 FE jsr UpdateSideScrollingGameplay_E9C7 ; PRG $2965 | CPU $E965 | 20 C7 E9 ldx #$03 ; PRG $2968 | CPU $E968 | A2 03 ldy #$10 ; PRG $296A | CPU $E96A | A0 10 lda #$02 ; PRG $296C | CPU $E96C | A9 02 jsr UpdateSideScrollingGameplay_E9C7 ; PRG $296E | CPU $E96E | 20 C7 E9 ldx #$03 ; PRG $2971 | CPU $E971 | A2 03 ldy #$0B ; PRG $2973 | CPU $E973 | A0 0B lda #$02 ; PRG $2975 | CPU $E975 | A9 02 jsr UpdateSideScrollingGameplay_E9E6 ; PRG $2977 | CPU $E977 | 20 E6 E9 ldx #$02 ; PRG $297A | CPU $E97A | A2 02 ldy #$1B ; PRG $297C | CPU $E97C | A0 1B lda #$FE ; PRG $297E | CPU $E97E | A9 FE jsr UpdateSideScrollingGameplay_E9E6 ; PRG $2980 | CPU $E980 | 20 E6 E9 ldx #$01 ; PRG $2983 | CPU $E983 | A2 01 ldy #$03 ; PRG $2985 | CPU $E985 | A0 03 lda #$FE ; PRG $2987 | CPU $E987 | A9 FE jsr UpdateSideScrollingGameplay_E9E6 ; PRG $2989 | CPU $E989 | 20 E6 E9 ldx #$02 ; PRG $298C | CPU $E98C | A2 02 ldy #$20 ; PRG $298E | CPU $E98E | A0 20 lda #$FF ; PRG $2990 | CPU $E990 | A9 FF jsr UpdateSideScrollingGameplay_E9C7 ; PRG $2992 | CPU $E992 | 20 C7 E9 ldx #$02 ; PRG $2995 | CPU $E995 | A2 02 ldy #$28 ; PRG $2997 | CPU $E997 | A0 28 lda #$01 ; PRG $2999 | CPU $E999 | A9 01 jsr UpdateSideScrollingGameplay_E9C7 ; PRG $299B | CPU $E99B | 20 C7 E9 ldx #$02 ; PRG $299E | CPU $E99E | A2 02 ldy #$27 ; PRG $29A0 | CPU $E9A0 | A0 27 lda #$01 ; PRG $29A2 | CPU $E9A2 | A9 01 jsr UpdateSideScrollingGameplay_E9E6 ; PRG $29A4 | CPU $E9A4 | 20 E6 E9 ldx #$01 ; PRG $29A7 | CPU $E9A7 | A2 01 ldy #$2F ; PRG $29A9 | CPU $E9A9 | A0 2F lda #$FF ; PRG $29AB | CPU $E9AB | A9 FF jsr UpdateSideScrollingGameplay_E9E6 ; PRG $29AD | CPU $E9AD | 20 E6 E9 ldx #$01 ; PRG $29B0 | CPU $E9B0 | A2 01 ldy #$23 ; PRG $29B2 | CPU $E9B2 | A0 23 lda #$FF ; PRG $29B4 | CPU $E9B4 | A9 FF jsr UpdateSideScrollingGameplay_E9E6 ; PRG $29B6 | CPU $E9B6 | 20 E6 E9 rts ; PRG $29B9 | CPU $E9B9 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E9 BA. ; Local behavior: Executes the decoded update side scrolling gameplay e9 ba sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E9BA: ldx #$0C ; PRG $29BA | CPU $E9BA | A2 0C ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E9 BC. ; Local behavior: Executes the decoded update side scrolling gameplay e9 bc sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E9BC: sta Ram_029C,y ; PRG $29BC | CPU $E9BC | 99 9C 02 iny ; PRG $29BF | CPU $E9BF | C8 iny ; PRG $29C0 | CPU $E9C0 | C8 iny ; PRG $29C1 | CPU $E9C1 | C8 iny ; PRG $29C2 | CPU $E9C2 | C8 dex ; PRG $29C3 | CPU $E9C3 | CA bne UpdateSideScrollingGameplay_E9BC ; PRG $29C4 | CPU $E9C4 | D0 F6 rts ; PRG $29C6 | CPU $E9C6 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E9 C7. ; Local behavior: Executes the decoded update side scrolling gameplay e9 c7 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E9C7: sta ScratchValue0 ; PRG $29C7 | CPU $E9C7 | 85 00 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value E9 C9. ; Local behavior: Executes the decoded calculate and clamp value e9 c9 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_E9C9: clc ; PRG $29C9 | CPU $E9C9 | 18 lda Ram_029C,y ; PRG $29CA | CPU $E9CA | B9 9C 02 adc ScratchValue0 ; PRG $29CD | CPU $E9CD | 65 00 cmp #$E0 ; PRG $29CF | CPU $E9CF | C9 E0 bcc UpdateSideScrollingGameplay_E9D5 ; PRG $29D1 | CPU $E9D1 | 90 02 lda #$F4 ; PRG $29D3 | CPU $E9D3 | A9 F4 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E9 D5. ; Local behavior: Executes the decoded update side scrolling gameplay e9 d5 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E9D5: cmp #$30 ; PRG $29D5 | CPU $E9D5 | C9 30 bcs UpdateSideScrollingGameplay_E9DB ; PRG $29D7 | CPU $E9D7 | B0 02 lda #$F4 ; PRG $29D9 | CPU $E9D9 | A9 F4 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E9 DB. ; Local behavior: Executes the decoded update side scrolling gameplay e9 db sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E9DB: sta Ram_029C,y ; PRG $29DB | CPU $E9DB | 99 9C 02 iny ; PRG $29DE | CPU $E9DE | C8 iny ; PRG $29DF | CPU $E9DF | C8 iny ; PRG $29E0 | CPU $E9E0 | C8 iny ; PRG $29E1 | CPU $E9E1 | C8 dex ; PRG $29E2 | CPU $E9E2 | CA bne CalculateMovementAndClamp_E9C9 ; PRG $29E3 | CPU $E9E3 | D0 E4 rts ; PRG $29E5 | CPU $E9E5 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E9 E6. ; Local behavior: Executes the decoded update side scrolling gameplay e9 e6 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E9E6: sta ScratchValue0 ; PRG $29E6 | CPU $E9E6 | 85 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E9 E8. ; Local behavior: Executes the decoded update side scrolling gameplay e9 e8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E9E8: clc ; PRG $29E8 | CPU $E9E8 | 18 lda ScratchValue0 ; PRG $29E9 | CPU $E9E9 | A5 00 bpl UpdateSideScrollingGameplay_E9FF ; PRG $29EB | CPU $E9EB | 10 12 adc Ram_029C,y ; PRG $29ED | CPU $E9ED | 79 9C 02 bcs UpdateSideScrollingGameplay_EA04 ; PRG $29F0 | CPU $E9F0 | B0 12 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E9 F2. ; Local behavior: Executes the decoded update side scrolling gameplay e9 f2 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E9F2: lda #$F4 ; PRG $29F2 | CPU $E9F2 | A9 F4 sta Ram_0299,y ; PRG $29F4 | CPU $E9F4 | 99 99 02 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E9 F7. ; Local behavior: Executes the decoded update side scrolling gameplay e9 f7 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E9F7: iny ; PRG $29F7 | CPU $E9F7 | C8 iny ; PRG $29F8 | CPU $E9F8 | C8 iny ; PRG $29F9 | CPU $E9F9 | C8 iny ; PRG $29FA | CPU $E9FA | C8 dex ; PRG $29FB | CPU $E9FB | CA bne UpdateSideScrollingGameplay_E9E8 ; PRG $29FC | CPU $E9FC | D0 EA rts ; PRG $29FE | CPU $E9FE | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay E9 FF. ; Local behavior: Executes the decoded update side scrolling gameplay e9 ff sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_E9FF: adc Ram_029C,y ; PRG $29FF | CPU $E9FF | 79 9C 02 bcs UpdateSideScrollingGameplay_E9F2 ; PRG $2A02 | CPU $EA02 | B0 EE ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay EA04. ; Local behavior: Executes the decoded update side scrolling gameplay ea04 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_EA04: sta Ram_029C,y ; PRG $2A04 | CPU $EA04 | 99 9C 02 jmp UpdateSideScrollingGameplay_E9F7 ; PRG $2A07 | CPU $EA07 | 4C F7 E9 .byte $3F,$00,$20,$0F,$30,$27,$16,$0F,$02,$21,$08,$0F,$27,$10,$16,$0F ; PRG $2A0A | CPU $EA0A .byte $20,$02,$21,$0F,$20,$02,$21,$0F,$35,$13,$14,$0F,$09,$28,$1A,$0F ; PRG $2A1A | CPU $EA1A .byte $17,$20,$06,$23,$C0,$08,$80,$A0,$20,$00,$00,$00,$A0,$A0,$23,$E8 ; PRG $2A2A | CPU $EA2A .byte $48,$AA,$23,$F0,$48,$FA,$27,$E8,$48,$AA,$27,$F0,$48,$FA,$21,$19 ; PRG $2A3A | CPU $EA3A .byte $01,$38,$25,$16,$01,$38,$21,$1F,$01,$37,$25,$39,$01,$3A,$20,$ED ; PRG $2A4A | CPU $EA4A .byte $01,$38,$24,$E6,$01,$39,$24,$F1,$01,$39,$21,$46,$01,$37,$25,$49 ; PRG $2A5A | CPU $EA5A .byte $01,$38,$21,$96,$01,$3A,$25,$D6,$01,$38,$21,$E5,$01,$38,$21,$F4 ; PRG $2A6A | CPU $EA6A .byte $01,$39,$21,$FC,$01,$39,$22,$22,$01,$37,$26,$20,$01,$39,$26,$2D ; PRG $2A7A | CPU $EA7A .byte $01,$37,$22,$4A,$01,$39,$26,$5B,$01,$39,$22,$73,$01,$37,$26,$78 ; PRG $2A8A | CPU $EA8A .byte $01,$37,$24,$C0,$60,$47,$20,$C0,$60,$47,$20,$4A,$84,$3F,$40,$40 ; PRG $2A9A | CPU $EA9A .byte $41,$20,$55,$84,$43,$44,$44,$45,$20,$4F,$02,$50,$60,$20,$8F,$02 ; PRG $2AAA | CPU $EAAA .byte $51,$61,$20,$A2,$01,$2F,$20,$AB,$03,$4C,$4D,$4E,$00,$23,$40,$01 ; PRG $2ABA | CPU $EABA .byte $3C,$23,$48,$01,$3C,$23,$4C,$01,$3C,$23,$57,$01,$3C,$27,$40,$01 ; PRG $2ACA | CPU $EACA .byte $3C,$27,$4A,$01,$3C,$27,$4D,$01,$3C,$27,$50,$01,$3C,$00,$3F,$00 ; PRG $2ADA | CPU $EADA .byte $14,$0F,$30,$01,$21,$0F,$3C,$22,$1C,$0F,$30,$32,$21,$0F,$37,$27 ; PRG $2AEA | CPU $EAEA .byte $16,$0F,$30,$32,$21,$20,$7D,$02,$5E,$6D,$20,$82,$1C,$00,$10,$20 ; PRG $2AFA | CPU $EAFA .byte $30,$40,$50,$60,$70,$80,$90,$A0,$B0,$C0,$D0,$E0,$F0,$04,$14,$24 ; PRG $2B0A | CPU $EB0A .byte $34,$44,$54,$64,$74,$84,$94,$A4,$B4,$20,$A2,$1C,$01,$11,$21,$31 ; PRG $2B1A | CPU $EB1A .byte $41,$51,$61,$71,$81,$91,$A1,$B1,$C1,$D1,$E1,$F1,$05,$15,$25,$35 ; PRG $2B2A | CPU $EB2A .byte $45,$55,$65,$75,$85,$95,$A5,$B5,$20,$C2,$1C,$02,$12,$22,$32,$42 ; PRG $2B3A | CPU $EB3A .byte $52,$62,$72,$82,$92,$A2,$B2,$C2,$D2,$E2,$F2,$06,$16,$26,$36,$46 ; PRG $2B4A | CPU $EB4A .byte $56,$66,$76,$86,$96,$A6,$B6,$20,$E2,$1C,$03,$13,$23,$33,$43,$53 ; PRG $2B5A | CPU $EB5A .byte $63,$73,$83,$93,$A3,$B3,$C3,$D3,$E3,$F3,$07,$17,$27,$37,$47,$57 ; PRG $2B6A | CPU $EB6A .byte $67,$77,$87,$97,$A7,$B7,$21,$69,$0F,$1B,$FF,$1E,$5D,$2C,$2F,$6C ; PRG $2B7A | CPU $EB7A .byte $3E,$FF,$0D,$2C,$6D,$6C,$FF,$2C,$21,$A9,$0F,$1B,$FF,$1E,$5D,$2C ; PRG $2B8A | CPU $EB8A .byte $2F,$6C,$3E,$FF,$0D,$2C,$6D,$6C,$FF,$3C,$21,$E9,$0F,$2B,$FF,$1E ; PRG $2B9A | CPU $EB9A .byte $5D,$2C,$2F,$6C,$3E,$FF,$0D,$2C,$6D,$6C,$FF,$2C,$22,$29,$0F,$2B ; PRG $2BAA | CPU $EBAA .byte $FF,$1E,$5D,$2C,$2F,$6C,$3E,$FF,$0D,$2C,$6D,$6C,$FF,$3C,$22,$A5 ; PRG $2BBA | CPU $EBBA .byte $16,$5F,$1B,$1C,$0C,$0C,$FF,$1D,$2C,$5D,$FF,$2C,$6D,$6C,$3E,$2D ; PRG $2BCA | CPU $EBCA .byte $4C,$2C,$6F,$2D,$7D,$4C,$4F,$22,$E6,$13,$2C,$5D,$5D,$FF,$3E,$2D ; PRG $2BDA | CPU $EBDA .byte $0D,$1D,$5E,$4E,$FF,$3E,$6C,$4E,$6C,$3E,$7E,$6C,$5C,$23,$2A,$0B ; PRG $2BEA | CPU $EBEA .byte $5D,$2D,$4C,$6C,$7D,$4E,$6C,$5C,$FF,$3C,$2F,$23,$44,$18,$7D,$2D ; PRG $2BFA | CPU $EBFA .byte $7D,$5E,$6C,$7D,$5C,$0E,$FF,$0E,$7C,$FF,$2C,$6D,$6C,$3E,$2D,$4C ; PRG $2C0A | CPU $EC0A .byte $2C,$FF,$2D,$7D,$4C,$4F,$23,$C0,$20,$00,$00,$00,$00,$00,$00,$00 ; PRG $2C1A | CPU $EC1A .byte $A0,$28,$0A,$0A,$0A,$0A,$0A,$02,$00,$00,$00,$FF,$F0,$FB,$F0,$00 ; PRG $2C2A | CPU $EC2A .byte $00,$00,$00,$FF,$FF,$FF,$FF,$00,$00,$23,$E0,$20,$08,$00,$FF,$0F ; PRG $2C3A | CPU $EC3A .byte $AF,$AF,$02,$02,$00,$BA,$AA,$AA,$AA,$AA,$AA,$00,$00,$50,$56,$55 ; PRG $2C4A | CPU $EC4A .byte $55,$59,$50,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3F,$00,$14 ; PRG $2C5A | CPU $EC5A .byte $0F,$30,$01,$21,$0F,$3C,$22,$1C,$0F,$30,$32,$21,$0F,$37,$27,$16 ; PRG $2C6A | CPU $EC6A .byte $0F,$30,$32,$21,$20,$7D,$02,$5E,$6D,$20,$82,$1C,$00,$10,$20,$30 ; PRG $2C7A | CPU $EC7A .byte $40,$50,$60,$70,$80,$90,$A0,$B0,$C0,$D0,$E0,$F0,$04,$14,$24,$34 ; PRG $2C8A | CPU $EC8A .byte $44,$54,$64,$74,$84,$94,$A4,$B4,$20,$A2,$1C,$01,$11,$21,$31,$41 ; PRG $2C9A | CPU $EC9A .byte $51,$61,$71,$81,$91,$A1,$B1,$C1,$D1,$E1,$F1,$05,$15,$25,$35,$45 ; PRG $2CAA | CPU $ECAA .byte $55,$65,$75,$85,$95,$A5,$B5,$20,$C2,$1C,$02,$12,$22,$32,$42,$52 ; PRG $2CBA | CPU $ECBA .byte $62,$72,$82,$92,$A2,$B2,$C2,$D2,$E2,$F2,$06,$16,$26,$36,$46,$56 ; PRG $2CCA | CPU $ECCA .byte $66,$76,$86,$96,$A6,$B6,$20,$E2,$1C,$03,$13,$23,$33,$43,$53,$63 ; PRG $2CDA | CPU $ECDA .byte $73,$83,$93,$A3,$B3,$C3,$D3,$E3,$F3,$07,$17,$27,$37,$47,$57,$67 ; PRG $2CEA | CPU $ECEA .byte $77,$87,$97,$A7,$B7,$21,$65,$15,$5E,$6D,$FF,$2C,$7D,$5C,$FF,$5F ; PRG $2CFA | CPU $ECFA .byte $1B,$1C,$0C,$1B,$FF,$0F,$2D,$5D,$5D,$2D,$2C,$6D,$4E,$21,$A5,$16 ; PRG $2D0A | CPU $ED0A .byte $6C,$5D,$6C,$4C,$5E,$3E,$0E,$7D,$2D,$4C,$4E,$FF,$0D,$2C,$6D,$6C ; PRG $2D1A | CPU $ED1A .byte $4E,$6F,$2D,$7D,$4C,$4F,$22,$02,$1C,$4E,$6E,$3C,$5D,$2D,$4C,$6C ; PRG $2D2A | CPU $ED2A .byte $7D,$4E,$6C,$5C,$FF,$7C,$3E,$0E,$6D,$FF,$2C,$5E,$2C,$3E,$2D,$FF ; PRG $2D3A | CPU $ED3A .byte $4C,$0E,$3E,$1E,$4F,$22,$47,$11,$3C,$2F,$FF,$1D,$2C,$5D,$FF,$5D ; PRG $2D4A | CPU $ED4A .byte $2C,$3C,$0E,$3E,$2C,$5E,$0E,$3E,$2F,$22,$A5,$16,$5F,$1B,$1C,$0C ; PRG $2D5A | CPU $ED5A .byte $0C,$FF,$1D,$2C,$5D,$FF,$2C,$6D,$6C,$3E,$2D,$4C,$2C,$6F,$2D,$7D ; PRG $2D6A | CPU $ED6A .byte $4C,$4F,$22,$E6,$13,$2C,$5D,$5D,$FF,$3E,$2D,$0D,$1D,$5E,$4E,$FF ; PRG $2D7A | CPU $ED7A .byte $3E,$6C,$4E,$6C,$3E,$7E,$6C,$5C,$23,$2A,$0B,$5D,$2D,$4C,$6C,$7D ; PRG $2D8A | CPU $ED8A .byte $4E,$6C,$5C,$FF,$3C,$2F,$23,$44,$18,$7D,$2D,$7D,$5E,$6C,$7D,$5C ; PRG $2D9A | CPU $ED9A .byte $0E,$FF,$0E,$7C,$FF,$2C,$6D,$6C,$3E,$2D,$4C,$2C,$FF,$2D,$7D,$4C ; PRG $2DAA | CPU $EDAA .byte $4F,$23,$C0,$20,$00,$00,$00,$00,$00,$00,$00,$A0,$28,$0A,$0A,$0A ; PRG $2DBA | CPU $EDBA .byte $0A,$0A,$02,$00,$00,$50,$5F,$50,$5B,$50,$10,$00,$00,$05,$05,$05 ; PRG $2DCA | CPU $EDCA .byte $05,$05,$05,$00,$23,$E0,$20,$55,$55,$55,$55,$55,$55,$15,$05,$00 ; PRG $2DDA | CPU $EDDA .byte $BA,$AA,$AA,$AA,$AA,$AA,$00,$00,$50,$56,$55,$55,$59,$50,$00,$00 ; PRG $2DEA | CPU $EDEA .byte $00,$00,$00,$00,$00,$00,$00,$00,$3F,$00,$10,$0F,$27,$27,$27,$0F ; PRG $2DFA | CPU $EDFA .byte $16,$21,$21,$0F,$20,$02,$21,$0F,$30,$27,$16,$21,$89,$0B,$0A,$1D ; PRG $2E0A | CPU $EE0A .byte $1D,$0A,$0C,$14,$24,$20,$0A,$1F,$0E,$21,$CB,$09,$0C,$18,$16,$19 ; PRG $2E1A | CPU $EE1A .byte $15,$0E,$1D,$0E,$0D,$22,$8A,$0B,$0B,$18,$17,$1E,$1C,$24,$4F,$24 ; PRG $2E2A | CPU $EE2A .byte $24,$00,$00,$23,$EA,$04,$A5,$A5,$AF,$AF,$23,$C8,$48,$FF,$20,$A2 ; PRG $2E3A | CPU $EE3A .byte $01,$2F,$20,$AB,$03,$4C,$4D,$4E,$20,$C0,$60,$47,$00,$20,$A2,$01 ; PRG $2E4A | CPU $EE4A .byte $2F,$20,$AB,$03,$4C,$4D,$4E,$20,$C0,$60,$47,$00,$23,$20,$03,$32 ; PRG $2E5A | CPU $EE5A .byte $34,$33,$23,$00,$05,$30,$24,$31,$36,$33,$22,$E4,$02,$31,$33,$22 ; PRG $2E6A | CPU $EE6A .byte $C5,$05,$31,$33,$24,$32,$30,$22,$A6,$03,$31,$35,$30,$22,$E9,$02 ; PRG $2E7A | CPU $EE7A .byte $32,$30,$23,$0A,$02,$32,$30,$23,$2B,$06,$32,$34,$34,$34,$34,$33 ; PRG $2E8A | CPU $EE8A .byte $23,$10,$09,$31,$34,$34,$30,$24,$24,$31,$36,$33,$23,$33,$04,$32 ; PRG $2E9A | CPU $EE9A .byte $34,$34,$33,$22,$F8,$05,$31,$36,$33,$32,$30,$22,$DA,$02,$31,$30 ; PRG $2EAA | CPU $EEAA .byte $23,$1C,$03,$32,$36,$30,$23,$3E,$02,$32,$34,$27,$20,$02,$34,$33 ; PRG $2EBA | CPU $EEBA .byte $27,$01,$06,$31,$34,$34,$34,$34,$30,$27,$26,$0A,$32,$34,$34,$35 ; PRG $2ECA | CPU $EECA .byte $34,$35,$34,$34,$35,$33,$27,$0F,$02,$31,$33,$26,$F0,$07,$31,$33 ; PRG $2EDA | CPU $EEDA .byte $32,$33,$24,$32,$30,$26,$D1,$05,$31,$30,$31,$35,$30,$27,$16,$0A ; PRG $2EEA | CPU $EEEA .byte $32,$30,$24,$31,$30,$24,$24,$31,$33,$32,$27,$37,$07,$32,$34,$33 ; PRG $2EFA | CPU $EEFA .byte $32,$34,$34,$33,$26,$FE,$02,$31,$30,$00,$23,$20,$60,$34,$27,$20 ; PRG $2F0A | CPU $EF0A .byte $60,$34,$23,$23,$01,$35,$23,$27,$01,$35,$23,$29,$01,$35,$23,$39 ; PRG $2F1A | CPU $EF1A .byte $01,$35,$27,$23,$01,$35,$27,$25,$01,$35,$27,$2E,$01,$35,$27,$2F ; PRG $2F2A | CPU $EF2A .byte $01,$35,$27,$33,$01,$35,$27,$39,$01,$35,$23,$3C,$01,$35,$00,$FF ; PRG $2F3A | CPU $EF3A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $2F4A | CPU $EF4A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $2F5A | CPU $EF5A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $2F6A | CPU $EF6A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $2F7A | CPU $EF7A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $2F8A | CPU $EF8A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $2F9A | CPU $EF9A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $2FAA | CPU $EFAA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $2FBA | CPU $EFBA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $2FCA | CPU $EFCA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $2FDA | CPU $EFDA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $2FEA | CPU $EFEA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $2FFA | CPU $EFFA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $300A | CPU $F00A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $301A | CPU $F01A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $302A | CPU $F02A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $303A | CPU $F03A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $304A | CPU $F04A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $305A | CPU $F05A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $306A | CPU $F06A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $307A | CPU $F07A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $308A | CPU $F08A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $309A | CPU $F09A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $30AA | CPU $F0AA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $30BA | CPU $F0BA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $30CA | CPU $F0CA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $30DA | CPU $F0DA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $30EA | CPU $F0EA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $30FA | CPU $F0FA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $310A | CPU $F10A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $311A | CPU $F11A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $312A | CPU $F12A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $313A | CPU $F13A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $314A | CPU $F14A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $315A | CPU $F15A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $316A | CPU $F16A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $317A | CPU $F17A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $318A | CPU $F18A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $319A | CPU $F19A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $31AA | CPU $F1AA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $31BA | CPU $F1BA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $31CA | CPU $F1CA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $31DA | CPU $F1DA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $31EA | CPU $F1EA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $31FA | CPU $F1FA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $320A | CPU $F20A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $321A | CPU $F21A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $322A | CPU $F22A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $323A | CPU $F23A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $324A | CPU $F24A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $325A | CPU $F25A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $326A | CPU $F26A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $327A | CPU $F27A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $328A | CPU $F28A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $329A | CPU $F29A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $32AA | CPU $F2AA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $32BA | CPU $F2BA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $32CA | CPU $F2CA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $32DA | CPU $F2DA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $32EA | CPU $F2EA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $32FA | CPU $F2FA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $330A | CPU $F30A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $331A | CPU $F31A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $332A | CPU $F32A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $333A | CPU $F33A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $334A | CPU $F34A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $335A | CPU $F35A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $336A | CPU $F36A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $337A | CPU $F37A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $338A | CPU $F38A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $339A | CPU $F39A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $33AA | CPU $F3AA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $33BA | CPU $F3BA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $33CA | CPU $F3CA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $33DA | CPU $F3DA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $33EA | CPU $F3EA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $33FA | CPU $F3FA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $340A | CPU $F40A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $341A | CPU $F41A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $342A | CPU $F42A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $343A | CPU $F43A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $344A | CPU $F44A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $345A | CPU $F45A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $346A | CPU $F46A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $347A | CPU $F47A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $348A | CPU $F48A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $349A | CPU $F49A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $34AA | CPU $F4AA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $34BA | CPU $F4BA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $34CA | CPU $F4CA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $34DA | CPU $F4DA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $34EA | CPU $F4EA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $34FA | CPU $F4FA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $350A | CPU $F50A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $351A | CPU $F51A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $352A | CPU $F52A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $353A | CPU $F53A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $354A | CPU $F54A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $355A | CPU $F55A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $356A | CPU $F56A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $357A | CPU $F57A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $358A | CPU $F58A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $359A | CPU $F59A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $35AA | CPU $F5AA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $35BA | CPU $F5BA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $35CA | CPU $F5CA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $35DA | CPU $F5DA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $35EA | CPU $F5EA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $35FA | CPU $F5FA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $360A | CPU $F60A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $361A | CPU $F61A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $362A | CPU $F62A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $363A | CPU $F63A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $364A | CPU $F64A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $365A | CPU $F65A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $366A | CPU $F66A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $367A | CPU $F67A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $368A | CPU $F68A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $369A | CPU $F69A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $36AA | CPU $F6AA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $36BA | CPU $F6BA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $36CA | CPU $F6CA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $36DA | CPU $F6DA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $36EA | CPU $F6EA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $36FA | CPU $F6FA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $370A | CPU $F70A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $371A | CPU $F71A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $372A | CPU $F72A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $373A | CPU $F73A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $374A | CPU $F74A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $375A | CPU $F75A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $376A | CPU $F76A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $377A | CPU $F77A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $378A | CPU $F78A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $379A | CPU $F79A .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $37AA | CPU $F7AA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $37BA | CPU $F7BA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $37CA | CPU $F7CA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $37DA | CPU $F7DA .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $37EA | CPU $F7EA .byte $FF,$FF,$FF,$FF,$FF,$FF ; PRG $37FA | CPU $F7FA GameplayLookupTable_F800: .byte $07 ; PRG $3800 | CPU $F800 GameplayLookupTable_F801: .byte $F0,$00,$69,$00,$5E,$00,$3E,$00,$00,$00,$D4,$00,$BD,$00,$B2,$00 ; PRG $3801 | CPU $F801 .byte $A8,$00,$9F,$00,$8D,$00,$7E,$00,$70,$01,$AB,$01,$7C,$01,$67,$01 ; PRG $3811 | CPU $F811 .byte $52,$01,$3F,$01,$1C,$00,$FD,$00,$EE,$00,$E1,$03,$57,$02,$F9,$02 ; PRG $3821 | CPU $F821 .byte $CF,$02,$A6,$02,$80,$02,$3A,$02,$1A,$01,$FC,$01,$DF,$01,$C4,$06 ; PRG $3831 | CPU $F831 .byte $AE,$05,$F3,$05,$4D,$05,$01,$04,$75,$03,$89 ; PRG $3841 | CPU $F841 GameplayLookupTable_F84C: .byte $03,$06,$15,$18,$30,$12,$0E,$07,$05,$0A,$14,$28,$50,$1E,$3C,$06 ; PRG $384C | CPU $F84C .byte $0C,$18,$30,$60,$10,$48,$08,$04,$0C,$18,$30,$6C,$24,$54,$08,$07 ; PRG $385C | CPU $F85C .byte $0E,$1C,$38,$70,$2A,$0A,$09,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $386C | CPU $F86C .byte $FF,$FF,$FF,$FF ; PRG $387C | CPU $F87C ; ----------------------------------------------------------------------------- ; Global purpose: Read Ship Controls F880. ; Local behavior: Executes the decoded read ship controls f880 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- ReadShipControls_F880: lda #$C0 ; PRG $3880 | CPU $F880 | A9 C0 sta JOY2 ; PRG $3882 | CPU $F882 | 8D 17 40 jsr TransformFlightState_FA4C ; PRG $3885 | CPU $F885 | 20 4C FA lda #$00 ; PRG $3888 | CPU $F888 | A9 00 sta Zp_FF ; PRG $388A | CPU $F88A | 85 FF sta Zp_FE ; PRG $388C | CPU $F88C | 85 FE sta Zp_FD ; PRG $388E | CPU $F88E | 85 FD sta $4011 ; PRG $3890 | CPU $F890 | 8D 11 40 rts ; PRG $3893 | CPU $F893 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay F894. ; Local behavior: Executes the decoded update side scrolling gameplay f894 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_F894: ldx #$90 ; PRG $3894 | CPU $F894 | A2 90 bne UpdateGameplayStateField_F8A1 ; PRG $3896 | CPU $F896 | D0 09 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay F898. ; Local behavior: Executes the decoded update side scrolling gameplay f898 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_F898: ldx #$90 ; PRG $3898 | CPU $F898 | A2 90 bne UpdateGameplayStateField_F8AA ; PRG $389A | CPU $F89A | D0 0E ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay F89 C. ; Local behavior: Executes the decoded update side scrolling gameplay f89 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_F89C: ldy #$7F ; PRG $389C | CPU $F89C | A0 7F ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay F89 E. ; Local behavior: Executes the decoded update side scrolling gameplay f89 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_F89E: sty $4001 ; PRG $389E | CPU $F89E | 8C 01 40 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field F8 A1. ; Local behavior: Executes the decoded update gameplay state field f8 a1 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_F8A1: stx $4000 ; PRG $38A1 | CPU $F8A1 | 8E 00 40 rts ; PRG $38A4 | CPU $F8A4 | 60 .byte $A0,$7F ; PRG $38A5 | CPU $F8A5 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay F8 A7. ; Local behavior: Executes the decoded update side scrolling gameplay f8 a7 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_F8A7: sty $4005 ; PRG $38A7 | CPU $F8A7 | 8C 05 40 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field F8 AA. ; Local behavior: Executes the decoded update gameplay state field f8 aa sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_F8AA: stx $4004 ; PRG $38AA | CPU $F8AA | 8E 04 40 rts ; PRG $38AD | CPU $F8AD | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field F8 AE. ; Local behavior: Executes the decoded update gameplay state field f8 ae sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_F8AE: sta $400C ; PRG $38AE | CPU $F8AE | 8D 0C 40 stx $400E ; PRG $38B1 | CPU $F8B1 | 8E 0E 40 ldy #$08 ; PRG $38B4 | CPU $F8B4 | A0 08 sty $400F ; PRG $38B6 | CPU $F8B6 | 8C 0F 40 rts ; PRG $38B9 | CPU $F8B9 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay F8 BA. ; Local behavior: Executes the decoded update side scrolling gameplay f8 ba sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_F8BA: jsr UpdateSideScrollingGameplay_F89E ; PRG $38BA | CPU $F8BA | 20 9E F8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay F8 BD. ; Local behavior: Executes the decoded update side scrolling gameplay f8 bd sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_F8BD: ldx #$00 ; PRG $38BD | CPU $F8BD | A2 00 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay F8 BF. ; Local behavior: Executes the decoded update side scrolling gameplay f8 bf sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_F8BF: tay ; PRG $38BF | CPU $F8BF | A8 lda GameplayLookupTable_F801,y ; PRG $38C0 | CPU $F8C0 | B9 01 F8 beq UpdateGameplayStateField_F8D0 ; PRG $38C3 | CPU $F8C3 | F0 0B sta $4002,x ; PRG $38C5 | CPU $F8C5 | 9D 02 40 lda GameplayLookupTable_F800,y ; PRG $38C8 | CPU $F8C8 | B9 00 F8 ora #$08 ; PRG $38CB | CPU $F8CB | 09 08 sta $4003,x ; PRG $38CD | CPU $F8CD | 9D 03 40 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field F8 D0. ; Local behavior: Executes the decoded update gameplay state field f8 d0 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_F8D0: rts ; PRG $38D0 | CPU $F8D0 | 60 .byte $20,$A7,$F8 ; PRG $38D1 | CPU $F8D1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay F8 D4. ; Local behavior: Executes the decoded update side scrolling gameplay f8 d4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_F8D4: ldx #$04 ; PRG $38D4 | CPU $F8D4 | A2 04 bne UpdateSideScrollingGameplay_F8BF ; PRG $38D6 | CPU $F8D6 | D0 E7 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay F8 D8. ; Local behavior: Executes the decoded update side scrolling gameplay f8 d8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_F8D8: txa ; PRG $38D8 | CPU $F8D8 | 8A and #$3E ; PRG $38D9 | CPU $F8D9 | 29 3E ldx #$08 ; PRG $38DB | CPU $F8DB | A2 08 bne UpdateSideScrollingGameplay_F8BF ; PRG $38DD | CPU $F8DD | D0 E0 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay F8 DF. ; Local behavior: Executes the decoded update side scrolling gameplay f8 df sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_F8DF: ldy #$07 ; PRG $38DF | CPU $F8DF | A0 07 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State F8 E1. ; Local behavior: Executes the decoded transform flight state f8 e1 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_F8E1: asl a ; PRG $38E1 | CPU $F8E1 | 0A bcs UpdateGameplayStateField_F8E7 ; PRG $38E2 | CPU $F8E2 | B0 03 dey ; PRG $38E4 | CPU $F8E4 | 88 bne TransformFlightState_F8E1 ; PRG $38E5 | CPU $F8E5 | D0 FA ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field F8 E7. ; Local behavior: Executes the decoded update gameplay state field f8 e7 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_F8E7: rts ; PRG $38E7 | CPU $F8E7 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State F8 E8. ; Local behavior: Executes the decoded transform flight state f8 e8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_F8E8: tya ; PRG $38E8 | CPU $F8E8 | 98 lsr a ; PRG $38E9 | CPU $F8E9 | 4A ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State F8 EA. ; Local behavior: Executes the decoded transform flight state f8 ea sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_F8EA: lsr a ; PRG $38EA | CPU $F8EA | 4A lsr a ; PRG $38EB | CPU $F8EB | 4A lsr a ; PRG $38EC | CPU $F8EC | 4A lsr a ; PRG $38ED | CPU $F8ED | 4A sta ScratchValue1 ; PRG $38EE | CPU $F8EE | 85 01 bne UpdateGameplayStateField_F8F4 ; PRG $38F0 | CPU $F8F0 | D0 02 inc ScratchValue1 ; PRG $38F2 | CPU $F8F2 | E6 01 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field F8 F4. ; Local behavior: Executes the decoded update gameplay state field f8 f4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_F8F4: tya ; PRG $38F4 | CPU $F8F4 | 98 sec ; PRG $38F5 | CPU $F8F5 | 38 sbc ScratchValue1 ; PRG $38F6 | CPU $F8F6 | E5 01 rts ; PRG $38F8 | CPU $F8F8 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State F8 F9. ; Local behavior: Executes the decoded transform flight state f8 f9 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_F8F9: tax ; PRG $38F9 | CPU $F8F9 | AA ror a ; PRG $38FA | CPU $F8FA | 6A txa ; PRG $38FB | CPU $F8FB | 8A rol a ; PRG $38FC | CPU $F8FC | 2A rol a ; PRG $38FD | CPU $F8FD | 2A rol a ; PRG $38FE | CPU $F8FE | 2A ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay F8 FF. ; Local behavior: Executes the decoded update side scrolling gameplay f8 ff sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_F8FF: and #$07 ; PRG $38FF | CPU $F8FF | 29 07 clc ; PRG $3901 | CPU $F901 | 18 adc Ram_078D ; PRG $3902 | CPU $F902 | 6D 8D 07 tay ; PRG $3905 | CPU $F905 | A8 lda GameplayLookupTable_F84C,y ; PRG $3906 | CPU $F906 | B9 4C F8 rts ; PRG $3909 | CPU $F909 | 60 .byte $18,$1A,$1B,$1A,$19,$19,$18,$18,$17,$17,$16,$16,$15,$15,$14 ; PRG $390A | CPU $F90A GameplayLookupTable_F919: .byte $16,$84,$8E,$8E,$9E,$9F,$9F,$AF,$AF,$AF,$AF,$AF ; PRG $3919 | CPU $F919 GameplayLookupTable_F925: .byte $AF,$84,$8E,$8E,$9E,$9F,$9F,$9F,$AF,$9F,$AF,$9F,$AF ; PRG $3925 | CPU $F925 GameplayLookupTable_F932: .byte $0A ; PRG $3932 | CPU $F932 GameplayLookupTable_F933: .byte $A6,$0A,$93,$0A,$80,$0A,$6E,$0A,$5C,$0A,$6E,$0A,$80,$0A,$93 ; PRG $3933 | CPU $F933 GameplayLookupTable_F942: .byte $0A ; PRG $3942 | CPU $F942 GameplayLookupTable_F943: .byte $CF,$0A,$BA,$0A,$A6,$0A,$93,$0A,$80,$0A,$93,$0A,$A6,$0A,$BA ; PRG $3943 | CPU $F943 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay F952. ; Local behavior: Executes the decoded update side scrolling gameplay f952 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_F952: sty Zp_F0 ; PRG $3952 | CPU $F952 | 84 F0 lda #$00 ; PRG $3954 | CPU $F954 | A9 00 sta Zp_F2 ; PRG $3956 | CPU $F956 | 85 F2 beq UpdateSideScrollingGameplay_F95E ; PRG $3958 | CPU $F958 | F0 04 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay F95 A. ; Local behavior: Executes the decoded update side scrolling gameplay f95 a sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_F95A: dec Zp_F3 ; PRG $395A | CPU $F95A | C6 F3 bne UpdateSideScrollingGameplay_F991 ; PRG $395C | CPU $F95C | D0 33 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay F95 E. ; Local behavior: Executes the decoded update side scrolling gameplay f95 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_F95E: inc Zp_F2 ; PRG $395E | CPU $F95E | E6 F2 lda Zp_F2 ; PRG $3960 | CPU $F960 | A5 F2 cmp #$10 ; PRG $3962 | CPU $F962 | C9 10 beq UpdateSideScrollingGameplay_F9A5 ; PRG $3964 | CPU $F964 | F0 3F lda #$0C ; PRG $3966 | CPU $F966 | A9 0C sta Zp_F3 ; PRG $3968 | CPU $F968 | 85 F3 lda Zp_F2 ; PRG $396A | CPU $F96A | A5 F2 and #$FE ; PRG $396C | CPU $F96C | 29 FE tay ; PRG $396E | CPU $F96E | A8 lda GameplayLookupTable_F933,y ; PRG $396F | CPU $F96F | B9 33 F9 sta $4002 ; PRG $3972 | CPU $F972 | 8D 02 40 lda GameplayLookupTable_F932,y ; PRG $3975 | CPU $F975 | B9 32 F9 sta $4003 ; PRG $3978 | CPU $F978 | 8D 03 40 ldx #$1A ; PRG $397B | CPU $F97B | A2 1A stx $4000 ; PRG $397D | CPU $F97D | 8E 00 40 lda GameplayLookupTable_F943,y ; PRG $3980 | CPU $F980 | B9 43 F9 sta $4006 ; PRG $3983 | CPU $F983 | 8D 06 40 lda GameplayLookupTable_F942,y ; PRG $3986 | CPU $F986 | B9 42 F9 sta $4007 ; PRG $3989 | CPU $F989 | 8D 07 40 ldx #$1A ; PRG $398C | CPU $F98C | A2 1A stx $4004 ; PRG $398E | CPU $F98E | 8E 04 40 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay F991. ; Local behavior: Executes the decoded update side scrolling gameplay f991 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_F991: inc Ram_07B7 ; PRG $3991 | CPU $F991 | EE B7 07 ldy Zp_F3 ; PRG $3994 | CPU $F994 | A4 F3 lda GameplayLookupTable_F919,y ; PRG $3996 | CPU $F996 | B9 19 F9 sta $4001 ; PRG $3999 | CPU $F999 | 8D 01 40 lda GameplayLookupTable_F925,y ; PRG $399C | CPU $F99C | B9 25 F9 sta $4005 ; PRG $399F | CPU $F99F | 8D 05 40 jmp UpdateSideScrollingGameplay_FA8C ; PRG $39A2 | CPU $F9A2 | 4C 8C FA ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay F9 A5. ; Local behavior: Executes the decoded update side scrolling gameplay f9 a5 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_F9A5: jsr UpdateSideScrollingGameplay_F898 ; PRG $39A5 | CPU $F9A5 | 20 98 F8 jmp UpdateSideScrollingGameplay_FACB ; PRG $39A8 | CPU $F9A8 | 4C CB FA ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay F9 AB. ; Local behavior: Executes the decoded update side scrolling gameplay f9 ab sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_F9AB: sty Zp_F0 ; PRG $39AB | CPU $F9AB | 84 F0 lda #$10 ; PRG $39AD | CPU $F9AD | A9 10 sta Zp_F2 ; PRG $39AF | CPU $F9AF | 85 F2 bne UpdateSideScrollingGameplay_F9B7 ; PRG $39B1 | CPU $F9B1 | D0 04 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay F9 B3. ; Local behavior: Executes the decoded update side scrolling gameplay f9 b3 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_F9B3: dec Zp_F3 ; PRG $39B3 | CPU $F9B3 | C6 F3 bne UpdateSideScrollingGameplay_F9C9 ; PRG $39B5 | CPU $F9B5 | D0 12 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay F9 B7. ; Local behavior: Executes the decoded update side scrolling gameplay f9 b7 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_F9B7: dec Zp_F2 ; PRG $39B7 | CPU $F9B7 | C6 F2 beq UpdateSideScrollingGameplay_F9A5 ; PRG $39B9 | CPU $F9B9 | F0 EA lda #$0E ; PRG $39BB | CPU $F9BB | A9 0E sta Zp_F3 ; PRG $39BD | CPU $F9BD | 85 F3 lda #$32 ; PRG $39BF | CPU $F9BF | A9 32 jsr UpdateSideScrollingGameplay_F8BD ; PRG $39C1 | CPU $F9C1 | 20 BD F8 lda #$9F ; PRG $39C4 | CPU $F9C4 | A9 9F sta $4001 ; PRG $39C6 | CPU $F9C6 | 8D 01 40 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay F9 C9. ; Local behavior: Executes the decoded update side scrolling gameplay f9 c9 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_F9C9: inc Ram_07B7 ; PRG $39C9 | CPU $F9C9 | EE B7 07 ldx #$1C ; PRG $39CC | CPU $F9CC | A2 1C lda Ram_07B7 ; PRG $39CE | CPU $F9CE | AD B7 07 cmp #$08 ; PRG $39D1 | CPU $F9D1 | C9 08 bcc UpdateSideScrollingGameplay_F9DC ; PRG $39D3 | CPU $F9D3 | 90 07 lda #$00 ; PRG $39D5 | CPU $F9D5 | A9 00 sta Ram_07B7 ; PRG $39D7 | CPU $F9D7 | 8D B7 07 ldx #$14 ; PRG $39DA | CPU $F9DA | A2 14 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay F9 DC. ; Local behavior: Executes the decoded update side scrolling gameplay f9 dc sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_F9DC: inc Ram_07B8 ; PRG $39DC | CPU $F9DC | EE B8 07 lda Ram_07B8 ; PRG $39DF | CPU $F9DF | AD B8 07 cmp #$30 ; PRG $39E2 | CPU $F9E2 | C9 30 bcc UpdateSideScrollingGameplay_F9FA ; PRG $39E4 | CPU $F9E4 | 90 14 lda #$00 ; PRG $39E6 | CPU $F9E6 | A9 00 sta Ram_07B8 ; PRG $39E8 | CPU $F9E8 | 8D B8 07 lda #$30 ; PRG $39EB | CPU $F9EB | A9 30 jsr UpdateSideScrollingGameplay_F8D4 ; PRG $39ED | CPU $F9ED | 20 D4 F8 lda #$BF ; PRG $39F0 | CPU $F9F0 | A9 BF sta $4005 ; PRG $39F2 | CPU $F9F2 | 8D 05 40 ldx #$1A ; PRG $39F5 | CPU $F9F5 | A2 1A stx $4004 ; PRG $39F7 | CPU $F9F7 | 8E 04 40 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay F9 FA. ; Local behavior: Executes the decoded update side scrolling gameplay f9 fa sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_F9FA: stx $4000 ; PRG $39FA | CPU $F9FA | 8E 00 40 jmp UpdateSideScrollingGameplay_FA8C ; PRG $39FD | CPU $F9FD | 4C 8C FA ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FA00. ; Local behavior: Executes the decoded update side scrolling gameplay fa00 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FA00: sty Zp_F0 ; PRG $3A00 | CPU $FA00 | 84 F0 lda #$40 ; PRG $3A02 | CPU $FA02 | A9 40 sta Zp_F2 ; PRG $3A04 | CPU $FA04 | 85 F2 lda #$1A ; PRG $3A06 | CPU $FA06 | A9 1A sta Zp_F3 ; PRG $3A08 | CPU $FA08 | 85 F3 ldx #$9C ; PRG $3A0A | CPU $FA0A | A2 9C ldy #$83 ; PRG $3A0C | CPU $FA0C | A0 83 jsr UpdateSideScrollingGameplay_F89E ; PRG $3A0E | CPU $FA0E | 20 9E F8 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State FA11. ; Local behavior: Executes the decoded transform flight state fa11 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_FA11: lda Zp_F2 ; PRG $3A11 | CPU $FA11 | A5 F2 cmp #$30 ; PRG $3A13 | CPU $FA13 | C9 30 bcs TransformFlightState_FA1E ; PRG $3A15 | CPU $FA15 | B0 07 lsr a ; PRG $3A17 | CPU $FA17 | 4A lsr a ; PRG $3A18 | CPU $FA18 | 4A ora #$90 ; PRG $3A19 | CPU $FA19 | 09 90 sta $4000 ; PRG $3A1B | CPU $FA1B | 8D 00 40 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State FA1 E. ; Local behavior: Executes the decoded transform flight state fa1 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_FA1E: lda Zp_F2 ; PRG $3A1E | CPU $FA1E | A5 F2 and #$07 ; PRG $3A20 | CPU $FA20 | 29 07 bne UpdateSideScrollingGameplay_FA3D ; PRG $3A22 | CPU $FA22 | D0 19 lda Zp_F3 ; PRG $3A24 | CPU $FA24 | A5 F3 lsr a ; PRG $3A26 | CPU $FA26 | 4A lsr a ; PRG $3A27 | CPU $FA27 | 4A lsr a ; PRG $3A28 | CPU $FA28 | 4A lsr a ; PRG $3A29 | CPU $FA29 | 4A sec ; PRG $3A2A | CPU $FA2A | 38 adc Zp_F3 ; PRG $3A2B | CPU $FA2B | 65 F3 sta Zp_F3 ; PRG $3A2D | CPU $FA2D | 85 F3 rol a ; PRG $3A2F | CPU $FA2F | 2A rol a ; PRG $3A30 | CPU $FA30 | 2A rol a ; PRG $3A31 | CPU $FA31 | 2A sta $4002 ; PRG $3A32 | CPU $FA32 | 8D 02 40 rol a ; PRG $3A35 | CPU $FA35 | 2A and #$07 ; PRG $3A36 | CPU $FA36 | 29 07 ora #$08 ; PRG $3A38 | CPU $FA38 | 09 08 sta $4003 ; PRG $3A3A | CPU $FA3A | 8D 03 40 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FA3 D. ; Local behavior: Executes the decoded update side scrolling gameplay fa3 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FA3D: jmp UpdateSideScrollingGameplay_FAC7 ; PRG $3A3D | CPU $FA3D | 4C C7 FA ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FA40. ; Local behavior: Executes the decoded update side scrolling gameplay fa40 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FA40: jmp UpdateSideScrollingGameplay_F952 ; PRG $3A40 | CPU $FA40 | 4C 52 F9 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FA43. ; Local behavior: Executes the decoded update side scrolling gameplay fa43 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FA43: jmp UpdateSideScrollingGameplay_F95A ; PRG $3A43 | CPU $FA43 | 4C 5A F9 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FA46. ; Local behavior: Executes the decoded update side scrolling gameplay fa46 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FA46: jmp UpdateSideScrollingGameplay_F9AB ; PRG $3A46 | CPU $FA46 | 4C AB F9 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FA49. ; Local behavior: Executes the decoded update side scrolling gameplay fa49 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FA49: jmp UpdateSideScrollingGameplay_F9B3 ; PRG $3A49 | CPU $FA49 | 4C B3 F9 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State FA4 C. ; Local behavior: Executes the decoded transform flight state fa4 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_FA4C: ldy Zp_FF ; PRG $3A4C | CPU $FA4C | A4 FF lda Zp_F0 ; PRG $3A4E | CPU $FA4E | A5 F0 ldx Zp_FB ; PRG $3A50 | CPU $FA50 | A6 FB bne UpdateSideScrollingGameplay_FA8C ; PRG $3A52 | CPU $FA52 | D0 38 lsr a ; PRG $3A54 | CPU $FA54 | 4A bcs UpdateSideScrollingGameplay_FA43 ; PRG $3A55 | CPU $FA55 | B0 EC lsr Zp_FF ; PRG $3A57 | CPU $FA57 | 46 FF bcs UpdateSideScrollingGameplay_FA40 ; PRG $3A59 | CPU $FA59 | B0 E5 lsr a ; PRG $3A5B | CPU $FA5B | 4A bcs UpdateSideScrollingGameplay_FA49 ; PRG $3A5C | CPU $FA5C | B0 EB lsr Zp_FF ; PRG $3A5E | CPU $FA5E | 46 FF bcs UpdateSideScrollingGameplay_FA46 ; PRG $3A60 | CPU $FA60 | B0 E4 lsr Zp_FF ; PRG $3A62 | CPU $FA62 | 46 FF bcs UpdateSideScrollingGameplay_FA00 ; PRG $3A64 | CPU $FA64 | B0 9A lsr a ; PRG $3A66 | CPU $FA66 | 4A bcs TransformFlightState_FA11 ; PRG $3A67 | CPU $FA67 | B0 A8 lsr Zp_FF ; PRG $3A69 | CPU $FA69 | 46 FF bcs UpdateSideScrollingGameplay_FAA1 ; PRG $3A6B | CPU $FA6B | B0 34 lsr a ; PRG $3A6D | CPU $FA6D | 4A bcs TransformFlightState_FAB2 ; PRG $3A6E | CPU $FA6E | B0 42 lsr Zp_FF ; PRG $3A70 | CPU $FA70 | 46 FF bcs UpdateSideScrollingGameplay_FAD4 ; PRG $3A72 | CPU $FA72 | B0 60 lsr a ; PRG $3A74 | CPU $FA74 | 4A bcs UpdateSideScrollingGameplay_FADF ; PRG $3A75 | CPU $FA75 | B0 68 lsr Zp_FF ; PRG $3A77 | CPU $FA77 | 46 FF bcs UpdateSideScrollingGameplay_FA8F ; PRG $3A79 | CPU $FA79 | B0 14 lsr a ; PRG $3A7B | CPU $FA7B | 4A bcs UpdateSideScrollingGameplay_FA92 ; PRG $3A7C | CPU $FA7C | B0 14 lsr Zp_FF ; PRG $3A7E | CPU $FA7E | 46 FF bcs UpdateSideScrollingGameplay_FA95 ; PRG $3A80 | CPU $FA80 | B0 13 lsr a ; PRG $3A82 | CPU $FA82 | 4A bcs UpdateSideScrollingGameplay_FA98 ; PRG $3A83 | CPU $FA83 | B0 13 lsr Zp_FF ; PRG $3A85 | CPU $FA85 | 46 FF bcs UpdateSideScrollingGameplay_FA9B ; PRG $3A87 | CPU $FA87 | B0 12 lsr a ; PRG $3A89 | CPU $FA89 | 4A bcs UpdateSideScrollingGameplay_FA9E ; PRG $3A8A | CPU $FA8A | B0 12 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FA8 C. ; Local behavior: Executes the decoded update side scrolling gameplay fa8 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FA8C: jmp TransformFlightState_FC41 ; PRG $3A8C | CPU $FA8C | 4C 41 FC ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FA8 F. ; Local behavior: Executes the decoded update side scrolling gameplay fa8 f sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FA8F: jmp UpdateSideScrollingGameplay_FB1A ; PRG $3A8F | CPU $FA8F | 4C 1A FB ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FA92. ; Local behavior: Executes the decoded update side scrolling gameplay fa92 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FA92: jmp TransformFlightState_FB2A ; PRG $3A92 | CPU $FA92 | 4C 2A FB ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FA95. ; Local behavior: Executes the decoded update side scrolling gameplay fa95 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FA95: jmp UpdateSideScrollingGameplay_FB47 ; PRG $3A95 | CPU $FA95 | 4C 47 FB ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FA98. ; Local behavior: Executes the decoded update side scrolling gameplay fa98 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FA98: jmp UpdateSideScrollingGameplay_FB57 ; PRG $3A98 | CPU $FA98 | 4C 57 FB ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FA9 B. ; Local behavior: Executes the decoded update side scrolling gameplay fa9 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FA9B: jmp UpdateSideScrollingGameplay_FB7C ; PRG $3A9B | CPU $FA9B | 4C 7C FB ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FA9 E. ; Local behavior: Executes the decoded update side scrolling gameplay fa9 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FA9E: jmp UpdateSideScrollingGameplay_FB8B ; PRG $3A9E | CPU $FA9E | 4C 8B FB ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FAA1. ; Local behavior: Executes the decoded update side scrolling gameplay faa1 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FAA1: sty Zp_F0 ; PRG $3AA1 | CPU $FAA1 | 84 F0 lda #$30 ; PRG $3AA3 | CPU $FAA3 | A9 30 sta Zp_F2 ; PRG $3AA5 | CPU $FAA5 | 85 F2 lda #$FF ; PRG $3AA7 | CPU $FAA7 | A9 FF sta Zp_F3 ; PRG $3AA9 | CPU $FAA9 | 85 F3 ldx #$5C ; PRG $3AAB | CPU $FAAB | A2 5C ldy #$81 ; PRG $3AAD | CPU $FAAD | A0 81 jsr UpdateSideScrollingGameplay_F89E ; PRG $3AAF | CPU $FAAF | 20 9E F8 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State FAB2. ; Local behavior: Executes the decoded transform flight state fab2 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_FAB2: lda Zp_F3 ; PRG $3AB2 | CPU $FAB2 | A5 F3 tay ; PRG $3AB4 | CPU $FAB4 | A8 jsr TransformFlightState_F8EA ; PRG $3AB5 | CPU $FAB5 | 20 EA F8 sta Zp_F3 ; PRG $3AB8 | CPU $FAB8 | 85 F3 rol a ; PRG $3ABA | CPU $FABA | 2A rol a ; PRG $3ABB | CPU $FABB | 2A sta $4002 ; PRG $3ABC | CPU $FABC | 8D 02 40 rol a ; PRG $3ABF | CPU $FABF | 2A and #$03 ; PRG $3AC0 | CPU $FAC0 | 29 03 ora #$08 ; PRG $3AC2 | CPU $FAC2 | 09 08 sta $4003 ; PRG $3AC4 | CPU $FAC4 | 8D 03 40 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FAC7. ; Local behavior: Executes the decoded update side scrolling gameplay fac7 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FAC7: dec Zp_F2 ; PRG $3AC7 | CPU $FAC7 | C6 F2 bne UpdateSideScrollingGameplay_FA8C ; PRG $3AC9 | CPU $FAC9 | D0 C1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FACB. ; Local behavior: Executes the decoded update side scrolling gameplay facb sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FACB: jsr UpdateSideScrollingGameplay_F894 ; PRG $3ACB | CPU $FACB | 20 94 F8 lda #$00 ; PRG $3ACE | CPU $FACE | A9 00 sta Zp_F0 ; PRG $3AD0 | CPU $FAD0 | 85 F0 beq UpdateSideScrollingGameplay_FA8C ; PRG $3AD2 | CPU $FAD2 | F0 B8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FAD4. ; Local behavior: Executes the decoded update side scrolling gameplay fad4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FAD4: sty Zp_F0 ; PRG $3AD4 | CPU $FAD4 | 84 F0 lda Zp_18 ; PRG $3AD6 | CPU $FAD6 | A5 18 and #$01 ; PRG $3AD8 | CPU $FAD8 | 29 01 sta Zp_F2 ; PRG $3ADA | CPU $FADA | 85 F2 jmp UpdateSideScrollingGameplay_FAE4 ; PRG $3ADC | CPU $FADC | 4C E4 FA ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FADF. ; Local behavior: Executes the decoded update side scrolling gameplay fadf sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FADF: dec Ram_07B7 ; PRG $3ADF | CPU $FADF | CE B7 07 bne UpdateSideScrollingGameplay_FAF9 ; PRG $3AE2 | CPU $FAE2 | D0 15 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FAE4. ; Local behavior: Executes the decoded update side scrolling gameplay fae4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FAE4: ldy Zp_F2 ; PRG $3AE4 | CPU $FAE4 | A4 F2 inc Zp_F2 ; PRG $3AE6 | CPU $FAE6 | E6 F2 lda GameplayLookupTable_FB8E,y ; PRG $3AE8 | CPU $FAE8 | B9 8E FB beq UpdateSideScrollingGameplay_FACB ; PRG $3AEB | CPU $FAEB | F0 DE sta Ram_07B7 ; PRG $3AED | CPU $FAED | 8D B7 07 lda #$0A ; PRG $3AF0 | CPU $FAF0 | A9 0A sta Zp_F3 ; PRG $3AF2 | CPU $FAF2 | 85 F3 lda #$16 ; PRG $3AF4 | CPU $FAF4 | A9 16 jsr UpdateSideScrollingGameplay_F8BD ; PRG $3AF6 | CPU $FAF6 | 20 BD F8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FAF9. ; Local behavior: Executes the decoded update side scrolling gameplay faf9 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FAF9: ldy #$85 ; PRG $3AF9 | CPU $FAF9 | A0 85 lda Zp_F3 ; PRG $3AFB | CPU $FAFB | A5 F3 cmp #$05 ; PRG $3AFD | CPU $FAFD | C9 05 bne UpdateSideScrollingGameplay_FB05 ; PRG $3AFF | CPU $FAFF | D0 04 lda #$00 ; PRG $3B01 | CPU $FB01 | A9 00 beq UpdateSideScrollingGameplay_FB0B ; PRG $3B03 | CPU $FB03 | F0 06 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FB05. ; Local behavior: Executes the decoded update side scrolling gameplay fb05 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FB05: cmp #$08 ; PRG $3B05 | CPU $FB05 | C9 08 bcs UpdateSideScrollingGameplay_FB0B ; PRG $3B07 | CPU $FB07 | B0 02 ldy #$8C ; PRG $3B09 | CPU $FB09 | A0 8C ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FB0 B. ; Local behavior: Executes the decoded update side scrolling gameplay fb0 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FB0B: ora #$90 ; PRG $3B0B | CPU $FB0B | 09 90 tax ; PRG $3B0D | CPU $FB0D | AA jsr UpdateSideScrollingGameplay_F89E ; PRG $3B0E | CPU $FB0E | 20 9E F8 lda Zp_F3 ; PRG $3B11 | CPU $FB11 | A5 F3 beq UpdateSideScrollingGameplay_FB17 ; PRG $3B13 | CPU $FB13 | F0 02 dec Zp_F3 ; PRG $3B15 | CPU $FB15 | C6 F3 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FB17. ; Local behavior: Executes the decoded update side scrolling gameplay fb17 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FB17: jmp UpdateSideScrollingGameplay_FA8C ; PRG $3B17 | CPU $FB17 | 4C 8C FA ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FB1 A. ; Local behavior: Executes the decoded update side scrolling gameplay fb1 a sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FB1A: sty Zp_F0 ; PRG $3B1A | CPU $FB1A | 84 F0 lda #$60 ; PRG $3B1C | CPU $FB1C | A9 60 sta Zp_F2 ; PRG $3B1E | CPU $FB1E | 85 F2 lda #$12 ; PRG $3B20 | CPU $FB20 | A9 12 sta $4002 ; PRG $3B22 | CPU $FB22 | 8D 02 40 lda #$0F ; PRG $3B25 | CPU $FB25 | A9 0F sta $4003 ; PRG $3B27 | CPU $FB27 | 8D 03 40 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State FB2 A. ; Local behavior: Executes the decoded transform flight state fb2 a sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_FB2A: ldx #$5E ; PRG $3B2A | CPU $FB2A | A2 5E lda Zp_F2 ; PRG $3B2C | CPU $FB2C | A5 F2 cmp #$1C ; PRG $3B2E | CPU $FB2E | C9 1C bcs UpdateSideScrollingGameplay_FB36 ; PRG $3B30 | CPU $FB30 | B0 04 lsr a ; PRG $3B32 | CPU $FB32 | 4A ora #$50 ; PRG $3B33 | CPU $FB33 | 09 50 tax ; PRG $3B35 | CPU $FB35 | AA ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FB36. ; Local behavior: Executes the decoded update side scrolling gameplay fb36 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FB36: jsr UpdateSideScrollingGameplay_F89C ; PRG $3B36 | CPU $FB36 | 20 9C F8 ldx #$57 ; PRG $3B39 | CPU $FB39 | A2 57 lda Zp_F2 ; PRG $3B3B | CPU $FB3B | A5 F2 and #$07 ; PRG $3B3D | CPU $FB3D | 29 07 bne UpdateSideScrollingGameplay_FB44 ; PRG $3B3F | CPU $FB3F | D0 03 stx $4000 ; PRG $3B41 | CPU $FB41 | 8E 00 40 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FB44. ; Local behavior: Executes the decoded update side scrolling gameplay fb44 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FB44: jmp UpdateSideScrollingGameplay_FAC7 ; PRG $3B44 | CPU $FB44 | 4C C7 FA ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FB47. ; Local behavior: Executes the decoded update side scrolling gameplay fb47 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FB47: sty Zp_F0 ; PRG $3B47 | CPU $FB47 | 84 F0 lda #$30 ; PRG $3B49 | CPU $FB49 | A9 30 sta Zp_F2 ; PRG $3B4B | CPU $FB4B | 85 F2 lda #$16 ; PRG $3B4D | CPU $FB4D | A9 16 jsr UpdateSideScrollingGameplay_F8BD ; PRG $3B4F | CPU $FB4F | 20 BD F8 ldy #$86 ; PRG $3B52 | CPU $FB52 | A0 86 sty $4001 ; PRG $3B54 | CPU $FB54 | 8C 01 40 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FB57. ; Local behavior: Executes the decoded update side scrolling gameplay fb57 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FB57: lda Zp_F2 ; PRG $3B57 | CPU $FB57 | A5 F2 cmp #$28 ; PRG $3B59 | CPU $FB59 | C9 28 bne TransformFlightState_FB62 ; PRG $3B5B | CPU $FB5B | D0 05 ldy #$96 ; PRG $3B5D | CPU $FB5D | A0 96 sty $4001 ; PRG $3B5F | CPU $FB5F | 8C 01 40 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State FB62. ; Local behavior: Executes the decoded transform flight state fb62 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_FB62: ldx #$1A ; PRG $3B62 | CPU $FB62 | A2 1A cmp #$14 ; PRG $3B64 | CPU $FB64 | C9 14 bcs UpdateSideScrollingGameplay_FB6C ; PRG $3B66 | CPU $FB66 | B0 04 lsr a ; PRG $3B68 | CPU $FB68 | 4A ora #$10 ; PRG $3B69 | CPU $FB69 | 09 10 tax ; PRG $3B6B | CPU $FB6B | AA ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FB6 C. ; Local behavior: Executes the decoded update side scrolling gameplay fb6 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FB6C: lda Zp_F2 ; PRG $3B6C | CPU $FB6C | A5 F2 and #$01 ; PRG $3B6E | CPU $FB6E | 29 01 bne UpdateSideScrollingGameplay_FB76 ; PRG $3B70 | CPU $FB70 | D0 04 txa ; PRG $3B72 | CPU $FB72 | 8A ora #$40 ; PRG $3B73 | CPU $FB73 | 09 40 tax ; PRG $3B75 | CPU $FB75 | AA ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FB76. ; Local behavior: Executes the decoded update side scrolling gameplay fb76 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FB76: stx $4000 ; PRG $3B76 | CPU $FB76 | 8E 00 40 jmp UpdateSideScrollingGameplay_FAC7 ; PRG $3B79 | CPU $FB79 | 4C C7 FA ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FB7 C. ; Local behavior: Executes the decoded update side scrolling gameplay fb7 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FB7C: sty Zp_F0 ; PRG $3B7C | CPU $FB7C | 84 F0 lda #$10 ; PRG $3B7E | CPU $FB7E | A9 10 sta Zp_F2 ; PRG $3B80 | CPU $FB80 | 85 F2 ldx #$43 ; PRG $3B82 | CPU $FB82 | A2 43 ldy #$84 ; PRG $3B84 | CPU $FB84 | A0 84 lda #$0A ; PRG $3B86 | CPU $FB86 | A9 0A jsr UpdateSideScrollingGameplay_F8BA ; PRG $3B88 | CPU $FB88 | 20 BA F8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FB8 B. ; Local behavior: Executes the decoded update side scrolling gameplay fb8 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FB8B: jmp UpdateSideScrollingGameplay_FAC7 ; PRG $3B8B | CPU $FB8B | 4C C7 FA GameplayLookupTable_FB8E: .byte $0F,$05,$05,$05,$00 ; PRG $3B8E | CPU $FB8E ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FB93. ; Local behavior: Executes the decoded update side scrolling gameplay fb93 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FB93: sty Zp_F1 ; PRG $3B93 | CPU $FB93 | 84 F1 lda #$A1 ; PRG $3B95 | CPU $FB95 | A9 A1 sta Zp_F4 ; PRG $3B97 | CPU $FB97 | 85 F4 lda #$35 ; PRG $3B99 | CPU $FB99 | A9 35 sta Zp_F5 ; PRG $3B9B | CPU $FB9B | 85 F5 ldx #$9C ; PRG $3B9D | CPU $FB9D | A2 9C ldy #$8C ; PRG $3B9F | CPU $FB9F | A0 8C jsr UpdateSideScrollingGameplay_F8A7 ; PRG $3BA1 | CPU $FBA1 | 20 A7 F8 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State FBA4. ; Local behavior: Executes the decoded transform flight state fba4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_FBA4: dec Zp_F4 ; PRG $3BA4 | CPU $FBA4 | C6 F4 lda Zp_F4 ; PRG $3BA6 | CPU $FBA6 | A5 F4 beq UpdateSideScrollingGameplay_FBFF ; PRG $3BA8 | CPU $FBA8 | F0 55 cmp #$30 ; PRG $3BAA | CPU $FBAA | C9 30 bcs TransformFlightState_FBB5 ; PRG $3BAC | CPU $FBAC | B0 07 lsr a ; PRG $3BAE | CPU $FBAE | 4A lsr a ; PRG $3BAF | CPU $FBAF | 4A ora #$90 ; PRG $3BB0 | CPU $FBB0 | 09 90 sta $4004 ; PRG $3BB2 | CPU $FBB2 | 8D 04 40 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State FBB5. ; Local behavior: Executes the decoded transform flight state fbb5 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_FBB5: lda Zp_F4 ; PRG $3BB5 | CPU $FBB5 | A5 F4 and #$07 ; PRG $3BB7 | CPU $FBB7 | 29 07 bne UpdateSideScrollingGameplay_FBD1 ; PRG $3BB9 | CPU $FBB9 | D0 16 lda Zp_F5 ; PRG $3BBB | CPU $FBBB | A5 F5 tay ; PRG $3BBD | CPU $FBBD | A8 jsr TransformFlightState_F8E8 ; PRG $3BBE | CPU $FBBE | 20 E8 F8 sta Zp_F5 ; PRG $3BC1 | CPU $FBC1 | 85 F5 rol a ; PRG $3BC3 | CPU $FBC3 | 2A rol a ; PRG $3BC4 | CPU $FBC4 | 2A rol a ; PRG $3BC5 | CPU $FBC5 | 2A sta $4006 ; PRG $3BC6 | CPU $FBC6 | 8D 06 40 rol a ; PRG $3BC9 | CPU $FBC9 | 2A and #$07 ; PRG $3BCA | CPU $FBCA | 29 07 ora #$08 ; PRG $3BCC | CPU $FBCC | 09 08 sta $4007 ; PRG $3BCE | CPU $FBCE | 8D 07 40 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FBD1. ; Local behavior: Executes the decoded update side scrolling gameplay fbd1 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FBD1: jmp TransformFlightState_FC61 ; PRG $3BD1 | CPU $FBD1 | 4C 61 FC ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FBD4. ; Local behavior: Executes the decoded update side scrolling gameplay fbd4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FBD4: sty Zp_F1 ; PRG $3BD4 | CPU $FBD4 | 84 F1 lda #$1F ; PRG $3BD6 | CPU $FBD6 | A9 1F sta Zp_F4 ; PRG $3BD8 | CPU $FBD8 | 85 F4 ldx #$5C ; PRG $3BDA | CPU $FBDA | A2 5C ldy #$81 ; PRG $3BDC | CPU $FBDC | A0 81 jsr UpdateSideScrollingGameplay_F8A7 ; PRG $3BDE | CPU $FBDE | 20 A7 F8 bne UpdateSideScrollingGameplay_FBF2 ; PRG $3BE1 | CPU $FBE1 | D0 0F ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FBE3. ; Local behavior: Executes the decoded update side scrolling gameplay fbe3 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FBE3: dec Zp_F4 ; PRG $3BE3 | CPU $FBE3 | C6 F4 beq UpdateSideScrollingGameplay_FBFF ; PRG $3BE5 | CPU $FBE5 | F0 18 lda Zp_F4 ; PRG $3BE7 | CPU $FBE7 | A5 F4 cmp #$07 ; PRG $3BE9 | CPU $FBE9 | C9 07 bcc UpdateSideScrollingGameplay_FBFB ; PRG $3BEB | CPU $FBEB | 90 0E dec Ram_07B9 ; PRG $3BED | CPU $FBED | CE B9 07 bne UpdateSideScrollingGameplay_FBFB ; PRG $3BF0 | CPU $FBF0 | D0 09 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FBF2. ; Local behavior: Executes the decoded update side scrolling gameplay fbf2 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FBF2: lda #$06 ; PRG $3BF2 | CPU $FBF2 | A9 06 sta Ram_07B9 ; PRG $3BF4 | CPU $FBF4 | 8D B9 07 lda #$1F ; PRG $3BF7 | CPU $FBF7 | A9 1F sta Zp_F5 ; PRG $3BF9 | CPU $FBF9 | 85 F5 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FBFB. ; Local behavior: Executes the decoded update side scrolling gameplay fbfb sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FBFB: lda Zp_F5 ; PRG $3BFB | CPU $FBFB | A5 F5 bne TransformFlightState_FC1F ; PRG $3BFD | CPU $FBFD | D0 20 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FBFF. ; Local behavior: Executes the decoded update side scrolling gameplay fbff sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FBFF: lda #$00 ; PRG $3BFF | CPU $FBFF | A9 00 sta Zp_F1 ; PRG $3C01 | CPU $FC01 | 85 F1 jsr UpdateSideScrollingGameplay_F898 ; PRG $3C03 | CPU $FC03 | 20 98 F8 bne TransformFlightState_FC61 ; PRG $3C06 | CPU $FC06 | D0 59 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FC08. ; Local behavior: Executes the decoded update side scrolling gameplay fc08 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FC08: sty Zp_F1 ; PRG $3C08 | CPU $FC08 | 84 F1 lda #$34 ; PRG $3C0A | CPU $FC0A | A9 34 sta Zp_F5 ; PRG $3C0C | CPU $FC0C | 85 F5 ldx #$5C ; PRG $3C0E | CPU $FC0E | A2 5C ldy #$81 ; PRG $3C10 | CPU $FC10 | A0 81 jsr UpdateSideScrollingGameplay_F8A7 ; PRG $3C12 | CPU $FC12 | 20 A7 F8 bne TransformFlightState_FC29 ; PRG $3C15 | CPU $FC15 | D0 12 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State FC17. ; Local behavior: Executes the decoded transform flight state fc17 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_FC17: lda Zp_F5 ; PRG $3C17 | CPU $FC17 | A5 F5 lsr a ; PRG $3C19 | CPU $FC19 | 4A cmp #$50 ; PRG $3C1A | CPU $FC1A | C9 50 bcc TransformFlightState_FC1F ; PRG $3C1C | CPU $FC1C | 90 01 lsr a ; PRG $3C1E | CPU $FC1E | 4A ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State FC1 F. ; Local behavior: Executes the decoded transform flight state fc1 f sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_FC1F: lsr a ; PRG $3C1F | CPU $FC1F | 4A lsr a ; PRG $3C20 | CPU $FC20 | 4A lsr a ; PRG $3C21 | CPU $FC21 | 4A clc ; PRG $3C22 | CPU $FC22 | 18 adc Zp_F5 ; PRG $3C23 | CPU $FC23 | 65 F5 bcs UpdateSideScrollingGameplay_FBFF ; PRG $3C25 | CPU $FC25 | B0 D8 sta Zp_F5 ; PRG $3C27 | CPU $FC27 | 85 F5 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State FC29. ; Local behavior: Executes the decoded transform flight state fc29 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_FC29: rol a ; PRG $3C29 | CPU $FC29 | 2A rol a ; PRG $3C2A | CPU $FC2A | 2A sta $4006 ; PRG $3C2B | CPU $FC2B | 8D 06 40 rol a ; PRG $3C2E | CPU $FC2E | 2A and #$03 ; PRG $3C2F | CPU $FC2F | 29 03 ora #$08 ; PRG $3C31 | CPU $FC31 | 09 08 sta $4007 ; PRG $3C33 | CPU $FC33 | 8D 07 40 bne TransformFlightState_FC61 ; PRG $3C36 | CPU $FC36 | D0 29 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FC38. ; Local behavior: Executes the decoded update side scrolling gameplay fc38 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FC38: jmp UpdateSideScrollingGameplay_FB93 ; PRG $3C38 | CPU $FC38 | 4C 93 FB ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FC3 B. ; Local behavior: Executes the decoded update side scrolling gameplay fc3 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FC3B: jmp TransformFlightState_FBA4 ; PRG $3C3B | CPU $FC3B | 4C A4 FB ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FC3 E. ; Local behavior: Executes the decoded update side scrolling gameplay fc3 e sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FC3E: jmp UpdateSideScrollingGameplay_FBD4 ; PRG $3C3E | CPU $FC3E | 4C D4 FB ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State FC41. ; Local behavior: Executes the decoded transform flight state fc41 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_FC41: ldy Zp_FE ; PRG $3C41 | CPU $FC41 | A4 FE sty ScratchValue0 ; PRG $3C43 | CPU $FC43 | 84 00 lda Zp_F1 ; PRG $3C45 | CPU $FC45 | A5 F1 ldx Ram_0782 ; PRG $3C47 | CPU $FC47 | AE 82 07 bne UpdateSideScrollingGameplay_FC89 ; PRG $3C4A | CPU $FC4A | D0 3D lsr a ; PRG $3C4C | CPU $FC4C | 4A bcs UpdateSideScrollingGameplay_FC3B ; PRG $3C4D | CPU $FC4D | B0 EC lsr Zp_FE ; PRG $3C4F | CPU $FC4F | 46 FE bcs UpdateSideScrollingGameplay_FC38 ; PRG $3C51 | CPU $FC51 | B0 E5 lsr a ; PRG $3C53 | CPU $FC53 | 4A bcs UpdateSideScrollingGameplay_FBE3 ; PRG $3C54 | CPU $FC54 | B0 8D lsr Zp_FE ; PRG $3C56 | CPU $FC56 | 46 FE bcs UpdateSideScrollingGameplay_FC3E ; PRG $3C58 | CPU $FC58 | B0 E4 lsr Zp_FE ; PRG $3C5A | CPU $FC5A | 46 FE bcs UpdateSideScrollingGameplay_FC08 ; PRG $3C5C | CPU $FC5C | B0 AA lsr a ; PRG $3C5E | CPU $FC5E | 4A bcs TransformFlightState_FC17 ; PRG $3C5F | CPU $FC5F | B0 B6 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State FC61. ; Local behavior: Executes the decoded transform flight state fc61 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_FC61: ldy ScratchValue0 ; PRG $3C61 | CPU $FC61 | A4 00 lda Ram_07A5 ; PRG $3C63 | CPU $FC63 | AD A5 07 asl ScratchValue0 ; PRG $3C66 | CPU $FC66 | 06 00 bcs UpdateSideScrollingGameplay_FC98 ; PRG $3C68 | CPU $FC68 | B0 2E asl a ; PRG $3C6A | CPU $FC6A | 0A bcs UpdateSideScrollingGameplay_FCA7 ; PRG $3C6B | CPU $FC6B | B0 3A asl a ; PRG $3C6D | CPU $FC6D | 0A bcs UpdateSideScrollingGameplay_FCC2 ; PRG $3C6E | CPU $FC6E | B0 52 asl ScratchValue0 ; PRG $3C70 | CPU $FC70 | 06 00 bcs UpdateSideScrollingGameplay_FCB8 ; PRG $3C72 | CPU $FC72 | B0 44 asl a ; PRG $3C74 | CPU $FC74 | 0A bcs UpdateSideScrollingGameplay_FCA7 ; PRG $3C75 | CPU $FC75 | B0 30 asl ScratchValue0 ; PRG $3C77 | CPU $FC77 | 06 00 bcs UpdateSideScrollingGameplay_FC8C ; PRG $3C79 | CPU $FC79 | B0 11 asl a ; PRG $3C7B | CPU $FC7B | 0A bcs UpdateSideScrollingGameplay_FC92 ; PRG $3C7C | CPU $FC7C | B0 14 asl ScratchValue0 ; PRG $3C7E | CPU $FC7E | 06 00 bcs UpdateSideScrollingGameplay_FC8F ; PRG $3C80 | CPU $FC80 | B0 0D asl a ; PRG $3C82 | CPU $FC82 | 0A bcs UpdateSideScrollingGameplay_FC92 ; PRG $3C83 | CPU $FC83 | B0 0D asl ScratchValue0 ; PRG $3C85 | CPU $FC85 | 06 00 bcs UpdateSideScrollingGameplay_FC95 ; PRG $3C87 | CPU $FC87 | B0 0C ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FC89. ; Local behavior: Executes the decoded update side scrolling gameplay fc89 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FC89: jmp UpdateGameplayStateField_FD37 ; PRG $3C89 | CPU $FC89 | 4C 37 FD ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FC8 C. ; Local behavior: Executes the decoded update side scrolling gameplay fc8 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FC8C: jmp UpdateSideScrollingGameplay_FCF9 ; PRG $3C8C | CPU $FC8C | 4C F9 FC ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FC8 F. ; Local behavior: Executes the decoded update side scrolling gameplay fc8 f sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FC8F: jmp UpdateSideScrollingGameplay_FD0A ; PRG $3C8F | CPU $FC8F | 4C 0A FD ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FC92. ; Local behavior: Executes the decoded update side scrolling gameplay fc92 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FC92: jmp TransformFlightState_FD16 ; PRG $3C92 | CPU $FC92 | 4C 16 FD ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FC95. ; Local behavior: Executes the decoded update side scrolling gameplay fc95 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FC95: jmp UpdateSideScrollingGameplay_FD1D ; PRG $3C95 | CPU $FC95 | 4C 1D FD ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FC98. ; Local behavior: Executes the decoded update side scrolling gameplay fc98 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FC98: sty Ram_07A5 ; PRG $3C98 | CPU $FC98 | 8C A5 07 lda #$4C ; PRG $3C9B | CPU $FC9B | A9 4C sta Ram_07BB ; PRG $3C9D | CPU $FC9D | 8D BB 07 lda #$0F ; PRG $3CA0 | CPU $FCA0 | A9 0F ldx #$0E ; PRG $3CA2 | CPU $FCA2 | A2 0E jsr UpdateGameplayStateField_F8AE ; PRG $3CA4 | CPU $FCA4 | 20 AE F8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FCA7. ; Local behavior: Executes the decoded update side scrolling gameplay fca7 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FCA7: dec Ram_07BB ; PRG $3CA7 | CPU $FCA7 | CE BB 07 bne UpdateSideScrollingGameplay_FC89 ; PRG $3CAA | CPU $FCAA | D0 DD ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FCAC. ; Local behavior: Executes the decoded update side scrolling gameplay fcac sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FCAC: lda #$00 ; PRG $3CAC | CPU $FCAC | A9 00 sta Ram_07A5 ; PRG $3CAE | CPU $FCAE | 8D A5 07 lda #$10 ; PRG $3CB1 | CPU $FCB1 | A9 10 sta $400C ; PRG $3CB3 | CPU $FCB3 | 8D 0C 40 bne UpdateSideScrollingGameplay_FC89 ; PRG $3CB6 | CPU $FCB6 | D0 D1 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FCB8. ; Local behavior: Executes the decoded update side scrolling gameplay fcb8 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FCB8: sty Ram_07A5 ; PRG $3CB8 | CPU $FCB8 | 8C A5 07 lda #$34 ; PRG $3CBB | CPU $FCBB | A9 34 sta Ram_07BB ; PRG $3CBD | CPU $FCBD | 8D BB 07 bne UpdateSideScrollingGameplay_FCD5 ; PRG $3CC0 | CPU $FCC0 | D0 13 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FCC2. ; Local behavior: Executes the decoded update side scrolling gameplay fcc2 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FCC2: dec Ram_07BB ; PRG $3CC2 | CPU $FCC2 | CE BB 07 beq UpdateSideScrollingGameplay_FCAC ; PRG $3CC5 | CPU $FCC5 | F0 E5 lda Ram_07BB ; PRG $3CC7 | CPU $FCC7 | AD BB 07 cmp #$20 ; PRG $3CCA | CPU $FCCA | C9 20 beq UpdateSideScrollingGameplay_FCF0 ; PRG $3CCC | CPU $FCCC | F0 22 bcc UpdateSideScrollingGameplay_FC89 ; PRG $3CCE | CPU $FCCE | 90 B9 dec Ram_07BC ; PRG $3CD0 | CPU $FCD0 | CE BC 07 bne UpdateSideScrollingGameplay_FCE4 ; PRG $3CD3 | CPU $FCD3 | D0 0F ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FCD5. ; Local behavior: Executes the decoded update side scrolling gameplay fcd5 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FCD5: lda #$05 ; PRG $3CD5 | CPU $FCD5 | A9 05 sta Ram_07BC ; PRG $3CD7 | CPU $FCD7 | 8D BC 07 lda #$01 ; PRG $3CDA | CPU $FCDA | A9 01 sta $400C ; PRG $3CDC | CPU $FCDC | 8D 0C 40 lda #$08 ; PRG $3CDF | CPU $FCDF | A9 08 sta $400F ; PRG $3CE1 | CPU $FCE1 | 8D 0F 40 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FCE4. ; Local behavior: Executes the decoded update side scrolling gameplay fce4 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FCE4: ldy Ram_07BC ; PRG $3CE4 | CPU $FCE4 | AC BC 07 lda GameplayLookupTable_FD31,y ; PRG $3CE7 | CPU $FCE7 | B9 31 FD sta $400E ; PRG $3CEA | CPU $FCEA | 8D 0E 40 jmp UpdateSideScrollingGameplay_FC89 ; PRG $3CED | CPU $FCED | 4C 89 FC ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FCF0. ; Local behavior: Executes the decoded update side scrolling gameplay fcf0 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FCF0: lda #$07 ; PRG $3CF0 | CPU $FCF0 | A9 07 ldx #$0E ; PRG $3CF2 | CPU $FCF2 | A2 0E jsr UpdateGameplayStateField_F8AE ; PRG $3CF4 | CPU $FCF4 | 20 AE F8 bne UpdateSideScrollingGameplay_FC89 ; PRG $3CF7 | CPU $FCF7 | D0 90 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FCF9. ; Local behavior: Executes the decoded update side scrolling gameplay fcf9 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FCF9: sty Ram_07A5 ; PRG $3CF9 | CPU $FCF9 | 8C A5 07 lda #$20 ; PRG $3CFC | CPU $FCFC | A9 20 sta Ram_07BB ; PRG $3CFE | CPU $FCFE | 8D BB 07 lda #$08 ; PRG $3D01 | CPU $FD01 | A9 08 ldx #$0D ; PRG $3D03 | CPU $FD03 | A2 0D jsr UpdateGameplayStateField_F8AE ; PRG $3D05 | CPU $FD05 | 20 AE F8 bne UpdateSideScrollingGameplay_FCA7 ; PRG $3D08 | CPU $FD08 | D0 9D ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FD0 A. ; Local behavior: Executes the decoded update side scrolling gameplay fd0 a sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FD0A: sty Ram_07A5 ; PRG $3D0A | CPU $FD0A | 8C A5 07 lda #$36 ; PRG $3D0D | CPU $FD0D | A9 36 ldx #$0E ; PRG $3D0F | CPU $FD0F | A2 0E jsr UpdateGameplayStateField_F8AE ; PRG $3D11 | CPU $FD11 | 20 AE F8 bne UpdateSideScrollingGameplay_FD1A ; PRG $3D14 | CPU $FD14 | D0 04 ; ----------------------------------------------------------------------------- ; Global purpose: Transform Flight State FD16. ; Local behavior: Executes the decoded transform flight state fd16 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- TransformFlightState_FD16: asl ScratchValue0 ; PRG $3D16 | CPU $FD16 | 06 00 bcc UpdateSideScrollingGameplay_FCAC ; PRG $3D18 | CPU $FD18 | 90 92 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FD1 A. ; Local behavior: Executes the decoded update side scrolling gameplay fd1 a sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FD1A: jmp UpdateSideScrollingGameplay_FC89 ; PRG $3D1A | CPU $FD1A | 4C 89 FC ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FD1 D. ; Local behavior: Executes the decoded update side scrolling gameplay fd1 d sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FD1D: sty Ram_07A5 ; PRG $3D1D | CPU $FD1D | 8C A5 07 lda #$32 ; PRG $3D20 | CPU $FD20 | A9 32 sta $400C ; PRG $3D22 | CPU $FD22 | 8D 0C 40 lda #$0E ; PRG $3D25 | CPU $FD25 | A9 0E sta $400E ; PRG $3D27 | CPU $FD27 | 8D 0E 40 lda #$08 ; PRG $3D2A | CPU $FD2A | A9 08 sta $400F ; PRG $3D2C | CPU $FD2C | 8D 0F 40 jmp UpdateSideScrollingGameplay_FC89 ; PRG $3D2F | CPU $FD2F | 4C 89 FC .byte $09,$0A,$0B,$0C,$0D ; PRG $3D32 | CPU $FD32 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field FD37. ; Local behavior: Executes the decoded update gameplay state field fd37 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_FD37: lda Zp_FD ; PRG $3D37 | CPU $FD37 | A5 FD bne UpdateSideScrollingGameplay_FD41 ; PRG $3D39 | CPU $FD39 | D0 06 lda Ram_07A2 ; PRG $3D3B | CPU $FD3B | AD A2 07 bne UpdateSideScrollingGameplay_FD81 ; PRG $3D3E | CPU $FD3E | D0 41 rts ; PRG $3D40 | CPU $FD40 | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FD41. ; Local behavior: Executes the decoded update side scrolling gameplay fd41 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FD41: jsr UpdateSideScrollingGameplay_F8DF ; PRG $3D41 | CPU $FD41 | 20 DF F8 inc Ram_07A2 ; PRG $3D44 | CPU $FD44 | EE A2 07 sty Ram_07F2 ; PRG $3D47 | CPU $FD47 | 8C F2 07 tya ; PRG $3D4A | CPU $FD4A | 98 bne UpdateSideScrollingGameplay_FD53 ; PRG $3D4B | CPU $FD4B | D0 06 sta $4008 ; PRG $3D4D | CPU $FD4D | 8D 08 40 jsr UpdateSideScrollingGameplay_F898 ; PRG $3D50 | CPU $FD50 | 20 98 F8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FD53. ; Local behavior: Executes the decoded update side scrolling gameplay fd53 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FD53: lda GameplayLookupTable_FE59,y ; PRG $3D53 | CPU $FD53 | B9 59 FE tay ; PRG $3D56 | CPU $FD56 | A8 lda GameplayLookupTable_FE59,y ; PRG $3D57 | CPU $FD57 | B9 59 FE sta Ram_078D ; PRG $3D5A | CPU $FD5A | 8D 8D 07 lda GameplayLookupTable_FE5A,y ; PRG $3D5D | CPU $FD5D | B9 5A FE sta Zp_F6 ; PRG $3D60 | CPU $FD60 | 85 F6 lda GameplayLookupTable_FE5B,y ; PRG $3D62 | CPU $FD62 | B9 5B FE sta Zp_F7 ; PRG $3D65 | CPU $FD65 | 85 F7 lda GameplayLookupTable_FE5C,y ; PRG $3D67 | CPU $FD67 | B9 5C FE sta Zp_FA ; PRG $3D6A | CPU $FD6A | 85 FA lda GameplayLookupTable_FE5D,y ; PRG $3D6C | CPU $FD6C | B9 5D FE sta Zp_FB ; PRG $3D6F | CPU $FD6F | 85 FB lda #$01 ; PRG $3D71 | CPU $FD71 | A9 01 sta Ram_0795 ; PRG $3D73 | CPU $FD73 | 8D 95 07 sta Ram_0796 ; PRG $3D76 | CPU $FD76 | 8D 96 07 sta Ram_0798 ; PRG $3D79 | CPU $FD79 | 8D 98 07 ldy #$00 ; PRG $3D7C | CPU $FD7C | A0 00 sty Ram_0782 ; PRG $3D7E | CPU $FD7E | 8C 82 07 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FD81. ; Local behavior: Executes the decoded update side scrolling gameplay fd81 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FD81: ldy Zp_FB ; PRG $3D81 | CPU $FD81 | A4 FB beq UpdateSideScrollingGameplay_FDBF ; PRG $3D83 | CPU $FD83 | F0 3A dec Ram_0796 ; PRG $3D85 | CPU $FD85 | CE 96 07 bne UpdateSideScrollingGameplay_FDBF ; PRG $3D88 | CPU $FD88 | D0 35 inc Zp_FB ; PRG $3D8A | CPU $FD8A | E6 FB lda (Zp_F6),y ; PRG $3D8C | CPU $FD8C | B1 F6 bpl UpdateSideScrollingGameplay_FD9C ; PRG $3D8E | CPU $FD8E | 10 0C jsr UpdateSideScrollingGameplay_F8FF ; PRG $3D90 | CPU $FD90 | 20 FF F8 sta Ram_0791 ; PRG $3D93 | CPU $FD93 | 8D 91 07 ldy Zp_FB ; PRG $3D96 | CPU $FD96 | A4 FB inc Zp_FB ; PRG $3D98 | CPU $FD98 | E6 FB lda (Zp_F6),y ; PRG $3D9A | CPU $FD9A | B1 F6 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FD9 C. ; Local behavior: Executes the decoded update side scrolling gameplay fd9 c sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FD9C: jsr UpdateSideScrollingGameplay_F8BD ; PRG $3D9C | CPU $FD9C | 20 BD F8 bne UpdateSideScrollingGameplay_FDA5 ; PRG $3D9F | CPU $FD9F | D0 04 ldx #$10 ; PRG $3DA1 | CPU $FDA1 | A2 10 bne UpdateSideScrollingGameplay_FDB6 ; PRG $3DA3 | CPU $FDA3 | D0 11 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FDA5. ; Local behavior: Executes the decoded update side scrolling gameplay fda5 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FDA5: ldx #$58 ; PRG $3DA5 | CPU $FDA5 | A2 58 lda Ram_07F2 ; PRG $3DA7 | CPU $FDA7 | AD F2 07 cmp #$02 ; PRG $3DAA | CPU $FDAA | C9 02 bcc UpdateSideScrollingGameplay_FDB6 ; PRG $3DAC | CPU $FDAC | 90 08 ldx #$06 ; PRG $3DAE | CPU $FDAE | A2 06 lda Zp_FA ; PRG $3DB0 | CPU $FDB0 | A5 FA bne UpdateSideScrollingGameplay_FDB6 ; PRG $3DB2 | CPU $FDB2 | D0 02 ldx #$86 ; PRG $3DB4 | CPU $FDB4 | A2 86 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FDB6. ; Local behavior: Executes the decoded update side scrolling gameplay fdb6 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FDB6: jsr UpdateSideScrollingGameplay_F89C ; PRG $3DB6 | CPU $FDB6 | 20 9C F8 lda Ram_0791 ; PRG $3DB9 | CPU $FDB9 | AD 91 07 sta Ram_0796 ; PRG $3DBC | CPU $FDBC | 8D 96 07 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FDBF. ; Local behavior: Executes the decoded update side scrolling gameplay fdbf sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FDBF: lda Ram_07F2 ; PRG $3DBF | CPU $FDBF | AD F2 07 cmp #$01 ; PRG $3DC2 | CPU $FDC2 | C9 01 bcs UpdateSideScrollingGameplay_FDDA ; PRG $3DC4 | CPU $FDC4 | B0 14 lda Ram_0795 ; PRG $3DC6 | CPU $FDC6 | AD 95 07 ldy #$90 ; PRG $3DC9 | CPU $FDC9 | A0 90 cmp #$02 ; PRG $3DCB | CPU $FDCB | C9 02 beq UpdateSideScrollingGameplay_FDD7 ; PRG $3DCD | CPU $FDCD | F0 08 ldy #$9C ; PRG $3DCF | CPU $FDCF | A0 9C and #$03 ; PRG $3DD1 | CPU $FDD1 | 29 03 beq UpdateSideScrollingGameplay_FDD7 ; PRG $3DD3 | CPU $FDD3 | F0 02 ldy #$9F ; PRG $3DD5 | CPU $FDD5 | A0 9F ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FDD7. ; Local behavior: Executes the decoded update side scrolling gameplay fdd7 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FDD7: sty $4004 ; PRG $3DD7 | CPU $FDD7 | 8C 04 40 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FDDA. ; Local behavior: Executes the decoded update side scrolling gameplay fdda sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FDDA: dec Ram_0795 ; PRG $3DDA | CPU $FDDA | CE 95 07 bne CalculateMovementAndClamp_FE2B ; PRG $3DDD | CPU $FDDD | D0 4C ldy Ram_0782 ; PRG $3DDF | CPU $FDDF | AC 82 07 inc Ram_0782 ; PRG $3DE2 | CPU $FDE2 | EE 82 07 lda (Zp_F6),y ; PRG $3DE5 | CPU $FDE5 | B1 F6 bne UpdateSideScrollingGameplay_FDFD ; PRG $3DE7 | CPU $FDE7 | D0 14 lda #$00 ; PRG $3DE9 | CPU $FDE9 | A9 00 sta Ram_0782 ; PRG $3DEB | CPU $FDEB | 8D 82 07 sta Zp_FB ; PRG $3DEE | CPU $FDEE | 85 FB sta Ram_07A2 ; PRG $3DF0 | CPU $FDF0 | 8D A2 07 sta $4008 ; PRG $3DF3 | CPU $FDF3 | 8D 08 40 jsr UpdateSideScrollingGameplay_F894 ; PRG $3DF6 | CPU $FDF6 | 20 94 F8 jsr UpdateSideScrollingGameplay_F898 ; PRG $3DF9 | CPU $FDF9 | 20 98 F8 rts ; PRG $3DFC | CPU $FDFC | 60 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FDFD. ; Local behavior: Executes the decoded update side scrolling gameplay fdfd sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FDFD: jsr TransformFlightState_F8F9 ; PRG $3DFD | CPU $FDFD | 20 F9 F8 sta Ram_0795 ; PRG $3E00 | CPU $FE00 | 8D 95 07 txa ; PRG $3E03 | CPU $FE03 | 8A and #$3E ; PRG $3E04 | CPU $FE04 | 29 3E jsr UpdateSideScrollingGameplay_F8D4 ; PRG $3E06 | CPU $FE06 | 20 D4 F8 bne UpdateSideScrollingGameplay_FE0F ; PRG $3E09 | CPU $FE09 | D0 04 ldx #$10 ; PRG $3E0B | CPU $FE0B | A2 10 bne UpdateSideScrollingGameplay_FE23 ; PRG $3E0D | CPU $FE0D | D0 14 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FE0 F. ; Local behavior: Executes the decoded update side scrolling gameplay fe0 f sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FE0F: ldx #$9F ; PRG $3E0F | CPU $FE0F | A2 9F lda Ram_07F2 ; PRG $3E11 | CPU $FE11 | AD F2 07 cmp #$02 ; PRG $3E14 | CPU $FE14 | C9 02 bcc UpdateSideScrollingGameplay_FE23 ; PRG $3E16 | CPU $FE16 | 90 0B ldx #$87 ; PRG $3E18 | CPU $FE18 | A2 87 lda Ram_0795 ; PRG $3E1A | CPU $FE1A | AD 95 07 cmp #$10 ; PRG $3E1D | CPU $FE1D | C9 10 bcs UpdateSideScrollingGameplay_FE23 ; PRG $3E1F | CPU $FE1F | B0 02 ldx #$84 ; PRG $3E21 | CPU $FE21 | A2 84 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FE23. ; Local behavior: Executes the decoded update side scrolling gameplay fe23 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FE23: stx $4004 ; PRG $3E23 | CPU $FE23 | 8E 04 40 lda #$7F ; PRG $3E26 | CPU $FE26 | A9 7F sta $4005 ; PRG $3E28 | CPU $FE28 | 8D 05 40 ; ----------------------------------------------------------------------------- ; Global purpose: Calculate And Clamp Value FE2 B. ; Local behavior: Executes the decoded calculate and clamp value fe2 b sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- CalculateMovementAndClamp_FE2B: ldy Zp_FA ; PRG $3E2B | CPU $FE2B | A4 FA beq UpdateGameplayStateField_FE58 ; PRG $3E2D | CPU $FE2D | F0 29 dec Ram_0798 ; PRG $3E2F | CPU $FE2F | CE 98 07 bne UpdateGameplayStateField_FE58 ; PRG $3E32 | CPU $FE32 | D0 24 inc Zp_FA ; PRG $3E34 | CPU $FE34 | E6 FA lda (Zp_F6),y ; PRG $3E36 | CPU $FE36 | B1 F6 jsr TransformFlightState_F8F9 ; PRG $3E38 | CPU $FE38 | 20 F9 F8 sta Ram_0798 ; PRG $3E3B | CPU $FE3B | 8D 98 07 clc ; PRG $3E3E | CPU $FE3E | 18 adc #$FE ; PRG $3E3F | CPU $FE3F | 69 FE asl a ; PRG $3E41 | CPU $FE41 | 0A asl a ; PRG $3E42 | CPU $FE42 | 0A cmp #$38 ; PRG $3E43 | CPU $FE43 | C9 38 bcc UpdateSideScrollingGameplay_FE49 ; PRG $3E45 | CPU $FE45 | 90 02 lda #$38 ; PRG $3E47 | CPU $FE47 | A9 38 ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FE49. ; Local behavior: Executes the decoded update side scrolling gameplay fe49 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FE49: ldy Ram_07F2 ; PRG $3E49 | CPU $FE49 | AC F2 07 cpy #$02 ; PRG $3E4C | CPU $FE4C | C0 02 bcs UpdateSideScrollingGameplay_FE52 ; PRG $3E4E | CPU $FE4E | B0 02 lda #$FF ; PRG $3E50 | CPU $FE50 | A9 FF ; ----------------------------------------------------------------------------- ; Global purpose: Update Side Scrolling Gameplay FE52. ; Local behavior: Executes the decoded update side scrolling gameplay fe52 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateSideScrollingGameplay_FE52: sta $4008 ; PRG $3E52 | CPU $FE52 | 8D 08 40 jsr UpdateSideScrollingGameplay_F8D8 ; PRG $3E55 | CPU $FE55 | 20 D8 F8 ; ----------------------------------------------------------------------------- ; Global purpose: Update Gameplay State Field FE58. ; Local behavior: Executes the decoded update gameplay state field fe58 sequence at this entry point. ; Parameters: Determined by callers; refined in Pass 3. ; Returns: According to the decoded control flow. ; Clobbers: Determined by the instructions below; refined in Pass 3. ; ----------------------------------------------------------------------------- UpdateGameplayStateField_FE58: rts ; PRG $3E58 | CPU $FE58 | 60 GameplayLookupTable_FE59: .byte $04 ; PRG $3E59 | CPU $FE59 GameplayLookupTable_FE5A: .byte $09 ; PRG $3E5A | CPU $FE5A GameplayLookupTable_FE5B: .byte $0E ; PRG $3E5B | CPU $FE5B GameplayLookupTable_FE5C: .byte $13 ; PRG $3E5C | CPU $FE5C GameplayLookupTable_FE5D: .byte $0F,$71,$FE,$11,$21,$17,$C8,$FE,$09,$21,$08,$E5,$FF,$00,$00,$1F ; PRG $3E5D | CPU $FE5D .byte $F9,$FE,$C5,$41,$5B,$DB,$A3,$E5,$E3,$E5,$8B,$E5,$E3,$E5,$CA,$A4 ; PRG $3E6D | CPU $FE6D .byte $E3,$E1,$E3,$1D,$00,$88,$A2,$9A,$A2,$9A,$A2,$9A,$A2,$9A,$8A,$A4 ; PRG $3E7D | CPU $FE7D .byte $8A,$A4,$A8,$A2,$3D,$82,$08,$87,$12,$0A,$26,$12,$0A,$26,$12,$0A ; PRG $3E8D | CPU $FE8D .byte $26,$12,$0A,$26,$16,$12,$0A,$16,$12,$0A,$16,$12,$0A,$16,$12,$0A ; PRG $3E9D | CPU $FE9D .byte $14,$0A,$24,$14,$0A,$24,$14,$0A,$24,$12,$0A,$26,$12,$0C,$28,$12 ; PRG $3EAD | CPU $FEAD .byte $0C,$28,$80,$12,$28,$12,$28,$12,$28,$84,$12,$5B,$48,$9A,$5C,$9F ; PRG $3EBD | CPU $FEBD .byte $1C,$DF,$1D,$00,$5A,$76,$5A,$76,$5A,$76,$5A,$76,$5E,$7C,$5E,$7C ; PRG $3ECD | CPU $FECD .byte $5E,$7C,$5E,$7C,$5C,$7A,$5C,$7A,$5C,$7A,$5C,$7A,$85,$36,$81,$08 ; PRG $3EDD | CPU $FEDD .byte $82,$36,$81,$3A,$86,$3C,$80,$3A,$87,$3C,$84,$3A,$CB,$CB,$8B,$CB ; PRG $3EED | CPU $FEED .byte $E9,$A7,$CB,$CB,$8A,$89,$CD,$CD,$8D,$CD,$CB,$A9,$CD,$CD,$8C,$89 ; PRG $3EFD | CPU $FEFD .byte $D1,$D1,$91,$D1,$CD,$8B,$51,$50,$50,$92,$54,$0B,$CB,$CB,$8B,$CB ; PRG $3F0D | CPU $FF0D .byte $E9,$A7,$CB,$CB,$8A,$89,$CD,$CD,$8D,$CD,$CB,$A9,$CD,$CD,$8C,$89 ; PRG $3F1D | CPU $FF1D .byte $D1,$D1,$91,$D1,$CD,$8B,$51,$50,$50,$92,$54,$13,$00,$87,$26,$26 ; PRG $3F2D | CPU $FF2D .byte $86,$26,$87,$26,$24,$86,$22,$87,$26,$26,$86,$26,$87,$3A,$1A,$86 ; PRG $3F3D | CPU $FF3D .byte $3A,$87,$28,$28,$86,$28,$87,$28,$26,$86,$24,$87,$28,$28,$86,$28 ; PRG $3F4D | CPU $FF4D .byte $87,$3C,$1C,$86,$3C,$87,$0A,$0A,$86,$0A,$87,$0A,$28,$86,$26,$81 ; PRG $3F5D | CPU $FF5D .byte $0A,$82,$1A,$81,$1A,$0A,$82,$0C,$81,$10,$84,$26,$87,$34,$3A,$86 ; PRG $3F6D | CPU $FF6D .byte $1A,$87,$34,$3A,$86,$1A,$87,$34,$3A,$86,$1A,$87,$34,$36,$86,$3A ; PRG $3F7D | CPU $FF7D .byte $87,$3C,$1C,$86,$22,$87,$3C,$1C,$86,$22,$87,$3C,$1C,$86,$22,$87 ; PRG $3F8D | CPU $FF8D .byte $36,$3A,$86,$3C,$87,$1A,$20,$86,$24,$87,$1A,$20,$86,$24,$80,$24 ; PRG $3F9D | CPU $FF9D .byte $22,$24,$22,$81,$24,$1A,$80,$1A,$3E,$1C,$1A,$81,$1C,$20,$84,$0A ; PRG $3FAD | CPU $FFAD .byte $08,$A2,$9A,$A2,$9A,$A8,$A2,$A8,$A2,$8A,$A4,$8A,$A4,$8A,$A4,$A2 ; PRG $3FBD | CPU $FFBD .byte $9A,$22,$60,$5C,$1A,$7A,$A2,$9A,$A2,$9A,$A8,$A2,$A8,$A2,$8A,$A4 ; PRG $3FCD | CPU $FFCD .byte $8A,$A4,$8A,$A4,$62,$9A,$7A,$35,$02,$14,$02,$14,$02,$14,$02,$54 ; PRG $3FDD | CPU $FFDD .byte $00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ; PRG $3FED | CPU $FFED .segment "VECTORS" .word NmiHandler ; PRG $3FFA | CPU $FFFA | A1 CA .word ResetHandler ; PRG $3FFC | CPU $FFFC | 83 C9 .word IrqHandler ; PRG $3FFE | CPU $FFFE | 9E CA