From 7353770b67474a106a0a924fd1495ccf4a288e88 Mon Sep 17 00:00:00 2001 From: Tom Greene Date: Sun, 12 Apr 2020 22:44:59 -0400 Subject: [PATCH] quit to TR and add cheat for Beyond Wolfenstein (#160) --- res/GAMES.CONF | 2 +- src/prelaunch/beyond.wolfen.a | 43 ++++++++++++++++++++++++++++++----- 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/res/GAMES.CONF b/res/GAMES.CONF index 9925eb70f..bb3d54f3d 100755 --- a/res/GAMES.CONF +++ b/res/GAMES.CONF @@ -26,7 +26,7 @@ 0100,BEJEWELED 0000,BELLHOP 0001,BERZAP -0000,BEYOND.WOLFEN=Beyond Castle Wolfenstein +0002,BEYOND.WOLFEN=Beyond Castle Wolfenstein 0000,BUDGETRILOGY=Bill Budge's Trilogy 1000,BLACK.MAGIC 0000,BLISTER.BALL diff --git a/src/prelaunch/beyond.wolfen.a b/src/prelaunch/beyond.wolfen.a index 7d0dd43ba..71cd545ef 100644 --- a/src/prelaunch/beyond.wolfen.a +++ b/src/prelaunch/beyond.wolfen.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2019 by qkumba +;(c) 2019-2020 by qkumba/Tom Greene !cpu 6502 !to "build/PRELAUNCH/BEYOND.WOLFEN",plain @@ -18,19 +18,50 @@ sta $B749 jmp $B700 -reset - +READ_ROM_NO_WRITE - jmp $FAA6 callback - lda #>reset + lda #$01 sta $9E31 - lda #patch + sta $A396 + +DISABLE_ACCEL jmp $9D84 +patch + !word brunpatch + +brunpatch + lda $AA76 ; check second character of filename + cmp #$C9 ; = I, filename = @INIT + bne + + + ldx #$00 ; Patch it to return to TR + stx $0DB4 ; instead of exiting to BASIC + inx + stx $0DB5 + + inc $0C85 ; prevent language card detection + ++ cmp #$C6 ; = F, filename = @FHR + bne ++ + + +GET_MACHINE_STATUS + and #CHEATS_ENABLED + beq ++ + ldx #$2C + stx $15AE ; don't decrement bullets + +++ jmp ($AA72) ; finally jump to the loaded file + + + + !if * > $1C0 { !error "code is too large, ends at ", * }