From 3ca889a18c4cc0a098d79f8c37f2155370adba53 Mon Sep 17 00:00:00 2001 From: 4am Date: Sun, 8 Sep 2019 14:50:50 -0400 Subject: [PATCH] add Out Of This World, fix crash in GR action slideshows, fix missing games in DHGR action slideshows, more game ordering fixes --- res/action.gr/OOTW | Bin 0 -> 1024 bytes res/attract.conf | 2 +- res/attract/NORAD | 2 +- res/attract/OOTW | 1 + res/games.conf | 2 +- res/ss/ACTGR1.CONF | 2 +- res/title.hgr/OOTW | 1 + src/glue.launch.a | 29 +++++++++++++++++++++++++---- src/ui.attract.dhgr.a | 20 ++++++++++++++++++-- src/ui.attract.gr.a | 12 ++++++++++-- src/ui.attract.hgr.a | 40 ++++++++++++++++------------------------ src/ui.attract.mode.a | 1 + 12 files changed, 76 insertions(+), 36 deletions(-) create mode 100644 res/action.gr/OOTW create mode 100644 res/attract/OOTW create mode 100644 res/title.hgr/OOTW diff --git a/res/action.gr/OOTW b/res/action.gr/OOTW new file mode 100644 index 0000000000000000000000000000000000000000..59b621969a710a40fd05584183e97f76df9751e8 GIT binary patch literal 1024 zcma)*&q@O^5XNVN?PYz45a>KlDXiyZp?L*Qf)|gzL-5psU=ak-gA_e%tAbGVAU=!u zP5vxfyNmtOourdYemj#aGZV2DO`}F$Q}1gG8$)Eg*yu1wwjhn>e_AO;qz1zwEQWZ* zu`P|o^>ME0VSU1E!EY<=Y7CY&f*1V4+BiMIz8HFkEfxVzvU88*Ee2>&?rF7ozI^#g z|69ElMNGTf;ui==d}Hq;U%LIYbl+FfV%f^lQ~Sfg>gC4*Bl-ULzi%~L)wi4Z`L!)E z!#LeW6-#0j^HGTLM;MN=Rew1#ER*^Z-i*e0z}F$>fBWuk-0X4ri9LKF8@!PX4XnYn zg1m|Qw)k3SXsZ#O+G&y1G5};r! ignore entire line (like this one!) # A line beginning with '[' terminates the parsing # 00,AGENT.USA=Agent U S A 11,AIRHEART=Airheart 00,ALCAZAR=Alcazar 10,ALIEN.AMBUSH=Alien Ambush 00,ALIEN.DOWNPOUR=Alien Downpour 00,ALIEN.MUNCHIES=Alien Munchies 00,ALIEN.RAIN=Alien Rain 00,ALIEN.TYPHOON=Alien Typhoon 00,ANKH=Ankh 00,CIDER.SPIDER=Apple Cider Spider 00,APPLE.PANIC=Apple Panic 00,AQUATRON=Aquatron 00,ARGOS=Argos 10,ARKANOID=Arkanoid 00,ASTEROID.BLASTR=Asteroid Blaster 10,AXIS.ASSASSIN=Axis Assassin 00,AZTEC=Aztec 11,BAD.DUDES=Bad Dudes 10,BALLBLAZER=Ballblazer 11,BATMAN=Batman 00,BATTLEZONE=Battlezone 10,BCS.QUEST=BC's Quest For Tires 00,BEER.RUN=Beer Run 00,BELLHOP=Bellhop 00,BERZAP=Berzap 00,BEYOND.WOLFEN=Beyond Castle Wolfenstein 00,BUDGETRILOGY=Bill Budge's Trilogy 10,BLACK.MAGIC=Black Magic 00,BLISTER.BALL=Blister Ball 00,BLOCKCHAIN=BlockChain 00,BOLO=Bolo 00,BOUNCING.KMNGAS=Bouncing Kamungas 00,BRAINTEASERBLVD=Brainteaser Boulevard 10,BRUCE.LEE=Bruce Lee 10,BUBBLE.BOBBLE=Bubble Bobble 00,BUCK.ROGERS=Buck Rogers: Planet of Zoom 00,BURGERTIME=BurgerTime 00,BUZZARD.BAIT=Buzzard Bait 00,CANNONBALL.BLTZ=Cannonball Blitz 00,CANYON.CLIMBER=Canyon Climber 00,CAPTN.GOODNIGHT=Captain Goodnight 00,WOLFEN84=Castle Wolfenstein 10,CEILING.ZERO=Ceiling Zero 00,CENTIPEDE=Centipede 00,CHAMP.LODERUN=Championship Lode Runner 10,CHOPLIFTER=Choplifter 01,COMMANDO=Commando 00,CONAN=Conan 00,CRAZY.MAZY=Crazy Mazey 00,CRIME.WAVE=Crime Wave 10,CRISIS.MOUNTAIN=Crisis Mountain 00,CROSSFIRE=Crossfire 00,CUBIT=Cubit 00,CYBERSTRIKE=Cyber Strike 00,CYCLOD=Cyclod 10,DAVIDS.MAGIC=David's Midnight Magic 01,DEATH.SWORD=Death Sword 10,DEFENDER=Defender 01,D.GENERATION=D-Generation 00,DIAMOND.MINE=Diamond Mine 00,DIG.DUG=Dig Dug 10,DINO.EGGS=Dino Eggs 10,DONKEY.KONG=Donkey Kong 10,DRELBS=Drelbs 00,DROL=Drol 00,DUNG.BEETLES=Dung Beetles 00,EGGS.IT=Eggs-It 00,EPOCH=Epoch 00,FALCONS=Falcons 00,FIREBIRD=Firebird 00,FS1=Flight Simulator I 00,FLIP.OUT=Flip Out 10,FORMULA.1=Formula 1 Racer 00,FREE.FALL=Free Fall 00,FROGGER=Frogger 10,FROGGER.II=Frogger II 10,GALAXIAN=Galaxian 00,GALAXY.GATES=Galaxy Gates 10,GAMMA.GOBLINS=Gamma Goblins 00,GENETIC.DRIFT=Genetic Drift 00,GOLD.RUSH=Gold Rush 00,GORGON=Gorgon 00,GREMLINS=Gremlins 00,GUMBALL=Gumball 00,HADRON=Hadron 00,HARD.HAT.MACK=Hard Hat Mack 00,HEAD.ON=Head On 11,HEAVY.BARREL=Heavy Barrel 10,HERO=H E R O 00,HIGH.RISE=High Rise 00,HORIZON.V=Horizon V 00,HUNGRYBOY=Hungry Boy 00,HYPER.HEAD.ON=Hyper Head On 00,IKARI.WARRIORS=Ikari Warriors 10,IMPOSSIBLE.MISS=Impossible Mission 01,INDIANA.JONES=Indiana Jones 10,INTL.GRAN.PRIX=International Gran Prix 00,JOUST=Joust 00,JUGGLER=Juggler 00,JUMPMAN=Jumpman 00,JUNGLE.HUNT=Jungle Hunt 10,KAMIKAZE=Kamikaze 00,KARATEKA=Karateka 00,KID.NIKI=Kid Niki 00,LABYRINTH=Labyrinth 00,LADY.TUT=Lady Tut 00,LANCASTER=Lancaster 10,LASER.BOUNCE=Laser Bounce 00,LAZER.SILK=Lazer Silk 00,LODE.RUNNER=Lode Runner 10,LOST.TOMB=Lost Tomb 10,MAD.BOMBER=Mad Bomber 10,MARBLE.MADNESS=Marble Madness 00,MARIO.BROS=Mario Bros 10,MINER.2049ER=Miner 2049er 00,MONTEZUMA=Montezuma's Revenge 00,MOON.PATROL=Moon Patrol 00,MR.COOL=Mr. Cool 10,MR.DO=Mr. Do 00,MR.ROBOT=Mr. Robot 00,MS.PACMAN=Ms. Pacman 00,NIBBLER=Nibbler 10,NIGHT.MISSION=Night Mission Pinball 00,NIGHT.STALKER=Night Stalker 00,NIGHTMARE=Nightmare Gallery 00,NORAD=N O R A D 00,ORBITRON=Orbitron 00,ORILEYS.MINE=O'Riley's Mine 00,OUTPOST=Outpost 00,PAC.MAN=Pac-Man 00,PAPERBOY=Paperboy 00,PEST.PATROL=Pest Patrol 10,PHANTOMS.FIVE=Phantoms Five 00,PHASER.FIRE=Phaser Fire 00,PHOTAR=Photar 00,PICNIC.PARANOIA=Picnic Paranoia 00,PIEMAN=Pie-Man 01,PIPEDREAM=Pipe Dream 10,PITFALL.II=Pitfall II 00,PITSTOP.II=Pit Stop II 00,PLASMANIA=Plasmania 11,PLATOON=Platoon 00,POLLYWOG=Pollywog 00,POOYAN=Pooyan 01,PRINCEUNP=Prince of Persia 00,PUCK.MAN=Puckman 11,QIX=Qix 10,QUADRANT.6112=Quadrant 6112 01,RADWARRIOR=Radwarrior 01,RAMPAGE=Rampage 00,RASTER.BLASTER=Raster Blaster 10,RED.ALERT=Red Alert 11,RENEGADE=Renegade 00,REPTON=Repton 00,RESCUE.RAIDERS=Rescue Raiders 00,RIBBIT=Ribbit 00,ROADBLOCK=Roadblock 01,ROBOCOP=Robocop 00,ROBOTRON=Robotron 2084 00,RUSSKI.DUCK=Russki Duck 00,SABOTAGE=Sabotage 00,SAMMY.LIGHTFOOT=Sammy Lightfoot 00,SEA.DRAGON=Sea Dragon 00,SEAFOX=Seafox 00,SERPENTINE=Serpentine 10,SHAMUS=Shamus 00,SHUFFLEBOARD=Shuffleboard 00,SNACK.ATTACK=Snack Attack 00,SNAKE.BYTE=Snake Byte 00,SNEAKERS=Sneakers 00,SNOGGLE=Snoggle 10,SPACE.EGGS=Space Eggs 00,SPACE.QUARKS=Space Quarks 00,SPACE.RAIDERS=Space Raiders 00,SPARE.CHANGE=Spare Change 00,SPDWAY.CLASSIC=Speedway Classic 01,SPIDERBOT=Spiderbot 00,SPIDER.RAID=Spider Raid 00,SPY.HUNTER=Spy Hunter 00,SPYS.DEMISE=Spy's Demise 10,STARBLASTER=Starblaster 00,STAR.BLAZER=Star Blazer 10,STARGATE=Stargate 00,STAR.THIEF=Star Thief 00,STELLAR.7=Stellar 7 00,SUCCESSION=Succession 00,SUICIDE=Suicide! 00,SWASHBUCKLER=Swashbuckler 00,TAG.TEAM=Tag Team Wrestling 00,TAPPER=Tapper 00,TETRIS=Tetris 01,TETRIS128K=Tetris (DHGR) 00,THE.BILESTOAD=The Bilestoad 01,SUMMER.EDITION=The Games: Summer Edition 01,WINTER.EDITION=The Games: Winter Edition 10,GOONIES=The Goonies 00,SPY.STRIKES.BAK=The Spy Strikes Back 00,THEXDER=Thexder 01,THEXDER128K=Thexder (DHGR) 00,THIEF=Thief 00,THRESHOLD=Threshold 00,THUNDERBOMBS=Thunder Bombs 10,TOMAHAWK=Tomahawk 00,TRACK.AND.FIELD=Track & Field 10,TUBEWAY=Tubeway ][ 00,TUNNEL.TERROR=Tunnel Terror 00,TWERPS=Twerps 00,UP.N.DOWN=Up'n Down 01,VICTORY.ROAD=Victory Road 00,VINDICATOR=Vindicator 00,WARP.DESTROYER=Warp Destroyer 00,WAVY.NAVY=Wavy Navy 10,XEVIOUS=Xevious 10,ZAXXON=Zaxxon 00,ZENITH=Zenith [eof] \ No newline at end of file +# # 4cade master game list # # Format: # AB,directory=name # # A=1 if game requires joystick, 0 if playable on keyboard # B=1 if game requires 128K, 0 if playable on 64K # # all other values for A or B -> ignore entire line (like this one!) # A line beginning with '[' terminates the parsing # 00,AGENT.USA=Agent U S A 11,AIRHEART=Airheart 00,ALCAZAR=Alcazar 10,ALIEN.AMBUSH=Alien Ambush 00,ALIEN.DOWNPOUR=Alien Downpour 00,ALIEN.MUNCHIES=Alien Munchies 00,ALIEN.RAIN=Alien Rain 00,ALIEN.TYPHOON=Alien Typhoon 00,ANKH=Ankh 00,CIDER.SPIDER=Apple Cider Spider 00,APPLE.PANIC=Apple Panic 00,AQUATRON=Aquatron 00,ARGOS=Argos 10,ARKANOID=Arkanoid 00,ASTEROID.BLASTR=Asteroid Blaster 10,AXIS.ASSASSIN=Axis Assassin 00,AZTEC=Aztec 11,BAD.DUDES=Bad Dudes 10,BALLBLAZER=Ballblazer 11,BATMAN=Batman 00,BATTLEZONE=Battlezone 10,BCS.QUEST=BC's Quest For Tires 00,BEER.RUN=Beer Run 00,BELLHOP=Bellhop 00,BERZAP=Berzap 00,BEYOND.WOLFEN=Beyond Castle Wolfenstein 00,BUDGETRILOGY=Bill Budge's Trilogy 10,BLACK.MAGIC=Black Magic 00,BLISTER.BALL=Blister Ball 00,BLOCKCHAIN=BlockChain 00,BOLO=Bolo 00,BOUNCING.KMNGAS=Bouncing Kamungas 00,BRAINTEASERBLVD=Brainteaser Boulevard 10,BRUCE.LEE=Bruce Lee 10,BUBBLE.BOBBLE=Bubble Bobble 00,BUCK.ROGERS=Buck Rogers: Planet of Zoom 00,BURGERTIME=BurgerTime 00,BUZZARD.BAIT=Buzzard Bait 00,CANNONBALL.BLTZ=Cannonball Blitz 00,CANYON.CLIMBER=Canyon Climber 00,CAPTN.GOODNIGHT=Captain Goodnight 00,WOLFEN84=Castle Wolfenstein 10,CEILING.ZERO=Ceiling Zero 00,CENTIPEDE=Centipede 00,CHAMP.LODERUN=Championship Lode Runner 10,CHOPLIFTER=Choplifter 01,COMMANDO=Commando 00,CONAN=Conan 00,CRAZY.MAZY=Crazy Mazey 00,CRIME.WAVE=Crime Wave 10,CRISIS.MOUNTAIN=Crisis Mountain 00,CROSSFIRE=Crossfire 00,CUBIT=Cubit 00,CYBERSTRIKE=Cyber Strike 00,CYCLOD=Cyclod 10,DAVIDS.MAGIC=David's Midnight Magic 01,DEATH.SWORD=Death Sword 10,DEFENDER=Defender 01,D.GENERATION=D-Generation 00,DIAMOND.MINE=Diamond Mine 00,DIG.DUG=Dig Dug 10,DINO.EGGS=Dino Eggs 10,DONKEY.KONG=Donkey Kong 10,DRELBS=Drelbs 00,DROL=Drol 00,DUNG.BEETLES=Dung Beetles 00,EGGS.IT=Eggs-It 00,EPOCH=Epoch 00,FALCONS=Falcons 00,FIREBIRD=Firebird 00,FS1=Flight Simulator I 00,FLIP.OUT=Flip Out 10,FORMULA.1=Formula 1 Racer 00,FREE.FALL=Free Fall 00,FROGGER=Frogger 10,FROGGER.II=Frogger II 10,GALAXIAN=Galaxian 00,GALAXY.GATES=Galaxy Gates 10,GAMMA.GOBLINS=Gamma Goblins 00,GENETIC.DRIFT=Genetic Drift 00,GOLD.RUSH=Gold Rush 00,GORGON=Gorgon 00,GREMLINS=Gremlins 00,GUMBALL=Gumball 00,HADRON=Hadron 00,HARD.HAT.MACK=Hard Hat Mack 00,HEAD.ON=Head On 11,HEAVY.BARREL=Heavy Barrel 10,HERO=H E R O 00,HIGH.RISE=High Rise 00,HORIZON.V=Horizon V 00,HUNGRYBOY=Hungry Boy 00,HYPER.HEAD.ON=Hyper Head On 00,IKARI.WARRIORS=Ikari Warriors 10,IMPOSSIBLE.MISS=Impossible Mission 01,INDIANA.JONES=Indiana Jones 10,INTL.GRAN.PRIX=International Gran Prix 00,JOUST=Joust 00,JUGGLER=Juggler 00,JUMPMAN=Jumpman 00,JUNGLE.HUNT=Jungle Hunt 10,KAMIKAZE=Kamikaze 00,KARATEKA=Karateka 00,KID.NIKI=Kid Niki 00,LABYRINTH=Labyrinth 00,LADY.TUT=Lady Tut 00,LANCASTER=Lancaster 10,LASER.BOUNCE=Laser Bounce 00,LAZER.SILK=Lazer Silk 00,LODE.RUNNER=Lode Runner 10,LOST.TOMB=Lost Tomb 10,MAD.BOMBER=Mad Bomber 10,MARBLE.MADNESS=Marble Madness 00,MARIO.BROS=Mario Bros 10,MINER.2049ER=Miner 2049er 00,MONTEZUMA=Montezuma's Revenge 00,MOON.PATROL=Moon Patrol 00,MR.COOL=Mr. Cool 10,MR.DO=Mr. Do 00,MR.ROBOT=Mr. Robot 00,MS.PACMAN=Ms. Pacman 00,NIBBLER=Nibbler 10,NIGHT.MISSION=Night Mission Pinball 00,NIGHT.STALKER=Night Stalker 00,NIGHTMARE=Nightmare Gallery 00,NORAD=N O R A D 00,ORBITRON=Orbitron 00,ORILEYS.MINE=O'Riley's Mine 00,OOTW=Out Of This World 00,OUTPOST=Outpost 00,PAC.MAN=Pac-Man 00,PAPERBOY=Paperboy 00,PEST.PATROL=Pest Patrol 10,PHANTOMS.FIVE=Phantoms Five 00,PHASER.FIRE=Phaser Fire 00,PHOTAR=Photar 00,PICNIC.PARANOIA=Picnic Paranoia 00,PIEMAN=Pie-Man 01,PIPEDREAM=Pipe Dream 10,PITFALL.II=Pitfall II 00,PITSTOP.II=Pit Stop II 00,PLASMANIA=Plasmania 11,PLATOON=Platoon 00,POLLYWOG=Pollywog 00,POOYAN=Pooyan 01,PRINCEUNP=Prince of Persia 00,PUCK.MAN=Puckman 11,QIX=Qix 10,QUADRANT.6112=Quadrant 6112 01,RADWARRIOR=Radwarrior 01,RAMPAGE=Rampage 00,RASTER.BLASTER=Raster Blaster 10,RED.ALERT=Red Alert 11,RENEGADE=Renegade 00,REPTON=Repton 00,RESCUE.RAIDERS=Rescue Raiders 00,RIBBIT=Ribbit 00,ROADBLOCK=Roadblock 01,ROBOCOP=Robocop 00,ROBOTRON=Robotron 2084 00,RUSSKI.DUCK=Russki Duck 00,SABOTAGE=Sabotage 00,SAMMY.LIGHTFOOT=Sammy Lightfoot 00,SEA.DRAGON=Sea Dragon 00,SEAFOX=Seafox 00,SERPENTINE=Serpentine 10,SHAMUS=Shamus 00,SHUFFLEBOARD=Shuffleboard 00,SNACK.ATTACK=Snack Attack 00,SNAKE.BYTE=Snake Byte 00,SNEAKERS=Sneakers 00,SNOGGLE=Snoggle 10,SPACE.EGGS=Space Eggs 00,SPACE.QUARKS=Space Quarks 00,SPACE.RAIDERS=Space Raiders 00,SPARE.CHANGE=Spare Change 00,SPDWAY.CLASSIC=Speedway Classic 01,SPIDERBOT=Spiderbot 00,SPIDER.RAID=Spider Raid 00,SPY.HUNTER=Spy Hunter 00,SPYS.DEMISE=Spy's Demise 10,STARBLASTER=Starblaster 00,STAR.BLAZER=Star Blazer 10,STARGATE=Stargate 00,STAR.THIEF=Star Thief 00,STELLAR.7=Stellar 7 00,SUCCESSION=Succession 00,SUICIDE=Suicide! 00,SWASHBUCKLER=Swashbuckler 00,TAG.TEAM=Tag Team Wrestling 00,TAPPER=Tapper 00,TETRIS=Tetris 01,TETRIS128K=Tetris (DHGR) 00,THE.BILESTOAD=The Bilestoad 01,SUMMER.EDITION=The Games: Summer Edition 01,WINTER.EDITION=The Games: Winter Edition 10,GOONIES=The Goonies 00,SPY.STRIKES.BAK=The Spy Strikes Back 00,THEXDER=Thexder 01,THEXDER128K=Thexder (DHGR) 00,THIEF=Thief 00,THRESHOLD=Threshold 00,THUNDERBOMBS=Thunder Bombs 10,TOMAHAWK=Tomahawk 00,TRACK.AND.FIELD=Track & Field 10,TUBEWAY=Tubeway ][ 00,TUNNEL.TERROR=Tunnel Terror 00,TWERPS=Twerps 00,UP.N.DOWN=Up'n Down 01,VICTORY.ROAD=Victory Road 00,VINDICATOR=Vindicator 00,WARP.DESTROYER=Warp Destroyer 00,WAVY.NAVY=Wavy Navy 10,XEVIOUS=Xevious 10,ZAXXON=Zaxxon 00,ZENITH=Zenith [eof] \ No newline at end of file diff --git a/res/ss/ACTGR1.CONF b/res/ss/ACTGR1.CONF index 0616aab3d..c26a27f97 100644 --- a/res/ss/ACTGR1.CONF +++ b/res/ss/ACTGR1.CONF @@ -1 +1 @@ -# # action shots slideshow of lo-res games # BLOCKCHAIN POLLYWOG [eof] \ No newline at end of file +# # action shots slideshow of lo-res games # OOTW BLOCKCHAIN POLLYWOG [eof] \ No newline at end of file diff --git a/res/title.hgr/OOTW b/res/title.hgr/OOTW new file mode 100644 index 000000000..14d0c842a --- /dev/null +++ b/res/title.hgr/OOTW @@ -0,0 +1 @@ +€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€þ€€€€€Œ€€€€€€€€€€€€€†€Œ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ÿ€€€€€Œ€€€€€€€€€€€€€†€Œ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€¾¼¼øø€ƒ¾ü¼¼€þ¼€ø¼¼€ø¼¼¼¼¾ø¶¼þø€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€æ†æœœ€¿ææ†æ€Œæ€œæ怜††æææœæ挜€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€æ†¶°°€¾æ憶€Œæ€°¶¶€°††¶¶æ°æ挰€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€þ†žþþ€àþîþž€üþ€þžž€þþ†žžæþæþüþ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€¾†ü¼¼€ÿ¾ì¼ü€¸¼€¼üü€¼¼†üüæ¼æ¼¸¼€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€†€€€€€¿†€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ \ No newline at end of file diff --git a/src/glue.launch.a b/src/glue.launch.a index 3aa253443..c5bfa7d8a 100644 --- a/src/glue.launch.a +++ b/src/glue.launch.a @@ -20,21 +20,25 @@ GetGameDisplayName ; in: A/Y points to game filename +; X = #$60 if we should only look in gGamesListStore for a match +; X = #$EA if we should also look in gSlideshowStore ; out: C clear if game exists in gGamesListStore, and ; A/Y points to game display name (but see hack notes below) ; C set if game does not exist (this can happen because slideshows ; list games that require a joystick, but the games list parser ; filters out joystick-only games if the machine doesn't have a ; joystick) + stx @maybeExit +STAY @key + +STAY @slideshowKey jsr okvs_get !word gGamesListStore @key !word $FDFD ; SMC bcc @exit - ; Hack to allow self-running demos that don't correspond to a game - ; filename. If the name ends in a '.', accept it unconditionally. - ; The filename is its own display name. Launching this fake game - ; will of course fail, so don't do that. +; Hack to allow self-running demos that don't correspond to a game +; filename. If the name ends in a '.', accept it unconditionally. +; The filename is its own display name. Launching this fake game +; will of course fail, so don't do that. +LDAY @key +STAY PARAM ldy #0 @@ -44,6 +48,23 @@ GetGameDisplayName cmp #"." beq @forceGoodResult sec +@maybeExit + !byte $00 ; SMC +; if the key is still not found, AND the caller said to try this, then try +; getting the value of the current record from gSlideshowStore +; (some games have multiple action screenshots, in which case the filename of +; the action screenshot is not the game name, but the value is) + jsr okvs_get + !word gSlideshowStore +@slideshowKey + !word $FDFD ; SMC + +STAY @key3 + jsr okvs_get + !word gGamesListStore +@key3 !word $FDFD ; SMC +; note that the game might still not be found (C will be set by okvs_get), +; which can happen if the game can't be played due to memory or joystick +; requirements rts @forceGoodResult +LDAY @key diff --git a/src/ui.attract.dhgr.a b/src/ui.attract.dhgr.a index bd4688d01..1410f0e11 100644 --- a/src/ui.attract.dhgr.a +++ b/src/ui.attract.dhgr.a @@ -134,9 +134,16 @@ kDFXConfFile + stx gCurrentlyVisibleSlideshowIndex +; try to get the human-readable name of this game from gGamesListStore +LDAY SAVE + ldx #$60 jsr GetGameDisplayName - bcs @exit ; not found, so just skip this title +; if game is not found (C will be set here), it means it can't be played on +; this machine due to memory or joystick requirements, so we don't display +; it in slideshows + bcs @exit +; (we don't actually use the display name in the title slideshow, we just +; reuse the function for convenience) ; load DHGR screenshot at $4000/main and $4000/aux +LDADDR kDHGRTitleDirectory @@ -164,13 +171,22 @@ kDFXConfFile lda KBD bpl + +@actionExit rts + stx gCurrentlyVisibleSlideshowIndex +; try to get the human-readable name of this game from gGamesListStore +; or gSlideshowStore +LDAY SAVE + ldx #$EA jsr GetGameDisplayName - bcs @exit ; not found, so just skip this title +; if game is not found (C will be set here), it means it can't be played on +; this machine due to memory or joystick requirements, so we don't display +; it in slideshows + bcs @actionExit +; (we don't actually use the display name in the DHGR action slideshow, we +; just reuse the function for convenience) ; load DHGR screenshot at $4000/main and $4000/aux +LDADDR kDHGRActionDirectory diff --git a/src/ui.attract.gr.a b/src/ui.attract.gr.a index 0a937c9f3..c2f6218fb 100644 --- a/src/ui.attract.gr.a +++ b/src/ui.attract.gr.a @@ -90,14 +90,22 @@ kGRFizzleFile + stx gCurrentlyVisibleSlideshowIndex +; try to get the human-readable name of this game from gGamesListStore +; or gSlideshowStore +LDAY SAVE + ldx #$EA jsr GetGameDisplayName - bcs @actionExit ; not found, so just skip this title +; if game is not found (C will be set here), it means it can't be played on +; this machine due to memory or joystick requirements, so we don't display +; it in slideshows + bcs @actionExit +; (we don't actually use the display name in the GR action slideshow, we +; just reuse the function for convenience) ; load GR screenshot at $6000 +LOAD_FILE kGRActionDirectory, SAVE - +LDADDR $6000 + +LDADDR $6400 jmp ExecuteTransitionAndWait } diff --git a/src/ui.attract.hgr.a b/src/ui.attract.hgr.a index 0c3e4f8b0..242d40b8e 100644 --- a/src/ui.attract.hgr.a +++ b/src/ui.attract.hgr.a @@ -52,12 +52,16 @@ HGRSingle + stx gCurrentlyVisibleSlideshowIndex - ; check if game exists in the catalog (it might not if it requires a - ; joystick and the machine doesn't have one, or if it requires 128K - ; but the machine only has 64K) +; try to get the human-readable name of this game from gGamesListStore +LDAY SAVE + ldx #$60 jsr GetGameDisplayName - bcs @exit ; not found, so just skip this title +; if game is not found (C will be set here), it means it can't be played on +; this machine due to memory or joystick requirements, so we don't display +; it in slideshows + bcs @exit +; (we don't actually use the display name in the title slideshow, we just +; reuse the function for convenience) ; load HGR screenshot at $4000 +LOAD_FILE kHGRTitleDirectory, SAVE @@ -79,7 +83,6 @@ HGRSingle ;------------------------------------------------------------------------------ .HGRActionCallback +STAY SAVE - +STAY @slideshowKey lda KBD bpl + @@ -92,28 +95,17 @@ HGRSingle +LOAD_FILE kHGRActionDirectory, SAVE ; try to get the human-readable name of this game from gGamesListStore -; and display it in the bottom-left corner +; or gSlideshowStore +LDAY SAVE + ldx #$EA jsr GetGameDisplayName - bcc @foundname -; if the key is not found, try getting the value of the current record from -; gSlideshowStore and using that instead -; (some games have multiple action screenshots, in which case the filename of -; the action screenshot is not the game name, but the value is) - jsr okvs_get - !word gSlideshowStore -@slideshowKey - !word $FDFD ; SMC - +STAY @key3 - jsr okvs_get - !word gGamesListStore -@key3 !word $FDFD ; SMC - bcs @actionExit ; game still not found, bail - ; (could happen if game can't be played - ; due to memory or joystick requirements) -@foundname +; if game name is not found (C will be set here), it means the game +; can't be played due to memory or joystick requirements, so we hide +; it from slideshows + bcs @actionExit + +; found the game, display its name in the bottom-left corner +STAY SAVE -@drawname ldx #0 stx HTAB ldx #22 diff --git a/src/ui.attract.mode.a b/src/ui.attract.mode.a index 6a40b5cc1..044da8da1 100644 --- a/src/ui.attract.mode.a +++ b/src/ui.attract.mode.a @@ -180,6 +180,7 @@ RunAttractModule ; language card or auxiliary memory. +LDAY @key + ldx #$60 jsr GetGameDisplayName bcc + ; if game doesn't exist, skip the demo rts