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 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 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 CALL GETVIEW END IF IF UP(0) AND MODE=0 THEN CHECK=FIELD(1,1) 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, IF CHECK=5 THEN MODE=1 ELSE MODE=0 CALL GETVIEW 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 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 DOHEALTH(I) HEALTH=HEALTH+I IF HEALTH>7 THEN HEALTH=7 BG 0 PAL 6 FOR I=1 TO HEALTH CELL 20-I,0,5 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 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 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 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 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000 #15:MAIN SOUND 1800F366046F00000800F05600FF0000 08006060000000002800303019FE0000 38002020000000003800505000000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000