Quit to TR and add cheat for Castle Wolfenstein (#166)

This commit is contained in:
Tom Greene 2020-04-22 12:05:57 -04:00 committed by GitHub
parent 3cc0f8b85d
commit f4b48ca671
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 36 additions and 12 deletions

View File

@ -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

View File

@ -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 #$00
sta $9E52
sta $FFFC
lda #>reset
lda #$01
sta $9E53
sta $FFFD ; reset vector patch
+READ_ROM_NO_WRITE
lda #<patch ; intercept BRUN command before
sta $A395 ; it jumps to the loaded file
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 ", *
}