diff --git a/Makefile b/Makefile index a765a15..a03ba00 100644 --- a/Makefile +++ b/Makefile @@ -69,10 +69,20 @@ dsk: index asmproboot asmlauncher extract done bin/changebootloader.sh build/"$(DISK)" build/proboothd -extract: preconditions md +gamesconf: preconditions md +# +# create a version of GAMES.CONF without comments or blank lines or anything after display titles +# + [ -f build/index ] || (awk '!/^$$|^#/' < res/GAMES.CONF | awk -F'/' '{ print $$1 }' > build/GAMES.CONF) +# +# create a list of all game filenames, without metadata or display names, sorted by game filename +# + [ -f build/index ] || (awk -F, '/,/ { print $$2 }' < build/GAMES.CONF | awk -F= '{ print $$1 }' | sort > build/GAMES.SORTED) + +extract: preconditions md gamesconf $(PARALLEL) '$(CADIUS) EXTRACTVOLUME {} build/X/ >>build/log' ::: res/dsk/*.po rm -f build/X/**/.DS_Store build/X/**/PRODOS* build/X/**/LOADER.SYSTEM* - for f in $$(grep '^....1' res/GAMES.CONF | awk '!/^$$|^#/' | awk -F, '/,/ { print $$2 }' | awk -F= '{ print $$1 }'); do mv build/X/"$$(basename $$f)"/"$$(basename $$f)"* build/X.INDEXED/; rm -rf build/X/"$$(basename $$f)"; done + for f in $$(grep '^....1' build/GAMES.CONF | awk '!/^$$|^#/' | awk -F, '/,/ { print $$2 }' | awk -F= '{ print $$1 }'); do mv build/X/"$$(basename $$f)"/"$$(basename $$f)"* build/X.INDEXED/; rm -rf build/X/"$$(basename $$f)"; done (for f in build/X.INDEXED/*; do echo "$$(basename $$f)"; done) | bin/buildindexedfile.sh -a -p build/TOTAL.DATA build/X.INDEXED > build/XSINGLE.IDX index: preconditions md asmfx asmprelaunch asmdemo compress extract @@ -88,14 +98,6 @@ index: preconditions md asmfx asmprelaunch asmdemo compress extract [ -f build/index ] || (bin/converthelp.sh res/CREDITS build/CREDITS) [ -f build/index ] || $(PARALLEL) 'bin/converthelp.sh "{}" "build/GAMEHELP/{/}"' ::: res/GAMEHELP/* # -# create a version of GAMES.CONF without comments or blank lines -# - [ -f build/index ] || (awk '!/^$$|^#/' < res/GAMES.CONF > build/GAMES.CONF) -# -# create a list of all game filenames, without metadata or display names, sorted by game filename -# - [ -f build/index ] || (awk -F, '/,/ { print $$2 }' < build/GAMES.CONF | awk -F= '{ print $$1 }' | sort > build/GAMES.SORTED) -# # precompute indexed files for prelaunch # note: prelaunch must be first in TOTAL.DATA due to a hack in LoadStandardPrelaunch # note 2: these can not be padded because they are loaded at $0106 and padding would clobber the stack @@ -254,12 +256,12 @@ attract: compress bin/check-attract-mode.sh bin/generate-mini-attract-mode.sh -cache: preconditions md +cache: preconditions md gamesconf $(PARALLEL) ::: \ - 'awk -F= '"'"'/^00/ { print $$2 }'"'"' < res/GAMES.CONF | bin/buildcache.py > build/cache00.a' \ - 'awk -F= '"'"'/^0/ { print $$2 }'"'"' < res/GAMES.CONF | bin/buildcache.py > build/cache01.a' \ - 'awk -F= '"'"'/^.0/ { print $$2 }'"'"' < res/GAMES.CONF | bin/buildcache.py > build/cache10.a' \ - 'awk -F= '"'"'!/^$$|^#|^\[/ { print $$2 }'"'"' < res/GAMES.CONF | bin/buildcache.py > build/cache11.a' + 'awk -F= '"'"'/^00/ { print $$2 }'"'"' < build/GAMES.CONF | bin/buildcache.py > build/cache00.a' \ + 'awk -F= '"'"'/^0/ { print $$2 }'"'"' < build/GAMES.CONF | bin/buildcache.py > build/cache01.a' \ + 'awk -F= '"'"'/^.0/ { print $$2 }'"'"' < build/GAMES.CONF | bin/buildcache.py > build/cache10.a' \ + 'awk -F= '"'"'!/^$$|^#|^\[/ { print $$2 }'"'"' < build/GAMES.CONF | bin/buildcache.py > build/cache11.a' $(PARALLEL) ::: \ '$(ACME) -o res/CACHE00.IDX build/cache00.a' \ '$(ACME) -o res/CACHE01.IDX build/cache01.a' \ diff --git a/res/GAMES.CONF b/res/GAMES.CONF index de3ec6e..1b135a9 100755 --- a/res/GAMES.CONF +++ b/res/GAMES.CONF @@ -22,82 +22,82 @@ # A line beginning with '[' terminates the parsing # -11100,SLICKS=8bit-Slicks -01000,ANCHORMAN=Anchorman -01100,ADVANCE=Advance to Boardwalk -00001,AUTOBAHN=Autobahn -01100,BATTLE.CHESS=Battle Chess -00000,BLACK.BELT=Black Belt -00000,BOP.N.WRESTLE=Bop'n Wrestle -01100,CALI.GAMES=California Games -11000,BASEBALL=Championship Baseball -11000,CHAMP.BSKETBALL=Championship Basketball -01000,CHAMP.WRESTLE=Championship Wrestling -00001,CHECKERS=Checkers -10000,CHUCK.YEAGER=Chuck Yeager's Flight Sim -10001,CMPTR.FOOSBALL=Computer Foosball -10000,DIVE.BOMBER=Dive Bomber -10000,F15.STRK.EGL=F-15 Strike Eagle -10000,FIGHT.NIGHT=Fight Night -00000,FS2=Flight Simulator II -10001,FORMULA.1.RACER=Formula 1 Racer -00001,FOX.AND.GEESE=Fox & Geese -10001,FUJI.SPEED.WAY=Fuji Crowded Speedway -10000,GFL.FOOTBALL=GFL Championship Football -00001,GO=Go -10001,HARDBALL=Hardball -10001,HIRES.FOOTBALL=Hi-Res Football -10001,HIRES.SOCCER=Hi-Res Soccer -10001,INTL.GRAN.PRIX=International Gran Prix -10000,INTL.HOCKEY=International Hockey -00001,JUMP.PIT=Jump Pit -10000,KARATE.CHAMP=Karate Champ -00001,KONO=Kono -00001,MAGNET.MADNESS=Magnet Madness -00001,MICROGOLF=Micro Golf -00001,MICROCHESS=MicroChess -00000,MPL=Million Perfect Letters -00000,MPT=Million Perfect Tiles -00001,MIX.MATCHER=Mix Matcher -00001,MU.TORERE=Mu Torere -00001,NIMWIT=Nimwit -00001,NINE.MENS=Nine Men's Morris -10001,ONE.ON.ONE=One on One -01100,PAY.DAY=Pay Day -00001,PENSATE=Pensate -00001,PITSTOP.II=Pitstop II -00001,PLACE.BALL=Place Ball -10001,POOL=Pool -00001,REVERSI=Reversi -00001,ROCK.N.SCROLL=Rock & Scroll -00001,SEEGA=Seega -00001,SHUFFLEBOARD=Shuffleboard -00000,SKI.CRAZED=Ski Crazed -10000,SOLO.FLIGHT=Solo Flight -00000,SPDWAY.CLASSIC=Speedway Classic -01100,SS.BASEBALL=Street Sports Baseball -01100,SS.BASKETBALL=Street Sports Basketball -01100,SS.FOOTBALL=Street Sports Football -01100,SS.SOCCER=Street Sports Soccer -10000,STUNT.CAR.RACER=Stunt Car Racer -00000,SUMMER.GAMES=Summer Games -00000,SUMMER.GAMES.II=Summer Games II -00001,SUPER.HUEY=Super Huey -01000,SUPER.ICEHOCKEY=Superstar Ice Hockey -00001,TAG.TEAM=Tag Team Wrestling -11110,TEST.DRIVE=Test Drive -00000,AMER.CHALLENGE=The American Challenge -10000,THE.DAM.BUSTERS=The Dam Busters -01100,SUMMER.EDITION=The Games: Summer Edition -01100,WINTER.EDITION=The Games: Winter Edition -11100,TSN.BASEBALL=The Sporting News Baseball -10001,TOMAHAWK=Tomahawk -00000,TRACK.AND.FIELD=Track & Field -00001,WARI=Wari -00000,WINTER.GAMES=Winter Games -01100,WORLD.GAMES=World Games -01100,WIPEOUT=Wipeout -00000,WORLD.KARATE=World Karate Championship -00001,ZZFS=Zig Zag Flag Shag +11100,SLICKS=8bit-Slicks/2020 +01000,ANCHORMAN=Anchorman/1988 +01100,ADVANCE=Advance to Boardwalk/1990 +00001,AUTOBAHN=Autobahn/1981 +01100,BATTLE.CHESS=Battle Chess/1990 +00000,BLACK.BELT=Black Belt/1984 +00000,BOP.N.WRESTLE=Bop'n Wrestle/1986 +01100,CALI.GAMES=California Games/1987 +11000,BASEBALL=Championship Baseball/1986 +11000,CHAMP.BSKETBALL=Championship Basketball/1986 +01000,CHAMP.WRESTLE=Championship Wrestling/1986 +00001,CHECKERS=Checkers/1982 +10000,CHUCK.YEAGER=Chuck Yeager's Flight Sim/1987 +10001,CMPTR.FOOSBALL=Computer Foosball/1981 +10000,DIVE.BOMBER=Dive Bomber/1988 +10000,F15.STRK.EGL=F-15 Strike Eagle/1985 +10000,FIGHT.NIGHT=Fight Night/1985 +00000,FS2=Flight Simulator II/1984 +10001,FORMULA.1.RACER=Formula 1 Racer/1983 +00001,FOX.AND.GEESE=Fox & Geese/1988 +10001,FUJI.SPEED.WAY=Fuji Crowded Speedway/1983 +10000,GFL.FOOTBALL=GFL Championship Football/1987 +00001,GO=Go/1982 +10001,HARDBALL=Hardball/1985 +10001,HIRES.FOOTBALL=Hi-Res Football/1980 +10001,HIRES.SOCCER=Hi-Res Soccer/1980 +10001,INTL.GRAN.PRIX=International Gran Prix/1981 +10000,INTL.HOCKEY=International Hockey/1987 +00001,JUMP.PIT=Jump Pit/1989 +10000,KARATE.CHAMP=Karate Champ/1985 +00001,KONO=Kono/1988 +00001,MAGNET.MADNESS=Magnet Madness/1989 +00001,MICROGOLF=Micro Golf/1981 +00001,MICROCHESS=MicroChess/1978 +00000,MPL=Million Perfect Letters/2022 +00000,MPT=Million Perfect Tiles/2024 +00001,MIX.MATCHER=Mix Matcher/1988 +00001,MU.TORERE=Mu Torere/1988 +00001,NIMWIT=Nimwit/1988 +00001,NINE.MENS=Nine Men's Morris/1988 +10001,ONE.ON.ONE=One on One/1983 +01100,PAY.DAY=Pay Day/1990 +00001,PENSATE=Pensate/1983 +00001,PITSTOP.II=Pitstop II/1984 +00001,PLACE.BALL=Place Ball/1989 +10001,POOL=Pool/1981 +00001,REVERSI=Reversi/1981 +00001,ROCK.N.SCROLL=Rock & Scroll/1987 +00001,SEEGA=Seega/1988 +00001,SHUFFLEBOARD=Shuffleboard/1981 +00000,SKI.CRAZED=Ski Crazed/1987 +10000,SOLO.FLIGHT=Solo Flight/1984 +00000,SPDWAY.CLASSIC=Speedway Classic/1984 +01100,SS.BASEBALL=Street Sports Baseball/1987 +01100,SS.BASKETBALL=Street Sports Basketball/1987 +01100,SS.FOOTBALL=Street Sports Football/1988 +01100,SS.SOCCER=Street Sports Soccer/1988 +10000,STUNT.CAR.RACER=Stunt Car Racer/2023 +00000,SUMMER.GAMES=Summer Games/1984 +00000,SUMMER.GAMES.II=Summer Games II/1985 +00001,SUPER.HUEY=Super Huey/1985 +01000,SUPER.ICEHOCKEY=Superstar Ice Hockey/1988 +00001,TAG.TEAM=Tag Team Wrestling/1984 +11110,TEST.DRIVE=Test Drive/1988 +00000,AMER.CHALLENGE=The American Challenge/1986 +10000,THE.DAM.BUSTERS=The Dam Busters/1985 +01100,SUMMER.EDITION=The Games: Summer Edition/1988 +01100,WINTER.EDITION=The Games: Winter Edition/1988 +11100,TSN.BASEBALL=The Sporting News Baseball/1988 +10001,TOMAHAWK=Tomahawk/1987 +00000,TRACK.AND.FIELD=Track & Field/1984 +00001,WARI=Wari/1988 +00000,WINTER.GAMES=Winter Games/1985 +01100,WORLD.GAMES=World Games/1987 +01100,WIPEOUT=Wipeout/1989 +00000,WORLD.KARATE=World Karate Championship/1986 +00001,ZZFS=Zig Zag Flag Shag/1989 [eof]