From 108ccbb2d26938ed8b19cb9e4a901f9fce8b0067 Mon Sep 17 00:00:00 2001 From: 4am Date: Fri, 8 Feb 2019 12:02:47 -0500 Subject: [PATCH] add patcher for Springboard RWTS [fixes The Newsroom, The Chalice of Mostania] --- src/mods/t00only.a | 1 + src/patchers/springboard.a | 35 +++++++++++++++++++++++++++++++++++ src/strings/en.a | 6 +++++- src/strings/enid.a | 3 ++- 4 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 src/patchers/springboard.a diff --git a/src/mods/t00only.a b/src/mods/t00only.a index 8fb5186..559ba13 100644 --- a/src/mods/t00only.a +++ b/src/mods/t00only.a @@ -114,6 +114,7 @@ AnalyzeT00 !source "../patchers/dakin5.a" !source "../patchers/muserwts.a" !source "../patchers/artsci.a" + !source "../patchers/springboard.a" ;add only above this line rts diff --git a/src/patchers/springboard.a b/src/patchers/springboard.a new file mode 100644 index 0000000..0dfee3c --- /dev/null +++ b/src/patchers/springboard.a @@ -0,0 +1,35 @@ +;------------------------------- +; #SPRINGBOARD +; RWTS checks for timing bit by +; comparing the data latch after +; the last address epilogue +; +; tested on +; - The Newsroom (Springboard) +; - Easy as ABC (Springboard) +; - Early Games for Young Children (Springboard) +; - The Chalice of Mostania (Coastal) +;------------------------------- +!zone { + bit gMode ; nothing to do here in verify-only mode + bpl .exit + lda gIsRWTS ; if DOS 3.3 RWTS + bne .exit + lda #$03 + sta gDisplayBytes + ldx #$92 + ldy #$07 + jsr compare ; and T00,S03,$92 == + !byte $D0,$AE ; BNE $B942 + CMP $C08C,X + !byte $D0,$A9 ; BNE $B942 + bcs .exit + lda #s_springboard + jsr PrintByID + lda #$03 + ldx #$98 + ldy #$01 + jsr modify ; then set T00,S03,$98 = + !byte $00 ; branch to next instruction on failure +.exit +} diff --git a/src/strings/en.a b/src/strings/en.a index 80bb195..d4eff10 100755 --- a/src/strings/en.a +++ b/src/strings/en.a @@ -127,6 +127,7 @@ StringTable !word .toverify !word .sector13 !word .dakin5 + !word .springboard ; ; Text can contain substitution strings, which ; are replaced by current values at runtime. Each @@ -152,7 +153,7 @@ StringTable ; can be set directly before calling PrintByID. ; .header - !text "Passport by 4am 2019-02-07",$00 + !text "Passport by 4am 2019-02-08",$00 .mainmenu !text "________________________________________",$8D,$8D,$8D,$8D,$8D,$8D,$8D !text " " @@ -468,4 +469,7 @@ StringTable !text "Switching to verify-only mode",$8D,$00 .sector13 !text "T00,S00 Found 13-sector format",$8D,$00 +.springboard + !text "T%t,S%0 RWTS requires a timing bit after" + !text "the address epilogue",$8D,$00 } diff --git a/src/strings/enid.a b/src/strings/enid.a index 6cb13e7..65062d7 100644 --- a/src/strings/enid.a +++ b/src/strings/enid.a @@ -113,4 +113,5 @@ s_infocom18 = $6B s_toverify = $6C s_13sector = $6D s_dakin5 = $6E -STRINGCOUNT = $6F +s_springboard =$6F +STRINGCOUNT = $70