REM TETRIS RANDOMIZE TIMER DIM GLOBAL LETTER$(7) FOR I=0 TO 6 READ LETTER$(I) NEXT I DATA "Z","S","O","I","T","L","J" REM 0 1 2 3 4 5 6 REM CLOCK REM 0-R REM L-0 REM R-2 REM 2-L REM COUNTERCLOCK REM 0-L REM L-2 REM R-0 REM 2-R GAMEPAD 2 REM VISIBLE GRID REM #5 -> #16 X REM #10 -> #27 Y DIM GLOBAL GRID(20,40) DIM GLOBAL PLACEGRID(20,40) DIM GLOBAL PIECE(7,3,3,3) DIM GLOBAL BAG(7) DIM GLOBAL QBAG(7) DIM GLOBAL RBAG(7) DIM GLOBAL LINECLEARY(4) GLOBAL PIECEX GLOBAL PIECEY CANGODOWN=1 CANROTATECLOCK=1 GLOBAL CANGODOWN GLOBAL CANROTATECLOCK GLOBAL R GLOBAL ROT GLOBAL COUNT GLOBAL HOLD GLOBAL CANHOLD COUNT=0 HOLD=-1 CANHOLD=1 SH=1 GLOBAL CLEAR FOR I=0 TO 6 BAG(I)=I QBAG(I)=I RBAG(I)=I NEXT I FOR I=0 TO 20 SWAP BAG(INT(RND*7)),BAG(INT(RND*7)) SWAP QBAG(INT(RND*7)),QBAG(INT(RND*7)) SWAP RBAG(INT(RND*7)),RBAG(INT(RND*7)) NEXT I TIME=0 CX=0 CY=0 GLOBAL TIME FOR Y=0 TO 40 FOR X=0 TO 20 GRID(X,Y)=-1 PLACEGRID(X,Y)=-1 NEXT X NEXT Y Y=26 FOR X=0 TO 20 GRID(X,Y)=7 NEXT X X=15 FOR Y=0 TO 40 GRID(X,Y)=7 NEXT Y X=4 FOR Y=0 TO 40 GRID(X,Y)=7 NEXT Y FOR X=0 TO 17 STEP 17 FOR Y=10 TO 27 REM GRID(X,Y)=7 NEXT Y NEXT X FOR I=0 TO 6 FOR R=0 TO 3 FOR Y=0 TO 3 FOR X=0 TO 3 READ PIECE(I,R,X,Y) NEXT X NEXT Y NEXT R NEXT I CALL SPAWN DO ATTR (,,,,0) BG COPY 0,0,20,20 TO 0,0 ATTR(,,,,0) IF TIMER MOD 50 = 0 AND NOT DOWN(0) THEN CALL PIECEGODOWN IF DOWN(0) AND NOT LEFT(0) AND NOT RIGHT(0) THEN DTIME=DTIME+1 IF DTIME>2 THEN CALL PIECEGODOWN DTIME=0 END IF END IF IF SH=1 THEN CALL SHADOW CALL DRAWBOARD IF LEFT(0) THEN LTIME=LTIME+1 IF LTIME>3 THEN CALL GOLEFT LTIME=0 END IF END IF IF RIGHT(0) THEN RTIME=RTIME+1 IF RTIME>3 THEN CALL GORIGHT RTIME=0 END IF END IF IF NOT RIGHT(0) THEN RTIME=0 IF NOT LEFT(0) THEN LTIME=0 IF RIGHT TAP(1) THEN CALL ROTATECLOCK REM R IF LEFT TAP(1) THEN CALL COUNTERCLOCK REM L IF DOWN TAP(1) AND NOT LEFT(1) AND NOT RIGHT(1) THEN CALL HARDDROP CALL SPAWN END IF IF UP TAP(1) AND NOT LEFT(1) AND NOT RIGHT(1) THEN CALL HOLD REM TRACE PIECEX,PIECEY REM TRACE COUNT REM TEXT 11,5,LETTER$(BAG(0))+LETTER$(BAG(1))+LETTER$(BAG(2))+LETTER$(BAG(3))+LETTER$(BAG(4))+LETTER$(BAG(5))+LETTER$(BAG(6)) FOR I=0 TO 6 ATTR (BAG(I),,,) CELL 11,I+1,BAG(I)+5 NEXT I TEXT 12,0,"H" TEXT 11,0,"N" IF HOLD<>-1 THEN ATTR (HOLD,,,) CELL 12,1,HOLD+5 END IF TRACE PIECEY WAIT VBL CLS LOOP SUB DRAWBOARD FOR Y=10 TO 25 FOR X=5 TO 14 IF GRID(X,Y)<>-1 THEN ATTR(GRID(X,Y),,,) CELL X-5,Y-10,1 END IF IF PLACEGRID(X,Y)<>-1 THEN ATTR(PLACEGRID(X,Y),,,) CELL X-5,Y-10,1 END IF NEXT X NEXT Y END SUB SUB PIECEGODOWN CANGODOWN=1 FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 IF PLACEGRID(X,Y)<>-1 AND GRID(X,Y+1)<>-1 THEN CANGODOWN=0 NEXT X NEXT Y IF CANGODOWN=1 THEN FOR Y=PIECEY+5 TO PIECEY+1 STEP -1 FOR X=PIECEX TO PIECEX+3 IF PLACEGRID(X,Y-1)<>-1 THEN PLACEGRID(X,Y)=PLACEGRID(X,Y-1) PLACEGRID(X,Y-1)=-1 END IF NEXT X NEXT Y PIECEY=PIECEY+1 END IF IF CANGODOWN=0 THEN TIME=TIME+1-DOWN(0) IF TIME>10 THEN FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 IF PLACEGRID(X,Y)<>-1 THEN GRID(X,Y)=PLACEGRID(X,Y) PLACEGRID(X,Y)=-1 END IF NEXT X NEXT Y TIME=0 CALL CHECKCLEAR CALL SPAWN END IF END SUB SUB GENBAG FOR I=0 TO 6 RBAG(I)=I NEXT I FOR I=0 TO 20 SWAP RBAG(INT(RND*7)),RBAG(INT(RND*7)) NEXT I COUNT=0 END SUB SUB SPAWN CANHOLD=1 IF COUNT=7 THEN CALL GENBAG R=BAG(0) PIECEY=7 PIECEX=8 ROT=0 COUNT=COUNT+1 FOR I=0 TO 6 BAG(I)=BAG(I+1) NEXT I BAG(6)=QBAG(0) FOR I=0 TO 6 QBAG(I)=QBAG(I+1) NEXT I QBAG(6)=RBAG(0) FOR I=0 TO 6 RBAG(I)=RBAG(I+1) NEXT I FOR Y=7 TO 10 FOR X=8 TO 11 IF PIECE(R,0,X-8,Y-7)=1 THEN PLACEGRID(X,Y)=R IF PIECE(R,0,X-8,Y-7)=1 AND GRID(X,Y)<>-1 THEN CALL GAMEOVER NEXT X NEXT Y END SUB SUB GODOWN FOR Y=27 TO 5 STEP -1 FOR X=5 TO 16 IF PLACEGRID(X,Y-1)<>-1 THEN PLACEGRID(X,Y)=PLACEGRID(X,Y-1) PLACEGRID(X,Y-1)=-1 END IF NEXT X NEXT Y END SUB SUB GOLEFT CANGOLEFT=1 FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 IF PLACEGRID(X,Y)<>-1 AND GRID(X-1,Y)<>-1 THEN CANGOLEFT=0 NEXT X NEXT Y IF CANGOLEFT=1 THEN FOR Y=PIECEY+5 TO PIECEY STEP -1 FOR X=PIECEX-1 TO PIECEX+3 IF PLACEGRID(X+1,Y)<>-1 THEN PLACEGRID(X,Y)=PLACEGRID(X+1,Y) PLACEGRID(X+1,Y)=-1 END IF NEXT X NEXT Y PIECEX=PIECEX-1 END IF END SUB SUB GORIGHT CANGORIGHT=1 FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 IF PLACEGRID(X,Y)<>-1 AND GRID(X+1,Y)<>-1 THEN CANGORIGHT=0 NEXT X NEXT Y IF CANGORIGHT=1 THEN FOR Y=PIECEY+5 TO PIECEY STEP -1 FOR X=PIECEX+5 TO PIECEX STEP -1 IF PLACEGRID(X-1,Y)<>-1 THEN PLACEGRID(X,Y)=PLACEGRID(X-1,Y) PLACEGRID(X-1,Y)=-1 END IF NEXT X NEXT Y PIECEX=PIECEX+1 END IF END SUB SUB ROTATECLOCK TRY=-1 RETRYCLOCK: TRY=TRY+1 CANROTATECLOCK=1 REM ========================= REM 0->R REM ========================= IF ROT=0 THEN IF TRY=0 THEN BX=0 BY=0 END IF IF TRY=1 THEN BX=-1 BY=0 END IF IF TRY=2 THEN BX=-1 BY=-1 END IF IF TRY=3 THEN BX=0 BY=2 END IF IF TRY=4 THEN BX=-1 BY=2 END IF FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 IF PIECE(R,1,X-PIECEX,Y-PIECEY)=1 AND GRID(X+BX,Y+BY)<>-1 THEN CANROTATECLOCK=0 NEXT X NEXT Y IF CANROTATECLOCK=1 THEN FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 PLACEGRID(X,Y)=-1 NEXT X NEXT Y FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 IF PIECE(R,1,X-PIECEX,Y-PIECEY)=1 THEN PLACEGRID(X+BX,Y+BY)=R NEXT X NEXT Y ROT=1 PIECEX=PIECEX+BX PIECEY=PIECEY+BY GOTO ENDSUB END IF END IF IF ROT=2 THEN REM ========================= REM 2->L REM ========================= IF TRY=0 THEN TRACE "1" BX=0 BY=0 END IF IF TRY=1 THEN TRACE "2" BX=1 BY=0 END IF IF TRY=2 THEN TRACE "3" BX=1 BY=-1 END IF IF TRY=3 THEN TRACE "4" BX=0 BY=2 END IF IF TRY=4 THEN TRACE "5" BX=1 BY=2 END IF IF TRY=5 THEN TRACE "STOP" BX=0 BY=0 END IF FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 IF PIECE(R,3,X-PIECEX,Y-PIECEY)=1 AND GRID(X+BX,Y+BY)<>-1 THEN CANROTATECLOCK=0 NEXT X NEXT Y IF CANROTATECLOCK=1 THEN FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 PLACEGRID(X,Y)=-1 NEXT X NEXT Y FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 IF PIECE(R,3,X-PIECEX,Y-PIECEY)=1 THEN PLACEGRID(X+BX,Y+BY)=R NEXT X NEXT Y PIECEX=PIECEX+BX PIECEY=PIECEY+BY ROT=3 GOTO ENDSUB END IF END IF REM ================= REM R->2 REM ================= IF ROT=1 THEN IF TRY=0 THEN TRACE "1" BX=0 BY=0 END IF IF TRY=1 THEN TRACE "2" BX=1 BY=0 END IF IF TRY=2 THEN TRACE "3" BX=1 BY=1 END IF IF TRY=3 THEN TRACE "4" BX=0 BY=-2 END IF IF TRY=4 THEN TRACE "5" BX=1 BY=-2 END IF IF TRY=5 THEN TRACE "STOP" BX=0 BY=0 END IF FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 IF PIECE(R,2,X-PIECEX,Y-PIECEY)=1 AND GRID(X+BX,Y+BY)<>-1 THEN CANROTATECLOCK=0 NEXT X NEXT Y IF CANROTATECLOCK=1 THEN FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 PLACEGRID(X,Y)=-1 NEXT X NEXT Y FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 IF PIECE(R,2,X-PIECEX,Y-PIECEY)=1 THEN PLACEGRID(X+BX,Y+BY)=R NEXT X NEXT Y PIECEX=PIECEX+BX PIECEY=PIECEY+BY ROT=2 GOTO ENDSUB END IF END IF IF ROT=3 THEN REM ========================= REM L->0 REM ========================= IF TRY=0 THEN BX=0 BY=0 END IF IF TRY=1 THEN BX=-1 BY=0 END IF IF TRY=2 THEN BX=-1 BY=1 END IF IF TRY=3 THEN BX=0 BY=-2 END IF IF TRY=4 THEN BX=-1 BY=-2 END IF FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 IF PIECE(R,0,X-PIECEX,Y-PIECEY)=1 AND GRID(X+BX,Y+BY)<>-1 THEN CANROTATECLOCK=0 NEXT X NEXT Y IF CANROTATECLOCK=1 THEN FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 PLACEGRID(X,Y)=-1 NEXT X NEXT Y FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 IF PIECE(R,0,X-PIECEX,Y-PIECEY)=1 THEN PLACEGRID(X+BX,Y+BY)=R NEXT X NEXT Y ROT=0 PIECEX=PIECEX+BX PIECEY=PIECEY+BY GOTO ENDSUB END IF END IF IF CANROTATECLOCK=0 AND TRY<4 THEN GOTO RETRYCLOCK ENDSUB: END SUB SUB COUNTERCLOCK TRY=-1 RETRYCCLOCK: TRY=TRY+1 CANROTATECCLOCK=1 IF ROT=0 THEN REM ========================= REM 0->L REM ========================= IF TRY=0 THEN BX=0 BY=0 END IF IF TRY=1 THEN BX=1 BY=0 END IF IF TRY=2 THEN BX=1 BY=-1 END IF IF TRY=3 THEN BX=0 BY=2 END IF IF TRY=4 THEN BX=1 BY=2 END IF IF TRY=5 THEN BX=0 BY=0 END IF FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 IF PIECE(R,3,X-PIECEX,Y-PIECEY)=1 AND GRID(X+BX,Y+BY)<>-1 THEN CANROTATECCLOCK=0 NEXT X NEXT Y IF CANROTATECCLOCK=1 THEN FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 PLACEGRID(X,Y)=-1 NEXT X NEXT Y FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 IF PIECE(R,3,X-PIECEX,Y-PIECEY)=1 THEN PLACEGRID(X+BX,Y+BY)=R NEXT X NEXT Y PIECEX=PIECEX+BX PIECEY=PIECEY+BY ROT=3 GOTO ENDSUBB END IF END IF REM ========================= REM 2->R REM ========================= IF ROT=2 THEN IF TRY=0 THEN BX=0 BY=0 END IF IF TRY=1 THEN BX=-1 BY=0 END IF IF TRY=2 THEN BX=-1 BY=-1 END IF IF TRY=3 THEN BX=0 BY=2 END IF IF TRY=4 THEN BX=-1 BY=2 END IF FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 IF PIECE(R,1,X-PIECEX,Y-PIECEY)=1 AND GRID(X+BX,Y+BY)<>-1 THEN CANROTATECCLOCK=0 NEXT X NEXT Y IF CANROTATECCLOCK=1 THEN FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 PLACEGRID(X,Y)=-1 NEXT X NEXT Y FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 IF PIECE(R,1,X-PIECEX,Y-PIECEY)=1 THEN PLACEGRID(X+BX,Y+BY)=R NEXT X NEXT Y ROT=1 PIECEX=PIECEX+BX PIECEY=PIECEY+BY GOTO ENDSUBB END IF END IF IF ROT=3 THEN REM ========================= REM L->2 REM ========================= IF TRY=0 THEN BX=0 BY=0 END IF IF TRY=1 THEN BX=-1 BY=0 END IF IF TRY=2 THEN BX=-1 BY=1 END IF IF TRY=3 THEN BX=0 BY=-2 END IF IF TRY=4 THEN BX=-1 BY=-2 END IF FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 IF PIECE(R,2,X-PIECEX,Y-PIECEY)=1 AND GRID(X+BX,Y+BY)<>-1 THEN CANROTATECCLOCK=0 NEXT X NEXT Y IF CANROTATECCLOCK=1 THEN FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 PLACEGRID(X,Y)=-1 NEXT X NEXT Y FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 IF PIECE(R,2,X-PIECEX,Y-PIECEY)=1 THEN PLACEGRID(X+BX,Y+BY)=R NEXT X NEXT Y ROT=2 PIECEX=PIECEX+BX PIECEY=PIECEY+BY GOTO ENDSUBB END IF END IF REM ================= REM R->0 REM ================= IF ROT=1 THEN IF TRY=0 THEN TRACE "1" BX=0 BY=0 END IF IF TRY=1 THEN TRACE "2" BX=1 BY=0 END IF IF TRY=2 THEN TRACE "3" BX=1 BY=1 END IF IF TRY=3 THEN TRACE "4" BX=0 BY=-2 END IF IF TRY=4 THEN TRACE "5" BX=1 BY=-2 END IF IF TRY=5 THEN TRACE "STOP" BX=0 BY=0 END IF FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 IF PIECE(R,0,X-PIECEX,Y-PIECEY)=1 AND GRID(X+BX,Y+BY)<>-1 THEN CANROTATECCLOCK=0 NEXT X NEXT Y IF CANROTATECCLOCK=1 THEN FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 PLACEGRID(X,Y)=-1 NEXT X NEXT Y FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 IF PIECE(R,0,X-PIECEX,Y-PIECEY)=1 THEN PLACEGRID(X+BX,Y+BY)=R NEXT X NEXT Y PIECEX=PIECEX+BX PIECEY=PIECEY+BY ROT=0 GOTO ENDSUBB END IF END IF IF TRY=5 THEN GOTO ENDSUBB IF CANROTATECCLOCK=0 AND TRY<4 THEN GOTO RETRYCCLOCK ENDSUBB: END SUB REM SUB SHADOW FOR I=0 TO 18 FOR Y=PIECEY+I TO PIECEY+3+I FOR X=PIECEX TO PIECEX+3 IF PIECE(R,ROT,X-PIECEX,Y-PIECEY-I)=1 AND GRID(X,Y+1)<>-1 THEN ATTR(7,,,) FOR YY=PIECEY+I TO PIECEY+3+I FOR XX=PIECEX TO PIECEX+3 IF YY-10>0 THEN IF PIECE(R,ROT,XX-PIECEX,YY-PIECEY-I)=1 THEN CELL XX-5,YY-10,4 END IF NEXT XX NEXT YY GOTO ENDSUBBB END IF NEXT X NEXT Y NEXT I ENDSUBBB: REM END SUB SUB SHADOW FOR II=0 TO 25 EMPTY=1 FOR X=PIECEX TO PIECEX+3 IF GRID(X,PIECEY+II)<>-1 AND X<>4 AND X<>15 THEN EMPTY=0 NEXT X IF EMPTY=1 THEN NEXT II FOR I=II-4 TO 20 FOR Y=PIECEY+I TO PIECEY+3+I FOR X=PIECEX TO PIECEX+3 IF PIECE(R,ROT,X-PIECEX,Y-PIECEY-I)=1 AND GRID(X,Y+1)<>-1 AND PIECEY+I>=PIECEY THEN ATTR(7,,,) FOR YY=PIECEY+I TO PIECEY+3+I FOR XX=PIECEX TO PIECEX+3 IF YY-10>0 THEN IF PIECE(R,ROT,XX-PIECEX,YY-PIECEY-I)=1 THEN CELL XX-5,YY-10,4 END IF NEXT XX NEXT YY GOTO ENDSUBBV END IF NEXT X NEXT Y NEXT I ENDSUBBV: END SUB SUB HARDDROP FOR I=0 TO 18 FOR Y=PIECEY+I TO PIECEY+3+I FOR X=PIECEX TO PIECEX+3 IF PIECE(R,ROT,X-PIECEX,Y-PIECEY-I)=1 AND GRID(X,Y+1)<>-1 THEN FOR YY=PIECEY+I TO PIECEY+3+I FOR XX=PIECEX TO PIECEX+3 IF PIECE(R,ROT,XX-PIECEX,YY-PIECEY-I)=1 THEN GRID(XX,YY)=R NEXT XX NEXT YY GOTO ENDSUBBBB END IF NEXT X NEXT Y NEXT I ENDSUBBBB: FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 PLACEGRID(X,Y)=-1 NEXT X NEXT Y CALL CHECKCLEAR END SUB SUB HOLD IF CANHOLD=1 THEN IF HOLD=-1 THEN HOLD=R R=BAG(0) FOR I=0 TO 6 BAG(I)=BAG(I+1) NEXT I BAG(6)=QBAG(0) FOR I=0 TO 6 QBAG(I)=QBAG(I+1) NEXT I QBAG(6)=RBAG(0) FOR I=0 TO 6 RBAG(I)=RBAG(I+1) NEXT I COUNT=COUNT+1 ELSE IF HOLD<>-1 THEN SWAP HOLD,R END IF FOR Y=PIECEY TO PIECEY+3 FOR X=PIECEX TO PIECEX+3 PLACEGRID(X,Y)=-1 NEXT X NEXT Y FOR Y=6 TO 9 FOR X=8 TO 11 IF PIECE(R,0,X-8,Y-6)=1 THEN PLACEGRID(X,Y)=R NEXT X NEXT Y PIECEY=6 PIECEX=8 ROT=0 CANHOLD=0 END IF END SUB SUB CHECKCLEAR LINECLEAR=0 FOR I=0 TO 4 LINECLEARY(I)=0 NEXT I FOR Y=10 TO 25 FOR X=5 TO 14 IF GRID(X,Y)=-1 THEN GOTO SKIP NEXT X LINECLEAR=LINECLEAR+1 LINECLEARY(LINECLEAR)=Y SKIP: NEXT Y FOR I=1 TO LINECLEAR FOR X=5 TO 14 CELL X-5,LINECLEARY(I)-10,12 NEXT X NEXT I IF LINECLEAR>0 THEN WAIT 1 TRACE LINECLEAR FOR I=1 TO LINECLEAR FOR Y=LINECLEARY(I) TO 3 STEP -1 FOR X=5 TO 14 GRID(X,Y)=GRID(X,Y-1) GRID(X,Y-1)=-1 NEXT X NEXT Y NEXT I END SUB SUB GAMEOVER PRINT "GAME OVER" END END SUB REM PIECES REM Z DATA 0,0,0,0 DATA 1,1,0,0 DATA 0,1,1,0 DATA 0,0,0,0 DATA 0,0,0,0 DATA 0,0,1,0 DATA 0,1,1,0 DATA 0,1,0,0 DATA 0,0,0,0 DATA 0,0,0,0 DATA 1,1,0,0 DATA 0,1,1,0 DATA 0,0,0,0 DATA 0,1,0,0 DATA 1,1,0,0 DATA 1,0,0,0 REM S DATA 0,0,0,0 DATA 0,1,1,0 DATA 1,1,0,0 DATA 0,0,0,0 DATA 0,0,0,0 DATA 0,1,0,0 DATA 0,1,1,0 DATA 0,0,1,0 DATA 0,0,0,0 DATA 0,0,0,0 DATA 0,1,1,0 DATA 1,1,0,0 DATA 0,0,0,0 DATA 1,0,0,0 DATA 1,1,0,0 DATA 0,1,0,0 REM O DATA 0,0,0,0 DATA 0,1,1,0 DATA 0,1,1,0 DATA 0,0,0,0 DATA 0,0,0,0 DATA 0,1,1,0 DATA 0,1,1,0 DATA 0,0,0,0 DATA 0,0,0,0 DATA 0,1,1,0 DATA 0,1,1,0 DATA 0,0,0,0 DATA 0,0,0,0 DATA 0,1,1,0 DATA 0,1,1,0 DATA 0,0,0,0 REM I DATA 0,0,0,0 DATA 1,1,1,1 DATA 0,0,0,0 DATA 0,0,0,0 DATA 0,0,1,0 DATA 0,0,1,0 DATA 0,0,1,0 DATA 0,0,1,0 DATA 0,0,0,0 DATA 0,0,0,0 DATA 1,1,1,1 DATA 0,0,0,0 DATA 0,1,0,0 DATA 0,1,0,0 DATA 0,1,0,0 DATA 0,1,0,0 REM T DATA 0,0,0,0 DATA 0,1,0,0 DATA 1,1,1,0 DATA 0,0,0,0 DATA 0,0,0,0 DATA 0,1,0,0 DATA 0,1,1,0 DATA 0,1,0,0 DATA 0,0,0,0 DATA 0,0,0,0 DATA 1,1,1,0 DATA 0,1,0,0 DATA 0,0,0,0 DATA 0,1,0,0 DATA 1,1,0,0 DATA 0,1,0,0 REM L DATA 0,0,0,0 DATA 0,0,1,0 DATA 1,1,1,0 DATA 0,0,0,0 DATA 0,0,0,0 DATA 0,1,0,0 DATA 0,1,0,0 DATA 0,1,1,0 DATA 0,0,0,0 DATA 0,0,0,0 DATA 1,1,1,0 DATA 1,0,0,0 DATA 0,0,0,0 DATA 1,1,0,0 DATA 0,1,0,0 DATA 0,1,0,0 REM J DATA 0,0,0,0 DATA 1,0,0,0 DATA 1,1,1,0 DATA 0,0,0,0 DATA 0,0,0,0 DATA 0,1,1,0 DATA 0,1,0,0 DATA 0,1,0,0 DATA 0,0,0,0 DATA 0,0,0,0 DATA 1,1,1,0 DATA 0,0,1,0 DATA 0,0,0,0 DATA 0,1,0,0 DATA 0,1,0,0 DATA 1,1,0,0 #1:MAIN PALETTES 003F3000003F0C00003F3C00003F0B00 003F3300003F3400003F0300003F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 FE8181818181817F017F7F7F7F7F7FFF BDBD00F7F700BBBBFFFFFFFFFFFFFFFF 0000001818000000181818FFFF181818 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0000000000000000000078781E1E0000 000000000000000000001E1E78780000 000000000000000000003C3C3C3C0000 0000000000000000000000FFFF000000 0000000000000000000018187E7E0000 0000000000000000000006067E7E0000 0000000000000000000060607E7E0000 AA55AA55AA55AA5555AA55AA55AA55AA FF818181818181FFFFFFFFFFFFFFFFFF FF808080808080FFFFFFFFFFFFFFFFFF FF000000000000FFFFFFFFFFFFFFFFFF FF010101010101FFFFFFFFFFFFFFFFFF FF81818181818181FFFFFFFFFFFFFFFF 8181818181818181FFFFFFFFFFFFFFFF 81818181818181FFFFFFFFFFFFFFFFFF 0000000000000000FFFFFFFFFFFFFFFF 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 AA55AA55AA55AA5555AA55AA55AA55AA 007E7E7E7E7E7E00FF818181818181FF 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 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 000018187E7E00000000000000000000 000000FFFF0000000000000000000000 00003C3C3C3C00000000000000000000 000078781E1E00000000000000000000 00001E1E787800000000000000000000 000060607E7E00000000000000000000 000006067E7E00000000000000000000 000C183030180C000000000000000000 0030180C0C1830000000000000000000 000024187E1824000000000000000000 000018187E1818000000000000000000 00000000181830000000000000000000 000000007E0000000000000000000000 00000000001818000000000000000000 00060C18306040000000000000000000 003C666E76663C000000000000000000 0018381818187E000000000000000000 003C660C18307E000000000000000000 003C660C06663C000000000000000000 0066667E060606000000000000000000 007E607C06067C000000000000000000 001C307C66663C000000000000000000 007E060C183030000000000000000000 003C663C66663C000000000000000000 003C663E06663C000000000000000000 00000018001800000000000000000000 00000018001830000000000000000000 00000C1830180C000000000000000000 0000007E007E00000000000000000000 000030180C1830000000000000000000 003C660C180018000000000000000000 003C666E6E603C000000000000000000 00183C667E6666000000000000000000 007C667C66667C000000000000000000 003C666060663C000000000000000000 00786C66666C78000000000000000000 007E607860607E000000000000000000 007E6078606060000000000000000000 003C606E66663C000000000000000000 0066667E666666000000000000000000 003C181818183C000000000000000000 001E060606663C000000000000000000 00666C78786C66000000000000000000 0060606060607E000000000000000000 0042667E7E6666000000000000000000 0066767E6E6666000000000000000000 003C666666663C000000000000000000 007C667C606060000000000000000000 003C66666A6C3E000000000000000000 007C667C786C66000000000000000000 003E603C06067C000000000000000000 007E1818181818000000000000000000 0066666666663C000000000000000000 00666666663C18000000000000000000 0066667E7E6642000000000000000000 00663C183C6666000000000000000000 0066663C181818000000000000000000 007E0C1830607E000000000000000000 003C303030303C000000000000000000 006030180C0602000000000000000000 003C0C0C0C0C3C000000000000000000 00183C66000000000000000000000000 0000000000007E000000000000000000 #3:MAIN BG 000014100C070C070C070C070C070C07 0C070C070C070C070107140714071407 1407140714071407140714070C070C07 0C070C070C070C070C070C070C070C07 01071407140714071407140714071407 140714070C070C070C070C070C070C07 0C070C070C070C070107140714071407 1407140714071407140714070C070C07 0C070C070C070C070C070C070C070C07 01071407140714071407140714071407 140714070C070C070C070C070C070C07 0C070C070C070C070107140714071407 1407140714071407140714070C070C07 0C070C070C070C070C070C070C070C07 01071407140714071407140714071407 140714070C070C070C070C070C070C07 0C070C070C070C070107140714071407 1407140714071407140714070C070C07 0C070C070C070C070C070C070C070C07 01071407140714071407140714071407 140714070C070C070C070C070C070C07 0C070C070C070C070107140714071407 1407140714071407140714070C070C07 0C070C070C070C070C070C070C070C07 01071407140714071407140714071407 140714070C070C070C070C070C070C07 0C070C070C070C070107140714071407 1407140714071407140714070C070C07 0C070C070C070C070C070C070C070C07 01071407140714071407140714071407 140714070C070C070C070C070C070C07 0C070C070C070C070107140714071407 1407140714071407140714070C070C07 0C070C070C070C070C070C070C070C07 01071407140714071407140714071407 140714070C070C070C070C070C070C07 0C070C070C070C070107140714071407 1407140714071407140714070C070C07 0C070C070C070C070C070C070C070C07 01071407140714071407140714071407 14071407