passport/src/patchers/e7everywhere.a
2021-06-21 11:57:02 -04:00

40 lines
1.5 KiB
Plaintext

;------------------------------------------------------------------------------
; #E7EVERYWHERE
; E7 bitstream in the track seam of every track
;
; We can't attack the bitstream itself (like #UNIVERSALE7) because it's not
; within any sector data, so we search for the code instead. AFAIK the code
; is never encrypted.
; This does a full-track search on every track, which is unfortunate. I've
; only seen this protection on DOS and ProDOS disks, so we filter on that
; to optimize performance a little bit.
;
; tested on
; - Curious George Goes Shopping (DLM)
; - Curious George Visits The Library (DLM)
; - Curious George Goes To Outer Space (DLM)
; - Spelling Mastery (DLM)
; - Garfield Trivia Game (DLM)
; - The Quarter Mile (Barnum)
; - Reading and Writing with The Boars (McGraw-Hill)
;------------------------------------------------------------------------------
E7Everywhere
lda gIsBoot0
and gIsProDOS
bne +
ldy #$11
jsr SearchTrack
!byte $A9,$05 ; LDA #$05
!byte $8D,WILDCARD,WILDCARD
!byte $AE,WILDCARD,WILDCARD
!byte $BD,$8E,$C0; LDA $C08E,X
!byte $BD,$89,$C0; LDA $C089,X
!byte $A9,$00 ; LDA #$00
!byte $8D
bcs + ; passport-test-suite/Garfield Trivia Game.woz [C=0] matches
jsr PrintByID ; passport-test-suite/Curious George Goes Shopping.woz [C=0] matches
!byte s_e7everywhere
jsr modify2
!byte $18,$60 ; CLC/RTS
+