From aa38934646e94bbef7593b9474f3f57e2d1b34a5 Mon Sep 17 00:00:00 2001 From: Peter Ferrie Date: Wed, 11 May 2022 20:48:46 -0700 Subject: [PATCH] add some cheats --- res/GAMES.CONF | 10 ++++----- src/prelaunch/horizon.v.a | 29 +++++++++++++++++++++++++ src/prelaunch/hyper.head.on.a | 22 +++++++++++++++++-- src/prelaunch/ikari.warriors.a | 39 ++++++++++++++++++++++++++++++++-- src/prelaunch/indiana.jones.a | 20 +++++++++++++++-- src/prelaunch/its.the.pits.a | 16 ++++++++++++-- 6 files changed, 123 insertions(+), 13 deletions(-) create mode 100644 src/prelaunch/horizon.v.a diff --git a/res/GAMES.CONF b/res/GAMES.CONF index 6807a2c19..e1865d6b0 100755 --- a/res/GAMES.CONF +++ b/res/GAMES.CONF @@ -196,18 +196,18 @@ 0001,HEAD.ON=Head On 1111,HEAVY.BARREL=Heavy Barrel 0000,HIGH.RISE=High Rise -0000,HORIZON.V=Horizon V +0001,HORIZON.V=Horizon V 0001,HUNGRYBOY=Hungryboy -0000,HYPER.HEAD.ON=Hyper Head On +0001,HYPER.HEAD.ON=Hyper Head On 0000,IO=I.O. Silver -0100,IKARI.WARRIORS=Ikari Warriors +0101,IKARI.WARRIORS=Ikari Warriors 1000,I1=Impossible Mission 0116,I2=Impossible Mission II -0110,INDIANA.JONES=Indiana Jones +0111,INDIANA.JONES=Indiana Jones 1000,INFILTRATOR=Infiltrator 1000,INFILTRATOR.2=Infiltrator 2 0111,IE=Into the Eagle's Nest -0000,IP=It's the Pits +0001,IP=It's the Pits 0001,JAWBREAKER=Jawbreaker 0001,JAWBREAKER.II=Jawbreaker II 0000,J.BIRD=J-Bird diff --git a/src/prelaunch/horizon.v.a b/src/prelaunch/horizon.v.a new file mode 100644 index 000000000..ca1d1943b --- /dev/null +++ b/src/prelaunch/horizon.v.a @@ -0,0 +1,29 @@ +;license:MIT +;(c) 2022 by qkumba + +!cpu 6502 +!to "build/PRELAUNCH.INDEXED/HORIZON.V",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + lda #$60 + sta $4483 + jsr $4400 ; decompress + +READ_RAM2_NO_WRITE + lda MachineStatus + and #CHEATS_ENABLED + beq + + lda #$a5 + sta $72CC ; patch - don't increase lives + sta $BB0A ; patch - don't decrease lives ++ + jsr DisableAccelerator + +READ_ROM_NO_WRITE + + jmp ($20) + +!if * > $1C0 { + !error "code is too large, ends at ", * +} diff --git a/src/prelaunch/hyper.head.on.a b/src/prelaunch/hyper.head.on.a index f7b5fb448..e8231e894 100644 --- a/src/prelaunch/hyper.head.on.a +++ b/src/prelaunch/hyper.head.on.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2019 by qkumba +;(c) 2019, 2022 by qkumba !cpu 6502 !to "build/PRELAUNCH.INDEXED/HYPER.HEAD.ON",plain @@ -8,7 +8,25 @@ !source "src/prelaunch/common.a" +USES_TEXT_PAGE_2 - jmp $6d00 + +ENABLE_ACCEL + lda #$60 + sta $6D32 + jsr $6D00 ; decompress + lda #$60 + sta $F2F + jsr $F01 ; decompress + +READ_RAM2_NO_WRITE + lda MachineStatus + and #CHEATS_ENABLED + beq + + lda #$a5 + sta $4B0 ; patch - don't decrease lives + sta $5FD ; patch - don't decrease lives ++ + jsr DisableAccelerator + +READ_ROM_NO_WRITE + ldx #$10 + jmp $7fd !if * > $1C0 { !error "code is too large, ends at ", * diff --git a/src/prelaunch/ikari.warriors.a b/src/prelaunch/ikari.warriors.a index b5a2b332b..ace2f9e11 100644 --- a/src/prelaunch/ikari.warriors.a +++ b/src/prelaunch/ikari.warriors.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2020 by Frank M. +;(c) 2020, 2022 by Frank M., qkumba !cpu 6502 !to "build/PRELAUNCH.INDEXED/IKARI.WARRIORS",plain @@ -7,8 +7,43 @@ !source "src/prelaunch/common.a" + +ENABLE_ACCEL + + lda #$60 + sta $11A7 + jsr $1000 ; load "DOS" + dex + jsr $D300 ; decompress + lda #$60 + sta $840 + jsr $803 ; decompress + dex + jsr $D300 ; decompress inc $3F4 ; force reboot - jmp $1000 + lda #$20 + sta $E093 + sta $E0D8 + lda #EnableAccelerator + sta $E095 + lda #callback + sta $E0DA + jsr DisableAccelerator + jmp $E000 + +callback + jsr DisableAccelerator + +READ_RAM1_WRITE_RAM1 + lda MachineStatus + and #CHEATS_ENABLED + beq + + dec $D06B ; patch - don't decrease lives + dec $D07A ; patch - don't increase lives ++ + rts !if * > $1C0 { !error "code is too large, ends at ", * diff --git a/src/prelaunch/indiana.jones.a b/src/prelaunch/indiana.jones.a index 4600504f7..94527d2c1 100644 --- a/src/prelaunch/indiana.jones.a +++ b/src/prelaunch/indiana.jones.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2020 by Frank M. +;(c) 2020, 2022 by Frank M., qkumba !cpu 6502 !to "build/PRELAUNCH.INDEXED/INDIANA.JONES",plain @@ -7,8 +7,24 @@ !source "src/prelaunch/common.a" + lda #$60 + sta $20A2 + jsr $2000 + lda #callback + sta $ACB inc $3F4 ; force reboot - jmp $2000 + jmp $800 + +callback + +GET_MACHINE_STATUS + and #CHEATS_ENABLED + beq + + lda #$ad + sta $640C ; patch - don't decrease lives ++ + jmp $F47 !if * > $1C0 { !error "code is too large, ends at ", * diff --git a/src/prelaunch/its.the.pits.a b/src/prelaunch/its.the.pits.a index 605fc79a6..1f65e8925 100644 --- a/src/prelaunch/its.the.pits.a +++ b/src/prelaunch/its.the.pits.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2021 by Frank M. +;(c) 2021-2022 by Frank M., qkumba !cpu 6502 !to "build/PRELAUNCH.INDEXED/IP",plain @@ -20,7 +20,19 @@ sta $1838 sta $183D ; reset vector fix - +DISABLE_ACCEL + +READ_RAM2_NO_WRITE + lda MachineStatus + and #CHEATS_ENABLED + beq + + lda #$a5 + sta $1CD1 ; patch - don't decrease lives + sta $2409 ; patch - don't increase lives + sta $2442 ; patch - don't increase lives + sta $2472 ; patch - don't increase lives + sta $249E ; patch - don't increase lives ++ + jsr DisableAccelerator + +READ_ROM_NO_WRITE jmp $1800 !if * > $1C0 {