diff --git a/res/GAMES.CONF b/res/GAMES.CONF index a4c6b6d1b..e56d45291 100755 --- a/res/GAMES.CONF +++ b/res/GAMES.CONF @@ -41,6 +41,7 @@ 1000,BLACK.MAGIC 0000,BLISTER.BALL 0000,BLOCKCHAIN=BlockChain +0000,BOA 0001,BOLO 0000,BOP.N.WRESTLE=Bop'n Wrestle 0001,BORG @@ -67,6 +68,7 @@ 0010,COLUMNS 0101,COMMANDO 0003,CONAN +0001,CONGO 0001,CONGO.BONGO 0000,COPTS.ROBBERS=Copts and Robbers 0002,COUNTY.FAIR @@ -107,6 +109,7 @@ 0000,FLIP.OUT 1101,FORCE.7 1000,FORMULA.1.RACER +0001,FRAZZLE 0001,FREE.FALL 0001,FROGGER 1001,FROGGER.II @@ -143,6 +146,7 @@ 1000,INTL.GRAN.PRIX=International Gran Prix 0111,EAGLES.NEST=Into the Eagle's Nest 0000,I.O.SILVER=I.O. Silver +0001,JAWBREAKER 0001,JAWBREAKER.II 0001,JOUST 0000,JUGGLER @@ -163,6 +167,7 @@ 0001,LODE.RUNNER 1000,LOST.TOMB 1000,MAD.BOMBER +0001,MAD.RAT 0001,MANIC.MINER 1100,MARBLE.MADNESS 0001,MARIO.BROS=Mario Bros. @@ -219,6 +224,7 @@ 1000,POLLYWOG 0001,POOYAN 0110,PRINCEUNP=Prince of Persia +0001,PULSAR.II 1110,QIX 1000,QUADRANT.6112 0110,RADWARRIOR diff --git a/res/TITLE.HGR/BOA b/res/TITLE.HGR/BOA new file mode 100644 index 000000000..7000b6b19 Binary files /dev/null and b/res/TITLE.HGR/BOA differ diff --git a/res/TITLE.HGR/CONGO b/res/TITLE.HGR/CONGO new file mode 100644 index 000000000..7b9903d3b Binary files /dev/null and b/res/TITLE.HGR/CONGO differ diff --git a/res/TITLE.HGR/FRAZZLE b/res/TITLE.HGR/FRAZZLE new file mode 100644 index 000000000..ae885d4c6 Binary files /dev/null and b/res/TITLE.HGR/FRAZZLE differ diff --git a/res/TITLE.HGR/JAWBREAKER b/res/TITLE.HGR/JAWBREAKER new file mode 100644 index 000000000..40e48b3b7 Binary files /dev/null and b/res/TITLE.HGR/JAWBREAKER differ diff --git a/res/TITLE.HGR/MAD.RAT b/res/TITLE.HGR/MAD.RAT new file mode 100644 index 000000000..a4fcc3e2d Binary files /dev/null and b/res/TITLE.HGR/MAD.RAT differ diff --git a/res/TITLE.HGR/PULSAR.II b/res/TITLE.HGR/PULSAR.II new file mode 100644 index 000000000..bdf25e46e Binary files /dev/null and b/res/TITLE.HGR/PULSAR.II differ diff --git a/res/TITLE.HGR/_FileInformation.txt b/res/TITLE.HGR/_FileInformation.txt index 7ba44fd6a..48b18f4d1 100644 --- a/res/TITLE.HGR/_FileInformation.txt +++ b/res/TITLE.HGR/_FileInformation.txt @@ -36,6 +36,7 @@ BEYOND.WOLFEN=Type(06),AuxType(4000),Access(C3) BLACK.MAGIC=Type(06),AuxType(4000),Access(C3) BLISTER.BALL=Type(06),AuxType(4000),Access(C3) BLOCKCHAIN=Type(06),AuxType(4000),Access(C3) +BOA=Type(06),AuxType(4000),Access(C3) BOLO=Type(06),AuxType(4000),Access(C3) BOP.N.WRESTLE=Type(06),AuxType(4000),Access(C3) BORG=Type(06),AuxType(4000),Access(C3) @@ -61,6 +62,7 @@ CIDER.SPIDER=Type(06),AuxType(4000),Access(C3) COLUMNS=Type(06),AuxType(4000),Access(C3) COMMANDO=Type(06),AuxType(4000),Access(C3) CONAN=Type(06),AuxType(4000),Access(C3) +CONGO=Type(06),AuxType(4000),Access(C3) CONGO.BONGO=Type(06),AuxType(4000),Access(C3) COPTS.ROBBERS=Type(06),AuxType(4000),Access(C3) COUNTY.FAIR=Type(06),AuxType(4000),Access(C3) @@ -98,6 +100,7 @@ FLAPPLE.BIRD=Type(06),AuxType(4000),Access(C3) FLIP.OUT=Type(06),AuxType(4000),Access(C3) FORCE.7=Type(06),AuxType(4000),Access(C3) FORMULA.1.RACER=Type(06),AuxType(4000),Access(C3) +FRAZZLE=Type(06),AuxType(4000),Access(C3) FREE.FALL=Type(06),AuxType(4000),Access(C3) FROGGER=Type(06),AuxType(4000),Access(C3) FROGGER.II=Type(06),AuxType(4000),Access(C3) @@ -131,6 +134,7 @@ I.O.SILVER=Type(06),AuxType(4000),Access(C3) IKARI.WARRIORS=Type(06),AuxType(4000),Access(C3) IMPOSSIBLE.MISS=Type(06),AuxType(4000),Access(C3) INTL.GRAN.PRIX=Type(06),AuxType(4000),Access(C3) +JAWBREAKER=Type(06),AuxType(4000),Access(C3) JAWBREAKER.II=Type(06),AuxType(4000),Access(C3) JOUST=Type(06),AuxType(4000),Access(C3) JUGGLER=Type(06),AuxType(4000),Access(C3) @@ -152,6 +156,7 @@ LOCK.N.CHASE=Type(06),AuxType(4000),Access(C3) LODE.RUNNER=Type(06),AuxType(4000),Access(C3) LOST.TOMB=Type(06),AuxType(4000),Access(C3) MAD.BOMBER=Type(06),AuxType(4000),Access(C3) +MAD.RAT=Type(06),AuxType(4000),Access(C3) MANIC.MINER=Type(06),AuxType(4000),Access(C3) MARBLE.MADNESS=Type(06),AuxType(4000),Access(C3) MARIO.BROS=Type(06),AuxType(4000),Access(C3) @@ -203,6 +208,7 @@ PITSTOP.II=Type(06),AuxType(4000),Access(C3) PLASMANIA=Type(06),AuxType(4000),Access(C3) POLLYWOG=Type(06),AuxType(4000),Access(C3) POOYAN=Type(06),AuxType(4000),Access(C3) +PULSAR.II=Type(06),AuxType(4000),Access(C3) QUADRANT.6112=Type(06),AuxType(4000),Access(C3) RAID.OVR.MOSCOW=Type(06),AuxType(4000),Access(C3) RANDAMN=Type(06),AuxType(4000),Access(C3) diff --git a/res/dsk/boa 14k file PRODOS (san inc crack).po b/res/dsk/boa 14k file PRODOS (san inc crack).po new file mode 100644 index 000000000..28dd24bd5 Binary files /dev/null and b/res/dsk/boa 14k file PRODOS (san inc crack).po differ diff --git a/res/dsk/congo 14k file PRODOS (san inc pack).po b/res/dsk/congo 14k file PRODOS (san inc pack).po new file mode 100644 index 000000000..64679ff76 Binary files /dev/null and b/res/dsk/congo 14k file PRODOS (san inc pack).po differ diff --git a/res/dsk/frazzle 9k file PRODOS (san inc pack).po b/res/dsk/frazzle 9k file PRODOS (san inc pack).po new file mode 100644 index 000000000..ef88a4a31 Binary files /dev/null and b/res/dsk/frazzle 9k file PRODOS (san inc pack).po differ diff --git a/res/dsk/jawbreaker 8k file PRODOS (san inc crack).po b/res/dsk/jawbreaker 8k file PRODOS (san inc crack).po new file mode 100644 index 000000000..589a148d6 Binary files /dev/null and b/res/dsk/jawbreaker 8k file PRODOS (san inc crack).po differ diff --git a/res/dsk/mad rat 14k file PRODOS (san inc pack).po b/res/dsk/mad rat 14k file PRODOS (san inc pack).po new file mode 100644 index 000000000..22addf15e Binary files /dev/null and b/res/dsk/mad rat 14k file PRODOS (san inc pack).po differ diff --git a/res/dsk/pulsar ii 15k file PRODOS (san inc crack).po b/res/dsk/pulsar ii 15k file PRODOS (san inc crack).po new file mode 100644 index 000000000..586c8a965 Binary files /dev/null and b/res/dsk/pulsar ii 15k file PRODOS (san inc crack).po differ diff --git a/res/notes/wishlist.txt b/res/notes/wishlist.txt index def8a9422..e07176d20 100644 --- a/res/notes/wishlist.txt +++ b/res/notes/wishlist.txt @@ -3,7 +3,6 @@ The American Challenge C'est La Vie Conquering Worlds Dive Bomber -Mad Rat Marauder MIRV The Movie Monster Game @@ -16,22 +15,17 @@ Super Taxman II Video Vegas //4am crack (unreleased) -Congo -Frazzle Galactic Attack Rear Guard Space Kadet //TODO(woz-imaged but uncracked) Alien Lander -Boa Infiltrator Infiltrator II -Jawbreaker Lemmings Lunar Leepers Peeping Tom -Pulsar II Retro-Ball Roach Hotel The Space Ark diff --git a/src/constants.a b/src/constants.a index fe1d7060e..41d904cdf 100644 --- a/src/constants.a +++ b/src/constants.a @@ -6,8 +6,8 @@ ; YE OLDE GRAND UNIFIED MEMORY MAP ; ; LC RAM BANK 1 -; D000..E8C9 - persistent data structures (gGlobalPrefsStore, gGamesListStore) -; ...unused... +; D000..E910 - persistent data structures (gGlobalPrefsStore, gGamesListStore) +; ...unused... yes, just one byte to spare ; E912..FFF1 - main program code ; FFF2..FFF9 - API functions and global constants available for main program ; code, prelaunchers, transition effects, &c. diff --git a/src/prelaunch/boa.a b/src/prelaunch/boa.a new file mode 100644 index 000000000..042a662e6 --- /dev/null +++ b/src/prelaunch/boa.a @@ -0,0 +1,20 @@ +;license:MIT +;(c) 2020 by qkumba + +!cpu 6502 +!to "build/PRELAUNCH/BOA",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + lda #$60 + sta $835 + jsr $800 ; decompress + + +DISABLE_ACCEL + jmp ($6000) + +!if * > $1C0 { + !error "code is too large, ends at ", * +} diff --git a/src/prelaunch/congo.a b/src/prelaunch/congo.a new file mode 100644 index 000000000..a304f01f8 --- /dev/null +++ b/src/prelaunch/congo.a @@ -0,0 +1,27 @@ +;license:MIT +;(c) 2020 by qkumba + +!cpu 6502 +!to "build/PRELAUNCH/CONGO",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + lda #$60 + sta $4326 + jsr $4300 ; decompress + + +GET_MACHINE_STATUS + and #CHEATS_ENABLED + beq + + lda #$ad + sta $5227 ; patch - don't decrease lives + sta $5889 ; patch - don't increase lives ++ + +DISABLE_ACCEL + jmp $4800 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} diff --git a/src/prelaunch/frazzle.a b/src/prelaunch/frazzle.a new file mode 100644 index 000000000..b9cf7e62b --- /dev/null +++ b/src/prelaunch/frazzle.a @@ -0,0 +1,28 @@ +;license:MIT +;(c) 2020 by qkumba + +!cpu 6502 +!to "build/PRELAUNCH/FRAZZLE",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + lda #$60 + sta $94DB + jsr $720A ; decompress + + +GET_MACHINE_STATUS + and #CHEATS_ENABLED + beq + + lda #$ad + sta $1CD2 ; patch - don't increase lives + sta $1CD8 ; patch - don't increase lives + sta $1CE4 ; patch - don't decrease lives ++ + +DISABLE_ACCEL + jmp $6EA0 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} diff --git a/src/prelaunch/jawbreaker.a b/src/prelaunch/jawbreaker.a new file mode 100644 index 000000000..602cc33f2 --- /dev/null +++ b/src/prelaunch/jawbreaker.a @@ -0,0 +1,29 @@ +;license:MIT +;(c) 2020 by qkumba + +!cpu 6502 +!to "build/PRELAUNCH/JAWBREAKER",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + lda #$60 + sta $4023 + jsr $4000 ; decompress + + +GET_MACHINE_STATUS + and #CHEATS_ENABLED + beq + + lda #$AD + sta $6C48 ; patch - don't decrease lives + sta $6D19 ; patch - don't increase lives + lda #$00 + sta $6C71 ; patch - don't decrease lives ++ + +DISABLE_ACCEL + jmp $6000 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} diff --git a/src/prelaunch/mad.rat.a b/src/prelaunch/mad.rat.a new file mode 100644 index 000000000..23b6a59e4 --- /dev/null +++ b/src/prelaunch/mad.rat.a @@ -0,0 +1,29 @@ +;license:MIT +;(c) 2020 by qkumba + +!cpu 6502 +!to "build/PRELAUNCH/MAD.RAT",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + lda #>(callback-1) + sta $75C2 + lda #<(callback-1) + sta $75C5 + jmp $3FF8 ; decompress + +callback + +GET_MACHINE_STATUS + and #CHEATS_ENABLED + beq + + lda #$a5 + sta $692D ; patch - don't decrease lives ++ + +DISABLE_ACCEL + jmp $91D0 + +!if * > $1C0 { + !error "code is too large, ends at ", * +} diff --git a/src/prelaunch/pulsar.ii.a b/src/prelaunch/pulsar.ii.a new file mode 100644 index 000000000..0bccf9d8f --- /dev/null +++ b/src/prelaunch/pulsar.ii.a @@ -0,0 +1,30 @@ +;license:MIT +;(c) 2020 by qkumba + +!cpu 6502 +!to "build/PRELAUNCH/PULSAR.II",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + lda #callback + sta $7B27 + jmp $3FF8 ; decompress + +callback + jsr $BF00 + +GET_MACHINE_STATUS + and #CHEATS_ENABLED + beq + + lda #$ad + sta $9400 ; patch - don't decrease lives ++ + +DISABLE_ACCEL + jmp $1F00 + +!if * > $1C0 { + !error "code is too large, ends at ", * +}