'TITLE: EPSILON 'MADE BY NOUSERNAME010' 'WARNING: CODE MAY CONTAIN SPOILERS FOR THE GAME'S PROGRESSION 'SPRITE NOTES '0 - EPSILON (PLAYER) '1-30 - ENEMY FIGHTERS 'PERSISTENT MEMORY NOTES 'B0-B3 - TIME SURVIVED 'B4-B7 - NUMBER OF DEATHS 'TOTAL STAGE STATS = 8 BYTES 'STAGE STATSX4 = 32 BYTES 'B32 - CHECKS IF NORMAL ENDING IS ACHIEVED 'B33 - CHECKS IF EXTREME ENDING IS ACHIEVED 'B34 - CHECKS IF SPECIAL ENDING IS ACHIEVED RANDOMIZE TIMER 'INIT 'DEBUG INIT I=0 IF I=1 THEN POKE $E020,0 POKE $E021,0 POKE $E022,0 END IF TRACE PEEK($E022) 'GAME VARS GLOBAL STIME,AW,AH,CSTYLE,SN$,CTIME,GTIME,SS,MAXSS CTIME=1800 GTIME=3600 AW=16 AH=16 'PLAYER VARS GLOBAL PX,PY,PSPD,PCHARGED PSPD=1 'HANDLER VARS GLOBAL ACD,MAXACD,DIFF,PNUM,PTRUE,CA,CPSIZE,CP,CPINV,CFINV PNUM=10 '0 - ATTACK NUM IN PATTERN '1 - INTERVAL '2 - FIGHTER SHOOT INTERVAL '3-34 - ATTACK CODES DIM GLOBAL PATTERNS(PNUM-1,34) DIM GLOBAL SPARAS(3,51) RESTORE PATTERNDATA FOR I=0 TO PNUM-1 FOR J=0 TO 2 READ PATTERNS(I,J) NEXT J FOR J=3 TO PATTERNS(I,0)+2 READ PATTERNS(I,J) NEXT J NEXT I RESTORE SPARADATA FOR I=0 TO 3 FOR J=0 TO 1 READ SPARAS(I,J) NEXT J FOR J=2 TO SPARAS(I,0)+1 READ SPARAS(I,J) NEXT J NEXT I 'LASER VARS '0-STATE (0-INACTIVE, 1-PREPARATION, 2-ACTIVE. 3-5 - TRAIL.) '1-ORIENTATION (0-HORIZONTAL, 1-VERTICAL) '2-POSITION (0 TO 15) '3-COOLDOWN DIM GLOBAL LASERS(31,3) 'FIGHTER VARS '0-STATE (0-INACTIVE, 1-ACTIVE) '1-X POS '2-Y POS '3-MOVEMENT TYPE '4-DIRECTION (0-UP 1-DOWN 2-LEFT 3-RIGHT) '5-SHOOT COOLDOWN '6-MAX SHOOT COOLDOWN GLOBAL MAXFIGHTERS MAXFIGHTERS=30 DIM GLOBAL FIGHTERS(MAXFIGHTERS-1,6) 'BULLET VARS '0-STATE(0-INACTIVE, 1-ACTIVE, 2-4 - TRAIL) '1-XPOS '2-YPOS '3-DIRECTION (0-UP,1-DOWN,2-LEFT,3-RIGHT) '4-ADVANCE COOLDOWN '5-MAX ADVANCE COOLDOWN GLOBAL MAXBULLETS MAXBULLETS=70 DIM GLOBAL BULLETS(MAXBULLETS-1,5) 'PALETTE INIT SPRITE 0 PAL 1 FOR I=1 TO 50 SPRITE I PAL 4 NEXT I INTRO: CLS BG 0 TEXT 2,7,"NOUSERNAME010" TEXT 2,8,"PRESENTS..." CALL FADETOBLACK(20,0) TRACK 4,0 WAIT 120 STOP CALL FADETOBLACK(20,1) CLS CALL FADETOWHITE(1,1) SELECTCONTROLS: KEYBOARD ON CALL CWTEXT("SELECT STYLE:",0,1,19) CALL CWTEXT("TOUCH",0,3,9) CALL CWTEXT("GAMEPAD",10,3,9) BG COPY 0,0,5,5 TO 1,5 BG COPY 6,0,5,5 TO 12,5 CALL CWTEXT("A KEY",0,11,9) CALL CWTEXT("S KEY",10,11,9) CALL CWTEXT("RELOAD TO CHANGE",0,14,20) I$="" REPEAT I$=INKEY$ WAIT VBL UNTIL I$="A" OR I$="S" KEYBOARD OFF IF I$="A" THEN CSTYLE=1 ELSE CSTYLE=0 IF CSTYLE=1 THEN TOUCHSCREEN ELSE GAMEPAD 1 END IF CLS TITLESCREEN: PAL 0 TMODE=0 SS=0 MAXSS=-1 REPEAT INC MAXSS UNTIL PEEKL($E000+(8*MAXSS))2 THEN MAXSS=2 NEXT I MUSIC BG 1 IF PEEK($E021)=0 THEN CALL PAINTSTARS(32,32) BG 0 DO CLS 0 IF TMODE=0 THEN TEXT 2,2,"EPSILON" IF CSTYLE=1 THEN TEXT 2,5,"TOUCH SCN" ELSE TEXT 2,5,"PRESS (A)" ELSE IF TMODE=1 THEN RESTORE SNAMEDATA PAL 0 TEXT 2,2,"STAGE SELECT" FOR I=0 TO MAXSS READ T$ IF PEEKL($E000+(8*I))>=GTIME THEN PAL 4 ELSE PAL 0 TEXT 2,4+I,T$ NEXT I PAL 0 CELL 1,4+SS,4 IF PEEKL($E004+(8*SS))>0 THEN IF PEEKL($E000+(8*SS))>=GTIME THEN PAL 4 ELSE PAL 0 TEXT 2,9,"EPSILONS LOST:" TEXT 2,10,STR$(PEEKL($E004+(8*SS))) TEXT 2,12,"TIME SURVIVED:" TEXT 2,13,STR$(INT(PEEKL($E000+(8*SS))/60))+"."+STR$(PEEKL($E000+(8*SS)) MOD 60) IF PEEKL($E000+(8*SS))>CTIME THEN IF PEEKL($E000+(8*SS))>GTIME THEN TEXT 2,14,"X-PURE!?" ELSE TEXT 2,14,"PURIFIED!" END IF END IF ELSE IF CSTYLE=0 THEN TEXT 2,9,"PRESS (A)" ELSE TEXT 2,9,"TAP RIGHT" TEXT 2,10,"TO PURIFY" END IF END IF IF TMODE=0 THEN IF CSTYLE=1 THEN IF TOUCH THEN TMODE=1 ELSE IF BUTTON TAP(0,0) THEN TMODE=1 END IF IF TMODE=1 THEN PLAY 3,49,20 SOUND 1 WAIT VBL END IF END IF IF TMODE=1 THEN ACTION=0 IF CSTYLE=0 THEN IF UP TAP(0) THEN ACTION=1 ELSE IF DOWN TAP(0) THEN ACTION=2 END IF IF BUTTON TAP(0,0) THEN ACTION=3 ELSE IF TAP THEN IF TOUCH.X>80 THEN ACTION=3 ELSE IF TOUCH.Y>64 THEN ACTION=2 ELSE ACTION=1 END IF END IF END IF IF ACTION=1 THEN DEC SS IF SS<0 THEN SS=0 ELSE PLAY 3,49,20 SOUND 1 ELSE IF ACTION=2 THEN INC SS IF SS>MAXSS THEN SS=MAXSS ELSE PLAY 3,49,20 SOUND 1 ELSE IF ACTION=3 THEN CLS SPRITE OFF 0 TO 63 STOP POKEL $E004+(8*SS),PEEKL($E004+(8*SS))+1 PLAY 3,49,20 SOUND 1 DIFF=SS GOTO GAMESET END IF END IF SCROLL 1,SIN(TIMER/50)*5,-(TIMER/5) SPRITE 0,120+(SIN((TIMER-2)/50)*2),64+(COS((TIMER-2)/50)*2),1 WAIT VBL LOOP GAMESET: 'BG 1 SETUP BG 1 SCROLL 1,0,0 CALL PAINTSTARS(16,32) 'GAME VARS STIME=0 RESTORE SNAMEDATA FOR S=0 TO DIFF READ SN$ NEXT S 'HANDLER VARS MAXACD=60-(10*DIFF) ACD=MAXACD PTRUE=0 CPSIZE=0 CPINV=0 CFINV=0 'LASER VARS FOR I=0 TO 31 FOR J=0 TO 3 LASERS(I,J)=0 NEXT J NEXT I 'FIGHTER VARS FOR I=0 TO MAXFIGHTERS-1 FOR J=0 TO 6 FIGHTERS(I,J)=0 NEXT J NEXT I 'BULLET VARS FOR I=0 TO MAXBULLETS-1 FOR J=0 TO 5 BULLETS(I,J)=0 NEXT J NEXT I 'PLAYER VARS PX=(AW*8)/2 PY=(AH*8)/2 PCHARGED=0 GAME: WAIT VBL BG 0 CALL DRAWHUD CALL DRAWBG PRIO 1 CALL CWTEXT("READY",0,8,AW) PRIO 0 T=0 REPEAT CALL DRAWBG WAIT VBL INC T UNTIL T=120 MUSIC SPARAS(SS,1) DO CLS 0 CALL DRAWHUD CALL DRAWBG CALL DRAWPLAYER CALL UPDATEHANDLER CALL UPDATEBULLETS CALL UPDATELASERS CALL UPDATEFIGHTERS CALL UPDATEPLAYER WAIT VBL LOOP PLAYERDEATH: STOP CLS 1 PAL 0 PLAY 0,37 SOUND 15 SPRITE OFF 0 CALL FADETOBLACK(30,0) WAIT 120 CALL CWTEXT("PURIFICATION",0,3,AW) CALL CWTEXT("FAILED",0,4,AW) WAIT 120 CLS SPRITE OFF 0 TO 63 GOTO GAMEEND PURIFY: STOP CLS PAL 0 PLAY 0,37 SOUND 15 SPRITE OFF 0 TO 63 IF SS=3 AND PEEK($E021)=0 AND STIME>CTIME THEN CALL DRAWPLAYER CALL FADETOBLACK(60,0) CALL FADETOBLACK(30,1) 'DETERMINES ENDING IF SS=2 THEN IF PEEK($E020)=0 THEN POKE $E020,1 GOTO NORMALEND END IF ELSE IF SS=3 THEN IF STIME>GTIME AND PEEK($E022)=0 THEN POKE $E022,1 GOTO SPECIALEND ELSE IF PEEK($E021)=0 THEN POKE $E021,1 GOTO EXTREMEEND END IF END IF CALL CWTEXT(SN$,0,3,20) CALL CWTEXT("PURIFIED",0,4,20) TRACK 63,2 TRACK 62,3 CALL FADETOWHITE(60,1) WAIT 120 IF STIME>GTIME THEN PAL 4 CALL CWTEXT("X-PURE STATUS",0,9,20) CALL CWTEXT("ACHIEVED",0,10,20) WAIT 120 END IF GOTO GAMEEND NORMALEND: MUSIC 6 CALL CWTEXT("UNIVERSE",0,3,20) CALL CWTEXT("PURIFIED",0,4,20) CALL FADETOWHITE(60,1) WAIT 120 CALL FADETOBLACK(30,1) GOSUB CREDITS CALL CWTEXT("THERE'S STILL",0,3,20) CALL CWTEXT("MORE TO FIND...",0,4,20) CALL CWTEXT("SURVIVE LONGER",0,8,20) CALL CWTEXT("THAN USUAL",0,9,20) CALL CWTEXT("TO FIND OUT...",0,10,20) CALL FADETOWHITE(60,1) WAIT 300 CALL FADETOBLACK(30,1) GOTO GAMEEND CREDITS: CLS CALL CWTEXT("MADE BY:",0,3,20) CALL CWTEXT("NOUSERNAME010",0,4,20) CALL FADETOWHITE(30,1) WAIT 360 CALL FADETOBLACK(30,1) CLS CALL CWTEXT("SPECIAL THANKS",0,3,20) CALL CWTEXT("QWAFFE",0,5,20) CALL CWTEXT("TOUCHSCREEN",0,7,20) CALL CWTEXT("SUGGESTIONS",0,8,20) CALL CWTEXT("TIMO",0,10,20) CALL CWTEXT("LOWRES NX",0,12,20) CALL FADETOWHITE(30,1) WAIT 540 CALL FADETOBLACK(30,1) CLS CALL CWTEXT("AND YOU",0,3,20) CALL CWTEXT("FOR PLAYING!",0,4,20) CALL FADETOWHITE(30,1) WAIT 300 CALL FADETOBLACK(30,1) CLS RETURN EXTREMEEND: MUSIC 6 PRIO 1 CALL CWTEXT("UNIVERSE",0,3,20) CALL CWTEXT("PURIFIED",0,4,20) CALL FADETOWHITE(60,1) WAIT 120 CALL FADETOBLACK(30,1) GOSUB CREDITS CALL CWTEXT("YOU'RE ALL THAT",0,3,20) CALL CWTEXT("IS LEFT",0,4,20) CALL CWTEXT("IN THE VAST",0,13,20) CALL CWTEXT("EMPTINESS",0,14,20) CALL FADETOWHITE(60,1) WAIT 240 CALL FADETOBLACK(30,1) PRIO 0 GOTO GAMEEND SPECIALEND: CLS CALL FADETOWHITE(1,1) PRINT "OMEGA LOG" PRINT "#XXX" WAIT 300 CLS PRINT "EPSILONS," PRINT PRINT "SUICIDAL PURISTS" PRINT "THAT AIM FOR" PRINT "UNIVERSAL" PRINT "CLEANSING" WAIT 300 CLS PRINT "THEY HAVE JUST" PRINT "WIPED OUT BETA" PRINT PRINT "THE FIRST ONE" PRINT "WAS SPOTTED AT" PRINT "DELTA RECENTLY." WAIT 300 CLS PRINT "IT'S IMPORTANT" PRINT "TO NOTE THAT THEY" PRINT "HAVE A NOBLE GOAL." WAIT 300 CLS PRINT "WE HAVE BEEN" PRINT "DELAYING THE" PRINT "UNIVERSE'S DEATH" PRINT "FOR TOO LONG..." WAIT 300 CLS PRINT "BUT THEY DON'T" PRINT "KNOW OMEGA" PRINT "IS NEEDED" PRINT "FOR A SECOND" PRINT "BIG BANG." WAIT 360 CLS PRINT "FOR THAT," PRINT "WE FAITHFULLY" PRINT "GUARD SECTOR OMEGA" WAIT 300 CLS PRINT "--LOG END--" PRINT PRINT "THANKS FOR" PRINT "PLAYING UP" PRINT "TO THIS POINT!" PRINT PRINT "IT MEANS A LOT" PRINT ":)" PRINT PRINT "NO MORE SECRETS" PRINT "LEFT, TRUST ME" WAIT 420 CLS GOTO GAMEEND GAMEEND: CLS STOP IF STIME>PEEKL($E000+(8*SS)) THEN POKEL $E000+(8*SS),STIME CALL FADETOWHITE(1,1) GOTO TITLESCREEN '###SUBS### 'PLAYER SUBS SUB DRAWPLAYER SPRITE 0,PX,PY,1 END SUB SUB UPDATEPLAYER 'ADD SURVIVAL TIME INC STIME 'CENTER PLAYER POS PCX=PX+3 PCY=PY+3 'MOVEMENT CSPD=PSPD IF CSTYLE=0 THEN IF BUTTON(0,1) THEN CSPD=CSPD*2 IF CSTYLE=0 THEN IF UP(0) THEN ADD PY,-CSPD ELSE IF DOWN(0) THEN ADD PY,CSPD END IF IF LEFT(0) THEN ADD PX,-CSPD ELSE IF RIGHT(0) THEN ADD PX,CSPD END IF ELSE IF TOUCH THEN CXSPD=CSPD CYSPD=CSPD IF ABS(TOUCH.X-PCX)>10 THEN CXSPD=CXSPD*2 IF ABS(TOUCH.Y-PCY)>10 THEN CYSPD=CYSPD*2 IF INT(TOUCH.X)>PCX THEN ADD PX,CXSPD ELSE IF INT(TOUCH.X)PCY THEN ADD PY,CYSPD ELSE IF INT(TOUCH.Y)112 THEN PX=112 IF PY>112 THEN PY=112 'CHECKS IF PLAYER HITS AN ENEMY COLCHAR = CELL.C(PCX/8,PCY/8) IF COLCHAR=64 OR COLCHAR=68 OR COLCHAR=72 OR SPRITE HIT(0,1 TO 50) THEN IF PCHARGED=0 THEN GOTO PLAYERDEATH ELSE GOTO PURIFY END IF END SUB 'HANDLER SUBS SUB UPDATEHANDLER DEC ACD IF ACD<0 THEN CALL INITIATEATTACK END IF END SUB SUB INITIATEATTACK IF PTRUE=0 THEN 'CHOOSE PATTERN PTRUE=1 CP=SPARAS(SS,RND(SPARAS(SS,0)-1)+2) CPSIZE=PATTERNS(CP,0) CPINV=PATTERNS(CP,1) CFINV=PATTERNS(CP,2) CA=3 END IF IF PTRUE=1 THEN CC=PATTERNS(CP,CA) REPEAT 'SELECTS ATTACK BASED ON CURRENT ATTACK CODE IF CC>=1 AND CC<=14 THEN CALL MAKELASER(1,CC) ELSE IF CC>=15 AND CC<=28 THEN CALL MAKELASER(2,CC-14) ELSE IF CC>=43 AND CC<=56 THEN CALL MAKEFIGHTER(8*(CC-42),0,0,1,CFINV) ELSE IF CC>=113 AND CC<=116 THEN FOR I=0 TO 6 CALL MAKELASER(INT((CC-113)/2)+1,(I*2)+((CC-113) MOD 2)+1) NEXT I END IF 'ADVANCES TO NEXT ATTACK INC CA 'CANCELS PATTERN IF ATTACK SIZE REACHED. IF (CA-3)>=CPSIZE THEN PTRUE=0 IF CC>=117 AND CC<=128 THEN ACD=5*(CC-116) ELSE ACD=MAXACD ELSE ACD=CPINV END IF UNTIL ACD>0 END IF END SUB 'LASER SUBS SUB DRAWLASER(O,POS,LSTATE,CD) PAL 2 IF LSTATE=1 THEN IF O=0 THEN FOR T=0 TO 15 CC=CELL.C(T,POS) IF NOT (CC>63 AND CC<76) THEN IF T=0 OR T=15 THEN CELL T,POS,80 ELSE CELL T,POS,65+INT((CD+10)/30) END IF NEXT T ELSE FOR T=0 TO 15 CC=CELL.C(POS,T) IF NOT (CC>63 AND CC<76) THEN IF T=0 OR T=15 THEN CELL POS,T,80 ELSE CELL POS,T,69+INT((CD+10)/30) END IF NEXT T END IF ELSE IF LSTATE>1 AND LSTATE<6 THEN IF O=0 THEN FOR T=0 TO AW-1 CELL T,POS,62+LSTATE NEXT T ELSE FOR T=0 TO AH-1 CELL POS,T,66+LSTATE NEXT T END IF END IF END SUB SUB UPDATELASERS FOR I=0 TO 31 IF LASERS(I,0)>0 THEN IF LASERS(I,0)=1 THEN DEC LASERS(I,3) IF LASERS(I,3)<=0 THEN INC LASERS(I,0) LASERS(I,3)=2 END IF ELSE IF LASERS(I,0)>=2 THEN DEC LASERS(I,3) IF LASERS(I,3)<=0 THEN INC LASERS(I,0) IF LASERS(I,0)>5 THEN LASERS(I,0)=0 ELSE IF LASERS(I,3)<=0 THEN LASERS(I,3)=2 END IF END IF CALL DRAWLASER(LASERS(I,1),LASERS(I,2),LASERS(I,0),LASERS(I,3)) END IF NEXT I END SUB SUB MAKELASER(O,POS) FOR L=0 TO 31 IF LASERS(L,0)=0 THEN LASERS(L,0)=1 IF O>0 THEN LASERS(L,1)=O-1 ELSE LASERS(L,1)=RND(1) IF LASERS(L,1)=0 THEN IF POS=0 THEN LASERS(L,2)=RND(AW-3)+1 ELSE LASERS(L,2)=POS ELSE IF POS=0 THEN LASERS(L,2)=RND(AH-3)+1 ELSE LASERS(L,2)=POS END IF LASERS(L,3)=60 L=31 END IF NEXT L END SUB 'BULLET SUBS SUB DRAWBULLET(BX,BY,BS) PAL 2 CELL BX,BY,71+MIN(BS,2) END SUB SUB MAKEBULLET(BX,BY,BD,BC) FOR B=0 TO MAXBULLETS-1 IF BULLETS(B,0)=0 THEN BULLETS(B,0)=1 BULLETS(B,1)=INT(BX/8) BULLETS(B,2)=INT(BY/8) BULLETS(B,3)=BD MOD 4 BULLETS(B,5)=BC BULLETS(B,4)=BULLETS(B,5) B=MAXBULLETS-1 END IF NEXT B END SUB SUB UPDATEBULLETS FOR B=0 TO MAXBULLETS-1 IF BULLETS(B,0)>0 THEN BX=BULLETS(B,1) BY=BULLETS(B,2) BD=BULLETS(B,3) BMC=BULLETS(B,5) DEC BULLETS(B,4) IF BULLETS(B,4)<=0 THEN BULLETS(B,4)=BULLETS(B,5) IF BULLETS(B,0)=1 THEN IF BD<=1 THEN IF BD=0 THEN CALL MAKEBULLET(BX*8,(BY-1)*8,BD,BMC) ELSE CALL MAKEBULLET(BX*8,(BY+1)*8,BD,BMC) ELSE IF BD=2 THEN CALL MAKEBULLET((BX-1)*8,BY*8,BD,BMC) ELSE CALL MAKEBULLET((BX+1)*8,BY*8,BD,BMC) END IF END IF INC BULLETS(B,0) END IF IF BULLETS(B,0)>3 OR BX<=0 OR BX>=15 OR BY<=0 OR BY>=15 THEN BULLETS(B,0)=0 IF BULLETS(B,0)>0 THEN CALL DRAWBULLET(BX,BY,BULLETS(B,0)) END IF NEXT B END SUB 'FIGHTER SUBS SUB DRAWFIGHTER(F,X,Y,C,FX,FY) SPRITE F+1,X,Y,C SPRITE F+1 FLIP FX,FY END SUB SUB MAKEFIGHTER(XP,YP,MT,MD,INV) FOR I=0 TO MAXFIGHTERS-1 IF FIGHTERS(I,0)=0 THEN FIGHTERS(I,0)=1 FIGHTERS(I,1)=XP FIGHTERS(I,2)=YP FIGHTERS(I,3)=MT FIGHTERS(I,4)=MD MOD 4 FIGHTERS(I,6)=INV FIGHTERS(I,5)=FIGHTERS(I,6) I=MAXFIGHTERS-1 END IF NEXT I END SUB SUB UPDATEFIGHTERS FOR F=0 TO MAXFIGHTERS-1 IF FIGHTERS(F,0)>0 THEN FSPD=1 MT=FIGHTERS(F,3) MD=FIGHTERS(F,4) 'FIGHTER MOVEMENT IF MD=0 THEN ADD FIGHTERS(F,2),-FSPD ELSE IF MD=1 THEN ADD FIGHTERS(F,2),FSPD ELSE IF MD=2 THEN ADD FIGHTERS(F,1),-FSPD ELSE IF MD=3 THEN ADD FIGHTERS(F,1),FSPD END IF 'FIGHTER CHARACTER FLIP FX=0 FY=0 IF FIGHTERS(F,2)>64 AND MD>=2 THEN FY=1 IF FIGHTERS(F,1)>64 AND MD<=1 THEN FX=1 'FIGHTER SHOOTING DIRECTION SD=0 IF MD>=2 THEN SD=1-FY ELSE IF FX=1 THEN SD=2 ELSE SD=3 END IF 'FIGHTER MOVEMENT EFFECTS IF MT=1 THEN IF MD<=1 THEN ADD FIGHTERS(F,1),0.5*SIN(FIGHTERS(F,2)/20) ELSE IF MD>=2 THEN ADD FIGHTERS(F,2),0.5*SIN(FIGHTERS(F,1)/20) END IF END IF 'FIGHTER SHOOTING DEC FIGHTERS(F,5) IF FIGHTERS(F,5)<=0 THEN FIGHTERS(F,5)=FIGHTERS(F,6) CALL MAKEBULLET(FIGHTERS(F,1),FIGHTERS(F,2),SD,5) END IF 'FIGHTER GRAPHICS FC=0 IF MD>=2 THEN FC=17 ELSE FC=16 CALL DRAWFIGHTER(F,FIGHTERS(F,1)+3,FIGHTERS(F,2)+3,FC,FX,FY) 'FIGHTER DELETION IF FIGHTERS(F,1)<0 OR FIGHTERS(F,1)>(AW-1)*8 OR FIGHTERS(F,2)<0 OR FIGHTERS(F,2)>(AH-1)*8 THEN FIGHTERS(F,0)=0 SPRITE OFF F+1 END IF END IF NEXT F END SUB 'BACKGROUND SUBS SUB DRAWBG SCROLL 1,0,-(TIMER/10) END SUB SUB PAINTSTARS(SW,SH) PAL 0 FOR I=0 TO SW-1 FOR J=0 TO SH-1 IF RND(15)=0 THEN CELL I,J,2+RND(1) END IF NEXT J NEXT I END SUB 'INTERFACE SUBS SUB DRAWHUD PAL 0 BG COPY 16,0,4,16 TO 16,0 TEXT 17,1,STR$(INT(STIME/60)) TEXT 15,0,SN$ 'PROGRESS BAR PAL 3 PROGRESS=(STIME/CTIME)*100 I=0 PRIO 1 REPEAT DP=(PROGRESS-(I*(100/9))) CELL 18,14-I,130+MAX(MIN(DP,8),0) ADD I,1 UNTIL I>8 PAL 0 PRIO 0 T$="CHARGED" IF PROGRESS>=100 THEN FOR I=0 TO LEN(T$)-1 TEXT 17,6+I,MID$(T$,I+1,1) NEXT I IF PCHARGED=0 THEN TRACK 61,3 PCHARGED=1 END IF END IF END SUB SUB CWTEXT(T$,XO,Y,W) TEXT ((W/2)-(LEN(T$)/2))+XO,Y,T$ END SUB 'PALETTE SUBS SUB FADETOWHITE(INTV,SC) J=$FF00+SC FOR I=0 TO 3 POKE J,((I*16)+(I*4)+I) WAIT INTV NEXT I END SUB SUB FADETOBLACK(INTV,SC) J=$FF00+SC FOR I=3 TO 0 STEP -1 POKE J,((I*16)+(I*4)+I) WAIT INTV NEXT I END SUB 'DATA 'STAGE NAME DATA SNAMEDATA: DATA "ALPHA","BETA","DELTA","OMEGA" 'ATTACK PATTERN DATA 'EACH PATTERN IS ASSIGNED A NUMBER ACCORDING TO AN ARRAY. 'FIRST NUM IS THE NUMBER OF ATTACKS IN THE PATTERN. MAX IS 16 'SECOND NUM IS INTERVAL BETWEEN EACH ATTACK 'THIRD NUM IS FIGHTER SHOOT INTERVAL '0-EMPTY '1-14 - HORIZONTAL LASERS '15-28 - VERTICAL LASERS '29-42 - TYPE 0 HORIZONTAL FIGHTERS '43-56 - TYPE 0 VERTICAL FIGHTERS '57-70 - TYPE 1 HORIZONTAL FIGHTERS '71-84 - TYPE 1 VERTICAL FIGHTERS '85-98 - TYPE 2 HORIZONTAL FIGHTERS '99-112 - TYPE 2 VERTICAL FIGHTERS 'ANY NUMBER BEYOND THAT ARE SPECIAL CODES THAT DO UNIQUE EFFECTS ON THE INITIATEATTACK SUB '113-116 - SPECIAL HOLE-IN-THE-WALL LASER PATTERNS '117-128 - MID COOLDOWNS. FORMULA: 5 TICKS * (NUM-116). PREFERRED IF PATTERN INTERVAL=0 PATTERNDATA: DATA 14,05,00,01,02,03,04,05,06,07,14,13,12,11,10,09,08 DATA 14,05,00,15,16,17,18,19,20,21,28,27,26,25,24,23,22 DATA 02,20,00,113,114 DATA 02,20,00,115,116 DATA 04,40,00,113,115,114,116 DATA 08,05,40,43,44,43,44,56,55,56,55 DATA 14,15,20,43,44,45,46,47,48,49,50,51,52,53,54,55,56 DATA 14,15,20,56,55,54,53,52,51,50,49,48,47,46,45,44,43 DATA 14,20,00,01,02,03,04,05,06,07,08,09,10,11,12,13,14 DATA 14,20,00,15,16,17,18,19,20,21,22,23,24,25,26,27,28 'STAGE PARAMETERS DATA 'FIRST NUM - PATTERNS STAGE USES 'SECOND NUM - MUSIC PATTERN PLAYED 'REST OF NUMBERS - PATTERN NUMBER SPARADATA: DATA 4,2,0,1,2,3 DATA 5,2,0,1,2,3,5 DATA 8,2,0,1,2,3,4,5,8,9 DATA 10,2,0,1,2,3,4,5,6,7,8,9 #1:MAIN PALETTES 003F2A15002F2A15003020100020103C 003C2A14003F2A15003F2A15003F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 00183C245A5A3C000018243C66663C00 0000200004000000002050240A040000 00000008000000000000081408000000 0060607662706000006078787C786000 00422400002442000000000000000000 00181000147E7E000000083C3C7E7E00 003612080602000000381C0E06020000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0000601C00600000000060203C600000 002424101010000000243C0808080000 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 FFFFFFFFFFFFFFFFFF000000000000FF 00FF00000000FF0000FFFFFFFFFFFF00 0000FFFFFFFF00000000FFFFFFFF0000 00000055AA00000000000055AA000000 FFFFFFFFFFFFFFFF8181818181818181 42424242424242427E7E7E7E7E7E7E7E 3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C 08100810081008100810081008100810 3C42BDBDBDBD423C3C7EC3C3C3C37E3C 00000018180000000000001818000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00183C3C425A7E00000018183C3C0000 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 7F7F7F7F7F7F7F7F8080808080808080 FFFFFFFFFFFFFFFF0000000000000000 C3C3C3C3C3C3C3C32424242424242424 C3C3C3C3C3C3C3DB242424242424243C C3C3C3C3C3C3DBDB2424242424243C3C C3C3C3C3C3DBDBDB24242424243C3C3C C3C3C3C3DBDBDBDB242424243C3C3C3C C3C3C3DBDBDBDBDB2424243C3C3C3C3C C3C3DBDBDBDBDBDB24243C3C3C3C3C3C C3DBDBDBDBDBDBDB243C3C3C3C3C3C3C DBDBDBDBDBDBDBDB3C3C3C3C3C3C3C3C 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 7F7F7F7F7F7F7F0080808080808080FF FFFFFFFFFFFFFF0000000000000000FF 00000000000000008080808080808080 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 00101010100010000000000000000000 00484824000000000000000000000000 00247E24247E24000000000000000000 00083E380E3E08000000000000000000 00626408102646000000000000000000 001C24384E443A000000000000000000 00101020000000000000000000000000 00040808080804000000000000000000 00201010101020000000000000000000 000024187E1824000000000000000000 000010107C1010000000000000000000 00000000080810000000000000000000 000000007E0000000000000000000000 00000000001818000000000000000000 00020408102040000000000000000000 003C464A52623C000000000000000000 0018280808083E000000000000000000 003C420418207E000000000000000000 003C420C02423C000000000000000000 0042427E020202000000000000000000 007E407C02027C000000000000000000 001C207C42423C000000000000000000 007E0204081010000000000000000000 003C423C42423C000000000000000000 003C423E02423C000000000000000000 00000018001800000000000000000000 00000018001830000000000000000000 00000C1830180C000000000000000000 0000007E007E00000000000000000000 000030180C1830000000000000000000 003C660C180018000000000000000000 003C424E4E403C000000000000000000 001824427E4242000000000000000000 007C427C42427C000000000000000000 003C424040423C000000000000000000 00784442424478000000000000000000 007E407840407E000000000000000000 007E4078404040000000000000000000 003C404E42423C000000000000000000 0042427E424242000000000000000000 00381010101038000000000000000000 001E020202423C000000000000000000 00424244784442000000000000000000 0040404040407E000000000000000000 0042667E5A4242000000000000000000 004262524A4642000000000000000000 003C424242423C000000000000000000 007C427C404040000000000000000000 003C42424A443A000000000000000000 007C427C484442000000000000000000 003E403C02027C000000000000000000 007C1010101010000000000000000000 0042424242423C000000000000000000 00424242422418000000000000000000 0042425A7E6642000000000000000000 00422418244242000000000000000000 00424224180808000000000000000000 007E040810207E000000000000000000 001C101010101C000000000000000000 00402010080402000000000000000000 00380808080838000000000000000000 00182442000000000000000000000000 0000000000007E000000000000000000 #3:MAIN BG 00001410000000000000000005000000 00000000060000000000000000000000 00000000922000000020002000000000 00000300000000000000070800000700 00000000000000000000000092200020 00200020000000000300000000000000 04080000010100000400000000000000 00000000922000200020002000000101 00000000000000000000071800000710 00000000000000000000000092200020 00200020000000000000000000000000 00000000061000000000000000000000 00000000922000200020002000000000 00000000000000000000000000000000 00000000000000000000000090339133 91339133000000000000000000000000 00000000000000000000000000000000 00000000802381338233813300000000 00000000000000000000000000000000 00000000000000000000000080238133 82338133000000000000000000000000 00000000000000000000000000000000 00000000802381338233813300000000 00000000000000000000000000000000 00000000000000000000000080238133 82338133000000000000000000000000 00000000000000000000000000000000 00000000802381338233813300000000 00000000000000000000000000000000 00000000000000000000000080238133 82338133000000000000000000000000 00000000000000000000000000000000 00000000802381338233813300000000 00000000000000000000000000000000 00000000000000000000000080238133 82338133000000000000000000000000 00000000000000000000000000000000 00000000802381338233813300000000 00000000000000000000000000000000 00000000000000000000000090239123 91239123 #15:MAIN SOUND 2F0080340000000028008062003A0000 08006060000000002800303019FE0000 38002020000000003800505000000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F00000000780160B002F80000 800240400103C0408506404005060740 08090A400B890A40000240400C034040 0D0E4040000F02400103904040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 3D0FD8000000440F00000000420F0044 0F00420F003F0F00400F003F0F003D0F 003B0F003D0F003B0F00380F003B0F00 3D0F00000000440F00000000420F0044 0F00470F00490F00440F000000000000 000000000000000000003D0F003F0F00 400FD80000003F0F000000003D0F003B 0F003D0F003B0F00380F003B0F003B0F 00000000000000000000000000000000 390F00380F00360F00340F00360F0034 0F00330F00310F00310F000000000000 00000000000000000000000000000000 311F00000000000000000000331F0000 0000000000000000341F000000000000 00000000000000000000000000000000 341F000000000000000000003B1F0000 00000000000000003D1F000000003B1F 000000003D1F000000003B1F00000000 391F00000000000000000000361F0000 0000000000000000381F000000000000 00000000381F00361F00341F00000000 361F00000000000000000000331F0000 0000000000000000311F000000000000 00000000000000000000000000000000 3D0F00000000440F00000000FF000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 3D1FEF3F1F00401F00421F00441F0042 1F00441F00000000421F00401F003F1F 00421F00401F003F1F003D1F003B1F00 3D1F003B1F00391F003B1F003D1F003B 1F003D1F000000003F1F003D1F003F1F 00401F00421F00401F003F1F00401F00 311F00000000000000000000381F0000 0000000000000000361F00000000381F 00000000361F00000000331F00000000 311F00000000000000000000341F0000 0000000000000000331F00000000311F 00000000301F00000000331F00000000 310F00000000000000000000330F0000 0000000000000000340F000000000000 00000000360F00000000000000000000 340F0000000000000000000000000000 0000000000000000340F00000000380F 000000003B0F00000000000000000000 3D1FEF3B1F003D1F003B1F003D1F003F 1F00401F000000003B1F00381F003B1F 00381F003B1F00391F00381F00000000 361F00331F00361F00331F00361F0034 1F00331F00311F00341F00331F00341F 00331F00341F00361F00381F00000000 310F0000000000000000000000000000 00000000000000002C0F000000000000 00000000000000000000000000000000 340F0000000000000000000000000000 0000000000000000310F000000000000 00000000340F00000000000000000000 340F0000000000000000000000000000 00000000000000002F0F000000000000 00000000000000000000000000000000 360F0000000000000000000000000000 0000000000000000340F000000000000 00000000380F00000000000000FF0000 3D1FEF3B1F003D1F003B1F003D1F003F 1F00401F000000003B1F00381F003B1F 00381F003B1F00391F00381F00000000 361F00381F00391F003B1F003D1F003F 1F00401F00421F00401F003F1F00401F 00421F00441F00000000000000000000 400FD80000003F0F000000003D0F003B 0F003D0F003B0F00380F003B0F003B0F 00000000000000000000000000000000 390F00380F00360F00340F00360F0034 0F00330F00310F00310F000000000000 00000000000000310F00340F00360F00 380FD8000000360F00340F00330F0000 0000000000000000310F00330F000000 002F0F00310F002F0F002C0F00000000 380F00000000360F00380F003B0F0000 00000000000000003D0F00400F000000 00420F00440F00420F00400F003F0F00 381F000000000000000000003B1F0000 0000000000000000341F000000000000 00000000381F00000000000000000000 311F00000000000000000000341F0000 0000000000000000361F000000000000 00000000381F00000000000000000000 311F00000000341F00000000381F0000 0000000000000000311F00000000341F 00000000361F00000000000000000000 381F000000000000000000003B1F0000 00000000000000003D1F00000000401F 00000000421F00000000000000000000 3D1F00000000000000000000401F0000 0000000000000000401F000000003F1F 000000003D1F00000000000000000000 3D1F000000000000000000003F1F0000 00000000000000003D1F000000000000 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 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 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 3D1F003F1F00401F00FF00F000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 311FD8000000381F000000003B1F0000 0000381F000000000000000000000000 00000000FF00F0000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 3D0FD8000000440F00000000420F0044 0F00470F000000000000000000000000 00000000FF00F0000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000