GAMEPAD 1 CALL DOHELP RANDOMIZE TIMER DIM GLOBAL HX(1,5),HY(1,5),NOTES(1,6),HIVE(12,6),RHIVE(62),COMPOSE(63,1),TILES(1,11),RINGS(1,5,1) DIM GLOBAL CHORDSIZES(5),CHORDS(5,3),KEYNAMES$(1,11),KEYCHORDS(1,6),MAJMIN(11,1),TRING(5) GLOBAL CURX,CURY,CURCELL,CUROCT,COMPCT,VALIDCT,TRYX,TRYY,NEXTSP,TRINGCT,TMPO GLOBAL CNOTE,ROOTKEY,ROOTFLAVOR,LIVES,ISSHARP,SKILL,EASY,AVERAGE,DIFFICULT,TR1,TR2,TR3,ROFFS CALL INITDATA FONT 192 BG SOURCE ROM(3) COPY ROM(2),SIZE(2) TO $8000 COPY ROM(1),SIZE(1) TO $FF00 BG COPY 0,0,20,16 TO 0,0 EASY=0 AVERAGE=1 DIFFICULT=2 COPY ROM(14),SIZE(14) TO $A000 TR1=$A180 TR2=$A1E0 TR3=$A240 ROFFS=0 SOUND SOURCE $A000 '-------------------------------- NEWGAME: '-------------------------------- ON RASTER CALL RAST MUSIC SKILL=EASY TMPO=15 POKE TR3+2,($E0 OR TMPO) FOR I=0 TO 19 CELL I,15,104 NEXT I NEXTSP=1 VALIDCT=0 COMPCT=0 CNOTE=128 CURX=0 CURY=0 CURCELL=0 CUROCT=3 LIVES=3 FOR I=0 TO 62 RHIVE(I)=-1 NEXT I SPRITE OFF 0 TO 62 ROOTKEY=RND(11) ROOTFLAVOR=RND(1) ISSHARP=MAJMIN(ROOTKEY,ROOTFLAVOR) KEYSZ$=KEYNAMES$(ISSHARP,ROOTKEY) IF ROOTFLAVOR=0 THEN KEYSZ$=KEYSZ$+"M" PAL 2+ROOTFLAVOR X=13 RX=X+(44-41+1) TEXT RX,14," " TEXT RX,14,KEYSZ$ PAL 0 FOR I=41 TO 44 CELL X+(I-41),14,I NEXT I PAL 6 FOR L=0 TO 2 TEXT L,15,"^" NEXT L STARTX=-1 STARTY=-1 CALL GETRAND(STARTX,STARTY) CALL PLACECHORD(0,STARTX,STARTY,ROOTKEY,ROOTFLAVOR) CALL PLACECURSOR(STARTX,STARTY) TRINGCT=0 TRIES=0 WHILE TRINGCT<=0 CALL MAKERING INC TRIES IF (TRIES MOD 50)=0 THEN TRACE STR$(TRIES)+" TRIES..." WEND CALL CHANGEKEY(0,CUROCT) '-------------------------------- ' MAIN '-------------------------------- NOBUTTON=-1 TRYX=-1 TRYY=-1 DO X=CURX Y=CURY OE=CURX MOD 2 NOBUTTON=0 IF LEFT(0) THEN IF UP(0) THEN ADD X,-1 ADD Y,-1+OE ELSE IF DOWN(0) THEN ADD X,-1 ADD Y,1-(1-OE) END IF ELSE IF RIGHT(0) THEN IF UP(0) THEN ADD X,1 ADD Y,-1+OE ELSE IF DOWN(0) THEN ADD X,1 ADD Y,1-(1-OE) END IF ELSE IF UP(0) THEN ADD Y,-1 ELSE IF DOWN(0) THEN ADD Y,1 ELSE NOBUTTON=-1 END IF END IF IF NOBUTTON THEN IF TRYX>=0 OR TRYY>=0 THEN TRYX=-1 TRYY=-1 CALL RETURNCURSOR END IF ELSE IF TRYX<>X OR TRYY<>Y THEN TRYX=X TRYY=Y CALL TRYCURSOR(X,Y) END IF IF BUTTON(0) THEN IF TRYX>=0 AND TRYY>=0 THEN IF CURX<>TRYX OR CURY<>TRYY THEN RES=((HIVE(TRYX,TRYY)\256)-1) IF RES<>0 THEN SP=RES RES=0 ',CALL PLAYCHORD(SP,CUROCT) CALL CHANGEKEY(SP,CUROCT) RES_R=-1 RES_F=-1 CALL VALIDATE(SP,RES,RES_R,RES_F) IF RES<0 THEN ' VALID FOR I=0 TO TRINGCT-1 TSP=(TRING(I) \ 256) IF TSP<>SP THEN TXY=RHIVE(TSP) IF TXY=-1 THEN ELSE HIVE(TXY AND $0F, TXY\16)=0 SPRITE OFF TSP RHIVE(TSP)=-1 END IF END IF NEXT I TXY=RHIVE(SP) IF SP<>NEXTSP THEN SPRITE NEXTSP PAL (SPRITE.A(SP) AND 7) PRIO 0 SPRITE NEXTSP,SPRITE.X(SP),SPRITE.Y(SP),SPRITE.C(SP) END IF INC NEXTSP CALL PLACECURSOR(TXY AND $0F, TXY\16) TRINGCT=-1 WHILE TRINGCT=-1 CALL MAKERING IF TRINGCT=0 OR TMPO=0 THEN GOTO YOUWIN WEND ELSE IF RES>0 THEN ' INVALID CALL REMOVECHORD(SP) DEC LIVES PAL 6 FOR L=0 TO 2 IF (L+1)>LIVES THEN CELL L,15,104 ELSE TEXT L,15,"^" END IF NEXT L PAL 0 IF LIVES=0 THEN GOTO GAMEOVER CALL RETURNCURSOR END IF END IF END IF WHILE BUTTON(0) OR LEFT(0) OR RIGHT(0) OR UP(0) OR DOWN(0) WEND END IF END IF END IF WAIT VBL LOOP '-------------------------------- GAMEOVER: '-------------------------------- ON RASTER OFF COPY ROM(1),SIZE(1) TO $FF00 STOP FOR SP=0 TO 62 IF RHIVE(SP)>=0 THEN M=HIVE(RHIVE(SP) AND 15,RHIVE(SP)\16) F=(M AND $F0)\16 R=(M AND $0F) RES=0 CALL VALIDATECHORD(F,R,RES) IF RES=0 THEN SPRITE OFF SP END IF NEXT SP FOR I=0 TO 19 CELL I,15,104 NEXT I FOR X=48 TO 55 CELL X-48+((20-(55-48+1))\2),15,X NEXT X WAIT 60 WHILE BUTTON(0) WEND DO IF BUTTON(0) THEN GOTO NEWGAME LOOP '-------------------------------- YOUWIN: '-------------------------------- ON RASTER OFF STOP COPY ROM(1),SIZE(1) TO $FF00 FOR I=0 TO 19 CELL I,15,104 NEXT I FOR X=57 TO 63 CELL X-57+((20-(63-57+1))\2),15,X NEXT X WAIT 60 WHILE BUTTON(0) WEND DO IF BUTTON(0) THEN GOTO NEWGAME LOOP '-------------------------------- ' SUBS '-------------------------------- SUB MAKERING CT=0 CALL RINGCOUNT(CT) TRINGCT=CT IF CT=0 THEN EXIT SUB F=(HIVE(CURX,CURY) AND $F0)\16 N=(HIVE(CURX,CURY) AND $0F) IF SKILL=EASY THEN WRONG=1 VALID=CT-1 ELSE IF SKILL=AVERAGE THEN WRONG=CT\2 VALID=CT-WRONG ELSE WRONG=CT-1 VALID=1 END IF CTR=0 HCT=250 FOR I=0 TO VALID-1 UNIQUE=-1 REPEAT DEC HCT IF HCT=0 THEN TRINGCT=-1 EXIT SUB END IF RO=RND(6) T=KEYCHORDS(ROOTFLAVOR,RO) OFFS=T AND $0F TF=T\16 TF2=TF+3 IF RND(1)=1 THEN TFF=TF ELSE TFF=TF2 IF (F=TF OR F=TF2) AND (N=OFFS) THEN UNIQUE=0 ELSE IF CTR>0 THEN FOR J=0 TO CTR-1 TJ=TRING(J) AND $FF IF TJ=(((ROOTKEY+OFFS) MOD 12) OR (TFF * 16)) THEN UNIQUE=0 EXIT END IF NEXT J END IF END IF UNTIL UNIQUE=-1 TRING(CTR)=((ROOTKEY+OFFS) MOD 12) OR (TFF * 16) OR ((NEXTSP+CTR)*256) INC CTR NEXT I HCT=720 FOR I=0 TO WRONG-1 UNIQUE=-1 VALID=0 REPEAT DEC HCT IF HCT=0 THEN TRINGCT=-1 EXIT SUB END IF OFFS=RND(11) TFF=RND(5) FOR J=0 TO CTR-1 TJ=TRING(J) AND $FF IF TJ=(((ROOTKEY+OFFS) MOD 12) OR (TFF * 16)) THEN UNIQUE=0 EXIT END IF NEXT J IF UNIQUE THEN TFG=TFF IF TFF>2 THEN ADD TFG,-3 FOR J=0 TO 6 T=KEYCHORDS(ROOTFLAVOR,J) IF ((T AND $0F)=OFFS) AND ((T \ 16)=TFG) THEN VALID=-1 EXIT END IF NEXT J END IF UNTIL (UNIQUE=-1) AND (VALID=0) TRING(CTR)=(((ROOTKEY+OFFS) MOD 12) OR (TFF * 16)) OR ((NEXTSP+CTR)*256) INC CTR NEXT I OE=CURX MOD 2 FOR I=0 TO 100 SW1=RND(CT-1) SW2=(RND(CT-2)+SW1) MOD CT SW=TRING(SW1) TRING(SW1)=TRING(SW2) TRING(SW2)=SW NEXT I OTR=0 FOR I=0 TO 5 X=CURX+RINGS(OE,I,0) Y=CURY+RINGS(OE,I,1) IF X>=0 AND X<13 AND Y>=0 AND Y<(7-OE) THEN IF HIVE(X,Y)=0 THEN W=TRING(OTR) AND $FF NSP=TRING(OTR) \ 256 CALL PLACECHORD(NSP,X,Y,(W AND $0F),((W AND $F0)\16)) INC OTR END IF END IF NEXT I END SUB SUB RINGCOUNT(RES) RES=0 OE=CURX MOD 2 FOR I=0 TO 5 X=CURX+RINGS(OE,I,0) Y=CURY+RINGS(OE,I,1) IF X>=0 AND X<13 AND Y>=0 AND Y<(7-OE) THEN IF HIVE(X,Y)=0 THEN TRACE STR$(X)+","+STR$(Y) INC RES END IF END IF NEXT I TRACE "RINGCT="+STR$(RES) END SUB SUB GETRAND(RESX,RESY) RESX=-1 RESY=-1 TRIES=91 REPEAT RESX=RND(12) RESY=RND(5+(1-(RESX MOD 2))) DEC TRIES UNTIL HIVE(RESX,RESY)=0 OR TRIES=0 END SUB SUB VALIDATE(SP,RES,RES_R,RES_F) RES=0 RES_F=-1 RES_R=-1 IF SP<0 OR SP>=63 THEN IF RHIVE(SP)<0 THEN EXIT SUB END IF RES=1 M=HIVE(RHIVE(SP) AND 15,RHIVE(SP)\16) F=(M AND $F0)\16 R=(M AND $0F) RES2=0 CALL VALIDATECHORD(F,R,RES2) IF RES2 THEN RES=-1 END SUB SUB VALIDATECHORD(F,R,RES) RES=0 FOR I=0 TO 6 T=KEYCHORDS(ROOTFLAVOR,I) OFFS=T AND $0F TF=T\16 TF2=TF+3 IF ((ROOTKEY+OFFS) MOD 12)=R AND (TF=F OR TF2=F) THEN RES=-1 EXIT SUB END IF NEXT I END SUB SUB PLAYCHORD(SP,OCT) IF SP=63 THEN EXIT SUB IF RHIVE(SP)<0 THEN EXIT SUB M=HIVE(RHIVE(SP) AND 15,RHIVE(SP)\16) F=(M AND $F0)\16 R=(M AND $0F) CT=CHORDSIZES(F) FOR I=0 TO 3 IF I=CT THEN STOP I ELSE OFFS=CHORDS(F,I) N=(R+OFFS+1)+(12*OCT) PLAY I,N SOUND 0 END IF NEXT I END SUB SUB CHANGEKEY(SP,OCT) IF SP<0 OR SP>=63 THEN EXIT SUB IF RHIVE(SP)<0 THEN EXIT SUB M=HIVE(RHIVE(SP) AND 15,RHIVE(SP)\16) F=(M AND $F0)\16 R=(M AND $0F) CT=CHORDSIZES(F) R1=R+CHORDS(F,0)+1+(12*OCT) R2=R+CHORDS(F,1)+1+(12*OCT) R3=R+CHORDS(F,2)+1+(12*OCT) IF CT=4 THEN R4=R+CHORDS(F,3)+1+(12*OCT) ELSE R4=0 END IF FOR I=0 TO 93 STEP 3 B=PEEK(TR1+I)-ROFFS B2=PEEK(TR2+I)-ROFFS IF B>0 THEN IF B=1 THEN POKE TR1+I,R1 ELSE IF B=4 OR B=5 THEN POKE TR1+I,R2 ELSE IF B=8 THEN POKE TR1+I,R3 ELSE IF B=$0D THEN POKE TR1+I,R1+12 END IF END IF IF B2>0 THEN IF B2=1 THEN POKE TR2+I,R1 ELSE IF B2=4 OR B2=5 THEN POKE TR2+I,R2 ELSE IF B2=8 THEN POKE TR2+I,R3 ELSE IF B2=$0D THEN POKE TR2+I,R1+12 END IF END IF NEXT I ROFFS=R1-1 DEC TMPO IF TMPO<0 THEN TMPO=0 POKE TR3+2,($E0 OR TMPO) SKILL=((15-TMPO)\5) END SUB SUB PLACECHORD(SP,X,Y,N,F) IF SP=63 THEN EXIT SUB OE=X MOD 2 IF Y<0 OR X<0 OR X>12 THEN EXIT SUB IF Y>(6-OE) THEN EXIT SUB IF RHIVE(SP)>=0 THEN HIVE(RHIVE(SP) AND 15,RHIVE(SP)\16)=0 END IF PX=X*12 PY=Y*16 IF OE=1 THEN ADD PY,8 SPRITE SP SIZE 1 PAL 2+F PRIO 0 SPRITE SP,PX,PY,TILES(ISSHARP,N) RHIVE(SP)=(Y*16) OR X HIVE(X,Y)=(256*(SP+1)) OR (F * 16) OR N END SUB SUB REMOVECHORD(SP) IF SP=63 THEN EXIT SUB IF RHIVE(SP)<0 THEN EXIT SUB HIVE(RHIVE(SP) AND 15, RHIVE(SP)\16)=0 RHIVE(SP)=-1 SPRITE OFF SP END SUB SUB TRYCURSOR(X,Y) OE=X MOD 2 IF Y<0 OR X<0 OR X>12 THEN EXIT SUB IF Y>(6-OE) THEN EXIT SUB PX=X*12 PY=Y*16 IF OE=1 THEN ADD PY,8 SPRITE 63 SIZE 1 PAL 1 PRIO 1 SX=SPRITE.X(63) SY=SPRITE.Y(63) DX=(PX-SX)/4 DY=(PY-SY)/4 FOR I=1 TO 4 SPRITE 63,INT(SX+(DX*I)),INT(SY+(DY*I)),105 WAIT 1 NEXT I WAIT 6 END SUB SUB RETURNCURSOR OE=CURX MOD 2 PX=CURX*12 PY=CURY*16 IF OE=1 THEN ADD PY,8 SPRITE 63 SIZE 1 PAL 1 PRIO 1 SX=SPRITE.X(63) SY=SPRITE.Y(63) DX=(PX-SX)/4 DY=(PY-SY)/4 FOR I=1 TO 4 SPRITE 63,INT(SX+(DX*I)),INT(SY+(DY*I)),105 WAIT 1 NEXT I WAIT 6 END SUB SUB PLACECURSOR(X,Y) CALL TRYCURSOR(X,Y) CURX=X CURY=Y 'CURCELL=HIVE(X,Y) 'RHIVE(63)=(Y*16) OR X WAIT 6 END SUB SUB DOHELP BG SOURCE ROM(4) COPY ROM(5),SIZE(5) TO $8000 COPY ROM(6),SIZE(6) TO $FF00 BG COPY 0,0,20,16 TO 0,0 BG 0 CLS BG 1 CLS PAL 0 FONT 0 RESTORE HELPDATA READ LINECT Y=(16-LINECT)\2 FOR I=0 TO LINECT-1 READ LINE$ TEXT 0,Y+I,LINE$ NEXT I WHILE NOT BUTTON(0) WEND END SUB SUB INITDATA RESTORE NOTEDATA FOR MM=0 TO 1 READ MAJ FOR I=0 TO 6 READ NOTES(MAJ,I) NEXT I NEXT MM RESTORE CHORDDATA FOR F=0 TO 5 READ NF,CT CHORDSIZES(F)=CT FOR I=0 TO CT-1 READ CHORDS(F,I) NEXT I NEXT F RESTORE KEYNAMEDATA FOR J=0 TO 1 READ SF FOR I=0 TO 11 READ KEYNAMES$(SF,I) NEXT I NEXT J RESTORE KEYCHORDDATA FOR J=0 TO 1 READ MAJ FOR I=0 TO 6 READ OFFS,F KEYCHORDS(MAJ,I) = (F*16) OR OFFS NEXT I NEXT J RESTORE SHARPFLATDATA FOR J=0 TO 1 READ SF FOR I=0 TO 11 READ TILES(SF,I) NEXT I NEXT J RESTORE RELATIVEDATA FOR J=0 TO 11 READ MJ,SF1,MN,SF2 MAJMIN(MJ,1)=SF1 MAJMIN(MN,0)=SF2 NEXT J RESTORE RINGDATA FOR J=0 TO 1 READ O FOR I=0 TO 5 READ X,Y RINGS(O,I,0)=X RINGS(O,I,1)=Y NEXT I NEXT J END SUB SUB RAST IF RASTER<112 THEN PALETTE 0,PEEK($FF43)\4,PEEK($FF4F)\4,PEEK($FF5B)\4,PEEK($FF67)\4 ELSE IF RASTER=112 THEN COPY ROM(1),32 TO $FF00 END IF END SUB '-------------------------------- ' DATA '-------------------------------- RINGDATA: DATA 0,-1,-1,0,-1,1,-1,1,0,0,1,-1,0 DATA 1,-1, 0,0,-1,1, 0,1,1,0,1,-1,1 NOTEDATA: DATA 0,0,2,3,5,7,8,10 DATA 1,0,2,4,5,7,9,11 CHORDDATA: DATA 0,3,0,3,7 DATA 1,3,0,4,7 DATA 2,3,0,3,6 DATA 3,4,0,3,7,10 DATA 4,4,0,4,7,11 DATA 5,4,0,3,6,9 RELATIVEDATA: DATA 0,0,9,0 DATA 1,0,10,0 DATA 2,1,11,1 DATA 3,0,0,0 DATA 4,1,1,1 DATA 5,0,2,0 DATA 6,0,3,0 DATA 7,1,4,1 DATA 8,0,5,0 DATA 9,1,6,1 DATA 10,0,7,0 DATA 11,1,8,1 SHARPFLATDATA: DATA 0,128,130,132,134,136,138,140,142,160,162,164,166 DATA 1,128,64, 132,66, 136,138,68, 142,70, 162,72, 166 KEYNAMEDATA: DATA 0,"C","D%","D","E%","E","F","G%","G","A%","A","B%","B" DATA 1,"C","C#","D","D#","E","F","F#","G","G#","A","A#","B" KEYCHORDDATA: DATA 0,0,0,2,2,3,1,5,0,7,0,8,1,10,1 DATA 1,0,1,2,0,4,0,5,1,7,1,9,0,11,2 HELPDATA: DATA 14 DATA " HOW TO PLAY: " DATA "" DATA "STARTING WITH THE" DATA "ROOT KEY, CHOOSE A" DATA "VALID CHORD FOR THAT" DATA "KEY FROM THE SUR-" DATA "ROUNDING RING OF " DATA "CHORDS, AND REPEAT" DATA "UNTIL THERE ARE NO" DATA "MORE MOVES. PLAY A" DATA "WRONG CHORD 3X AND" DATA "YOU LOSE." DATA "" DATA " (PRESS A BUTTON) " '-------------------------------- ' ROMS '-------------------------------- #1:MAIN PALETTES 06010B00003D2814002E0B00003A0B00 063C0B00001D0B0000300B001B380B00 #2:CHARACTERS 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 FF839983879399FFFFFFFFFFFFFFFFFF FF873232323287FFFFFFFFFFFFFFFFFF FF0C676767670FFFFFFFFFFFFFFFFFFF FF0F39393F3939FFFFFFFFFFFFFFFFFF 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 FFC39F919999C3FFFFFFFFFFFFFFFFFF FFCE8632023232FFFFFFFFFFFFFFFFFF FFF46404046464FFFFFFFFFFFFFFFFFF FF0FFF3FFFFF0FFFFFFFFFFFFFFFFFFF FFFCF9F9F9F9FCFFFFFFFFFFFFFFFFFF FF33939393983CFFFFFFFFFFFFFFFFFF FF2027212767E0FFFFFFFFFFFFFFFFFF FF839983879399FFFFFFFFFFFFFFFFFF 00000000000000000000000000000000 FF9999818199BDFFFFFFFFFFFFFFFFFF FF02CECECECE02FFFFFFFFFFFFFFFFFF FF642444646464FFFFFFFFFFFFFFFFFF FFC84988C9C9C8FFFFFFFFFFFFFFFFFF FF10F370F0F213FFFFFFFFFFFFFFFFFF FF642464E47F24FFFFFFFFFFFFFFFFFF FF93939393FF93FFFFFFFFFFFFFFFFFF 000000001E3F3330000F0F1F010C0F4F 00000000287C7C2800F0F0F8D080D4D6 000000003C3E3733000F0F1F03090C4C 00000000287C7C2800F0F0F8D080D4D6 000000003F3F303C000F0F1F000F0F43 00000000287C7C2800F0F0F8D080D4D6 000000001E3E3037000F0F1F010F0F48 00000000287C7C2800F0F0F8D080D4D6 000000000C1E3F33000F0F1F13210C4C 00000000287C7C2800F0F0F8D080D4D6 00000000000000000000000000000000 80C0C0E0E0F0F0FF0000000000000000 01030307070F0FFF0000000000000000 FFFFFFFFFFFFFFFF0000000000000000 1F3F3F7F7FFFFFFF0000000000000000 F8FCFCFEFEFFFFFF0000000000000000 30333F1E000000004F0C211F1F0F0F00 7C7C28000000000082D4FCF8F8F0F000 33373E3C000000004C09033F1F0F0F00 7C7C28000000000082D4FCF8F8F0F000 3C303030000000004F0F0F3F1F0F0F00 7C7C28000000000082D4FCF8F8F0F000 37333F1E000000004C0C211F1F0F0F00 7C7C28000000000082D4FCF8F8F0F000 3F3F333300000000400C0C3F1F0F0F00 7C7C28000000000082D4FCF8F8F0F000 00000000000000000000000000000000 FFF0F0E0E0C0C0800000000000000000 FF0F0F07070303010000000000000000 FFFFFFFFFFFFFFFF0000000000000000 FFFFFF7F7F3F3F1F0000000000000000 FFFFFFFEFEFCFCF80000000000000000 1F30306060C0C0800000000000000000 F80C0C06060303010000000000000000 00000000000000FF0000000000000000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 FFF0F0E0E0C0C080E0C0C08080000000 FF0F0F07070303010703030101000000 1F3F3F7F7FFFFFFF070F0F1F1F3F3F7F F8FCFCFEFEFFFFFFE0F0F0F8F8FCFCFE FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 1020304060804080001010202040C080 08040C02060102010008080404020301 FFFFFFFFFFFFFFFFFFFFEEE4E0EAEEEE FFFFFFFFFFFFFFFFFFFF87F7EFEFDFDF FFFFFFFFFFFFFFFFFFFF772707577777 FFFFFFFFFFFFFFFFFFFFFAFBE2EAEAE2 FFFFFFFFFFFFFFFFFFFFFFFF97ABABAB 80C0C0606030301F0000000000000000 01030306060C0CF80000000000000000 FF000000000000000000000000000000 FFFFFFFFFFFFFFFF00FFFFFFFFFFFFFF 80C0C0E0E0F0F0FF0000008080C0C0E0 01030307070F0FFF0000000101030307 FFFFFF7F7F3F3F1F7F3F3F1F1F0F0F07 FFFFFFFEFEFCFCF8FEFCFCF8F8F0F0E0 00000000000000000000000000000000 8040C020601020100080804040203010 01020304060804080001010202040C08 FFFFFFFFFFFFFFFFFFFFEBEF8AAAAA8A FFFFFFFFFFFFFFFFFFFFF0FE5DADABAB FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFEFFCBD5D5D5 FFFFFFFFFFFFFFFFFFFF1FDFBFBF7F7F 0000000003070606000F0F1F1C393979 00000000C0E0600000F0F0F8389CFCFE 000000000F0F0D0C000F0F1F10323373 000000001090DCDC00F0F0F8E86C202A 0000000007070606000F0F1F18393979 0000000080C0E06000F0F0F8783C9C9E 000000000F0F0C0F000F0F1F10333370 00000000D0D01C1C00F0F0F828ECE0EA 0000000007070607000F0F1F18393978 00000000E0E0008000F0F0F818FCFC7E 0000000007070607000F0F1F18393978 00000000E0E0008000F0F0F818FCFC7E 00000000070F0C0D000F0F1F18333372 0000000090901CDC00F0F0F868ECE02A 0000000003070606000F0F1F1C393979 00000000C0C000E000F0F0F838FCFC1E 060607030000000079393C1F1F0F0F00 0060E0C000000000FE9C3CF8F8F0F000 0C0D0F0F000000007332301F1F0F0F00 D4DC9800000000002A64FCF8F8F0F000 06060707000000007939381F1F0F0F00 60E0C080000000009E3C7CF8F8F0F000 0F0C0F0F000000007333301F1F0F0F00 141CD8C000000000EAE43CF8F8F0F000 07060707000000007939381F1F0F0F00 8000E0E000000000FEFC1CF8F8F0F000 07060606000000007939391F1F0F0F00 8000000000000000FEFCFCF8F8F0F000 0D0C0F07000000007333381F1F0F0F00 D4DCD880000000002A247CF8F8F0F000 060607030000000079393C1F1F0F0F00 E060E0C0000000009E9C3CF8F8F0F000 0000000003070F0C000F0F1F1C383373 000000001090DCDC00F0F0F8E86C202A 0000000001030706000F0F1F1E3C3979 0000000080C0E06000F0F0F8783C9C9E 000000000F0F0C0F000F0F1F10333370 0000000090D0DCDC00F0F0F8682C206A 0000000007070607000F0F1F18393978 00000000C0E060E000F0F0F8389C9C3E 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0F0F0C0C000000007033331F1F0F0F00 D4DCD8C0000000002A243CF8F8F0F000 07070606000000007839391F1F0F0F00 E0E06060000000001E9C9CF8F8F0F000 0F0C0F0F000000007333301F1F0F0F00 D4DCD880000000002A247CF8F8F0F000 07060707000000007939381F1F0F0F00 E060E0C0000000009E9C3CF8F8F0F000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 00181818180018000000000000000000 006C6C24000000000000000000000000 FFFFFFFFFFFFFFFFFFD783D783D7FFFF 00083E380E3E08000000000000000000 FFFFFFFFFFFFFFFFFFDFDFC7D7D7CFFF 001C34386E643A000000000000000000 00181830000000000000000000000000 000C183030180C000000000000000000 0030180C0C1830000000000000000000 000024187E1824000000000000000000 000018187E1818000000000000000000 00000000181830000000000000000000 000000007E0000000000000000000000 00000000001818000000000000000000 00060C18306040000000000000000000 003C666E76663C000000000000000000 0018381818187E000000000000000000 003C660C18307E000000000000000000 003C660C06663C000000000000000000 0066667E060606000000000000000000 007E607C06067C000000000000000000 001C307C66663C000000000000000000 FFFFFFFFFFFFFFFFFF81F9F3E7CFCFFF 003C663C66663C000000000000000000 003C663E06663C000000000000000000 00000018001800000000000000000000 00000018001830000000000000000000 00000C1830180C000000000000000000 0000007E007E00000000000000000000 000030180C1830000000000000000000 003C660C180018000000000000000000 003C666E6E603C000000000000000000 FFFFFFFFFFFFFFFFFFE7C399819999FF FFFFFFFFFFFFFFFFFF839983999983FF FFFFFFFFFFFFFFFFFFC3999F9F99C3FF FFFFFFFFFFFFFFFFFF879399999387FF FFFFFFFFFFFFFFFFFF819F879F9F81FF FFFFFFFFFFFFFFFFFF819F879F9F9FFF FFFFFFFFFFFFFFFFFFC39F919999C3FF 0066667E666666000000000000000000 003C181818183C000000000000000000 001E060606663C000000000000000000 00666C78786C66000000000000000000 0060606060607E000000000000000000 FFFFFFFFFFFFFFFFFFFFFF2F575757FF 0066767E6E6666000000000000000000 003C666666663C000000000000000000 007C667C606060000000000000000000 003C66666A6C3E000000000000000000 007C667C786C66000000000000000000 003E603C06067C000000000000000000 007E1818181818000000000000000000 0066666666663C000000000000000000 00666666663C18000000000000000000 0066667E7E6642000000000000000000 00663C183C6666000000000000000000 0066663C181818000000000000000000 007E0C1830607E000000000000000000 003C303030303C000000000000000000 006030180C0602000000000000000000 003C0C0C0C0C3C000000000000000000 FFFFBFFFFFFFFFFFFF93410183C7EFFF 0000000000007E000000000000000000 #3:BG 00001410640065006300640065006300 64006500630064006500630064006500 63006400650063006400650074007100 72007000710072007000710072007000 71007200700071007200700071007200 70007500640061006200600061006200 60006100620060006100620060006100 62006000610062006000650074007100 72007000710072007000710072007000 71007200700071007200700071007200 70007500640061006200600061006200 71187018620060006100620060006100 62006000610062006000650074007100 72007000710072006118601872007000 71007200700071007200700071007200 70007500640061006200600061006200 60006100620060006100620060006100 62006000610062006000650074007100 72007000710072007000710072007000 71007200700071007200700071007200 70007500640061006200600061006200 60006100620060006100620060006100 62006000610062006000650074007100 72007000710072007000710072007000 71007200700071007200700071007200 70007500640061006200600061006200 60006100620060006100620060006100 62006000610062006000650074007100 72007000710072007000710072007000 71007200700071007200700071007200 70007500640061006200600061006200 60006100620060006100620060006100 62006000610062006000650074007500 73007400750073007400750073007400 75007300740075007300740075007300 7400750068036D036F026E046F046B06 6C067E057F057B077C077D0768076807 68076807680768006800680068006800 68006800680068076807680768006800 68006800680068006800680068006800 68006800 #4:HELP BG 00001410640065006400650064006500 64006500640065006400650064006500 64006500640065006400650074007100 70007100700071007000710070007100 70007100700071007000710070007100 70007500720063006200630062006300 62006300620063006200630062006300 62006300620063006200730064006100 60006100600061006000610060006100 60006100600061006000610060006100 60006500740071007000710070007100 70007100700071007000710070007100 70007100700071007000750072006300 62006300620063006200630062006300 62006300620063006200630062006300 62007300640061006000610060006100 60006100600061006000610060006100 60006100600061006000650074007100 70007100700071007000710070007100 70007100700071007000710070007100 70007500720063006200630062006300 62006300620063006200630062006300 62006300620063006200730064006100 60006100600061006000610060006100 60006100600061006000610060006100 60006500740071007000710070007100 70007100700071007000710070007100 70007100700071007000750072006300 62006300620063006200630062006300 62006300620063006200630062006300 62006800640061006000610060006100 60006100600061006000610060006100 60006100600061006000650074007500 74007500740075007400750074007500 74007500740075007400750074007500 740075006800680068006B0368006C02 68006E046F0468076B066D066C056D05 6E076F076D0768006807680068006800 68006800680068006807680768006800 68006807680768006800680068006800 68006800 #5:HELP CHARACTERS 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 #6:HELP PALETTES 002F1A05003C281400182F0000252F00 1A262F0000062F00000A2F001A242F00 #14:SOUND 4008003611070F005808F03F18009000 08006060000000002800303019FE0000 780310011CFF0F0071023064190E0F00 5008F02F19FE0A000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 80810203C0C002034040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 040FEF000000080F00010F00040F0000 0000080F00000000040F00000000080F 00010F00040F00000000080F00000000 040F00000000080F00010F00040F0000 0000080F00000000040F00000000080F 00000000040F00000000080F00000000 011F000000000D1F00000000011F0000 00000D1F00000000011F000000000D1F 00000000011F000000000D1F00000000 011F000000000D1F00000000011F0000 00000D1F00000000011F000000000D1F 00000000011F000000000D1F00000000 5F4C000000005F49005F45005F4C0000 00005F49005F45005F4C000000005F49 005F45005F4C005F48005F49005F4500 5F4C000000005F49005F45005F4C0000 00005F49005F45005F4C000000005F49 005F45005F4C005F48005F49005F4500 106F00000000000000106F00395F0000 0000106F000000000000000000000000 00000000395F00000000000000000000 106F00000000000000106F00395F0000 0000106F00000000000000000000395F 00000000395F00000000000000000000 #15:MAIN SOUND 4008003611070F005808F03F18009000 08006060000000002800303019FE0000 780310011CFF0F0071023064190E0F00 5008F02F19FE0A000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 80810203C0C002034040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 280FEF0000002C0F00250F00280F0000 00002C0F00000000280F000000002C0F 00250F00280F000000002C0F00000000 280F000000002C0F00250F00280F0000 00002C0F00000000280F000000002C0F 00000000280F000000002C0F00000000 191F00000000251F00000000191F0000 0000251F00000000191F00000000251F 00000000191F00000000251F00000000 191F00000000251F00000000191F0000 0000251F00000000191F00000000251F 00000000191F00000000251F00000000 5F4C000000005F49005F45005F4C0000 00005F49005F45005F4C000000005F49 005F45005F4C005F48005F49005F4500 5F4C000000005F49005F45005F4C0000 00005F49005F45005F4C000000005F49 005F45005F4C005F48005F49005F4500 106F00000000000000106F00395F0000 0000106F000000000000000000000000 00000000395F00000000000000000000 106F00000000000000106F00395F0000 0000106F00000000000000000000395F 00000000395F00000000000000000000