passport/src/patchers/sunburst.a

72 lines
2.0 KiB
Plaintext
Executable File

;-------------------------------
; #SUNBURST
; RWTS with track-based address
; and data prologue modifications
; e.g. The Incredible Laboratory
; NOTE: must be run before RWTS
; patchers due to overlapping bytes
;-------------------------------
_sunburst
sec
lda gIsRWTS ; if DOS 3.3 RWTS
bne sunburst_exit
lda #$03
ldx #$40
ldy #$01
jsr compare ; and T00,S03,$40 ==
!byte $D0
bcs sunburst_exit
lda #$03
ldx #$9C
ldy #$01
jsr compare ; and T00,S03,$9C ==
!byte $F0
bcs sunburst_exit
lda #$04
ldx #$69
ldy #$2C
jsr compare ; and T00,S04,$69 ==
!byte $48,$A5,$2A,$4A,$A8,$B9,$29,$BA
!byte $8D,$6A,$B9,$8D,$84,$BC,$B9,$34
!byte $BA,$8D,$FC,$B8,$8D,$5D,$B8,$C0
!byte $11,$D0,03,$A9,02,$AC,$A9,$0E
!byte $8D,$C0,$BF,$68,$69,00,$48,$AD
!byte $78,04,$90,$2B
bcs sunburst_exit
lda #$06
ldx #$69
ldy #$06
jsr compare ; and T00,S06,$69 ==
!byte $4C,$B8,$B6,$EA,$EA,$EA
bcs sunburst_exit
lda #$08
ldx #$8C
ldy #$02
jsr compare ; and T00,S08,$8C ==
!byte $69,$BA
bcc sunburst_yes
sunburst_exit
bcs sunburst_exit2
sunburst_yes
lda #$03
ldx #$40
ldy #$01
jsr modify ; then set T00,S03,$40 =
!byte $F0
lda #$03
ldx #$9C
ldy #$01
jsr modify ; and set T00,S03,$9C =
!byte $D0
lda #$06
ldx #$69
ldy #$06
jsr modify ; and set T00,S06,$69 =
!byte $20,$C3,$BC,$20,$C3,$BC
lda #$08
ldx #$8C
ldy #$02
jsr modify ; and set T00,S08,$8C =
!byte $A0,$B9
sunburst_exit2