'________________________________________________ ' ' DUNGEON DUAL GAME, REMIXED BY WAS8BIT ' ' ORIGINAL GAME: "AMOUNG US NX" BY G-9 ' HTTPS://LOWRESNX.INUTILIS.COM/TOPIC.PHP?ID=1738 ' '________________________________________________ ' GAMEPAD 1 RANDOMIZE TIMER SPRITE 0 SIZE 1 FOR I=1 TO 10 SPRITE 20+I SIZE 1 SPRITE 20+I,,,1 NEXT I FOR I=11 TO 19 SPRITE 11,,,13 NEXT I DIM GLOBAL KEY(9) GLOBAL IBOARD DIM GLOBAL BX0(9),BY0(9) FOR I=1 TO 9 READ BX0(I),BY0(I) NEXT I DATA 5,3, 9,3, 13,3 DATA 5,7, 9,7, 13,7 DATA 5,11, 9,11, 13,11 DIM GLOBAL BX1(9),BY1(9) FOR I=1 TO 9 READ BX1(I),BY1(I) NEXT I DATA 4,3, 9,3, 14,3 DATA 4,8, 9,8, 14,8 DATA 4,13, 9,13, 14,13 DIM GLOBAL BBTTT(9) GLOBAL PX,PY,OLDX,OLDY,OLDX1,OLDY1,DUELWINNER,MAXLEVEL DIM GLOBAL IX(9),IY(9),IMOVE(9),IOLDX(9),IOLDY(9),IC(9),IPP(9),SP(9),STAT(9) FOR I=1 TO 9 IX(I)=90 IY(I)=60 IMOVE(I)=0 IOLDX(I)=IX(I) IOLDY(I)=IY(I) IC(I)=0 IPP(I)=0 NEXT I TIDELAY=TIMER+10 ITIDELAY=TIMER+10 PP=0 GLOBAL ILEVEL,IBOARD,IWIN,IBATTLE,ITIME IBOARD=0 ILEVEL=0 REM 1,2,3,,4,,5,,6,,,7,,,8,,,9,, REM 1,2,11,12,22,111,112,122,222 DIM GLOBAL SUSTAT1(9),SUSTAT2(9),SUSTAT3(9) DIM GLOBAL SUBUT(9,9) FOR L=1 TO 9 READ SUSTAT1(L),SUSTAT2(L),SUSTAT3(L) FOR B=1 TO 9 READ SUBUT(L,B) NEXT B NEXT L DATA 1,0,0 DATA 0,0,0,0,1,0,0,0,0 DATA 2,0,0 DATA 1,0,0,0,0,0,0,0,1 DATA 1,1,0 DATA 1,0,0,0,1,0,0,0,1 DATA 1,2,0 DATA 1,0,1,0,0,0,1,0,1 DATA 2,2,0 DATA 1,0,1,0,1,0,1,0,1 DATA 1,1,1 DATA 1,0,1,1,0,1,1,0,1 DATA 1,1,2 DATA 1,0,1,1,1,1,1,0,1 DATA 1,2,2 DATA 1,1,1,1,0,1,1,1,1 DATA 2,2,2 DATA 1,1,1,1,1,1,1,1,1 PAUSE OFF MAXLEVEL=PEEK($E000) IF MAXLEVEL=0 THEN MAXLEVEL=1 FIRSTPLAY=1 LEVELUP: INC ILEVEL IF ILEVEL>MAXLEVEL THEN ILEVEL=1 PLAY 0,90,1 REPLAY: PX=9*8 PY=8*8 OLDX1=PX OLDY1=PY OLDX=PX OLDY=PY FOR I=1 TO 9 BBTTT(I)=0 NEXT I ''''''''''' MAIN GAME LOOPS ''''''''''' TTTLOOP: CALL SETBOARD1 IF FIRSTPLAY=1 THEN FIRSTPLAY=0 TRACK 0,0 WAIT 360 END IF CALL CHECKWINLOSE IF DUELWINNER<>0 THEN SPRITE OFF 0 TRACK 0,0 WAIT 360 IF DUELWINNER=1 THEN GOTO LEVELUP IF DUELWINNER=-1 THEN GOTO REPLAY END IF DO GOSUB PLAYERMOVES WAIT VBL LOOP PUZZLELOOP: CALL SETBOARD0 IWIN=0 DO GOSUB PLAYERMOVES GOSUB IMPOSTORMOVES WAIT VBL IF IWIN=1 THEN BBTTT(IBATTLE)=1 GOTO TTTLOOP ELSE IF IWIN=-1 THEN BBTTT(IBATTLE)=2 GOTO TTTLOOP END IF LOOP '''''''''''''''''''''''''''''''''''''''''''' PLAYERMOVES: IF PAUSE THEN GOTO LEVELUP IF IBOARD=1 THEN BG TINT 4,3 TO 15,14 PAL 1 END IF IF UP(0) THEN SPRITE 0 FLIP 1,0 OLDY=PY DEC PY IF TIDELAY0 THEN GOTO PUZZLELOOP ELSE IF BUTTON TAP (0,1) THEN PLAY 0,90,1 ADD PP,1,0 TO 7 IF PP=1 THEN PP=2 SPRITE 0 PAL PP IF IBOARD=1 AND IBATTLE>0 THEN GOTO PUZZLELOOP ELSE C=1 END IF REM IF IBOARD=1 THEN OLDX1=PX OLDY1=PY IBATTLE=0 FOR Y=0 TO 2 FOR X=0 TO 2 I=1+X+Y*3 BX=BX1(I) BY=BY1(I) V=PX\8 W=PY\8 IF (BX=V OR BX=V+1) AND (BY=W OR BY=W+1) THEN BG TINT BX,BY TO BX+1,BY+1 PAL 0 IF BBTTT(I)=0 THEN IBATTLE=I END IF PAL 0 IF IBATTLE>0 THEN TEXT 6,15,"BATTLE-"+STR$(IBATTLE) ELSE TEXT 6,15,"BATTLE--" END IF NEXT X NEXT Y END IF REM CCHECK=CELL.C((PX/8)+0.5,(PY/8)+0.5) IF IBOARD=0 AND CCHECK<>48 AND CCHECK<>51 THEN PX=OLDX PY=OLDY ELSE IF IBOARD=1 AND (CCHECK=0 OR CCHECK>53) THEN PX=OLDX PY=OLDY END IF REM IF IBOARD=0 THEN IF SPRITE HIT(0,11 TO 19) THEN PLAY 0,20+HIT*2,1 BG TINT BX0(HIT-10),BY0(HIT-10) TO BX0(HIT-10)+1,BY0(HIT-10)+1 PAL PP CALL CHECK_KEY END IF END IF SPRITE 0,PX,PY,C RETURN IMPOSTORMOVES: GTIME=ITIME-TIMER PAL 0 TEXT 0,0,"TIME "+STR$(GTIME) IF GTIME<=0 THEN IWIN=-1 PLAY 0,22,90 PLAY 1,26,90 PLAY 2,34,90 PLAY 3,38,90 WAIT 90 END IF FOR I=1 TO 9 IF STAT(I)>0 THEN IF IMOVE(I)=1 THEN SPRITE 20+I FLIP 1,0 IOLDY(I)=IY(I) DEC IY(I) IF ITIDELAY48 AND CCHECK<>51 THEN IX(I)=IOLDX(I) IY(I)=IOLDY(I) ELSE IF IBOARD=1 AND CCHECK=0 THEN IX(I)=IOLDX(I) IY(I)=IOLDY(I) END IF REM IF IBOARD=0 THEN IF IY(I)<16 THEN IY(I)=16 IF IY(I)>96 THEN IY(I)=96 IF IX(I)<24 THEN IX(I)=24 IF IX(I)>120 THEN IX(I)=120 IF SPRITE HIT(20+I,11 TO 19) THEN SS=(20+I) MOD 3 PLAY 1+SS,20+HIT*2,1 BG TINT BX0(HIT-10),BY0(HIT-10) TO BX0(HIT-10)+1,BY0(HIT-10)+1 PAL IPP(I) CALL CHECK_KEY END IF END IF SPRITE 20+I,IX(I),IY(I),IC(I) END IF NEXT I RETURN SUB CHECK_KEY IWIN=1 FOR I=1 TO 9 CC=0 IF CELL.C(BX0(I),BY0(I))=33 THEN CC=CELL.A(BX0(I),BY0(I)) IF KEY(I)<>CC THEN IWIN=0 TRACE KEY(I),CC NEXT I IF IWIN=1 THEN PLAY 0,62,90 PLAY 1,66,90 PLAY 2,74,90 PLAY 3,78,90 WAIT 90 END IF END SUB SUB SETBOARD0 ITIME=TIMER+600*ILEVEL IBOARD=0 CLS PX=60 PY=60 OLDX=PX OLDY=PY C=0 SPRITE 0,PX,PY,1 BG 1 BG SOURCE ROM(3) BG COPY 0,0,20,16 TO 0,0 GTIME=ITIME-TIMER TEXT 0,0,"TIME "+STR$(GTIME) STAT(1)=SUSTAT1(ILEVEL) STAT(2)=SUSTAT2(ILEVEL) STAT(3)=SUSTAT3(ILEVEL) FOR I=1 TO 3 IF STAT(I)=0 THEN SPRITE OFF I+20 ELSE IX(I)=90 IY(I)=60 IMOVE(I)=0 IOLDX(I)=IX(I) IOLDY(I)=IY(I) IC(I)=0 IPP(I)=0 SPRITE I+20,IX(I),IY(I),1 END IF NEXT I FOR I=1 TO 9 IF SUBUT(ILEVEL,I)=1 THEN SPRITE I+10,BX0(I)*8+7,BY0(I)*8+6,13 ELSE SPRITE OFF I+10 PAL 1 CELL BX0(I),BY0(I),48 CELL BX0(I)+1,BY0(I),48 CELL BX0(I),BY0(I)+1,48 CELL BX0(I)+1,BY0(I)+1,48 END IF NEXT I FOR Y=0 TO 2 FOR X=0 TO 2 I=1+X+Y*3 IF SUBUT(ILEVEL,I)=1 THEN KEY(I)=1 WHILE KEY(I)=1 KEY(I)=RND(7) WEND PAL KEY(I) CELL 17+X,Y,14 ELSE PAL 1 CELL 17+X,Y,14 KEY(I)=0 END IF NEXT X NEXT Y PLAY 0,42,90 PLAY 1,46,90 PLAY 2,54,90 PLAY 3,58,90 WAIT 90 END SUB SUB SETBOARD1 IBOARD=1 CLS FOR I=1 TO 9 SPRITE OFF 20+I SPRITE OFF 10+I STAT(I)=0 NEXT I BG SOURCE ROM(4) BG 1 BG COPY 0,0,20,16 TO 0,0 PAL 0 TEXT 4,2,"LEV-"+STR$(ILEVEL) TEXT 11,2,"MAX-"+STR$(MAXLEVEL) PAL 1 PX=OLDX1 PY=OLDY1 OLDX=PX OLDY=PY C=0 SPRITE 0,PX,PY,1 PAL 1 FOR I=1 TO 9 IF BBTTT(I)>0 THEN BB=BBTTT(I)*2+7 CELL BX1(I),BY1(I),BB CELL BX1(I)+1,BY1(I),BB+1 CELL BX1(I),BY1(I)+1,BB+16 CELL BX1(I)+1,BY1(I)+1,BB+17 END IF NEXT I END SUB SUB CHECKWINLOSE DIM A(9),C(8) WL=0 FOR I=1 TO 9 A(I)=BBTTT(I) NEXT I REM C(1)=A(1)+A(2)+A(3) C(2)=A(4)+A(5)+A(6) C(3)=A(7)+A(8)+A(9) C(4)=A(1)+A(4)+A(7) C(5)=A(2)+A(5)+A(8) C(6)=A(3)+A(6)+A(9) C(7)=A(1)+A(5)+A(9) C(8)=A(3)+A(5)+A(7) FOR I=1 TO 8 IF C(I)=3 THEN WL=1 IF C(I)=-3 THEN WL=-1 NEXT I DUELWINNER=WL IF WL=1 AND MAXLEVEL<9 AND ILEVEL=MAXLEVEL THEN INC MAXLEVEL POKE $E000,MAXLEVEL END IF END SUB #1:MAIN PALETTES 1000303F002A15000000393F00003D3F 0000083F00000F3F00000B3F0000233F #2:MAIN CHARACTERS 00000000000000000000000000000000 000102041C34242400000103030B1B1B 00F0083C7E7E7E3C0000F0C0BCBCBCC0 000102041C34242400000103030B1B1B 00F0083C7E7E7E3C0000F0C0BCBCBCC0 000102041C34242400000103030B1B1B 00F0083C7E7E7E3C0000F0C0BCBCBCC0 000000000001003C0000000000000000 00000000A0F0E0E00000000000A04040 FFFFFFFFFFFDFDFDFFBF9F80C0F0F0F0 FFFFFFFFFFDFDFDFFFFEFC0001070707 FFFFFFFFFFFBF3F2FFFFFFFFE0E0C0C0 FFFFFFFFFF9F9F9FFFFFFFFF1F0F0707 C0000000000000000000000000000000 FFFFC381C3BDC3FF003C7EFFFFFF7E3C 00000000000000000000000000000000 0000000000000000FFFFFFFFFFFFFFFF 24241C04040407001B1B030303030000 040404F4A4A4BC00F8F8F80818180000 24241C0811120C001B1B03070E0C0000 040404F422121E00F8F8F8081C0C0000 24241C03010203001B1B030000010000 0404042890906000F8F8F8D060600000 2F241C0404040700101B030303030000 FC6404F4A4A4BC004098F80818180000 FFFFFFFFFFFFFFFFF0F8FCFCFEFEFFFF 7F7F7FFFFFFFFFFF070F1F1F3F3FFFFF FEFFFFFFFFFFFFFFE0E0E0F2F3FFFFFF 7FFFFFFFFFFFFFFF070767277FFFFFFF 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000FFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFF0C080800000001F3F7FFFFF FFFFFFFF0F030101000000F8FCFEFFFF 00000000000000000000000000000000 E0C0800000000000E0DFBF7F7F7F7F7F 070301000000000007FBFDFEFEFEFEFE 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 7EBDDBE7E7DBBD7E8142241818244281 E09887C0E0FFFFFFFFFFFF7F3F1F0000 0719E10307FFFFFFFFFFFFFEFCF80000 7EBDDBE7E7DBBD7EFFFFFFFFFFFFFFFF 000000000080C0E07F7F7F7F7FBFDFE0 0000000000010307FEFEFEFEFEFDFB07 0000000000000000FF00FF00FF00FF00 0000000000000000AAAAAAAAAAAAAAAA 00000000000000004992244992244992 00000000000000009249249249249249 7EBDDBE7E7DBBD7EFFFFFFFFFFFFFFFF 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 E0C0800000000000E0DFBF7F7F7F7F7F 070301000000000007FBFDFEFEFEFEFE E0F0FFFFFF7D1D1DE0B09F80C0701010 0307FFFFFFDFDCDC0306FC0001070404 0000003F3F7B73720000003F20604040 000000F0F89C9C9C000000F0180C0404 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 000000000080C0E07F7F7F7F7FBFDFE0 0000000000010307FEFEFEFEFEFDFB07 1F1F0F070703030010180C0406020300 7C7C78F0F0E0E000040C18103020E000 7E3F3F3F1F1F000060202032131F0000 7CFCFCFCFCE00000040464247CE00000 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 183C3C3C3C183C181824242424182418 6CFEFE7E240000006C92925A24000000 247EFF7E7EFF7E24245A815A5A815A24 083E7F7E3F7F3E080836414631413608 62F7FE7C3E7FEF4662959A742E59A946 1C3E7E7EFFFE7F3A1C224A46919A453A 183C3C78300000001824244830000000 0C1E3C78783C1E0C0C1224484824120C 30783C1E1E3C78303048241212244830 00247E7EFF7E7E2400245A6681665A24 00183C7EFF7E3C180018246681662418 000000183C3C78300000001824244830 000000007E0000000000007E817E0000 00000000183C3C180000000018242418 060F1E3C78F0E040060912244890A040 003C666E76663C003C4299918999423C 0018381818187E00182444242466817E 003C660C18307E003C429972244E817E 003C660C06663C003C4299726999423C 0066667E060606006699998179090906 007E607C06067C007E819E827979827C 001C307C66663C001C224C829999423C 007E060C183030007E81791224484830 003C663C66663C003C4299429999423C 003C663E06663C003C4299417999423C 0000183C183C18000000182418241800 0000183C183C78300000182418244830 000C1E3C783C1E0C000C12244824120C 00007EFF7EFF7E0000007E817E817E00 0030783C1E3C78300030482412244830 3C7EFF7E3C183C183C42997224182418 3C7EFFFFFFFE7E3C3C429991919E423C 00183C667E6666001824429981999966 007C667C66667C007C8299829999837C 003C666060663C003C4299969699423C 00786C66666C78007884929999928478 007E607860607E007E819E84989E817E 007E6078606060007E819E8498909060 003C606E66663C003C429E919999423C 0066667E666666006699998199999966 003C181818183C003C4224242424423C 001E060606663C001E2119096999423C 00666C78786C66006699928484929966 0060606060607C0060909090909E837E 0042667E7E66660042A5998181999966 0066767E6E6666006699898191999966 003C666666663C003C4299999999423C 007C667C606060007C8299829C909060 003C66666A6C3E003C4299999592413E 007C667C786C66007C82998284929966 003E603C06067C003E419E423979827C 007E1818181818007F81662424242418 0066666666663C00669999999999423C 00666666663C18006699999999422418 0066667E7E664200669999818199A542 00663C183C662600669942244299D966 0066663C181818006699994224242418 007E0C1830607E007E817224489E817E 003C303030303C003C424C48484C423C 006030180C0602006090482412090502 003C0C0C0C0C3C003C4232121232423C 00183C66000000001824429966000000 00000000007EFF7E00000000007E817E #3: BG PUZZLE 00001410000000000000100110011001 10012001200130013001200120011001 10011001100100010001000100000000 10012001200120012001300130013001 30013001300120012001200120011001 00010001000000001001300130013001 30013001300130013001300130013001 30013001300110010001000100001001 10013001300121012201300130012101 22013001300121012201300130011001 10010001000010012001300130013101 32013001300131013201300130013101 32013001300120011001000110111011 30013001300130013001300130013001 30013001300130013001300130013001 10111011200120013001300130013001 30013001300130013001300130013001 30013001300130012001200130013001 30013001300121012201300130012101 22013001300121012201300130013001 30013001300130013001300130013101 32013001300131013201300130013101 32013001300130013001300120112011 30013001300130013001300130013001 30013001300130013001300130013001 20112011101110113001300130013001 30013001300130013001300130013001 30013001300130011011101100011001 20113001300121012201300130012101 22013001300121012201300130012011 10010001000110011001300130013101 32013001300131013201300130013101 32013001300110011001000100010001 10113001300130013001300130013001 30013001300130013001300130011001 00010001000100011001201120112011 20113001300130013001300130012011 20112011201110010001000100010001 00011001100110111011201120113001 30012011201110111011100110010001 00010001 #4: BG TICTACTOE 000014100001420143010000E400F500 EE00E700E500EF00EE000000E400F500 E500EC00000044014501000100015201 53010000000000000000000000000000 00000000000000000000000000005401 55010001000000000000390037003700 37003700370037003700370037003700 37003700380000000000000000000000 00003600240125013301330133012401 25013301330133012401410136000000 E90000000000F0000000360034015101 3A013A013A01340151013A013A013A01 3401510136000000ED0000000000EC00 0000360033013A010000000000003301 3A0100000000000033013A0136000000 F00000000000E1000000360033013A01 00000000000033013A01000000000000 33013A0136000000EF0000000000F900 0000360033013A010000000000003301 3A0100000000000033013A0136000000 F30000000000E5000000360024012501 33013301330124012501330133013301 2401410136000000F40000000000F200 00003600340151013A013A013A013401 51013A013A013A013401510136000000 EF000000000000000000360033013A01 00000000000033013A01000000000000 33013A0136000000F200000000000000 0000360033013A010000000000003301 3A0100000000000033013A0136000000 00000000000000000000360033013A01 00000000000033013A01000000000000 33013A01360000000000000000000000 00003600240125013301330133012401 25013301330133012401410136000000 00000000000000000000360050015101 3A013A013A01500151013A013A013A01 50015101360000000000000000000000 00003800370037003700370037003700 37003700370037003700370039000000 00000000 #15:MAIN SOUND 2800303A000000001800846C003A0000 08006060000000002800303019FE0000 38002020000000003800505000000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 0800000F000000000800000F00000000 00404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 40404040404040404040404040404040 3D0F00FF00000000000000003D0F00FF 0000400F00FF0000420F00FF00000000 00000000440F00FF0000000000000000 0000000000003D0F00FF0000400F00FF 0000420F00FF0000430F00FF00000000 00000000440F00FF0000000000000000