diff --git a/res/GAMES.CONF b/res/GAMES.CONF index 5cc8f9c1b..aca0be705 100755 --- a/res/GAMES.CONF +++ b/res/GAMES.CONF @@ -265,21 +265,21 @@ 1001,MR=Mr. Robot 0001,MP=Ms. Pacman 0000,N.O.R.A.D=N O R A D -0000,NEON=Neon +0004,NEON=Neon 0001,NEPTUNE=Neptune 0007,NT=Neu][ower 1000,NEUTRONS=Neutrons -0000,NIBBLER=Nibbler +0004,NIBBLER=Nibbler 0007,NM=Night Mission Pinball -0000,NIGHT.STALKER=Night Stalker -0000,NI=Nightmare Gallery -0000,OM=O'Riley's Mine +0001,NIGHT.STALKER=Night Stalker +0001,NI=Nightmare Gallery +0001,OM=O'Riley's Mine 0001,OID.ZONE=Oid Zone 1001,OI=Oil's Well -1000,ON.THE.RUN=On The Run +1001,ON.THE.RUN=On The Run 0007,ORBITRON=Orbitron 0000,OW=Out of This World -0000,OUTPOST=Outpost +0001,OUTPOST=Outpost 0000,OUTWORLD=Outworld 0001,PACMAN=Pacman 0001,PB=Pandora's Box diff --git a/src/constants.a b/src/constants.a index 83f735bac..adbd51f7f 100644 --- a/src/constants.a +++ b/src/constants.a @@ -11,7 +11,7 @@ ; ...unused... ; E000..E3FF - HGR font data ; ...unused... -; E77E..FFEB - main program code +; E76A..FFEB - main program code ; FFEC..FFF9 - API functions and global constants available for main program ; code, prelaunchers, transition effects, &c. ; (LoadFileDirect, Wait/UnwaitForVBL, MockingboardStuff, MachineStatus) diff --git a/src/prelaunch/neon.a b/src/prelaunch/neon.a index d51e2a549..79267f581 100644 --- a/src/prelaunch/neon.a +++ b/src/prelaunch/neon.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/NEON",plain @@ -17,9 +17,35 @@ lda #1 sta $14A0 ; reset vector fix - +DISABLE_ACCEL + +READ_RAM2_NO_WRITE + lda MachineStatus + and #CHEATS_ENABLED + beq + + lda #callback + sta $1668 + lda #$A5 + sta $1865 ; patch - don't increase lives + sta $1873 ; patch - don't decrease lives ++ + jsr DisableAccelerator + +READ_ROM_NO_WRITE jmp $149A +callback + jsr $BD00 + lda $7B + bne + + dec $9EC4 ; patch - don't decrease time + dec $9ECC ; patch - don't decrease time + beq ++ ++ cmp #3 + bne ++ + dec $9338 ; patch - don't decrease time + dec $9380 ; patch - don't decrease time +++ rts + !if * > $1C0 { !error "code is too large, ends at ", * } diff --git a/src/prelaunch/nibbler.a b/src/prelaunch/nibbler.a new file mode 100644 index 000000000..611cf8a39 --- /dev/null +++ b/src/prelaunch/nibbler.a @@ -0,0 +1,30 @@ +;license:MIT +;(c) 2022 by qkumba + +!cpu 6502 +!to "build/PRELAUNCH.INDEXED/NIBBLER",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + lda #$60 + sta $8A19 + jsr $6550 ; decompress + +READ_RAM2_NO_WRITE + lda MachineStatus + and #CHEATS_ENABLED + beq + + lda #$EA + sta $11A0 ; patch - don't decrease lives + lda #$A5 + sta $12D3 ; patch - don't decrease time ++ + jsr DisableAccelerator + +READ_ROM_NO_WRITE + + jmp $900 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} diff --git a/src/prelaunch/night.stalker.a b/src/prelaunch/night.stalker.a index e0faab2bb..166bec8c2 100755 --- a/src/prelaunch/night.stalker.a +++ b/src/prelaunch/night.stalker.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2019 by Frank M. +;(c) 2019, 2022 by Frank M., qkumba !cpu 6502 !to "build/PRELAUNCH.INDEXED/NIGHT.STALKER",plain @@ -18,8 +18,18 @@ lda #$FA sta $6496 ; reset vector patch (reboot) + lda #$60 + sta $2A5 +DISABLE_ACCEL - jmp $283 + jsr $283 + +GET_MACHINE_STATUS + and #CHEATS_ENABLED + beq + + lda #0 + sta $1DEC ; patch - don't increase lives + sta $13D0 ; patch - don't decrease lives ++ + jmp $6000 !if * > $1C0 { diff --git a/src/prelaunch/nightmare.a b/src/prelaunch/nightmare.a index 9b58803b2..f0861f6fe 100644 --- a/src/prelaunch/nightmare.a +++ b/src/prelaunch/nightmare.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/NI",plain @@ -27,7 +27,16 @@ sta $8CC5 sta $8CE2 - +DISABLE_ACCEL + +READ_RAM2_NO_WRITE + lda MachineStatus + and #CHEATS_ENABLED + beq + + lda #$AD + sta $8718 ; patch - don't decrease lives + sta $8980 ; patch - don't increase lives ++ + jsr DisableAccelerator + +READ_ROM_NO_WRITE jmp $1206 callback sec ; non-ROM WAIT diff --git a/src/prelaunch/on.the.run.a b/src/prelaunch/on.the.run.a index 4423feac2..8da0d51db 100644 --- a/src/prelaunch/on.the.run.a +++ b/src/prelaunch/on.the.run.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/ON.THE.RUN",plain @@ -17,6 +17,13 @@ hook +RESET_VECTOR $100 + +GET_MACHINE_STATUS + and #CHEATS_ENABLED + beq + + lda #$A5 + sta $DC1 ; patch - don't decrease lives + sta $1FD4 ; patch - don't increase lives ++ jmp $800 !if * > $1C0 { diff --git a/src/prelaunch/orileys.mine.a b/src/prelaunch/orileys.mine.a index f2de794be..6e2b893c9 100755 --- a/src/prelaunch/orileys.mine.a +++ b/src/prelaunch/orileys.mine.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2019 by Frank M. +;(c) 2019, 2022 by Frank M., qkumba !cpu 6502 !to "build/PRELAUNCH.INDEXED/OM",plain @@ -22,7 +22,15 @@ sta $201B ; reset vector patch sta $8133 ; (yes, that's 3 times) - +DISABLE_ACCEL + +READ_RAM2_NO_WRITE + lda MachineStatus + and #CHEATS_ENABLED + beq + + lda #$AD + sta $831C ; patch - don't decrease lives ++ + jsr DisableAccelerator + +READ_ROM_NO_WRITE jmp $8FD !if * > $1C0 { diff --git a/src/prelaunch/outpost.a b/src/prelaunch/outpost.a index 845dd71e8..465b8caf3 100755 --- a/src/prelaunch/outpost.a +++ b/src/prelaunch/outpost.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2019 by Frank M. +;(c) 2019, 2022 by Frank M., qkumba !cpu 6502 !to "build/PRELAUNCH.INDEXED/OUTPOST",plain @@ -13,7 +13,16 @@ jsr $3EC8 ; decompress/title/set reset vector +RESET_VECTOR $100 - jmp $200 + lda #$60 + sta $211 + jsr $200 + +GET_MACHINE_STATUS + and #CHEATS_ENABLED + beq + + lda #$B5 + sta $8086 ; patch - don't decrease lives ++ + jmp $8000 !if * > $1C0 { !error "code is too large, ends at ", *