;------------------------------- ; #Advent ; patched RWTS ; ; Borrowed Time ; Mindshadow ; Tracer Sanction ; ; module by qkumba ;------------------------------- !zone { bit gMode ; nothing to do here in verify-only mode bpl .jmpexit lda gIsAdvent beq + .jmpexit jmp .exit + ;carry controls how many times to run on one track ;Mindshadow and Tracer Sanction have two copies ;of the protection on track 0, loaded to two ;different addresses at different stages of play lda gTrack cmp #1 .again php ldy #29 jsr SearchTrack !byte $F0,$10 ;BEQ $+12 !byte $29,$0F ;AND #$0F !byte $A8 ;TAY !byte $B9,WILDCARD,WILDCARD ;LDA $xxxx,Y !byte $8D,WILDCARD,WILDCARD ;STA $xxxx !byte $B9,WILDCARD,WILDCARD ;LDA $xxxx,Y !byte $8D,WILDCARD,WILDCARD ;STA $xxxx !byte $60 ;RTS !byte $A9,$AA ;LDA #$AA !byte $8D,WILDCARD,WILDCARD ;STA $xxxx !byte $A9,$96 ;LDA #$96 !byte $8D,WILDCARD,WILDCARD ;STA $xxxx !byte $60 ;RTS bcs .pop ldy #1 jsr modify !byte $10 ;BEQ -> BPL ldy #23 jsr SearchTrack !byte $A4,WILDCARD ;LDY $xx !byte $BD,$8C,$C0 ;LDA $C08C,X !byte $10,$FB ;BPL $-3 !byte $D9,WILDCARD,WILDCARD ;CMP $xxxx,Y !byte $D0,$AB ;BNE $-53 !byte $EA ;NOP !byte $BD,$8C,$C0 ;LDA $C08C,X !byte $10,$FB ;BPL $-3 !byte $D9,WILDCARD,WILDCARD ;CMP $xxxx,Y !byte $D0,$A0 ;BNE $-5E bcs .pop pha txa adc #7 tax pla adc #0 pha txa adc #11 sta .patch+1 pla tay adc #0 pha tya ldy #3 jsr modify !byte $C9,$DE ;CMP #$DE !byte $EA ;NOP pla .patch ldx #0 ldy #3 jsr modify !byte $C9,$AA ;CMP #$AA !byte $EA ;NOP plp bcs .exit sec bcs .again .pop plp .exit }