From 23179f2a6575aec026599c07fd3cce19e5765831 Mon Sep 17 00:00:00 2001 From: 4am Date: Mon, 30 Jan 2017 12:43:14 -0500 Subject: [PATCH] add patcher for Super Huey, Squire, Baron, Millionaire --- src/passport.a | 1 + src/patchers/corrupter.a | 40 ++++++++++++++++++++++++++++++++++++++++ src/strings/en.a | 9 +++++++-- 3 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 src/patchers/corrupter.a diff --git a/src/passport.a b/src/passport.a index ad10086..cd5d04f 100755 --- a/src/passport.a +++ b/src/passport.a @@ -710,6 +710,7 @@ _applyToAll !source "patchers/protecteddos.a" !source "patchers/fbff.a" !source "patchers/sierra.a" + !source "patchers/corrupter.a" lda gPatchCount beq .nopatches diff --git a/src/patchers/corrupter.a b/src/patchers/corrupter.a new file mode 100644 index 0000000..6b21fea --- /dev/null +++ b/src/patchers/corrupter.a @@ -0,0 +1,40 @@ +;------------------------------- +; #CORRUPTER +; intentionally destroys T00,S00 +; if protection check fails +;------------------------------- +!zone { +corrupter + lda #$0F + sta .sector+1 +.sector lda #$FF ; modified at runtime + ldx #$2C + ldy #$07 + jsr compare + !byte $20,$E3,$03,$84,$00,$85,$01 + bcs .nextsector + ldx #$D4 + ldy #$0F + jsr compare + !byte $A9,$00,$8D,$00,$A0,$EE,$D3,$40 + !byte $AD,$D3,$40,$C9,$FF,$D0,$F1 + bcs .nextsector + ldx #$A4 + ldy #$0F + jsr compare + !byte $A9,$23,$85,$02,$A9,$00,$85,$03 + !byte $A9,$01,$85,$04,$20,$28,$40 + bcs .nextsector + sta gDisplayBytes + pha + lda #s_corrupter + jsr PrintByID + pla + ldy #$01 + jsr modify + !byte $60 +.nextsector + dec .sector+1 + bpl .sector +.exit +} diff --git a/src/strings/en.a b/src/strings/en.a index 9787b78..cbc570b 100755 --- a/src/strings/en.a +++ b/src/strings/en.a @@ -84,7 +84,8 @@ s_specdel = $41 s_bytrack = $42 s_a5count = $43 s_restart = $44 -STRINGCOUNT = $45 +s_corrupter = $45 +STRINGCOUNT = $46 !zone { StringTable @@ -157,6 +158,7 @@ StringTable !word .bytrack !word .a5count !word .restart + !word .corrupter ; ; Text can contain substitution strings, which ; are replaced by current values at runtime. Each @@ -182,7 +184,7 @@ StringTable ; can be set directly before calling PrintByID. ; .header - !text "Passport by 4am 2017-01-27",00 + !text "Passport by 4am 2017-01-30",00 .mainmenu !text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D !text " " @@ -405,4 +407,7 @@ StringTable !text "T%t,S%0 Found A5 nibble count",$8D,$00 .restart !text "Restarting scan",$8D,$00 +.corrupter + !text "T%t,S%0 Protection check intentionally",$8D + !text "destroys unauthorized copies",$8D,$00 }