' SEAQUEST ' 1983 ACTIVISION BY STEEVE CARTWRIGHT ' 2021 LOSTCADESOFT BY BGELAIS GAMEPAD 1 ON VBL CALL HUD GLOBAL SCORE,LIVES,OXYGEN,DEMO,DIVERS GLOBAL PL_X,PL_Y,PL_FLP,PSHOT_XD,U GLOBAL SHARK_BOB DIM GLOBAL SHARK_Y(8) ABOB=0 DEMO=0 SCORE=0 LIVES=3 OXYGEN=50 ATTRACT: CLS FOR I=2 TO 8 SPRITE I,,,0 SPRITE OFF I NEXT I SPRITE OFF FOR I=2 TO 8 CALL SPAWN(RND(2)\1) NEXT I BG 1 BG COPY 0,0,20,16 TO 0,0 DEMO =1 BG 0 PAL 0 LOCATE 3,4 PRINT"USE TO SHOOT ENEMIES AND RESCUE DIVERS." PAL 2 TEXT 0,15,"@1983 2021" FOR I=0 TO 4 CELL 5+I,15,128+I NEXT I FOR I=0 TO 5 CELL 14+I,15,144+I NEXT I FOR T=1 TO 300 BG 0 PAL 3 CELL 7,4,1+2*(TIMER/8 MOD 2) CELL 8,4,2 PAL 2 CELL 3,8,32+TIMER/16 MOD 2 PAL 0 CELL 3,10,34+TIMER/8 MOD 2 PAL 2 CELL 9,8,22+2*(TIMER/16 MOD 2) PAL TIMER/8 MOD 5 TEXT 5,8,"15" TEXT 5,10,"20" TEXT 11,8,"* 7 = 35" TEXT 13,9,"RESCUE" TEXT 13,10,"BONUS" IF BUTTON TAP (0) THEN GOTO TITLE WAIT VBL NEXT T TITLE: CLS SCORE=0 LIVES=3 OXYGEN=40 BG 1 BG COPY 0,0,20,16 TO 0,0 DEMO =1 BG 0 PAL 2 FOR I=0 TO 13 CELL 3+I,5,80+I CELL 3+I,6,96+I CELL 3+I,7,112+I NEXT I TEXT 0,15,"@1983 2021" FOR I=0 TO 4 CELL 5+I,15,128+I NEXT I FOR I=0 TO 5 CELL 14+I,15,144+I NEXT I FOR T=1 TO 300 IF BUTTON TAP(0) THEN GOTO GAME CALL OBJECTS WAIT VBL NEXT T GOTO ATTRACT GAME: CLS U=0 DEMO=0 PL_X=80 PL_Y=27 FOR I=2 TO 8 SPRITE I,,,0 SPRITE OFF I NEXT I BG 1 BG COPY 0,0,20,16 TO 0,0 RANDOMIZE TIMER DO CALL PLAYER CALL SHOT IF TIMER MOD 60=0 THEN CALL SPAWN(RND(2)\1) CALL OBJECTS IF PL_Y<=27 AND DIVERS<7 THEN U=0 IF OXYGEN<70 THEN INC OXYGEN PLAY 0,OXYGEN,2 SOUND 5 END IF SPRITE 0 PAL 1 ELSE IF PL_Y>27 THEN U=1 SPRITE 0 PAL 3 ELSE IF PL_Y<=27 AND DIVERS=7 THEN SPRITE 0 PAL 1 GOTO BONUS END IF IF U=1 THEN ADD OXYGEN,-0.02 IF OXYGEN <=0 THEN GOTO DEAD IF SPRITE HIT(0,2 TO 8) AND SPRITE.C(HIT)>=32 THEN GOTO DEAD WAIT VBL ADD ABOB,0.1,0 TO 2*PI SHARK_BOB=5*SIN(ABOB) LOOP BONUS: B=OXYGEN FOR I=0 TO B DEC OXYGEN INC SCORE PLAY 0,10+I,1 SOUND 0 WAIT 2 NEXT I FOR I=1 TO 7 DEC DIVERS ADD SCORE,5 TRACK 2,2 WAIT 20 NEXT I GOTO GAME DEAD: FOR I=1 TO 30 SPRITE 0 PAL RND(4)\1 PLAY 0,35-I,2 SOUND 5 WAIT VBL NEXT I SPRITE 0,,,10 WAIT 30 SPRITE 0,,,12 WAIT 30 SPRITE OFF 0 WAIT 60 DEC LIVES DIVERS=0 IF LIVES=0 THEN PAL 1 SPRITE OFF TEXT 6,7,"GAME OVER" WAIT 120 GOTO TITLE END IF GOTO GAME SUB PLAYER ADD PL_X,LEFT(0)-RIGHT(0) ADD PL_Y,UP(0)-DOWN(0) IF LEFT(0) THEN PL_FLP=1 IF RIGHT(0) THEN PL_FLP=0 PL_Y=MAX(PL_Y,27) PL_Y=MIN(PL_Y,80) PL_X=MAX(PL_X,10) PL_X=MIN(PL_X,134) IF PL_Y>27 THEN U=1 SPRITE 0 SIZE 1 FLIP PL_FLP,0 SPRITE 0,PL_X,PL_Y,1+2*(TIMER/4 MOD 2) IF BUTTON TAP(0) AND SPRITE.C(1)=0 THEN MUSIC 0 SPRITE 1,PL_X+8,PL_Y,37 IF PL_FLP=1 THEN PSHOT_XD=-6 IF PL_FLP=0 THEN PSHOT_XD=6 END IF END SUB SUB SHOT IF SPRITE.C(1)=37 THEN SPRITE 1 SIZE 0 PAL 1 SPRITE 1,SPRITE.X(1)+PSHOT_XD,SPRITE.Y(0),37 IF SPRITE.X(1)<0 OR SPRITE.X(1)>160 THEN SPRITE 1,,,0 SPRITE OFF 1 END IF END IF END SUB SUB SPAWN(C) FOR O=2 TO 8 IF SPRITE.C(O)=0 THEN FLP=RND(1)\1 IF C=0 THEN SPRITE O SIZE 0 PAL 2 FLIP FLP,0 SHARK_Y(O)=33+RND(48) SPRITE O,-8,SHARK_Y(O),32 ELSE IF C=1 THEN SPRITE O SIZE 0 PAL 0 FLIP RND(1),0 SPRITE O,-8,32+RND(48),34 ELSE IF C=2 THEN SPRITE O SIZE 1 PAL 2 FLIP RND(1),0 SPRITE O,-16,32+RND(40),6 END IF EXIT END IF NEXT O END SUB SUB OBJECTS FOR O=2 TO 8 X=SPRITE.X(O) Y=SPRITE.Y(O) FLP=(SPRITE.A(O) AND %00011000)/8 C=SPRITE.C(O) IF FLP=1 THEN XD=-1 IF FLP=0 THEN XD=1 IF C=32 OR C=33 THEN Y=SHARK_Y(O) SPRITE O,X,Y+SHARK_BOB, IF TIMER MOD 2 THEN SPRITE O,X+XD,Y+SHARK_BOB,32+TIMER\16 MOD 2 IF SPRITE HIT(O,1) THEN ADD SCORE,15 ELSE IF C=34 OR C=35 THEN IF TIMER MOD 3 THEN SPRITE O,X+XD,Y,34+TIMER\8 MOD 2 IF SPRITE.C(8)=0 AND X>0 AND X<160 THEN SPRITE 8 SIZE 0 PAL 0 FLIP FLP,0 SPRITE 8,X,Y,36 END IF IF SPRITE HIT(O,1) THEN ADD SCORE,20 ELSE IF C=36 THEN SPRITE O,X+XD,Y,36 IF X<0 OR X>160 THEN SPRITE O,,,0 SPRITE OFF O END IF ELSE IF C=6 OR C=8 THEN IF TIMER MOD 5=0 THEN SPRITE O,X+XD,Y,6+2*(TIMER\8 MOD 2) IF SPRITE HIT(O,0) THEN TRACK 2,2 SPRITE O,,,0 SPRITE OFF O INC DIVERS END IF END IF IF SPRITE HIT(O,1) AND C>=32 AND C<=36 THEN TRACK 2,2 SPRITE O,,,0 SPRITE OFF O SPRITE OFF 1 END IF NEXT O END SUB SUB HUD BG 1 PAL 2 BG FILL 0,3 TO 19,3 CHAR 42+TIMER/10 MOD 4 BG 0 IF DEMO=0 THEN PAL 1 NUMBER 8,0,SCORE,6 IF SCORE>PEEKL($E000) THEN POKEL($E000),SCORE ELSE IF DEMO=1 THEN PAL 6 NUMBER 8,0,PEEKL($E000),6 PAL 5 IF TIMER MOD 60<30 THEN TEXT 4,14,"[/] TO START." IF TIMER MOD 60>=30 THEN TEXT 4,14," " END IF PAL 1 FOR I=1 TO LIVES CELL 6+I*2,1,5 NEXT I PAL 1 IF OXYGEN<30 AND TIMER MOD 30<15 THEN PAL 3 OXYGEN=MIN(OXYGEN,70) OXYGEN=MAX(OXYGEN,0) BG FILL 8,13 TO 16,13 CHAR 51 FOR I=0 TO (OXYGEN-8)\8 CELL 8+I,13,61 NEXT I CELL 8+(OXYGEN\8),13,64+OXYGEN MOD 8 DIVERS=MIN(DIVERS,7) DIVERS=MAX(DIVERS,0) IF DIVERS>0 THEN PAL 4 BG FILL 7,14 TO 14,14 CHAR 51 FOR I=1 TO DIVERS PAL 4 IF DIVERS=7 AND TIMER MOD 30>15 THEN PAL 6 CELL 7+I,14,63 NEXT I END IF END SUB #1:MAIN PALETTES 123F2F00003C30380007160000383038 00042A0000000115003F2A15003F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 0001C13FFF3FC70000000000003FC700 60E0E0FFFFF3FE000000000000F3FE00 000101FF3FFF07000000000000FF0700 60E0E0FFFFF3FE000000000000F3FE00 00040C0CBFFE80000000000000000000 00000000000000000000400000480008 00000000000000000000000000000000 00000000000000000020000400002000 00000000000000000000000000000000 00080002000208000000000000000000 00100040004010000000000000000000 80021000001002800000000000000000 01400800000840010000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000004000FDC3030E0 00000000000000000000000000000000 00000000000000000004000F1CF0F000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0010987F7EB320000000000000000000 0010587F7E3020000000000000000000 0000000004000000080C8C7FFF7E8000 0000000004000000080C0CFF7FFE0000 0000007C001F00000000000000000000 0000000000FF00000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0000000000000000FF00FFFFFFFF00FF 0000000000000000FFFF00FFFF00FFFF 0000000000000000FFFFFF00FFFFFFFF 0000000000000000FFFFFFFFFF00FFFF 00000000000000000000000000000000 00000000000000000000000000000000 00EAAEA4AEEA0000FFFFFFFFFFFFFFFF 00AEA8EA4A4E0000FFFFFFFFFFFFFFFF 00E98DEF8BE90000FFFFFFFFFFFFFFFF 0000000000000000FFFFFFFFFFFFFFFF 1DAFABAF6F75E4000000000000021BFF 00024A5BF5400000000000000ABFFFFF 0406B3BBAB0901000000000050F6FEFF 0021A3B5959D1500000000000000E8FF 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 FFFFFFFFFFFFFFFF0000000000000000 0000000000FFFFFF000000FFFFFFFF00 0004000FDC3030E0FFFFFFFFFFFFFFFF 0000000000000000FFFFFFFFFFFFFFFF 80808080808080807F7F7F7F7F7F7F7F C0C0C0C0C0C0C0C03F3F3F3F3F3F3F3F E0E0E0E0E0E0E0E01F1F1F1F1F1F1F1F F0F0F0F0F0F0F0F00F0F0F0F0F0F0F0F F8F8F8F8F8F8F8F80707070707070707 FCFCFCFCFCFCFCFC0303030303030303 FFFFFFFFFFFFFFFF0000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0000000001070F1C0000000000000000 0000000000C0E0000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 38387870707F00000000000000000000 0000000000FE7C3C0000000000000000 0000000F3F3F70700000000000000000 000000E0F8F800000000000000000000 00000000181C3C3E0000000000000000 00000000070F0E1C0000000000000000 0000000EFFFF01010000000000000000 00000000B0B0B0B00000000000000000 000000000606060E0000000000000000 000000071F3F30300000000000000000 000000F0F9FD01010000000000000000 00000000FFFF80FF0000000000000000 00000000F9FB00F80000000000000000 00000000FCFC60600000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000030181C0F 00000000000000001C0C0C08183871F1 0000000000000000607FE0E0FFFFFFFF 000000000000000000F80000F9F9F1E3 00000000000000007667E3C3FFC18180 00000000000000001C1C1898989CDFCF 00000000000000000101391F0707FFFF 0000000000000000B0B0B0B0BF1F1F8F 00000000000000000C0C0C1CF8F8F8F8 0000000000000000707F60607FFFFFFF 000000000000000001FD0000FCF9F9F1 0000000000000000FFFF000000FFFFFF 0000000000000000F8F8080818F9F9F9 000000000000000060E0C0C0C0C0C080 00000000000000000000000000000000 00000000000000000000000000000000 0000000000000000000710377454F497 000000000000000000FC445454555756 0000000000000000001F3863CA8B080B 000000000000000000F000D714D454D7 0000000000000000000000B1B9ADA7A3 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 000000000000000000DED2D2D2DEC0FF 000000000000000000EE84E424E400FF 000000000000000000EC8A8E8AEA00FF 000000000000000000CEA8ACA8CE00F1 000000000000000000EECACAEA6E60E0 000000000000000000DC88C888880000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00181818180000000000000000001800 006C6C24000000000000000000000000 00247E242400000000000000007E2400 00083E380E00000000000000003E0800 00626408100000000000000000264600 001C34386E0000000000000000643A00 00181830000000000000000000000000 000C1830300000000000000000180C00 0030180C0C0000000000000000183000 00004428100000000000000000284400 000018187E0000000000000000181800 00000000180000000000000000183000 000000007E0000000000000000000000 00000000000000000000000000181800 00060C18300000000000000000604000 7CC6C6C6C60000000000000000C67C00 3070303030000000000000000030FC00 7C8606067C0000000000000000C0FE00 7CC6061C060000000000000000C67C00 1C2C4CFE0C00000000000000000C0C00 7CC0C07C060000000000000000067C00 7CC2C0FCC60000000000000000C67C00 FE82060C180000000000000000181800 7CC6C67CC60000000000000000C67C00 7CC6C67E060000000000000000867C00 00000018000000000000000000180000 00000018000000000000000000183000 00000C18300000000000000000180C00 0000007E0000000000000000007E0000 000030180C0000000000000000183000 003C660C180000000000000000001800 003C425A5200000000000000005A3C00 00183C667E0000000000000000666600 007C667C660000000000000000667C00 003C6660600000000000000000663C00 00786C666600000000000000006C7800 007E6078600000000000000000607E00 007E6078600000000000000000606000 003C606E660000000000000000663C00 0066667E660000000000000000666600 003C1818180000000000000000183C00 001E0606060000000000000000663C00 00666C787800000000000000006C6600 00606060600000000000000000607E00 0042667E7E0000000000000000666600 0066767E6E0000000000000000666600 003C6666660000000000000000663C00 007C667C600000000000000000606000 003C66666A00000000000000006C3E00 007C667C7800000000000000006C6600 003E603C060000000000000000067C00 007E1818180000000000000000181800 00666666660000000000000000663C00 006666666600000000000000003C1800 0066667E7E0000000000000000664200 00663C183C0000000000000000666600 0066663C180000000000000000181800 007E0C18300000000000000000607E00 003C665A425A3C000000000000000000 006030180C0000000000000000060200 003C5E465A463C000000000000000000 00183C66000000000000000000000000 0000000000007E000000000000000000 #3:MAIN BG 00001410000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 000000003E013E013E013E013E013E01 3E013E013E013E013E013E013E013E01 3E013E013E013E013E013E0133053305 33053305330533053305330533053305 33053305330533053305330533053305 33053305330533053305330533053305 33053305330533053305330533053305 33053305330533053305330533053305 33053305330533053305330533053305 33053305330533053305330533053305 33053305330533053305330533053305 33053305330533053305330533053305 33053305330533053305330533053305 33053305330533053305330533053305 33053305330533053305330533053305 33053305330533053305330533053305 33053305330533053305330533053305 33053305330533053305330533053305 33053305330533053305330533053305 33053305330533053305330533053305 33053305330533053305330533053305 33053305330533053305330533053305 33053305330533053305330534043504 36043704340435043604370434043504 36043704340435043604370434043504 36043704330433043304330433043304 33043304330433043304330433043304 33043304330433043304330433043304 33043304300431043204330433043304 33043304330433043304330433043304 33043304330433043304330433043304 33043304330433043304330433043304 3304330433043304330433043D053D05 3D053D053D053D053D053D053D053D05 3D053D053D053D053D053D053D053D05 3D053D05 #15:MAIN SOUND 6802300A000000001800841C003A0000 08006060000000002800303019FE0000 38002020000000003800505000000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0001C040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 251FE2261F00271F00281F00291F002A 1F002B1F002C1F00FF00000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 191FE21A1F001B1F001C1F001D1F001E 1F001F1F00201F00FF00000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 410FE2450F00480F00FF000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000