diff --git a/Makefile b/Makefile index bb0da1ec8..10be75714 100644 --- a/Makefile +++ b/Makefile @@ -71,6 +71,7 @@ dsk: md asm $(CADIUS) ADDFILE build/"$(DISK)" "/${VOLUME}/" "build/LAUNCHER.SYSTEM" >>build/log # cp res/prefs-sample.conf build/PREFS.CONF >>build/log cp res/prefs.conf build/PREFS.CONF >>build/log + bin/padto 512 build/PREFS.CONF $(CADIUS) ADDFILE build/"$(DISK)" "/${VOLUME}/" "res/COVER" >>build/log $(CADIUS) ADDFILE build/"$(DISK)" "/${VOLUME}/" "build/PREFS.CONF" >>build/log $(CADIUS) ADDFILE build/"$(DISK)" "/${VOLUME}/" "res/GAMES.CONF" >>build/log diff --git a/bin/padto b/bin/padto new file mode 100755 index 000000000..cf4d29694 --- /dev/null +++ b/bin/padto @@ -0,0 +1,7 @@ +#!/bin/bash + +totalsize=$1 +outfile=$2 +filesize=`stat -f "%z" "$outfile"` +padsize=$((512-$filesize)) +dd if=/dev/zero bs=1 count=$padsize >> "$outfile" diff --git a/res/attract.conf b/res/attract.conf index fb10ebbb3..1cf29eebb 100644 --- a/res/attract.conf +++ b/res/attract.conf @@ -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 global prefs file. # # Format: # key=value # # |key| must be unique within this file # # |value| must be one of # 0 for self-running demo (|key| is an executable binary file in /demo/) # 1 for title slideshow (|key| is a file containing a list of HGR graphics in /hgr/) # 2 for action slideshow (|key| is a file containing a list of HGR graphics in /action/) # 3 for DHGR title slideshow (|key| is a file containing a list of DHGR graphics in /dhgr/) # # Blank lines and lines beginning with '#' are ignored (like this one!) # A line beginning with '[' terminates the parsing # BURGERTIME=2 PRINCEUNP=2 CHAMP.LODERUN=2 LODE.RUNNER=2 POP01=2 POP03=2 POP05=2 POP08=2 POP11=2 CLODERUNNER001=2 CLODERUNNER011=2 CLODERUNNER021=2 CLODERUNNER031=2 CLODERUNNER041=2 LODERUNNER001=2 LODERUNNER011=2 LODERUNNER021=2 LODERUNNER031=2 LODERUNNER041=2 LODERUNNER051=2 LODERUNNER061=2 LODERUNNER071=2 LODERUNNER081=2 LODERUNNER091=2 LODERUNNER101=2 LODERUNNER111=2 LODERUNNER121=2 LODERUNNER131=2 LODERUNNER141=2 ACTIONAB.CONF=2 ACTIONCD.CONF=2 ACTIONEFG.CONF=2 ACTIONHIJK.CONF=2 ACTIONMNO.CONF=2 ACTIONPQR.CONF=2 ACTIONS.CONF=2 ACTIONT.CONF=2 #SPIDER.RAID=0 FAVORITES.CONF=1 DHGR.CONF=3 EFG.CONF=1 ACTIVISION.CONF=1 CD.CONF=1 BRODERBUND.CONF=1 T.CONF=1 ATARI.CONF=1 SIERRA.CONF=1 PQR.CONF=1 DATAMOST.CONF=1 MNO.CONF=1 DATASOFT.CONF=1 S.CONF=1 MICROFUN.CONF=1 AB.CONF=1 PICCADILLY.CONF=1 HIJKL.CONF=1 SIRIUS.CONF=1 EA.CONF=1 SYNERGIST.CONF=1 SEGA.CONF=1 SYNAPSE.CONF=1 EPYX.CONF=1 PENGUIN.CONF=1 BALLY.CONF=1 DATAEAST.CONF=1 MATTEL.CONF=1 SUBLOGIC.CONF=1 TAITO.CONF=1 IDSI.CONF=1 OTHER.CONF=1 TRACK.AND.FIELD=0 STELLAR.7=0 GOONIES=0 ALIEN.DOWNPOUR=0 BOUNCING.KMNGAS=0 CEILING.ZERO=0 ORILEYS.MINE=0 FORMULA.1=0 FIREBIRD=0 #BUZZARD.BAIT=0 #SNAKE.BYTE=0 HIGH.RISE=0 THUNDERBOMBS=0 ROBOTRON=0 NIBBLER=0 LADY.TUT=0 STARGATE=0 FLIP.OUT=0 AGENT.USA=0 GUMBALL=0 TUBEWAY=0 CIDER.SPIDER=0 CONAN=0 MR.COOL=0 CHOPLIFTER=0 HARD.HAT.MACK=0 PACMAN=0 SERPENTINE=0 KARATEKA=0 WARP.DESTROYER=0 LOST.TOMB=0 VINDICATOR=0 REPTON=0 SAMMY.LIGHTFOOT=0 DUNG.BEETLES=0 GAMMA.GOBLINS=0 PIEMAN=0 ALIEN.AMBUSH=0 ALIEN.RAIN=0 AQUATRON=0 JUNGLE.HUNT=0 POOYAN=0 PLASMANIA=0 SPY.HUNTER=0 DINO.EGGS=0 BOLO=0 CHAMP.LODERUN=0 SPYS.DEMISE=0 PEST.PATROL=0 PITFALL.II=0 LODE.RUNNER=0 BURGERTIME=0 SPARE.CHANGE=0 SNEAKERS=0 WAVY.NAVY=0 [eof] \ No newline at end of file +# # 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 global prefs file. # # Format: # key=value # # |key| must be unique within this file # # |value| must be one of # 0 for self-running demo (|key| is an executable binary file in /demo/) # 1 for title slideshow (|key| is a file containing a list of HGR graphics in /hgr/) # 2 for action slideshow (|key| is a file containing a list of HGR graphics in /action/) # 3 for DHGR title slideshow (|key| is a file containing a list of DHGR graphics in /dhgr/) # # Blank lines and lines beginning with '#' are ignored (like this one!) # A line beginning with '[' terminates the parsing # FAVORITES.CONF=1 OTHER.CONF=1 ROBOTRON=0 #LODERUNNER091=2 BURGERTIME=0 POP01=2 PQR.CONF=1 HIJKL.CONF=1 AQUATRON=0 #SNAKE.BYTE=0 STARGATE=0 #LODERUNNER141=2 BOUNCING.KMNGAS=0 EPYX.CONF=1 ALIEN.RAIN=0 ACTIONPQR.CONF=2 CHOPLIFTER=0 IDSI.CONF=1 NIBBLER=0 SEGA.CONF=1 TRACK.AND.FIELD=0 DATASOFT.CONF=1 PICCADILLY.CONF=1 WARP.DESTROYER=0 POP03=2 ACTIONHIJK.CONF=2 CLODERUNNER021=2 MATTEL.CONF=1 SIERRA.CONF=1 SPARE.CHANGE=0 POP05=2 CLODERUNNER001=2 CD.CONF=1 POP08=2 PITFALL.II=0 MR.COOL=0 TUBEWAY=0 S.CONF=1 POP11=2 #SPIDER.RAID=0 LODERUNNER101=2 #LODERUNNER121=2 DHGR.CONF=3 THUNDERBOMBS=0 CHAMP.LODERUN=0 #PRINCEUNP=2 POOYAN=0 PIEMAN=0 KARATEKA=0 #LODERUNNER061=2 #LODERUNNER021=2 EFG.CONF=1 ACTIONS.CONF=2 HIGH.RISE=0 HARD.HAT.MACK=0 REPTON=0 #LODERUNNER111=2 DATAMOST.CONF=1 LODERUNNER051=2 T.CONF=1 SIRIUS.CONF=1 LODE.RUNNER=0 #LODERUNNER031=2 #LODE.RUNNER=2 #BUZZARD.BAIT=0 SNEAKERS=0 LODERUNNER001=2 ACTIONCD.CONF=2 ACTIVISION.CONF=1 DATAEAST.CONF=1 ACTIONMNO.CONF=2 ALIEN.DOWNPOUR=0 DUNG.BEETLES=0 ACTIONAB.CONF=2 #BURGERTIME=2 BRODERBUND.CONF=1 SYNERGIST.CONF=1 MNO.CONF=1 EA.CONF=1 JUNGLE.HUNT=0 SAMMY.LIGHTFOOT=0 ACTIONT.CONF=2 PACMAN=0 CIDER.SPIDER=0 FORMULA.1=0 GUMBALL=0 FIREBIRD=0 BALLY.CONF=1 GAMMA.GOBLINS=0 ATARI.CONF=1 TAITO.CONF=1 CLODERUNNER041=2 SPYS.DEMISE=0 AB.CONF=1 GOONIES=0 CEILING.ZERO=0 #LODERUNNER011=2 CONAN=0 AGENT.USA=0 PLASMANIA=0 SUBLOGIC.CONF=1 FLIP.OUT=0 #LODERUNNER041=2 ORILEYS.MINE=0 ACTIONEFG.CONF=2 PENGUIN.CONF=1 VINDICATOR=0 #LODERUNNER131=2 MICROFUN.CONF=1 LOST.TOMB=0 PEST.PATROL=0 DINO.EGGS=0 SERPENTINE=0 LADY.TUT=0 BOLO=0 #LODERUNNER071=2 CLODERUNNER031=2 SYNAPSE.CONF=1 #LODERUNNER081=2 CLODERUNNER011=2 STELLAR.7=0 ALIEN.AMBUSH=0 #CHAMP.LODERUN=2 WAVY.NAVY=0 SPY.HUNTER=0 [eof] \ No newline at end of file diff --git a/res/fx.conf b/res/fx.conf index f57244f59..d8632a020 100644 --- a/res/fx.conf +++ b/res/fx.conf @@ -1 +1 @@ -# # transition effects for HGR slideshows # # Each Mega-Attract Module that is an HGR slideshow (see attract.conf) # will use a single transition effect for the length of the module. # Transition effects are loaded in the order listed in this file. Each line # of this file is a filename (not including comments, like this one). The # name of the next transition effect is stored in the global prefs, so this # file should not contain duplicates. # # Transition effects are binary files loaded at $6000 and called with # hi-res page 1 showing and the next HGR graphic already loaded at $4000. # A transition effect has full use of main memory, including zero page and # text page if needed. LC RAM banks 1 and 2 are reserved for the launcher. # # Important: LC RAM bank 1 will be read/write on entry and must be read/write # on exit. If you need ROM routines, you are responsible for switching to ROM # then switching back to RAM bank 1 (read/write) before returning. # DIAGONAL STAGGERWHITE.UD STAR RADIAL RIPPLE FIZZLE CRYSTAL SUNRISE SUNSET CORNER.CIRCLE RIPPLE2 RADIAL2 RADIAL3 RADIAL4 RADIAL5 FOURSPIRAL IRIS SPLIT.UD.INTRO CHECKERBOARD HALF.FIZZLE BAR.DISSOLVE STAGGERWHITE.LR DIAMOND ONESQUARE TWOPASS.LR HALF.MOSAIC STAGGER.LR FOURSQUARE STAGGER.UD INTERLOCK.LR BLOCK.MOSAIC INTERLOCK.UD BLOCK.FIZZLE SPIRAL [eof] \ No newline at end of file +# # transition effects for HGR slideshows # # Each Mega-Attract Module that is an HGR slideshow (see attract.conf) # will use a single transition effect for the length of the module. # Transition effects are loaded in the order listed in this file. Each line # of this file is a filename (not including comments, like this one). The # name of the next transition effect is stored in the global prefs, so this # file should not contain duplicates. # # Transition effects are binary files loaded at $6000 and called with # hi-res page 1 showing and the next HGR graphic already loaded at $4000. # A transition effect has full use of main memory, including zero page and # text page if needed. LC RAM banks 1 and 2 are reserved for the launcher. # # Important: LC RAM bank 1 will be read/write on entry and must be read/write # on exit. If you need ROM routines, you are responsible for switching to ROM # then switching back to RAM bank 1 (read/write) before returning. # RIPPLE DIAGONAL STAGGERWHITE.UD STAR RADIAL FIZZLE CRYSTAL SUNRISE SUNSET CORNER.CIRCLE RIPPLE2 RADIAL2 RADIAL3 RADIAL4 RADIAL5 FOURSPIRAL IRIS SPLIT.UD.INTRO CHECKERBOARD HALF.FIZZLE BAR.DISSOLVE STAGGERWHITE.LR DIAMOND ONESQUARE TWOPASS.LR HALF.MOSAIC STAGGER.LR FOURSQUARE STAGGER.UD INTERLOCK.LR BLOCK.MOSAIC INTERLOCK.UD BLOCK.FIZZLE SPIRAL [eof] \ No newline at end of file diff --git a/src/parse.prefs.a b/src/parse.prefs.a index 83ce52fe3..11635a772 100644 --- a/src/parse.prefs.a +++ b/src/parse.prefs.a @@ -17,7 +17,7 @@ ; - kNextDFX ; -kGlobalPrefsBuffer = $0800 +kGlobalPrefsBuffer = $8000 kGlobalPrefsFilename !byte 10 @@ -45,8 +45,7 @@ kNextDFX ; $00/$01/$FE/$FF clobbered ;------------------------------------------------------------------------------ SaveGlobalPreferences - lda #$00 - ldy #$08 + +LDADDR kGlobalPrefsBuffer +STAY $FE +LDADDR @kFluff1 @@ -72,11 +71,6 @@ SaveGlobalPreferences +LDADDR @kEOF jsr @addString - bit $c010 -- lda $c000 - bpl - - bit $c010 - jsr SaveSmallFile !word kGlobalPrefsFilename !word kGlobalPrefsBuffer