RANDOMIZE TIMER GAMEPAD 1 BG COPY 0,0,20,16 TO 0,0 DIM GLOBAL SHIP_ANGLES(4) FOR I = 0 TO 4 READ ANG SHIP_ANGLES(I) = ANG NEXT I GLOBAL STAGE, BONUS STAGE = 1 BONUS = 0 'ADD_SCORE: PLAYER ONLY GETS POINTS ON NORMAL STAGES AFTER THE STAGE IS COMPLETED GLOBAL SCORE, ADD_SCORE TRACK 0,0 TEXT 5,7,"STAGE" NUMBER 12,7,STAGE,LEN(STR$(STAGE)) WAIT 100 CLS BG COPY 0,0,20,16 TO 0,0 'PLAYER GLOBAL ANGLE ANGLE = 2 'THE AMOUNT OF KILLS IN THE CURRENT STAGE GLOBAL STAGE_KILLS, KILLS_NEEDED KILLS_NEEDED = 1 STAGE_KILLS = 0 GLOBAL BONUS_TIME BONUS_TIME = 0 SPRITE 0 PAL 1 SIZE 1 SPRITE 0,71,90,5 'LASER SPRITE 1 PAL 5 SIZE 1 'ENEMY GLOBAL CUR_SPWN_WAIT GLOBAL SPWN_TIMER IF STAGE = 1 THEN CUR_SPWN_WAIT = 40 ELSE IF CUR_SPWN_WAIT > 16 THEN ADD CUR_SPWN_WAIT, -2 END IF SPWN_TIMER = CUR_SPWN_WAIT DIM GLOBAL USED_LANES(4), LANE_X(4), LANE_Y(4) ENMY_PAL = RND(7) FOR I = 0 TO 4 READ LX READ LY LANE_X(I) = LX LANE_Y(I) = LY SPRITE 2 + I SIZE 1 PAL ENMY_PAL NEXT I NORMAL_STAGE: IF STAGE > 1 THEN TRACK 0,0 END IF CLS NUMBER 0,0,KILLS_NEEDED,2 SPRITE OFF 2 TO 7 ANGLE = 2 NUMBER 6,13,SCORE,8 BG SOURCE ROM(3) BG COPY 0,0,20,16 TO 0,0 ENMY_PAL = RND(7) FOR I = 0 TO 4 SPRITE 2 + I SIZE 1 FLIP 0,0 PAL ENMY_PAL USED_LANES(I) = 0 NEXT I STAGE_KILL = 0 DO NUMBER 6,13,SCORE,8 IF SPWN_TIMER = 0 THEN CALL SPWN_ENMY SPWN_TIMER = CUR_SPWN_WAIT ELSE DEC SPWN_TIMER END IF CALL TURN IF BUTTON TAP(0) THEN CALL SHOOT SPRITE OFF ANGLE + 2 USED_LANES(ANGLE) = 0 END IF WAIT VBL LOOP SUB TURN IF LEFT TAP(0) AND ANGLE > 0 THEN DEC ANGLE ELSE IF RIGHT TAP(0) AND ANGLE < 4 THEN INC ANGLE END IF SPRITE 0 FLIP 0,0 IF ANGLE >= 3 THEN SPRITE 0 FLIP 1,0 END IF SPRITE 0,,,SHIP_ANGLES(ANGLE) END SUB SUB SHOOT SOUND 0,2,15,15 PLAY 0,55,15 LASR_X = 71 LASR_Y = 90 SPRITE 1 FLIP 0,0 SPRITE 1,LASR_X,LASR_Y,SHIP_ANGLES(ANGLE) + 63 WHILE LASR_Y > -11 XOR LASR_X > -10 XOR LASR_X < 152 IF ANGLE > 0 AND ANGLE < 4 THEN ADD LASR_Y, -10 END IF IF ANGLE <= 1 THEN ADD LASR_X, -10 ELSE IF ANGLE >= 3 THEN ADD LASR_X, 10 SPRITE 1 FLIP 1,0 END IF SPRITE 1,LASR_X,LASR_Y, IF BONUS = 1 AND SPRITE HIT(1, 2 TO 6) THEN ADD SCORE, 350 NUMBER 6,13,SCORE,8 SPRITE OFF 1 INC STAGE_KILLS EXIT SUB END IF WAIT VBL WEND IF USED_LANES(ANGLE) = 1 AND BONUS = 0 THEN INC STAGE_KILLS ADD ADD_SCORE, 100 SOUND 0,3,15,15 PLAY 0,55,15 IF STAGE_KILLS = KILLS_NEEDED THEN ADD KILLS_NEEDED, 5 STAGE_KILLS = 0 SPRITE OFF 1 TO 6 ADD SCORE, ADD_SCORE ADD_SCORE = 0 INC STAGE IF CUR_SPWN_WAIT > 20 THEN ADD CUR_SPWN_WAIT, -2 END IF IF STAGE MOD 5 = 0 THEN GOTO BONUS_STAGE END IF TEXT 5,7,"STAGE" NUMBER 12,7,STAGE,LEN(STR$(STAGE)) TRACK 0,0 WAIT 100 CLW BG COPY 0,0,20,16 TO 0,0 ENMY_PAL = RND(7) FOR I = 0 TO 4 SPRITE I + 2 PAL ENMY_PAL USED_LANES(I) = 0 NEXT I END IF END IF END SUB SUB SPWN_ENMY IF BONUS = 1 THEN FOR I = 2 TO 6 SPRITE I FLIP 1,0 PAL RND(7) FOR J = 0 TO 159 STEP 3 SPRITE I, J, I * 8, 7 IF BUTTON TAP(0) THEN CALL SHOOT END IF WAIT VBL NEXT J NEXT I EXIT SUB END IF ENEMY_AMT = 0 FOR I = 0 TO 4 IF USED_LANES(I) = 1 THEN INC ENEMY_AMT END IF NEXT I IF ENEMY_AMT = 5 THEN TRACK 1,0 TEXT 5,7,"GAME OVER" TEXT 0,9,"PRESS A/B TO RESTART" DO IF BUTTON TAP(0) THEN SCORE = 0 KILLS_NEEDED = 1 STAGE_KILLS = 0 STAGE = 1 CUR_SPWN_WAIT = 40 SPWN_TIMER = 40 TRACK 0,0 WINDOW 0,7,20,3,0 CLW TEXT 5,7,"STAGE" NUMBER 12,7,STAGE,LEN(STR$(STAGE)) WAIT 100 GOTO NORMAL_STAGE END IF LOOP END IF RND_LANE = RND(4) IF USED_LANES(RND_LANE) = 0 THEN USED_LANES(RND_LANE) = 1 SPRITE 2 + RND_LANE, LANE_X(RND_LANE), LANE_Y(RND_LANE), 44 WAIT 3 SPRITE 2 + RND_LANE,,,SHIP_ANGLES(RND_LANE) + 6 IF RND_LANE <= 2 THEN SPRITE 2 + RND_LANE FLIP 1,0 END IF END IF END SUB BONUS_STAGE: TRACK 0,0 BONUS = 1 WINDOW 5,7,11,1,0 TEXT 5,7,"BONUS STAGE" WAIT 100 CLW 'ENEMY SHIP FOR I = 15 TO 0 STEP -1 SPRITE 4, LANE_X(2), LANE_Y(2) - I, SHIP_ANGLES(2) + 6 WAIT VBL NEXT I WAIT 50 'PORTAL GUN SPRITE 7 PAL 1 SPRITE 7, LANE_X(2) + 4, LANE_Y(2) + 8, 15 WAIT 35 SPRITE 7,,,31 WAIT 30 'PORTAL SPRITE 8 PAL 6 SIZE 0 FOR I = SPRITE.Y(7) TO SPRITE.Y(0) + 1 SPRITE 8,LANE_X(2) + 4, I, 13 WAIT VBL NEXT I SPRITE 8 SIZE 1 SPRITE 8, LANE_X(2),SPRITE.Y(0) - 2,44 WAIT 10 SPRITE 8,,,46 WAIT 5 SPRITE OFF 4 TO 8 BG SOURCE ROM(4) BG COPY 0,0,20,16 TO 0,0 SPRITE 0,,,5 ANGLE = 2 STAGE_KILLS = 0 BONUS_TIME = 70 DO NUMBER 6,13,SCORE,8 IF SPWN_TIMER = 0 THEN CALL SPWN_ENMY SPWN_TIMER = CUR_SPWN_WAIT ELSE DEC SPWN_TIMER END IF IF BONUS_TIME <= 0 THEN CLS BONUS = 0 EXIT ELSE DEC BONUS_TIME END IF LOOP GOTO NORMAL_STAGE 'SHIP ANGLES DATA 1,3,5,3,1 'ENEMY LANES X AND Y POSITIONS DATA 0,90,0,19,72,0,144,17,144,90 #1:MAIN PALETTES 003F343800100B15003F201500153420 000B083F0030340B000B1F06002F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 0000000103070F13000000000001030F 004080C0E0C0E0C0000000006000E000 8040071F1F3F3F3F000039362D181028 0000FCF0F0F0C8A00000000020904820 00000102060F1F3F0000000101030702 80804020B0F8FCFE000080C0C0E07020 0000077813272F4F000000770F1F183F 1CFEFCF8F0E0C080001CF8C080008080 03070F1F1F3F3F5F0002060E0C1C1D3D 00000000000000000000000000000000 0040E0F0F87C7E7F000040606028303B 0002070F1F3E7EFE0000020606140CDC 00183C24243C18000000183C3C180000 000000000000030F0000000000000000 00000000000024000000000000002400 00000000000000000000000000000000 67130F07030100001E0F030100000000 F0C0E0C0E0C080403000E00060000000 3F3E3D3C222000000402090402000000 80400000000000008040000000000000 5F0A0000000000000A0A000000000000 FDA880000000000028A8800000000000 4F2F2713780700003F181F0F77000000 80C0E0F0F8FCFE1C80800080C0F81C00 5F5F4F67A3180F103B373E5D9F070810 FFFFFEFCF8608000C00EFCF8E0800000 2F2F2713181611001D1D1D0F17111000 F4F4E4C818688800B8B8B8F0E8880800 00000301000000000000000E1F3F7FFF 3FDF7FA1E0F060000020805E1F0F9FFF 000000000000243C000000000000243C 000000000F7FC3C10000000000003C3E 00000FFFFFBF9F0700000000004060F8 0000FFFFFFFFFFFF00001F1F0F0F0707 00FFFFFFFFFFFFFF00F8F8F8F8F0E0E0 FFFFFFFFFFFFFFFF0000000000000000 FFFFFFFFFFFFFFFF0001030303030707 00FFFFFFFFFFFFFF0000000000000000 0000F8E0C0C0E4FC0000071F3F3F1B03 0000F07E3C3C387000000081C3C3C78F 000000000000000000000000F0FEFFFF 0000000000000000000000000000C0F0 00000000000000000000000000000000 0000071C38332428000000170F1C3B17 0000E0381C8C6C6C000000E8F078B8D8 1F7FFFFEF8F3E7EE002011170F1CFB17 F8FEFF7F1F8FEFAF808488E8F078B8F8 E0E0E0C0800000001F1F1F3F7FFFFFFF 0303030101000000FCFCFCFEFEFFFFFF FFFFFFFFFFFFFFFF0301000000000000 FFFFFFFFFFFFFFFFC080000000000000 F0F8FCFCFEFEFF000F07030301010000 0000FFFF7F7E3C3C000000008081C3C3 FF9F0E8E0C0400C00060F171F3FBFF3F FE7F3F0E000000000180C0F1FFFFFFFF F0A00000000000000F5FFFFFFFFFFFFF 0000000000000000FFFFFFFFFFFFFFFF 0000000000000000FCFFFFFFFFFFFFFF 00000000000000000000C0F0F8FCFEFF 363631381C0700001B1D1E0F17000000 1424CC1C38E00000E8DC38F0E8000000 F5F7F1F8FEFF7F1F1F1D1E0F17112101 77E7CF1F7FFFFEF8E8DF38F0E8840400 00000000000000000000000000000000 00000000000000000000000000000000 00000010080002000000000008040201 00000000000000000000000000000000 00000000000000000000000000000000 00808080800080000000800080808080 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 5D000000000000007700000000000000 5E00000000000000F400000000000000 00000000000000000000000000000000 80002010080000008040200008000000 00000000000000000000000000000000 80008080800080008080800080808000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00181818180018000000000000000000 006C6C24000000000000000000000000 00247E24247E24000000000000000000 00083E380E3E08000000000000000000 00626408102646000000000000000000 001C34386E643A000000000000000000 00181830000000000000000000000000 000C183030180C000000000000000000 0030180C0C1830000000000000000000 000024187E1824000000000000000000 000018187E1818000000000000000000 00000000181830000000000000000000 000000007E0000000000000000000000 00000000001818000000000000000000 00060C18306040000000000000000000 003C666E76663C000000000000000000 0018381818187E000000000000000000 003C660C18307E000000000000000000 003C660C06663C000000000000000000 0066667E060606000000000000000000 007E607C06067C000000000000000000 001C307C66663C000000000000000000 007E060C183030000000000000000000 003C663C66663C000000000000000000 003C663E06663C000000000000000000 00000018001800000000000000000000 00000018001830000000000000000000 00000C1830180C000000000000000000 0000007E007E00000000000000000000 000030180C1830000000000000000000 003C660C180018000000000000000000 003C666E6E603C000000000000000000 00183C667E6666000000000000000000 007C667C66667C000000000000000000 003C666060663C000000000000000000 00786C66666C78000000000000000000 007E607860607E000000000000000000 007E6078606060000000000000000000 003C606E66663C000000000000000000 0066667E666666000000000000000000 003C181818183C000000000000000000 001E060606663C000000000000000000 00666C78786C66000000000000000000 0060606060607E000000000000000000 0042667E7E6666000000000000000000 0066767E6E6666000000000000000000 003C666666663C000000000000000000 007C667C606060000000000000000000 003C66666A6C3E000000000000000000 007C667C786C66000000000000000000 003E603C06067C000000000000000000 007E1818181818000000000000000000 0066666666663C000000000000000000 00666666663C18000000000000000000 0066667E7E6642000000000000000000 00663C183C6666000000000000000000 0066663C181818000000000000000000 007E0C1830607E000000000000000000 003C303030303C000000000000000000 006030180C0602000000000000000000 003C0C0C0C0C3C000000000000000000 00183C66000000000000000000000000 0000000000007E000000000000000000 #3:MAIN BG 00001410000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0000000000000000000000000E042004 21042204230424042404260427042804 29042A042B0400000000000000000000 00001D041E0430043104320433042404 240436043704380439043A043B040000 00000000 #4:BG 000014100000000000001D131E133613 31132503250B241324133013390B390B 39133A133B1300000000000000000000 000000000E1320132113221323132413 241334033513281329132A132B130000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 000000002B0400000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000 #15:MAIN SOUND 2800303A000000001800846C003A0000 08006060000000002800303019FE0000 38002020000000003800505000000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 00404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 3C0F00390F003C0F00350F00380F0033 0F00430F00440F00420F00470F00470F 00470F00470F00480F00450F00440F00 380F00380F002B0F002B0F002B0F002B 0F002B0F00FF0F000000000000000000 00000000000000000000000000000000 230F00210F001F0F00240F00280F0026 0F001E0F001D0F001B0F001A0F00300F 002A0F00270F00270F00270F00270F00 FF000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000