attract mode HGR slideshows work

This commit is contained in:
4am 2018-10-28 11:44:26 -04:00
parent 2136ab3a62
commit b855481e69
21 changed files with 73 additions and 22 deletions

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 # 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]

1
res/hgr/PRINCEUNP Normal file

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
# # slideshow of games that begin with "A","B" # AGENT.USA ALCAZAR ALIEN.AMBUSH ALIEN.DOWNPOUR ALIEN.MUNCHIES ALIEN.RAIN ANKH CIDER.SPIDER APPLE.PANIC AQUATRON ARGOS ARKANOID BATTLEZONE BCS.QUEST BEER.RUN BELLHOP BERZAP BUDGETRILOGY BLISTER.BALL BOLO BOUNCING.KMNGAS BRAINTEASERBLVD BRUCE.LEE BUBBLE.BOBBLE BURGERTIME BUZZARD.BAIT [eof] # # slideshow of games that begin with "A","B" # ARGOS BELLHOP BRAINTEASERBLVD BEER.RUN ALIEN.AMBUSH BUZZARD.BAIT APPLE.PANIC AGENT.USA ALCAZAR BERZAP BUBBLE.BOBBLE CIDER.SPIDER BURGERTIME BOUNCING.KMNGAS ARKANOID ALIEN.DOWNPOUR BCS.QUEST AQUATRON ALIEN.RAIN BATTLEZONE BOLO ALIEN.MUNCHIES BLISTER.BALL BUDGETRILOGY BRUCE.LEE ANKH [eof]

View File

@ -1 +1 @@
# # Atarisoft slideshow # BATTLEZONE CENTIPEDE DEFENDER DIG.DUG DONKEY.KONG GREMLINS JOUST JUNGLE.HUNT MARIO.BROS MOON.PATROL MS.PACMAN PAC.MAN ROBOTRON.2084 STARGATE TRACK.AND.FIELD [eof] # # Atarisoft slideshow # BATTLEZONE DEFENDER JOUST TRACK.AND.FIELD DIG.DUG DONKEY.KONG STARGATE CENTIPEDE PAC.MAN ROBOTRON.2084 JUNGLE.HUNT MARIO.BROS MOON.PATROL GREMLINS MS.PACMAN [eof]

View File

@ -1 +1 @@
# # Broderbund Software slideshow # ALIEN.RAIN APPLE.PANIC CHAMP.LODERUN CHOPLIFTER DAVIDS.MAGIC DROL GALAXIAN GUMBALL KARATEKA LODE.RUNNER PRINCEUNP RASTER.BLASTER SERPENTINE SNAKE.BYTE SNOGGLE [eof] # # Broderbund Software slideshow # GALAXIAN SERPENTINE CHAMP.LODERUN LODE.RUNNER SNOGGLE PRINCEUNP DROL ALIEN.RAIN CHOPLIFTER RASTER.BLASTER DAVIDS.MAGIC GUMBALL APPLE.PANIC KARATEKA [eof]

View File

@ -1 +1 @@
# # slideshow of games that begin with "C","D" # CANNONBALL.BLTZ CANYON.CLIMBER CEILING.ZERO CENTIPEDE CHAMP.LODERUN CHOPLIFTER COMMANDO CONAN CRAZY.MAZY CRISIS.MOUNTAIN CROSSFIRE CYBERSTRIKE DAVIDS.MAGIC DEFENDER DIG.DUG DINO.EGGS DONKEY.KONG DRELBS DROL DUNG.BEETLES [eof] # # slideshow of games that begin with "C","D" # CEILING.ZERO DONKEY.KONG CENTIPEDE DROL CRISIS.MOUNTAIN CHOPLIFTER DINO.EGGS DIG.DUG DAVIDS.MAGIC CHAMP.LODERUN CANYON.CLIMBER CYBERSTRIKE CONAN CRAZY.MAZY DEFENDER CANNONBALL.BLTZ COMMANDO CROSSFIRE DUNG.BEETLES DRELBS [eof]

View File

@ -1 +1 @@
# # Datamost slideshow # ANKH ARGOS CRAZY.MAZY MR.ROBOT SNACK.ATTACK SWASHBUCKLER TUBEWAY [eof] # # Datamost slideshow # ARGOS ANKH CRAZY.MAZY TUBEWAY MR.ROBOT SNACK.ATTACK SWASHBUCKLER [eof]

View File

@ -1 +1 @@
# # Datasoft slideshow # BRUCE.LEE CONAN DUNG.BEETLES GOONIES LOST.TOMB MR.COOL MR.DO ORILEYS.MINE POOYAN THIEF [eof] # # Datasoft slideshow # CONAN POOYAN GOONIES THIEF LOST.TOMB ORILEYS.MINE MR.COOL MR.DO BRUCE.LEE DUNG.BEETLES [eof]

View File

@ -1 +1 @@
# # slideshow of games that begin with "E","F","G" # EPOCH FALCONS FS1 FLIP.OUT FIREBIRD FORMULA.1 FROGGER FUJI.SPEED.WAY GALAXIAN GAMMA.GOBLINS GOONIES GORGON GREMLINS GUMBALL [eof] # # slideshow of games that begin with "E","F","G" # FLIP.OUT #FUJI.SPEED.WAY FALCONS EPOCH GORGON GREMLINS GALAXIAN FS1 GOONIES GAMMA.GOBLINS FROGGER FIREBIRD GUMBALL FORMULA.1 [eof]

View File

@ -1 +1 @@
# # slideshow of 4am's personal favorites # BRUCE.LEE BURGERTIME CONAN DONKEY.KONG DROL FALCONS HERO JOUST JUNGLE.HUNT LODE.RUNNER MARIO.BROS MINER.2049ER MONTEZUMA MOON.PATROL MR.DO MS.PACMAN NIGHT.MISSION PRINCEUNP SABOTAGE SAMMY.LIGHTFOOT SNEAKERS TAPPER UP.N.DOWN WAVY.NAVY [eof] # # 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]

View File

@ -1 +1 @@
# # slideshow of games that begin with "H","I","J","K","L" # HERO HARD.HAT.MACK HEAD.ON HIGH.RISE HUNGRYBOY IMPOSSIBLE.MISS JOUST JUGGLER JUNGLE.HUNT KARATEKA LADY.TUT LODE.RUNNER LOST.TOMB [eof] # # slideshow of games that begin with "H","I","J","K","L" # JUGGLER LADY.TUT HERO JUNGLE.HUNT HUNGRYBOY HIGH.RISE LOST.TOMB JOUST LODE.RUNNER HARD.HAT.MACK HEAD.ON IMPOSSIBLE.MISS KARATEKA [eof]

View File

@ -1 +1 @@
# # slideshow of games that begin with "M","N","O" # MAD.BOMBER MARBLE.MADNESS MARIO.BROS MINER.2049ER MONTEZUMA MOON.PATROL MR.COOL MR.DO MR.ROBOT MS.PACMAN NIBBLER NIGHT.MISSION NIGHT.STALKER NIGHTMARE NORAD ORILEYS.MINE ORBITRON OUTPOST [eof] # # slideshow of games that begin with "M","N","O" # MOON.PATROL MONTEZUMA ORBITRON NIGHTMARE ORILEYS.MINE MR.COOL MS.PACMAN NIGHT.STALKER MINER.2049ER MARBLE.MADNESS MARIO.BROS MR.ROBOT MAD.BOMBER MR.DO OUTPOST NIBBLER NIGHT.MISSION NORAD [eof]

View File

@ -1 +1 @@
# # Piccadilly Software slideshow # FALCONS RIBBIT STARBLASTER SUCCESSION SUICIDE [eof] # # Piccadilly Software slideshow # FALCONS SUCCESSION SUICIDE RIBBIT STARBLASTER [eof]

View File

@ -1 +1 @@
# # slideshow of games that begin with "P","Q","R" # PAC.MAN PAPERBOY PEST.PATROL PIEMAN PITSTOP.II PITFALL.II PHANTOMS.FIVE PLASMANIA POLLYWOG POOYAN PRINCEUNP PUCK.MAN RADWARRIOR RASTER.BLASTER REPTON RIBBIT ROBOTRON.2084 [eof] # # slideshow of games that begin with "P","Q","R" # PEST.PATROL PAPERBOY PIEMAN PITFALL.II RASTER.BLASTER POLLYWOG PAC.MAN ROBOTRON.2084 PRINCEUNP PLASMANIA PITSTOP.II RIBBIT REPTON PHANTOMS.FIVE POOYAN PUCK.MAN [eof]

View File

@ -1 +1 @@
# # slideshow of games that begin with "S" # SABOTAGE SAMMY.LIGHTFOOT SERPENTINE SHAMUS SNACK.ATTACK SNAKE.BYTE SNEAKERS SNOGGLE SPACE.RAIDERS SPIDER.RAID SPY.HUNTER SPYS.DEMISE STARBLASTER STARGATE STELLAR.7 SUCCESSION SUICIDE SWASHBUCKLER [eof] # # slideshow of games that begin with "S" # STELLAR.7 SHAMUS SPACE.RAIDERS STARBLASTER SPY.HUNTER SPYS.DEMISE STARGATE SPIDER.RAID SUICIDE SUCCESSION SWASHBUCKLER SNAKE.BYTE SNEAKERS SNACK.ATTACK SAMMY.LIGHTFOOT SABOTAGE SNOGGLE SERPENTINE [eof]

View File

@ -1 +1 @@
# # Sierra On-Line slideshow # CIDER.SPIDER AQUATRON BCS.QUEST CANNONBALL.BLTZ CROSSFIRE PEST.PATROL SABOTAGE SAMMY.LIGHTFOOT [eof] # # Sierra On-Line slideshow # BCS.QUEST SABOTAGE CANNONBALL.BLTZ CROSSFIRE SAMMY.LIGHTFOOT CIDER.SPIDER AQUATRON PEST.PATROL [eof]

View File

@ -1 +1 @@
# # Sirius Software slideshow # BEER.RUN BUZZARD.BAIT CYBERSTRIKE EPOCH FLIP.OUT GAMMA.GOBLINS GORGON ORBITRON OUTPOST PHANTOMS.FIVE PLASMANIA REPTON SNEAKERS WAVY.NAVY [eof] # # Sirius Software slideshow # WAVY.NAVY BUZZARD.BAIT CYBERSTRIKE GAMMA.GOBLINS BEER.RUN FLIP.OUT EPOCH OUTPOST SNEAKERS ORBITRON PLASMANIA REPTON GORGON PHANTOMS.FIVE [eof]

View File

@ -1 +1 @@
# # slideshow of games that begin with "T","U","V","W","X","Y","Z" # TAG.TEAM TAPPER TETRIS THIEF THUNDERBOMBS TOMAHAWK TRACK.AND.FIELD TUBEWAY UP.N.DOWN VICTORY.ROAD VINDICATOR WAVY.NAVY [eof] # # slideshow of games that begin with "T","U","V","W","X","Y","Z" # TRACK.AND.FIELD THUNDERBOMBS TAG.TEAM VINDICATOR UP.N.DOWN WAVY.NAVY THIEF TOMAHAWK VICTORY.ROAD TUBEWAY TAPPER TETRIS [eof]

View File

@ -59,6 +59,10 @@ FirstMover
Reenter ; self-running demos should call this to exit back to 4cade Reenter ; self-running demos should call this to exit back to 4cade
; TODO ; TODO
Start Start
lda hddopendir+1
ldy hddopendir+3
+STAY gRootDirectory ; save current directory as 'root'
jsr LoadFile ; load games list from file jsr LoadFile ; load games list from file
!word kGameListConfFile !word kGameListConfFile
@ -79,14 +83,14 @@ Start
+LDAY SRC +LDAY SRC
+STAY gSlideshowStore ; save pointer to free space for next store +STAY gSlideshowStore ; save pointer to free space for next store
bit $C010
jsr AttractMode jsr AttractMode
jmp Reboot
jmp $FAA6
AttractMode AttractMode
jsr okvs_nth ; get filename of next attract module jsr okvs_nth ; get filename of next attract module
!word gAttractModeStore !word gAttractModeStore
!byte 0 @index !byte 0
+STAY PTR +STAY PTR
jsr ResetPath jsr ResetPath
+LDADDR kAttractModeSlideshowDirectory +LDADDR kAttractModeSlideshowDirectory
@ -98,6 +102,14 @@ AttractMode
jsr LoadFile ; load attract module configuration file jsr LoadFile ; load attract module configuration file
!word gPathname !word gPathname
inc @index ; increment module index for next time
jsr okvs_len
!word gAttractModeStore
cmp @index
bne +
lda #0
sta @index
+
jsr ParseKeyValueList ; parse slideshow configuration jsr ParseKeyValueList ; parse slideshow configuration
!word gSlideshowStore !word gSlideshowStore
!word ldrlo2 ; (ldrlo2) points to load address !word ldrlo2 ; (ldrlo2) points to load address
@ -105,6 +117,9 @@ AttractMode
jsr okvs_iter jsr okvs_iter
!word gSlideshowStore !word gSlideshowStore
!word HGRLoad !word HGRLoad
lda $C000
bpl AttractMode
rts rts
HGRLoad HGRLoad
@ -121,8 +136,33 @@ HGRLoad
jsr LoadFile jsr LoadFile
!word gPathname !word gPathname
jsr FizzleHGR jsr FizzleHGR
ldx #0
ldy #0
@wait lda $C000
bmi @exit
jsr @burn
dey
bne @wait
dex
bne @wait
rts
@burn jsr @burn2
@burn2 jsr @burn3
@burn3 jsr @exit
@exit rts @exit rts
Reboot
ldx #(@end-@start-1)
- lda @start,x
sta $100,x
dex
bpl -
jmp $100
@start
+READ_ROM_NO_WRITE
jmp $FAA6
@end
kGameListConfFile kGameListConfFile
!byte @kGameListConfFile_e-@kGameListConfFile_b !byte @kGameListConfFile_e-@kGameListConfFile_b
@kGameListConfFile_b @kGameListConfFile_b

View File

@ -49,10 +49,13 @@ FizzleHGR
lda ($3c),y lda ($3c),y
sta ($26),y sta ($26),y
;check for keypress ;wait while checking for keypress
lda $c000 ldx #8
@wait lda $c000
bmi @exit bmi @exit
dex
bne @wait
;and exit condition ;and exit condition

View File

@ -8,6 +8,9 @@
; - LoadDHRFile ; - LoadDHRFile
; ;
gRootDirectory
!word $FDFD
;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------
; LoadFile ; LoadFile
; load a file into memory all at once, using ProRWTS2 ; load a file into memory all at once, using ProRWTS2
@ -25,6 +28,10 @@ LoadFile
+LDPARAM 1 +LDPARAM 1
+STAY namlo ; set filename +STAY namlo ; set filename
+LDAY gRootDirectory
sta @myreadblock+1
sty @myreadblock+3 ; reset 'root' directory (saved at program start)
;search for '/' character in filename ;search for '/' character in filename
ldx #0 ldx #0