From bf5ab4b94fb8ab49395aa07c90dccfb6c9efe699 Mon Sep 17 00:00:00 2001 From: Frank M Date: Thu, 19 Dec 2019 18:19:28 -0800 Subject: [PATCH] More and more reset vector fixes --- src/prelaunch/captn.goodnight.a | 16 ++++++++ src/prelaunch/crisis.mountain.a | 8 ++++ src/prelaunch/crossfire.a | 2 + src/prelaunch/drelbs.a | 2 + src/prelaunch/intl.gran.prix.a | 23 +++++++++++ src/prelaunch/joust.a | 6 +++ src/prelaunch/juggler.a | 23 +++++++++++ src/prelaunch/mr.do.a | 67 +++++++++++++++++---------------- src/prelaunch/night.stalker.a | 27 +++++++++++++ src/prelaunch/orileys.mine.a | 24 ++++++++++++ src/prelaunch/pac.man.a | 11 +++++- 11 files changed, 175 insertions(+), 34 deletions(-) create mode 100755 src/prelaunch/captn.goodnight.a mode change 100644 => 100755 src/prelaunch/crisis.mountain.a mode change 100644 => 100755 src/prelaunch/crossfire.a mode change 100644 => 100755 src/prelaunch/drelbs.a create mode 100755 src/prelaunch/intl.gran.prix.a mode change 100644 => 100755 src/prelaunch/joust.a create mode 100755 src/prelaunch/juggler.a mode change 100644 => 100755 src/prelaunch/mr.do.a create mode 100755 src/prelaunch/night.stalker.a create mode 100755 src/prelaunch/orileys.mine.a mode change 100644 => 100755 src/prelaunch/pac.man.a diff --git a/src/prelaunch/captn.goodnight.a b/src/prelaunch/captn.goodnight.a new file mode 100755 index 000000000..f408ceb5d --- /dev/null +++ b/src/prelaunch/captn.goodnight.a @@ -0,0 +1,16 @@ +;license:MIT +;(c) 2019 by qkumba + +!cpu 6502 +!to "build/PRELAUNCH/CAPTN.GOODNIGHT",plain +*=$106 + + !source "src/prelaunch/common.a" + + inc $3f4 ; reset vector patch + ; (overwrites LC so reboot) + jmp $800 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} diff --git a/src/prelaunch/crisis.mountain.a b/src/prelaunch/crisis.mountain.a old mode 100644 new mode 100755 index 797d3ac9c..905f99281 --- a/src/prelaunch/crisis.mountain.a +++ b/src/prelaunch/crisis.mountain.a @@ -8,9 +8,17 @@ !source "src/prelaunch/common.a" +ENABLE_ACCEL + lda #$4c + sta $B75B + lda #0 + sta $B75C + lda #1 + sta $B75D ; reset vector patch + lda #$60 sta $207b jsr $2000 ; decompress + +GET_MACHINE_STATUS and #CHEATS_ENABLED beq + diff --git a/src/prelaunch/crossfire.a b/src/prelaunch/crossfire.a old mode 100644 new mode 100755 index 67c0dad15..a0265a69e --- a/src/prelaunch/crossfire.a +++ b/src/prelaunch/crossfire.a @@ -21,6 +21,8 @@ lda #$00 sta $4786 ; patch - don't decrease lives + + lda #1 + sta $4D8F ; reset vector patch +DISABLE_ACCEL jmp $4000 diff --git a/src/prelaunch/drelbs.a b/src/prelaunch/drelbs.a old mode 100644 new mode 100755 index b32f7a815..a2d09428b --- a/src/prelaunch/drelbs.a +++ b/src/prelaunch/drelbs.a @@ -17,6 +17,8 @@ lda #$a5 sta $1cb0 ; patch - don't decrease lives + + inc $3F4 ; reset vector patch + ; trashes LC, so reboot +DISABLE_ACCEL jmp $8000 diff --git a/src/prelaunch/intl.gran.prix.a b/src/prelaunch/intl.gran.prix.a new file mode 100755 index 000000000..8978cbef9 --- /dev/null +++ b/src/prelaunch/intl.gran.prix.a @@ -0,0 +1,23 @@ +;license:MIT +;(c) 2019 by qkumba + +!cpu 6502 +!to "build/PRELAUNCH/INTL.GRAN.PRIX",plain +*=$106 + + !source "src/prelaunch/common.a" + + lda #$60 ; RTS instead of JMP + sta $201A + jsr $2000 ; decompress + + lda #0 + sta $6010 + lda #1 + sta $6015 ; reset vector patch + + jmp $6000 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} diff --git a/src/prelaunch/joust.a b/src/prelaunch/joust.a old mode 100644 new mode 100755 index ec40e2276..1cfd403ff --- a/src/prelaunch/joust.a +++ b/src/prelaunch/joust.a @@ -23,6 +23,12 @@ sta $2bc9 sta $2b6b + + lda #$4C + sta $A3DC + lda #0 + sta $A3DD + lda #1 + sta $A3DE ; reset vector patch +DISABLE_ACCEL jmp $3e00 diff --git a/src/prelaunch/juggler.a b/src/prelaunch/juggler.a new file mode 100755 index 000000000..8888ace98 --- /dev/null +++ b/src/prelaunch/juggler.a @@ -0,0 +1,23 @@ +;license:MIT +;(c) 2019 by qkumba + +!cpu 6502 +!to "build/PRELAUNCH/JUGGLER",plain +*=$106 + + !source "src/prelaunch/common.a" + + + ldy #6 +- lda $100-1,y + sta $180-1,y ; move hook to $180 + dey + bne - + lda #$80 + sta $3F2 ; reset vector patch + + jmp $3FF5 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} diff --git a/src/prelaunch/mr.do.a b/src/prelaunch/mr.do.a old mode 100644 new mode 100755 index b07456962..24cdf2718 --- a/src/prelaunch/mr.do.a +++ b/src/prelaunch/mr.do.a @@ -7,51 +7,52 @@ !source "src/prelaunch/common.a" - +USES_TEXT_PAGE_2 - clc - bcc cheat3 + +USES_TEXT_PAGE_2 + inc $3F4 ; reboot on reset + clc + bcc cheat3 cheat2 - jsr $20d + jsr $20d cheat64 - lda #$a5 - sta $1da7 - sta $9bf - rts + lda #$a5 + sta $1da7 + sta $9bf + rts cheat1 - ldy #cheat2 - sty $20a - bne $19e + ldy #cheat2 + sty $20a + bne $19e cheat3 - lda #$60 - sta $83f - jsr $800 - lda $847 - beq cheat48 - lda #$60 - sta $d15 - jsr $ce8 - lda #cheat4 - sta $d138 - jmp $d100 + lda #$60 + sta $83f + jsr $800 + lda $847 + beq cheat48 + lda #$60 + sta $d15 + jsr $ce8 + lda #cheat4 + sta $d138 + jmp $d100 cheat4 - jsr $d13b - jmp cheat64 + jsr $d13b + jmp cheat64 cheat48 - lda #cheat1 - sta $1041 - jmp $1000 + lda #cheat1 + sta $1041 + jmp $1000 !if * > $1C0 { !error "code is too large, ends at ", * diff --git a/src/prelaunch/night.stalker.a b/src/prelaunch/night.stalker.a new file mode 100755 index 000000000..2ffd7b268 --- /dev/null +++ b/src/prelaunch/night.stalker.a @@ -0,0 +1,27 @@ +;license:MIT +;(c) 2019 by qkumba + +!cpu 6502 +!to "build/PRELAUNCH/NIGHT.STALKER",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + lda #$60 + sta $6017 + jsr $800 ; decompress + jsr $2A8 ; part 2 + + lda #$A6 + sta $6491 + lda #$FA + sta $6496 ; reset vector patch (reboot) + + +DISABLE_ACCEL + jmp $283 + + +!if * > $1C0 { + !error "code is too large, ends at ", * +} diff --git a/src/prelaunch/orileys.mine.a b/src/prelaunch/orileys.mine.a new file mode 100755 index 000000000..b7db9d5fa --- /dev/null +++ b/src/prelaunch/orileys.mine.a @@ -0,0 +1,24 @@ +;license:MIT +;(c) 2019 by qkumba + +!cpu 6502 +!to "build/PRELAUNCH/ORILEYS.MINE",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + lda #$60 + sta $81D + jsr $800 ; decompress + + lda #1 + sta $2006 + sta $201B ; reset vector patch + + +DISABLE_ACCEL + jmp $8FD + +!if * > $1C0 { + !error "code is too large, ends at ", * +} diff --git a/src/prelaunch/pac.man.a b/src/prelaunch/pac.man.a old mode 100644 new mode 100755 index 3468e30b5..ebd70ed9d --- a/src/prelaunch/pac.man.a +++ b/src/prelaunch/pac.man.a @@ -8,7 +8,16 @@ !source "src/prelaunch/common.a" +USES_TEXT_PAGE_2 - jmp $800 + lda #$60 + sta $813 + jsr $800 ; decompress + + lda #0 + sta $103F + lda #1 + sta $104A ; reset vector patch + + jmp $1000 !if * > $1C0 { !error "code is too large, ends at ", *