diff --git a/res/GAMES.CONF b/res/GAMES.CONF index 1fff44a66..eac643cd6 100755 --- a/res/GAMES.CONF +++ b/res/GAMES.CONF @@ -45,7 +45,7 @@ 0001,CANYON.CLIMBER 0000,CAPTN.GOODNIGHT=Captain Goodnight 0000,SMURFEN=Castle Smurfenstein -0000,WOLFEN84=Castle Wolfenstein +0002,WOLFEN84=Castle Wolfenstein 1001,CAVRNS.CALLISTO=Caverns of Callisto 1001,CEILING.ZERO 0001,CENTIPEDE diff --git a/src/prelaunch/wolfen84.a b/src/prelaunch/wolfen84.a index 818a1d929..93a219683 100755 --- a/src/prelaunch/wolfen84.a +++ b/src/prelaunch/wolfen84.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2019 by qkumba/Frank M. +;(c) 2019-20 by qkumba/Frank M./Tom Greene !cpu 6502 !to "build/PRELAUNCH/WOLFEN84",plain @@ -18,23 +18,47 @@ sta $B749 jmp $B700 -reset - +READ_ROM_NO_WRITE - jmp $FAA6 - callback - +READ_RAM2_WRITE_RAM2 - lda #reset + lda #$01 sta $9E53 - sta $FFFD ; reset vector patch - +READ_ROM_NO_WRITE + + 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 #$01 ; Patch it to return to TR + stx $0DFF ; instead of exiting to BASIC + + inc $0D87 ; prevent language card detection + ++ cmp #$D7 ; = W, filename = @WOLF + bne ++ + + +GET_MACHINE_STATUS + and #CHEATS_ENABLED + beq ++ + ldx #$03 + stx $4048 ; start with 3 grenades + ldx #$2C + stx $1435 ; don't decrement bullets + stx $18FE ; or grenades + +++ jmp ($AA72) ; finally jump to the loaded file + !if * > $1C0 { !error "code is too large, ends at ", * }