diff --git a/res/ACTION.DHGR.UNCOMPRESSED/WIPEOUT b/res/ACTION.DHGR.UNCOMPRESSED/WIPEOUT new file mode 100644 index 0000000..faca06b Binary files /dev/null and b/res/ACTION.DHGR.UNCOMPRESSED/WIPEOUT differ diff --git a/res/ACTION.DHGR.UNCOMPRESSED/WIPEOUT2 b/res/ACTION.DHGR.UNCOMPRESSED/WIPEOUT2 new file mode 100644 index 0000000..1681e84 Binary files /dev/null and b/res/ACTION.DHGR.UNCOMPRESSED/WIPEOUT2 differ diff --git a/res/ACTION.DHGR.UNCOMPRESSED/WIPEOUT3 b/res/ACTION.DHGR.UNCOMPRESSED/WIPEOUT3 new file mode 100644 index 0000000..3120ea0 Binary files /dev/null and b/res/ACTION.DHGR.UNCOMPRESSED/WIPEOUT3 differ diff --git a/res/ACTION.DHGR/WIPEOUT b/res/ACTION.DHGR/WIPEOUT new file mode 100644 index 0000000..49a67d4 Binary files /dev/null and b/res/ACTION.DHGR/WIPEOUT differ diff --git a/res/ACTION.DHGR/WIPEOUT2 b/res/ACTION.DHGR/WIPEOUT2 new file mode 100644 index 0000000..0402038 Binary files /dev/null and b/res/ACTION.DHGR/WIPEOUT2 differ diff --git a/res/ACTION.DHGR/WIPEOUT3 b/res/ACTION.DHGR/WIPEOUT3 new file mode 100644 index 0000000..f0a6f73 Binary files /dev/null and b/res/ACTION.DHGR/WIPEOUT3 differ diff --git a/res/ATTRACT/WIPEOUT b/res/ATTRACT/WIPEOUT new file mode 100644 index 0000000..fb688b1 --- /dev/null +++ b/res/ATTRACT/WIPEOUT @@ -0,0 +1,10 @@ +# +# Attract mode for WIPEOUT +# This file is automatically generated +# + +WIPEOUT2=B +WIPEOUT3=B +WIPEOUT=B + +[eof] diff --git a/res/CACHE01.IDX b/res/CACHE01.IDX index 15781af..7ae0e97 100644 Binary files a/res/CACHE01.IDX and b/res/CACHE01.IDX differ diff --git a/res/CACHE11.IDX b/res/CACHE11.IDX index 8e3d234..c06f648 100644 Binary files a/res/CACHE11.IDX and b/res/CACHE11.IDX differ diff --git a/res/GAMEHELP/WIPEOUT b/res/GAMEHELP/WIPEOUT new file mode 100644 index 0000000..d3d1225 --- /dev/null +++ b/res/GAMEHELP/WIPEOUT @@ -0,0 +1,24 @@ + Answer trivia questions + + to win cash and prizes + + + + joystick or keyboard + + + + < select > + +  + + Press Return to commit answer + + + +Esc* * * * * * * * * * * * * * * * pause + +Ctrl-S * * * * * * * * * * *toggle sound + +Ctrl-Q * * * * * * * * * * * * * * *quit +[eof] diff --git a/res/GAMES.CONF b/res/GAMES.CONF index 67e56ea..f40e9b7 100755 --- a/res/GAMES.CONF +++ b/res/GAMES.CONF @@ -77,6 +77,7 @@ 00001,WARI=Wari 00000,WINTER.GAMES=Winter Games 01100,WORLD.GAMES=World Games +01100,WIPEOUT=Wipeout 00000,WORLD.KARATE=World Karate Championship [eof] diff --git a/res/SS/ACTDHGR3.CONF b/res/SS/ACTDHGR3.CONF index 1a05a05..8bdf077 100644 --- a/res/SS/ACTDHGR3.CONF +++ b/res/SS/ACTDHGR3.CONF @@ -5,6 +5,7 @@ CALI.GAMES5=CALI.GAMES SS.SOCCER3=SS.SOCCER WORLD.GAMES3=WORLD.GAMES +WIPEOUT SUMMER.EDITION3=SUMMER.EDITION TEST.DRIVE2=TEST.DRIVE WINTER.EDITION4=WINTER.EDITION diff --git a/res/SS/ACTDHGR4.CONF b/res/SS/ACTDHGR4.CONF index c8ffd7d..0011949 100644 --- a/res/SS/ACTDHGR4.CONF +++ b/res/SS/ACTDHGR4.CONF @@ -5,6 +5,7 @@ SS.BASEBALL2=SS.BASEBALL WINTER.EDITION2=WINTER.EDITION TEST.DRIVE4=TEST.DRIVE +WIPEOUT3=WIPEOUT SS.BASKETBALL2=SS.BASKETBALL WORLD.GAMES4=WORLD.GAMES CALI.GAMES6=CALI.GAMES diff --git a/res/SS/ACTDHGR6.CONF b/res/SS/ACTDHGR6.CONF index 196f91f..486f41b 100644 --- a/res/SS/ACTDHGR6.CONF +++ b/res/SS/ACTDHGR6.CONF @@ -8,5 +8,6 @@ SS.FOOTBALL3=SS.FOOTBALL CALI.GAMES4=CALI.GAMES SS.SOCCER2=SS.SOCCER TEST.DRIVE6=TEST.DRIVE +WIPEOUT2=WIPEOUT [eof] diff --git a/res/SS/DHGR1.CONF b/res/SS/DHGR1.CONF index 7132dc6..402ed40 100644 --- a/res/SS/DHGR1.CONF +++ b/res/SS/DHGR1.CONF @@ -7,6 +7,7 @@ TEST.DRIVE SS.FOOTBALL SS.BASEBALL BATTLE.CHESS +WIPEOUT SS.SOCCER CALI.GAMES SUMMER.EDITION diff --git a/res/TITLE.DHGR/WIPEOUT b/res/TITLE.DHGR/WIPEOUT new file mode 100644 index 0000000..f56541e Binary files /dev/null and b/res/TITLE.DHGR/WIPEOUT differ diff --git a/res/dsk/wipeout (4am pack).po b/res/dsk/wipeout (4am pack).po new file mode 100644 index 0000000..5017667 Binary files /dev/null and b/res/dsk/wipeout (4am pack).po differ diff --git a/res/history.md b/res/history.md index 7bae5fa..0b9b6b7 100644 --- a/res/history.md +++ b/res/history.md @@ -13,6 +13,7 @@ - Rock & Scroll - Seega - Wari +- Wipeout ## Revision 1.0-alpha.3 / 20231114 diff --git a/res/notes/wishlist.txt b/res/notes/wishlist.txt index 215b16c..02168a5 100644 --- a/res/notes/wishlist.txt +++ b/res/notes/wishlist.txt @@ -87,7 +87,6 @@ The $100,000 Pyramid [DHGR] The Price is Right Wheel of Fortune [DHGR] (+ Second Edition, New Second Edition, Third Edition, Golden Edition) Win, Lose, or Draw [DHGR] (+ Junior Edition, Second Edition) -Wipeout //idea:Bez collection (these are in woz-a-day) Weights and Treasure [has construction kit] diff --git a/res/ports/common/src/macros.a b/res/ports/common/src/macros.a index 3b6b66c..10b83fa 100644 --- a/res/ports/common/src/macros.a +++ b/res/ports/common/src/macros.a @@ -11,6 +11,17 @@ jsr ROM_IN0 } +; X=0, Z=1 on exit +; A clobbered +; Y preserved +!macro SHORT_COPY .start, .end, .target { + ldx #<(.end-.start) +- lda .start-1, x + sta .target-1, x + dex + bne - +} + !macro READ_ENTIRE_FILE .parm_open, .parm_read { jsr PRODOS_MLI !byte CMD_OPEN diff --git a/res/ports/common/src/prodos.init.a b/res/ports/common/src/prodos.init.a new file mode 100644 index 0000000..08e533b --- /dev/null +++ b/res/ports/common/src/prodos.init.a @@ -0,0 +1,54 @@ +;license:MIT +;(c) 2024 by 4am +; + +; +; Ensure ProDOS has a current prefix, otherwise opening any file will fail, +; which is bad. If launched from Bitsy Bye, there will be no current prefix. +; In that case, we get the boot volume name, then set the prefix to that. +; PREFIX_BUFFER ($40 bytes) is clobbered but may be reused after. +; +prefix_loop + jsr PRODOS_MLI +op_prefix + !byte CMD_GETPREFIX ; self-modified + !word parm_prefix + ldx PREFIX_BUFFER + bne clear_memory_map + ; get boot volume name + lda PRODOS_BOOT_UNIT + sta parm_online_unit + jsr PRODOS_MLI + !byte CMD_ONLINE + !word parm_online + + lda PREFIX_BUFFER+1 + and #$0F + tax + inx + stx PREFIX_BUFFER + lda #$2F + sta PREFIX_BUFFER+1 + ; PREFIX_BUFFER is now a length-prefixed string + ; of '/' + the boot volume name + + dec op_prefix ; -> CMD_SETPREFIX + bne prefix_loop ; always branches + +parm_prefix + !byte 1 + !word PREFIX_BUFFER + +parm_online + !byte 2 +parm_online_unit + !byte SELF_MODIFIED_BYTE + !word PREFIX_BUFFER+1 + +clear_memory_map + ; clear ProDOS memory bitmap + ldx #$17 + lda #$00 +- sta PRODOS_MEMORY_MAP, x + dex + bpl - diff --git a/res/ports/wipeout/Makefile b/res/ports/wipeout/Makefile new file mode 100644 index 0000000..e8b08a1 --- /dev/null +++ b/res/ports/wipeout/Makefile @@ -0,0 +1,51 @@ +# https://sourceforge.net/projects/acme-crossass/ +ACME=acme + +# https://github.com/mach-kernel/cadius +CADIUS=cadius + +EXOMIZER=exomizer mem -lnone -P23 -f -q + +BUILDDIR=build +DISKVOLUME=WIPEOUT +LOADER=$(BUILDDIR)/LOADER.SYSTEM\#FF2000 +EXE=$(BUILDDIR)/WIPEOUT\#060800 +COMPRESSED=src/OBJ.X +SOURCES=$(wildcard src/*.a) $(COMPRESSED) +RES=$(wildcard res/*) $(wildcard ../common/res/*) +BUILDDISK=$(BUILDDIR)/$(DISKVOLUME).po + +.PHONY: clean mount all + +$(BUILDDISK): $(EXE) $(LOADER) $(RES) + +$(LOADER): $(SOURCES) | $(BUILDDIR) + $(ACME) src/loader.a + $(CADIUS) REPLACEFILE "$(BUILDDISK)" "/$(DISKVOLUME)/" "$(LOADER)" -C + @touch "$@" + +$(EXE): $(SOURCES) $(COMPRESSED) | $(BUILDDIR) + $(ACME) src/wipeout.a + $(CADIUS) REPLACEFILE "$(BUILDDISK)" "/$(DISKVOLUME)/" "$(EXE)" -C + @touch "$@" + +$(RES): $(BUILDDIR) + $(CADIUS) REPLACEFILE "$(BUILDDISK)" "/$(DISKVOLUME)/" "$@" -C + @touch "$@" + +$(COMPRESSED): + $(EXOMIZER) src/OBJ@0x4000 -o "$@" + +mount: $(BUILDDISK) + @open "$(BUILDDISK)" + +clean: + rm -rf "$(BUILDDIR)" + +$(BUILDDIR): + mkdir -p "$@" + $(CADIUS) CREATEVOLUME "$(BUILDDISK)" "$(DISKVOLUME)" 800KB -C + +all: clean mount + +.NOTPARALLEL: diff --git a/res/ports/wipeout/res/CO#062000 b/res/ports/wipeout/res/CO#062000 new file mode 100644 index 0000000..2754666 Binary files /dev/null and b/res/ports/wipeout/res/CO#062000 differ diff --git a/res/ports/wipeout/res/CR#062000 b/res/ports/wipeout/res/CR#062000 new file mode 100644 index 0000000..3d1ee87 Binary files /dev/null and b/res/ports/wipeout/res/CR#062000 differ diff --git a/res/ports/wipeout/res/HO#062000 b/res/ports/wipeout/res/HO#062000 new file mode 100644 index 0000000..d7701a8 Binary files /dev/null and b/res/ports/wipeout/res/HO#062000 differ diff --git a/res/ports/wipeout/res/P0#068000 b/res/ports/wipeout/res/P0#068000 new file mode 100644 index 0000000..c9a2432 Binary files /dev/null and b/res/ports/wipeout/res/P0#068000 differ diff --git a/res/ports/wipeout/res/P1#068000 b/res/ports/wipeout/res/P1#068000 new file mode 100644 index 0000000..527ec82 Binary files /dev/null and b/res/ports/wipeout/res/P1#068000 differ diff --git a/res/ports/wipeout/res/P2#068000 b/res/ports/wipeout/res/P2#068000 new file mode 100644 index 0000000..5b56389 Binary files /dev/null and b/res/ports/wipeout/res/P2#068000 differ diff --git a/res/ports/wipeout/res/P3#068000 b/res/ports/wipeout/res/P3#068000 new file mode 100644 index 0000000..0c6cf10 Binary files /dev/null and b/res/ports/wipeout/res/P3#068000 differ diff --git a/res/ports/wipeout/res/P4#068000 b/res/ports/wipeout/res/P4#068000 new file mode 100644 index 0000000..17b744d Binary files /dev/null and b/res/ports/wipeout/res/P4#068000 differ diff --git a/res/ports/wipeout/res/P5#068000 b/res/ports/wipeout/res/P5#068000 new file mode 100644 index 0000000..bcfce28 Binary files /dev/null and b/res/ports/wipeout/res/P5#068000 differ diff --git a/res/ports/wipeout/res/P6#068000 b/res/ports/wipeout/res/P6#068000 new file mode 100644 index 0000000..a1e04e5 Binary files /dev/null and b/res/ports/wipeout/res/P6#068000 differ diff --git a/res/ports/wipeout/res/P7#068000 b/res/ports/wipeout/res/P7#068000 new file mode 100644 index 0000000..595d035 Binary files /dev/null and b/res/ports/wipeout/res/P7#068000 differ diff --git a/res/ports/wipeout/res/P8#068000 b/res/ports/wipeout/res/P8#068000 new file mode 100644 index 0000000..e55f549 Binary files /dev/null and b/res/ports/wipeout/res/P8#068000 differ diff --git a/res/ports/wipeout/res/P9#068000 b/res/ports/wipeout/res/P9#068000 new file mode 100644 index 0000000..45d60ce Binary files /dev/null and b/res/ports/wipeout/res/P9#068000 differ diff --git a/res/ports/wipeout/res/PF#068000 b/res/ports/wipeout/res/PF#068000 new file mode 100644 index 0000000..e521ed9 Binary files /dev/null and b/res/ports/wipeout/res/PF#068000 differ diff --git a/res/ports/wipeout/res/PM#068000 b/res/ports/wipeout/res/PM#068000 new file mode 100644 index 0000000..9c34fac Binary files /dev/null and b/res/ports/wipeout/res/PM#068000 differ diff --git a/res/ports/wipeout/res/QA#040000 b/res/ports/wipeout/res/QA#040000 new file mode 100644 index 0000000..1259958 --- /dev/null +++ b/res/ports/wipeout/res/QA#040000 @@ -0,0 +1 @@ +ҍ׍ҍϧҍҍҍ׍ҍ׍ҍҍ׍ҍ׍ҍҍﭠҍ׍ҍҍҍҍ׍ҍ魠ҍҍ᭠ҍҍ׍׍׍ҍ堢 墮 宍ҍŮҍ׍ҍ᭠ҍ׍ҍҍ׍ҍҍ׍ҍҍϧҍ׍䮠󍱯ҍ׍ҍ׍ҍҍ׍ҍ׍ҍҍҍ쮠ҍ̠ҍҍ׍箢忍׍ҍҍҍҍ׍׍ҍҍҍ׍魠ҍ׍ҍҍҍ箠󠯠׍젯ҍҍҍ堯׍ҍҍҍҍ󠯠ҍҍ䠯׍ҍ׍򠯠ҍ׍䬠 嬢 墿׍ҍҍҍҍҍ׍ҍҍҍҍ䭠׍׍ҍ׍ҍ箠讍ҍҍҍ׍ҍҍҍҍҍ׍׍ҍҍҍ׍׍堢 򠶧ҍҍ׍䠳ҍҍҍ׍孠ҍ׍׍ҍҍҍҍ䠳׍򠦠ҍ宍ҍҍҍҍ堭ҍҍ׍׍׍ҍ׍ҍ׍ҍҍҍ宠׍ҍ׍ҍҍ׍ҍҍҍҍҍҍ׍׍ҍҍ󠦠ﭠᠯҍ魠ᠯҍ孠ﭠᠯҍᠯҍﭠᠯ׍ﭠᠯҍ᭠ᠯҍﭠᠯ׍᭠ᠯҍﭠᠯҍ᭠ᠯҍﭠᠯҍﭠᠯ׍ﭠᠯ׍ᠯ׍ﭠᠯҍ׍ϠҍĮîҍ󠯠ҍ젯ҍᠯ׍󠯠ҍ堯׍젯ҍ䠯ҍҍ젯ҍ֠ƮĮҮҍ堯׍ҍ栵󠯠׍֠嬠嬠宍̮ҍ׍ծӮͮîҍҍҍ׍ҍ׍ҍ׍̮ҍҍҍҍ׍ҍ䮍ҍҍҍҍ׍ҍ׍ҍҍҍҍ׍譠׍ҍ׍ҍ嬠렦𠯠ҍ堯ҍ䠯ҍ򠯠ҍ׍蠯ҍ砯׍᭠ҍ𠯠ҍᠯ׍ҍҍ堯ҍҍ׍堯׍ 俍󠦠򠯠󠯠䠯򠯠ԮͮǮ堯䠯堯堯䬠 孠ì󮍢硬宠忍쮍ϧ쭠᭠ﭠ䮠俍󠦠󠯠򠯠ƮĮҮ򠯠ƮĮҮ䠯筠忍宠箠箠䭠ﭠ報䮠Į 墬孠 㢮 ɠ忬󠮮筠Ϡ 뮢 쮍蠱報報Ҡ墠ήٮﭠ֠ծӮɠᠢ 宍׮ʮʮԮҮҮȮ׮ǮҮʮ׮ծĮȮ孠報蠢 魠ﭠ䭠ᠢ墬 ֠쮠䮍忍Ҡ嬠䠢 Ү ﮍҍ֠䮠忍֠󠦠魠䠯򠯠䠯堯󠯠󠯠󠯠報報堵󮮮孠筠宠쮠宍筠䭠䮠䮠栢Ӣ 堢 蠳ծӮ魠ծӮȠծӮ䢠箠򍪪 \ No newline at end of file diff --git a/res/ports/wipeout/res/QB#040000 b/res/ports/wipeout/res/QB#040000 new file mode 100644 index 0000000..cb9c194 --- /dev/null +++ b/res/ports/wipeout/res/QB#040000 @@ -0,0 +1 @@ +° 㭠°嬠 󠦠렯⠯蠯렯砯砯ᠯ°迍󠯠󠯠᭠ᠯ° ծӮ ϧ°󠦠򠯠䠯孠砯󠯠䠯°ᮍ魠° 䮢 俍°䮍°󬠢  ᭠°堢袮 °堢 墿 䮠筠°򠸰宠ʮ°ᮠ䮍ԬȬԬɬ°䬠ﭠî®°箠忍°宠忍筠ӮӮ°忍孠°宍孠㭠ɬ°֠֠򠯠󠯠蠯򠯠ᠯ蠯砯䠯堯򠯠°󠱯忍°°栢墬 ɧ 󿍳®î°堧 ° ° 宍 ° 客 °  °  ° 宍 Įî° 䮍 ° 忍 ° 忍 ° 䮍 ° 忍 ° ծӮ 뿍 °Ȣ ֧ Ȣ 忍ͪӪ 덧 ϧ° ° 忍 ᅪ ծӮ ծӮ ° ° ° ° 忍 ° 忍 °ɬ° °堢 忍ɠ°쮠쮠쭠°忍°ᠢ 堸孠°忍譠°魠°堢 忍魠ʮ°忍°忍᭠°᭠᭠魠歠쭠°忍°堢 迍䭠°󠱲묠䮍󠯠ͬ䠯ͬ頯ͬͬͬᠯͬͬ᭠ͬͬͬͬͬ°ɠϧ쮠忍ϧ°宠忍筠魠°䠢 뢠°宠ɬ°忍°°堢 °宠忍ﭠ㭠ﭠ°򠳰箠忍ﭠﭠ°° 墿󠦠 ᢬ 墬°譠°묠堢 忍᭠°堯堯頯譠筠Įî쭠° 忍°䮠䠢 忍°忍렦筠孠§°ᮠ忍ʮ° 忍孠ϧ°堢 忍°̠̠°ŮԮ򍱹󠲬°䠢 碬 忍°孠°䮠忍栧䡬ɬ°俍͠᭠᭠°᭠°讠忍ﭠ°堢 忍孠堲ɬ°忍ծήծӮծӮӮҮ°ծӮᮠ忍ŮԮ󮮮°°忍䠦°ծӮ忍᭠筠°魠魠ﭠﭠﭠ᭠㭠ﭠ°堧 宍堧魠좠䢠ƮĮҮ°嬠Į׮°ᠱ墠쭠孠°忍ɠ򍵹±쿍󠯠󠯠頯ᠯ󠯠󠯠±쮠忍± 忍Ԯ筠±忍±῍±䮠뿍򠳰󍱠򍱠򍱯򍱰򍲠򍱠򍱠򍴠±Įî忍Įî筠譠魠±蠢 ڮ±忍± 쿍墠堢 ᠢ 렢 렢  堢 堢 ±忍孠䭠孠±報宠 俍墠֬ɠ±忍±䠢 ±±젢 忍±嬠㮠᭠±忍ɠ±±笠ծӮծӮ筠±忍譠±à쮠à忍à±Ӡ쬠쮠宍±ﬠ­򍪪 \ No newline at end of file diff --git a/res/ports/wipeout/res/QC#040000 b/res/ports/wipeout/res/QC#040000 new file mode 100644 index 0000000..9fabe4f --- /dev/null +++ b/res/ports/wipeout/res/QC#040000 @@ -0,0 +1 @@ +ðð䮠ð欠ð堲ЮԮð忍ƮĮҮ̮®ʮð堢 魠孠ð 宍ðծή쿍ծήҬﭠð ðð宠ϧð宠魠ððծӮ孠֬ðð䮍ð뭠ðð孠ð֠箠֍ð宠宍筠ԮҬð讠ððծӮҬðð栢 󢿍ððɠðð졍ð魠쭠筠ðʮðð筠ð쮠쮍ŬǬͬѬڬԬҬجЬ֬Ϭðð ῍ʮͮԮӮð報ðîɮîɮð堢 ծӮðð쮠ﭠﭠ򍪪 \ No newline at end of file diff --git a/res/ports/wipeout/res/TA#069285 b/res/ports/wipeout/res/TA#069285 new file mode 100644 index 0000000..bf4bdf0 Binary files /dev/null and b/res/ports/wipeout/res/TA#069285 differ diff --git a/res/ports/wipeout/res/TB#0692dd b/res/ports/wipeout/res/TB#0692dd new file mode 100644 index 0000000..94fb70e Binary files /dev/null and b/res/ports/wipeout/res/TB#0692dd differ diff --git a/res/ports/wipeout/res/TC#0693d1 b/res/ports/wipeout/res/TC#0693d1 new file mode 100644 index 0000000..699d197 Binary files /dev/null and b/res/ports/wipeout/res/TC#0693d1 differ diff --git a/res/ports/wipeout/res/TI#062000 b/res/ports/wipeout/res/TI#062000 new file mode 100644 index 0000000..f56541e Binary files /dev/null and b/res/ports/wipeout/res/TI#062000 differ diff --git a/res/ports/wipeout/res/UA#0691b7 b/res/ports/wipeout/res/UA#0691b7 new file mode 100644 index 0000000..c1eacdd Binary files /dev/null and b/res/ports/wipeout/res/UA#0691b7 differ diff --git a/res/ports/wipeout/res/UB#0691e2 b/res/ports/wipeout/res/UB#0691e2 new file mode 100644 index 0000000..686f942 Binary files /dev/null and b/res/ports/wipeout/res/UB#0691e2 differ diff --git a/res/ports/wipeout/res/UC#06925b b/res/ports/wipeout/res/UC#06925b new file mode 100644 index 0000000..7cd41c0 Binary files /dev/null and b/res/ports/wipeout/res/UC#06925b differ diff --git a/res/ports/wipeout/src/OBJ b/res/ports/wipeout/src/OBJ new file mode 100644 index 0000000..4bfee14 Binary files /dev/null and b/res/ports/wipeout/src/OBJ differ diff --git a/res/ports/wipeout/src/OBJ.X b/res/ports/wipeout/src/OBJ.X new file mode 100644 index 0000000..8fb5d5f Binary files /dev/null and b/res/ports/wipeout/src/OBJ.X differ diff --git a/res/ports/wipeout/src/loader.a b/res/ports/wipeout/src/loader.a new file mode 100644 index 0000000..e4c6e86 --- /dev/null +++ b/res/ports/wipeout/src/loader.a @@ -0,0 +1,35 @@ +!cpu 6502 +*=$2000 +!to "build/LOADER.SYSTEM#FF2000",plain + +STAGE2 = $3F00 +PREFIX_BUFFER = $4000 + + !src "../common/src/constants.a" + !src "../common/src/macros.a" + !src "../common/src/prodos.init.a" + +SHORT_COPY move_stage2_start, move_stage2_end, STAGE2 + jmp STAGE2 + +move_stage2_start +!pseudopc STAGE2 { + +READ_ENTIRE_FILE parm_boot_open, parm_boot_read + jmp (entry) + +parm_boot_open + !byte 3 + !word filename + !word PREFIX_BUFFER + !byte 0 + +parm_boot_read + !byte 4 + !byte 1 +entry !word $0800 + !word $FFFF + !word 0 + +filename + !text 7,"WIPEOUT" +} +move_stage2_end diff --git a/res/ports/wipeout/src/wipeout.a b/res/ports/wipeout/src/wipeout.a new file mode 100644 index 0000000..d63f911 --- /dev/null +++ b/res/ports/wipeout/src/wipeout.a @@ -0,0 +1,30 @@ +!cpu 6502 +*=$0800 +!to "build/WIPEOUT#060800",plain + + !src "../common/src/constants.a" + !src "../common/src/macros.a" + + jmp start + +compressed_data + !bin "src/OBJ.X" +DECRUNCH_FORWARDS = 1 +SHOW_PROGRESS_DURING_DECRUNCH = 1 +kExoProgressWidth = 13 ; depends on total size, max 38 + !src "../common/src/exodecrunch.a" + +start + +INIT_MACHINE +!if * != $356C { + !serious "Adjust prelaunch to patch JSR at ", * +} + jsr decrunch ; compressed data contains target address + jmp $4000 + +get_crunched_byte + lda compressed_data + inc get_crunched_byte+1 + bne + + inc get_crunched_byte+2 ++ rts diff --git a/src/index/artwork.idx.a b/src/index/artwork.idx.a index e28f431..72a604f 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 2038791 + !be24 2065113 !le16 571 diff --git a/src/index/attract.idx.a b/src/index/attract.idx.a index 373d1ee..a282d01 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 2026473 + !be24 2052709 !le16 978 diff --git a/src/index/cache00.idx.a b/src/index/cache00.idx.a index 2af9c81..e8635a0 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 2018356 + !be24 2044498 !le16 322 diff --git a/src/index/cache01.idx.a b/src/index/cache01.idx.a index b8ad680..cb50d72 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 2020048 - !le16 562 + !be24 2046216 + !le16 576 diff --git a/src/index/cache10.idx.a b/src/index/cache10.idx.a index 028b3b6..4725f7e 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 2022050 + !be24 2048232 !le16 528 diff --git a/src/index/cache11.idx.a b/src/index/cache11.idx.a index 068560d..5d3764b 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 2024654 - !le16 820 + !be24 2050862 + !le16 834 diff --git a/src/index/count01.a b/src/index/count01.a index d9fbc06..eb7b2c8 100644 --- a/src/index/count01.a +++ b/src/index/count01.a @@ -3,4 +3,4 @@ ; ; This file is automatically generated ; -!word 37 +!word 38 diff --git a/src/index/count11.a b/src/index/count11.a index 30c4e2a..a2b3f31 100644 --- a/src/index/count11.a +++ b/src/index/count11.a @@ -3,4 +3,4 @@ ; ; This file is automatically generated ; -!word 56 +!word 57 diff --git a/src/index/coverfade.idx.a b/src/index/coverfade.idx.a index a9f2f36..b02a693 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 2039362 + !be24 2065684 !le16 306 diff --git a/src/index/credits.idx.a b/src/index/credits.idx.a index e229eae..338fb99 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 2040012 + !be24 2066334 !le16 336 diff --git a/src/index/decrunch.idx.a b/src/index/decrunch.idx.a index 6844e4d..47665b3 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 2040348 + !be24 2066670 !le16 303 diff --git a/src/index/demo.idx.a b/src/index/demo.idx.a index 0b8169b..a4e9ef4 100644 --- a/src/index/demo.idx.a +++ b/src/index/demo.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 1667104 + !be24 1693246 !le16 69 diff --git a/src/index/dfx.idx.a b/src/index/dfx.idx.a index f9d553b..1d806d1 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 2030091 + !be24 2056327 !le16 1640 diff --git a/src/index/dgr.fizzle.idx.a b/src/index/dgr.fizzle.idx.a index a4302ca..89be47c 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 2039744 + !be24 2066066 !le16 67 diff --git a/src/index/dgr.idx.a b/src/index/dgr.idx.a index 8fe5365..b632093 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 2038779 + !be24 2065101 !le16 12 diff --git a/src/index/dhgr.idx.a b/src/index/dhgr.idx.a index 7de4dbd..f1be0c0 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 2037961 - !le16 766 + !be24 2064239 + !le16 810 diff --git a/src/index/dtitle.idx.a b/src/index/dtitle.idx.a index 6865f83..c50a7ca 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 2036039 - !le16 229 + !be24 2062303 + !le16 243 diff --git a/src/index/fx.idx.a b/src/index/fx.idx.a index e98af74..f891558 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 2027451 + !be24 2053687 !le16 2640 diff --git a/src/index/gamehelp.idx.a b/src/index/gamehelp.idx.a index 530946d..a561132 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 2032089 - !le16 999 + !be24 2058325 + !le16 1013 diff --git a/src/index/gr.fizzle.idx.a b/src/index/gr.fizzle.idx.a index 2996b02..d4446e5 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 2039668 + !be24 2065990 !le16 76 diff --git a/src/index/gr.idx.a b/src/index/gr.idx.a index 5d1e74d..18f33c0 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 2038727 + !be24 2065049 !le16 52 diff --git a/src/index/helptext.idx.a b/src/index/helptext.idx.a index f18d90b..cedeae0 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 2039811 + !be24 2066133 !le16 201 diff --git a/src/index/hgr0.idx.a b/src/index/hgr0.idx.a index 41644c2..60f395b 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 2036268 + !be24 2062546 !le16 335 diff --git a/src/index/hgr1.idx.a b/src/index/hgr1.idx.a index 48231b3..320b187 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 2036603 + !be24 2062881 !le16 89 diff --git a/src/index/hgr2.idx.a b/src/index/hgr2.idx.a index d05301f..f3a165d 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 2036692 + !be24 2062970 !le16 92 diff --git a/src/index/hgr3.idx.a b/src/index/hgr3.idx.a index 37266b0..649d7db 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 2036784 + !be24 2063062 !le16 175 diff --git a/src/index/hgr4.idx.a b/src/index/hgr4.idx.a index 327ff8c..749aabf 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 2036959 + !be24 2063237 !le16 713 diff --git a/src/index/hgr5.idx.a b/src/index/hgr5.idx.a index 2654133..4e1a556 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 2037672 + !be24 2063950 !le16 285 diff --git a/src/index/hgr6.idx.a b/src/index/hgr6.idx.a index dac1fbd..c47bb08 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 2037957 + !be24 2064235 !le16 4 diff --git a/src/index/joystick.idx.a b/src/index/joystick.idx.a index ee176f9..b69b8a9 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 2040651 + !be24 2066973 !le16 2370 diff --git a/src/index/miniattract0.idx.a b/src/index/miniattract0.idx.a index c87a2fe..3922857 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 2034208 + !be24 2060458 !le16 491 diff --git a/src/index/miniattract1.idx.a b/src/index/miniattract1.idx.a index 00c1423..eecd5c1 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 2034699 - !le16 512 + !be24 2060949 + !le16 526 diff --git a/src/index/prelaunch.idx.a b/src/index/prelaunch.idx.a index 26ca254..80bbad2 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 2025474 - !le16 999 + !be24 2051696 + !le16 1013 diff --git a/src/index/res.cover.idx.a b/src/index/res.cover.idx.a index 67129f9..dcc29e6 100644 --- a/src/index/res.cover.idx.a +++ b/src/index/res.cover.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 532523 + !be24 549419 !le16 8184 diff --git a/src/index/res.help.idx.a b/src/index/res.help.idx.a index c921143..3738afa 100644 --- a/src/index/res.help.idx.a +++ b/src/index/res.help.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 548899 + !be24 565795 !le16 8184 diff --git a/src/index/res.title.idx.a b/src/index/res.title.idx.a index 2d3f23a..c5b92d4 100644 --- a/src/index/res.title.idx.a +++ b/src/index/res.title.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 540707 + !be24 557603 !le16 8192 diff --git a/src/index/search00.idx.a b/src/index/search00.idx.a index e5f9046..9c8e00b 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 2017470 + !be24 2043612 !le16 886 diff --git a/src/index/search01.idx.a b/src/index/search01.idx.a index d8c8aa0..b587d0c 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 2018678 - !le16 1370 + !be24 2044820 + !le16 1396 diff --git a/src/index/search10.idx.a b/src/index/search10.idx.a index 2d7684e..994c1ce 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 2020610 + !be24 2046792 !le16 1440 diff --git a/src/index/search11.idx.a b/src/index/search11.idx.a index e82b072..eb27f42 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 2022578 - !le16 2076 + !be24 2048760 + !le16 2102 diff --git a/src/index/sfx.idx.a b/src/index/sfx.idx.a index 052450c..42a0db3 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 2031731 + !be24 2057967 !le16 358 diff --git a/src/index/slideshow.idx.a b/src/index/slideshow.idx.a index cdabb02..adfc78d 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 2033088 + !be24 2059338 !le16 1120 diff --git a/src/index/title.idx.a b/src/index/title.idx.a index cbd05de..ca53888 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 2035211 + !be24 2061475 !le16 828 diff --git a/src/index/xsingle.idx.a b/src/index/xsingle.idx.a index 570d977..417381a 100644 --- a/src/index/xsingle.idx.a +++ b/src/index/xsingle.idx.a @@ -4,5 +4,5 @@ ; This file is automatically generated ; !byte 0 - !be24 2017044 + !be24 2043186 !le16 426 diff --git a/src/prelaunch/wipeout.a b/src/prelaunch/wipeout.a new file mode 100644 index 0000000..c56ae77 --- /dev/null +++ b/src/prelaunch/wipeout.a @@ -0,0 +1,19 @@ +;license:MIT + +!cpu 6502 +!to "build/PRELAUNCH.INDEXED/WIPEOUT",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + lda #$4C + sta $356C + jsr $800 + +DISABLE_ACCEL + +RESET_VECTOR $100 + jmp $356F + +!if * > $1C0 { + !error "code is too large, ends at ", * +}