diff --git a/res/ACTION.HGR.UNCOMPRESSED/DANGEROUS.DAVE1 b/res/ACTION.HGR.UNCOMPRESSED/DANGEROUS.DAVE1 new file mode 100644 index 000000000..f78632cde Binary files /dev/null and b/res/ACTION.HGR.UNCOMPRESSED/DANGEROUS.DAVE1 differ diff --git a/res/ACTION.HGR.UNCOMPRESSED/DANGEROUS.DAVE2 b/res/ACTION.HGR.UNCOMPRESSED/DANGEROUS.DAVE2 new file mode 100644 index 000000000..7db05f6bb Binary files /dev/null and b/res/ACTION.HGR.UNCOMPRESSED/DANGEROUS.DAVE2 differ diff --git a/res/ACTION.HGR.UNCOMPRESSED/DANGEROUS.DAVE3 b/res/ACTION.HGR.UNCOMPRESSED/DANGEROUS.DAVE3 new file mode 100644 index 000000000..a9d82bf7c Binary files /dev/null and b/res/ACTION.HGR.UNCOMPRESSED/DANGEROUS.DAVE3 differ diff --git a/res/ACTION.HGR.UNCOMPRESSED/DANGEROUS.DAVE4 b/res/ACTION.HGR.UNCOMPRESSED/DANGEROUS.DAVE4 new file mode 100644 index 000000000..2513a1cba Binary files /dev/null and b/res/ACTION.HGR.UNCOMPRESSED/DANGEROUS.DAVE4 differ diff --git a/res/ACTION.HGR.UNCOMPRESSED/DANGEROUS.DAVE5 b/res/ACTION.HGR.UNCOMPRESSED/DANGEROUS.DAVE5 new file mode 100644 index 000000000..d728a8e22 Binary files /dev/null and b/res/ACTION.HGR.UNCOMPRESSED/DANGEROUS.DAVE5 differ diff --git a/res/ACTION.HGR.UNCOMPRESSED/DANGEROUS.DAVE6 b/res/ACTION.HGR.UNCOMPRESSED/DANGEROUS.DAVE6 new file mode 100644 index 000000000..87b90541f Binary files /dev/null and b/res/ACTION.HGR.UNCOMPRESSED/DANGEROUS.DAVE6 differ diff --git a/res/ACTION.HGR/DANGEROUS.DAVE1 b/res/ACTION.HGR/DANGEROUS.DAVE1 new file mode 100644 index 000000000..63dd2112c Binary files /dev/null and b/res/ACTION.HGR/DANGEROUS.DAVE1 differ diff --git a/res/ACTION.HGR/DANGEROUS.DAVE2 b/res/ACTION.HGR/DANGEROUS.DAVE2 new file mode 100644 index 000000000..446f32c4b Binary files /dev/null and b/res/ACTION.HGR/DANGEROUS.DAVE2 differ diff --git a/res/ACTION.HGR/DANGEROUS.DAVE3 b/res/ACTION.HGR/DANGEROUS.DAVE3 new file mode 100644 index 000000000..e058a936c Binary files /dev/null and b/res/ACTION.HGR/DANGEROUS.DAVE3 differ diff --git a/res/ACTION.HGR/DANGEROUS.DAVE4 b/res/ACTION.HGR/DANGEROUS.DAVE4 new file mode 100644 index 000000000..cc5f3f68f Binary files /dev/null and b/res/ACTION.HGR/DANGEROUS.DAVE4 differ diff --git a/res/ACTION.HGR/DANGEROUS.DAVE5 b/res/ACTION.HGR/DANGEROUS.DAVE5 new file mode 100644 index 000000000..09baabcfe Binary files /dev/null and b/res/ACTION.HGR/DANGEROUS.DAVE5 differ diff --git a/res/ACTION.HGR/DANGEROUS.DAVE6 b/res/ACTION.HGR/DANGEROUS.DAVE6 new file mode 100644 index 000000000..b06d5e393 Binary files /dev/null and b/res/ACTION.HGR/DANGEROUS.DAVE6 differ diff --git a/res/ACTION.HGR/_FileInformation.txt b/res/ACTION.HGR/_FileInformation.txt index 509cff28a..e5bdc8137 100644 --- a/res/ACTION.HGR/_FileInformation.txt +++ b/res/ACTION.HGR/_FileInformation.txt @@ -180,6 +180,12 @@ CUBIT=Type(06),AuxType(3FF8),Access(C3) CUBIT2=Type(06),AuxType(3FF8),Access(C3) CYBER.STRIKE=Type(06),AuxType(3FF8),Access(C3) CYCLOD=Type(06),AuxType(3FF8),Access(C3) +DANGEROUS.DAVE1=Type(06),AuxType(3FF8),Access(C3) +DANGEROUS.DAVE2=Type(06),AuxType(3FF8),Access(C3) +DANGEROUS.DAVE3=Type(06),AuxType(3FF8),Access(C3) +DANGEROUS.DAVE4=Type(06),AuxType(3FF8),Access(C3) +DANGEROUS.DAVE5=Type(06),AuxType(3FF8),Access(C3) +DANGEROUS.DAVE6=Type(06),AuxType(3FF8),Access(C3) DAVIDS.MAGIC=Type(06),AuxType(3FF8),Access(C3) DEFENDER=Type(06),AuxType(3FF8),Access(C3) DIAMOND.MINE=Type(06),AuxType(3FF8),Access(C3) @@ -449,7 +455,7 @@ PENETRATOR2=Type(06),AuxType(3FF8),Access(C3) PEST.PATROL=Type(06),AuxType(3FF8),Access(C3) PEST.PATROL2=Type(06),AuxType(3FF8),Access(C3) PHANTOMS.FIVE=Type(06),AuxType(3FF8),Access(C3) -PHAROAHS.REVNG=Type(06),AuxType(3FF8),Access(C3) +PHARAOHS.REVNG=Type(06),AuxType(3FF8),Access(C3) PHASER.FIRE=Type(06),AuxType(3FF8),Access(C3) PHOTAR=Type(06),AuxType(3FF8),Access(C3) PHOTAR2=Type(06),AuxType(3FF8),Access(C3) diff --git a/res/ARTWORK.SHR/_FileInformation.txt b/res/ARTWORK.SHR/_FileInformation.txt index 793efafff..be81dcf4c 100644 --- a/res/ARTWORK.SHR/_FileInformation.txt +++ b/res/ARTWORK.SHR/_FileInformation.txt @@ -90,7 +90,7 @@ ONE.ON.ONE=Type(06),AuxType(1FF8),Access(C3) ORILEYS.MINE=Type(06),AuxType(1FF8),Access(C3) PAC.MAN=Type(06),AuxType(1FF8),Access(C3) PAPERBOY=Type(06),AuxType(1FF8),Access(C3) -PHAROAHS.REVNG=Type(06),AuxType(1FF8),Access(C3) +PHARAOHS.REVNG=Type(06),AuxType(1FF8),Access(C3) PIPE.DREAM=Type(06),AuxType(1FF8),Access(C3) PITSTOP.II=Type(06),AuxType(1FF8),Access(C3) PLATOON=Type(06),AuxType(1FF8),Access(C3) diff --git a/res/ATTRACT/DANGEROUS.DAVE b/res/ATTRACT/DANGEROUS.DAVE new file mode 100644 index 000000000..860eaa411 --- /dev/null +++ b/res/ATTRACT/DANGEROUS.DAVE @@ -0,0 +1,13 @@ +# +# Attract mode for DANGEROUS.DAVE +# This file is automatically generated +# + +ACTION.HGR/DANGEROUS.DAVE1=A +ACTION.HGR/DANGEROUS.DAVE2=A +ACTION.HGR/DANGEROUS.DAVE3=A +ACTION.HGR/DANGEROUS.DAVE4=A +ACTION.HGR/DANGEROUS.DAVE5=A +ACTION.HGR/DANGEROUS.DAVE6=A + +[eof] diff --git a/res/ATTRACT/_FileInformation.txt b/res/ATTRACT/_FileInformation.txt index c826619e2..c6886ddc6 100644 --- a/res/ATTRACT/_FileInformation.txt +++ b/res/ATTRACT/_FileInformation.txt @@ -73,6 +73,7 @@ CUBIT=Type(04),AuxType(8000),Access(C3) CYBER.STRIKE=Type(04),AuxType(8000),Access(C3) CYCLOD=Type(04),AuxType(8000),Access(C3) D.GENERATION=Type(04),AuxType(8000),Access(C3) +DANGEROUS.DAVE=Type(04),AuxType(8000),Access(C3) DAVIDS.MAGIC=Type(04),AuxType(8000),Access(C3) DEATH.SWORD=Type(04),AuxType(8000),Access(C3) DEFENDER=Type(04),AuxType(8000),Access(C3) @@ -181,7 +182,7 @@ PAPERBOY=Type(04),AuxType(8000),Access(C3) PENETRATOR=Type(04),AuxType(8000),Access(C3) PEST.PATROL=Type(04),AuxType(8000),Access(C3) PHANTOMS.FIVE=Type(04),AuxType(8000),Access(C3) -PHAROAHS.REVNG=Type(04),AuxType(8000),Access(C3) +PHARAOHS.REVNG=Type(04),AuxType(8000),Access(C3) PHASER.FIRE=Type(04),AuxType(8000),Access(C3) PHOTAR=Type(04),AuxType(8000),Access(C3) PICNIC.PARANOIA=Type(04),AuxType(8000),Access(C3) diff --git a/res/GAMES.CONF b/res/GAMES.CONF index de2dc9a04..bbd3c8b8a 100755 --- a/res/GAMES.CONF +++ b/res/GAMES.CONF @@ -72,6 +72,7 @@ 0000,CYBER.STRIKE 0001,CYCLOD 1000,THE.DAM.BUSTERS +0001,DANGEROUS.DAVE 1000,DAVIDS.MAGIC=David's Midnight Magic 0110,DEATH.SWORD 1001,DEFENDER diff --git a/res/SS/ACTIONDAVE.CONF b/res/SS/ACTIONDAVE.CONF new file mode 100644 index 000000000..d741ad91b --- /dev/null +++ b/res/SS/ACTIONDAVE.CONF @@ -0,0 +1,12 @@ +# +# Dangerous Dave action slideshow +# + +DANGEROUS.DAVE1=DANGEROUS.DAVE +DANGEROUS.DAVE2=DANGEROUS.DAVE +DANGEROUS.DAVE3=DANGEROUS.DAVE +DANGEROUS.DAVE4=DANGEROUS.DAVE +DANGEROUS.DAVE5=DANGEROUS.DAVE +DANGEROUS.DAVE6=DANGEROUS.DAVE + +[eof] diff --git a/res/SS/_FileInformation.txt b/res/SS/_FileInformation.txt index 416895af8..64f193dcf 100644 --- a/res/SS/_FileInformation.txt +++ b/res/SS/_FileInformation.txt @@ -48,6 +48,7 @@ ACTIONCLR2.CONF=Type(04),AuxType(4000),Access(C3) ACTIONCLR3.CONF=Type(04),AuxType(4000),Access(C3) ACTIONCLR4.CONF=Type(04),AuxType(4000),Access(C3) ACTIONCLR5.CONF=Type(04),AuxType(4000),Access(C3) +ACTIONDAVE.CONF=Type(04),AuxType(4000),Access(C3) ACTIONDD.CONF=Type(04),AuxType(4000),Access(C3) ACTIONEFG1.CONF=Type(04),AuxType(4000),Access(C3) ACTIONEFG2.CONF=Type(04),AuxType(4000),Access(C3) diff --git a/res/TITLE.HGR/DANGEROUS.DAVE b/res/TITLE.HGR/DANGEROUS.DAVE new file mode 100644 index 000000000..e151d3bab Binary files /dev/null and b/res/TITLE.HGR/DANGEROUS.DAVE differ diff --git a/res/TITLE.HGR/_FileInformation.txt b/res/TITLE.HGR/_FileInformation.txt index a6b51c017..7e2e301c3 100644 --- a/res/TITLE.HGR/_FileInformation.txt +++ b/res/TITLE.HGR/_FileInformation.txt @@ -65,6 +65,7 @@ CRYSTAL.CASTLES=Type(06),AuxType(4000),Access(C3) CUBIT=Type(06),AuxType(4000),Access(C3) CYBER.STRIKE=Type(06),AuxType(4000),Access(C3) CYCLOD=Type(06),AuxType(4000),Access(C3) +DANGEROUS.DAVE=Type(06),AuxType(4000),Access(C3) DAVIDS.MAGIC=Type(06),AuxType(4000),Access(C3) DEFENDER=Type(06),AuxType(4000),Access(C3) DIAMOND.MINE=Type(06),AuxType(4000),Access(C3) @@ -167,7 +168,7 @@ PAPERBOY=Type(06),AuxType(4000),Access(C3) PENETRATOR=Type(06),AuxType(4000),Access(C3) PEST.PATROL=Type(06),AuxType(4000),Access(C3) PHANTOMS.FIVE=Type(06),AuxType(4000),Access(C3) -PHAROAHS.REVNG=Type(06),AuxType(4000),Access(C3) +PHARAOHS.REVNG=Type(06),AuxType(4000),Access(C3) PHASER.FIRE=Type(06),AuxType(4000),Access(C3) PHOTAR=Type(06),AuxType(4000),Access(C3) PICNIC.PARANOIA=Type(06),AuxType(4000),Access(C3) diff --git a/res/dsk/dangerous dave.po b/res/dsk/dangerous dave.po new file mode 100644 index 000000000..5a49ac3a3 Binary files /dev/null and b/res/dsk/dangerous dave.po differ diff --git a/src/prelaunch/dangerous.dave.a b/src/prelaunch/dangerous.dave.a new file mode 100644 index 000000000..bbe825131 --- /dev/null +++ b/src/prelaunch/dangerous.dave.a @@ -0,0 +1,40 @@ +;license:MIT +;(c) 2020 by Tom Greene + +!cpu 6502 +!to "build/PRELAUNCH/DANGEROUS.DAVE",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + lda #$60 ; patch loader to return + sta $20C6 + jsr $2000 + + +GET_MACHINE_STATUS + and #CHEATS_ENABLED + beq + + ldx #$2C + stx $8A61 ; don't decrement lives + ++ + ; the game calls the Applesoft RND function in ROM + ; so we need to copy the seed into ZP, otherwise it + ; will get stuck in an infinite loop + ldx #$04 +- lda seed,x + sta $C9,x + dex + bpl - + + +DISABLE_ACCEL + jmp $20EC + +seed + !byte $80, $4F, $C7, $52, $FF + + +!if * > $1C0 { + !error "code is too large, ends at ", * +}