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 2c49d29a4..b7317b8af 100755 Binary files a/res/demo/SPYS.DEMISE and b/res/demo/SPYS.DEMISE differ 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)