From 3b9e8f5afbe444f4ab6861477345e76d63b12e96 Mon Sep 17 00:00:00 2001 From: 4am Date: Wed, 14 Nov 2018 14:04:57 -0500 Subject: [PATCH] add Spy's Demise captive demo --- res/attract-mode.txt | 35 +++++++++++++++++++++++++++++++++-- res/demo/SPYS.DEMISE | Bin 19927 -> 19927 bytes res/notes/spys-demise.txt | 1 + 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/res/attract-mode.txt b/res/attract-mode.txt index c666a2c80..a2036dfe8 100644 --- a/res/attract-mode.txt +++ b/res/attract-mode.txt @@ -1,3 +1,34 @@ +# List of candidates for self-running 'captive' demos +# +# Not all games are good candidates. Some have no demo mode at all. +# Others technically have one but it's visually uninteresting or too short. +# Others are ruled out by technical constraints. Due to the architecture of +# the launcher, all captive demos must run entirely in main memory (48K). +# NO languard card, NO auxmem! +# +# We have enough disk space that we don't worry too much about it. (Wow.) +# Generally we start with an uncompressed ProDOS port of the entire game +# and whittle it down to just the files it needs for its demo mode, then +# apply patches so that it +# +# - returns control after the natural end of the demo cycle +# - returns control on any keypress +# - returns control on any button press (note: some games don't support +# joystick buttons at all, and we don't add button support, but if you +# can start the game by pressing a button, we need to ensure that that +# returns control instead) +# - disables all sound output +# +# 'Returning control' involves activating RAM bank 1 read access and +# jumping to $D000 (labeled as |Reenter| in the source code). The launcher +# puts this code at $0100 before executing a captive demo, so generally +# you can just put 'JMP $0100' anywhere. If a particular game overwrites +# this area of the stack page, you will need to find 6 bytes for the +# 'LDA $C088 / JMP $D000' instructions yourself. +# +# Notes on completed and in-progress captive demos are in res/notes/ +# + # TODO Agent USA Alien Ambush @@ -5,7 +36,6 @@ Alien Downpour Alien Rain Apple Cider Spider Aquatron -Arkanoid Bouncing Kamungas Buzzard Bait Canyon Climber @@ -34,7 +64,6 @@ Pac-Man Pie-Man Plasmania [priority] Pooyan [priority] -Prince of Persia Repton Ribbit Robotron 2084 @@ -69,5 +98,7 @@ Spare Change Wavy Navy # obvious candidates that we're skipping +Arkanoid (requires 64K) Drol (attract mode is minimal) Mr. Do (attract mode requires 64K) +Prince of Persia (requires 128K) diff --git a/res/demo/SPYS.DEMISE b/res/demo/SPYS.DEMISE index 2c49d29a46a472948d6b118a5a7378d3800e84a1..b7317b8afea827a1dc9076059497c21b7f508ee2 100755 GIT binary patch delta 35 ncmcaUoALT=#tjb?n0*)+H$PT*$^mAa*4)a>1Qck}4OIXD^(_n& delta 35 tcmV+;0NnrAn*rCG0kGg81K`l`v*RG;2m@$njkC)swF3f5V6%cPRUklV5FY>l diff --git a/res/notes/spys-demise.txt b/res/notes/spys-demise.txt index f433f4a4f..5e2e49d29 100644 --- a/res/notes/spys-demise.txt +++ b/res/notes/spys-demise.txt @@ -3,3 +3,4 @@ no support for joystick buttons $60D1: E0D0F0 -> 4C0001 to exit when user presses key during title page (context is 4C0A61AE00C010DFE0D0F020) $69B9: 68688D -> 4C0001 to exit when user presses key during demo (context is 49FF8527E636AD00C0100868688D10C0) +$6D70: 4C4A60 -> 4C0001 to exit after demo cycle ends (context is A517C901D0034C4A60201662A529)