captive demos work

This commit is contained in:
4am 2018-10-28 17:20:48 -04:00
parent 1998cdbc53
commit c937771198
12 changed files with 61 additions and 5 deletions

View File

@ -40,6 +40,8 @@ dsk: md asm
$(CADIUS) ADDFOLDER build/"$(DISK)" "/${VOLUME}/DHGR" "build/DHGR" >>build/log
rsync -aP res/ss/* build/SS >>build/log
$(CADIUS) ADDFOLDER build/"$(DISK)" "/${VOLUME}/SS" "build/SS" >>build/log
rsync -aP res/demo/* build/DEMO >>build/log
$(CADIUS) ADDFOLDER build/"$(DISK)" "/${VOLUME}/DEMO" "build/DEMO" >>build/log
# bin/do2po.py res/dsk/ build/po/
# rsync -a res/dsk/*.po build/po/
# bin/extract.py build/po/ | sh >build/log
@ -62,6 +64,7 @@ md:
mkdir -p build/HGR
mkdir -p build/DHGR
mkdir -p build/SS
mkdir -p build/DEMO
clean:
rm -rf build/

View File

@ -1 +1 @@
# # Mega-Attract-Mode configuration file # # Mega-Attract-Mode is split into modules. Each module can be a # short slideshow or a self-running demo (like a game's built-in # 'attract mode'). Modules are run in the order listed here, one # after the next, until interrupted by user input. The last-run # module is tracked in the master prefs file. # # Format: # key=value # # value must be one of # 1 for HGR slideshow (key is a file containing a list of HGR graphics) # 2 for DHGR slideshow (key is a file containing a list of DHGR graphics) # 3 for self-running demo (key is an executable binary file) # # Blank lines and lines beginning with '#' are ignored (like this one!) # A line beginning with '[' terminates the parsing # FAVORITES.CONF=1 AB.CONF=1 BRODERBUND.CONF=1 DHGR.CONF=2 ACTIVISION.CONF=1 CD.CONF=1 ATARI.CONF=1 EFG.CONF=1 SIERRA.CONF=1 DATAMOST.CONF=1 HIJKL.CONF=1 DATASOFT.CONF=1 MNO.CONF=1 MICROFUN.CONF=1 PQR.CONF=1 PICCADILLY.CONF=1 S.CONF=1 SIRIUS.CONF=1 TUVWYXZ.CONF=1 [eof]
# # Mega-Attract-Mode configuration file # # Mega-Attract-Mode is split into modules. Each module can be a # short slideshow or a self-running demo (like a game's built-in # 'attract mode'). Modules are run in the order listed here, one # after the next, until interrupted by user input. The last-run # module is tracked in the master prefs file. # # Format: # key=value # # value must be one of # 1 for HGR slideshow (key is a file containing a list of HGR graphics) # 2 for DHGR slideshow (key is a file containing a list of DHGR graphics) # 3 for self-running demo (key is an executable binary file) # # Blank lines and lines beginning with '#' are ignored (like this one!) # A line beginning with '[' terminates the parsing # SHORT.CONF=1 WAVY.NAVY=3 FAVORITES.CONF=1 AB.CONF=1 BRODERBUND.CONF=1 DHGR.CONF=2 ACTIVISION.CONF=1 CD.CONF=1 ATARI.CONF=1 EFG.CONF=1 SIERRA.CONF=1 DATAMOST.CONF=1 HIJKL.CONF=1 DATASOFT.CONF=1 MNO.CONF=1 MICROFUN.CONF=1 PQR.CONF=1 PICCADILLY.CONF=1 S.CONF=1 SIRIUS.CONF=1 TUVWYXZ.CONF=1 [eof]

BIN
res/demo/WAVY.NAVY Normal file

Binary file not shown.

BIN
res/demo/WAVY.NAVY.LOADER Normal file

Binary file not shown.

View File

@ -0,0 +1,2 @@
WAVY.NAVY=Type(06),AuxType(0800),Access(C3)
#WAVY.NAVY.1=Type(06),AuxType(0000),Access(C3)

3
res/notes/sneakers.txt Normal file
View File

@ -0,0 +1,3 @@
$53A4 is (very near to) the start of the attract mode cycle.
$4072 is immediately after it detects a keypress (space only!)
And $4065 is the code that detects the keypress in case we want to expand it to any key.

10
res/notes/wavy-navy.txt Normal file
View File

@ -0,0 +1,10 @@
Demo mode starts immediately on program start
$1547 after demo player dies
9 bytes available
$9E8 after user hits any key in demo mode
6 bytes available
09E8: 20F2098D47.. -> AD88C04C00D0
1547: 20A61120BF12 -> AD88C04C00D0

View File

@ -1,3 +1,4 @@
SHORT.CONF=Type(04),AuxType(4000),Access(C3)
AB.CONF=Type(04),AuxType(4000),Access(C3)
ACTIVISION.CONF=Type(04),AuxType(4000),Access(C3)
ATARI.CONF=Type(04),AuxType(4000),Access(C3)

View File

@ -1 +1 @@
# # slideshow of favorite title screens # WAVY.NAVY NIBBLER SNAKE.BYTE DAVIDS.MAGIC CRAZY.MAZY SPYS.DEMISE DIG.DUG MR.ROBOT PAPERBOY TUBEWAY PRINCEUNP LOST.TOMB MOON.PATROL DROL HERO MONTEZUMA DUNG.BEETLES SWASHBUCKLER POOYAN TAPPER GOONIES PLASMANIA PITFALL.II ALCAZAR SABOTAGE FROGGER GORGON CONAN NIGHT.MISSION DINO.EGGS FALCONS BRUCE.LEE BCS.QUEST JOUST [eof]
# # slideshow of favorite title screens # MR.ROBOT NIBBLER SNAKE.BYTE DAVIDS.MAGIC CRAZY.MAZY SPYS.DEMISE WAVY.NAVY DIG.DUG PAPERBOY TUBEWAY PRINCEUNP LOST.TOMB MOON.PATROL DROL HERO MONTEZUMA DUNG.BEETLES SWASHBUCKLER POOYAN TAPPER GOONIES PLASMANIA PITFALL.II ALCAZAR SABOTAGE FROGGER GORGON CONAN NIGHT.MISSION DINO.EGGS FALCONS BRUCE.LEE BCS.QUEST JOUST [eof]

1
res/ss/short.conf Normal file
View File

@ -0,0 +1 @@
BRUCE.LEE AQUATRON [eof]

View File

@ -62,7 +62,9 @@ FirstMover
!pseudopc $D000 {
!zone
Reenter ; self-running demos should call this to exit back to 4cade
; TODO
txs
+READ_RAM1_WRITE_RAM1
jmp Main
Start
lda hddopendir+1
ldy hddopendir+3
@ -88,6 +90,7 @@ Start
+LDAY SRC
+STAY gSlideshowStore ; save pointer to free space for next store
Main
bit $C010
jsr BlankHGR
jsr AttractMode
@ -161,8 +164,37 @@ AttractMode
jmp BlankHGR
@SelfRunningDemo
; TODO
rts
jsr ResetPath
+LDADDR kDemoDirectory
jsr AddToPath
+LDADDR kPathSeparator
jsr AddToPath
+LDAY @key
jsr AddToPath
jsr LoadFile ; load attract module configuration file
!word gPathname
ldx #(@end-@start-1)
- lda @start,x
sta $100,x
dex
bpl -
jmp $100
@start
; this runs from main memory
+READ_ROM_NO_WRITE
jsr $FE89
jsr $FE93
sta $C000
sta $C002
sta $C004
sta $C00C
sta $C00E
jsr $FB2F
jsr $FC58
ldx #$FF
txs
jmp (ldrlo2)
@end
HGRLoad
ldx $C000

View File

@ -26,6 +26,10 @@ kAttractModeSlideshowDirectory
!byte 2
!raw "SS"
kDemoDirectory
!byte 4
!raw "DEMO"
;------------------------------------------------------------------------------
; ResetPath
; reset gPathname to length 0