diff --git a/res/GAMEHELP/APE.ESCAPE b/res/GAMEHELP/APE.ESCAPE new file mode 100644 index 000000000..f8c9a26a6 --- /dev/null +++ b/res/GAMEHELP/APE.ESCAPE @@ -0,0 +1,21 @@ + Climb the building, get the banana + + Avoid falling items and zoo-keeper + + Don't touch closed windows + + Hold with both hands during earthquake + + Hold out left hand to catch balloon + + W - up left I - up right + + A - left L - right + + Space - hold with both hands + +T * * * * * * * * * * * * * * * * sound + +Ctrl-R * * * * * * * * * * * * * restart + +[eof] diff --git a/res/GAMES.CONF b/res/GAMES.CONF index beb6fd9ed..23fd28b01 100755 --- a/res/GAMES.CONF +++ b/res/GAMES.CONF @@ -12,6 +12,7 @@ 1111,ALIENS 0000,ANKH 0001,AC=Apple Cider Spider +0000,APE.ESCAPE 1000,APPLE.INVADER 0001,APPLE.PANIC 0001,AQUATRON diff --git a/res/TITLE.HGR/APE.ESCAPE b/res/TITLE.HGR/APE.ESCAPE new file mode 100644 index 000000000..9a99b8693 Binary files /dev/null and b/res/TITLE.HGR/APE.ESCAPE differ diff --git a/res/TITLE.HGR/_FileInformation.txt b/res/TITLE.HGR/_FileInformation.txt index 86256ebb0..3a5f2e438 100644 --- a/res/TITLE.HGR/_FileInformation.txt +++ b/res/TITLE.HGR/_FileInformation.txt @@ -14,6 +14,7 @@ ALIEN.LANDER=Type(06),AuxType(4000),Access(C3) ALIEN.MUNCHIES=Type(06),AuxType(4000),Access(C3) ALIEN.TYPHOON=Type(06),AuxType(4000),Access(C3) ANKH=Type(06),AuxType(4000),Access(C3) +APE.ESCAPE=Type(06),AuxType(4000),Access(C3) APPLE.INVADER=Type(06),AuxType(4000),Access(C3) APPLE.PANIC=Type(06),AuxType(4000),Access(C3) AQUATRON=Type(06),AuxType(4000),Access(C3) diff --git a/res/dsk/ape escape 21k file PRODOS (san inc pack).po b/res/dsk/ape escape 21k file PRODOS (san inc pack).po new file mode 100644 index 000000000..e4bf7023d Binary files /dev/null and b/res/dsk/ape escape 21k file PRODOS (san inc pack).po differ diff --git a/src/constants.a b/src/constants.a index 973c99408..b22060d09 100644 --- a/src/constants.a +++ b/src/constants.a @@ -6,7 +6,7 @@ ; YE OLDE GRAND UNIFIED MEMORY MAP ; ; LC RAM BANK 1 -; D000..E8D3 - persistent data structures (gGlobalPrefsStore, gGamesListStore) +; D000..E8E2 - persistent data structures (gGlobalPrefsStore, gGamesListStore) ; E92D..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/ape.escape.a b/src/prelaunch/ape.escape.a new file mode 100644 index 000000000..7aae8fd48 --- /dev/null +++ b/src/prelaunch/ape.escape.a @@ -0,0 +1,57 @@ +;license:MIT +;(c) 2021 by qkumba + +!cpu 6502 +!to "build/PRELAUNCH/APE.ESCAPE",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + + lda #$60 + sta $94C7 + sta $94E1 + sta $94F2 + jsr $4000 ; decompress title + + +DISABLE_ACCEL + + lda $C050 + jsr $94CA ; title animation + + +READ_RAM2_NO_WRITE + jsr EnableAccelerator + bit $C010 + jsr $94E4 ; decompress game + + lda MockingboardStuff + cmp #1 + ora #$C0 + bcc no_speech + ldx MockingboardStuff + bpl no_speech + + ldy #0 +- ldx $1300,Y ;find #$C4s + cpx #$C4 + bne + + sta $1300,Y ;Replace #$C4 with detected slot ++ ldx $6D00,Y ;find #$C4s + cpx #$C4 + bne + + sta $6D00,Y ;Replace #$C4 with detected slot ++ iny + bne - + + sta $7941 + sta $7944 + +no_speech + jsr DisableAccelerator + +READ_ROM_NO_WRITE + jmp $6200 + +!if * > $1C0 { + !error "code is too large, ends at ", * +}