diff --git a/res/GAMES.CONF b/res/GAMES.CONF index aca0be705..1a3397548 100755 --- a/res/GAMES.CONF +++ b/res/GAMES.CONF @@ -283,32 +283,32 @@ 0000,OUTWORLD=Outworld 0001,PACMAN=Pacman 0001,PB=Pandora's Box -0100,PAPERBOY=Paperboy -1000,PEEPING.TOM=Peeping Tom -1000,PEGASUS.II=Pegasus II +0101,PAPERBOY=Paperboy +1001,PEEPING.TOM=Peeping Tom +1004,PEGASUS.II=Pegasus II 1001,PENETRATOR=Penetrator -0000,PENGO=Pengo +0001,PENGO=Pengo 1001,PENTAPUS=Pentapus 0001,PEST.PATROL=Pest Patrol -1000,PHANTOMS.FIVE=Phantoms Five +1001,PHANTOMS.FIVE=Phantoms Five 0001,PR=Pharaoh's Revenge -0000,PHASER.FIRE=Phaser Fire +0001,PHASER.FIRE=Phaser Fire 0000,PHOTAR=Photar -0000,PICNIC.PARANOIA=Picnic Paranoia -0000,PM=Pie-Man -0000,PIG.PEN=Pig Pen +0005,PICNIC.PARANOIA=Picnic Paranoia +0001,PM=Pie-Man +0001,PIG.PEN=Pig Pen 0110,PIPE.DREAM=Pipe Dream 1000,PITFALL.II=Pitfall II 0000,PITSTOP.II=Pitstop II 1001,PLANETOIDS=Planetoids -0000,PLASMANIA=Plasmania -1110,PLATOON=Platoon +0001,PLASMANIA=Plasmania +1111,PLATOON=Platoon 1000,POLLYWOG=Pollywog 0001,POOYAN=Pooyan -0110,PP=Prince of Persia +0114,PP=Prince of Persia 0001,PULSAR.II=Pulsar II -1110,QIX=Qix -1000,QUADRANT.6112=Quadrant 6112 +1111,QIX=Qix +1001,QUADRANT.6112=Quadrant 6112 0110,RADWARRIOR=Radwarrior 0000,RM=Raid Over Moscow 1000,RG=Raiders of the Lost Ring diff --git a/src/index/artwork.idx.a b/src/index/artwork.idx.a index 32750b3bb..b959eb1ea 100644 --- a/src/index/artwork.idx.a +++ b/src/index/artwork.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11435149 + !be24 11435661 !le16 4545 diff --git a/src/index/attract.idx.a b/src/index/attract.idx.a index b863cfd74..152dc2125 100644 --- a/src/index/attract.idx.a +++ b/src/index/attract.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11386362 + !be24 11386874 !le16 5294 diff --git a/src/index/cache00.idx.a b/src/index/cache00.idx.a index b1c714b5d..ce47a0443 100644 --- a/src/index/cache00.idx.a +++ b/src/index/cache00.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11326724 + !be24 11327236 !le16 3654 diff --git a/src/index/cache01.idx.a b/src/index/cache01.idx.a index d77ab7a83..9787bd4e5 100644 --- a/src/index/cache01.idx.a +++ b/src/index/cache01.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11339505 + !be24 11340017 !le16 4064 diff --git a/src/index/cache10.idx.a b/src/index/cache10.idx.a index 20265b494..c7fb61e59 100644 --- a/src/index/cache10.idx.a +++ b/src/index/cache10.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11355545 + !be24 11356057 !le16 5245 diff --git a/src/index/cache11.idx.a b/src/index/cache11.idx.a index 85baad48f..722bc832d 100644 --- a/src/index/cache11.idx.a +++ b/src/index/cache11.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11374059 + !be24 11374571 !le16 5870 diff --git a/src/index/coverfade.idx.a b/src/index/coverfade.idx.a index 47cab0d86..e9db01f33 100644 --- a/src/index/coverfade.idx.a +++ b/src/index/coverfade.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11439694 + !be24 11440206 !le16 410 diff --git a/src/index/credits.idx.a b/src/index/credits.idx.a index 26bc2a576..de03d94e9 100644 --- a/src/index/credits.idx.a +++ b/src/index/credits.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11440448 + !be24 11440960 !le16 448 diff --git a/src/index/decrunch.idx.a b/src/index/decrunch.idx.a index d4f1e0db5..1d54a52b9 100644 --- a/src/index/decrunch.idx.a +++ b/src/index/decrunch.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11440896 + !be24 11441408 !le16 303 diff --git a/src/index/dfx.idx.a b/src/index/dfx.idx.a index ed95e62a8..9a4a9bd3c 100644 --- a/src/index/dfx.idx.a +++ b/src/index/dfx.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11393802 + !be24 11394314 !le16 1242 diff --git a/src/index/dgr.fizzle.idx.a b/src/index/dgr.fizzle.idx.a index e5db261b4..4973df0b7 100644 --- a/src/index/dgr.fizzle.idx.a +++ b/src/index/dgr.fizzle.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11440180 + !be24 11440692 !le16 67 diff --git a/src/index/dgr.idx.a b/src/index/dgr.idx.a index 415288a6d..bfeb28960 100644 --- a/src/index/dgr.idx.a +++ b/src/index/dgr.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11435090 + !be24 11435602 !le16 59 diff --git a/src/index/dhgr.idx.a b/src/index/dhgr.idx.a index 745a42c9c..5d82161db 100644 --- a/src/index/dhgr.idx.a +++ b/src/index/dhgr.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11433605 + !be24 11434117 !le16 1404 diff --git a/src/index/dtitle.idx.a b/src/index/dtitle.idx.a index f497eff2a..bf2959099 100644 --- a/src/index/dtitle.idx.a +++ b/src/index/dtitle.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11419222 + !be24 11419734 !le16 521 diff --git a/src/index/fx.idx.a b/src/index/fx.idx.a index 0fb7af819..0cc974ff5 100644 --- a/src/index/fx.idx.a +++ b/src/index/fx.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11391656 + !be24 11392168 !le16 2146 diff --git a/src/index/gamehelp.idx.a b/src/index/gamehelp.idx.a index c4a6edfc8..fa375fc19 100644 --- a/src/index/gamehelp.idx.a +++ b/src/index/gamehelp.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11395402 + !be24 11395914 !le16 6433 diff --git a/src/index/gr.fizzle.idx.a b/src/index/gr.fizzle.idx.a index 00600a351..910bf7c32 100644 --- a/src/index/gr.fizzle.idx.a +++ b/src/index/gr.fizzle.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11440104 + !be24 11440616 !le16 76 diff --git a/src/index/gr.idx.a b/src/index/gr.idx.a index e678eb902..434959c41 100644 --- a/src/index/gr.idx.a +++ b/src/index/gr.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11435009 + !be24 11435521 !le16 81 diff --git a/src/index/helptext.idx.a b/src/index/helptext.idx.a index 83d824cec..4c6898887 100644 --- a/src/index/helptext.idx.a +++ b/src/index/helptext.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11440247 + !be24 11440759 !le16 201 diff --git a/src/index/hgr0.idx.a b/src/index/hgr0.idx.a index 8e7197d8a..4f044d544 100644 --- a/src/index/hgr0.idx.a +++ b/src/index/hgr0.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11419743 + !be24 11420255 !le16 4511 diff --git a/src/index/hgr1.idx.a b/src/index/hgr1.idx.a index b9a745ef4..8cd259236 100644 --- a/src/index/hgr1.idx.a +++ b/src/index/hgr1.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11424254 + !be24 11424766 !le16 1591 diff --git a/src/index/hgr2.idx.a b/src/index/hgr2.idx.a index a8d95bc56..cc2e0b3a7 100644 --- a/src/index/hgr2.idx.a +++ b/src/index/hgr2.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11425845 + !be24 11426357 !le16 1053 diff --git a/src/index/hgr3.idx.a b/src/index/hgr3.idx.a index 527a8167e..32a6b4268 100644 --- a/src/index/hgr3.idx.a +++ b/src/index/hgr3.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11426898 + !be24 11427410 !le16 3237 diff --git a/src/index/hgr4.idx.a b/src/index/hgr4.idx.a index e3a328400..39e2a2358 100644 --- a/src/index/hgr4.idx.a +++ b/src/index/hgr4.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11430135 + !be24 11430647 !le16 2877 diff --git a/src/index/hgr5.idx.a b/src/index/hgr5.idx.a index 27bb357ac..080b73979 100644 --- a/src/index/hgr5.idx.a +++ b/src/index/hgr5.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11433012 + !be24 11433524 !le16 479 diff --git a/src/index/hgr6.idx.a b/src/index/hgr6.idx.a index 5d99fec6c..66bef7b89 100644 --- a/src/index/hgr6.idx.a +++ b/src/index/hgr6.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11433491 + !be24 11434003 !le16 114 diff --git a/src/index/joystick.idx.a b/src/index/joystick.idx.a index d3126fd40..d700f05d7 100644 --- a/src/index/joystick.idx.a +++ b/src/index/joystick.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11441199 + !be24 11441711 !le16 2370 diff --git a/src/index/miniattract0.idx.a b/src/index/miniattract0.idx.a index 3d1e72075..01d0dae54 100644 --- a/src/index/miniattract0.idx.a +++ b/src/index/miniattract0.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11406791 + !be24 11407303 !le16 3642 diff --git a/src/index/miniattract1.idx.a b/src/index/miniattract1.idx.a index b1a20ace0..e2bfeece1 100644 --- a/src/index/miniattract1.idx.a +++ b/src/index/miniattract1.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11410433 + !be24 11410945 !le16 2795 diff --git a/src/index/prelaunch.idx.a b/src/index/prelaunch.idx.a index 4e66fd9a4..86288503a 100644 --- a/src/index/prelaunch.idx.a +++ b/src/index/prelaunch.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11379929 + !be24 11380441 !le16 6433 diff --git a/src/index/res.cover.idx.a b/src/index/res.cover.idx.a index ea45f6507..ff43564e0 100644 --- a/src/index/res.cover.idx.a +++ b/src/index/res.cover.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 3699200 + !be24 3699712 !le16 8192 diff --git a/src/index/res.help.idx.a b/src/index/res.help.idx.a index 6763921ad..c69f67c1b 100644 --- a/src/index/res.help.idx.a +++ b/src/index/res.help.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 3715584 + !be24 3716096 !le16 8192 diff --git a/src/index/res.title.idx.a b/src/index/res.title.idx.a index f4affdeb2..cd8c9c490 100644 --- a/src/index/res.title.idx.a +++ b/src/index/res.title.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 3707392 + !be24 3707904 !le16 8192 diff --git a/src/index/search00.idx.a b/src/index/search00.idx.a index 7594d06d1..9f0a3efa9 100644 --- a/src/index/search00.idx.a +++ b/src/index/search00.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11318441 + !be24 11318953 !le16 8283 diff --git a/src/index/search01.idx.a b/src/index/search01.idx.a index bdc9f75b9..768d9fb56 100644 --- a/src/index/search01.idx.a +++ b/src/index/search01.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11330378 + !be24 11330890 !le16 9127 diff --git a/src/index/search10.idx.a b/src/index/search10.idx.a index b75043984..30c2f10c6 100644 --- a/src/index/search10.idx.a +++ b/src/index/search10.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11343569 + !be24 11344081 !le16 11976 diff --git a/src/index/search11.idx.a b/src/index/search11.idx.a index 9f5d4d526..66b2151d3 100644 --- a/src/index/search11.idx.a +++ b/src/index/search11.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11360790 + !be24 11361302 !le16 13269 diff --git a/src/index/sfx.idx.a b/src/index/sfx.idx.a index 42b2271a5..383751345 100644 --- a/src/index/sfx.idx.a +++ b/src/index/sfx.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11395044 + !be24 11395556 !le16 358 diff --git a/src/index/slideshow.idx.a b/src/index/slideshow.idx.a index ec2d4f828..a89238f3a 100644 --- a/src/index/slideshow.idx.a +++ b/src/index/slideshow.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11401835 + !be24 11402347 !le16 4956 diff --git a/src/index/title.idx.a b/src/index/title.idx.a index c0ea67782..29783c8f0 100644 --- a/src/index/title.idx.a +++ b/src/index/title.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 11413228 + !be24 11413740 !le16 5994 diff --git a/src/prelaunch/paperboy.a b/src/prelaunch/paperboy.a index 0e9664673..5de2a5789 100644 --- a/src/prelaunch/paperboy.a +++ b/src/prelaunch/paperboy.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2019-2020 by qkumba +;(c) 2019-2020, 2022 by qkumba !cpu 6502 !to "build/PRELAUNCH.INDEXED/PAPERBOY",plain @@ -7,15 +7,42 @@ !source "src/prelaunch/common.a" - +ENABLE_ACCEL - lda #$60 - sta $8E1 - inc $bf0e ; disable ROM mapping - jsr $800 - lda #$20 - sta $8E1 - jsr DisableAccelerator - jmp $8E1 + +READ_RAM2_NO_WRITE + jsr EnableAccelerator + lda MachineStatus + and #CHEATS_ENABLED + sta callback_b+(cheat_smc-callback)+1 + +READ_ROM_NO_WRITE + lda #$60 + sta $8E1 + inc $bf0e ; disable ROM mapping + jsr $800 + lda #$20 + sta $8E1 + jsr DisableAccelerator + lda #callback + sta $210 + ldx #callback_e-callback_b +- lda callback_b,x + sta callback,x + dex + bpl - + jmp $8E1 +callback_b !pseudopc $BF80 { +callback + sta $20F + lda #$60 + sta $210 +cheat_smc + lda #0 + beq + + lda #$ad + sta $8277 ; patch - don't decrease lives ++ jmp $6000 +} +callback_e !if * > $1C0 { !error "code is too large, ends at ", * diff --git a/src/prelaunch/peeping.tom.a b/src/prelaunch/peeping.tom.a index 407781998..6de48b72e 100644 --- a/src/prelaunch/peeping.tom.a +++ b/src/prelaunch/peeping.tom.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/PEEPING.TOM",plain @@ -22,6 +22,11 @@ hook1 lda # $1C0 { diff --git a/src/prelaunch/pegasus.ii.a b/src/prelaunch/pegasus.ii.a index 061e0b9e0..605f3233b 100644 --- a/src/prelaunch/pegasus.ii.a +++ b/src/prelaunch/pegasus.ii.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2021 by qkumba +;(c) 2021-2022 by qkumba !cpu 6502 !to "build/PRELAUNCH.INDEXED/PEGASUS.II",plain @@ -36,6 +36,14 @@ callback stx $994A lda #$A4 sta $994B + +GET_MACHINE_STATUS + and #CHEATS_ENABLED + beq + + lda #$ad + sta $CD5 ; patch - don't decrease lives + sta $719F ; patch - don't increase lives + sta $71C0 ; patch - don't decrease fuel ++ clc rts diff --git a/src/prelaunch/pengo.a b/src/prelaunch/pengo.a new file mode 100644 index 000000000..a9b3fabb9 --- /dev/null +++ b/src/prelaunch/pengo.a @@ -0,0 +1,29 @@ +;license:MIT +;(c) 2022 by qkumba + +!cpu 6502 +!to "build/PRELAUNCH.INDEXED/PENGO",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + lda #$60 + sta $206C + jsr $2000 ; decompress + +READ_RAM2_NO_WRITE + lda MachineStatus + and #CHEATS_ENABLED + beq + + lda #$a5 + sta $1269 ; patch - don't decrease lives + sta $14CC ; patch - don't increase lives ++ + jsr DisableAccelerator + +READ_ROM_NO_WRITE + + jmp $800 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} diff --git a/src/prelaunch/phantoms.five.a b/src/prelaunch/phantoms.five.a index 547ef0dde..a688e1222 100644 --- a/src/prelaunch/phantoms.five.a +++ b/src/prelaunch/phantoms.five.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2020 by qkumba +;(c) 2020, 2022 by qkumba !cpu 6502 !to "build/PRELAUNCH.INDEXED/PHANTOMS.FIVE",plain @@ -8,7 +8,27 @@ !source "src/prelaunch/common.a" +NEW_RESET_VECTOR $340 - jmp $26B2 + +GET_MACHINE_STATUS + and #CHEATS_ENABLED + beq + + ldx #cheat_e-cheat_b +- lda cheat_b, x + sta cheat, x + dex + bpl - + lda #cheat + sta $8C9A ++ jmp $26B2 + +cheat_b !pseudopc $346 { +cheat + lda #$a5 + sta $1D03 ; patch - don't decrease lives + jmp $15B0 +} +cheat_e !if * > $1C0 { !error "code is too large, ends at ", * diff --git a/src/prelaunch/phaser.fire.a b/src/prelaunch/phaser.fire.a new file mode 100644 index 000000000..b40764e75 --- /dev/null +++ b/src/prelaunch/phaser.fire.a @@ -0,0 +1,24 @@ +;license:MIT +;(c) 2022 by qkumba + +!cpu 6502 +!to "build/PRELAUNCH.INDEXED/PHASER.FIRE",plain +*=$106 + + !source "src/prelaunch/common.a" + + lda #$60 + sta $4074 + jsr $4000 ; decompress + +GET_MACHINE_STATUS + and #CHEATS_ENABLED + beq + + lda #$ad + sta $96A ; patch - don't decrease lives ++ + + jmp ($20) + +!if * > $1C0 { + !error "code is too large, ends at ", * +} diff --git a/src/prelaunch/picnic.paranoia.a b/src/prelaunch/picnic.paranoia.a index 70d8f9a59..e87b3a23c 100644 --- a/src/prelaunch/picnic.paranoia.a +++ b/src/prelaunch/picnic.paranoia.a @@ -1,5 +1,5 @@ ;license:MIT -;(c) 2019 by qkumba +;(c) 2019, 2022 by qkumba !cpu 6502 !to "build/PRELAUNCH.INDEXED/PICNIC.PARANOIA",plain @@ -16,13 +16,21 @@ callback nop - +DISABLE_ACCEL lda #0 sta $45e5 lda #1 sta $45ea eor #$A5 sta $45ef + + +READ_RAM2_NO_WRITE + lda MachineStatus + and #CHEATS_ENABLED + beq + + dec $79B7 ; patch - don't decrease time ++ + jsr DisableAccelerator + +READ_ROM_NO_WRITE jmp $78fb !if * > $1C0 { diff --git a/src/prelaunch/pieman.a b/src/prelaunch/pieman.a index a7020f608..a8bb4e425 100755 --- a/src/prelaunch/pieman.a +++ b/src/prelaunch/pieman.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/PM",plain @@ -28,6 +28,12 @@ inx stx $10B2 + +GET_MACHINE_STATUS + and #CHEATS_ENABLED + beq + + lda #$ad + dec $107B ; patch - don't decrease lives ++ jmp $950 !if * > $1C0 { diff --git a/src/prelaunch/pig.pen.a b/src/prelaunch/pig.pen.a new file mode 100644 index 000000000..59a17393d --- /dev/null +++ b/src/prelaunch/pig.pen.a @@ -0,0 +1,36 @@ +;license:MIT +;(c) 2022 by qkumba + +!cpu 6502 +!to "build/PRELAUNCH.INDEXED/PIG.PEN",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + lda #$4C + sta $933D + jsr $6500 ; decompress + lda #$60 + sta $936D + +DISABLE_ACCEL + jsr $9340 + +READ_RAM2_NO_WRITE + jsr EnableAccelerator + jsr $9396 ; decompress more + lda MachineStatus + and #CHEATS_ENABLED + beq + + lda #$ad + sta $733A ; patch - don't decrease lives + lda #0 + sta $7336 ; patch - don't update draw position ++ + jsr DisableAccelerator + +READ_ROM_NO_WRITE + + jmp $6000 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} diff --git a/src/prelaunch/plasmania.a b/src/prelaunch/plasmania.a index 6766e5075..9b8961190 100755 --- a/src/prelaunch/plasmania.a +++ b/src/prelaunch/plasmania.a @@ -7,9 +7,8 @@ !source "src/prelaunch/common.a" + +ENABLE_ACCEL +USES_TEXT_PAGE_2 - inc $3f4 ; mismatch checksum to trigger reboot - ; game overwrites LC during title lda #>(callback1-1) sta $84E lda #<(callback1-1) @@ -28,6 +27,19 @@ callback1 sta $7353 lda #>callback2 sta $7354 + lda #$4C + sta $6F31 ; patch - fix bug causing stack overflow + sta $8E99 ; patch - fix bug causing stack overflow + sta $8E9A ; patch - fix bug causing stack overflow + +READ_RAM2_NO_WRITE + lda MachineStatus + and #CHEATS_ENABLED + beq + + lda #$a5 + sta $92D7 ; patch - don't decrease lives ++ + jsr DisableAccelerator + +READ_ROM_NO_WRITE jmp $6000 !if * > $1C0 { diff --git a/src/prelaunch/platoon.a b/src/prelaunch/platoon.a index 97f8e41ba..b76c46b23 100644 --- a/src/prelaunch/platoon.a +++ b/src/prelaunch/platoon.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/PLATOON",plain @@ -7,8 +7,47 @@ !source "src/prelaunch/common.a" + +ENABLE_ACCEL inc $3F4 ; force reboot - jmp $1000 + lda #$60 + sta $1196 + jsr $1000 + dex + jsr $D300 + lda #$4C + sta $852 + jsr $800 + lda #$60 + sta $8FB + jsr DisableAccelerator + jsr $855 + ldx #callback_e-callback_b +- lda callback_b,x + sta callback,x + dex + bpl - + lda #callback + sta $88C1 + jmp $882D + +callback_b !pseudopc $200 { +callback + lda MachineStatus + and #CHEATS_ENABLED + beq + + lda #0 + sta $F329 ; patch - don't decrease morale + sta $F32E ; patch - don't decrease lives + lda #$ad + sta $FA30 ; patch - don't decrease lives + sta $FA33 ; patch - don't decrease morale + sta $FAE8 ; patch - don't decrease morale + sta $FAEB ; patch - don't decrease lives ++ jmp $EA00 +} +callback_e !if * > $1C0 { !error "code is too large, ends at ", * diff --git a/src/prelaunch/prince.of.persia.a b/src/prelaunch/prince.of.persia.a new file mode 100644 index 000000000..eec35a3b5 --- /dev/null +++ b/src/prelaunch/prince.of.persia.a @@ -0,0 +1,53 @@ +;license:MIT +;(c) 2022 by qkumba + +!cpu 6502 +!to "build/PRELAUNCH.INDEXED/PP",plain +*=$106 + + !source "src/prelaunch/common.a" + + +READ_RAM2_NO_WRITE + jsr EnableAccelerator + lda MachineStatus + and #CHEATS_ENABLED + sta cheat_smc1+1 + sta cheat_smc2+1 + +READ_ROM_NO_WRITE + lda #$60 + sta $13B8 + jsr $1200 ; decompress + lda #callback1 + sta $FE07 + jmp $EE00 + +callback1 + lda #callback2 + sta $FD27 +cheat_smc1 + lda #0 + beq + + dec $2D0E ; patch - don't decrease time ++ + +READ_RAM2_NO_WRITE + jsr DisableAccelerator + +READ_RAM1_WRITE_RAM1 + jmp $4906 + +callback2 + jsr $FF24 +cheat_smc2 + lda #0 + beq + + lda #$a5 + sta $2612 ; patch - don't decrease lives ++ + rts + +!if * > $1C0 { + !error "code is too large, ends at ", * +} diff --git a/src/prelaunch/qix.a b/src/prelaunch/qix.a index a1db726e7..0e14426bf 100644 --- a/src/prelaunch/qix.a +++ b/src/prelaunch/qix.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/QIX",plain @@ -7,9 +7,45 @@ !source "src/prelaunch/common.a" + +ENABLE_ACCEL inc $3F4 ; force reboot + lda #callback1 + sta $60CB + ldx #callback_e-callback_b +- lda callback_b,x + sta callback1,x + dex + bpl - jmp $23AC +callback_b !pseudopc $340 { +callback1 + lda MachineStatus + and #CHEATS_ENABLED + php + jsr DisableAccelerator + jsr $100 ; decompress + sta $0 + lda #8 + sta $1 + plp + beq + + lda #>(callback2 - 1) + pha + lda #<(callback2 - 1) + pha ++ + jmp $60D6 + +callback2 + lda #$ad + sta $9B2F ; patch - don't decrease lives + jmp $801 +} +callback_e + !if * > $1C0 { !error "code is too large, ends at ", * } diff --git a/src/prelaunch/quadrant.6112.a b/src/prelaunch/quadrant.6112.a index 1845b018c..2064f9112 100755 --- a/src/prelaunch/quadrant.6112.a +++ b/src/prelaunch/quadrant.6112.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/QUADRANT.6112",plain @@ -7,12 +7,23 @@ !source "src/prelaunch/common.a" - +NEW_RESET_VECTOR $160 + +ENABLE_ACCEL lda #$60 sta $872 + +NEW_RESET_VECTOR $140 jsr $800 ; title + +READ_RAM2_NO_WRITE + lda MachineStatus + and #CHEATS_ENABLED + beq + + dec $71C6 ; patch - don't decrease lives + lda #$ad + sta $3387 ; patch - don't decrease lives ++ + jsr DisableAccelerator + +READ_ROM_NO_WRITE jmp $2007