GLOBAL CH_T,CH_L,CH_R,CUBE_X,CUBE_Y,TOP_QTR,TOP_SIDE,LEFT_SIDE,LEFT_QTR,RIGHT_SIDE,RIGHT_QTR CH_T=132 CH_L=136 CH_R=140 CUBE_X=32 CUBE_Y=16 TOP_SIDE=4 TOP_QTR=0 LEFT_SIDE=0 LEFT_QTR=0 RIGHT_SIDE=1 RIGHT_QTR=0 DIM GLOBAL ROTA_P(5,11), ROTB_P(5,1,11), ROTA_X(5,11), ROTB_X(5,1,11), ROTA_Y(5,11), ROTB_Y(5,1,11) RESTORE ROTDATA FOR S=0 TO 5 FOR F=0 TO 11 READ ROTA_P(S,F),ROTA_X(S,F),ROTA_Y(S,F),ROTB_P(S,0,F),ROTB_X(S,0,F),ROTB_Y(S,0,F),ROTB_P(S,1,F),ROTB_X(S,1,F),ROTB_Y(S,1,F) NEXT F NEXT S DIM GLOBAL ORIS_L(5,3),ORIQ_L(5,3),ORIS_R(5,3),ORIQ_R(5,3) DIM GLOBAL LORIS_T(5,3),LORIQ_T(5,3),RORIS_T(5,3),RORIQ_T(5,3) DIM GLOBAL LORIS_R(5,3),LORIQ_R(5,3),RORIS_L(5,3),RORIQ_L(5,3) RESTORE ORIENTS FOR I=0 TO 23 READ OTS,OTQ,OLS,OLQ,ORS,ORQ ORIS_L(OTS,OTQ)=OLS ORIQ_L(OTS,OTQ)=OLQ ORIS_R(OTS,OTQ)=ORS ORIQ_R(OTS,OTQ)=ORQ LORIS_T(OLS,OLQ)=OTS LORIQ_T(OLS,OLQ)=OTQ LORIS_R(OLS,OLQ)=ORS LORIQ_R(OLS,OLQ)=ORQ RORIS_T(ORS,ORQ)=OTS RORIQ_T(ORS,ORQ)=OTQ RORIS_L(ORS,ORQ)=OLS RORIQ_L(ORS,ORQ)=OLQ NEXT I SI=1 DIM GLOBAL TILES(5,2,2) FOR S=0 TO 5 FOR X=0 TO 2 FOR Y=0 TO 2 TILES(S,X,Y)=SI SPRITE SI PAL S SIZE 3 PRIO 0 INC SI NEXT Y NEXT X NEXT S DIM GLOBAL TCH(2,2) TCH(0,0)=0 TCH(1,0)=8 TCH(2,0)=32 TCH(0,1)=40 TCH(1,1)=128 TCH(2,1)=64 TCH(0,2)=72 TCH(1,2)=96 TCH(2,2)=104 DIM GLOBAL RING_X(8),RING_Y(8) RESTORE BASERING READ RING_X(0),RING_Y(0),RING_X(1),RING_Y(1),RING_X(2),RING_Y(2),RING_X(3),RING_Y(3) READ RING_X(4),RING_Y(4),RING_X(5),RING_Y(5),RING_X(6),RING_Y(6),RING_X(7),RING_Y(7) READ RING_X(8),RING_Y(8) DIM GLOBAL SPIN_MAP_X(3,2,2),SPIN_MAP_Y(3,2,2) RESTORE SPINMAP FOR R=0 TO 8 X=RING_X(R) Y=RING_Y(R) READ SPIN_MAP_X(0,X,Y),SPIN_MAP_Y(0,X,Y),SPIN_MAP_X(1,X,Y),SPIN_MAP_Y(1,X,Y) READ SPIN_MAP_X(2,X,Y),SPIN_MAP_Y(2,X,Y),SPIN_MAP_X(3,X,Y),SPIN_MAP_Y(3,X,Y) NEXT R DIM GLOBAL DRAW_TX(2,2),DRAW_LX(2,2),DRAW_RX(2,2),DRAW_TY(2,2),DRAW_LY(2,2),DRAW_RY(2,2) RESTORE BIGTLRCOORDS FOR Y=0 TO 2 FOR X=0 TO 2 READ DRAW_TX(X,Y),DRAW_LX(X,Y),DRAW_RX(X,Y) READ DRAW_TY(X,Y),DRAW_LY(X,Y),DRAW_RY(X,Y) NEXT X NEXT Y FOR Y=0 TO 2 FOR X=0 TO 2 ADD DRAW_TX(X,Y),CUBE_X ADD DRAW_LX(X,Y),CUBE_X ADD DRAW_RX(X,Y),CUBE_X ADD DRAW_TY(X,Y),CUBE_Y ADD DRAW_LY(X,Y),CUBE_Y ADD DRAW_RY(X,Y),CUBE_Y NEXT X NEXT Y DIM GLOBAL TR_SIDES(1,1,1) TR_SIDES(0,0,0)=7 TR_SIDES(1,1,0)=9 TR_SIDES(0,1,0)=11 TR_SIDES(0,1,1)=13 TR_SIDES(1,1,1)=39 TR_SIDES(0,0,1)=41 TR_SIDES(1,0,1)=43 TR_SIDES(1,0,0)=45 DIM GLOBAL OPP_SIDES(5) OPP_SIDES(0)=2 OPP_SIDES(1)=3 OPP_SIDES(2)=0 OPP_SIDES(3)=1 OPP_SIDES(4)=5 OPP_SIDES(5)=4 '------------------------------------------------------- ' _ _ ' / \ / \ ' --- ( A ) ( B ) ' \_/ \_/ ' ____________________________ ' | | | | ' .------> | RQ+1 | ~RS*-1 | RS*1 | ' | | | | | ' | |_________|_________|________| ' | | | | | ' .------|------> | RQ-1 | ~RS*1 | RS*-1 | ' | | | | | | ' | .----|----. |_________|_________|________| ' | | _ | | | | | ' | | _| |_ `-> | TQ+1 | ~TS*-1 | TS*1 | ' | `-|_ _|-. | | | | ' | |_| | |_________|_________|________| ' | | | | | | | ' `------` `-> | TQ-1 | ~TS*1 | TS*-1 | ' | | | | ' |_________|_________|________| ' GLOBAL FUNC_SPIN, FUNC_ROTATE, SIDE_RIGHT, SIDE_TOP, SIDE_OPP_RIGHT, SIDE_OPP_TOP FUNC_SPIN=0 FUNC_ROTATE=1 SIDE_RIGHT=0 SIDE_TOP=1 SIDE_OPP_RIGHT=2 SIDE_OPP_TOP=3 DIM GLOBAL GP_FUNCTION(3,2), GP_SIDE(3,2), GP_WISDOM(3,2) FOR GF=0 TO 3 GP_FUNCTION(GF,0)=FUNC_SPIN GP_FUNCTION(GF,1)=FUNC_ROTATE GP_FUNCTION(GF,2)=FUNC_ROTATE NEXT GF GP_SIDE(0,0)=SIDE_RIGHT GP_SIDE(1,0)=SIDE_RIGHT GP_SIDE(2,0)=SIDE_TOP GP_SIDE(3,0)=SIDE_TOP GP_SIDE(0,1)=SIDE_OPP_RIGHT GP_SIDE(1,1)=SIDE_OPP_RIGHT GP_SIDE(2,1)=SIDE_OPP_TOP GP_SIDE(3,1)=SIDE_OPP_TOP GP_SIDE(0,2)=SIDE_RIGHT GP_SIDE(1,2)=SIDE_RIGHT GP_SIDE(2,2)=SIDE_TOP GP_SIDE(3,2)=SIDE_TOP GP_WISDOM(0,0)=0 GP_WISDOM(1,0)=1 GP_WISDOM(2,0)=0 GP_WISDOM(3,0)=1 GP_WISDOM(0,1)=1 GP_WISDOM(1,1)=0 GP_WISDOM(2,1)=1 GP_WISDOM(3,1)=0 GP_WISDOM(0,2)=0 GP_WISDOM(1,2)=1 GP_WISDOM(2,2)=0 GP_WISDOM(3,2)=1 GLOBAL CURRENT_LEVEL,TOTAL_ROTS,LEVEL_ROTS,LEVEL_SHUFFLED CURRENT_LEVEL=1 TOTAL_ROTS=0 LEVEL_ROTS=0 LEVEL_SHUFFLED=2 LAST_TOP_SIDE=4 LAST_TOP_QTR=0 KEY_DELAY=10 BG SOURCE ROM(3) BG COPY 0,0,20,16 TO 0,0 DIDWIN=0 CALL RESETME CALL SHUFFLEME(2) CALL UPDATE GAMEPAD 1 DO FLAG=0 D_FLAG=-1 B_FLAG=0 IF UP(0) THEN D_FLAG=0 ELSE IF DOWN(0) THEN D_FLAG=1 ELSE IF LEFT(0) THEN D_FLAG=2 ELSE IF RIGHT(0) THEN D_FLAG=3 END IF IF D_FLAG>=0 THEN IF BUTTON(0,0) THEN B_FLAG=1 ELSE IF BUTTON(0,1) THEN B_FLAG=2 ELSE B_FLAG=0 END IF CALL PROC_CTRL(D_FLAG,B_FLAG) WAIT KEY_DELAY IF B_FLAG>0 THEN INC TOTAL_ROTS INC LEVEL_ROTS CALL CHECKWIN(DIDWIN) IF DIDWIN<0 THEN INC CURRENT_LEVEL ' TODO: SHOW WIN NOTIFICATION LEVEL_SHUFFLED=CURRENT_LEVEL * 2 LEVEL_ROTS=0 DIDWIN=0 CALL RESETME CALL SHUFFLEME(LEVEL_SHUFFLED) CALL UPDATE END IF END IF END IF WAIT VBL LOOP '----------------------------------------------------------------- ' THE SUBS '----------------------------------------------------------------- SUB PROC_CTRL(DFLAG,BFLAG) GPF=GP_FUNCTION(DFLAG,BFLAG) GPS=GP_SIDE(DFLAG,BFLAG) GPW=GP_WISDOM(DFLAG,BFLAG) GS=-1 GQ=-1 IF GPW=0 THEN GW=1 ELSE GW=-1 END IF IF GPS=SIDE_RIGHT THEN GS=RIGHT_SIDE GQ=RIGHT_QTR ELSE IF GPS=SIDE_OPP_RIGHT THEN GS=OPP_SIDES(RIGHT_SIDE) ELSE IF GPS=SIDE_TOP THEN GS=TOP_SIDE GQ=TOP_QTR ELSE IF GPS=SIDE_OPP_TOP THEN GS=OPP_SIDES(TOP_SIDE) END IF IF GPF=FUNC_SPIN THEN IF GQ=RIGHT_QTR THEN ADD RIGHT_QTR,GW IF RIGHT_QTR<0 THEN RIGHT_QTR=3 IF RIGHT_QTR=4 THEN RIGHT_QTR=0 TOP_SIDE=RORIS_T(RIGHT_SIDE,RIGHT_QTR) TOP_QTR=RORIQ_T(RIGHT_SIDE,RIGHT_QTR) LEFT_SIDE=RORIS_L(RIGHT_SIDE,RIGHT_QTR) LEFT_QTR=RORIQ_L(RIGHT_SIDE,RIGHT_QTR) ELSE IF GQ=TOP_QTR THEN ADD TOP_QTR,GW IF TOP_QTR<0 THEN TOP_QTR=3 IF TOP_QTR=4 THEN TOP_QTR=0 RIGHT_SIDE=ORIS_R(TOP_SIDE,TOP_QTR) RIGHT_QTR=ORIQ_R(TOP_SIDE,TOP_QTR) LEFT_SIDE=ORIS_L(TOP_SIDE,TOP_QTR) LEFT_QTR=ORIQ_L(TOP_SIDE,TOP_QTR) ELSE CLS END END IF ELSE IF GPF=FUNC_ROTATE THEN CALL ROTATE(GS,GPW) END IF CALL UPDATE END SUB SUB CHECKWIN(RES) RES=0 FOR S=0 TO 5 FOR X=0 TO 2 FOR Y=0 TO 2 PL=SPRITE.A(TILES(S,X,Y)) AND %00000111 IF PL<>S THEN EXIT SUB NEXT Y NEXT X NEXT S RES=-1 END SUB SUB SHUFFLEME(TIMES) RANDOMIZE TIMER 'WIN=-1 ' JUST IN CASE WE SHUFFLE BACK TO SOLVED, RESHUFFLE IT 'REPEAT FOR I=0 TO TIMES RS=RND(5) RQ=RND(1) CALL ROTATE(RS,RQ) CALL UPDATE WAIT 20 NEXT I ' CALL CHECKWIN(WIN) 'UNTIL WIN=0 END SUB SUB RESETME SPRITE OFF 0 TO 53 SI=0 FOR S=0 TO 5 FOR X=0 TO 2 FOR Y=0 TO 2 TILES(S,X,Y)=SI SPRITE SI PAL S SIZE 3 PRIO 0 INC SI NEXT Y NEXT X NEXT S TOP_SIDE=RND(5) TOP_QTR=RND(3) LEFT_SIDE=ORIS_L(TOP_SIDE,TOP_QTR) LEFT_QTR=ORIQ_L(TOP_SIDE,TOP_QTR) RIGHT_SIDE=ORIS_R(TOP_SIDE,TOP_QTR) RIGHT_QTR=ORIQ_R(TOP_SIDE,TOP_QTR) CALL UPDATE WAIT 20 END SUB '---------------------------------------------------------------- ' UPDATE DISPLAY BY CHANGING SPRITES SO THAT SIDE 'TOP' IS ON THE ' TOP SIDE OF VIEW, ROTATED 'QTR' CLOCKWISE TURNS FROM DEFAULT ' POSITIONING (TOP-LEFT OF SIDE AT THE TOP-MOST VISIBLE TILE ON ' SCREEN) SUB UPDATE SPRITE OFF 0 TO 53 HT=CH_T HL=CH_L HR=CH_R FOR X=0 TO 2 FOR Y=0 TO 2 SPRITE TILES(TOP_SIDE,SPIN_MAP_X(TOP_QTR,X,Y),SPIN_MAP_Y(TOP_QTR,X,Y)), DRAW_TX(X,Y), DRAW_TY(X,Y), HT SPRITE TILES(LEFT_SIDE,SPIN_MAP_X(LEFT_QTR,X,Y),SPIN_MAP_Y(LEFT_QTR,X,Y)), DRAW_LX(X,Y), DRAW_LY(X,Y), HL SPRITE TILES(RIGHT_SIDE,SPIN_MAP_X(RIGHT_QTR,X,Y),SPIN_MAP_Y(RIGHT_QTR,X,Y)), DRAW_RX(X,Y), DRAW_RY(X,Y), HR NEXT Y NEXT X 'CALL DOTRACE PAL 7 BG 1 PRIO 1 TEXT 0,1,"LV: "+STR$(CURRENT_LEVEL) TEXT 8,1,"MOVES: "+STR$(LEVEL_ROTS)+"/"+STR$(TOTAL_ROTS) END SUB '---------------------------------------------------------------- 'MODIFY THE TILE DATA BY SHIFTING AROUND THE TILES BASED ON 'SIDE 'S' BEING ROTATED WITH 'W' WISDOM (0=CLOCKWISE, 1=COUNTER- 'CLOCKWISE) SUB ROTATE(S,W) DIM L(11),MX(9) FOR F=0 TO 11 L(F)=TILES(ROTA_P(S,F),ROTA_X(S,F),ROTA_Y(S,F)) NEXT F FOR F=0 TO 11 TILES(ROTB_P(S,W,F),ROTB_X(S,W,F),ROTB_Y(S,W,F))=L(F) NEXT F FOR N=0 TO 7 MX(N)=TILES(S,RING_X(N),RING_Y(N)) 'TRACE "B"+STR$(N)+"="+STR$(RING_X(N))+","+STR$(RING_Y(N))+":"+STR$(MX(N)) NEXT N IF W=1 THEN FOR I=0 TO 7 MX(9-I)=MX(7-I) NEXT I MX(1)=MX(9) MX(0)=MX(8) ELSE MX(8)=MX(0) MX(9)=MX(1) FOR I=0 TO 7 MX(I)=MX(I+2) NEXT I END IF FOR N=0 TO 7 TILES(S,RING_X(N),RING_Y(N))=MX(N) 'TRACE "A"+STR$(N)+":"+STR$(RING_X(N))+","+STR$(RING_Y(N))+"="+STR$(MX(N)) NEXT N END SUB '----------------------------------------------------------------- ' THE DATAS '----------------------------------------------------------------- '----------------------------------------------------------------- ' WHEN ROTATING 'SIDE' CW OR CCW, THE X,Y TILE OF 'FROM' MOVES TO ' X,Y TILE OF 'TO' ' ' {SIDE:[0..5]} ' FROM_SIDE, FROM_X, FROM_Y, CW_TO_SIDE, CW_TO_X, CW_TO_Y, CCW_TO_SIDE, CCW_TO_X, CCW_TO_Y ' ROTDATA: 'DATA 0 DATA 1,0,0,5,2,0,4,0,2 DATA 1,0,1,5,1,0,4,1,2 DATA 1,0,2,5,0,0,4,2,2 DATA 5,2,0,3,2,2,1,0,0 DATA 5,1,0,3,2,1,1,0,1 DATA 5,0,0,3,2,0,1,0,2 DATA 3,2,2,4,0,2,5,2,0 DATA 3,2,1,4,1,2,5,1,0 DATA 3,2,0,4,2,2,5,0,0 DATA 4,0,2,1,0,0,3,2,2 DATA 4,1,2,1,0,1,3,2,1 DATA 4,2,2,1,0,2,3,2,0 'DATA 1 DATA 0,2,2,4,2,2,5,2,2 DATA 0,2,1,4,2,1,5,2,1 DATA 0,2,0,4,2,0,5,2,0 DATA 4,2,2,2,0,0,0,2,2 DATA 4,2,1,2,0,1,0,2,1 DATA 4,2,0,2,0,2,0,2,0 DATA 2,0,0,5,2,2,4,2,2 DATA 2,0,1,5,2,1,4,2,1 DATA 2,0,2,5,2,0,4,2,0 DATA 5,2,2,0,2,2,2,0,0 DATA 5,2,1,0,2,1,2,0,1 DATA 5,2,0,0,2,0,2,0,2 'DATA 2 DATA 1,2,2,4,2,0,5,0,2 DATA 1,2,1,4,1,0,5,1,2 DATA 1,2,0,4,0,0,5,2,2 DATA 4,2,0,3,0,0,1,2,2 DATA 4,1,0,3,0,1,1,2,1 DATA 4,0,0,3,0,2,1,2,0 DATA 3,0,0,5,0,2,4,2,0 DATA 3,0,1,5,1,2,4,1,0 DATA 3,0,2,5,2,2,4,0,0 DATA 5,0,2,1,2,2,3,0,0 DATA 5,1,2,1,2,1,3,0,1 DATA 5,2,2,1,2,0,3,0,2 'DATA 3 DATA 0,0,0,5,0,0,4,0,0 DATA 0,0,1,5,0,1,4,0,1 DATA 0,0,2,5,0,2,4,0,2 DATA 5,0,0,2,2,2,0,0,0 DATA 5,0,1,2,2,1,0,0,1 DATA 5,0,2,2,2,0,0,0,2 DATA 2,2,2,4,0,0,5,0,0 DATA 2,2,1,4,0,1,5,0,1 DATA 2,2,0,4,0,2,5,0,2 DATA 4,0,0,0,0,0,2,2,2 DATA 4,0,1,0,0,1,2,2,1 DATA 4,0,2,0,0,2,2,2,0 'DATA 4 DATA 0,0,0,1,0,0,3,0,0 DATA 0,1,0,1,1,0,3,1,0 DATA 0,2,0,1,2,0,3,2,0 DATA 1,0,0,2,0,0,0,0,0 DATA 1,1,0,2,1,0,0,1,0 DATA 1,2,0,2,2,0,0,2,0 DATA 2,0,0,3,0,0,1,0,0 DATA 2,1,0,3,1,0,1,1,0 DATA 2,2,0,3,2,0,1,2,0 DATA 3,0,0,0,0,0,2,0,0 DATA 3,1,0,0,1,0,2,1,0 DATA 3,2,0,0,2,0,2,2,0 'DATA 5 DATA 0,0,2,1,0,2,3,0,2 DATA 0,1,2,1,1,2,3,1,2 DATA 0,2,2,1,2,2,3,2,2 DATA 1,0,2,2,0,2,0,0,2 DATA 1,1,2,2,1,2,0,1,2 DATA 1,2,2,2,2,2,0,2,2 DATA 2,0,2,3,0,2,1,0,2 DATA 2,1,2,3,1,2,1,1,2 DATA 2,2,2,3,2,2,1,2,2 DATA 3,0,2,0,0,2,2,0,2 DATA 3,1,2,0,1,2,2,1,2 DATA 3,2,2,0,2,2,2,2,2 '------------------------------------------------------------------ ' ORIENTATIONS ' - HOW EACH SIDE IS ORIENTED WITH ITS ' NEIGHBORS, GIVEN A SIDE IS ON TOP, ' FOR EACH 1 OF 4 POSSIBLE ROTATIONAL ' POSITIONS, PAIRS WITH THE SIDES WHICH ' WOULD BE VISIBLE ON LEFT AND RIGHT OF VIEW ' AS WELL AS HOW MANY QUARTER TURNS FROM ' DEFAULT ROTATION THEY ARE. (* MARKS WHERE ' THE 'A' TILE LIES IN DEFAULT (0) ROTATION. ' ' /*\ \X| 0 1 2 ' / T \ Y \| ' |\ /| ---+------- ' |*\_/R| 0 |*A B C ' | L|* / 1 | H - D ' \ | / 2 | G F E ' \|/ ' ' S = SIDE ' [0:RED,1:ORANGE,2:YELLOW ' 3:GREEN,4:BLUE,5:WHITE] ' ' Q = QTR. TURNS (CLOCKWISE FROM *) ' 0: A=(0,0) ABCDEFGH ' 1: A=(2,0) GHABCDEF ' 2: A=(2,2) EFGHABCD ' 3: A=(0,2) CDEFGHAB ' ' 6 SIDES * 4 ROTATIONS ' ' DATA TS,TQ,LS,LQ,RS,RQ ' ORIENTS: DATA 0,0,5,0,1,1 DATA 0,1,1,1,4,2 DATA 0,2,4,2,3,3 DATA 0,3,3,3,5,0 DATA 1,0,5,3,2,1 DATA 1,1,2,1,4,3 DATA 1,2,4,3,0,3 DATA 1,3,0,3,5,3 DATA 2,0,5,2,3,1 DATA 2,1,3,1,4,0 DATA 2,2,4,0,1,3 DATA 2,3,1,3,5,2 DATA 3,0,5,1,0,1 DATA 3,1,0,1,4,1 DATA 3,2,4,1,2,3 DATA 3,3,2,3,5,1 DATA 4,0,0,0,1,0 DATA 4,1,1,0,2,0 DATA 4,2,2,0,3,0 DATA 4,3,3,0,0,0 DATA 5,0,2,2,1,2 DATA 5,1,1,2,0,2 DATA 5,2,0,2,3,2 DATA 5,3,3,2,2,2 ' 00 50 22 40 ' 01 11 21 31 ' 02 42 20 52 ' 03 33 23 13 ' 10 53 32 41 ' 11 21 31 01 ' 12 43 30 51 ' 13 03 33 23 ' 20 52 02 42 ' 21 31 01 11 ' 22 40 00 50 ' 23 13 03 33 '------------------------------------------------------------------ ' FOR TOP, LEFT AND RIGHT SIDES IN VIEW, THE X,Y COORDS ' OF EACH TILE (LEFT TO RIGHT, TOP TO BOTTOM, AS PER ' ORIENTS ABOVE) ' ' {COL=[0..2]:ROW=[0..2]} ' DRAW_TX(COL,ROW), DRAW_LX(COL,ROW), DRAW_RX(COL,ROW) ' DRAW_TY(COL,ROW), DRAW_LY(COL,ROW), DRAW_RY(COL,ROW) TLRCOORDS: DATA 16,0,16 DATA 0,8,16 DATA 24,8,24 DATA 4,12,12 DATA 32,16,32 DATA 8,16,8 DATA 8,0,16 DATA 4,16,24 DATA 16,8,24 DATA 8,20,20 DATA 24,16,32 DATA 12,24,16 DATA 0,0,16 DATA 8,24,32 DATA 8,8,24 DATA 12,28,28 DATA 16,16,32 DATA 16,32,24 BIGTLRCOORDS: DATA 32,0,32 DATA 0,16,32 DATA 48,16,48 DATA 8,24,24 DATA 64,32,64 DATA 16,32,16 DATA 16,0,32 DATA 8,32,48 DATA 32,16,48 DATA 16,40,40 DATA 48,32,64 DATA 24,48,32 DATA 0,0,32 DATA 16,48,64 DATA 16,16,48 DATA 24,56,56 DATA 32,32,64 DATA 32,64,48 '------------------------------------------------------------------ ' THE COLUMN AND ROW COORDINATES FOR EACH SUCCESSIVE TILE IN ' THE RING AROUND THE CENTER TILE ON A SIDE (A TO H) ' ' A B C -.X. -.Y, A.X, A.Y, B.X, B.Y, C.X, C.Y, ' H - D D.X, D.Y, E.X, E.Y, F.X, F.Y, G.X, G.Y, ' G F E H.X, H.Y BASERING: DATA 0,0, 1,0, 2,0, 2,1 DATA 2,2, 1,2, 0,2, 0,1 DATA 1,1 '------------------------------------------------------------------ ' THE COLUMN/ROW MAPPINGS FOR EACH CW ROTATION (0, 90, 180, 270) ' Q0 Q1 Q2 Q3 [R:0-8] ' 02 60 46 24 R.Q0.X, R.Q0.Y, R.Q1.X, R.Q1.Y ' 64 42 20 06 R.Q2.X, R.Q2.Y, R.Q3.X, R.Q3.Y ' ' R: 012 ' 783 ' 654 SPINMAP: DATA 0,0,0,2 DATA 2,2,2,0 DATA 1,0,0,1 DATA 1,2,2,1 DATA 2,0,0,0 DATA 0,2,2,2 DATA 2,1,1,0 DATA 0,1,1,2 DATA 2,2,2,0 DATA 0,0,0,2 DATA 1,2,2,1 DATA 1,0,0,1 DATA 0,2,2,2 DATA 2,0,0,0 DATA 0,1,1,2 DATA 2,1,1,0 DATA 1,1,1,1 DATA 1,1,1,1 '------------------------------------------------------------------ ' THE ROMZ '------------------------------------------------------------------ #1:MAIN PALETTES 00302010000F0A05003C2814000C0804 000302010033221100140110003D0720 #2:MAIN CHARACTERS 00000000000000000000000000000000 00000000000000000000000000000000 F0E0F0B8180000000000000000000000 183C5A18180000000000000000000000 0F070F1D180000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 002040F8F84020000000000000000000 00000000000000000000000000000000 0004021F1F0204000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000018B8F0E0F00000000000000000 00000018185A3C180000000000000000 000000181D0F070F0000000000000000 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 000000000001071F0000000000000000 0001071F7FFFFFFF0000000000000000 00E0F8FEFFFFFFFF0000000000000000 0000000080E0F8FE0000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 07010000000000000000000000000000 FFFF7F1F070100000000000000000000 FFFFFFFEF8E000000000000000000000 F8E08000000000000000000000000000 00000000000000000000303C3F3F3F3F 00000000000000000000000000C0F0FC 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 000000000000030F000000000000030F 0000030F3FFFFFFF0000030F3FFFFFFF 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000003F3F3F3F3F3F3F3F 0000000000000000FFFFFFFFFFFFFFFF 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000F03000000000000 0000000000000000FFFFFF3F0F030000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 3F3F3F3F3C3000003F3F3F3F3C300000 FCF0C00000000000FCF0C00000000000 00000000000000000000000000000000 00181C1C1C0C180C00000404040C000C 006C7E36120000000000121212000000 00247E3F367E3F120000001B12001B12 00083E3F1E3F1F040000000710011704 0062753A142E57230000113204081123 001C3E3A7E773A1D00000A021013001D 00181C3C180000000000040C18000000 000C1E3C38180C060000060C08000006 0030180C0E1E3C180000000002060C18 0000241A7E3F2C120000000200270812 0000181C7E3F1C0C000000040027040C 00000000181C3C180000000000040C18 000000007E3F000000000000003F0000 0000000000181C0C000000000000040C 00060F1E3C787020000003060C183020 003C7E7F777F3F1E000018110119031E 00183C1C1C1C7E3F000004040404003F 003C7E3F1E3C7E3F00001833060C003F 003C7E3F06673F1E000018330001031E 0066777F3F0707030000110139010103 007E7F7C3E077F3E00001F003801033E 001C3E7C7E773F1E00000E001811031E 007E3F0F1E3C381800003903060C0818 003C7E3F7E773F1E000018031811031E 003C7E3F1F673F1E000018011901031E 000000180C180C00000000000C000C00 000000180C183C18000000000C000C18 00000C1E3C180C06000000060C000006 0000007E3F7E3F00000000003F003F00 000030180C1E3C180000000000060C18 003C7E3F1E0C180C00001833060C000C 003C7E7F7F773C1E000018111117001E 00183C7E7F7F77330000001801191133 007C7E7F7E777F3E000018031811033E 003C7E7370763F1E000018131010031E 00787C76777F7E3C000010101113063C 007E7F787C707E3F00001F001C10003F 007E7F787C70703000001F001C101030 003C7E7E77773F1E00001E101111031E 0066777F7F7777330000110119111133 003C1E1C1C1C3C1E000006040404001E 001E0F0707673F1E000009010101031E 00667F7E7C7C76330000130604101033 0060707070707E3F000010101010003F 0042677F7F7F77330000010101191133 0066777F7F7777330000010111111133 003C7E7777773F1E000018111111031E 007C7E7F7E707030000018031E101030 003C7E777B7D3E1F000018111111001F 007C7E7F7E7C76330000180306101033 003E7F3C1E077F3E00001F001801033E 007E3F1C1C1C1C0C000027040404040C 0066777777773F1E000011111111031E 00667777773F1E0C000011111103060C 0066777F7F7F73210000110101193121 00663F1E3C7E77330000030600181133 0066773F1E1C1C0C000011030604040C 007E3F1E3C787E3F000033060C18003F 003C3E3838383C1E00000E080808001E 006030180C0603010000000000000101 003C1E0E0E0E3E1E000012020202021E 00183C7E330000000000001833000000 0000000000007E3F000000000000003F #3:MAIN BG 000014109E079F07AE07AF07BE07BF07 94079507960797079407950796079707 B807B907A807A90798079907AE07AF07 BE07BF079E069F068406850686068706 840685068606870698069906B807B907 A807A907BE07BF079E069F06AE06AF06 94069506960697069406950696069706 A806A90698069906B807B9079E069F06 AE06AF06BE06BF060007000600070007 0007000700070007B806B906A806A906 98069906AE06AF06BE06BF0600070007 00070007000700070007000700070007 00070007B806B906A806A906BE06BF06 00070007000700070007000700070007 00070007000700070007000700070006 B806B906000700070007000700070007 00070007000700070007000700070007 00070007000700070006000788078907 8A078B07000700070007000700070007 00070007000700070007000700070007 00070007880789078A07000700070007 00070007000700070007000700070007 00070007000700070007000788068906 8A078B07000700070007000782070007 00070007000700070007000700070007 0007000798069906880789078A078B07 90079107920793079007910700070007 00070007000700079E069F06A806A906 98069906880789070007000700070007 000700070007A307000700079E069F06 AE06AF06B806B906A806A90698069906 B007B107B207B307B007B107B207B306 9E069F06AE06AF06BE06BF0698079907 B806B906A806A9068406850686068706 8406850686068706AE06AF06BE06BF06 9E079F07A807A90798079907B806B906 94069506960697069406950696069706 BE06BF069E079F07AE07AF07B807B907 A807A907980799078407850786078707 84078507860787079E079F07AE07AF07 BE07BF07