From 6bcd50a01a3631483cbe6a4033b7f2832a6f5fda Mon Sep 17 00:00:00 2001 From: 4am Date: Wed, 12 Oct 2022 23:43:44 -0400 Subject: [PATCH] TR sync --- Makefile | 40 +++++-- res/ATTRACT.CONF | 70 ++++++------ res/CREDITS | 4 +- res/GAMES.CONF | 103 +++++++++--------- res/_FileInformation.txt | 14 +-- ...pionship baseball PRODOS (san inc pack).po | Bin 819200 -> 0 bytes res/history.md | 1 - res/notes/cover.txt | 56 ++++++++++ src/4cade.a | 3 + src/constants.a | 4 + src/glue.launch.a | 72 +++++++++++- src/hw.mockingboard.a | 24 ++++ src/hw.vbl.init.a | 17 ++- src/index/artwork.idx.a | 2 +- src/index/attract.idx.a | 4 +- src/index/cache00.idx.a | 2 +- src/index/cache01.idx.a | 2 +- src/index/cache10.idx.a | 2 +- src/index/cache11.idx.a | 2 +- src/index/count11.a | 2 +- src/index/coverfade.idx.a | 2 +- src/index/credits.idx.a | 4 +- src/index/decrunch.idx.a | 2 +- src/index/demo.idx.a | 8 ++ src/index/dfx.idx.a | 2 +- src/index/dgr.fizzle.idx.a | 2 +- src/index/dgr.idx.a | 2 +- src/index/dhgr.idx.a | 2 +- src/index/dtitle.idx.a | 2 +- src/index/fx.idx.a | 2 +- src/index/gamehelp.idx.a | 4 +- src/index/gr.fizzle.idx.a | 2 +- src/index/gr.idx.a | 2 +- src/index/helptext.idx.a | 2 +- src/index/hgr0.idx.a | 2 +- src/index/hgr1.idx.a | 2 +- src/index/hgr2.idx.a | 2 +- src/index/hgr3.idx.a | 2 +- src/index/hgr4.idx.a | 2 +- src/index/hgr5.idx.a | 2 +- src/index/hgr6.idx.a | 2 +- src/index/joystick.idx.a | 2 +- src/index/miniattract0.idx.a | 2 +- src/index/miniattract1.idx.a | 2 +- src/index/prelaunch.idx.a | 4 +- src/index/search00.idx.a | 2 +- src/index/search01.idx.a | 2 +- src/index/search10.idx.a | 2 +- src/index/search11.idx.a | 4 +- src/index/sfx.idx.a | 2 +- src/index/slideshow.idx.a | 2 +- src/index/title.idx.a | 2 +- src/index/xsingle.idx.a | 8 ++ src/macros.a | 14 ++- src/prodos.path.a | 10 +- src/textrank.a | 8 +- src/ui.attract.mode.a | 19 +++- src/ui.wait.a | 2 +- 58 files changed, 385 insertions(+), 178 deletions(-) delete mode 100644 res/dsk/championship baseball PRODOS (san inc pack).po create mode 100644 res/notes/cover.txt create mode 100644 src/index/demo.idx.a create mode 100644 src/index/xsingle.idx.a diff --git a/Makefile b/Makefile index a32e76b..a765a15 100644 --- a/Makefile +++ b/Makefile @@ -33,7 +33,7 @@ PYTHON=python3 # version 3.1.0 or later EXOMIZER=exomizer mem -q -P23 -lnone -dsk: index asmproboot asmlauncher +dsk: index asmproboot asmlauncher extract cp res/blank.hdv build/"$(DISK)" cp res/_FileInformation.txt build/ $(CADIUS) ADDFILE build/"$(DISK)" "/$(VOLUME)/" build/LAUNCHER.SYSTEM -C >>build/log @@ -56,26 +56,26 @@ dsk: index asmproboot asmlauncher $(CADIUS) ADDFILE build/"$(DISK)" "/$(VOLUME)/" "$$f" -C >>build/log; \ done for f in \ - res/DEMO \ - res/TITLE.ANIMATED \ - res/ICONS \ + res/TITLE.ANIMATED \ + res/ICONS \ build/FX \ build/PRELAUNCH; do \ rm -f "$$f"/.DS_Store; \ $(CADIUS) ADDFOLDER build/"$(DISK)" "/$(VOLUME)/$$(basename $$f)" "$$f" -C >>build/log; \ done - for i in 1 2 3 4 5 6; do \ - $(CADIUS) RENAMEFILE build/"$(DISK)" "/$(VOLUME)/DEMO/SPCARTOON.$${i}$${i}" "SPCARTOON.$${i}." >>build/log; \ - done - $(PARALLEL) '$(CADIUS) EXTRACTVOLUME {} build/X/ >>build/log' ::: res/dsk/*.po - rm -f build/X/**/.DS_Store build/X/**/PRODOS* build/X/**/LOADER.SYSTEM* $(CADIUS) CREATEFOLDER build/"$(DISK)" "/$(VOLUME)/X/" -C >>build/log for f in build/X/*; do \ $(CADIUS) ADDFOLDER build/"$(DISK)" "/$(VOLUME)/X/$$(basename $$f)" "$$f" -C >>build/log; \ done bin/changebootloader.sh build/"$(DISK)" build/proboothd -index: preconditions md asmfx asmprelaunch compress +extract: preconditions md + $(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 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 # # precompute binary data structure for mega-attract mode configuration file # @@ -156,6 +156,19 @@ index: preconditions md asmfx asmprelaunch compress # [ -f build/index ] || ((for f in res/ARTWORK.SHR/*; do echo "$$(basename $$f)"; done) | bin/buildindexedfile.sh -a build/TOTAL.DATA res/ARTWORK.SHR > build/ARTWORK.IDX) # +# precompute indexed files for demo launchers +# note: these can not be padded because some of them are loaded too close to $C000 +# + [ -f build/index ] || ((for f in build/DEMO/*; do echo "$$(basename $$f)"; done) | bin/buildindexedfile.sh -a build/TOTAL.DATA build/DEMO > build/DEMO.IDX) + [ -f build/index ] || bin/addfile.sh build/DEMO.IDX build/TOTAL.DATA > src/index/demo.idx.a + +# +# precompute indexed files for single-load game binaries +# note: these can be padded because they are loaded at a time when all of main memory is clobber-able +# + [ -f build/index ] || ((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) + [ -f build/index ] || bin/addfile.sh build/XSINGLE.IDX build/TOTAL.DATA > src/index/xsingle.idx.a +# # create search indexes for each variation of (game-requires-joystick) X (game-requires-128K) # in the form of OKVS data structures, plus game counts in the form of source files # @@ -210,10 +223,13 @@ index: preconditions md asmfx asmprelaunch compress [ -f build/index ] || bin/addfile.sh res/JOYSTICK build/TOTAL.DATA > src/index/joystick.idx.a touch build/index -asmlauncher: md +asmlauncher: preconditions md $(ACME) -DBUILDNUMBER=`git rev-list --count HEAD` src/4cade.a 2>build/relbase.log $(ACME) -r build/4cade.lst -DBUILDNUMBER=`git rev-list --count HEAD` -DRELBASE=`cat build/relbase.log | grep "RELBASE =" | cut -d"=" -f2 | cut -d"(" -f2 | cut -d")" -f1` src/4cade.a +asmdemo: preconditions md + $(PARALLEL) 'if grep -q "^!to" "{}"; then $(ACME) "{}"; fi' ::: src/demo/*.a + asmfx: preconditions md $(PARALLEL) 'if grep -q "^!to" "{}"; then $(ACME) "{}"; fi' ::: src/fx/*.a @@ -254,7 +270,7 @@ mount: dsk osascript bin/V2Make.scpt "`pwd`" bin/4cade.vii build/"$(DISK)" md: - mkdir -p build/X build/FX.INDEXED build/FX build/PRELAUNCH.INDEXED build/PRELAUNCH build/ATTRACT build/SS build/GAMEHELP + mkdir -p build/X build/X.INDEXED build/FX build/FX.INDEXED build/PRELAUNCH build/PRELAUNCH.INDEXED build/ATTRACT build/SS build/GAMEHELP build/DEMO touch build/log clean: diff --git a/res/ATTRACT.CONF b/res/ATTRACT.CONF index 2cdfb9d..1b46b38 100644 --- a/res/ATTRACT.CONF +++ b/res/ATTRACT.CONF @@ -1,7 +1,40 @@ +# +# Mega-Attract-Mode configuration file +# +# Mega-Attract-Mode is split into modules. Each module can be a short +# slideshow, a self-running demo (like a game's built-in 'attract mode'), or +# even just a single screenshot. 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. +# +# The same format is used by the per-game attract mode configuration files. +# +# Format: +# key=value +# +# |key| must be unique within this file +# +# |value| must be one of +# 0 = self-running demo (|key| is an executable binary file in /DEMO/) +# 1 = HGR title slideshow (|key| is a file in /SS/ containing files in /TITLE.HGR/) +# 2 = HGR action slideshow (|key| is a file in /SS/ containing files in /ACTION.HGR/) +# 3 = DHGR title slideshow (|key| is a file in /SS/ containing files in /TITLE.DHGR/) +# 4 = DHGR action slideshow (|key| is a file in /SS/ containing files in /ACTION.DHGR/) +# 5 = SHR box art slideshow (|key| is a file in /SS/ containing files in /ARTWORK.SHR/) +# 6 = GR action slideshow (|key| is a file in /SS/ containing files in /ACTION.GR/) +# A = single HGR file (|key| is arbitrary path from program root directory) +# B = single DHGR file (|key| is arbitrary path from program root directory) +# C = single SHR file (|key| is arbitrary path from program root directory) +# D = single GR file (|key| is arbitrary path from program root directory) +# +# Blank lines and lines beginning with '#' are ignored (like this one!) +# A line beginning with '[' terminates the parsing +# + #set 1 FAVORITES.CONF=1 ACTCOMPIL.CONF=2 -FORMULA.1.RACER=0 +#FORMULA.1.RACER=0 DHGR1.CONF=3 ACTNZ.CONF=2 CATBOXING.CONF=1 @@ -11,7 +44,7 @@ SHR1.CONF=5 #set 2 TITLENZ.CONF=1 ACTKARATE.CONF=2 -TRACK.AND.FIELD=0 +#TRACK.AND.FIELD=0 ACTDHGR3.CONF=4 ACTWINGAM.CONF=2 CATBASEB.CONF=1 @@ -69,36 +102,3 @@ TITLEABC.CONF=1 CATWRESTLE.CONF=1 [eof] - -# -# Mega-Attract-Mode configuration file -# -# Mega-Attract-Mode is split into modules. Each module can be a short -# slideshow, a self-running demo (like a game's built-in 'attract mode'), or -# even just a single screenshot. 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. -# -# The same format is used by the per-game attract mode configuration files. -# -# Format: -# key=value -# -# |key| must be unique within this file -# -# |value| must be one of -# 0 = self-running demo (|key| is an executable binary file in /DEMO/) -# 1 = HGR title slideshow (|key| is a file in /SS/ containing files in /TITLE.HGR/) -# 2 = HGR action slideshow (|key| is a file in /SS/ containing files in /ACTION.HGR/) -# 3 = DHGR title slideshow (|key| is a file in /SS/ containing files in /TITLE.DHGR/) -# 4 = DHGR action slideshow (|key| is a file in /SS/ containing files in /ACTION.DHGR/) -# 5 = SHR box art slideshow (|key| is a file in /SS/ containing files in /ARTWORK.SHR/) -# 6 = GR action slideshow (|key| is a file in /SS/ containing files in /ACTION.GR/) -# A = single HGR file (|key| is arbitrary path from program root directory) -# B = single DHGR file (|key| is arbitrary path from program root directory) -# C = single SHR file (|key| is arbitrary path from program root directory) -# D = single GR file (|key| is arbitrary path from program root directory) -# -# Blank lines and lines beginning with '#' are ignored (like this one!) -# A line beginning with '[' terminates the parsing -# diff --git a/res/CREDITS b/res/CREDITS index 42013f1..088e543 100644 --- a/res/CREDITS +++ b/res/CREDITS @@ -2,7 +2,7 @@ ~ - revision 01 / serial number 20210216 + revision 01 / serial number 20221012 ~ @@ -21,5 +21,5 @@ ports & rwts * * * * * * * * * * *qkumba - archive.org/details/TotalReplay + archive.org/details/TotalReplay2 [eof] diff --git a/res/GAMES.CONF b/res/GAMES.CONF index 6c6a25d..073b265 100755 --- a/res/GAMES.CONF +++ b/res/GAMES.CONF @@ -1,54 +1,8 @@ -0000,AUTOBAHN=Autobahn -0110,BATTLE.CHESS=Battle Chess -0000,BLACK.BELT=Black Belt -0000,BOP.N.WRESTLE=Bop'n Wrestle -0110,CALI.GAMES=California Games -1100,BASEBALL=Championship Baseball -1100,CHAMP.BSKETBALL=Championship Basketball -0100,CHAMP.WRESTLE=Championship Wrestling -1000,CMPTR.FOOSBALL=Computer Foosball -1000,DIVE.BOMBER=Dive Bomber -1000,FIGHT.NIGHT=Fight Night -0000,FS2=Flight Simulator II -1000,FORMULA.1.RACER=Formula 1 Racer -1000,FUJI.SPEED.WAY=Fuji Crowded Speedway -1000,HARDBALL=Hardball -1000,INTL.GRAN.PRIX=International Gran Prix -1000,INTL.HOCKEY=International Hockey -1000,KARATE.CHAMP=Karate Champ -1000,ONE.ON.ONE=One on One -1000,POOL=Pool -0000,SHUFFLEBOARD=Shuffleboard -0000,SKI.CRAZED=Ski Crazed -1000,SOLO.FLIGHT=Solo Flight -0000,SPDWAY.CLASSIC=Speedway Classic -0110,SS.BASEBALL=Street Sports Baseball -0110,SS.BASKETBALL=Street Sports Basketball -0110,SS.FOOTBALL=Street Sports Football -0110,SS.SOCCER=Street Sports Soccer -0000,SUMMER.GAMES=Summer Games -0000,SUMMER.GAMES.II=Summer Games II -0000,SUPER.HUEY=Super Huey -0100,SUPER.ICEHOCKEY=Superstar Ice Hockey -0000,TAG.TEAM=Tag Team Wrestling -1111,TEST.DRIVE=Test Drive -0000,AMER.CHALLENGE=The American Challenge -1000,THE.DAM.BUSTERS=The Dam Busters -0110,SUMMER.EDITION=The Games: Summer Edition -0110,WINTER.EDITION=The Games: Winter Edition -1000,TOMAHAWK=Tomahawk -0000,TRACK.AND.FIELD=Track & Field -0000,WINTER.GAMES=Winter Games -0110,WORLD.GAMES=World Games -0000,WORLD.KARATE=World Karate Championship - -[eof] - # # Master game list # # Format: -# ABCD,directory=name +# ABCDE,directory=name # # A=1 if game requires joystick, 0 if playable on keyboard # B=1 if game requires 128K, 0 if playable on 64K @@ -58,11 +12,58 @@ # 1=infinite lives # 2=infinite weapons # 3=infinite lives & weapons -# 4=invincibility -# 5=has in-game cheats -# -# if no name, it will be calculated from the directory when we need to display it +# 4=infinite lives & time +# 5=infinite time +# 6=invincibility +# 7=has in-game cheats +# E=1 if game is single-load and can be stored in TOTAL.DATA # # all other values for A -> ignore entire line (allows inline comments) # A line beginning with '[' terminates the parsing # + +00000,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 +10000,CMPTR.FOOSBALL=Computer Foosball +10000,DIVE.BOMBER=Dive Bomber +10000,FIGHT.NIGHT=Fight Night +00000,FS2=Flight Simulator II +10000,FORMULA.1.RACER=Formula 1 Racer +10000,FUJI.SPEED.WAY=Fuji Crowded Speedway +10000,HARDBALL=Hardball +10000,INTL.GRAN.PRIX=International Gran Prix +10000,INTL.HOCKEY=International Hockey +10000,KARATE.CHAMP=Karate Champ +10000,ONE.ON.ONE=One on One +10000,POOL=Pool +00000,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 +00000,SUMMER.GAMES=Summer Games +00000,SUMMER.GAMES.II=Summer Games II +00000,SUPER.HUEY=Super Huey +01000,SUPER.ICEHOCKEY=Superstar Ice Hockey +00000,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 +10000,TOMAHAWK=Tomahawk +00000,TRACK.AND.FIELD=Track & Field +00000,WINTER.GAMES=Winter Games +01100,WORLD.GAMES=World Games +00000,WORLD.KARATE=World Karate Championship + +[eof] diff --git a/res/_FileInformation.txt b/res/_FileInformation.txt index 634f205..e2a0301 100644 --- a/res/_FileInformation.txt +++ b/res/_FileInformation.txt @@ -1,17 +1,7 @@ # This file is maintained by hand LAUNCHER.SYSTEM=Type(FF),AuxType(2000),Access(C3) -PREFS.CONF=Type(04),AuxType(8000),Access(C3) -GAMES.CONF=Type(04),AuxType(8000),Access(C3) -ATTRACT.CONF=Type(04),AuxType(8000),Access(C3) -FX.CONF=Type(04),AuxType(8000),Access(C3) -DFX.CONF=Type(04),AuxType(8000),Access(C3) -COVER=Type(06),AuxType(2000),Access(C3) -TITLE=Type(06),AuxType(2000),Access(C3) -HELP=Type(06),AuxType(2000),Access(C3) -CREDITS=Type(04),AuxType(8000),Access(C3) -HELPTEXT=Type(04),AuxType(8000),Access(C3) -DECRUNCH=Type(06),AuxType(0200),Access(C3) -JOYSTICK=Type(06),AuxType(0800),Access(C3) +TOTAL.DATA=Type(06),AuxType(0000),Access(C3) +PREFS.CONF=Type(04),AuxType(0000),Access(C3) Finder.Data=Type(C9),AuxType(0000),Access(E7) Finder.Root=Type(C9),AuxType(0000),Access(E7) diff --git a/res/dsk/championship baseball PRODOS (san inc pack).po b/res/dsk/championship baseball PRODOS (san inc pack).po deleted file mode 100644 index be3f46c39e05342656449cbc41e9c6cb4cadaf07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 819200 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

-4b5D^v4JJ?Ilz9N3U^A znx1OfY}&y3zN21T(nylUAzbP92a5E_q@rCA@4@Z5BPj+0ij`WMh?p*l=sp2}e36B+#g3pzbXe|>LS&jIJpe%WF%XVA*|XI}mNF(ET^|EeENA zPd~f%p8xom1=IGgcUnGq-WB)rnK26{wR-oZQ{UvH->=g*ZhXRqEqb7J*+>5c`=8FO7sr##H4hwJ{r*{4+3@!bGTe>sB`0=nKIzY?%|S^wH+&5 zm!wEAe$mx>+xm&O7M|?3$(6p{DY(7moYD(tmM(J@ZFb$`=-#W@$?*&7g_N&tVKHUa z;El74UoAQRK-Brt<4;X!L9e9v^;YE88nA-Ym}iSnyX~im&Ig?>2%Dlhvgj zOB6nf4|4l&Hypn^?(~jM{3(v9h5NSb=rw4K-+j&gnbWo`G&vL^cUh9CRD|DdVf%i- zhZRN?pn3KZ};xE2m3@gHaH-+Uux0xRPW)f8dT1oxH@}n@C4V(?wpB@ z(wFTjtG0f-YQp%=NrJ=qe_q%tI~aJ+XU(=Tg-zVexJlGKQ@@PRzL`q1J{OwCp6)jJ z)$m45KgHh?q?bOJeQxN3317Y)sVd=)H+<@#&RyT~(A>k#t3F+rZWX%i(x@FhF6X<< zocyNWyNrt>ljd2I7Vb%HNza+iU9|r1Nqdh?$u2GDHZihZ(EovIcfErAJF)Hmh*7`q zbwFLONBh#f?X4z_o;RlD<6T?4yc6FIGdaA=EBCDHwRY1Q%J&DJ`t<(7v0-Z2*4_(4 zB=@(EJkb2C=X!I2?O!KbCQg)&T|N8r>^G9Bv5VE6?Lu2A$4&BaNE9SA+%V_Fis-#3 zzh{4$dZ{Sw&Fiq`0YmOqyy{@I!{y@GGWD3>{|siT7Un$Ad{}qAu`D}G5I8sSWS>Q+ z2G6YbH?zfU-(Gp#n1_Ga-A?H9Xx#YUubZBf2DbjZdDD>C7>jA~4i<~Tsw@}0(6~Nm zJ8Vsh{(CkrP7mjlx*jlTe(CzmS-%w>b&35Xb#iYUeLQdHi%Q-;{}BgMvk&iY`f)U8 z%MQ`G%)mwF4(%tLv+QR*^1$@gQ*CCqvY(r>GRWqoAAgG7;!gLI?cdBTu4mG|iG}U+ z)@~a*u9!GCb9(r|6K@P(w@6P$!44w#_VOfATJRnp66@QE9{bR|7&L{`ZdX6oVm7*0R&dB4-FrmZdE-8XRvXJC$s{w%G1fE zCdxC(8FM2W$vs{hC&ZbiykcmM0rppzGR2x)VJDQ4RGw@W9WJ)SaG!Yd*KU*P@s&4$O2m16iHDrF7 z@l|kC*nu#Di+v}8l1M`8z8w)pWs-VLnI`&s*;f!wrXo5q5iiso#k<*T9r~659I-Y2 zKa|*44D4I`bA!ZGfY{n!EH()uee%^J0Q%88@dgT>9C?cGRA@!@1AT4~m+}*fErmcI=$ZsrQhZ2#f=q%&VFz^d6~UC^@(n^Mnra<} zBz|&y|8`L$0ZoD7*VaDBu6&?)Qe4|skG@93p@f!xCR9LuDhS?m_UBT3AHFr^2mdV! zFVXV#>4St7!4e%-W%eK9wLiX*0ZdnYyO>`hrD~`j$yO-wnxD`Io`Xt>i1kiB9s&9# z@k+6n?fHk2$}I^WWRe=b2a3gabiE;|WbegN`o)Wg(xOv^5yuN}?Yk3Pa6S0cMb(|6 zB2`3Hl_dG==g;&;kPaK76ekqHbua*>yi59!aOvUbI70tpuBPbHrQ}OQvDhB{cqUjS z5-s-sI??0vUuKaGV3X8ZzasnjMq>Zj_^ci3w3-DiOLX=h4WspA581M=XLam{wb)c(E~lH z>eJW!OU_B9uhzeXA;oB7^-@WgN}=!dphn7;HD#Bs?JEWQ2lI9oeTBFwQcn1U;TIFuf6h0Flbb*rk%MV zURKxsuw8Tk+P|!3Y-;-Xjb{6{m=3G z(f+lJB0;VFOEnK`>>s8=7X3Anl;j`Fw=QL_!$o0|OoevoP)An!^kM!1-Cqt<0X3hU ze}rQ3V6m7>!8FXbztufTT+ zVYpxtg5yXG+p-RQ%K*OEk^{t`8)W|Fh<`Aj&wu59O={O41shc`|7!;u{K<`F-f1;7bhM%+-!Fmv>r1AX)IHF( zsMSA|L#R#|KTkLLadh?{@I|v%0`q_Mel4ay#NxW^4`Tl>HlqD+0sD_Y`-k~|uWHMS z7hwNYlFeT~S5?*8|6Qk-`EyIEq%=;A#4A9?nqybZ&zWR`JcUvsQ(ABY@}Fg))k zIe0l4R8I>>NbOO5=kVv?g5)d(s9+)}EUGMcfD72m`#7Vtkc7MP-VpoE&A*dL5PM}MGyriB}VYVJR(fc|BPcG}5SJS+~} zkgw&iwg=IYs!RDA*$?nDb;?Bf*i*oMT>;k35|R(oK`@mV!->WIy;^foQYBLr>+D|< zwDx`-ypl_WZ{-^|gZ-aC```Y<{I3eGNS4bV)!Kg+SpPrlzaT;%XGruRR`0UG{x7}% zc77j>!B58>uEGwxhx59wTt2w7&=Tz5BY>K3jP~!vn;!u7zl{2Y{cHZ!G7Rh==lHnn zu!QW5pm#`yIsjK2LS@j~(-WO`lv$k+pnrFss$i zv#a!G-!O_4So)gp-;R`iM!OGz^#^fG*i{HRdu2XRd@uV!{4@Iu6ycBNrvAi&;<^MrFea1lA`KOyH1_ z9@gPsV+j-gC~g4wp8#9~SW`l=j|HUvy#H57C~7CMzf3Y7sS<*e#aVOy_-!xV0>FSHKADmIv&cJ&7YgqgD;fwu22-^97j+hhlv-uxIe?^B=@lFAAQ%y;iBlf=!=GB@S z?HqaJObtYje$>xwULOX_Fzxg&5lcYvvFBkA-)p`|s!~*nEjmo!f^<1Hh57%j{1mZ&T>ppvVE?y* zp;|7lwf}6zwHlcq29%4WAOieQjc&(+{j+Vr{?FxAp5GD%U8!?bZ6EM@u>X~_{Q7qG zh56rqv49gq>|e;6zZmR)=`Zac=3g&=f1Xe`|AI}_1YcGlMBle3ph3a7KQ6;NUTsIo z|1C%;(vy<%FPiNRNQvgVMp0UY_Fo{o7A7H-v?pzA9SG@@`){=WSw#Q+$^IMIKWl$JZHLyi{}5vT znXs%6|HU{|$As;pB;GrL^$>UwjP$8K@c_9OwD&`G>BG&oFWA2&<Zj7J{`NgWffw{w3cvnwniTmTT?*kLr4>qn{dj*TkCL)Y4ghXjCaxn~zIXcZGU# z-3`s9$}hoHDVeqQpY5Z=$flB07tfbIgZ2M2Z~_G{!Z+X9S8#pb-ixZsMMZbW{@*Rw z|2qYv!v>h0bW(yfEC$%3 z{p0!{W`Ev%0oeayvi?W(BJhbHh6Z_|=z}yhiwHqwH=!AhIk) z4BP=^lY9+wZL8`OHF$6y4xmK0x_cl62LOs2%(kgZ--{Can)r)-VDcyHe=5k@TKFsb zze^Yji%s1g6<4DpTFPus0=|9UCqetyvp}2$kC0t((ngQI2G>76u<{V|E&Y6i?D}Up ztb8o}ErYm0{ZRpQ{3|5zdPa@UIg(u*u(l3mf}7ZXNpP+Gr?BgeGkS8;(Kpd${&gy3 zsYu}^1+;(A1ag#v`qs676!O0lbmXGqUhVf_J#=mFz8IAH&;v(SD1oH_Nme!V>Wsrg=D{$&5J1?>L~ZUIdIHyiZrUkvx(hAq(k=Lh)y zVE-`x6G9;Q3!wI3S>Xxqst70q?G6sI3rHYn|65r5mzJxbv;RDPLSI8X&CgFT|ARW~ z?EebE7be-O(*qViJ_jT@wErsd{4FFYIlpYIpEtxn0~2Pc>JP;Kgmw3(?W0l731?a_^By){swy=+WimjUp{}!Qq;`8 z*>F!EB(8h^i&UcDxHy+y611NN;Df2 zo=GK?j;}-Fng7r1KQ$pZf!1Nur8$>$IZR_W9k|9SKRkacdmn-JUn^PtmXIgo`d{0> zZulu88MqFuU!uJM3CV;T4$K2gS5ML!`-e#cmFp)5OTPyF51E>+e+fl>;oj8zsS)&h zDrl1<@XQg+$Pp}pbFN@>uHb8qV0W(IY_6a(PhgNQnEp!8;hDfCUobykU{)fC&KFPx zg8pTKdF6uN3O4WFB#)&|>@M7$X;3K7&>ZIoJ}#9c`U+BTPNSNhOUQHq0nm8ZDCU zGB-DO*oA-dqvLluS)18Ncct(RqM~nPX5DU`W&@j$0WnNCq{G1zBl>knfo+G3R_k&F0 z2rh~`>SwrXnY+m^r3lLpidOIX0(ql1|ov3jqY}6wqq>EK}JW z)9tfOWpho1luLR6bn!-kGNVA4NV&{bxf>)}$-d+$DV0^zSmVcUb4raut*YG3n6eyM zb&iXbN?D!L;7g7$I`n>7>dRP@dPYWOW?<;DNx9o6=Y~(oO{8Q~bK~F2ymI5;$@=6f zC*_*EPOXW&1(d8uu5xPb0yA09+*m5kl+kEL95R(@G`vK^C4F+?lJpyy#f5L-!lcQ$ zN2la!Ii_4%sH}_uyEIqmvGjU@i!|50B2fZG8KsgLsAPt!%~6X>O{v7u9z$MpGQW!8 zRB0m%w zo+oh1OKc$fl$U5I-JSSQDt9T*vuXs?%kyGwK@%(TZhy)Xw8$fBS&|1Y-88!!pV=Vc z#BNB8Lo+J{1M_ZIOlJK(!9(Ho-nrYiQNgIq2V9%2=T`(@yJ*zye#i%Ssp_@ zmJVX5C(^<1%ktt6NC(6pBrPI2!oq`v2XBAO%Y0m?nLv~WN=?G%0hnW1cHDkU`YL)`1we5E=+(=e_)Hh**crb9s6VDo`Z*bN)%BDPPa zDI11Lp($Hv&tjY`r0Vq(Oc>a&@A#o329GlzJ8*zD>o0RHU`fS!#ug}D3rY>+++qu~ zn2oiV>tY!_v<8bdTfg6M*U^H$Qw9wkC>UTeZuHop;|GpY$}c%p4Lx3J56YQd;Geid z_Fa=$09KQDT{bfpa>88MI+g4cB3bl{?Z3YW-}&Og<`yo~%-p#)Gjf&orlnkg|BFNumtkgBMi#@& z5*x|R6)KcQ+>FvpBe1@X+?4Z$F{6u8ZWhMODN4yJj9F8Z@}V$hYf*|}QOusAl;%Y- z$BI&%i(;-6rSvI^$u3HvxH0DoQyOz)ZWg9EaAWccZ&>}s4w7=C3jgv7ox~a4G8-w+ z7xESu$<7xlZ<5T-LS;Tyb%!d3K$t@1Et0uam~^fXs5^->O%pYMACTX$dJn)vDn?xt z^Q8#C(+awqJEthq6fVhKQ&ei4r!LCFHu=~_U1TK&{ZAnHN<|*8Ik86O z4hf-|)e9);;rN6Fd{Sqge7=y`_bTQ?A=9yN0hM7AY4rUA&@(q*V32U)aEygI9nQAo z+>M+EtHC=Rj&Uvu1PK`yVRfIPK#*MXA_4Op#b!tZ*}Uim%mLk>A3aydKxbCT6*r($ z?hBZ$MY&sxB29Dm6h+n(7`;f@TJ(5N(ebv-oFd=`;K#J^IYp0;6&**e1RgJ#4~4lO z3Zd2zYdu~7oyUen$6GNVgPRC%u7%$$eB8X~I2W$EVHFXYxhal9QE+W`y?A@B@HkhU zS*n!|*T(4O4XbkHHWmCK>ux7 zK+zc~_R&%de2El;UZz;6Ws;XEwrW}M%am?v*~XVCgVnN4FKc@uJpvt(9)*6KI1;1L zOxI}oXf$JvL>+++y(1mUh7N6?_KFq3lArR3T3l+c)zCK39~kq@rqHEpCn605V%~f zAp|2MBV!0ACMKp3%*@PSkzii0UcLGd8Z>BN0m0JJ(h5Suh7B7*XxzAQ69`S4Hf;u> zdGqEx2rXK)XbGWJt5&Tcv}x0(Ed*<8Ya0l*wzhT<+O=!f9)i8Sy#s^}9Xe13hQ=JO z(f>aZ&A$~;eE)aDztt`B-0=Tyzy6one<15%dX5cGgEg7CI&9h~A_B79) z;W^PfCx+LF=5=CtooQZYhS#0ub!T|JXkIUd*N5iyVdS>7+?J8s({g)8?nKL-7{oi{abSd|QTZPxI{=z7x%NV)&hCekX?CndWz9_}yuK zcZT1K=J#UweQ16kMrBK@Y#Eh3t+HoSPPEF2QFWqKofuVTTGg3Rb*EL`8C5S@)r(Q} zp;dhtz8%fCWB3j<-+|#f(|l)!?@IGs8GaX<--Y4#p!q!*es7xJo8f!Yd~Zf&N2}}@ zl>@DEU{ubu%9&BQ(kfR*)rD4dVN^Y6RS!nhn^yH^RNl18o8h;k`Ry2f2b$l3;di9@ z9T~nG&39w?U1@$-hToIs_hk5W-HlOu&}t7x?M17- z7?CY4vSmc}w8)+jIng2~M%0NGbz(%FX;EiJ)SVV}XGFbdQ7=Z+hZgl=)V8$RmQmZ& zYI{cQM5~<`bthWgiBWf^)two2cUs+@QTL+Ny%=>LTHS{c+0i09M&v+?92k)^Eplc= zuC&ON5p|(OT^LahTGWFP^`=F=8IdT4=wUx)a__>J4W4sR(D|39cgt(M(swc-57OOTHTdV_oUT58MP;^_GHvPwAu%@ zXap@vU@<358fuow5xQ(s!CywhNZ5>kyY_C?GN%fedxdO&8PmO5=3F7`Tp^1qi!Xz>S-Pr6+~zhsp&;+9i%U>RJJV z%UjZ^LKa#M1H6EeZ7qjR)#7;XT5;Q@BJ%;O9iUnjDyKO%6=G$$`KB>_HAp z1IXb4Fh6oY%JIhoN)$(k2c}#JhxJNnQ*NSwq;0jqOpgi#FMLL=2q=9n5uNkqjsT~B&;n$7W zA*mx5lo32$g~J=*b>#!H;soIV5+m}el@rR08-RySZng44*_rs`p_5;&+)##=et78Q zSSvr2rL_fF6oA6;ta;OyF^M{jRk+O9)Kx2`=seRQc!d-ghAs=H2? z>aN3-GG1@;$#ki?y58&tITjPGG8+zSoZ7^@+4<&OS{!ZZ&^oqFOKThBrwXTTyx3Tq z?Q>=33*@qT3&QX}J-NIE+zexwB#p4bY=KV3L{M=0Ps@(lkf06!X?e6ZWNO2ITGq)+ zm+IuDOZDZ3^4G~*m+G$5rMl~M>HpW)6L}liz^7Fpa)t09l+u1T$OgV)1JPIuvxKz1 zUTgz-{4S908#?%%4ADrAxju0^d`??|*Q_01MJav5@2m4B>SmACSTnGa4d%SA{Et0`x`q-4TN|0CQ(y zT!3?VdT|;)Bxb)YVhK2rUoOzpeRl-E?}B*(L%4o~_83sk_?;CKKJ*!Ikut&-vvNk* zkKa4N@2pr0wQ>cV_^lK2%@d$cWDU46B`~0GtskL126I09ofRBgu25U%!#9j3v!Cxl z*pK6j-&yg2Ha?gFP9JOobVwOtfE)7!hH(7|?Jc-$>(e+F{XeM#7cN3WrP84%%dE{KSpSe0aS{7uE+~gg1QG4Wc+@bNZPu#>t(&|L9 z^h@HkA+W#yHIAFyCorn|hE-MA5SzY%v7GR>;uF;h8$qB*1izeXYFNL44RuKp7Z_8Om!&O#aR9`aRl~TpUP*9mVAFsy(HJOh}-;nI4uNmf< zH&d{whqL|Hp$ggMz(gv6?i-k{nw(iBvO9q926GF;`Iz!8ud0zcKURHBXaOI&lCdO;_uM_d8c(lg5n zzud@tFSrvlL_Q>JNW6jUY9KrVgvacuf$`j7vTK3EWN8quBUF|i7;h-cfUN8Wz;0sZ z7G(YogvU--0%OgUR|0!o4WzFIhFX1st|&U)2$X8VI^7B!sF7-vHv&m+L`L9<8-XKk z1&+81wMrywy6!67yR9J9zVKqFR z{}Nw)?Q7oEqJtZ`&gmV zz+nrW`;Hk?oW2R3k~D7YnUz^8wi-Q}#n(_GY0vjFG2!03=V4{T;TRc3HkD5>9Y22b zXg)tUI8rK^5xqxh8XO#a`SN9nRivb)ich%@$q9*ze-#q4#k@(=O)suO&*IJor?ME~ z{drS!)8Z>ue9FN5sI!TqjU*%_EKK6Bhz#R};4fRKB6p^zr$2ArVN-DMx2h^ta6%+| zshLC)w)c^WGHRMI!Fc>=ey}uJBF%0REtLjKRFW+FPO)(ZWA|LVXhYc;NF>K8V~NB@ zLKz%&HiWfGh-ACM68?Rsz-7up0|Upz#9+yl)7S(g2>6V~^QquyNmOt_{}Fu`y%C6P+x+2+ykZ-IkUoW9g}6&0%` zwnt$K#9|$t6+2XvT!(&NwlSh_U!bCPYVjUW7=}nxPAbY|!h{I~EV;9!X_2|kniP%<)`$;y@t&*nbNEmu(nlCV<>2*nqYjz~Ne+{A;4`wvDjsZlWp zqYM%c(uoR*hr;AY(uHDZ1f9<2mIIC+*+yCS(&N&Do#H~d>G!fET?jgPHYZy}omLnU zY;Fob5ZpB?)!<;Fq@%(RksMTT081*1#W9-;SYE}28f`rsad_)HEw1(i*J*+)Q;W+M zag|4<8om7d_4CVb1m`CfrHY^|ASl%YV|iTYnXU0~#;!dg*fI&Ww=A|S#b-dU<3_T= z;Kq*6sZr3sWENKr!S$8kO3pU8myUhf8Xuhn5{=&q7&+-60TA3iO%Q%U zgzr+LU;roRyso2)||!g=Xrkr=l}fQbMmHLGuN(9ydGrOI1mU17Y|-%Z+hdoqun1Ta=O}r#=o#G=!7+M zin7l}$vSmtWbX?zS#M3HgZhKix3|~k)jidE^40br_*nY9AXcoZI`ZagJzr0TX3vT& zYl&u0hm9oW3^X2n?u|{|{SC7Q-paT?F~xl-Q4sv7zu}dJ{!9i9{fz_vPRt9EsHnU6 z$;KNO92q@P5~TlZ@ddL=%U7SvX)-;pxpVKy)|bwl-ql_kgr82Rc{;_n((^j&+G}4t zbLRP(+%C%GR@vO#u%qGd;lJK=|1HNu$x!~16x6k0)ji zBnHM3`Q05e>9q#GF_X5TYd4|6{}XPx_7+()CJ=ojE|3>7#dE$b1MDOJ0o4`ys0Xl+8Z?cRq0Dp!+WPS zJ2s_KsdOqe9IRnF*c$r}>~9^pWGIy>VncKDAENb*C1YPIzPcciJ31O$wzMJ{DqQ=k zn*KG_3+m_2Z5+y*9h4Nk`zzb-`11Uv#nF528Q%ZVCx74c$;82f2mds+E6>$9wTmwK zw7f)OVq$ps4^7-o*Tobyv^Sx7zi)POb%3t%%A8uQ*>bxJXUQ=}Y{p%k(b9kh6 zs$)M__~k+4%oN@kJn$ZV=cD>`c>jUz?{8h$G8ziS&Q*e)G_omwJ18gJCl@ zaXMxexTAagvrD@x5&qZHJ9Z8(>PuEs1SoMwXFKI2xS#s0i!-o$I?@Q;L?fUKQujZZY_|E2;>aPf@uZ$NpZ5&89 zwC3KrF6TtuiLsj0Ow{=Il6!W<>t`Y-W6R>PhmVaVpIhAetto+(1zb# z^vEL@EnXbUDlDuGPxV7zG&__THHQ*8!S~ECYW~ZXtjxAS(iCio=={ z6lJg6ml~WpLSCPq*nR11re<4p^jNy1eRxY|q`rM^c}M^0!Rs4RhyFHg-kP diff --git a/res/history.md b/res/history.md index 198c42b..b6ce5d5 100644 --- a/res/history.md +++ b/res/history.md @@ -3,7 +3,6 @@ ## New games - Autobahn -- Championship Baseball - Championship Basketball - Championship Wrestling - Computer Foosball diff --git a/res/notes/cover.txt b/res/notes/cover.txt new file mode 100644 index 0000000..6d46f91 --- /dev/null +++ b/res/notes/cover.txt @@ -0,0 +1,56 @@ +GOLF- +POOL- +CHESS-- +SOCCER- +BOXING- +DIVING- +FLYING- +HOCKEY- +KARATE- +RACING-- +SKIING- +TENNIS- +RUNNING- +SKATING- +SURFING- +ARCHERY- +SAILING--- +CHECKERS-- +BASEBALL-- +FOOSBALL-- +WRESTLING- +BILLIARDS- +POLEVAULT- +BICYCLING +BASKETBALL- +GYMNASTICS +SHUFFLEBOARD- +KAYAKING- +SWIMMING- +SHOTPUT + +.0123456789012345678901234567890123456789 +0B A S E B A L L S H U F F L E B O A R D +1 S A I L I N G W R E S T L I N G G O L F +2C H E S S S O C C E R B I L L I A R D S +3 S W I M M I N G H O C K E Y K A R A T E +4C H E C K E R S S K I I N G R A C I N G +5 P O O L B A S K E T B A L L F L Y I N G +6G Y M N A S T I C S E Q U E S T R I A N +7 P O L E V A U L T D I V I N G C H E S S +8T E N N I S B O X I N G K A Y A K I N G +9 R A C I N G I N S T A N T S A I L I N G +0S K A T I N G R E P L A Y R U N N I N G +1 W R E S T L I N G S O C C E R C H E S S +2S U R F I N G F E N C I N G R O W I N G +3 C Y C L I N G A R C H E R Y S L A L O M +4S O C C E R C H E S S W R E S T L I N G +5 K A Y A K I N G T E N N I S B O X I N G +6C H E S S B I L L I A R D S K A R A T E +7 S H U F F L E B O A R D B A S E B A L L +8F L Y I N G P O O L B A S K E T B A L L +9 S K I I N G C H E C K E R S R A C I N G +0G O L F S A I L I N G W R E S T L I N G +1 B L A C K J A C K C H E S S S O C C E R +2K A R A T E H O C K E Y S W I M M I N G +3 E Q U E S T R I A N G Y M N A S T I C S diff --git a/src/4cade.a b/src/4cade.a index e35da6f..27b38f5 100644 --- a/src/4cade.a +++ b/src/4cade.a @@ -148,6 +148,9 @@ SwitchToBank2 rts !source "src/prodos.path.a" ; paths end up on the same page +; iLoadXSingle (label is in constants.a) + jmp LoadXSingle ; no direct calling - target can move + ; iAddToPath (label is in constants.a) jmp AddToPath ; no direct calling - target can move diff --git a/src/constants.a b/src/constants.a index 33ed210..2d5ebb9 100644 --- a/src/constants.a +++ b/src/constants.a @@ -166,6 +166,7 @@ gSearchIndex = $6000 gSearchCache = $A000 ; LC RAM 1 & 2 +iLoadXSingle = $FFE9 iAddToPath = $FFEC iLoadFileDirect = $FFEF ; note: you really want LC RAM 2 banked in before calling this WaitForVBL = $FFF2 @@ -189,7 +190,10 @@ HAS_SPEECH = %11000000 ; AND masks for game info bitfield (after game display name in gSearchStore) HAS_DHGR_TITLE = %10000000 ; this one is hard-coded via BMI instead of AND/BNE +IS_SINGLE_LOAD = %01000000 CHEAT_CATEGORY = %00001111 +; ^^ +; ++-- your bits here! ; AND masks for MachineStatus HAS_JOYSTICK = %10000000 diff --git a/src/glue.launch.a b/src/glue.launch.a index 5df13a2..d7db8a0 100644 --- a/src/glue.launch.a +++ b/src/glue.launch.a @@ -9,6 +9,9 @@ ; - FindGame ; - PlayGame ; - Launch +; - Joystick +; - LoadXSingle +; - LoadStandardPrelaunch ; ; Public variables: ; - gGameToLaunch - 0-based index into gSearchStore (word) @@ -117,28 +120,44 @@ FindGame ;------------------------------------------------------------------------------ PlayGame jsr GetGameToLaunch - ; A/Y = address of game filename + ; A/Y = address of game filename in gSearchIndex PlayGameInAY +ST16 SAVE +ST16 @pfile + +ST16 xfile + jsr okvs_next_field + jsr okvs_next_field_PTR_is_already_set + ; (PTR) -> length-prefixed game info bitfield + ; Y = 0 + iny ; Y = 1 + lda (PTR), y ; A = game info bitfield + and #IS_SINGLE_LOAD + php jsr ClearScreens ; avoid seeing code load into the HGR page ; (clobbers $106, must do now before loading prelaunch code) jsr LoadIndexedFile ; load prelaunch index file -- !word gSearchCache +- !word gSearchCache ; clobber gSearchCache which we no longer need !word kPrelaunchIndexRecord - jsr okvs_find + jsr okvs_find ; find this game's prelaunch index record !word - @pfile !word $FDFD ; SMC - +ST16 @indexRecordPtr + +ST16 @prelaunchIndexRecordPtr - jsr LoadIndexedFile + jsr LoadIndexedFile ; load this game's prelaunch code into $0106 !word $0106 -@indexRecordPtr +@prelaunchIndexRecordPtr !word $FDFD ; SMC + plp + beq @loadFromSubdirectory + + jsr LoadXSingle_NameIsAlreadySet + jmp Launch + +@loadFromSubdirectory ; we start by placing the subdirectory name at gPathname+kGameDirectoryLen ; to leave room for the GameDirectory name as the parent @@ -197,6 +216,47 @@ Launch sta launchpatch jmp LaunchInternal +;------------------------------------------------------------------------------ +; LoadXSingle/LoadXSingle_NameIsAlreadySet/LoadXFile +; load an indexed file via an extended index record that also contains starting +; address information +; +; in: A/Y points to game filename (must be listed in xsingle OKVS) +; out: all flags & registers clobbered +;------------------------------------------------------------------------------ +LoadXSingle ; entry point used by demos to load additional resources + +ST16 xfile +LoadXSingle_NameIsAlreadySet ; entry point used by PlayGame + jsr LoadIndexedFile ; load xsingle index file (contains pointers to game binaries) +- !word gSearchCache ; clobber search cache which we no longer need + !word kXSingleRecord +LoadXFile ; entry point used by attract mode to load self-running demo + jsr okvs_find ; find this game's extended index record + !word - +xfile !word $FDFD ; SMC + +ST16 @xsingleIndexRecordPtr + jsr okvs_next_field + ldy #5 + lda (PTR), y ; get game load address (stored immediately after index record) + sta @xsingleAddr + iny + lda (PTR), y + sta @xsingleAddr+1 + + jsr LoadIndexedFile ; load this game binary +@xsingleAddr + !word $FDFD ; SMC +@xsingleIndexRecordPtr + !word $FDFD ; SMC + rts + +;------------------------------------------------------------------------------ +; Joystick +; launch joystick calibration program +; +; in: none +; out: exits via Launch +;------------------------------------------------------------------------------ Joystick jsr LoadStandardPrelaunch diff --git a/src/hw.mockingboard.a b/src/hw.mockingboard.a index 72e3fd1..18a6680 100644 --- a/src/hw.mockingboard.a +++ b/src/hw.mockingboard.a @@ -26,8 +26,29 @@ ; zp $80-$82 clobbered ; A/Y clobbered ;------------------------------------------------------------------------------ + +MAGIC_Z80_LOCATION=$FFD + GetMockingboardStuff +ST16 @callback+1 + + ; from mgcaret + ; https://github.com/a2-4am/4cade/issues/483 + ; the Mockingboard init can accidentally enable the Softcard Z80 + ; and can crash the machine + ; solved by loading a small Z80 routine at $0FFD (FFFDh in the Z80 space): + ; $32 $00 $E4 $C3 FD FF which is + ; NOP + ; LD (E400h),A ; card is at $E400 due to memory translation + ; JP FFFDh + ; returns the system to 6502 mode and leaves it in the same state as the Z80 after RESET: + ; ready to execute the instruction at 0000h (from the Z80 perspective) + ldx #5 +- lda magic_z80_bytes, x + sta MAGIC_Z80_LOCATION, x + dex + bpl - + lda ROM_MACHINEID cmp #$06 bne @not_iic @@ -259,3 +280,6 @@ GetMockingboardStuff @callback jmp $FDFD ; SMC + +magic_z80_bytes + !byte $32, $00, $E4, $C3, $FD, $FF diff --git a/src/hw.vbl.init.a b/src/hw.vbl.init.a index de55884..7006481 100644 --- a/src/hw.vbl.init.a +++ b/src/hw.vbl.init.a @@ -22,7 +22,7 @@ BuildVBLFunction beq @build_iic ; //c family lda romid_mac cmp #ROMID_IIECARD - beq @build_none ; broken in some versions, disable + beq @build_iiecard ; Mac Apple IIe card sec jsr idroutine ; check for IIgs bcs @NotGS @@ -45,6 +45,21 @@ BuildVBLFunction lda #$4C sta UnwaitForVBL rts + +@build_iiecard + lda $FBBE ; check IIe card software version because v2.2.2d1 is broken + cmp #$03 ; $03 = v2.2.x + bne @NotGS ; all other versions are ok + + ldy #$08 ; Found v2.2.x but don't know which one, so test if VBL works + ldx #$00 +- bit $C019 + bmi @NotGS + dex + bne - + dey ; keep checking for ~22,000 cycles (a little over 1/50 of a second) + bne - ; if no VBL by then fall through to @build_none + @build_none lda #$60 sta WaitForVBL diff --git a/src/index/artwork.idx.a b/src/index/artwork.idx.a index c97a3ff..6d326f3 100644 --- a/src/index/artwork.idx.a +++ b/src/index/artwork.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1467651 + !be24 1467566 !le16 496 diff --git a/src/index/attract.idx.a b/src/index/attract.idx.a index 5c4d15b..977c9dd 100644 --- a/src/index/attract.idx.a +++ b/src/index/attract.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1456330 - !le16 917 + !be24 1456298 + !le16 879 diff --git a/src/index/cache00.idx.a b/src/index/cache00.idx.a index 51b97c0..06d4c36 100644 --- a/src/index/cache00.idx.a +++ b/src/index/cache00.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1449958 + !be24 1449982 !le16 214 diff --git a/src/index/cache01.idx.a b/src/index/cache01.idx.a index 50749c4..0e66979 100644 --- a/src/index/cache01.idx.a +++ b/src/index/cache01.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1451223 + !be24 1451247 !le16 458 diff --git a/src/index/cache10.idx.a b/src/index/cache10.idx.a index c46d33f..fda6697 100644 --- a/src/index/cache10.idx.a +++ b/src/index/cache10.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1452760 + !be24 1452784 !le16 399 diff --git a/src/index/cache11.idx.a b/src/index/cache11.idx.a index 988a868..71b08f4 100644 --- a/src/index/cache11.idx.a +++ b/src/index/cache11.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1454845 + !be24 1454828 !le16 688 diff --git a/src/index/count11.a b/src/index/count11.a index 27c64ac..5ee285f 100644 --- a/src/index/count11.a +++ b/src/index/count11.a @@ -3,4 +3,4 @@ ; ; This file is automatically generated ; -!word 43 +!word 42 diff --git a/src/index/coverfade.idx.a b/src/index/coverfade.idx.a index 9404c0d..b706f2a 100644 --- a/src/index/coverfade.idx.a +++ b/src/index/coverfade.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1468147 + !be24 1468062 !le16 306 diff --git a/src/index/credits.idx.a b/src/index/credits.idx.a index 9a24bc6..8fb9496 100644 --- a/src/index/credits.idx.a +++ b/src/index/credits.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1468797 - !le16 256 + !be24 1468712 + !le16 257 diff --git a/src/index/decrunch.idx.a b/src/index/decrunch.idx.a index 934a81b..ffaca53 100644 --- a/src/index/decrunch.idx.a +++ b/src/index/decrunch.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1469053 + !be24 1468969 !le16 303 diff --git a/src/index/demo.idx.a b/src/index/demo.idx.a new file mode 100644 index 0000000..ef6f6f1 --- /dev/null +++ b/src/index/demo.idx.a @@ -0,0 +1,8 @@ +; +; Index record for build/DEMO.IDX +; +; This file is automatically generated +; + !byte 0 + !be24 1449391 + !le16 12 diff --git a/src/index/dfx.idx.a b/src/index/dfx.idx.a index d2a74c8..e88458e 100644 --- a/src/index/dfx.idx.a +++ b/src/index/dfx.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1459887 + !be24 1459817 !le16 1640 diff --git a/src/index/dgr.fizzle.idx.a b/src/index/dgr.fizzle.idx.a index c75c77c..2717b09 100644 --- a/src/index/dgr.fizzle.idx.a +++ b/src/index/dgr.fizzle.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1468529 + !be24 1468444 !le16 67 diff --git a/src/index/dgr.idx.a b/src/index/dgr.idx.a index 8cd5a09..085a220 100644 --- a/src/index/dgr.idx.a +++ b/src/index/dgr.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1467639 + !be24 1467554 !le16 12 diff --git a/src/index/dhgr.idx.a b/src/index/dhgr.idx.a index a8d4fe8..e1c250b 100644 --- a/src/index/dhgr.idx.a +++ b/src/index/dhgr.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1466848 + !be24 1466763 !le16 739 diff --git a/src/index/dtitle.idx.a b/src/index/dtitle.idx.a index 59c3784..d4b28fa 100644 --- a/src/index/dtitle.idx.a +++ b/src/index/dtitle.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1465184 + !be24 1465099 !le16 216 diff --git a/src/index/fx.idx.a b/src/index/fx.idx.a index b8317d9..ed5d032 100644 --- a/src/index/fx.idx.a +++ b/src/index/fx.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1457247 + !be24 1457177 !le16 2640 diff --git a/src/index/gamehelp.idx.a b/src/index/gamehelp.idx.a index 11d95f7..58cba5b 100644 --- a/src/index/gamehelp.idx.a +++ b/src/index/gamehelp.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1461885 - !le16 797 + !be24 1461815 + !le16 782 diff --git a/src/index/gr.fizzle.idx.a b/src/index/gr.fizzle.idx.a index 8a42fe1..7cbb7c0 100644 --- a/src/index/gr.fizzle.idx.a +++ b/src/index/gr.fizzle.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1468453 + !be24 1468368 !le16 76 diff --git a/src/index/gr.idx.a b/src/index/gr.idx.a index d317fb7..dcb3d44 100644 --- a/src/index/gr.idx.a +++ b/src/index/gr.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1467587 + !be24 1467502 !le16 52 diff --git a/src/index/helptext.idx.a b/src/index/helptext.idx.a index 419bed7..59a3cec 100644 --- a/src/index/helptext.idx.a +++ b/src/index/helptext.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1468596 + !be24 1468511 !le16 201 diff --git a/src/index/hgr0.idx.a b/src/index/hgr0.idx.a index 7b75a15..41b4e45 100644 --- a/src/index/hgr0.idx.a +++ b/src/index/hgr0.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1465400 + !be24 1465315 !le16 335 diff --git a/src/index/hgr1.idx.a b/src/index/hgr1.idx.a index 7268bbf..4fc0f14 100644 --- a/src/index/hgr1.idx.a +++ b/src/index/hgr1.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1465735 + !be24 1465650 !le16 69 diff --git a/src/index/hgr2.idx.a b/src/index/hgr2.idx.a index 1c22429..412edc2 100644 --- a/src/index/hgr2.idx.a +++ b/src/index/hgr2.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1465804 + !be24 1465719 !le16 81 diff --git a/src/index/hgr3.idx.a b/src/index/hgr3.idx.a index e97138a..646e071 100644 --- a/src/index/hgr3.idx.a +++ b/src/index/hgr3.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1465885 + !be24 1465800 !le16 62 diff --git a/src/index/hgr4.idx.a b/src/index/hgr4.idx.a index c65ea53..e6c90d8 100644 --- a/src/index/hgr4.idx.a +++ b/src/index/hgr4.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1465947 + !be24 1465862 !le16 623 diff --git a/src/index/hgr5.idx.a b/src/index/hgr5.idx.a index e1811b9..eb3c6de 100644 --- a/src/index/hgr5.idx.a +++ b/src/index/hgr5.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1466570 + !be24 1466485 !le16 274 diff --git a/src/index/hgr6.idx.a b/src/index/hgr6.idx.a index 7b7b6d9..8a12fa0 100644 --- a/src/index/hgr6.idx.a +++ b/src/index/hgr6.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1466844 + !be24 1466759 !le16 4 diff --git a/src/index/joystick.idx.a b/src/index/joystick.idx.a index 7ecb7b1..b904386 100644 --- a/src/index/joystick.idx.a +++ b/src/index/joystick.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1469356 + !be24 1469272 !le16 2370 diff --git a/src/index/miniattract0.idx.a b/src/index/miniattract0.idx.a index 0553abd..80440ca 100644 --- a/src/index/miniattract0.idx.a +++ b/src/index/miniattract0.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1463744 + !be24 1463659 !le16 381 diff --git a/src/index/miniattract1.idx.a b/src/index/miniattract1.idx.a index 0bb7600..60ab4a3 100644 --- a/src/index/miniattract1.idx.a +++ b/src/index/miniattract1.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1464125 + !be24 1464040 !le16 420 diff --git a/src/index/prelaunch.idx.a b/src/index/prelaunch.idx.a index 17b4594..e285c70 100644 --- a/src/index/prelaunch.idx.a +++ b/src/index/prelaunch.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1455533 - !le16 797 + !be24 1455516 + !le16 782 diff --git a/src/index/search00.idx.a b/src/index/search00.idx.a index 7bce29c..e3fe647 100644 --- a/src/index/search00.idx.a +++ b/src/index/search00.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1449391 + !be24 1449415 !le16 567 diff --git a/src/index/search01.idx.a b/src/index/search01.idx.a index e933912..29fc52c 100644 --- a/src/index/search01.idx.a +++ b/src/index/search01.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1450172 + !be24 1450196 !le16 1051 diff --git a/src/index/search10.idx.a b/src/index/search10.idx.a index ee7b820..cea445b 100644 --- a/src/index/search10.idx.a +++ b/src/index/search10.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1451681 + !be24 1451705 !le16 1079 diff --git a/src/index/search11.idx.a b/src/index/search11.idx.a index 50f87b8..1587829 100644 --- a/src/index/search11.idx.a +++ b/src/index/search11.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1453159 - !le16 1686 + !be24 1453183 + !le16 1645 diff --git a/src/index/sfx.idx.a b/src/index/sfx.idx.a index 545d192..c1d731e 100644 --- a/src/index/sfx.idx.a +++ b/src/index/sfx.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1461527 + !be24 1461457 !le16 358 diff --git a/src/index/slideshow.idx.a b/src/index/slideshow.idx.a index bd558bf..a4b9660 100644 --- a/src/index/slideshow.idx.a +++ b/src/index/slideshow.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1462682 + !be24 1462597 !le16 1062 diff --git a/src/index/title.idx.a b/src/index/title.idx.a index ae59f34..01a4298 100644 --- a/src/index/title.idx.a +++ b/src/index/title.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1464545 + !be24 1464460 !le16 639 diff --git a/src/index/xsingle.idx.a b/src/index/xsingle.idx.a new file mode 100644 index 0000000..5ac122f --- /dev/null +++ b/src/index/xsingle.idx.a @@ -0,0 +1,8 @@ +; +; Index record for build/XSINGLE.IDX +; +; This file is automatically generated +; + !byte 0 + !be24 1449403 + !le16 12 diff --git a/src/macros.a b/src/macros.a index ee9670d..dd81d7b 100755 --- a/src/macros.a +++ b/src/macros.a @@ -297,9 +297,14 @@ ; these are mostly for prelaunchers -- code in the main program should keep track of which bank is active to minimize code size !macro ENABLE_ACCEL { + +ENABLE_ACCEL_LC + +READ_ROM_NO_WRITE +} + +; leave LC active on exit +!macro ENABLE_ACCEL_LC { +READ_RAM2_NO_WRITE jsr EnableAccelerator - +READ_ROM_NO_WRITE } !macro DISABLE_ACCEL { @@ -517,6 +522,13 @@ bne - } +!macro LOAD_XSINGLE .title { + +READ_RAM1_WRITE_RAM1 + +LDADDR .title + jsr iLoadXSingle + +READ_ROM_NO_WRITE +} + ; Macros for demo launchers that need to check whether they should run ; on the current machine. Exit demo if the requirements are not met. !macro GAME_REQUIRES_JOYSTICK { diff --git a/src/prodos.path.a b/src/prodos.path.a index d215200..12d72cb 100644 --- a/src/prodos.path.a +++ b/src/prodos.path.a @@ -59,6 +59,9 @@ kSearchCacheRecord kPrelaunchIndexRecord !source "src/index/prelaunch.idx.a" +kDemoIndexRecord + !source "src/index/demo.idx.a" + kAttractModeIndexRecord !source "src/index/attract.idx.a" @@ -149,6 +152,9 @@ kDecrunchRecord kJoystickRecord !source "src/index/joystick.idx.a" +kXSingleRecord + !source "src/index/xsingle.idx.a" + kTotalDataFile !byte 10 !raw "TOTAL.DATA" @@ -157,10 +163,6 @@ kAnimatedTitleDirectory !byte 15 !raw "TITLE.ANIMATED/" -kDemoDirectory - !byte 5 - !raw "DEMO/" - kGameDirectory !byte 2 !raw "X/" diff --git a/src/textrank.a b/src/textrank.a index f510bf3..f5b0f13 100644 --- a/src/textrank.a +++ b/src/textrank.a @@ -34,12 +34,14 @@ InputBuffer ; out: gSearchStore populated ;------------------------------------------------------------------------------ ReloadSearchIndex - jsr LoadIndexedFile ; load appropriate search index into $8200 - !word gSearchIndex - !word kSearchIndexRecord jsr LoadIndexedFile ; load appropriate search cache into $B000 !word gSearchCache !word kSearchCacheRecord +ReloadSearchIndexOnly + jsr LoadIndexedFile ; load appropriate search index into $6000 +SearchIndexHandle + !word gSearchIndex + !word kSearchIndexRecord rts FindTitleInCache diff --git a/src/ui.attract.mode.a b/src/ui.attract.mode.a index 0508d56..900916d 100644 --- a/src/ui.attract.mode.a +++ b/src/ui.attract.mode.a @@ -71,7 +71,12 @@ MegaAttractMode bpl MegaAttractMode cmp #$8D ; Enter plays the game shown on screen. bne + ; Any other key switches to Search Mode. + jsr ReloadSearchIndexOnly +LD16 gLastMegaAttractGame + +ST16 @game + jsr okvs_find + !word SearchIndexHandle +@game !word $FDFD ; SMC jsr PlayGameInAY ; (might return if user hits Ctrl-Reset) + jmp SearchMode @@ -190,7 +195,6 @@ ATTRTS rts ;------------------------------------------------------------------------------ RunAttractModule +ST16 @key - +ST16 @key2 cpx #$30 bne @NotDemo @@ -212,14 +216,17 @@ RunAttractModule bpl - +LDADDR DemoFilename +ST16 gLastMegaAttractGame ; save game filename in LC in case user hits Return to launch + +ST16 xfile jsr ClearScreens ; avoid seeing code load into the HGR page ; (clobbers $106, must do now before loading prelaunch code) jsr LoadStandardPrelaunch ; load standard prelaunch code (|Launch| will call it) - jsr LoadFile ; load self-running demo into its default address (varies) - !word kDemoDirectory -@key !word $FDFD - !word 0 + + jsr LoadIndexedFile ; load demo index file +- !word gSearchCache + !word kDemoIndexRecord + + jsr LoadXFile ; load self-running demo into its default address (varies) jmp Launch ; will return to caller via |Reenter| ; not a demo, so maybe a slideshow or single screenshot @@ -235,7 +242,7 @@ RunAttractModule !word kAttractModeSlideshowIndexRecord jsr okvs_find !word - -@key2 !word $FDFD ; SMC +@key !word $FDFD ; SMC +ST16 + jsr LoadIndexedFile !word $800 diff --git a/src/ui.wait.a b/src/ui.wait.a index 69b0de5..2d00328 100644 --- a/src/ui.wait.a +++ b/src/ui.wait.a @@ -79,7 +79,7 @@ WaitForKeyFor30Seconds ;------------------------------------------------------------------------------ CoverFade jsr ForceHGRMode - jsr LoadTitleOffscreen + jsr LoadCoverOffscreen jsr ShowOtherPage lda OffscreenPage beq CoverFade