'TITLE: LAST BULLET ' 'MADE BY NOUSERNAME010 'NOTES ' 'SPRITE LIST '0 - PLAYER CHAR 1-8 '1 - BULLET CHAR 16-17 '2-17 - ENEMIES '18-21 - ENEMY BULLETS '22-25 - OBSTACLES ' 'SOUND (NO MUSIC YET) 'MAIN MUSIC - ROM15 'SFX - ROM14 ' 'CODE 'DIRECTIONS: '0 = RIGHT '1 = UP '2 = LEFT '3 = DOWN ' 'PERSIST '$E000 TO $E0003 - BEST SCORE ' 'MISC 'I LOVE AND HATE THIS LANGUAGE SO MUCH... 'IT TOOK SOME TIME TO GET USED TO. IT'S PRETTY FUN. 'FEEL FREE TO EDIT THIS PROJECT. RANDOMIZE TIMER GAMEPAD 1 PAUSE OFF 'TO PREVENT CPU FROM GOING MAX AND GO BOOMBOOM, I ADDED SOME WAITS. PRINT "LOADING" GLOBAL TRUE, FALSE TRUE=0 FALSE=-1 'INIT GLOBAL ENEMYTIMER GLOBAL GAMETIMER GLOBAL COMBO,SCORE,SOULS,GSCORE GLOBAL HAD_GAME GLOBAL AURAREQ GLOBAL AURARELD 'TIMERS GLOBAL HUDSOULTIMER 'PLAYER VARIABLES GLOBAL PX,PY,PDIR,PSPEED PX=76 PY=60 PDIR=2 PSPEED=1 DIM GLOBAL PSPRITES(7) FOR I=0 TO 7 PSPRITES(I) = I+1 WAIT 1 NEXT I 'BULLET VARIABLES GLOBAL ISBULLET,BX,BY,BSTATE,BDIR,BROT,BSPEED,HITCOOLDOWN,BTURN ISBULLET=FALSE BX=0 BY=0 BSTATE=0 BDIR=0 BROT=0 BSPEED=1.8 BTURN=0 DIM GLOBAL BSPRITES(1) FOR I=0 TO 1 BSPRITES(I) = I+16 NEXT I 'ENEMIES DIM GLOBAL ENEMIES(15,8) '0 - STATE (0=INACTIVE) '1 - SPRITE NUM '2 - START X '3 - START Y '4 - SPEED '5 - TYPE '6 - SPRITE CHAR '7 - ENEMY SHOOT FREQUENCY(TYPE 1) '8 - HEALTH FOR I=0 TO 15 ENEMIES(I,1)=I+2 NEXT I 'ENEMY BULLETS DIM GLOBAL EBULLETS(3,3) '0 - STATE '1 - EBULLET X '2 - EBULLET Y '3 - EBULLET DIR DIM GLOBAL REMAININGENEMIES(3) '0 - STICK ENEMY '1 - PISTOL ENEMY '2 - HORSE ENEMY '3 - GIANT(?) ENEMY 'UPGRADES 'ACTUAL UPG ARRAY DIM GLOBAL UPG(3) '0 - PIERCING '1 - NUMBER OF BROTS '2 - PLAYER SPEED '3 - AURA RELEASE 'UPG COST ARRAY DIM GLOBAL UPGCOSTS(3,0) DATA 10,20,15,15,20 FOR I=0 TO 3 READ UPGCOSTS(I,0) NEXT I 'UPG NAME DISPLAY UPGNAMES: DATA "PIERCING","ROTATIONS","P. SPEED","AURA REL." 'OBSTACLES DIM GLOBAL OBS(3,5) '0 - STATE (0=INACTIVE) '1 - SPRITE NUM '2 - X POS '3 - Y POS '4 - CHAR '5 - HEALTH 'WAVE DATA 'TO MODIFY THIS, I MADE A TOOL, TITLED "WAVA DATA". YES, IT'S A TYPO. 'MIGHT UPLOAD THAT IN THE FUTURE. IT'S NOT USER FRIENDLY YET. GLOBAL WAVEMEM,CURWAVE WAVEMEM=ROM(12) CURWAVE=0 DIM GLOBAL WAVEDATA(59,5) '0 - ENEMY TYPE 0 COUNT '1 - ENEMY TYPE 1 COUNT '2 - ENEMY TYPE 2 COUNT '3 - ENEMY TYPE 3 COUNT '4 - MIN ENEMY SPAWNTIME '5 - MAX ENEMY SPAWNTIME FOR I=0 TO (SIZE(12)/4)-1 FOR DATDEX=0 TO 5 WAVEDATA(I,DATDEX)=PEEK(WAVEMEM+(7*I)+DATDEX) NEXT DATDEX NEXT I INTRO: PRIO 0 DO SPRITE VIEW OFF CLS PAL 2 CALL CENTERTEXT("THE LAST BULLET",1) IF ((TIMER/45) MOD 2)+1=1 THEN CALL CENTERTEXT("PRESS ANY BUTTON",8) END IF IF PEEKL($E000)>0 THEN CALL CENTERTEXT("BEST SCORE:",12) CALL CENTERTEXT(STR$(PEEKL($E000)),13) END IF IF BUTTON TAP(0) THEN GOTO GAMEINIT WAIT VBL LOOP GAMEINIT: 'PLAYER VARIABLES INIT PX=80 PY=64 PDIR=0 ISBULLET=FALSE 'GAME VAR INIT COMBO=0 SCORE=0 SOULS=0 AURAREQ=10 GSCORE=0 AURARELD=FALSE 'ARRAY INIT FOR I=0 TO 3 UPG(I) = 0 NEXT I GAMETIMER = 0 ENEMYTIMER=30 CURWAVE=-1 CALL NEXTWAVE BG 0 SOUND SOURCE ROM(14) GAME: 'RESET BULLET COOLDOWN HITCOOLDOWN=0 'NECESSARY WAIT SINCE SHOOT GETS ACTIVATED WITHOUT IT WAIT VBL DO CLS PRIO 0 BG COPY 0,0,20,16 TO 0,0 PRIO 1 CALL DRAWHUD 'PLAYER MOVEMENT CURPS=(PSPEED+(UPG(2)/5)) IF UP(0) THEN ADD PY,-CURPS PDIR=1 ELSE IF DOWN(0) THEN ADD PY,CURPS PDIR=3 ELSE IF LEFT(0) THEN ADD PX,-CURPS PDIR=2 ELSE IF RIGHT(0) THEN ADD PX,CURPS PDIR=0 END IF 'RESTRICTS PLAYER TO SCREEN IF PX<0 THEN PX=0 ELSE IF PX>152 THEN PX=152 END IF IF PY<0 THEN PY=0 ELSE IF PY>120 THEN PY=120 END IF 'DRAW PLAYER SPRITE 0,PX,PY,PSPRITES(((GAMETIMER/30) MOD 2)+(PDIR*2)) SPRITE 0 PAL 2 'INPUT IF ISBULLET=FALSE THEN IF BUTTON TAP(0,0) THEN CALL SHOOTBULLET(PX,PY,PDIR) ELSE IF ISBULLET=TRUE THEN CALL UPDATEBULLET END IF IF PAUSE AND COMBO >= AURAREQ AND (SOULS-UPG(3)) >= AURAREQ AND AURARELD=FALSE THEN CALL AURARELEASE PLAY 3,13 SOUND 7 END IF CALL UPDENEMIES CALL UPDEBULLETS CALL UPDOBS WAIT VBL INC GAMETIMER CALL HANDLEWAVES LOOP SHOP: SPRITE OFF 0 TO 63 SELUPG=0 SELUPGNAME$="" WAIT VBL DO CLS RESTORE UPGNAMES FOR I=0 TO SELUPG READ SELUPGNAME$ NEXT I CURCOST = UPGCOSTS(SELUPG,0)*(UPG(SELUPG)+1) IF RIGHT TAP(0) THEN INC SELUPG IF LEFT TAP(0) THEN DEC SELUPG IF SELUPG>3 THEN SELUPG=0 ELSE IF SELUPG<0 THEN SELUPG=3 END IF CALL CENTERTEXT("THE WAVE COMES SOON",0) CALL CENTERTEXT("YOUR GODS OFFER HELP",1) CALL CENTERTEXT(SELUPGNAME$, 4) CALL CENTERTEXT("LEVEL: "+STR$(UPG(SELUPG)),5) CALL CENTERTEXT("COST: "+STR$(CURCOST),7) CALL CENTERTEXT("SOULS",8) CALL CENTERTEXT("YOUR SOULS: "+STR$(SOULS),10) CALL CENTERTEXT("LEFT/RIGHT TO SWITCH",12) CALL CENTERTEXT("PRESS A TO UPGRADE",14) CALL CENTERTEXT("PRESS B TO LEAVE",15) IF BUTTON TAP(0,0) AND SOULS>=CURCOST THEN UPG(SELUPG)=UPG(SELUPG)+1 ADD SOULS,-CURCOST END IF IF BUTTON TAP(0,1) THEN GOTO GAME WAIT VBL LOOP SUB HANDLEWAVES DEC ENEMYTIMER IF ENEMYTIMER<=0 THEN 'CHECK IF THERE ARE STILL ENEMIES IN WAVE. 'IF SO, SPAWN. 'ELSE, NEXT WAVE ENEMYLEFT=FALSE ENEMYONSCREEN=FALSE FOR I=0 TO 3 IF REMAININGENEMIES(I)>0 THEN ENEMYLEFT=TRUE NEXT I FOR I=0 TO 15 IF ENEMIES(I,0)>0 THEN ENEMYONSCREEN=TRUE NEXT I IF ENEMYLEFT=TRUE THEN 'TODO: IMPROVE RANDOMNESS TYPE=RND(3) WHILE REMAININGENEMIES(TYPE)=0 INC TYPE IF TYPE>3 THEN TYPE=0 WEND CALL SPAWNENEMY(TYPE) REMAININGENEMIES(TYPE)=REMAININGENEMIES(TYPE)-1 ELSE IF ENEMYONSCREEN=FALSE AND ISBULLET=FALSE THEN CALL NEXTWAVE GOTO SHOP END IF 'HANDLE TIMER MINTIMER=WAVEDATA(CURWAVE,4)*60 MAXTIMER=WAVEDATA(CURWAVE,5)*60 IF MAXTIMER=MINTIMER THEN ENEMYTIMER=MAXTIMER ELSE ENEMYTIMER=RND(MAXTIMER-MINTIMER)+MINTIMER END IF END IF END SUB SUB NEXTWAVE SOUND SOURCE ROM(14) PLAY 1,59 SOUND 1 AURARELD=FALSE INC CURWAVE FOR I=0 TO 3 REMAININGENEMIES(I)=WAVEDATA(CURWAVE,I) NEXT I ENEMYTIMER=300 CALL MAKEOBS END SUB SUB MAKEOBS 'RESET CURRENT OBSTACLES FOR I=0 TO 3 IF OBS(I,0)<>0 THEN OBS(I,0)=0 SPRITE OFF OBS(I,1) END IF NEXT I 'MAKE OBSTACLES FOR O=0 TO 3 OBS(O,0)=1 OBS(O,1)=O+22 OBS(O,2)=RND(120)+16 OBS(O,3)=RND(88)+16 OBS(O,4)=RND(2)+9 OBS(O,5)=3 NEXT O END SUB SUB UPDOBS FOR O=0 TO 3 IF OBS(O,0)<>0 THEN 'DRAW OBSTACLES SPRITE OBS(O,1),OBS(O,2),OBS(O,3),OBS(O,4) SPRITE OBS(O,1) PAL 2 END IF NEXT O END SUB SUB DMGOBS(I) SELOBS=0 WHILE OBS(SELOBS,1)<>I INC SELOBS WEND OBS(SELOBS,5)=OBS(SELOBS,5)-1 IF OBS(SELOBS,5)<=0 THEN FOR J=0 TO 5 OBS(SELOBS,J)=0 NEXT J SPRITE OFF I ELSE D=FALSE END IF 'GAIN SCORE ADD GSCORE,25 END SUB SUB SHOOTBULLET(X,Y,DIR) ISBULLET = TRUE BSTATE=0 BX=X BY=Y IF DIR=0 THEN ADD BX,(8+UPG(2)) ELSE IF DIR=1 THEN ADD BY,-(8+UPG(2)) ELSE IF DIR=2 THEN ADD BX,-(8+UPG(2)) ELSE IF DIR=3 THEN ADD BY,(8+UPG(2)) END IF BDIR=DIR BROT=2+UPG(1) BTURN=0 SPRITE 1,BX,BY,16 SPRITE 1 PAL 2 PLAY 0,25 SOUND 0 END SUB SUB ESHOOTBULLET(X,Y,DIR) SLOT=-1 REPEAT VALIDSLOT=FALSE INC SLOT IF SLOT<4 THEN IF EBULLETS(SLOT,0)=0 THEN VALIDSLOT=TRUE END IF UNTIL SLOT>4 OR VALIDSLOT=TRUE IF SLOT<4 THEN EBULLETS(SLOT,0)=1 EBULLETS(SLOT,1)=X EBULLETS(SLOT,2)=Y EBULLETS(SLOT,3)=DIR END IF END SUB SUB SPAWNENEMY(TYPE) EDIR=RND(3) ESLOT=-1 REPEAT VALIDSLOT=FALSE INC ESLOT IF ESLOT<16 THEN IF ENEMIES(ESLOT,0)=0 THEN VALIDSLOT=TRUE END IF UNTIL ESLOT>15 OR VALIDSLOT=TRUE IF ESLOT<16 THEN ENEMIES(ESLOT,2)=0 ENEMIES(ESLOT,3)=0 IF EDIR=0 OR EDIR=2 THEN ENEMIES(ESLOT,3)=RND(120) ELSE IF EDIR=1 OR EDIR=3 THEN ENEMIES(ESLOT,2)=RND(152) END IF IF EDIR=2 THEN ENEMIES(ESLOT,2)=152 IF EDIR=0 THEN ENEMIES(ESLOT,3)=120 ENEMIES(ESLOT,4)=(RND(30)+20)/100 ENEMIES(ESLOT,0)=1 ENEMIES(ESLOT,1)=ESLOT+2 ENEMIES(ESLOT,5)=TYPE ENEMIES(ESLOT,6)=(32+(2*TYPE)) IF TYPE=1 THEN ENEMIES(ESLOT,7)=RND(120)+120 IF TYPE=2 THEN ENEMIES(ESLOT,4)=ENEMIES(ESLOT,4)*1.7 IF TYPE=3 THEN ENEMIES(ESLOT,8)=3 ENEMIES(ESLOT,4)=ENEMIES(ESLOT,4)/2.5 ELSE ENEMIES(ESLOT,8)=1 END IF END IF END SUB SUB UPDENEMIES FOR I=0 TO 15 IF ENEMIES(I,0)<>0 THEN ESPR=ENEMIES(I,1) EX=ENEMIES(I,2) EY=ENEMIES(I,3) ESPEED=ENEMIES(I,4) ETYPE=ENEMIES(I,5) ECHAR=ENEMIES(I,6) IF ETYPE=3 THEN ESPEED=ESPEED/2.5 'POSITIONING EOFFSET=0 IF ETYPE=3 THEN EOFFSET=5 ELSE EOFFSET=2 IF PX<(EX+EOFFSET) THEN EX=EX-ESPEED IF PX>(EX+EOFFSET) THEN EX=EX+ESPEED IF PY<(EY+EOFFSET) THEN EY=EY-ESPEED IF PY>(EY+EOFFSET) THEN EY=EY+ESPEED ENEMIES(I,2)=EX ENEMIES(I,3)=EY ADD EX,EOFFSET ADD EY,EOFFSET SPRITE ESPR,EX,EY,ECHAR SPRITE ESPR PAL 2 IF ETYPE=3 THEN SPRITE ESPR SIZE 1 ELSE SPRITE ESPR SIZE 0 END IF 'TYPE 1 ENEMY BULLET SHOOT IF ETYPE=1 THEN ETICK=ENEMIES(I,7) DEC ETICK IF ETICK<=0 THEN EDIR=0 IF ABS(PX-EX) > ABS(PY-EY) THEN IF PXEX THEN EDIR=0 ELSE IF PYEY THEN EDIR=3 END IF CALL ESHOOTBULLET(EX,EY,EDIR) ETICK=RND(120)+120 END IF ENEMIES(I,7)=ETICK END IF 'PLAYER COLLISION IF SPRITE HIT(ENEMIES(I,1),0) THEN GOTO GAMEOVER END IF NEXT I END SUB SUB UPDEBULLETS FOR I=0 TO 3 IF EBULLETS(I,0)<>0 THEN EBX=EBULLETS(I,1) EBY=EBULLETS(I,2) EBDIR=EBULLETS(I,3) EBSPEED=1.3 IF EBDIR=0 THEN ADD EBX,EBSPEED IF EBDIR=1 THEN ADD EBY,-EBSPEED IF EBDIR=2 THEN ADD EBX,-EBSPEED IF EBDIR=3 THEN ADD EBX,EBSPEED EBULLETS(I,1)=EBX EBULLETS(I,2)=EBY SPRITE I+18,EBX,EBY,18 SPRITE I+18 PAL 2 'EBULLET COLLISION IF EBX<0 OR EBX>152 OR EBY<0 OR EBY>120 OR SPRITE HIT(I+18,22 TO 25)THEN EBULLETS(I,0)=0 SPRITE OFF I+18 END IF IF SPRITE HIT(I+18,0) THEN GOTO GAMEOVER END IF NEXT I END SUB SUB UPDATEBULLET 'BULLET MOVEMENT IF BSTATE=0 THEN IF BDIR=0 THEN BX=BX+BSPEED IF BDIR=1 THEN BY=BY-BSPEED IF BDIR=2 THEN BX=BX-BSPEED IF BDIR=3 THEN BY=BY+BSPEED END IF 'CONTROLS THE BULLET IF BUTTON TAP(0) AND BSTATE=0 THEN DEC BROT IF BROT>=0 THEN INC BTURN IF BUTTON TAP(0,0) THEN IF BDIR<3 THEN INC BDIR ELSE BDIR=0 ELSE IF BUTTON TAP(0,1) THEN IF BDIR>0 THEN DEC BDIR ELSE BDIR=3 END IF PLAY 0,25 SOUND 3 ELSE CALL BULLETSTOP END IF END IF 'BULLET IS COLLECTED IF HITS PLAYER IF SPRITE HIT(1,0) THEN 'COLLECT GAINED SCORE TURNMULT=INT(BTURN/4) IF BTURN > 0 THEN GSCORE = GSCORE * (TURNMULT+1) END IF ADD SCORE,GSCORE GSCORE=0 ISBULLET=FALSE PLAY 0,49 SOUND 4 END IF 'BULLET STOPS IF HITS EDGE OF SCREEN IF BX+7>160 THEN BX=152 CALL BULLETSTOP END IF IF BX<0 THEN BX=0 CALL BULLETSTOP END IF IF BY+7>128 THEN BY=120 CALL BULLETSTOP END IF IF BY<0 THEN BY=0 CALL BULLETSTOP END IF 'ENEMY COLLISION IF SPRITE HIT(1,2 TO 17) AND BSTATE=0 THEN FOR I=0 TO 15 IF ENEMIES(I,1)=HIT THEN INC COMBO ENEMIES(I,8)=ENEMIES(I,8)-1 IF ENEMIES(I,8)<=0 THEN ENEMIES(I,0)=0 ADD GSCORE,(50*COMBO) SPRITE OFF HIT ADD BROT,(0.50*UPG(0)) INC SOULS ELSE IF BDIR=0 THEN BX=BX+16 IF BDIR=1 THEN BY=BY-16 IF BDIR=2 THEN BX=BX-16 IF BDIR=3 THEN BY=BY+16 END IF END IF NEXT I END IF 'OBSTACLE COLLISION IF SPRITE HIT(1, 22 TO 25) AND BSTATE=0 AND HITCOOLDOWN<=0THEN DSPEED=8.1 WAIT VBL CALL DMGOBS(HIT) 'DEFLECT BULLET IF BDIR=0 THEN HITCOOLDOWN=10 BDIR=2 BX=BX-DSPEED END IF IF BDIR=1 AND HITCOOLDOWN<=0 THEN HITCOOLDOWN=10 BDIR=3 BY=BY+DSPEED END IF IF BDIR=2 AND HITCOOLDOWN<=0 THEN HITCOOLDOWN=10 BDIR=0 BX=BX+DSPEED END IF IF BDIR=3 AND HITCOOLDOWN<=0 THEN HITCOOLDOWN=10 BDIR=1 BY=BY-DSPEED END IF 'ADD 2 TURNS ADD BTURN,2 ELSE DEC HITCOOLDOWN END IF SPRITE 1,BX,BY,BSPRITES(BSTATE) IF ISBULLET=FALSE THEN SPRITE OFF 1 END SUB SUB BULLETSTOP BSTATE=1 COMBO=0 PLAY 1,25 SOUND 1 END SUB GAMEOVER: 'RESET ALL VARIABLES SPRITE OFF 0 TO 63 FOR I=0 TO 15 FOR S=0 TO 6 ENEMIES(I,S)=0 NEXT S NEXT I FOR I=0 TO 3 EBULLETS(I,0)=0 NEXT I FOR I=0 TO 3 OBS(I,0)=0 NEXT I CALL CENTERTEXT("GAME OVER",8) PLAY 0,24 SOUND 1 SOULCOUNT=SOULS WAIT 60 PASTSCORE = PEEKL($E000) NEW_SCORE=FALSE IF SOULS>0 THEN FOR I=1 TO SOULCOUNT CLW ADD SCORE,50 DEC SOULS CALL DRAWHUD PLAY 0,25 SOUND 3 CALL CENTERTEXT("GAME OVER",8) WAIT 10 NEXT I END IF IF SCORE>PASTSCORE THEN POKEL $E000,SCORE NEW_SCORE=TRUE END IF IF NEW_SCORE=TRUE THEN PAL 3 CALL CENTERTEXT("NEW HIGHSCORE",9) PAL 2 SOUND SOURCE ROM(14) PLAY 1,61 SOUND 1 END IF WAIT 120 GOTO INTRO SUB AURARELEASE EKILLS=0 FOR I=0 TO 15 IF ENEMIES(I,0)=1 THEN ENEMIES(I,0)=0 SPRITE OFF ENEMIES(I,1) INC EKILLS INC SOULS END IF NEXT I ADD SCORE,(EKILLS*200) ADD SCORE,(COMBO*200) ADD SOULS,-10 AURARELD=TRUE END SUB SUB CENTERTEXT(T$,Y) TEXT 10-(LEN(T$)/2),Y,T$ END SUB SUB DRAWHUD 'GENERAL HUD CALL CENTERTEXT(("SOULS:"+STR$(SOULS)),15) IF COMBO >= 10 AND SOULS >= (AURAREQ-UPG(3)) AND (TIMER/30) MOD 2 = 1 AND AURARELD=FALSE THEN CALL CENTERTEXT("AURA READY",14) 'SCORE HUD TEXT 0,0,(STR$(SCORE)) TURNMULT = INT(BTURN/4) IF GSCORE>0 AND ISBULLET=TRUE THEN DISPLAYTEXT$="+"+STR$(GSCORE) IF TURNMULT>0 THEN DISPLAYTEXT$=DISPLAYTEXT$+("X"+STR$(1+TURNMULT)) CALL CENTERTEXT(DISPLAYTEXT$,1) END IF IF COMBO>0 THEN CALL CENTERTEXT(("COM:"+STR$(COMBO)),0) 'WAVE HUD WAVEDISPLAY$ = STR$(CURWAVE+1) IF CURWAVE<10 THEN WAVEDISPLAY$="0"+WAVEDISPLAY$ END IF TEXT 17,0,("W"+WAVEDISPLAY$) 'BULLET RELATED HUD IF ISBULLET=FALSE AND COMBO<1 THEN CALL CENTERTEXT("YOU HAVE ONE LAST", 2) CALL CENTERTEXT("BULLET", 3) ELSE IF ISBULLET=TRUE THEN 'DISPLAYS ROTATIONS LEFT IF BSTATE=0 THEN CALL CENTERTEXT(STR$(INT(BROT)), 3) END IF END SUB #1:MAIN PALETTES 003F2F0000383400003C3410003F3C06 003F2A15003F2A15003F2A15003F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 183C18000E080000183C00181E181824 00183C180E08000000183C001E181824 183C180004040000183C00181C1C1824 00183C180404000000183C001C1C1824 183C180060000000183C001878181824 00183C186000000000183C0078181824 183C180020200000183C001838381824 00183C182020000000183C0038381824 0000080408083C7E0000183C18180420 001018141E3E70001828242A21619F60 00181818181818181824252FA4E43424 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00001824241800000000001818000000 00060E1C3870200000000C0400000000 0000183C3C1800000000182424180000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00181A02020000000000021A3E181824 0000181A02020000000000021A3E1824 001818000E080000000000183E181824 00001818000E080000000000183E1824 34370F04DCBC848404053734FCFC8484 0034370704DCBC840004053F34FCFC84 000F1E1F3F1F070400102D2C0800003F 00B8F8FCFC38E0100040343010C000FC 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 042620000C0C1C3C3F3F3F3F0C0C1C3C 302468083030383CFCFCFCFC3030383C 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000004000040020000800 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 183C3C3C3C183C181824242424182418 6CFEFE7E240000006C92925A24000000 247EFF7E7EFF7E24245A815A5A815A24 083E7F7E3F7F3E080836414631413608 62F7FE7C3E7FEF4662959A742E59A946 1C3E7E7EFFFE7F3A1C224A46919A453A 183C3C78300000001824244830000000 0C1E3C78783C1E0C0C1224484824120C 30783C1E1E3C78303048241212244830 00247E7EFF7E7E2400245A6681665A24 00183C7EFF7E3C180018246681662418 000000183C3C78300000001824244830 0000007EFF7E00000000007E817E0000 00000000183C3C180000000018242418 060F1E3C78F0E040060912244890A040 3C7EFFFFFFFF7E3C3C4299918999423C 183C7C3C3C7EFF7E182444242466817E 3C7EFF7E3C7EFF7E3C429972244E817E 3C7EFF7E6FFF7E3C3C4299726999423C 66FFFFFF7F0F0F066699998179090906 7EFFFEFE7F7FFE7C7E819E827979827C 1C3E7CFEFFFF7E3C1C224C829999423C 7EFF7F1E3C7878307E81791224484830 3C7EFF7EFFFF7E3C3C4299429999423C 3C7EFF7F7FFF7E3C3C4299417999423C 0000183C183C18000000182418241800 0000183C183C78300000182418244830 000C1E3C783C1E0C000C12244824120C 00007EFF7EFF7E0000007E817E817E00 0030783C1E3C78300030482412244830 3C7EFF7E3C183C183C42997224182418 3C7EFFFFFFFE7E3C3C429991919E423C 183C7EFFFFFFFF661824429981999966 7CFEFFFEFFFFFE7C7C8299829999827C 3C7EFFF6F6FF7E3C3C4299969699423C 78FCFEFFFFFEFC787884929999928478 7EFFFEFCF8FEFF7E7E819E84989E817E 7EFFFEFCF8F0F0607E819E8498909060 3C7EFEFFFFFF7E3C3C429E919999423C 66FFFFFFFFFFFF666699998199999966 3C7E3C3C3C3C7E3C3C4224242424423C 1E3F1F0F6FFF7E3C1E2119096999423C 66FFFEFCFCFEFF666699928484929966 60F0F0F0F0FEFF7E60909090909E817E 42E7FFFFFFFFFF6642A5998181999966 66FFFFFFFFFFFF666699898191999966 3C7EFFFFFFFF7E3C3C4299999999423C 7CFEFFFEFCF0F0607C8299829C909060 3C7EFFFFFFFE7F3E3C4299999592413E 7CFEFFFEFCFEFF667C82998284929966 3E7FFE7E3F7FFE7C3E419E423979827C 7EFF7E3C3C3C3C187E81662424242418 66FFFFFFFFFF7E3C669999999999423C 66FFFFFFFF7E3C186699999999422418 66FFFFFFFFFFE742669999818199A542 66FF7E3C7EFFFF666699422442999966 66FFFF7E3C3C3C186699994224242418 7EFF7E3C78FEFF7E7E817224489E817E 3C7E7C78787C7E3C3C424C48484C423C 60F0783C1E0F07026090482412090502 3C7E3E1E1E3E7E3C3C4232121232423C 183C7EFF660000001824429966000000 00000000007EFF7E00000000007E817E #3:MAIN BG 00001410000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000400200000000 00000000000000004002000000000000 00000000400200000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000004002 00000000000000000000000000000000 00000000000000004002000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000400200000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00004002000000000000000000004002 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000004002000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000 #12:WAVEDATA 050000000203010F0000000203010F05 000001030114050100010301140A0500 01030100050A01020301140A0A050103 011E19140A01030101000000000001 #14:SFX 7808F058000000006F08F05800000000 08006060000000002800303019FE0000 28002020000000003800505000000000 0800000F000000006428C47F1FE00000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 #15:MAIN SOUND 2800303A000000001800846C003A0000 08006060000000002800303019FE0000 38002020000000003800505000000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 00014040020340404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 311F0000000000000000000000000000 00000000000000003D1F000000000000 000000003B1F00000000000000391F00 381F0000000000000000000000000000 00000000000000000000000000000000 00000000381F00311F00381F003C1F00 2C080000000000000000000000000000 00000000000000003008000000000000 00000000000000000000000000000000 31080000000000000000000000000000 00000000000000000000000000000000 00000000000000000000310800340800 421F00000000000000000000401F0000 00000000000000003F1F000000000000 000000003D1F003B1F003D1F003B1F00 00000000000000000000000000000000 00000000000000000000000000000000 00FF0000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00FF0000000000000000000000000000