diff --git a/res/ACTION.HGR.UNCOMPRESSED/ANTIAIR b/res/ACTION.HGR.UNCOMPRESSED/ANTIAIR new file mode 100644 index 000000000..35b5c12ca Binary files /dev/null and b/res/ACTION.HGR.UNCOMPRESSED/ANTIAIR differ diff --git a/res/ACTION.HGR.UNCOMPRESSED/ANTIAIR2 b/res/ACTION.HGR.UNCOMPRESSED/ANTIAIR2 new file mode 100644 index 000000000..8dfc18b35 Binary files /dev/null and b/res/ACTION.HGR.UNCOMPRESSED/ANTIAIR2 differ diff --git a/res/ACTION.HGR/ANTIAIR b/res/ACTION.HGR/ANTIAIR new file mode 100644 index 000000000..0336429c0 Binary files /dev/null and b/res/ACTION.HGR/ANTIAIR differ diff --git a/res/ACTION.HGR/ANTIAIR2 b/res/ACTION.HGR/ANTIAIR2 new file mode 100644 index 000000000..af68fbcf1 Binary files /dev/null and b/res/ACTION.HGR/ANTIAIR2 differ diff --git a/res/ATTRACT/ANTIAIR b/res/ATTRACT/ANTIAIR new file mode 100644 index 000000000..5d78b7726 --- /dev/null +++ b/res/ATTRACT/ANTIAIR @@ -0,0 +1,9 @@ +# +# Attract mode for ANTIAIR +# This file is automatically generated +# + +ANTIAIR2=A +ANTIAIR=A + +[eof] diff --git a/res/CACHE10.IDX b/res/CACHE10.IDX index 5b6d2072d..2e1b5b50c 100644 Binary files a/res/CACHE10.IDX and b/res/CACHE10.IDX differ diff --git a/res/CACHE11.IDX b/res/CACHE11.IDX index 22d3e9523..6c8e1792a 100644 Binary files a/res/CACHE11.IDX and b/res/CACHE11.IDX differ diff --git a/res/GAMEHELP/ANTIAIR b/res/GAMEHELP/ANTIAIR new file mode 100644 index 000000000..2573a94f9 --- /dev/null +++ b/res/GAMEHELP/ANTIAIR @@ -0,0 +1,17 @@ + + + + + + + +Shoot the aliens to release their cargo + + Don't get blocked in! + + + + joystick to move + + button 0 to fire +[eof] diff --git a/res/GAMES.CONF b/res/GAMES.CONF index 7aab7bc12..3d4c23f1b 100755 --- a/res/GAMES.CONF +++ b/res/GAMES.CONF @@ -1,4 +1,3 @@ -# # Master game list # # Format: @@ -38,6 +37,7 @@ 10061,ANGEL.1=Angel-1 01100,ANGRYBIRDS=Angry Birds 00001,ANKH=Ankh +10001,ANTIAIR=AntiAir 00010,APE.ESCAPE=Ape Escape 00010,AC=Apple Cider Spider 10011,APPLE.INVADER=Apple Invader diff --git a/res/SS/AB6.CONF b/res/SS/AB6.CONF index bf6fde605..6cf1ef3e8 100644 --- a/res/SS/AB6.CONF +++ b/res/SS/AB6.CONF @@ -6,6 +6,7 @@ BY ARENA BUG.BATTLE BANDITS +ANTIAIR A.CITY.DIES B1 AO diff --git a/res/SS/ACTIONAB10.CONF b/res/SS/ACTIONAB10.CONF index 81c623623..4d66695ca 100644 --- a/res/SS/ACTIONAB10.CONF +++ b/res/SS/ACTIONAB10.CONF @@ -8,6 +8,7 @@ AERIAL BATTLEZONE BOULDER.DASH3=BOULDER.DASH AZTEC3=AZTEC +ANTIAIR2=ANTIAIR AQUATRON APPLE.PANIC BEACH.LANDING diff --git a/res/SS/ACTIONAB2.CONF b/res/SS/ACTIONAB2.CONF index 6f6208bb4..2d5446509 100644 --- a/res/SS/ACTIONAB2.CONF +++ b/res/SS/ACTIONAB2.CONF @@ -8,6 +8,7 @@ B21=B2 AGENT.U.S.A ALCAZAR BUBBLE.HEAD +ANTIAIR BW3=BW B12=B1 AXIS.ASSASSIN3=AXIS.ASSASSIN diff --git a/res/SS/INDIE.CONF b/res/SS/INDIE.CONF index c70e351f3..d7a6fa043 100644 --- a/res/SS/INDIE.CONF +++ b/res/SS/INDIE.CONF @@ -8,6 +8,7 @@ GUNTUS SPUTNIK.ATTACK AERIAL BERZAP +ANTIAIR CS GADGETZ BOOTSKELL diff --git a/res/TITLE.HGR.UNPACKED/ANTIAIR b/res/TITLE.HGR.UNPACKED/ANTIAIR new file mode 100644 index 000000000..203b49261 --- /dev/null +++ b/res/TITLE.HGR.UNPACKED/ANTIAIR @@ -0,0 +1 @@ +€øáãçÏ¿€Æıà‡Ÿ¿şğó‡‡ÿ€€€€€€€€€€€€€€€€€€€€€€Àª€ªÁªÕª€Õ€Àª€ª¨…ªÁªÕ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‡€€€€€€€€œ¸€€€€€†€€€€€€€Üƒğ€€€€€€€€€€€€ÀªÕªÁª€ª€Õ€Àª€ªÕª…ªÁªĞŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Àª€ª€€€€€€€€€€ª¨…ªÁªĞŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€şŒó³ŒÀŸ¿şğáóÆıùã瘀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€¨ÕŠÀª€ªÁªÕªÁª€ Õª€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€¿Æû·ìŸ€üğğƒ†€€€€€€€€€€€€Œ³¶ì؀Ʊ€°Ìٱㆀ˜ÆÁ³ƒ€€€€€€ğ€Àƒ€€€€€€€€€€€€Àª€ªÁªÕª€Õ€Àª€ª¨…ªÁªÕ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€À›€€€€€€€€¶ì€€€€À‡€€€€€€Àİ›ö€€€€€€€€€€ÀªÕªÁª€ª€Õ€Àª€ªÕª…ªÁªĞŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Àª€ª€€€€€€€€€€ª¨…ªÁªĞŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Æ›¶Œ€†ã˜˜³¶à˜€ãƱà°ì™€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€¨ÕŠÀª€ªÁªÕªÁª€ Õª€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ŒÎ›°ŒÃ±€ÆÙ™†‡€€€€€€€€€€€€Œ˜°ì؀Ʊ€°àÀ±ã†€˜Àá؃€€€€€€ğ€Àƒ€€€€€€€€€€€€Àª€ªÁªÕª€Õ€Àª€ª¨…ªÁªÕ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€àر€€€€€€€€ãÆ€€€€†€€€€€€àİ»÷€€€€€€€€€ÀªÕªÁª€ª€Õ€Àª€ªÕª…ªÁªĞŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Àª€ª€€€€€€€€€€ª¨…ªÁªĞŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Æ›°Œ€†ã˜Œ˜°à˜€ãƱà°ì›€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€¨ÕŠÀª€ªÁªÕªÁª€ Õª€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ŒŞ›°ŒÃ±€àƒÇ‡€€€€€€€€€€€€ø™°ìÜ¿€ş±øãçÀ±óşğÃáؽÿ€€€€€€øà‡€€€€€€€€€€€€Àª€ªÁªÕª€Õ€Àª€ª¨…ªÁªÕ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€àر€€€€€€€€ãÆ€€€€†€€€€€€àİ»÷€€€€€€€€€ÀªÕªÁª€ª€Õ€Àª€ªÕª…ªÁªĞŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Àª€ª€€€€€€€€€€ª¨…ªÁªĞŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Æóó€†ó˜ìÛ÷¿Æ±à°ìŸ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€¨ÕŠÀª€ªÁªÕªÁª€ Õª€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Œşû·ŒÃ±€øŒãㆀ€€€€€€€€€€€€›°ìǀƱ€€ìÀ±Ÿ†€€Æáß±ƒ€€€€€€øà‡€€€€€€€€€€€€Àª€ªÁªĞª€Õ€Àª€ª¨…ªÁªĞŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€àر€€€€€€€€ãÆ€€€€†€€€€€€àİ»÷€€€€€€€€€Àª€ª€€€€€€€€€€ª¨…ªÁªÕ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€şŒƒ¶Œ€†Ÿ˜Œ›¶à‡€ãƱà°ì€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Àª€ªÁª…ª€Õ€Àª€ª¨…€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Œö›°ŒÃ±€¼Œó±†€€€€€€€€€€€€Œ³¶ì΀Ʊ€°ÌÙ±»†€˜Æᘳƒ€€€€€€üƒğ€€€€€€€€€€€€Àª€ªÁªĞª€Õ€Àª€ª¨…ªÁªĞŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€À›€€€€€€€€¶ì€€€€€†€€€€€€€€€€€€€€€€€€€€€€€Àª€ª€€€€€€€€€€ª¨…ªÁªÕ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€†Œ›¶Œ€†»˜˜³¶à€ãƱà°ìœ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Àª€ªÁª…ª€Õ€Àª€ª¨…€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Œæ›°ŒÃ±€Ø¹ğ€€€€€€€€€€€€øáãçÜ¿€Æıà‡ŸóşğÃᘾÿ€€€€€€üƒğ€€€€€€€€€€€€Àª€ªÁªĞª€Õ€Àª€ª¨…ªÁªĞŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‡€€€€€€€€œ¸€€€€ÀŸ€€€€€€àÿ¿ÿÿ€€€€€€€€€€€Àª€ª€€€€€€€€€€ª¨…ªÁªÕ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€†øñ³Œ€†óşğã÷¿ü°àà瘀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Àª€ªÁª…ª€Õ€Àª€ª¨…€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€¿Æù™à‡ƒŸ€şñø‡†€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€üƒğ€€€€€€€€€€€€Àª€ªÁªĞª€Õ€Àª€ª¨…ªÁªĞŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ÀŸ¾ü€€€€€€€€€€€€Àª€ª€€€€€€€€€€ª¨…ªÁªÕ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Àª€ªÁª…ª€Õ€Àª€ª¨…€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ \ No newline at end of file diff --git a/res/TITLE.HGR/ANTIAIR b/res/TITLE.HGR/ANTIAIR new file mode 100644 index 000000000..2de38ed8d --- /dev/null +++ b/res/TITLE.HGR/ANTIAIR @@ -0,0 +1 @@ +€øáãçÏ¿€Æıà‡Ÿ¿şğó‡‡ÿ€€€€€€€€€€€€€€€€€€€€€€Àª€ªÁªÕª€Õ€Àª€ª¨…ªÁªÕ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‡€€€€€€€€œ¸€€€€€†€€€€€€€Üƒğ€€€€€€€€€€€€ÀªÕªÁª€ª€Õ€Àª€ªÕª…ªÁªĞŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Àª€ª€€€€€€€€€€ª¨…ªÁªĞŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€şŒó³ŒÀŸ¿şğáóÆıùã瘀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€¨ÕŠÀª€ªÁªÕªÁª€ Õª€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€¿Æû·ìŸ€üğğƒ†€€€€€€€€€€€€Œ³¶ì؀Ʊ€°Ìٱㆀ˜ÆÁ³ƒ€€€€€€ğ€Àƒ€€€€€€€€€€€€Àª€ªÁªÕª€Õ€Àª€ª¨…ªÁªÕ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€À›€€€€€€€€¶ì€€€€À‡€€€€€€Àİ›ö€€€€€€€€€€ÀªÕªÁª€ª€Õ€Àª€ªÕª…ªÁªĞŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Àª€ª€€€€€€€€€€ª¨…ªÁªĞŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Æ›¶Œ€†ã˜˜³¶à˜€ãƱà°ì™€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€¨ÕŠÀª€ªÁªÕªÁª€ Õª€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ŒÎ›°ŒÃ±€ÆÙ™†‡€€€€€€€€€€€€Œ˜°ì؀Ʊ€°àÀ±ã†€˜Àá؃€€€€€€ğ€Àƒ€€€€€€€€€€€€Àª€ªÁªÕª€Õ€Àª€ª¨…ªÁªÕ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€àر€€€€€€€€ãÆ€€€€†€€€€€€àİ»÷€€€€€€€€€ÀªÕªÁª€ª€Õ€Àª€ªÕª…ªÁªĞŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Àª€ª€€€€€€€€€€ª¨…ªÁªĞŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Æ›°Œ€†ã˜Œ˜°à˜€ãƱà°ì›€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€¨ÕŠÀª€ªÁªÕªÁª€ Õª€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ŒŞ›°ŒÃ±€àƒÇ‡€€€€€€€€€€€€ø™°ìÜ¿€ş±øãçÀ±óşğÃáؽÿ€€€€€€øà‡€€€€€€€€€€€€Àª€ªÁªÕª€Õ€Àª€ª¨…ªÁªÕ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€àر€€€€€€€€ãÆ€€€€†€€€€€€àİ»÷€€€€€€€€€ÀªÕªÁª€ª€Õ€Àª€ªÕª…ªÁªĞŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Àª€ª€€€€€€€€€€ª¨…ªÁªĞŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Æóó€†ó˜ìÛ÷¿Æ±à°ìŸ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€¨ÕŠÀª€ªÁªÕªÁª€ Õª€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Œşû·ŒÃ±€øŒãㆀ€€€€€€€€€€€€›°ìǀƱ€€ìÀ±Ÿ†€€Æáß±ƒ€€€€€€øà‡€€€€€€€€€€€€Àª€ªÁªĞª€Õ€Àª€ª¨…ªÁªĞŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€àر€€€€€€€€ãÆ€€€€†€€€€€€àİ»÷€€€€€€€€€Àª€ª€€€€€€€€€€ª¨…ªÁªÕ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€şŒƒ¶Œ€†Ÿ˜Œ›¶à‡€ãƱà°ì€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Àª€ªÁª…ª€Õ€Àª€ª¨…€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Œö›°ŒÃ±€¼Œó±†€€€€€€€€€€€€Œ³¶ì΀Ʊ€°ÌÙ±»†€˜Æᘳƒ€€€€€€üƒğ€€€€€€€€€€€€Àª€ªÁªĞª€Õ€Àª€ª¨…ªÁªĞŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€À›€€€€€€€€¶ì€€€€€†€€€€€€€€€€€€€€€€€€€€€€€Àª€ª€€€€€€€€€€ª¨…ªÁªÕ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€†Œ›¶Œ€†»˜˜³¶à€ãƱà°ìœ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Àª€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ªÁª…ª€€€€€€€Àª€ªÁª…ª€Õ€Àª€ª¨…€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Œæ›°ŒÃ±€Ø¹ğ€€€Õ€Àª€ª¨€øáãçÜ¿€Æıà‡ŸóşğÃᘾÿ€€€€€€üƒğ€€€€€€€€€€€€Àª€ªÁªĞª€Õ€Àª€ª¨…ªÁªĞŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€…€€€€€€€€€€€€‡€€€€€€€€œ¸€€€€ÀŸ€€€€€€àÿ¿ÿÿ€€€€€€€€€€€Àª€ª€€€€€€€€€€ª¨…ªÁªÕ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€†øñ³Œ€†óşğã÷¿ü°àà瘀€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Àª€ªÁª…ª€Õ€Àª€ª¨…€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€¿Æù™à‡ƒŸ€şñø‡†€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€üƒğ€€€€€€€€€€€€Àª€ªÁªĞª€Õ€Àª€ª¨…ªÁªĞŠ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ÀŸ¾ü€€€€€€€€€€€€Àª€ª€€€€€€€€€€ª¨…ªÁªÕ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ \ No newline at end of file diff --git a/res/dsk/antiair (4am pack).po b/res/dsk/antiair (4am pack).po new file mode 100644 index 000000000..5dd541fff Binary files /dev/null and b/res/dsk/antiair (4am pack).po differ diff --git a/res/history.md b/res/history.md index 4c1a9bcc0..18d2c3087 100644 --- a/res/history.md +++ b/res/history.md @@ -1,5 +1,11 @@ # Total Replay changelog +## Revision 5.2 / unreleased + +### Games added in v5.2 + +- AntiAir + ## Revision 5.1 / serial number 20240216 ### Games added in v5.1 diff --git a/res/ports/antiair/Makefile b/res/ports/antiair/Makefile new file mode 100644 index 000000000..c2dc4f4f3 --- /dev/null +++ b/res/ports/antiair/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=ANTIAIR +LOADER=$(BUILDDIR)/LOADER.SYSTEM\#FF2000 +EXE=$(BUILDDIR)/ANTIAIR\#068000 +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/antiair.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)" 140KB -C + +all: clean mount + +.NOTPARALLEL: diff --git a/res/ports/antiair/build/ANTIAIR#068000 b/res/ports/antiair/build/ANTIAIR#068000 new file mode 100644 index 000000000..ccc152c14 Binary files /dev/null and b/res/ports/antiair/build/ANTIAIR#068000 differ diff --git a/res/ports/antiair/build/ANTIAIR.po b/res/ports/antiair/build/ANTIAIR.po new file mode 100644 index 000000000..5dd541fff Binary files /dev/null and b/res/ports/antiair/build/ANTIAIR.po differ diff --git a/res/ports/antiair/build/LOADER.SYSTEM#FF2000 b/res/ports/antiair/build/LOADER.SYSTEM#FF2000 new file mode 100644 index 000000000..2088414b3 Binary files /dev/null and b/res/ports/antiair/build/LOADER.SYSTEM#FF2000 differ diff --git a/res/ports/antiair/src/OBJ b/res/ports/antiair/src/OBJ new file mode 100644 index 000000000..b816b89c7 Binary files /dev/null and b/res/ports/antiair/src/OBJ differ diff --git a/res/ports/antiair/src/OBJ.X b/res/ports/antiair/src/OBJ.X new file mode 100644 index 000000000..1fec6e6e7 Binary files /dev/null and b/res/ports/antiair/src/OBJ.X differ diff --git a/res/ports/antiair/src/antiair.a b/res/ports/antiair/src/antiair.a new file mode 100644 index 000000000..ad3612c7e --- /dev/null +++ b/res/ports/antiair/src/antiair.a @@ -0,0 +1,29 @@ +!cpu 6502 +*=$8000 +!to "build/ANTIAIR#068000",plain + + !src "../common/src/constants.a" + !src "../common/src/macros.a" + + jmp start + +compressed_data + !bin "src/OBJ.X" +FORWARD_DECRUNCHING = 1 +SHOW_PROGRESS_DURING_DECRUNCH = 0 + !src "../common/src/exodecrunch.a" + +start + +INIT_MACHINE +!if * != $955A { + !serious "Adjust prelaunch to patch JSR at ", *, " to JMP" +} + 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/res/ports/antiair/src/loader.a b/res/ports/antiair/src/loader.a new file mode 100644 index 000000000..7f93713d5 --- /dev/null +++ b/res/ports/antiair/src/loader.a @@ -0,0 +1,25 @@ +!cpu 6502 +*=$2000 +!to "build/LOADER.SYSTEM#FF2000",plain + + !src "../common/src/constants.a" + !src "../common/src/macros.a" + + +READ_ENTIRE_FILE parm_boot_open, parm_boot_read + jmp (entry) + +parm_boot_open + !byte 3 + !word filename + !word $2100 + !byte 0 + +parm_boot_read + !byte 4 + !byte 1 +entry !word $8000 + !word $FFFF + !word 0 + +filename + !text 7,"ANTIAIR" diff --git a/res/ports/common/res/PRODOS#FF0000 b/res/ports/common/res/PRODOS#FF0000 new file mode 100644 index 000000000..7760a2740 Binary files /dev/null and b/res/ports/common/res/PRODOS#FF0000 differ diff --git a/res/ports/common/src/constants.a b/res/ports/common/src/constants.a new file mode 100644 index 000000000..9e9a6c245 --- /dev/null +++ b/res/ports/common/src/constants.a @@ -0,0 +1,73 @@ +;license:MIT +;(c) 2024 by 4am +; + +!ifndef _CONSTANTS_ { + +SELF_MODIFIED_BYTE = $FD +SELF_MODIFIED_WORD = $FDFD + +; standard memory addresses +CH = $24 +CV = $25 +BASL = $28 +INVFLG = $32 +RWTS_PTR = $48 +RNDL = $4E +RNDH = $4F +PRODOS_MLI = $BF00 +PRODOS_BOOT_UNIT = $BF30 +PRODOS_MEMORY_MAP = $BF58 +PRODOS_MACHID = $BF98 +KBD = $C000 +CLEARKBD = $C010 +STOREOFF = $C000 ; STA then use the following 4 flags: +READMAINMEM = $C002 ; STA to read from main mem +READAUXMEM = $C003 ; STA to read from aux mem +WRITEMAINMEM = $C004 ; STA to write to main mem +WRITEAUXMEM = $C005 ; STA to write to aux mem +CLR80VID = $C00C ; 40 columns +PRIMARYCHARSET = $C00E ; no mousetext for you +ALTCHARSET = $C00F ; yay mousetext +CLEARKBD = $C010 ; clear last key pressed +SLOT3STATUS = $C017 ; bit 7 only +MONOCOLOR = $C021 ; IIgs bit 7 switches composite mono/color modes +TBCOLOR = $C022 ; IIgs text foreground and background colors (also VidHD but write-only) +NEWVIDEO = $C029 ; IIgs graphics modes (also VidHD) +CLOCKCTL = $C034 ; bits 0-3 are IIgs border color (also VidHD) +GFXMODE = $C050 +TEXTMODE = $C051 +FULLGFX = $C052 +MIXEDGFX = $C053 +PAGE1 = $C054 ; page 1 (affects text, HGR, DHGR) +PAGE2 = $C055 ; page 2 (affects text, HGR, DHGR) +HIRES = $C057 +AUXMOVE = $C311 +ROM_TEXT = $FB2F +ROM_FINALIZE_RESET = $FB6F +ROM_MACHINEID = $FBB3 +ROM_BASCALC = $FBC1 +ROM_HOME = $FC58 +ROM_CLREOL_FROM_Y = $FC9E +ROM_WAIT = $FCA8 +ROM_KEYIN = $FD1B +ROM_COUT = $FDED +ROM_COUT1 = $FDF0 +ROM_INVERSE = $FE80 ; INVERSE text +ROM_NORMAL = $FE84 ; NORMAL text (instead of INVERSE or FLASH) +ROM_IN0 = $FE89 ; SETKBD +ROM_PR0 = $FE93 ; SETVID + +; ProDOS constants +CMD_QUIT = $65 +CMD_ONLINE = $C5 +CMD_SETPREFIX = $C6 +CMD_GETPREFIX = $C7 +CMD_OPEN = $C8 +CMD_READ = $CA +CMD_WRITE = $CB +CMD_CLOSE = $CC +CMD_SEEK = $CE + +_CONSTANTS_=* +} diff --git a/res/ports/common/src/exodecrunch.a b/res/ports/common/src/exodecrunch.a new file mode 100644 index 000000000..eee15c32f --- /dev/null +++ b/res/ports/common/src/exodecrunch.a @@ -0,0 +1,487 @@ +; This source code is altered and is not the original version found on +; the Exomizer homepage. +; It contains modifications made by qkumba to depack a packed file +; optionally crunched forward, and additional modifications by 4am +; for an optional progress UI. +; +; Original copyright statement follows: +; +; Copyright (c) 2002 - 2018 Magnus Lind. +; +; This software is provided 'as-is', without any express or implied warranty. +; In no event will the authors be held liable for any damages arising from +; the use of this software. +; +; Permission is granted to anyone to use this software for any purpose, +; including commercial applications, and to alter it and redistribute it +; freely, subject to the following restrictions: +; +; 1. The origin of this software must not be misrepresented; you must not +; claim that you wrote the original software. If you use this software in a +; product, an acknowledgment in the product documentation would be +; appreciated but is not required. +; +; 2. Altered source versions must be plainly marked as such, and must not +; be misrepresented as being the original software. +; +; 3. This notice may not be removed or altered from any distribution. +; +; 4. The names of this software and/or it's copyright holders may not be +; used to endorse or promote products derived from this software without +; specific prior written permission. +; +; ------------------------------------------------------------------- +; The decruncher jsr:s to the get_crunched_byte address when it wants to +; read a crunched byte into A. This subroutine has to preserve X and Y +; register and must not modify the state of the carry nor the overflow flag. +; ------------------------------------------------------------------- +;.import get_crunched_byte +; ------------------------------------------------------------------- +; this function is the heart of the decruncher. +; It initializes the decruncher zeropage locations and precalculates the +; decrunch tables and decrunches the data +; This function will not change the interrupt status bit and it will not +; modify the memory configuration. +; ------------------------------------------------------------------- +;.export decrunch + +; ------------------------------------------------------------------- +; Controls if the shared get_bits routines should be inlined or not. +;INLINE_GET_BITS=1 +; ------------------------------------------------------------------- +; if literal sequences is not used (the data was crunched with the -c +; flag) then the following line can be uncommented for shorter and. +; slightly faster code. +;LITERAL_SEQUENCES_NOT_USED = 1 +; ------------------------------------------------------------------- +; if the sequence length is limited to 256 (the data was crunched with +; the -M256 flag) then the following line can be uncommented for +; shorter and slightly faster code. +;MAX_SEQUENCE_LENGTH_256 = 1 +; ------------------------------------------------------------------- +; if the sequence length 3 has its own offset table then the following +; line can be uncommented for in some situations slightly better +; compression at the cost of a larger decrunch table. +EXTRA_TABLE_ENTRY_FOR_LENGTH_THREE = 1 +; ------------------------------------------------------------------- +; optional progress UI +!IFNDEF SHOW_PROGRESS_DURING_DECRUNCH { + !set SHOW_PROGRESS_DURING_DECRUNCH = 0 +} +; ------------------------------------------------------------------- +; zero page addresses used +; ------------------------------------------------------------------- +zp_len_lo = $a7 +zp_len_hi = $a8 + +zp_src_lo = $ae +zp_src_hi = zp_src_lo + 1 + +zp_bits_hi = $fc + +zp_bitbuf = $fd +zp_dest_lo = zp_bitbuf + 1 ; dest addr lo +zp_dest_hi = zp_bitbuf + 2 ; dest addr hi + +!IFDEF EXTRA_TABLE_ENTRY_FOR_LENGTH_THREE { +encoded_entries = 68 +} ELSE { +encoded_entries = 52 +} + +tabl_bi = decrunch_table +tabl_lo = decrunch_table + encoded_entries +tabl_hi = decrunch_table + encoded_entries * 2 + + ;; refill bits is always inlined +!MACRO mac_refill_bits { + pha + jsr get_crunched_byte + rol + sta zp_bitbuf + pla +} + +!IFDEF INLINE_GET_BITS { +!MACRO mac_get_bits { + adc #$80 ; needs c=0, affects v + asl + bpl gb_skip +gb_next: + asl zp_bitbuf + bne gb_ok + mac_refill_bits +gb_ok: + rol + bmi gb_next +gb_skip: + bvc skip +gb_get_hi: + sec + sta zp_bits_hi + jsr get_crunched_byte +skip: +} +} ELSE { +!MACRO mac_get_bits { + jsr get_bits +} +get_bits: + adc #$80 ; needs c=0, affects v + asl + bpl gb_skip +gb_next: + asl zp_bitbuf + bne gb_ok + +mac_refill_bits +gb_ok: + rol + bmi gb_next +gb_skip: + bvs gb_get_hi + rts +gb_get_hi: + sec + sta zp_bits_hi + jmp get_crunched_byte +} +; ------------------------------------------------------------------- +; no code below this comment has to be modified in order to generate +; a working decruncher of this source file. +; However, you may want to relocate the tables last in the file to a +; more suitable address. +; ------------------------------------------------------------------- + +; ------------------------------------------------------------------- +; jsr this label to decrunch, it will in turn init the tables and +; call the decruncher +; no constraints on register content, however the +; decimal flag has to be #0 (it almost always is, otherwise do a cld) +decrunch: + +!IF SHOW_PROGRESS_DURING_DECRUNCH = 1 { + ldx #(kExoProgressWidth+2) + lda #$DF +- sta $0528+(20-(kExoProgressWidth/2))-2, x + sta $05A8+(20-(kExoProgressWidth/2))-2, x + dex + bpl - + lda #$20 + sta $05A8+(20-(kExoProgressWidth/2))-2 + sta $05A8+(20-(kExoProgressWidth/2))+kExoProgressWidth + lda #$A8+(20-(kExoProgressWidth/2))-1 + sta ExoProgressPtr+1 +decrunch_no_reset_progress: +} +; ------------------------------------------------------------------- +; init zeropage, x and y regs. (12 bytes) +; + ldy #0 + ldx #3 +init_zp: + jsr get_crunched_byte + sta zp_bitbuf - 1,x + dex + bne init_zp +; ------------------------------------------------------------------- +; calculate tables (62 bytes) + get_bits macro +; x and y must be #0 when entering +; + clc +table_gen: + tax + tya + and #$0f + sta tabl_lo,y + beq shortcut ; start a new sequence +; ------------------------------------------------------------------- + txa + adc tabl_lo - 1,y + sta tabl_lo,y + lda zp_len_hi + adc tabl_hi - 1,y +shortcut: + sta tabl_hi,y +; ------------------------------------------------------------------- + lda #$01 + sta .mainstart + sta $3D + lda #<.mainend + sta $3E + lda #>.mainend + sta $3F + lda #<.auxstart + sta $42 + lda #>.auxstart + sta $43 + sec + jsr AUXMOVE +} diff --git a/res/ports/common/src/prodos.init.a b/res/ports/common/src/prodos.init.a new file mode 100644 index 000000000..08e533b00 --- /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/src/index/artwork.idx.a b/src/index/artwork.idx.a index c5a895943..4e05ac8da 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 15468090 + !be24 15483299 !le16 5112 diff --git a/src/index/attract.idx.a b/src/index/attract.idx.a index e0d4cbcf3..c30ff7829 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 15413369 + !be24 15428507 !le16 5695 diff --git a/src/index/cache00.idx.a b/src/index/cache00.idx.a index ddb090fb7..3c5c27e33 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 15346289 + !be24 15361347 !le16 4043 diff --git a/src/index/cache01.idx.a b/src/index/cache01.idx.a index 27238a127..f0965225b 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 15360536 + !be24 15375594 !le16 4508 diff --git a/src/index/cache10.idx.a b/src/index/cache10.idx.a index df4f24f57..62273c286 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 15378696 - !le16 5840 + !be24 15393780 + !le16 5847 diff --git a/src/index/cache11.idx.a b/src/index/cache11.idx.a index 298f334c9..b55584683 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 15399545 - !le16 6466 + !be24 15414662 + !le16 6473 diff --git a/src/index/count10.a b/src/index/count10.a index 01fcdd90e..cc804c4fc 100644 --- a/src/index/count10.a +++ b/src/index/count10.a @@ -3,4 +3,4 @@ ; ; This file is automatically generated ; -!word 443 +!word 444 diff --git a/src/index/count11.a b/src/index/count11.a index 7bc744f3b..bb2909f1d 100644 --- a/src/index/count11.a +++ b/src/index/count11.a @@ -3,4 +3,4 @@ ; ; This file is automatically generated ; -!word 486 +!word 487 diff --git a/src/index/coverfade.idx.a b/src/index/coverfade.idx.a index ff89cd90e..7660a5622 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 15473202 + !be24 15488411 !le16 410 diff --git a/src/index/credits.idx.a b/src/index/credits.idx.a index 4f285d36f..e4e5b9630 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 15473956 + !be24 15489165 !le16 449 diff --git a/src/index/decrunch.idx.a b/src/index/decrunch.idx.a index 0e45616fc..c1fe615cc 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 15474405 + !be24 15489614 !le16 303 diff --git a/src/index/demo.idx.a b/src/index/demo.idx.a index 3b0c5beb8..544c07270 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 12321166 + !be24 12330724 !le16 1652 diff --git a/src/index/dfx.idx.a b/src/index/dfx.idx.a index f4d2d6f0b..b104c23ad 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 15421704 + !be24 15436842 !le16 1640 diff --git a/src/index/dgr.fizzle.idx.a b/src/index/dgr.fizzle.idx.a index e45143b8a..b3d9753ca 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 15473688 + !be24 15488897 !le16 67 diff --git a/src/index/dgr.idx.a b/src/index/dgr.idx.a index e260d64f3..92999c4a9 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 15468031 + !be24 15483240 !le16 59 diff --git a/src/index/dhgr.idx.a b/src/index/dhgr.idx.a index 406ce43b9..0153ec442 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 15466487 + !be24 15481696 !le16 1426 diff --git a/src/index/dtitle.idx.a b/src/index/dtitle.idx.a index 77572e699..4d6e6efb5 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 15450679 + !be24 15465859 !le16 557 diff --git a/src/index/fx.idx.a b/src/index/fx.idx.a index 44da0e7eb..433648b8c 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 15419064 + !be24 15434202 !le16 2640 diff --git a/src/index/gamehelp.idx.a b/src/index/gamehelp.idx.a index ec2febacf..9bacecdc1 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 15423702 - !le16 7358 + !be24 15438840 + !le16 7372 diff --git a/src/index/gr.fizzle.idx.a b/src/index/gr.fizzle.idx.a index 10d10b768..6ac6142e9 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 15473612 + !be24 15488821 !le16 76 diff --git a/src/index/gr.idx.a b/src/index/gr.idx.a index 354c71964..30cbbcbe5 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 15467913 + !be24 15483122 !le16 118 diff --git a/src/index/helptext.idx.a b/src/index/helptext.idx.a index fed976c43..a10df3b01 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 15473755 + !be24 15488964 !le16 201 diff --git a/src/index/hgr0.idx.a b/src/index/hgr0.idx.a index 5f8e8818e..db4da4cc6 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 15451236 - !le16 4922 + !be24 15466416 + !le16 4951 diff --git a/src/index/hgr1.idx.a b/src/index/hgr1.idx.a index 5fc332b8c..0e8c31175 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 15456158 + !be24 15471367 !le16 1775 diff --git a/src/index/hgr2.idx.a b/src/index/hgr2.idx.a index dd69b91ae..022b8c05a 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 15457933 + !be24 15473142 !le16 1181 diff --git a/src/index/hgr3.idx.a b/src/index/hgr3.idx.a index a678b562e..fb80afcab 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 15459114 + !be24 15474323 !le16 3421 diff --git a/src/index/hgr4.idx.a b/src/index/hgr4.idx.a index 3cbabb205..921aedcba 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 15462535 + !be24 15477744 !le16 3359 diff --git a/src/index/hgr5.idx.a b/src/index/hgr5.idx.a index 4078217d6..5435d1f7d 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 15465894 + !be24 15481103 !le16 479 diff --git a/src/index/hgr6.idx.a b/src/index/hgr6.idx.a index 75b45230a..b37fae6de 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 15466373 + !be24 15481582 !le16 114 diff --git a/src/index/joystick.idx.a b/src/index/joystick.idx.a index 600399d69..22b956777 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 15474708 + !be24 15489917 !le16 2370 diff --git a/src/index/miniattract0.idx.a b/src/index/miniattract0.idx.a index e2d633ff5..79db0ff1d 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 15436434 - !le16 4962 + !be24 15451586 + !le16 4976 diff --git a/src/index/miniattract1.idx.a b/src/index/miniattract1.idx.a index cd41cee3a..4b4e10998 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 15441396 + !be24 15456562 !le16 2400 diff --git a/src/index/prelaunch.idx.a b/src/index/prelaunch.idx.a index 7f6fc543b..4bf4569d9 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 15406011 - !le16 7358 + !be24 15421135 + !le16 7372 diff --git a/src/index/res.cover.idx.a b/src/index/res.cover.idx.a index fe3581d3d..f102e5bdd 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 4165632 + !be24 4173312 !le16 8192 diff --git a/src/index/res.help.idx.a b/src/index/res.help.idx.a index 37d63ad07..4b74252a7 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 4182016 + !be24 4189696 !le16 8192 diff --git a/src/index/res.title.idx.a b/src/index/res.title.idx.a index 760d485b7..a91e93043 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 4173824 + !be24 4181504 !le16 8192 diff --git a/src/index/search00.idx.a b/src/index/search00.idx.a index 91caa3215..23ac94795 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 15337022 + !be24 15352080 !le16 9267 diff --git a/src/index/search01.idx.a b/src/index/search01.idx.a index bbc3dfb33..2198532c4 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 15350332 + !be24 15365390 !le16 10204 diff --git a/src/index/search10.idx.a b/src/index/search10.idx.a index 413f4146c..dd7e3d1cd 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 15365044 - !le16 13652 + !be24 15380102 + !le16 13678 diff --git a/src/index/search11.idx.a b/src/index/search11.idx.a index 39c564bb7..12064abc5 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 15384536 - !le16 15009 + !be24 15399627 + !le16 15035 diff --git a/src/index/sfx.idx.a b/src/index/sfx.idx.a index c98bca16c..77a5cf55c 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 15423344 + !be24 15438482 !le16 358 diff --git a/src/index/slideshow.idx.a b/src/index/slideshow.idx.a index 9208651e4..099474688 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 15431060 + !be24 15446212 !le16 5374 diff --git a/src/index/title.idx.a b/src/index/title.idx.a index bb3f4f4dd..d8ffcfd06 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 15443796 - !le16 6883 + !be24 15458962 + !le16 6897 diff --git a/src/index/xsingle.idx.a b/src/index/xsingle.idx.a index 96decdb7f..15ade341f 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 15332804 - !le16 4218 + !be24 15347846 + !le16 4234 diff --git a/src/prelaunch/antiair.a b/src/prelaunch/antiair.a new file mode 100644 index 000000000..110f0f88f --- /dev/null +++ b/src/prelaunch/antiair.a @@ -0,0 +1,19 @@ +;license:MIT +;(c) 2024 by 4am + +!cpu 6502 +!to "build/PRELAUNCH.INDEXED/ANTIAIR",plain +*=$106 + + !source "src/prelaunch/common.a" + + +ENABLE_ACCEL + lda #$4C + sta $955A + jsr $8000 ; decompress + +DISABLE_ACCEL + jmp $4000 + +!if * > $1C0 { + !error "code is too large, ends at ", * +}