GAMEPAD 1 DIM GLOBAL GETCHAR(7,7),MAP(15,15),FIELD(2,3) REM WAS8BIT GLOBAL COMPASS, PX, PY, ILEVEL REM COMPASS: 0=N, 1=E, 2=S, 3=W DIM GLOBAL XDIR(3),YDIR(3),MODAL$(1) MODAL$(0)="SEARCH" MODAL$(1)="BATTLE" FOR I=0 TO 3 READ XDIR(I),YDIR(I) NEXT I DATA 0,-1,1,0,0,1,-1,0 REM TO DO...... REM REM DOTS=BULLETS REM PILL=MAGIC ZAPPER THAT FREEZES 1 GHOST REM BONUS=FOOD THAT RESTORES PLAYER HEALTH RANDOMIZE TIMER BG 1 REM WAS8BIT BG COPY 0,0,20,16 TO 0,0 DIM GLOBAL DOOR(7,4),XDOOR(7) FOR I=1 TO 7 READ XDOOR(I) FOR II=1 TO 4 READ DOOR(I,II) NEXT II NEXT I DATA 2,5,4,4,3 DATA 6,3,2,0,0 DATA 8,2,0,0,0 DATA 9,1,1,0,0 DATA 11,2,0,0,0 DATA 12,2,3,0,0 DATA 14,3,4,4,5 REM TOP MAP FOR IY=0 TO 1 FOR IX=0 TO 1 CHNUM=14+IX+IY*16 CALL READCHAR(CHNUM) FOR Y=0 TO 7 FOR X=0 TO 7 XX=X+IX*8 YY=Y+IY*8 MAP(XX,YY)=GETCHAR(X,Y) NEXT X NEXT Y NEXT IX NEXT IY REM BOTTOM MAP FOR IY=0 TO 1 FOR IX=0 TO 1 CHNUM=14+IX+IY*16+32 CALL READCHAR(CHNUM) FOR Y=0 TO 7 FOR X=0 TO 7 XX=X+IX*8 YY=Y+IY*8 M=GETCHAR(X,Y) IF M>0 THEN MAP(XX,YY)=M+3 NEXT X NEXT Y NEXT IX NEXT IY GLOBAL MMX,MMY,IDOTS,IZAPS,IPACS,IBOOS,HEALTH,MODE,PICK MMX=9*8 MMY=13*8 XSTART=9 YSTART=8 SPRITE 0,MMX+13,MMY+8,49 SPRITE 0 PAL 6 SPRITE 1,MMX,MMY,14 SPRITE 1 SIZE 1 PAL 4 SPRITE 2,MMX,MMY,46 SPRITE 2 PAL 5 SIZE 1 PAL 6 CELL 16,12,112 CELL 16,13,114 CELL 16,14,116 CELL 16,15,113 IDOTS=0 IZAPS=0 IPACS=3 IBOOS=4 PICK=0 CALL DODOTS(0) CALL DOZAPS(0) CALL DOPACS(0) CALL DOBOOS(0) CALL DOHEALTH(7) FLASHCHAR=50 REM :::::: MAIN GAME :::::: RESTART: PX=XSTART PY=YSTART SPRITE 0,MMX+PX,MMY+PY,49 COMPASS=1 CALL GETVIEW STRO=0 MUSIC 0 DO IF BUTTON(0,1) AND MODE=1 THEN ADD PICK,1,0 TO 1 PLAY 1,61,3 SOUND 1 CALL GETVIEW WAIT 15 END IF IF BUTTON(0,0) AND MODE=0 THEN ITEM0=FIELD(1,0) IF ITEM0>0 THEN IF ITEM0=2 THEN PLAY 1,44,1 SOUND 1 CALL DODOTS(1) GOSUB REMOVEITEM ELSE IF ITEM0=3 THEN PLAY 1,56,1 SOUND 1 CALL DOZAPS(1) GOSUB REMOVEITEM ELSE IF ITEM0=5 THEN ELSE IF ITEM0=6 THEN IF RND(10)=0 THEN PLAY 0,30,10 SOUND 2 IF HEALTH<7 THEN CALL DOHEALTH(1) ELSE PLAY 0,10,10 SOUND 2 END IF WAIT 15 END IF END IF END IF IF RIGHT(0) AND MODE=0 THEN ADD COMPASS,1,0 TO 3 CALL GETVIEW PLAY 0,37,3 SOUND 0 WAIT 15 ELSE IF LEFT(0) AND MODE=0 THEN ADD COMPASS,-1,0 TO 3 CALL GETVIEW PLAY 0,37,3 SOUND 0 WAIT 15 END IF IF DOWN(0) AND MODE=1 THEN PX=PX-XDIR(COMPASS) PY=PY-YDIR(COMPASS) SPRITE 0,MMX+PX,MMY+PY, MODE=0 MUSIC 0 HEALTH2=0 CALL DOHEALTH2(0) CALL GETVIEW END IF IF UP(0) AND MODE=0 THEN CHECK=FIELD(1,1) IFLASH=14 FLASHCHAR=51 IF CHECK=0 OR CHECK>1 THEN PLAY 0,70,1 SOUND 0 DX=PX+XDIR(COMPASS) DY=PY+YDIR(COMPASS) IF DX>=0 AND DX<=15 AND DY>=0 AND DY<=15 THEN PX=DX PY=DY SPRITE 0,MMX+PX,MMY+PY, CALL GETVIEW IF CHECK=5 THEN MODE=1 MUSIC 6 CALL DOHEALTH2(7) CALL GHOST2PLAYER END IF END IF WAIT 15 ELSE IF CHECK=-1 THEN FOR S=50 TO 80 STEP 5 PLAY 0,S,1 SOUND 0 WAIT VBL NEXT S IF PX=15 THEN PX=0 ELSE IF PX=0 THEN PX=15 IF PY=15 THEN PY=0 ELSE IF PY=0 THEN PY=15 SPRITE 0,MMX+PX,MMY+PY, CALL GETVIEW ELSE PLAY 0,20,1 END IF END IF IFLASH=(IFLASH+1) MOD 15 IF IFLASH=0 THEN ADD FLASHCHAR,1,50 TO 51 COPY $8000+(16*FLASHCHAR),16 TO $8000+(16*49) END IF ISTROBE=(ISTROBE+1) MOD 5 IF ISTROBE=0 THEN BG 1 PAL 1 CELL 3,12,8 CELL 3,13,8 CELL 3,14,8 CELL 3,15,8 ADD STRO,1,0 TO 16 CELL 3,12+STRO\4,9+(STRO MOD 4) END IF WAIT VBL LOOP REM GAME GOSUBS REMOVEITEM: MAP(PX,PY)=0 CALL GETVIEW CHX=PX MOD 8 CHY=PY MOD 8 IF PX>7 AND PY>7 THEN CH=31 IF PX<8 AND PY<8 THEN CH=14 IF PX>7 AND PY<8 THEN CH=15 IF PX<8 AND PY>7 THEN CH=30 CALL READCHAR(CH) GETCHAR(CHX,CHY)=0 CALL WRITECHAR(CH) RETURN REM GAME SUBS SUB GHOST2PLAYER PLAY 1,90,5 IF RND(10)>0 THEN BG 0 PAL 6 PLAY 2,45,5 SOUND 3 FOR I=0 TO 3 CELL 11,10,71+(16*I) WAIT 15 NEXT I CELL 11,10,0 PLAY 2,90,10 SOUND 3 CALL DOHEALTH(-1) FOR I=1 TO 100 SX=RND(20)-10 SY=RND(20)-10 SCROLL 1,SX,SY SCROLL 0,SX,SY WAIT VBL NEXT I SCROLL 1,0,0 SCROLL 0,0,0 END IF END SUB SUB PLAYER2GHOST END SUB SUB DOHEALTH2(I) HEALTH2=HEALTH2+I IF HEALTH2>7 THEN HEALTH2=7 BG 0 PAL 6 FOR I=1 TO 7 IF I<=HEALTH2 THEN CELL I-1,0,7 ELSE CELL I-1,0,0 END IF NEXT I END SUB SUB DOHEALTH(I) HEALTH=HEALTH+I IF HEALTH>7 THEN HEALTH=7 BG 0 PAL 6 FOR I=1 TO 7 IF I<=HEALTH THEN CELL 20-I,0,5 ELSE CELL 20-I,0,0 END IF NEXT I END SUB SUB DODOTS(I) IDOTS=IDOTS+I BG 1 PAL 3 NUMBER 17,12,IDOTS,3 END SUB SUB DOZAPS(I) IZAPS=IZAPS+I BG 1 PAL 3 NUMBER 17,13,IZAPS,3 END SUB SUB DOPACS(I) IPACS=IPACS+I BG 1 PAL 3 NUMBER 17,15,IPACS,3 END SUB SUB DOBOOS(I) IBOOS=IBOOS+I BG 1 PAL 3 NUMBER 17,14,IBOOS,3 END SUB SUB GETVIEW BG 1 BG FILL 0,12 TO 3,15 CHAR 0 BG FILL 15,12 TO 15,13 CHAR 0 PAL 1 CELL 3,12,8 CELL 3,13,8 CELL 3,14,8 CELL 3,15,8 IF MODE=1 THEN PAL 2 CELL 15,12+PICK,52 END IF IF COMPASS=0 THEN PAL 3 ELSE PAL 0 TEXT 9,12,"NN" IF COMPASS=1 THEN PAL 3 ELSE PAL 0 TEXT 11,13,"E" TEXT 11,14,"E" IF COMPASS=2 THEN PAL 3 ELSE PAL 0 TEXT 9,15,"SS" IF COMPASS=3 THEN PAL 3 ELSE PAL 0 TEXT 8,13,"W" TEXT 8,14,"W" IF MODE=0 THEN PAL 3 ELSE PAL 7 TEXT 7,0,MODAL$(MODE) REM PAL 3 TEXT 7,2,"LEV:" NUMBER 12,2,ILEVEL+1,1 IF COMPASS=0 THEN FOR IY=0 TO 3 YY=PY-IY FOR IX=0 TO 2 XX=PX+IX-1 CALL READMAP(XX,YY,FIELD(IX,IY)) TEXT IX,15-IY,STR$(FIELD(IX,IY)) NEXT IX NEXT IY ELSE IF COMPASS=1 THEN FOR IY=0 TO 3 XX=PX+IY FOR IX=0 TO 2 YY=PY+IX-1 CALL READMAP(XX,YY,FIELD(IX,IY)) TEXT IX,15-IY,STR$(FIELD(IX,IY)) NEXT IX NEXT IY ELSE IF COMPASS=2 THEN FOR IY=0 TO 3 YY=PY+IY FOR IX=0 TO 2 XX=PX-IX+1 CALL READMAP(XX,YY,FIELD(IX,IY)) TEXT IX,15-IY,STR$(FIELD(IX,IY)) NEXT IX NEXT IY ELSE IF COMPASS=3 THEN FOR IY=0 TO 3 XX=PX-IY FOR IX=0 TO 2 YY=PY-IX+1 CALL READMAP(XX,YY,FIELD(IX,IY)) TEXT IX,15-IY,STR$(FIELD(IX,IY)) NEXT IX NEXT IY END IF ITEM0=FIELD(1,0) ITEM1=FIELD(1,1) ITEM2=FIELD(1,2) CALL ADDITEM(ITEM2,2) CALL ADDITEM(ITEM1,1) CALL ADDITEM(ITEM0,0) CALL ADDWALL(0) CALL DODOOR(1,FIELD(0,0)) CALL DODOOR(2,FIELD(0,1)) CALL DODOOR(3,FIELD(0,2)) CALL DODOOR(4,FIELD(1,3)) CALL DODOOR(5,FIELD(2,2)) CALL DODOOR(6,FIELD(2,1)) CALL DODOOR(7,FIELD(2,0)) IF FIELD(1,2)=1 THEN CALL ADDWALL(2) IF FIELD(1,2)=-1 THEN CALL ADDWALL(-2) IF FIELD(1,1)=1 THEN CALL ADDWALL(1) IF FIELD(1,1)=-1 THEN CALL ADDWALL(-1) END SUB SUB READMAP(X,Y,R) R=-1 IF X>=0 AND Y>=0 AND X<=15 AND Y<=15 THEN R=MAP(X,Y) END IF IF R=4 THEN R=1 END SUB REM MICROMAP DATA SUBS SUB READCHAR(ICHAR) SELCHAR=ICHAR AD=$8000+SELCHAR*16 FOR IPY=0 TO 7 FOR IPX=0 TO 7 BV=2^(7-IPX) PV=0 IF PEEK(AD) AND BV THEN PV=1 IF PEEK(AD+8) AND BV THEN PV=PV+2 GETCHAR(IPX,IPY)=PV NEXT IPX AD=AD+1 NEXT IPY END SUB SUB WRITECHAR(ICHAR) SELCHAR=ICHAR AD=$8000+SELCHAR*16 FOR BI=1 TO 2 FOR IPY=0 TO 7 V=0 FOR IPX=0 TO 7 BV=2^(7-IPX) IF GETCHAR(IPX,IPY) AND BI THEN V=V OR BV NEXT IPX TRACE " ",V WAIT 1 POKE AD,V AD=AD+1 NEXT IPY NEXT BI END SUB REM 3D SUBS SUB DODOOR(IDOOR,SET) IF SET=-1 THEN SET=0 IF SET>1 THEN SET=0 BG 1 X=XDOOR(IDOOR) FOR I=1 TO 4 II=I-1 D=DOOR(IDOOR,I)-1 BG TINT X+II,5-D TO X+II,6+D PAL SET NEXT I END SUB SUB ADDITEM(I,D) IF D=2 THEN CELL 9,7,0 CELL 10,7,0 IF I=2 THEN PAL 6 CELL 9,7,64 CELL 10,7,65 ELSE IF I=3 THEN PAL 6 CELL 9,7,66 CELL 10,7,67 ELSE IF I=5 THEN PAL 6 CELL 9,7,68 CELL 10,7,69 ELSE IF I=6 THEN PAL 5 CELL 9,7,72 CELL 10,7,73 END IF ELSE IF D=1 THEN CELL 9,8,0 CELL 10,8,0 IF I=2 THEN PAL 6 CELL 9,8,80 CELL 10,8,81 ELSE IF I=3 THEN PAL 6 CELL 9,8,82 CELL 10,8,83 ELSE IF I=5 THEN PAL 6 CELL 9,8,84 CELL 10,8,85 ELSE IF I=6 THEN PAL 5 CELL 9,8,88 CELL 10,8,89 END IF ELSE IF D=0 THEN CELL 9,10,0 CELL 10,10,0 IF I=2 THEN PAL 6 CELL 9,10,96 CELL 10,10,97 ELSE IF I=3 THEN PAL 6 CELL 9,10,98 CELL 10,10,99 ELSE IF I=5 THEN PAL 6 CELL 9,10,100 CELL 10,10,101 ELSE IF I=6 THEN PAL 5 CELL 9,10,104 CELL 10,10,105 END IF END IF END SUB SUB ADDWALL(IWALL) BG 0 PAL 1 IF IWALL<0 THEN IWALL=ABS(IWALL) PAL 2 END IF BG FILL 6,3 TO 13,8 CHAR 0 IF IWALL=2 THEN BG FILL 8,4 TO 11,4 CHAR 16 BG FILL 8,5 TO 11,6 CHAR 32 BG FILL 8,7 TO 11,7 CHAR 48 END IF IF IWALL=1 THEN BG FILL 6,3 TO 13,3 CHAR 16 BG FILL 6,4 TO 13,7 CHAR 32 BG FILL 6,8 TO 13,8 CHAR 48 END IF END SUB #1:MAIN PALETTES 00030300000B070700300C3F003F3F00 1007280F00203708003C0F3000303000 #2:MAIN CHARACTERS 00000000000000000000000000000000 00000000C0F07CAF0000000000C0F0FC C0F07CAF57AA55AA00C0F0FCFFFFFFFF FFAAD5AAD5AAD5AAFFFFFFFFFFFFFFFF FFAB55AB55AB55ABFFFFFFFFFFFFFFFF 000000FFFF0000000000000000000000 00000000000000000000AA0000550000 000000FFFF000000000000FFFF000000 18241824182418241824182418241824 183C1824182418241824182418241824 1824183C182418241824182418241824 18241824183C18241824182418241824 182418241824183C1824182418241824 00000000000000000000000000000000 FFC1BDA0ADA883EA006A400A50025400 7F435D05B515C1D7002A00AA00AA1428 00000000FFFFFFFF0000000000FFFFFF D5AAD5AAD5AAD5AAFFFFFFFFFFFFFFFF 55AA55AA55AA55AAFFFFFFFFFFFFFFFF D5AAD5AAD5AAD5FFFFFFFFFFFFFFFFFF 55AB55AB55AB55FFFFFFFFFFFFFFFFFF 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0BE388ADA0BDC1FF1408550055025400 90C711B5055D437F0028440A50221600 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 5FBCF0C000000000FCF0C00000000000 55AA55AB5FBCF0C0FFFFFFFFFCF0C000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000020000001000000000 00000000000000000000000008000000 FFFFFFFF00000000FFFFFF0000000000 80000000000000000000000000000000 80000000000000000000000000000000 00000000000000000000000000000000 00080C7E0C0800000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000001000000000 20000000000000002000000008000000 00000307070300000000000000000000 0000C0E0E0C000000000000000000000 00000000000000000008030707030800 00000000000000000010C0E0E0C01000 00000103030300000000010303030000 000080C0C0C00000000080C0C0C00000 3C7EFFFFFFFF7E3C0000000000000000 00000018180000000000001818000000 00000000000002050000000000000205 00000000000080400000000000008040 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00070F1F1F0F07000000000000000000 00E0F0F8F8F0E0000000000000000000 000000000000000010270C1B1B0C2710 000000000000000008E430D8D830E408 0003070D0F0F0F000003070D0F0F0F00 00C0E0B0F0F0F00000C0E0B0F0F0F000 00183C7E7E3C18000000000000000000 0000183C3C1800000000183C3C180000 00000000020115090000000002011509 00000000800050200000000080005020 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0F3F7FFFFF7F3F0F0000000000000000 F0FCFEFFFFFEFCF00000000000000000 0000000000000000479C3B37373B9C47 0000000000000000E239DCECECDC39E2 071F37373C3C3F2A071F37373C3C3F2A E0F8DCDC7C7CFCD4E0F8DCDC7C7CFCD4 0000183C3C1800000000000000000000 00183C7E7E3C180000183C7E7E3C1800 010502211509A949010502211509A949 00408008502522220040800850252222 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 3C7EFFFFFFFF7E3C0000000000000000 3C7ECFC8F8FF7E3C0000000000000000 00000000000000004299245A5A249942 00000000000000000000000000000000 3C7EDBFFE7FFFFAB3C7EDBFFE7FFFFAB 00000000000000000000000000000000 00000018180000000000000000000000 3C7EFFFFFFFF7E3C3C7EFFFFFFFF7E3C #3:MAIN BG 00001410060606060606060606060606 06060000000000000000000000000606 06060606060606060606060600000000 01000000000000000000000000000000 00000000000000000000000000000108 00000000000000001100020001000000 00000000000000000000000000000000 00000108020811080000000000000000 11001200120002000100000000000000 00000000000001080208120812081108 00000000000000001100120012001200 11000200010000000000010802081108 12081208120811080000000000000000 11001200120012001100120011000300 04001108120811081208120812081108 00000000000000001100120012001200 11001200110013001400110812081108 12081208120811080000000000000000 11001200120012001100220021000000 00002108220811081208120812081108 00000000000000001100120012002200 21000000000000000000000000002108 22081208120811080000000000000000 11002200210000010000000000000000 00000000000000000001210822081108 00000000000000002100000000000000 00000000000000000000000000000000 00000000000021080000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000100010001000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000 #15:MAIN SOUND 1800F366046F00000800F05600FF0000 0800637710F00000380002BB15F50000 180000AA00000F00220050BB1000EF00 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 C0404000404040014040400040404002 4040400340C04003C0C0400440404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 214F00FF000000000000000000000000 0000214F00FF00000000000000000000 00000000214F00FF0000000000000000 224F00FF000000000000000000000000 0000224F00FF00000000000000000000 00000000224F00FF0000000000000000 214F00FF000000000000000000000000 0000214F00FF00000000000000000000 00000000214F00FF0000000000000000 1C4F0000000000000000000000000000 0000000000FF00000000000000000000 00000000000000000000000000000000 214F00FF000000000000000000000000 0000214F00FF00000000000000000000 00000000224F00FF0000000000000000 214F0000000000000000000000000000 0000000000FF00000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 155F00FF000000000000000000000000 0000000000000000105F00FF00000000 00000000000000000000000000000000 155F00FF000000000000000000000000 0000000000000000105F00FF00000000 00000000000000000000000000000000