'SPACE ZAP '(C)1980 MIDWAY GAMES '2021 LOSTCADESOFT BY BGELAIS GAMEPAD 1 GLOBAL SCORE,HIGH,LIVES,BOSSTIME,DEMO BG 1 FOR I=0 TO 15 PAL 7 CELL RND(20),I,16 NEXT I ATTRACT: CLS 0 DEMO=1 ON VBL CALL PUSHSTART SCORE=0 HIGH=PEEKL($E000) LIVES=3 FOR I=0 TO 32 SPRITE I,,,0 NEXT I SPRITE OFF CALL HUD SPRITE 0 SIZE 3 PAL 1 SPRITE 0,66,54,1 BG 0 LOCATE 0,3 PAL 0 PRINT" YOU ARE THE BASE" PRINT" DEFENSE'S ZAPPER!" PAL 0 CELL 4,7,21 CELL 5,8,22 CELL 4,9,37 CELL 3,8,38 TEXT 2,11,"[ ZAP" FOR T=1 TO 360 PAL 1 CELL 13,7,25 PAL 2 CELL 13,9,41 PAL 7 CELL 13,11,12+TIMER/8 MOD 3 PAL 4+RND(2)\1 TEXT 15,7,"50" TEXT 15,9,"25" TEXT 15,11,"150" IF BUTTON(0) THEN GOTO START WAIT VBL NEXT T TITLE: SCORE=0 HIGH=PEEKL($E000) LIVES=3 DEMO=1 CLS 0 RANDOMIZE TIMER BOSSTIME=TIMER+1200 ON VBL CALL PUSHSTART BG 0 PAL 6 FOR T=1 TO 300 PAL 4+TIMER/15 MOD 2 FOR I=0 TO 5 CELL 4+I,3,64+I CELL 4+I,4,80+I CELL 4+I,5,96+I NEXT I PAL 3+TIMER/15 MOD 2 FOR I=0 TO 3 CELL 11+I,3,70+I CELL 11+I,4,86+I CELL 11+I,5,102+I NEXT I CALL SPAWN CALL ENEMYS CALL DEMO CALL HUD PAL 6 TEXT 1,11,"@1980 MIDWAY GAMES" TEXT 2,12,"2021 LOSTCADESOFT" TEXT 7,13,"BY BGELAIS" SCORE=0 IF BUTTON(0) THEN GOTO START IF SPRITE HIT(0,10 TO 18) THEN SPRITE OFF HIT WAIT VBL NEXT T GOTO ATTRACT START: DEMO =0 ON VBL OFF for i=10 to 18 sprite i,,,0 next i SPRITE 1,78,53,8 CLS 0 CALL HUD TEXT 5,5,"GET READY!" FOR I=1 TO 180 CALL PLAYER WAIT VBL NEXT I GAME: CLS 0 RANDOMIZE TIMER BOSSTIME=TIMER+1200 CALL HUD SPRITE 1,78,53,8 DO CALL PLAYER CALL SPAWN CALL ENEMYS CALL HUD IF SPRITE HIT(0,10 TO 18) THEN GOTO DEAD WAIT VBL LOOP DEAD: SPRITE OFF 1 TO 32 FOR T=1 TO 30 FOR I=1 TO 18 SPRITE I SIZE 0 PAL 3 SPRITE I,65+RND(24)\1,53+RND(24)\1,56+RND(4)\1 NEXT I play 2,rnd(63),60 sound 5 IF T<10 THEN WAIT VBL IF T>10 THEN SPRITE OFF 0 PALETTE 0,RND(63),,, END IF WAIT 4 NEXT T SPRITE OFF PALETTE 0,0,,, WAIT 60 DEC LIVES IF LIVES >0 THEN GOTO GAME CALL HUD PAL 4 TEXT 6,8,"GAME OVER" WAIT 240 GOTO TITLE SUB PLAYER SPRITE 0 SIZE 3 PAL 1 SPRITE 0,66,54,1 SPRITE 1 SIZE 0 PAL 7 IF UP(0) THEN SPRITE 1,78,53,8 ELSE IF RIGHT (0) THEN SPRITE 1,91,66,9 ELSE IF DOWN (0) THEN SPRITE 1,78,79,10 ELSE IF LEFT (0) THEN SPRITE 1,65,66,11 END IF IF BUTTON TAP (0) THEN CALL ZAP END SUB SUB ZAP '2-9 ZAP LAZER SPRITES FOR I=0 TO 7 if demo=0 then play 3,50-i*2,1 sound 6 IF SPRITE.C(1)=8 THEN SPRITE 2+I SIZE 0 PAL 3 SPRITE 2+I,SPRITE.X(1),SPRITE.Y(1)-4-I*8,5 ELSE IF SPRITE.C(1)=9 THEN SPRITE 2+I SIZE 0 PAL 3 SPRITE 2+I,SPRITE.X(1)+4+I*8,SPRITE.Y(1),6 ELSE IF SPRITE.C(1)=10 THEN SPRITE 2+I SIZE 0 PAL 3 SPRITE 2+I,SPRITE.X(1),SPRITE.Y(1)+4+I*8,5 ELSE IF SPRITE.C(1)=11 THEN SPRITE 2+I SIZE 0 PAL 3 SPRITE 2+I,SPRITE.X(1)-4-I*8,SPRITE.Y(1),6 END IF IF SPRITE HIT (I,10 TO 18) THEN EXIT CALL ENEMYS WAIT VBL NEXT I SPRITE OFF 2 TO 9 END SUB SUB SPAWN '10-13 ALIEN SHIPS SPRITES '15-18 ALIEN BOMBS FOR I=10 TO 13 IF SPRITE.C(I)=0 AND RND(100)<1 THEN SPRITE I PAL 1 SIZE 0 SPRITE I+5 PAL 2 SIZE 0 C=RND(4)\1 IF C=1 THEN SPRITE I,78,0,24 SPRITE I+5,78,0,40 ELSE IF C=2 THEN SPRITE I,152,66,25 SPRITE I+5,152,66,41 ELSE IF C=3 THEN SPRITE I,78,120,26 SPRITE I+5,78,120,42 ELSE IF C=4 THEN SPRITE I,0,66,27 SPRITE I+5,0,66,43 END IF END IF IF TIMER>=BOSSTIME THEN SPRITE I SIZE 0 PAL 7 SPRITE I,100,32,12 BOSSTIME=TIMER+1200 END IF NEXT I END SUB SUB ENEMYS FOR O=10 TO 18 IF SPRITE.C(O)=24 AND TIMER MOD 8=0 THEN SPRITE O,,SPRITE.Y(O)+1,24 ELSE IF SPRITE.C(O)=25 AND TIMER MOD 6=0 THEN SPRITE O,SPRITE.X(O)-1,,25 ELSE IF SPRITE.C(O)=26 AND TIMER MOD 6=0 THEN SPRITE O,,SPRITE.Y(O)-1,26 ELSE IF SPRITE.C(O)=27 AND TIMER MOD 6=0 THEN SPRITE O,SPRITE.X(O)+1,,27 ELSE IF SPRITE.C(O)>=56 AND SPRITE.C(O)<=59 AND TIMER MOD 6=0 THEN SPRITE O,,,SPRITE.C(O)+1 ELSE IF SPRITE.C(O)=40 AND TIMER MOD 4=0 THEN SPRITE O,,SPRITE.Y(O)+3,40 ELSE IF SPRITE.C(O)=41 AND TIMER MOD 4=0 THEN SPRITE O,SPRITE.X(O)-3,,41 ELSE IF SPRITE.C(O)=42 AND TIMER MOD 4=0 THEN SPRITE O,,SPRITE.Y(O)-3,42 ELSE IF SPRITE.C(O)=43 AND TIMER MOD 4=0 THEN SPRITE O,SPRITE.X(O)+3,,43 ELSE IF SPRITE.C(O)>=12 AND SPRITE.C(O)<=15 THEN SPRITE O SIZE 0 PAL 7 IF TIMER=BOSSTIME-600 THEN X=SPRITE.X(O)+(SPRITE.X(O)>80)-(SPRITE.X(O)<80) Y=SPRITE.Y(O)+(SPRITE.Y(O)>64)-(SPRITE.Y(O)<64) SPRITE O,X,Y,12+TIMER/4 MOD 4 END IF if demo=0 then play 0,sprite.c(o)*3,1 sound 1 ELSE IF SPRITE.C(O)>59 THEN SPRITE O,,,0 SPRITE OFF O END IF IF SPRITE HIT(O,2 TO 9) AND SPRITE.C(O)<56 THEN SPRITE O PAL 3 IF SPRITE.C(O)>=24 AND SPRITE.C(O)<=27 THEN ADD SCORE,50 IF SPRITE.C(O)>=40 AND SPRITE.C(O)<=43 THEN ADD SCORE,25 IF SPRITE.C(O)>=12 AND SPRITE.C(O)<=15 THEN ADD SCORE,150 BOSSTIME=TIMER+1200 END IF SPRITE O,,,56 if demo=0 then play 2,30,60 sound 5 END IF NEXT O END SUB SUB DEMO SPRITE 0 SIZE 3 PAL 1 SPRITE 0,66,54,1 SPRITE 1 SIZE 0 PAL 7 IF TIMER MOD 15=0 THEN M=RND(4)\1 IF M=1 THEN SPRITE 1,78,53,8 ELSE IF M=2 THEN SPRITE 1,91,66,9 ELSE IF M=3 THEN SPRITE 1,78,79,10 ELSE IF M=4 THEN SPRITE 1,65,66,11 END IF CALL ZAP END IF END SUB SUB HUD BG 0 PAL 4 TEXT 0,0,"SCORE" PAL 5 TEXT 16,0,"HIGH" PAL 6 TEXT 0,14,"BASES" PAL 0 if score>high then high=score pokel $e000,high end if NUMBER 0,1,SCORE,6 NUMBER 14,1,HIGH,6 NUMBER 2,15,LIVES,1 END SUB SUB PUSHSTART BG 0 PAL 0 BG FILL 5,15 TO 20,15 CHAR 0 IF TIMER MOD 60<=30 THEN TEXT 5,15,"[/] TO START" END SUB #1:MAIN PALETTES 003F0A000015302A003C0C0A00383C30 00302A15000C2A15000B2A15003F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 0000001E1F1F1F0F000020000E0E0F03 00000000000080FF0000000000000080 00000000000001FF0000000000000001 00000078F8F8F8F0000004007070F0C0 18181818181818180808080808080808 000000FFFF00000000000000FF000000 00000000000000000000000000000000 000000189942240000000081C37E3C18 1020401818402010183060E0E0603018 0024429918000000183C7EC381000000 0804021818020408180C060707060C18 00000081DB8100000000183C3C3C1800 000000425A4200000000183C3C3C1800 00001818181818000000002424240000 000000425A4200000000183C3C3C1800 00000000000000000000001000000000 03010101010101010100000000000000 FFFFFFFFFFFFFFFEFEFEFEFEFEFEFC00 FFFFFFFFFFFFFF7F7F7F7F7F7F7F3F00 C0808080808080808000000000000000 7CFEFEFEFEFE7C0000102844447C0000 7CFEFEFEFEFE7C000070484448700000 00000000000000000000000000000000 99DB42420000001881E77E5A993C1818 030E008383000E03130E26FCFC260E13 180000004242DB9918183C995A7EE781 C07000C1C10070C0C870643F3F6470C8 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 01010101010101030000000000000001 FEFFFFFFFFFFFFFF00FCFEFEFEFEFEFE 7FFFFFFFFFFFFFFF003F7F7F7F7F7F7F 80808080808080C00000000000000080 7CFEFEFEFEFE7C00007C444428100000 7CFEFEFEFEFE7C00001C2444241C0000 00000000000000000000000000000000 18183C346A563C1818183C2C566A0000 00305CEFD76C300000302C172F1C3000 183C6A562C3C18180000566A343C1818 000C36EBF73A0C00000C38F4E8340C00 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0F1F1F1F1E000000030F0E0E00200000 FF800000000000008000000000000000 FF010000000000000100000000000000 F0F8F8F878000000C0F0707000040000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 1814D71719B54E38180CF1A511EB663C 10205E47E4A54E30102870A584E37634 3C428101818146383C4281818183463C 04008100008102000400810000810204 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 3FE1809F9090988C0000000000000000 7FC0C0CE4B4949490000000000000000 81C16322222222220000000000000000 E0212133121212120000000000000000 FD87033F614141410000000000000000 FF01013F202020200000000000000000 0F08080F000101010000000000000000 F9090B9A929212320000000000000000 E3222232121212120000000000000000 FC060371594949490000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 C6436131180C04060000000000000000 4B4E40C0CF4848480000000000000000 262464C4840C08090000000000000000 929ACACACA0A0ACE0000000000000000 41414141414141410000000000000000 203E02023E2020200000000000000000 01030202060404040000000000000000 26242464444CC8890000000000000000 929ACACACA0A0ACE0000000000000000 597103067C4040400000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 020206FC8081FF000000000000000000 48484848C8C878000000000000000000 0909091911190F000000000000000000 6626262727233E000000000000000000 4141613F0383FF000000000000000000 2020203F0101FF000000000000000000 0C08090908080F000000000000000000 898989F91109FF000000000000000000 6626262626223F000000000000000000 404040404040C0000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 38383030300030000000000000000000 28282800000000000000000000000000 28287C287C2828000000000000000000 103C5038147810000000000000000000 00626408102646000000000000000000 304868709A8C7A000000000000000000 30301020000000000000000000000000 10204040402010000000000000000000 10080404040810000000000000000000 00105438541000000000000000000000 0010107C101000000000000000000000 00000000181830000000000000000000 000000007C0000000000000000000000 00000000001818000000000000000000 02040810204080000000000000000000 384CC6C6C66438000000000000000000 307030303030FC000000000000000000 7CC60E3C78C0FE000000000000000000 7E0C183C06C67C000000000000000000 1C3C6CCCFE0C0C000000000000000000 FCC0FC0606C67C000000000000000000 3C60C0FCC6C67C000000000000000000 FEC60C18303030000000000000000000 78C4E4789E867C000000000000000000 7CC6C67E060C78000000000000000000 00303000303000000000000000000000 00303000303060000000000000000000 08102040201008000000000000000000 00007C007C0000000000000000000000 20100804081020000000000000000000 7CFEC60C380038000000000000000000 7C82BAA2BA827C000000000000000000 386CC6C6FEC6C6000000000000000000 FCC6C6FCC6C6FC000000000000000000 3C66C0C0C0663C000000000000000000 F8CCC6C6C6CCF8000000000000000000 FEC0C0FCC0C0FE000000000000000000 FEC0C0FCC0C0C0000000000000000000 3E60C0CEC6663E000000000000000000 C6C6C6FEC6C6C6000000000000000000 FC3030303030FC000000000000000000 0606060606C67C000000000000000000 C6CCD8F0F8DCCE000000000000000000 C0C0C0C0C0C0FE000000000000000000 C6EEFEFED6C6C6000000000000000000 C6E6F6FEDECEC6000000000000000000 7CC6C6C6C6C67C000000000000000000 FCC6C6C6FCC0C0000000000000000000 7CC6C6C6DECC7A000000000000000000 FCC6C6CEF8DCCE000000000000000000 78CCC07C06C67C000000000000000000 FC303030303030000000000000000000 C6C6C6C6C6C67C000000000000000000 C6C6C6EE7C3810000000000000000000 C6C6D6FEFEEEC6000000000000000000 C6EE7C387CEEC6000000000000000000 6666663C181818000000000000000000 FE0E1C3870E0FE000000000000000000 7CFEFEFEFEFE7C000038447C44440000 80402010080402000000000000000000 7CFEFEFEFEFE7C000078447844780000 00183C66000000000000000000000000 000000000000FE000000000000000000 #15:MAIN SOUND 2800303A000000001800846C003A0000 08006060000000002800303019FE0000 38002020000000003800505000000000 1800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000