'SPACE HARRIER INTENT 'BY NATHANIEL R. BABIAK, DRGONZO AND GREENPILLOZ 'BULLETSUB FROM LOWRESGALAXY2 BY TIMO 'LANDSCAPE DEMO 0.1, BY NATHANIEL R. BABIAK, ED. JANUARY 26, 2021. '...TO DO... '(1) INFINTE STRAFING. '(2) PITCH CHANGE. '(3) STRICTLY SPEAKING, THE Y-PITCH SHOULD EFFECT THE CALCULATION OF THE Z-DEPTH FOR PALETTE 'RASTER INTERRUPT COLORING, BUT THIS IS NOT TRIVIAL. '------------------------------------------- GAMEPAD 1 FOR I = 0 TO 11 FORMFEED$ = FORMFEED$ + CHR$(10) NEXT I DIM GLOBAL P0C1(127), P0C2(127), P1C1(127), P1C2(127) GLOBAL BG0X, BG0Y, DBG0Y ON RASTER CALL RAST BG COPY 0,0,22,7 TO -1,9 GREENLO = %000100 GREENHI = %001000 CYANLO = %000101 CYANHI = %001010 '[P]OSITION, [V]ELOCITY, [A]CCELERATION... USED FOR X (STRAFE) AND Z (DEPTH). PX = 0.00 VX = 0.25 PZ = 0.00 VZ = 0.00 AZACC = 0.05 AZDEC = -0.15 '[R]ADIANS, [W] ANGULAR VELOCITY (GREEK OMEGA LOOKS LIKE A LATIN W)... USED FOR Y (PITCH). RY = 0.00 * PI / 180 '...IS THE ANGULAR BIAS FROM ZERO-TO-POSITIVE (AS SHOWN) OR FROM NEGATIVE-TO-ZERO?... RYMIN = 0.00 * PI / 180 RYMAX = 29.74 * PI / 180 WY = 0.10 * PI / 180 '3D [G]RAPHIC PLANE, UNITS PIXELS, Z DEPTH AT SCREEN (I.E. FLAT PLANE) WHEN HORZ FOV 75 DEG. GZ0 = 80 / TAN( 37.5 * PI / 180 ) 'Y ELEVATION AT PLANE GRADE. GY = -70 'PRE-CALC NOW FOR SPEED LATER. DIM PY2GZ(127) '2D [F]LAT PLANE (I.E. SCREEN). FOR FY = -70 TO -15 '[P]IXEL MAPPING. PY = INT( 57.5 - FY ) 'SLOPE GRADE ERROR LESS THAN 14.5%. GZ = GY * GZ0 / FY 'PRE-CALC NOW FOR SPEED LATER. PY2GZ( PY ) = GZ NEXT FY '-----------------HARRIER-INIT-------------- GLOBAL BULLET BULLET=5 TICK=0 GLOBAL X0,Y0 X0 = 20*8/2 Y0 = 16*8/2 SCREENHALF=0 SCREENPART=0 'BULLET VALUES DIM GLOBAL FRB(5) DIM GLOBAL XB(5) DIM GLOBAL YB(5) 'HARRIER VALUES GLOBAL POSX,POSY POSX=64 POSY=88 FR=192 'HARRIER SPRITE INIT SPRITE 0 PAL 2 SIZE 3 'HARRIER SHADOW SPRITE INIT SPRITE 7 PAL 2 SIZE 0 SPRITE 7 FLIP 1,0 SPRITE 8 PAL 2 SIZE 0 SPRITE 9 PAL 2 SIZE 0 '----------------------------------------- RANDOMIZE TIMER ' 2-9 PLAYER BULLETS ' 10-25 ALIENS ' 26-29 EXPLOSIONS ' 30-39 ALIEN BULLETS 'ALIENS DIM GLOBAL ALIENS(15,5) ' 0 TYPE (0=DISABLED) ' 1 TICK ' 2 START Y ' 3 HITS ' 4 AMPLITUDE ' 5 SPEED 'ALIEN BULLETS DIM GLOBAL ABULLETS(9,3) ' 0 X ' 1 Y ' 2 X VECTOR ' 3 Y VECTOR 'EXPLOSION TICKS DIM GLOBAL EXPLOSIONS(3) GLOBAL HIGHSCORE GLOBAL TICK,BGTICK GLOBAL LEVEL,SCORE,LIVES GLOBAL SHIELD,HIDE,PEACE GLOBAL SHDELAY,HEAT,BULLET GLOBAL EXPLOSION GLOBAL ALIEN,ABULLET GLOBAL PEACE 'INIT VARIABLES LIVES=5 SCORE=0 LEVEL=5 SHIELD=120 HIDE=0 PEACE=0 SHDELAY=0 HEAT=0 TICK=0 ALIEN=0 FOR I=0 TO 15 ALIENS(I,0)=0 NEXT I FOR I=0 TO 9 ABULLETS(I,0)=-32 NEXT I '------------------------------------------ DO SPRITE 0 SIZE 3 'BG0X = 0 'BG0Y = 0 'DBG0Y = TAN( RY ) FOR PY = 72 TO 127 GZ = PY2GZ( PY ) GZ = ( GZ + PZ ) MOD 120 IF GZ < 60 THEN IF GZ < 30 THEN '0<=GZ<30. P0C1( PY ) = GREENLO P0C2( PY ) = GREENHI P1C1( PY ) = GREENHI P1C2( PY ) = GREENLO ELSE '30<=GZ<60. P0C1( PY ) = CYANHI P0C2( PY ) = CYANLO P1C1( PY ) = CYANLO P1C2( PY ) = CYANHI END IF ELSE IF GZ < 90 THEN '60<=GZ<90. P0C1( PY ) = GREENLO P0C2( PY ) = GREENHI P1C1( PY ) = GREENHI P1C2( PY ) = GREENLO ELSE '90<=GZ<120. P0C1( PY ) = CYANHI P0C2( PY ) = CYANLO P1C1( PY ) = CYANLO P1C2( PY ) = CYANHI END IF END IF NEXT PY 'IF LEFT(0) THEN ADD PX, VX 'IF RIGHT(0) THEN ADD PX, -VX '...SHOULD THESE BE SWITCHED?... 'IF UP(0) THEN RY = MIN( RY + WY, RYMAX ) 'IF DOWN(0) THEN RY = MAX( RY - WY, RYMIN ) 'IF BUTTON(0,1) THEN ADD VZ, AZACC 'IF BUTTON(0,0) THEN VZ = MAX( VZ + AZDEC, 0 ) VZ=4 ADD PZ, VZ TRACE "PX", INT(PX*10)/10 TRACE "VZ", INT(VZ*10)/10 TRACE "RY", INT(RY*100)/100 TRACE FORMFEED$ '------------------------------------------- '3 SCREEN THIRDS IF POSX<35 THEN SCREENPART=-1 IF POSX>35 AND POSX<93 THEN SCREENPART=0 IF POSX>93 AND POSY<88 THEN SCREENPART=1 '2 SCREENHALF IF POSX<80 THEN SCREENHALF=0 IF POSX>80 THEN SCREENHALF=1 'HARRIER RUNNING ON GROUND IF POSY=88 THEN SPRITE 0 FLIP 0,0 FR=192+((TIMER/10) MOD 3)*4 IF FR=200 THEN FR=199 END IF '3 IN AIR HARRIER SPRITES (1,5,9) IF SCREENPART=-1 AND POSY<88 THEN FR=128 SPRITE 0 FLIP 1,0 END IF IF SCREENPART=0 AND POSY<88 THEN FR=131 SPRITE 0 FLIP 1,0 END IF IF SCREENPART=1 AND POSY<88 THEN FR=128 SPRITE 0 FLIP 0,0 END IF 'HARRIER SPRITE SPRITE 0,POSX,POSY,FR 'HARRIER SHADOW SPRITE SPRITE 7,POSX+7,116,143 SPRITE 8,POSX+14,116,142 SPRITE 9,POSX+22,116,143 'HARRIER POSITION 'NUMBER 0,0,POSX,3 'NUMBER 0,1,POSY,3 'CONTROLS IF UP (0) AND POSY>0 THEN POSY=POSY-1 END IF IF DOWN (0) AND POSY<88 THEN POSY=POSY+1 END IF IF LEFT(0) AND POSX>-5 THEN POSX=POSX-1 END IF IF RIGHT (0) AND POSX<132 THEN POSX=POSX+1 END IF 'SHOOT? '4 BULLET CHARS (FRB(I)): 139,138,137,136 SHDELAY=SHDELAY-1 IF BUTTON (0) THEN IF SHDELAY<=0 THEN TRACK 09,0 I = BULLET FRB(I) = 77.9 IF SCREENPART=-1 THEN XB(I) = POSX+24 IF SCREENPART=0 THEN XB(I) = POSX+16 IF SCREENPART=1 THEN XB(I) = POSX+8 YB(I) = POSY+7 SPRITE I,XB(I)-4, YB(I)-4, FRB(I) SPRITE I PAL 2 SIZE 1 ADD BULLET,-1, 2 TO 5 HEAT=HEAT+1 IF HEAT>=4 THEN SHDELAY=30 HEAT=0 BULLET=5 ELSE SHDELAY=8 END IF END IF ELSE HEAT=0 END IF CALL UPDBULLETS '------------------------------------------- IF PEACE>0 THEN 'DO NOT SPAWN ALIENS DEC PEACE ELSE 'SPAWN SMALL ALIEN? M=480/(LEVEL+3) IF TIMER MOD M=0 THEN CALL SPAWNALIEN(1+RND(1)) END IF 'SPAWN BIG ALIEN? M=5400/(LEVEL+2) IF TIMER MOD M=M\2 THEN CALL SPAWNALIEN(3+RND(1)) END IF END IF CALL UPDALIENS CALL UPDALIENBULLETS CALL UPDEXPLOSIONS INC TICK 'INC BGTICK '------------------------------------------- WAIT VBL LOOP SUB RAST PALETTE 0, , P0C1(RASTER), P0C2(RASTER), PALETTE 1, , P1C1(RASTER), P1C2(RASTER), SCROLL 0, BG0X, BG0Y ADD BG0Y, DBG0Y END SUB SUB UPDBULLETS FOR I=2 TO 5 IF SPRITE.X(I)>=0 THEN ADD FRB(I), -0.1 IF FRB(I)<74 THEN SPRITE OFF I EXIT SUB END IF '20 IS UP GREENPILLOZ S ASS, YOU CAN PUT WHATEVER THERE DX = (X0-XB(I))/20 DY = (Y0-YB(I))/20 ADD XB(I), DX ADD YB(I), DY IF INT(FRB(I))<>77 THEN SPRITE I SIZE 0 SPRITE I,XB(I), YB(I), FRB(I) ELSE SPRITE I,XB(I)-4, YB(I)-4, FRB(I) END IF 'DEBUG: 'TRACE I END IF NEXT I END SUB '----------------------*------ SUB SPAWNALIEN(TYPE) I=ALIEN IF ALIENS(I,0)>0 THEN EXIT SUB ALIENS(I,0)=TYPE ALIENS(I,1)=0 ALIENS(I,2)=16+RND*80 IF TYPE=1 THEN ALIENS(I,3)=1 ALIENS(I,4)=RND*12 ALIENS(I,5)=0.5 ELSE IF TYPE=2 THEN ALIENS(I,3)=1 ALIENS(I,4)=RND*20 ALIENS(I,5)=0.35 ELSE IF TYPE=3 THEN ALIENS(I,3)=4 ALIENS(I,4)=RND*32 ALIENS(I,5)=0.25 ELSE IF TYPE=4 THEN ALIENS(I,3)=8 ALIENS(I,4)=RND*40 ALIENS(I,5)=0.15 END IF ALIEN=(ALIEN+1) MOD 16 END SUB SUB UPDALIENS FOR I=0 TO 15 IF ALIENS(I,0)>0 THEN CALL UPDALIEN(I) END IF NEXT I END SUB SUB UPDALIEN(I) TYPE=ALIENS(I,0) N=10+I ALIENS(I,1)=ALIENS(I,1)+1 T=ALIENS(I,1) X=160-T*ALIENS(I,5) X=X-SIN(T*0.03)*24 'STILL ON SCREEN? IF X>-32 THEN 'UPDATE SPRITE Y=ALIENS(I,2) AY=ALIENS(I,4) IF TYPE MOD 2=0 THEN P=6 ELSE P=7 IF TYPE<=2 THEN S=1 C=138+INT((T MOD 24)/12)*2 Y=Y+SIN(T/20)*AY ELSE S=1 C=108+INT((T MOD 32)/16)*2 Y=Y+SIN(T/60)*AY END IF SPRITE N PAL P SIZE S SPRITE N,X,Y,C 'HIT BY BULLET? IF SPRITE HIT(N,2 TO 9) THEN SPRITE OFF HIT SPRITE N PAL 2 ALIENS(I,3)=ALIENS(I,3)-1 IF ALIENS(I,3)=0 THEN SPRITE OFF N ALIENS(I,0)=0 IF S=0 THEN CALL EXPLODE(X-4,Y-4,0) ELSE CALL EXPLODE(X,Y,0) END IF IF TYPE>=3 THEN PLAY 3,40 SOUND 5 ELSE PLAY 3,45 SOUND 2 END IF END IF 'SHOOT? IF PEACE=0 AND X>50 AND T MOD 120=30 THEN CALL ALIENSHOOT(X+4,Y+4) END IF ELSE 'OUT OF SCREEN, RESET SPRITE OFF N ALIENS(I,0)=0 END IF END SUB SUB ALIENSHOOT(X,Y) I=ABULLET IF ABULLETS(I,0)>-32 THEN EXIT SUB N=I+30 TRACK 2,2 SPRITE N,X,Y,74 SPRITE N PAL 7 ABULLETS(I,0)=X ABULLETS(I,1)=Y U=POSX+6-X V=POSY+6-Y W=SQR(U*U+V*V) ABULLETS(I,2)=U/W ABULLETS(I,3)=V/W ABULLET=(ABULLET+1) MOD 3 END SUB SUB UPDALIENBULLETS FOR I=0 TO 9 N=I+30 X=ABULLETS(I,0) Y=ABULLETS(I,1) X=X+ABULLETS(I,2) Y=Y+ABULLETS(I,3) IF X>=-8 AND X<160 AND Y>=-8 AND Y<128 THEN ABULLETS(I,0)=X ABULLETS(I,1)=Y SPRITE N,X,Y, ELSE ABULLETS(I,0)=-32 SPRITE OFF N END IF NEXT I END SUB SUB EXPLODE(X,Y,DELAY) N=EXPLOSION+40 SPRITE N PAL 2 SIZE 0 SPRITE N,X,Y,0 EXPLOSIONS(EXPLOSION)=20+DELAY EXPLOSION=(EXPLOSION+1) MOD 4 END SUB SUB UPDEXPLOSIONS FOR I=0 TO 3 T=EXPLOSIONS(I) IF T>0 THEN IF T<=20 THEN N=I+40 SPRITE N SIZE 1 SPRITE N,,,168+((20-T)\5)*2 IF T=20 THEN TRACK 08,1 END IF DEC T IF T=0 THEN SPRITE OFF N EXPLOSIONS(I)=T END IF NEXT I END SUB #1:MAIN PALETTES 1B3F2A000035032700343C0030003C00 0A3F2A15003F2A15003F0700003F2200 #2:MAIN CHARACTERS 00000000000000000000000000000000 3EE11FF0833FF8C1C11EE00F7CC0073E 1EE00F7CE0073EF8E11FF0831FF8C107 1EF0871EF8C1073FE10F78E1073EF8C0 1EF8C30F3EF0C001E1073CF0C10F3FFE 1E78E0830F3EF8E0E1871F7CF0C1071F 0F3CF0C1830F1F7EF0C30F3E7CF0E081 0F3E78F0E083070FF0C1870F1F7CF8F0 0F1E3C78F8F0E0C1F0E1C387070F1F3E 0F1F1E3E7C7CF8F8F0E0E1C183830707 0F0F0F1F1F1F1F3FF0F0F0E0E0E0E0C0 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 7EE0010F7FF8E001811FFEF080071FFE 0F3FF8C0030F3FFEF0C0073FFCF0C001 C0031F7EF8E080033FFCE081071F7FFC FCF0C0030F3FFEF8030F3FFCF0C00107 0F3FFCF0E0800307F0C0030F1F7FFCF8 C0030F1F7FFEFCF03FFCF0E08001030F F8F0E0800103070F070F1F7FFEFCF8F0 1F3F7EFCFCF8F0E0E0C0810303070F1F 810307070F1F1F3F7EFCF8F8F0E0E0C0 F8F0F0E0E0C0C080070F0F1F1F3F3F7F 3F3F3F3F7F7F7F7FC0C0C0C080808080 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 073FFFFCF0C00003F8C000030F3FFFFC F0C000030F3FFFFE0F3FFFFCF0C00001 0F3FFFFCF8E08000F0C00003071F7FFF F0C00001070F3F7F0F3FFFFEF8F0C080 1F3FFFFEFCF0E0C0E0C00001030F1F3F E0C0000103070F1F1F3FFFFEFCF8F0E0 3F7FFFFEFEFCF8F0C08000010103070F C0800000010303073F7FFFFFFEFCFCF8 3F7FFFFFFEFEFCFCC080000001010303 80800000000101017F7FFFFFFFFEFEFE 7FFFFFFFFFFFFFFF8000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0F3FFFFFFEF8E0C0F0C0000001071F3F FCF0C0000001030F030F3FFFFFFEFCF0 01030F3F7FFFFFFEFEFCF0C080000001 FFFEFCF0E0C080000001030F1F3F7FFF 00000003070F1F3FFFFFFFFCF8F0E0C0 3F7FFFFFFFFEFCF8C080000000010307 E0C08000000000001F3F7FFFFFFFFFFF 0F0F1F3F3F7FFFFFF0F0E0C0C0800000 FCF8F8F0F0E0E0C00307070F0F1F1F3F 0101030303030707FEFEFCFCFCFCF8F8 FFFFFFFFFFFFFFFF0000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 00000003071F3FFFFFFFFFFCF8E0C000 1F7FFFFFFFFEFCF8E080000000010307 FCF8E0C08000000003071F3F7FFFFFFF 00000103070F3F7FFFFFFEFCF8F0C080 7FFFFFFFFFFFFEFC8000000000000103 F0E0C080800000000F1F3F7F7FFFFFFF 010303070F0F1F3FFEFCFCF8F0F0E0C0 FFFFFFFFFFFFFEFE0000000000000101 C0C08080000000003F3F7F7FFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0000182C34180000000018342C180000 0018245A5A24180000183C66663C1800 3C66DBA5A5DB663C3C7EE7DBDBE77E3C 00000F18366B565400000F1F3974696B 0000F0186CD66A2A0000F0F89C2E96D6 00000000000000000000000000000000 FFFFFFFFFCF8F0C00000000003070F3F E0C08000000000001F3F7FFFFFFFFFFF 000103070F1F3F7FFFFEFCF8F0E0C080 FFFFFFFFFFFFFFFE0000000000000001 F8F0E0C0C0800000070F1F3F3F7FFFFF 0000000001010307FFFFFFFFFEFEFCF8 3F7F7FFFFFFFFFFFC080800000000000 FEFCFCF8F8F0F0E001030307070F0F1F 0707070F0F0F0F1FF8F8F8F0F0F0F0E0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 54562B36180F00006B6934391F0F0000 2A6AD66C18F00000D6962E9CF8F00000 00000000000000000000000000000000 80000000000000007FFFFFFFFFFFFFFF 0003070F1F3F7FFFFFFCF8F0E0C08000 3CC33EE00FF8C10FC33CC11FF0073EF0 FCF8F0E0E0C0800003070F1F1F3F7FFF 1F1F1F1F3F3F3F3FE0E0E0E0C0C0C0C0 070F1F1F3F7F7FFFF8F0E0E0C0808000 3F7F7F7F7FFFFFFFC080808080000000 E0E0C0C0808000001F1F3F3F7F7FFFFF 00000000000000000000000000000000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 00000000000107180000000000010107 000000000080E01800000000008080E0 000000020E3643870000000009397DFF 00000040706CC2E100000000909CBEFF 000000020E3643870000000009397DFF 00000040706CC2E100000000909CBEFF 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 20000000000000001F03010000000000 0400000000000000F8C0800000000000 00411C0301010000FF7F1F0303010000 008238C080800000FFFEF8C0C0800000 00411C0301010000FF7F1F0303010000 008238C080800000FFFEF8C0C0800000 00000000000000000000000000000000 070D181010157ECF070A171F1F1A79B6 8040A060E060F0E880C060A020A070D8 00000000000000000000000000000000 000000070C1B173F000000070F1C1830 0F1120E1C2E9F5FF0F1E3FDEFD766A1D 0080C0C0C0C080000080404040408000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0000000709151921000000060E1A163E 000000E090A89884000000607058687C 061A23435B938387061C3D7D65EDFDF9 6058C4C2DAC9C1E16038BCBEA6B7BF9F 18282B4F4F8F9EBD1830377777F7E7DE 1814D4F2F2F179BD180CECEEEEEFE7FB 00552A552A552A5500552A552A552A55 0000A050A050A0000000A050A050A000 0101070F0E0603010101070E0D050201 BF7D7F72FCFCFCFE43828F9F27273FFF F4F4FC3CDCD8F0608C2CE4EC3CB8B0E0 00000000000000000000000000000000 2F7F7F6B5D5D5D2B31435E7677777736 FFFFFFE6DB3BFAFD000000193DFFFE07 80C04080000000008040C08000000000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 2113160C070000003F1E1D0B06000000 84C86830E0000000FC78B8D060000000 879F7E7861231807FFFE79675E3C1F07 E1F97E1E86C418E0FF7F9EE67A3CF8E0 BDBA7F7F7F231807FFFF7F7F433C1F07 BD5DFEFEFEC418E07FFFFEFEC23CF8E0 00000000000000000000000000000000 00000000000000000000000000000000 00000000010101000000000001010100 7777EFDFBFBFBEDF6B48D1A3475F4EA7 E0E0C0C080000000E0E0C0C080000000 00000000000000000000000000000000 1F0F0B0B0B1F373F1C0C0D0C0C183A21 FDFDFDFFDE9F8F0F0323FB7151908808 0000000080804040000000008080C0C0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 00000001070F0F1F0000010608101020 00000080E0F0F0F80000806010080804 01071F3F3F7F7FFF0618204040808000 80E0F8FCFCFEFEFF6018040202010100 03071F3E3871F2E204182041478F0E1E C0E0F80C728C0202201804F2FC8E0303 0000010608111222000001070F1F1E3E 0000F00C728C02020000F0FCFE8E0202 00000000000000000000000000000000 DF6F7F3B173F7B00A3514F3F1F3F7B00 80C0E0A0C080000080C0E0E0C0800000 00000000000000000000000000000000 4F76FCF870000000717AFCF870000000 07070703030101000604050303010100 80A0E0E0E0E0C0004060A0C0E0E0C000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 1F0F0F07010000002010100806010000 F8F0F0E0800000000408081060800000 FF7F7F3F3F1F07010080804040201806 FFFEFEFCFCF8E0800001010202041860 E4E46432321904021C1C9C4E4E271B05 000000000000E000010000000000F0E0 24242412120904033C3C3C1E1E0F0703 00000000000080000000000000008000 00000000000000000000000000000000 0103060D0E0E0B170102050A090F0D18 C0A0100818BEFDFEC060F0F8E85EE301 00000000000000800000000000000080 00000000000007040000000000000703 01020506073E47BF01030605043D7AC1 E0B01808088858E4E050E8F8F878B8BC 00000000000000000000000000000000 00010003033B657B00010102023B5E6C F0588C8444CCFFFCF0A8747CBCF43F03 00000000000000800000000000000080 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 00010263B3673FFB00010362D2E6DB25 F048848444AFFEFFF0B87C7CBC570DB8 00000000008040B0000000000080C070 00000000000000000000000000000000 2F5F7FBFBF7C3305306444C4CC4F3306 FEFFFFBF5EE5FFFD01000242E3FBFD06 8040A0D050A0E0A080C06030F0E0A060 07060203010000000507030201000000 7FFFFCFBFBF77F3F80202367379F7F30 FAFEFF7FBFDFFFB606020989C9F9FD5E 00000000000000000000000000000000 7B37373F1F0D00017C382921130D0001 FFFFFFE7DBBD7FFF000000183CFEFF18 40C0C0E0A0A0A0C0C04040A0E0E0E0C0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF E79FFF6502020103986C9C6603030103 FFFF5F6FEFE7FAFDE203E1F1F1FBFE03 CCFEFD380E0701003C82E73F0B060100 00000000000000000000000000000000 070B0B0B0A0D0507040C0C0C0D0B0705 FEFFFAFAFAFA34F6074F3E36E6E6ECCA 4080000000000000C080000000000000 00000000000000000000000000000000 3F3F3F3F3F3F3F3F3024242622323333 B4D8D0D0D0D0D0D05C38303030303030 00000000000000000000000000000000 01010101010000000101010101000000 7F7F7E657BBDBCBEBCBCB9BA9CDFDEDE 80C0C0C0800000008040404080000000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 03030101010000010202010101000001 FEFFFFFFFFFFFFF74160787D3EBC9C94 8040A0A0A060404080C0606060A0C0C0 00000000000000000000000000000000 03010000000000000301000000000000 FAFA7A7A3C323E00C6C646462C3E3E00 00000000000000000000000000000000 00000000000000000000000000000000 3F3F3F1C0F030100223A3E1F0F030100 B0A0A0E060F0F00050606020E0F0F000 00000000000000000000000000000000 00000101000101000000010100010100 BEB87870F030F000CEC88890B0F0F000 00000000000000000000000000000000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 01010003030100000101000303010000 F7F3F3E0E0C0F000151393A0E0C0F000 C060A0F070000000C0E0E0F070000000 #3:MAIN BG 00001607620001000200030004000500 06000700080009000A000A0909090809 07090609050904090309020901096209 10001100120013001400150016001700 180019001A001A091909180917091609 15091409130912091109100920002100 22002300240025002600270028002900 2A002A09290928092709260925092409 23092209210920093000310032003300 3400350036003700380039003A003A09 39093809370936093509340933093209 31093009400041004200430044004500 46004700480058003A003A0958104809 47094609450944094309420941094009 50005100520053005400550056005700 3A0964003A003A0964093A0057095609 55095409530952095109500960006100 3A0063003A0965003A0067003A096600 3A003A0966093A0067093A0965093A00 63093A0961096009 #15:MAIN SOUND 2800300F15D9000018008000002D0400 08003060000000002800303019FE0000 38002020000000003800505000000000 0800000F000000000800000F00000000 180064E002AFD7000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 16404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 3800E10000003C000000000038000000 00003C00000000003800000000003C00 000000003800000000003C0000000000 3800000000003C000000000038000000 00003C00000000003800000000003C00 000000003800000000003C0000000000 2820E12B20E12E20E13220E13620E13B 20E14120E14520E14920E10000E10000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 2220E12220E12320E12420E12820E12F 20E13920E13F20E10000E10000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 4710E14710E14710E14710E14E10E14E 10E14E10E14E10E14E10E10000E20000 E20000E20000E20000E2000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 2930E1FF00002930E1FF00001D30E1FF 00001D30E1FF00000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 4F00E14800004B00004300004700003C 00003E00003600003700003000003200 002900002A00002100002300001B0000 1D0000FF000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 5500E34D00004300004C000043000039 00004100003800003100003C00003400 002900003000002700001F0000290000 1F00001600001B00001300000A0000FF 0F000000000000000000000000000000 00000000000000000000000000000000 0000003110E10000E13210E10000E136 10E10000E13810E10000E13D10E10000 E14210E10000004910E10000E14F10E1 FF00E100000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 4E50E200000036500000000043500000 00002750000000003150000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 4D50E13C50001950002150003B500031 50002450001C50002B50001C504F0000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 2350E152500000000000000023500052 50000000000000002350005250000000 00000000235000525000000000000000 23500052500000000000000023500052 50000000000000002350005250000000 00000000235000525000000000000000 3720E23B20004320000000003720003B 20004320000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 4920E24C200050200000000034200037 20003B20000000002720002B20002E20 000000001D20001F2000242000000000 1320E21620E21820E200000000000000 00000000000000000000000000000000 00000000000000000000000000000000 4280E14180E23F80004080E24280E200 00E20000E20000E20000E20000E20000 E20000E20000E20000E20000E20000E2 0000E20000E20000E20000E20000E200 00E20000E20000E20000E20000000000 000000000000000000000000E1000000 3C10E10000E13C10E10000003C10E100 00003C10E10000000000E10000000000 E10000000000E10000000000E1000000 0000E10000E10000E10000E10000E100 00000000E10000000000E10000000000 E10000000000E10000000000E1000000 1750E139400000000000000017500039 40000000000000001750003940000000 00000000175000394000000000000000 17500039400000000000000017500039 40000000000000001750003940000000 00000000175000394000000000000000 2950E22950E22B50E23050E23C50E24B 50E20000E20000E10000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 3550E13550E13750E13C50E14850E157 50E10000E20000E10000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 5E10E25D10E25D10E25D10E25D10E25B 10E25910E25710E25410E25210E25010 E24D10E24910E24510E23F10E23A10E2 3710E23510E23310E22D10E22610E220 10E21810E20F10E20910E20410E20000 E20000E20000E20000E20000E20000E2 5E10E25E10005D10005C100058100053 10004D10004510003D10003110002110 00111000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 5910E15210E14D10E14710E14010E13B 10E13910E13A10E14010E14710E14B10 E14D10E14D10E14810E13F10E13310E1 2C10E12710E12310E12110E12010E122 10E12810E12C10E12F10E13110E13110 E12D10E12410E11E10E11910E11410E1 2D10E13710E13F10E14310E12D10E137 10E13F10E14310E12D10E13710E13F10 E14310E12D10E13710E13F10E14310E1 2D10E13710E13F10E14310E12D10E137 10E13F10E14310E12D10E13710E13F10 E14310E12D10E13710E13F10E14310E1 3C00E5000000000000FF000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000