DIM GLOBAL P(255),G(255,1) CALL INITNOI GLOBAL PLX,PLY,F PLX=64 PLY=64 F=0 GLOBAL CAMX,CAMY ON RASTER CALL OCEAN SPRITE 0 SIZE 2 BG COPY 0,0,32,32 TO 0,0 GAMEPAD 1 DO H=LEFT(0)-RIGHT(0) V=UP(0)-DOWN(0) IF H THEN IF H<0 THEN F=1 ELSE F=0 END IF ADD PLX,H ADD PLY,V CAMX=PLX-80 CAMY=PLY-64 CAMX=MAX(0,MIN(CAMX,96)) CAMY=MAX(0,MIN(CAMY,128)) SPRITE 0,,,64 SPRITE 0 FLIP F,0 T=TIMER*0.5 MOD 3 COPY $8000+(T+67)*16,16 TO $8000+64*16 COPY $8000+(T+83)*16,16 TO $8000+80*16 WAIT VBL LOOP '0:-8/-8= 1 '1:16/-8=-2 SUB OCEAN OFFSET=SIN((0.25*TIMER+(RASTER-(PLY-CAMY)))*0.8)*0.7 SPRITE 0,PLX-CAMX+OFFSET,PLY-CAMY, SCROLL 0,CAMX+SIN(0.04*TIMER+(CAMY+RASTER)*0.4)*2,CAMY END SUB 'I [1..20]: INDEX OF CELL TO BE EDITED 'X [0..7] : PIXEL X IN CELL 'Y [0..7] : PIXEL Y IN CELL 'C [0..3] : PIXEL COLOR SUB WRITEPX(I,X,Y,C) ADR=16*I+$8000 ADD ADR,Y MASK=2^(7-X) IF C MOD 2 THEN POKE ADR,PEEK(ADR) OR MASK ADD ADR,8 IF C\2 THEN POKE ADR,PEEK(ADR) OR MASK END SUB SUB GRADVEC(X,Y) I=P(X AND 255) J=P((Y+I) AND 255) X=G(J,0) Y=G(J,1) END SUB SUB NOISE(X,Y,OUT) DIM W(8) FOR YO=-1 TO 1 FOR XO=-1 TO 1 GX=X+XO GY=Y+YO CALL GRADVEC(GX,GY) VX=X-GX VY=Y-GY W(3*(YO+1)+(XO+1))=GX*VX+GY*VY NEXT XO NEXT YO END SUB SUB INITNOI L=255 'PRECALC BYTE ARRAY FOR I=0 TO L P(I)=I NEXT I FOR I=L TO 1 STEP -1 SWAP P(I),P(RND(I)) NEXT I 'PRECALC VECTOR ARRAY FOR I=0 TO 255 XD=RND-0.5 YD=RND-0.5 MAG=SQR(XD*XD+YD*YD) XD=XD/MAG YD=YD/MAG G(I,0)=XD G(I,1)=YD NEXT I END SUB #1:MAIN PALETTES 033F0000003E00000034000000240000 003F2A15003F2A15003F2A15003F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 01031D776F9FDFDF0000000000000000 0081737DBBFFFFFF0000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 FFFFDF3F7F7FBFFF0000000000000000 FFFFFFFFFFFFFFFF0000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 302020707505FDFD0000000000000000 00000000E01048240000000000000000 0000000C013545A50000000000000000 0000000C013545950000000000000000 0000000C013545B50000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0804261CB8F577330000000000000000 21CB6626B31951950000000000000000 00000000000030610000000000000000 0001023361F0E0790000000000000000 180C16078FC6CC870000000000000000 000000180C8686870000000000000000 00000000000000000000000000000000 01EDADEDADEDED000000000000000000 441434644810E0000000000000000000 94B5A5954535010C0000000000000000 B4A595B54535010C0000000000000000 A495B5A54535010C0000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 B37B1F270F0105030000000000000000 332276FCFAE080C00000000000000000 616071F3FF7DEFE70000000000000000 30FAECFFBF9FFF760000000000000000 2F9D7FF767FF7D790000000000000000 87C5CFFF77E6BFFF0000000000000000 #3:MAIN BG 00002020000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000010312031203 12031203010B00000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000001030203120312031203 12031203120B010B0000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000103020312031203120312031203 12031203120B120B02030203010B0000 00000000000000000000000000000000 00000000000000000000010302030203 02031203120312031203120312031203 12031203120B120B120B120B110B0000 00000000000000000000000000000000 00000000000000000000110312031203 12031203120312031203120312031203 12031203120B120B120B120B011B0000 00000000000000000000000000000000 00000000000000000103120B12031203 12031203120312031203120312031203 12031203120B120B120B110B00000000 00000000000000000000000000000000 0000010302030203120B120B12031203 12031203120312031203120312031203 12031203120B120B120B011B00000000 00000000000000000000000000000000 0103120B120B120B120B120B12031203 12031203120312031203120312031203 12031203120B120B011B000000000000 00000000000000000000000000000103 120B120B120B120B120B120B12031203 12031203120312031203120312031203 12031203120B110B0000000000000000 00000000000000000000000000001103 120B120B120B120B120B120B12031203 12031203120312031203120312031203 12031203120B120B02030203010B0000 00000000000000000000000000001103 120B120B120B120B120B120B12031203 12031203120312031203120312031203 12031203120B120B120B120B120B0203 010B0000000000000000000000001103 120B120B120B120B120B120B12031203 12031203120312031203120312031203 12031203120B120B120B120B120B120B 120B010B00000000000000000103120B 120B120B120B120B120B120B12031203 12031203120312031203120312031203 12031203120B120B120B120B120B120B 120B011B00000000000000000113120B 120B120B120B120B120B120312031203 12031203120312031203120312031203 12031203120B120B120B120B120B120B 011B0000000000000000000001031203 12031203120312031203120312031203 12031203120312031203120312031203 12031203120B120B120B120B120B110B 00000000000000000000000011031203 12031203120312031203120312031203 12031203120312031203120312031203 1203120312031203120312030213011B 00000000000000000000010312031203 12031203120312031203120312031203 12031203120312031203120312031203 12031203120312031203011B00000000 00000000000000000000011312031203 12031203120312031203120312031203 12031203120312031203120312031203 1203120312031203110B000000000000 00000000000000000000000001131203 12031203120312031203120312031203 12031203120312031203120312031203 1203120312031203011B000000000000 00000000000000000000000000000113 02130213120312031203120312031203 12031203120312031203120312031203 120312031203011B0000000000000000 00000000000000000000000000000000 00000000011312031203120312031203 12031203120312031203120312031203 12031203110B00000000000000000000 00000000000000000000000000000000 00000000000001131203120312031203 12031203120312031203120312031203 12031203110B00000000000000000000 00000000000000000000000000000000 00000000000000000113120312031203 12031203120312031203120312031203 12031203110B00000000000000000000 00000000000000000000000000000000 00000000000000000000110312031203 12031203120312031203120312031203 12031203110B00000000000000000000 00000000000000000000000000000000 00000000000000000000011312031203 12031203120312031203120312031203 12031203110B00000000000000000000 00000000000000000000000000000000 00000000000000000000000001131203 12031203120312031203120312031203 12031203110B00000000000000000000 0000000000000000000000000103010B 00000000000000000000000000001103 12031203120312031203120312031203 120312031203010B0000000000000000 00000000000000000000010312031203 010B0000000000000000000000001103 12031203120312031203120312031203 1203120312031203010B000000000000 00000000000000000103120312031203 1203010B000000000000000000000113 12031203120312031203120312031203 12031203120312031203020302030203 02030203020302031203120312031203 1203110B000000000000000000000000 01131203120312031203120312031203 12031203120312031203120312031203 12031203120312031203120312031203 12031203010B00000000000000000000 00000113120312031203120312031203 12031203120312031203120312031203 12031203120312031203120312031203 12031203110B00000000000000000000 00000000110312031203120312031203 12031203