From a78e1d16b501b52619245806986dee0a9e4da51e Mon Sep 17 00:00:00 2001 From: frankmilliron <34376619+frankmilliron@users.noreply.github.com> Date: Mon, 27 Apr 2020 07:22:02 -0700 Subject: [PATCH 1/2] Reset/Reboot Fixes (#168) --- src/prelaunch/g.i.joe.a | 3 ++- src/prelaunch/maxwell.manor.a | 3 ++- src/prelaunch/minit.man.a | 7 ++++++- src/prelaunch/spindizzy.a | 13 ++++++++++++- src/prelaunch/thunderhead.a | 3 ++- 5 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/prelaunch/g.i.joe.a b/src/prelaunch/g.i.joe.a index 22088a3b3..db29e4217 100644 --- a/src/prelaunch/g.i.joe.a +++ b/src/prelaunch/g.i.joe.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2020 by qkumba +;(c) 2020 by qkumba/Frank M. !cpu 6502 !to "build/PRELAUNCH/G.I.JOE",plain @@ -25,6 +25,7 @@ sta $D5A3 + bit $C083 + +LC_REBOOT jsr DisableAccelerator bit $C08B jmp $D400 diff --git a/src/prelaunch/maxwell.manor.a b/src/prelaunch/maxwell.manor.a index ca239bc66..18e89fdf4 100644 --- a/src/prelaunch/maxwell.manor.a +++ b/src/prelaunch/maxwell.manor.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2020 by qkumba +;(c) 2020 by qkumba/Frank M. !cpu 6502 !to "build/PRELAUNCH/MAXWELL.MANOR",plain @@ -15,6 +15,7 @@ jmp $800 ; decompress callback + +LC_REBOOT jsr DisableAccelerator jmp $204B diff --git a/src/prelaunch/minit.man.a b/src/prelaunch/minit.man.a index e72fedd4a..be96c2369 100644 --- a/src/prelaunch/minit.man.a +++ b/src/prelaunch/minit.man.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2020 by qkumba +;(c) 2020 by qkumba/Frank M. !cpu 6502 !to "build/PRELAUNCH/MINIT.MAN",plain @@ -18,6 +18,11 @@ lda #$a5 sta $B13D ; patch - don't decrease lives + + ldx #0 + stx $9E31 + inx + stx $9E3C ; reset vector patch + +DISABLE_ACCEL jmp $B700 diff --git a/src/prelaunch/spindizzy.a b/src/prelaunch/spindizzy.a index ecf432499..20aa19291 100644 --- a/src/prelaunch/spindizzy.a +++ b/src/prelaunch/spindizzy.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2020 by qkumba +;(c) 2020 by qkumba/Frank M. !cpu 6502 !to "build/PRELAUNCH/SPINDIZZY",plain @@ -8,9 +8,20 @@ !source "src/prelaunch/common.a" +ENABLE_ACCEL + + +READ_RAM1_WRITE_RAM1 + +LC_REBOOT + +READ_ROM_NO_WRITE + lda #$60 sta $855 jsr $800 ; decompress + + ldx #0 + stx $9344 + inx + stx $934F ; fix reboot + +DISABLE_ACCEL jmp $9300 diff --git a/src/prelaunch/thunderhead.a b/src/prelaunch/thunderhead.a index f3d5f4cbf..4e1ad96de 100644 --- a/src/prelaunch/thunderhead.a +++ b/src/prelaunch/thunderhead.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2020 by qkumba +;(c) 2020 by qkumba/Frank M. !cpu 6502 !to "build/PRELAUNCH/THUNDERHEAD",plain @@ -15,6 +15,7 @@ jmp $800 ; decompress callback + +LC_REBOOT jsr DisableAccelerator jmp $204B From f3abc8731e8cb6ae1091e655abc8572bda693f4f Mon Sep 17 00:00:00 2001 From: Tom Greene Date: Mon, 27 Apr 2020 10:22:14 -0400 Subject: [PATCH 2/2] Quit to TR and add cheat for Castle Smurfenstein (#169) --- res/GAMES.CONF | 2 +- src/prelaunch/smurfen.a | 39 ++++++++++++++++++++++++++++++++++----- 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/res/GAMES.CONF b/res/GAMES.CONF index 8d6555f3d..a1a60c249 100755 --- a/res/GAMES.CONF +++ b/res/GAMES.CONF @@ -44,7 +44,7 @@ 0001,CANNONBALL.BLTZ=Cannonball Blitz 0001,CANYON.CLIMBER 0000,CAPTN.GOODNIGHT=Captain Goodnight -0000,SMURFEN=Castle Smurfenstein +0002,SMURFEN=Castle Smurfenstein 0002,WOLFEN84=Castle Wolfenstein 1001,CAVRNS.CALLISTO=Caverns of Callisto 1001,CEILING.ZERO diff --git a/src/prelaunch/smurfen.a b/src/prelaunch/smurfen.a index 359c530dc..82f2d0c7c 100644 --- a/src/prelaunch/smurfen.a +++ b/src/prelaunch/smurfen.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2020 by qkumba/Frank M. +;(c) 2020 by qkumba/Frank M./Tom Greene !cpu 6502 !to "build/PRELAUNCH/SMURFEN",plain @@ -19,18 +19,47 @@ jmp $B700 callback - +READ_RAM2_WRITE_RAM2 lda #0 sta $9E52 - sta $FFFC lda #1 sta $9E53 - sta $FFFD ; reset vector patch - +READ_ROM_NO_WRITE + + lda #$00 ; intercept BRUN command before + sta $A395 ; it jumps to the loaded file + lda #$03 + sta $A396 + + ldx #patchend-patch +- lda patch,x ; The game code has a stack leak and will + sta $0300,x ; clobber all of page 1 after repeated plays + dex ; so move the patch code to page 3 + bpl - +DISABLE_ACCEL jmp $9B00 +patch + !word $0302 + + lda $AA76 ; check second character of filename + cmp #$D7 ; = W, filename = @WOLF + bne + + + ldx #$01 ; Patch it to return to TR + stx $1EFA ; instead of exiting to BASIC + + +GET_MACHINE_STATUS + and #CHEATS_ENABLED + beq + + ldx #$03 + stx $4048 ; start with 3 grenades + ldx #$2C + stx $14AD ; don't decrement bullets + stx $1999 ; or grenades + ++ jmp ($AA72) ; finally jump to the loaded file +patchend + !if * > $1C0 { !error "code is too large, ends at ", * }