; smw highland ; originally by wiiqwertyuiop ; disassembled by randomdude999 ; first, some stuff that isn't exclusive to this patch org $009E25 ; 99 starting lives ; Orig: $04 db $62 ; 63 will actually mean 100 lives which breaks some stuff org $008E28 ; Orig: DEC.w $0F30 LDA $0F30 ; disable decrementing the ingame timer ; RNG routine - this is a variant of the Better RNG patch, but a bit different for some reason org $01ACF9 LDA $2137 LDA $213C ADC $15 ADC $13 ADC $148D STA $148D SBC $14 ADC $148E STA $148E RTL ; and now the patch-specific hijacks org $008F49 ; status bar update routine hijack ; Orig: LDA $0DBE : INC autoclean JSL RoutineF org $018D1A ; Orig: CMP $8CBC,y CMP $1FD6,x org $018F54 ; Orig: AND #$0F : ORA #$D0 LDA $F0,x EOR #$FF org $01ABD8 ; Orig: LDA $AA,x : BEQ $2D JMP $FFBF org $01AFE9 ; Orig: LDA #$A0 LDA $F0,x org $01B1CF ; Orig: LDA $B1B1,y LDA.w $00F0,x org $01B283 ; Orig: AND #$01 : TAY JSR $FFCF org $01B289 ; Orig: ADC $B268,y ADC $FFD5,y org $01B290 ; Orig: CMP $B26A,y CMP $FFDD,y org $01E0F9 ; Orig: $B9,$7B,$E0,$30,$05,$9D,$64,$15,$A9,$80 LDA #$02 STA $F0,x LDA $E07B,y BMI + NOP + org $01E125 ; Orig: CLC : ADC #$02 : STA $AA,x JSL RoutineN_RoutineI|$800000 NOP org $01F8B1 ; Orig: CMP $F88E,y CMP.w $00F0,x org $01F997 ; Orig: CMP $F8CF,y CMP $1FD6,x org $01F9BD ; Orig: CMP $F8CF,y CMP.w $00F0,x ; misc routines that were put in bank 1 because hijack constraints org $01FFBF JSL RoutineJ_main|$800000 LDA $AA,x BEQ + JMP $ABDC + JMP $AC09 org $01FFCF AND #$01 CLC ADC $1FD6,x TAY RTS org $01FFD5 ; some data? db $A8,$60,$FF,$01,$FC,$04,$F8,$08 db $F0,$10,$F0,$10,$EC,$14,$E0,$20,$C0,$40 org $02B8CA ; Orig: BEQ $06 BCS $06 org $02B8CD ; Orig: $79,$BA,$B8 ADC $1FD6,x org $02BBF0 ; Orig: $D9,$8E,$BB CMP $1FD6,x org $02D294 ; Orig: $B5,$AA,$0A JSR $FFE2 org $02D950 ; Orig: $D9,$B9,$D8 CMP $00F0,x org $02E14F ; Orig: LDA #$C0 LDA $F0,x ; another routine that didn't deserve a long jump org $02FFE2 JSL RoutineJ_main|$800000 LDA $AA,x ASL RTS org $038060 ; Orig: $29,$03,$A8,$B9,$0E,$80 BRA + NOP #2 + LDA $F0,x org $038920 ; Orig: $D9,$E0,$88 CMP $1FD6,x org $03974A ; Orig: $D9,$2B,$97 CMP $1FD6,x org $039FDE ; Orig: $B9,$ED,$9F,$95,$B6,$A9,$E2 JSL RoutineO_randomLongRoutine|$800000 LDA $00F0,x org $058546 ; hijack some part of level loading ; Orig: $8D,$2B,$19,$8A JML RoutineC|$800000 ; clear sprite tables routine hijack org $07F785 ; Orig: $A9,$01,$9D,$A0,$15 JSL RoutineE|$800000 NOP ; load sprite tables hijack org $07F78D ; Orig: $B5,$9E,$AA,$BF,$FE,$F3,$07 JML RoutineA|$800000 NOP #3 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ------------------------ END OF HIJACKS ------------------------ ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; freecode ; 128000 RoutineB: ; another RNG routine, works with DB $7E too? LDA $002137 LDA $00213C ADC $15 SBC $148B ADC $13 STA $148B SBC $148C ADC $14 ADC $94 STA $148C RTS ; 12801D RoutineC: STA $192B STA $1929 LDA $0D9B BMI .arLabel4E JSR RoutineB STA $1923 LDA $148B AND #$07 STA $1924 BEQ .arLabel3F CMP #$0B BCS .arLabel3F STA $192B .arLabel3F LDA $19 CLC ADC $15E8 BNE .arLabel4E LDA #$01 STA $15E8 STA $19 .arLabel4E TXA JML $85854A ; 128053 RoutineA: LDA $9E,x CMP #$4A BEQ .arLabel41 CMP #$7B BEQ .arLabel41 CMP #$C5 BEQ .arLabel41 CMP #$8C BEQ .arLabel41 CMP #$B1 BEQ .arLabel41 CMP #$29 BEQ .arLabel41 CMP #$89 BEQ .arLabel41 CMP #$19 BEQ .arLabel41 CMP #$6C BEQ .arLabel41 CMP #$6B BEQ .arLabel41 LDA $0D9B BMI .arLabel3F LDA $1929 BNE .arLabel3A LDA $9E,x CMP #$9C BEQ .arLabel41 .arLabel3A PHY JSR RoutineD PLY .arLabel3F LDA $9E,x .arLabel41 TAX LDA $87F3FE,x JML $87F794 ; 12809d ; main at 8167 RoutineJ: .arLabel000 PHX JSR RoutineB AND #$03 TAX LDA $83800E,x STA $00F0,y PLX PLY RTL .arLabel011 PHX LDA $151C,y AND #$01 TAX LDA $818CBC,x STA $1FD6,y PLX PLY RTL .arLabel022 PHX LDA $15AC,y LSR A LSR A LSR A TAX LDA $81F8CF,x STA $00F0,y PLX PLY RTL .arLabel034 PHX LDA $00C2,y AND #$01 TAX LDA $81F88E,x STA $00F0,y PLX PLY RTL .arLabel045 PHX LDA $151C,y AND #$01 TAX LDA $82D8B9,x STA $00F0,y PLX PLY RTL .arLabel056 PHX LDX $00C2,y LDA $81B1B1,x STA $00F0,y PLX PLY RTL .arLabel064 LDA #$E2 BRA .arLabel0AB .arLabel068 LDA #$A0 BRA .arLabel0AB .arLabel06C LDA $009E,y CMP #$0A BCC .arLabel0A7 CMP #$0C BCC .arLabel011 CMP #$1C BEQ .arLabel000 CMP #$28 BEQ .arLabel022 CMP #$37 BEQ .arLabel022 CMP #$AF BEQ .arLabel022 CMP #$1D BEQ .arLabel0B0 CMP #$18 BEQ .arLabel056 CMP #$27 BEQ .arLabel068 CMP #$39 BEQ .arLabel034 CMP #$4F BEQ .arLabel0A9 CMP #$50 BEQ .arLabel0A9 CMP #$9D BEQ .arLabel045 CMP #$A8 BEQ .arLabel064 .arLabel0A7 PLY .arLabel0A8 RTL .arLabel0A9 LDA #$C0 .arLabel0AB STA $00F0,y PLY RTL .arLabel0B0 JSR RoutineB AND #$0F BRA .arLabel0AB .arLabel0B7 LDA $186C,y BNE .arLabel0C3 LDA $1588,y AND #$0C BEQ .arLabel13E .arLabel0C3 LDA #$00 STA $00F0,y BRA .arLabel144 .main LDA $9D BNE .arLabel0A8 PHY LDY $15E9 LDA $0F5E,y BEQ .arLabel0A7 CPX #$0C BCS .arLabel14F AND #$0A BEQ .arLabel06C AND #$08 BEQ .arLabel0E8 JSR RoutineN PLY RTL .arLabel0E8 PHB LDA #$7E PHA PLB LDA $C100,y BNE .arLabel0B7 JSR RoutineB AND #$80 BEQ .arLabel14C LDA $148B AND #$07 BNE .arLabel14C LDA $148C AND #$0F BEQ .arLabel10C LDA $1588,y BEQ .arLabel14C .arLabel10C JSR RoutineB AND #$3F STA $C100,y LDA $1588,y AND #$8C CMP #$0C BCS .arLabel14C AND #$04 BNE .arLabel134 LDA $1588,y AND #$08 BNE .arLabel12D JSR RoutineB BPL .arLabel134 .arLabel12D LDA $148B AND #$3F BRA .arLabel13B .arLabel134 LDA $148B AND #$3F EOR #$FF .arLabel13B STA $00F0,y .arLabel13E LDA $C100,y SEC SBC #$01 .arLabel144 STA $C100,y LDA $00F0,y STA $AA,x .arLabel14C PLB PLY RTL .arLabel14F AND #$05 BEQ .arLabel1AD AND #$04 BEQ .arLabel15C JSR RoutineO PLY RTL .arLabel15C JSR RoutineB AND #$07 BNE .arLabel180 LDA $148B AND #$07 BNE .arLabel180 LDA $151C,y EOR #$01 STA $151C,y LDA $157C,y EOR #$01 STA $157C,y LDA $AA,x EOR #$FF STA $AA,x .arLabel180 LDA $1FD6,y BEQ .arLabel18F LDA $148B BMI .arLabel195 LDA $148C BPL .arLabel195 .arLabel18F JSR RoutineB STA $1FD6,y .arLabel195 LDA $AA,x BPL .arLabel1A4 LDA $1FD6,y AND #$1F EOR #$FF STA $AA,x PLY RTL .arLabel1A4 LDA $1FD6,y AND #$1F STA $AA,x PLY RTL .arLabel1AD LDA $009E,y CMP #$0A BCC .arLabel1DC CMP #$0C BCC .arLabel1DE CMP #$28 BEQ .arLabel1EF CMP #$37 BEQ .arLabel1EF CMP #$41 BCC .arLabel1DC CMP #$44 BCC .arLabel201 CMP #$44 BEQ .arLabel21A CMP #$AA BCC .arLabel1DC CMP #$AA BEQ .arLabel228 CMP #$AF BEQ .arLabel1EF CMP #$BE BEQ .arLabel236 .arLabel1DC PLY RTL .arLabel1DE PHX LDA $151C,y AND #$01 TAX LDA $818CBC,x STA $1FD6,y PLX PLY RTL .arLabel1EF PHX LDA $15AC,y LSR A LSR A LSR A TAX LDA $81F8CF,x STA $1FD6,y PLX PLY RTL .arLabel201 PHX LDA $00C2,y LSR A PHP LDA $009E,y SEC SBC #$41 PLP ROL A TAX LDA $82BB8E,x STA $1FD6,y PLX PLY RTL .arLabel21A PHX LDX $157C,y LDA $82B8BA,x STA $1FD6,y PLX PLY RTL .arLabel228 PHX LDX $157C,y LDA $83972B,x STA $1FD6,y PLX PLY RTL .arLabel236 PHX LDX $157C,y LDA $8388E0,x STA $1FD6,y PLX PLY RTL ; 82e1 RoutineO: LDA $009E,y JSL $8086DF dw .subI,.subI,.subI,.subI,.subI,.subI,.subI,.subI,.subI,.subI,.subI,.subE,.subI,.subI,.subF,.subI dw .subI,.subI,.subF,.subI,.subJ,.subI,.subI,.subI,.subI,.subF,.subF,.subJ,.subI,.subI,.subI,.subI dw .subF,.subI,.subI,.subI,.subA,.subA,.subF,.subC,.subE,.subF,.subF,.subF,.subF,.subJ,.subI,.subJ dw .subI,.subI,.subI,.subI,.subI,.subJ,.subF,.subE,.subB,.subB,.subB,.subB,.subI,.subI,.subF,.subI dw .subI,.subD,.subD,.subF,.subE,.subF,.subI,.subI,.subJ,.subF,.subF,.subF,.subF,.subI,.subI,.subF dw .subF,.subJ,.subI,.subJ,.subF,.subH,.subH,.subH,.subH,.subF,.subF,.subI,.subI,.subI,.subI,.subI dw .subI,.subI,.subI,.subI,.subI,.subI,.subI,.subI,.subI,.subF,.subI,.subI,.subI,.subF,.subI,.subI dw .subI,.subI,.subI,.subI,.subI,.subJ,.subI,.subI,.subI,.subI,.subI,.subF,.subJ,.subI,.subI,.subI dw .subF,.subF,.subF,.subI,.subI,.subF,.subI,.subI,.subF,.subF,.subI,.subI,.subI,.subI,.subF,.subI dw .subI,.subI,.subI,.subI,.subI,.subI,.subI,.subI,.subI,.subF,.subI,.subF,.subI,.subI,.subI,.subI dw .subF,.subF,.subI,.subI,.subB,.subI,.subI,.subF,.subF,.subI,.subE,.subI,.subF,.subF,.subI,.subE dw .subA,.subF,.subJ,.subI,.subI,.subF,.subA,.subF,.subF,.subF,.subI,.subI,.subI,.subI,.subG,.subI dw .subI,.subI,.subI,.subI,.subI,.subF,.subF,.subI,.subF .subA ; 847a LDA $1FD6,y BNE ..arLabel0F JSR RoutineB AND #$1F STA $1FD6,y STA $AA,x ..arLabel0F RTS .subB ; 848a LDA $1FD6,y BNE ..arLabel20 JSR RoutineB AND #$1F STA $1FD6,y LDA $AA,x BPL ..arLabel18 LDA $1FD6,y EOR #$FF BRA ..arLabel1B ..arLabel18 LDA $1FD6,y ..arLabel1B STA $1FD6,y STA $AA,x ..arLabel20 RTS .subC ; 84ab LDA $1FD6,y BNE ..arLabel0D JSR RoutineB AND #$1F STA $1FD6,y ..arLabel0D LDA $AA,x BEQ ..arLabel1E LDA $00C2,y LSR A LDA $1FD6,y BCC ..arLabel1C EOR #$FF ..arLabel1C STA $AA,x ..arLabel1E RTS .subD ; 84ca LDA $1FD6,y BNE ..arLabel0D JSR RoutineB AND #$1F STA $1FD6,y ..arLabel0D LDA $151C,x BNE ..arLabel34 LDA $00C2,y LSR A PHP LDA $009E,y SEC SBC #$41 PLP ROL A AND #$01 BNE ..arLabel2A LDA $1FD6,y BMI ..arLabel34 BRA ..arLabel2F ..arLabel2A LDA $1FD6,y BPL ..arLabel34 ..arLabel2F EOR #$FF STA $1FD6,y ..arLabel34 RTS .subE ; 84ff LDA $1FD6,y BNE ..arLabel0D JSR RoutineB AND #$1F STA $1FD6,y ..arLabel0D LDA $151C,y AND #$01 BNE ..arLabel1B LDA $1FD6,y BMI ..arLabel25 BRA ..arLabel20 ..arLabel1B LDA $1FD6,y BPL ..arLabel25 ..arLabel20 EOR #$FF STA $1FD6,y ..arLabel25 RTS .subF ; 8525 RTS .randomLongRoutine ; 8526 ; random long routine in the middle here LDA $1FD6,x BNE ..arLabel18 LDA $0F5E,x AND #$05 BNE ..arLabel10 LDA #$10 BRA ..arLabel15 ..arLabel10 JSR RoutineB AND #$3F ..arLabel15 STA $1FD6,x ..arLabel18 CPY #$01 BNE ..arLabel23 LDA $1FD6,x BMI ..arLabel2D BRA ..arLabel28 ..arLabel23 LDA $1FD6,x BPL ..arLabel2D ..arLabel28 EOR #$FF STA $1FD6,x ..arLabel2D STA $B6,x RTL .subG ; 8556 LDA $1FD6,y BNE ..arLabel0D JSR RoutineB AND #$1F STA $1FD6,y ..arLabel0D LDA $157C,y AND #$01 BEQ ..arLabel1B LDA $1FD6,y BMI ..arLabel25 BRA ..arLabel20 ..arLabel1B LDA $1FD6,y BPL ..arLabel25 ..arLabel20 EOR #$FF STA $1FD6,y ..arLabel25 RTS .subH ; 857C LDA $1FD6,y BNE ..arLabel11 JSR RoutineB AND #$03 ASL A CLC ADC #$02 STA $1FD6,y ..arLabel11 RTS .subI ; 858e LDA $1FD6,y BNE ..arLabel0D JSR RoutineB AND #$0F STA $1FD6,y ..arLabel0D LDA $AA,x BEQ ..arLabel1E BPL ..arLabel1F LDA $1FD6,y DEC A EOR #$FF CLC ADC $AA,x STA $AA,x ..arLabel1E RTS ..arLabel1F CLC ADC $1FD6,y STA $AA,x RTS .subJ ; 85b4 LDA $1FD6,y BNE ..arLabel0A LDA #$08 STA $1FD6,y ..arLabel0A LDA $1588,y AND #$03 BEQ ..arLabel29 AND #$01 BEQ ..arLabel1C LDA $1FD6,y BMI ..arLabel23 BRA ..arLabel21 ..arLabel1C LDA $1FD6,y BPL ..arLabel23 ..arLabel21 EOR #$FF ..arLabel23 CLC ADC $AA,x STA $AA,x RTS ..arLabel29 LDA $1FD6,y CLC ADC $AA,x STA $AA,x RTS ; 1285e6 RoutineN: LDA $009E,y JSL $8086DF ; ExecutePtr ; one entry for every regular sprite dw .subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subD,.subA,.subA,.subA,.subA,.subA dw .subA,.subA,.subA,.subA,.subC,.subA,.subF,.subA,.subN,.subA,.subA,.subN,.subA,.subO,.subA,.subA dw .subA,.subA,.subC,.subC,.subA,.subA,.subF,.subM,.subA,.subA,.subA,.subF,.subA,.subA,.subF,.subA dw .subA,.subA,.subA,.subA,.subA,.subA,.subA,.subH,.subA,.subI,.subF,.subF,.subF,.subF,.subA,.subA dw .subA,.subA,.subA,.subL,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subG,.subG,.subF,.subM dw .subM,.subE,.subA,.subA,.subA,.subJ,.subJ,.subJ,.subJ,.subA,.subA,.subA,.subA,.subA,.subA,.subA dw .subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA dw .subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA dw .subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA dw .subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subP,.subA,.subA dw .subA,.subA,.subA,.subA,.subA,.subF,.subA,.subA,.subN,.subA,.subA,.subA,.subA,.subA,.subA,.subA dw .subK,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subB,.subA dw .subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA,.subA ; 877f .subA RTS ; 8780 .subB LDA $00C2,y CMP #$01 BEQ + RTS + ; 8788 .subC LDA $1FD6,y BNE ..arLabel0C LDA #$08 STA $1FD6,y STA $AA,x ..arLabel0C RTS ; 8795 .subD LDA $00F0,y BNE ..arLabel0A LDA #$08 STA $00F0,y ..arLabel0A LDA $151C,y AND #$01 BNE ..arLabel18 LDA $00F0,y BMI ..arLabel22 BRA ..arLabel1D ..arLabel18 LDA $00F0,y BPL ..arLabel22 ..arLabel1D EOR #$FF STA $00F0,y ..arLabel22 RTS ; 87b8 .subE LDA $1540,y CMP #$5F BNE ..arLabel10 JSR RoutineB AND #$7F EOR #$FF STA $AA,x ..arLabel10 RTS ; 87c9 .subF LDA $1FD6,y BNE ..arLabel0A LDA #$08 STA $1FD6,y ..arLabel0A LDA $AA,x BEQ ..arLabel18 BPL ..arLabel19 LDA $1FD6,y DEC A EOR #$FF STA $AA,x ..arLabel18 RTS ..arLabel19 LDA $1FD6,y STA $AA,x RTS ; 87e8 .subG LDA $00C2,y CMP #$02 BNE ..arLabel11 LDA $AA,x CMP #$B0 BNE ..arLabel11 LDA #$08 STA $AA,x ..arLabel11 LDA $1558,y CMP #$4F BCC ..arLabel1C LDA #$08 STA $AA,x ..arLabel1C RTS ; 128805 .RoutineI ; random long routine in the middle of subs again? LDA $0F5E,x AND #$0A BEQ ..arLabel1A AND #$08 BNE ..arLabel1B LDA #$02 STA $F0,x ..arLabel0F LDA $AA,x CLC ADC $F0,x STA $AA,x LDA #$02 STA $F0,x ..arLabel1A RTL ..arLabel1B JSR RoutineB AND #$20 BNE ..arLabel0F LDA $F0,x CLC ADC #$02 STA $F0,x RTL .subH ; 882f LDA $00F0,y BNE ..arLabel0A LDA #$08 STA $00F0,y ..arLabel0A LDA $AA,x BEQ ..arLabel1D BPL ..arLabel17 LDA $00F0,y EOR #$FF BRA ..arLabel1A ..arLabel17 LDA $00F0,y ..arLabel1A STA $00F0,y ..arLabel1D RTS .subI ; 884d LDA $00F0,y BNE ..arLabel0A LDA #$08 STA $00F0,y ..arLabel0A LDA $00C2,y AND #$01 BEQ ..arLabel18 ..arLabel11 LDA $00F0,y EOR #$FF BRA ..arLabel1F ..arLabel18 LDA $AA,x BMI ..arLabel11 LDA $00F0,y ..arLabel1F STA $00F0,y RTS .subJ ; 8870 LDA $1FD6,y BNE ..arLabel11 JSR RoutineB AND #$03 ASL A CLC ADC #$02 STA $1FD6,y ..arLabel11 RTS .subP ; 8882 LDA $00F0,y BNE ..arLabel0A LDA #$08 STA $00F0,y ..arLabel0A LDA $151C,y AND #$01 BEQ ..arLabel18 LDA $00F0,y BMI ..arLabel22 BRA ..arLabel1D ..arLabel18 LDA $00F0,y BPL ..arLabel22 ..arLabel1D EOR #$FF STA $00F0,y ..arLabel22 RTS .subK ; 88a5 LDA $1FD6,y BNE ..arLabel0E LDA #$08 EOR #$FF STA $1FD6,y STA $AA,x ..arLabel0E RTS .subL ; 88b4 LDA $00C2,y CMP $00F0,y BEQ ..arLabel18 STA $00F0,y JSR RoutineB AND #$7F CMP #$50 BCS ..arLabel18 EOR #$FF STA $AA,x ..arLabel18 RTS .subM ; 88cd LDA $00F0,y BEQ ..arLabel06 RTS ..arLabel06 .subN ; 88d3 JSR RoutineB AND #$7F EOR #$FF STA $00F0,y RTS .subO ; 88de JSR RoutineB AND #$3F STA $00F0,y RTS ; 1288e7 RoutineE: LDA #$00 STA $7EC100,x INC A STA $15A0,x STZ $F0,x STZ $0F5E,x RTL ; 1288F7 RoutineD: PHB PHK PLB LDA $9E,x PHA LDA $9E,x CMP #$3E BEQ .arLabel8A JSR RoutineB LDA $1929 CMP #$02 BNE .arLabel27 LDA $9E,x CMP #$55 BCC .arLabel27 CMP #$64 BCS .arLabel27 LDA $148B AND #$07 BNE .arLabel8A .arLabel27 LDA $148C AND #$1F BEQ .arLabel8A JSR RoutineB CMP #$8A BCC .arLabel5A CMP #$E5 BCC .arLabel8A LDA $148B CMP #$C5 BCS .arLabel8A CMP #$7A BEQ .arLabel8A CMP #$7C BEQ .arLabel8A CMP #$36 BEQ .arLabel8A CMP #$88 BEQ .arLabel8A CMP #$A0 BEQ .arLabel8A CMP #$A7 BEQ .arLabel8A BRA .arLabel7D .arLabel5A CMP #$45 BCC .arLabel5F LSR A .arLabel5F CMP #$29 BCS .arLabel6B TAY LDA Data89A4,y STA $9E,x BRA .arLabel8A .arLabel6B LDY $192B CPY #$B00B CLC SEC SBC #$29 CLC ADC Data8998,y TAY LDA Data89CC,y .arLabel7D CMP #$33 BNE .arLabel88 LDA $190E BNE .arLabel88 LDA #$4F .arLabel88 STA $9E,x .arLabel8A JSR RoutineB ADC #$01 AND #$0F STA $0F5E,x PLA CMP $9E,x BNE .arLabel9D PLB LDA #$FF RTS .arLabel9D PLB LDA #$02 RTS Data8998: db $00,$1c,$36,$52,$6e,$8a,$a6,$c2 ; 128998 db $de,$de,$e0,$e0 ; 1289a0 Data89A4: db $00,$7d,$02,$1c,$04,$6a,$06,$07,$08,$09,$0a,$0b ; 1289a4 db $0c,$18,$0f,$10,$1c,$21,$2d,$2f,$35,$3e,$45,$4f,$50,$59,$5a,$6b ; 1289b0 db $6c,$6d,$74,$75,$76,$77,$74,$79,$b1,$80,$c1,$05 ; 1289c0 Data89CC: ; may seem a bit large but i'm pretty sure the whole thing is indeed data db $0d,$13,$14,$15 ; 1289cc db $16,$18,$1d,$1e,$2c,$3f,$40,$47,$49,$4b,$4c,$5b,$6c,$77,$7d,$86 ; 1289d0 db $87,$91,$92,$93,$95,$0d,$9d,$86,$1f,$22,$23,$24,$25,$26,$27,$30 ; 1289e0 db $31,$32,$33,$67,$9e,$a5,$a6,$aa,$ac,$ad,$b2,$b3,$b4,$b6,$bb,$bc ; 1289f0 db $5b,$31,$b6,$67,$46,$47,$48,$4c,$55,$56,$57,$58,$5f,$62,$63,$64 ; 128a00 db $65,$66,$68,$5f,$87,$8f,$91,$a4,$c4,$57,$a3,$a4,$a3,$a5,$c4,$a5 ; 128a10 db $1b,$2a,$2c,$2e,$33,$47,$61,$62,$11,$87,$91,$92,$93,$95,$97,$c4 ; 128a20 db $a8,$be,$c4,$6d,$1c,$50,$11,$2e,$91,$be,$0f,$2e,$3a,$3b,$3c,$3d ; 128a30 db $41,$42,$43,$44,$47,$87,$91,$92,$93,$95,$94,$c2,$c2,$c3,$15,$16 ; 128a40 db $16,$15,$3a,$3b,$44,$43,$3d,$3c,$2b,$47,$4d,$4e,$70,$71,$72,$73 ; 128a50 db $98,$99,$91,$92,$93,$95,$94,$9a,$9c,$c4,$70,$71,$72,$73,$2b,$99 ; 128a60 db $98,$9a,$9a,$70,$1b,$2a,$2c,$2e,$33,$47,$61,$62,$11,$87,$91,$92 ; 128a70 db $93,$95,$97,$4c,$a8,$be,$c4,$6d,$1c,$50,$11,$1b,$91,$be,$0f,$2e ; 128a80 db $28,$37,$38,$39,$52,$90,$ae,$af,$b0,$37,$37,$38,$38,$90,$ae,$af ; 128a90 db $af,$b0,$38,$38,$38,$28,$39,$39,$b0,$38,$39,$37,$ab,$9f,$18,$47 ; 128aa0 db $91,$92,$93,$95,$79,$ab,$b7,$b8,$ba,$bf,$bd,$0b,$b1,$0a,$b2,$bf ; 128ab0 db $ab,$50,$02,$10,$91,$1c,$ab,$c4,$6e,$6f,$6e,$6f ; 128ac0 ; 128acc RoutineK: LDA $58 BEQ .arLabel27 LDA $5C STA $13E0 REP #$20 INC $60 LDA $60 CMP $62 BCC .arLabel1A STZ $60 STZ $58 .arLabel17 SEP #$20 RTS .arLabel1A AND #$003F BNE .arLabel17 SEP #$20 JSR RoutineB STA $5C RTS .arLabel27 REP #$20 INC $60 LDA $60 AND #$03FF BNE .arLabel52 STZ $60 LDA $148B AND #$001F BNE .arLabel52 JSR RoutineM AND #$03FF CLC ADC #$0258 STA $62 SEP #$20 JSR RoutineB STA $5C INC $58 RTS .arLabel52 SEP #$20 RTS ; 128b21 RoutineL: REP #$20 DEC $1923 LDA $1923 BNE .arLabel3E JSR RoutineM AND #$03FF STA $1923 SEP #$20 JSL $02A9DE BMI .arLabel3E TYX JSR RoutineD BMI .arLabel3E LDA #$01 STA $14C8,x JSR RoutineB STA $E4,x LDA $95 STA $14E0,x LDA $148B STA $D8,x LDA $97 STA $14D4,x JSL $87F7D2 .arLabel3E SEP #$20 RTS ; 128b62 RoutineF: JSR RoutineK JSR RoutineL ; restore old code LDA $0DBE INC A RTL ; 128b6d RoutineM: LDY $2137 LDA $213C ADC $148B ADC $13 STA $148B RTS