' Coded by uncodem, levels 5,6,7,8 are from slippery.8o on https://johnearnest.github.io/Octo/ GLOBAL PX, PY, LEVEL, DX, DY, T, STEPS, KEYS, DIR, ox, oy, odx, ody GAMEPAD 1 INIT: LEVEL = 1 LOADL: T = 0 KEYS = 0 STEPS = 0 ox = 0 oy = 0 odx = 0 ody = 0 DIR = 0 CALL LOADLEVEL DX = 0 DY = 0 CALL FINDCELL(1, PX, PY) IF PX = -1 OR PY = -1 THEN GOTO INIT CELL PX,PY,0 DO INC T IF T MOD 2 = 0 THEN BG 0 CELL PX,PY,0 IF BUTTON(0,0) THEN GOTO LOADL IF DIR = 0 THEN IF UP(0) THEN DIR = 4 ELSE IF DOWN(0) THEN DIR = 3 ELSE IF LEFT(0) THEN DIR = 2 ELSE IF RIGHT(0) THEN DIR = 1 CALL CONVDIR bg 1 if dir <> 0 and cell.c(px+dx,py+dy)<>2 then inc steps bg 0 ELSE BG 1 od = dir IF CELL.C(PX+DX, PY+DY) = 2 THEN DIR = 0 END IF CALL CONVDIR ox = px oy = py ADD PX, DX ADD PY, DY C = CELL.C(PX, PY) IF C = 3 THEN DIR = 0 ELSE IF C = 4 THEN INC LEVEL GOTO LOADL ELSE IF C = 5 THEN GOTO LOADL ELSE IF C = 6 THEN DIR = 4 ELSE IF C = 7 THEN DIR = 3 ELSE IF C = 8 THEN DIR = 2 ELSE IF C = 9 THEN DIR = 1 ELSE IF C = 10 THEN DIR = 0 CELL PX, PY, 11 ELSE IF C = 11 THEN CELL PX, PY, 10 ELSE IF C = 12 THEN CELL PX, PY, 0 INC KEYS ELSE IF C = 13 THEN IF KEYS > 0 THEN DIR = 0 DEC KEYS END IF ELSE IF C = 14 THEN CALL REFLECTDIR(2) ELSE IF C = 15 THEN CALL REFLECTDIR(1) ELSE IF C = 22 THEN CALL REFLECTDIR(2) CELL PX,PY,23 ELSE IF C = 23 THEN CALL REFLECTDIR(1) CELL PX,PY,22 END IF CALL CONVDIR END IF BG 0 PAL 1 CELL PX,PY,1 TEXT 0, 14, "STEPS: " NUMBER 8,14,STEPS,3 TEXT 12, 14, "KEYS: "+STR$(KEYS) END IF WAIT VBL LOOP SUB FINDCELL(N, X, Y) X = -1 Y = -1 FOR CY = 0 TO 16 FOR CX = 0 TO 20 IF CELL.C(CX,CY)=N THEN X = CX Y = CY END IF NEXT CX NEXT CY END SUB SUB LOADLEVEL BG 1 BG SOURCE ROM(2+LEVEL) BG COPY 0,0,20,16 TO 0,0 END SUB SUB CONVDIR IF DIR = 0 THEN DX = 0 DY = 0 ELSE IF DIR = 1 THEN DX = 1 DY = 0 ELSE IF DIR = 2 THEN DX = -1 DY = 0 ELSE IF DIR = 3 THEN DX = 0 DY = 1 ELSE IF DIR = 4 THEN DX = 0 DY = -1 END IF END SUB SUB REFLECTDIR(D) IF D = 1 THEN ' / IF DIR = 4 THEN DIR = 1 ELSE IF DIR = 3 THEN DIR = 2 ELSE IF DIR = 2 THEN DIR = 3 ELSE IF DIR = 1 THEN DIR = 4 ELSE IF D = 2 THEN ' \ IF DIR = 4 THEN DIR = 2 ELSE IF DIR = 3 THEN DIR = 1 ELSE IF DIR = 2 THEN DIR = 4 ELSE IF DIR = 1 THEN DIR = 3 END IF CALL CONVDIR END SUB #1:MAIN PALETTES 0008182D00152A3F003C0C00003F3C00 003F2A15003F2A15003F2A15003F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 18180081810024241818669999182424 EFEFEF00FBFBFB00C7C700EFF1F100FB A500A50000A500A50042000000004200 FFFFC3C3C3C3FFFFFF81BDA5A5BD81FF 7EFFFFFF7E2424247E9999FF7E3C3C3C FFFFFFFFFFFFFFFF44AA0044AA0044AA FFFFFFFFFFFFFFFF5522005522005522 FFFFFFFFFFFFFFFF0049924900499249 FFFFFFFFFFFFFFFF9249920092499200 00003C3C7E427E7E00003C3C3C3C0000 000000007E7E7E7E000000003C3C0000 0000E0A0BFE000000000E0ABBFE00000 001824243C34343C000000003C3C3C3C 80402010080402018040201008040201 01020408102040800102040810204080 00000000000000000000000000000000 7E6161617E6060604040404040404040 7E6161617E6462614040404040584442 7F60607E6060607F4040404040404040 7F40407F0101017F4040404000000040 0004067E7E0604000000000101000000 804020000004020180403C24243C0201 010204081020408001021C3C3C384080 3C6262626262623C2040404040404020 3C6260606060623C2040404040404020 7E181818181818180010101010101010 #3:TITLE SCREEN 00001410000002000200020000000200 00000000000002000000020002000200 00000000020002000200000000000200 00000000000002000000000000000000 00000200000000000200000002000000 00000000000002000200020000000200 00000000000002000000020000000000 02000000020002000000000000000000 00000200000002000000000000000200 00000200000000000200000002000000 00000000000002000200020000000200 02000200000002000000020002000200 00000000020002000200000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000002000200020002000200 02000200020002000200020002000200 02000200020002000200000000000200 01000000110012001300140014000000 15000000000000000000000000000401 02000000000002000200020002000200 02000200020002000200020002000200 02000200020002000200000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000 #4:LEVEL ONE 00001410020002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000000 04010200000000000000000000000000 00000000000000000200000000000000 00000200020000000200020000000000 00000000000000000000000000000000 02000000000000000000020002000000 02000100000000000000000000000000 00000000000000000000000000000000 00000200020000000200000000000000 00000000000000000000000000000000 00000000000000000000020002000000 02000000000000000000000000000000 00000000000000000000000000000000 00000200020000000200020000000000 00000000000000000000000000000000 00000300020002000200020002000000 00000000000000000000000000000000 00000000000000000000000003000000 00000200020000000000000000000000 00000000000000000000000000000000 00000000000000000000020002000000 00000000000000000000000000000000 00000000000000000000000000000000 00000200020000000200000000000000 00000000000000000000000000000000 00000000000000000000020002000000 02000000000000000000000000000000 00000000000000000000000000000000 00000200020000000200000000000000 00000000000000000000000000000000 00000000000000000000020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000 #5:LEVEL TWO 00001410020002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000300 03000300030003000300030003000300 03000300030003000300030003000300 03000200020003000300030003000300 03000300030003000300030003000300 03000300030003000300020002000300 01000300030003000300030003000300 03000300030003000300030003000300 03000200020003000300030003000300 03000300030003000300030003000300 03000300030003000300020002000300 03000300030003000300030003000300 03000300030003000300030003000300 03000200020003000300030003000300 03000300030003000300030003000300 03000300030003000300020002000300 03000300030003000300030003000300 03000300030004010300030003000300 03000200020003000300030003000300 03000300030003000300030003000300 03000300030003000300020002000300 03000300030003000300030003000300 03000300030003000300030003000300 03000200020003000300030003000300 03000300030003000300030003000300 03000300030003000300020002000300 03000300030003000300030003000300 03000300030003000300030003000300 03000200020003000300030003000300 03000300030003000300030003000300 03000300030003000300020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000 #6:LEVEL THREE 00001410000005010200020002000200 02000200020002000200020002000200 02000200020002000200020000000501 02000000000002000000000000000000 00000000000000000000000000000200 04010000000005010200000000000200 00000000000000000000000000000000 00000000000002000000000000000501 02000000000000000000000000000000 00000000000000000000000000000200 00000000000005010200000000000000 00000000000000000000000000000000 00000000000002000000000000000501 02000000000000000000000000000000 00000000000000000000000000000200 00000000000005010200000000000000 00000000010000000200000000000000 00000000000002000000000000000501 02000200020002000000000000000000 02000000000000000000000000000200 00000000000005010200000000000000 00000000000000000200000000000000 00000000020002000000000000000501 02000000000000000000020000000000 00000000000000000000000000000200 00000000000005010200020002000200 00000200000000000000020002000200 00000000000002000000000000000501 02000000000000000000020000000000 00000000000000000000000000000200 0000000000000501020000000C010000 00000200000000000000000000000000 00000000000000000D01000000000501 02000200020002000200020002000200 02000200020002000200020002000200 02000200000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000 #7:LEVEL FOUR 00001410020002000200020002000200 02000200020002000200070007000200 02000200020002000200020002000000 000005010D010B010800080008000800 080008000D0100000000000000000000 0C010200020002000200020004010000 0200060002000200020000000C010000 00000000000000000000020002000000 00000100020000000200060000000000 00000000000000000000000000000000 00000200020000000000000002000000 02000200020000000000000000000000 00000000000000000200020002000000 00000000000000000000000002000000 00000000000000000000000000000000 00000200020000000000000000000000 00000000020000000000000000000000 00000000000000000000020002000200 02000200000000000000000002000000 00000000000000000000000000000000 00000200020000000000000000000000 00000000020000000000000000000000 00000000000000000000020002000000 00000000000000000000020002000000 00000000000000000000000000000000 00000200020000000000000000000000 00000000000000000000000000000000 00000000000000000000020002000000 00000900090009000900090009000900 09000900070000000000000000000000 00000200020000000000060000000000 00000000000000000000000007000000 00000000000000000000020002000200 02000200020002000200020002000200 02000200070002000200020002000200 02000200000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000 #8:LEVEL FIVE OCTO TWO 00001410020002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000000 00000000000002000200020002000200 02000401040102000200020002000200 02000200020000000000000000000200 02000200020002000200040104010200 02000200020002000200020002000000 00000200020000000000000000000200 02000000000002000200000000000000 00000200020000000000020002000000 00000000000002000200000000000200 02000000000000000000020002000001 00000000000000000000000000000000 00000000000000000000000000000000 000002000200180119011A0118010000 00000000000000000000000000000000 00000000000000000000020002000000 00000000000000000000000000000000 00000000000000000000000000000000 00000200020000000000000000000000 00000000000000000000000000000000 00000000000000000000020002000000 00000000000000000000000000000000 00000000000000000000000000000000 00000200020000000000000000000000 00000000000000000000000000000000 00000000000000000000020002000000 00000000000000000000020002000200 02000000000000000000000000000200 02000200020001000000000000000000 00000200020002000200000000000000 00000000000002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000 #9:LEVEL SIX OCTO 3 00001410020002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200020002000200020000000000 00000000020002000200020002000200 02000200020002000200020002000200 02000200000000000000000002000200 02000200020002000200020002000200 00000000000000000000000000000000 00000000020002000200000000000000 00000200020002000000180119011A01 18010000000000000000000002000200 02000000000000000000020002000200 00000000000000000000000000000000 00000000000000000000000000000000 00000200020002000000000001000000 000000000F0100000000000000000000 00000000040104010000020002000200 00000000000000000000000000010000 00000000000000000000000004010401 00000200020002000000000000000000 00000000000000000000000000000000 00000000000000000000020002000200 00000000000000000000000000000000 00000000020002000200000000000000 00000200020002000200020002000200 02000200000000000000000002000200 02000000000000000000020002000200 02000200020002000200020000000000 00000000020002000200020002000200 02000200020002000200020002000200 02000200000000000000000002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000 #10:LEVEL SEVEN OCTO EIGHT 00001410020002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200020002000200020000000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200000002000200020002000200 02000200020002000200020000000200 02000200020002000200020000000200 02000200020002000200020002000200 02000200000000000000000000000000 00000000160100000000040102000200 02000200020002000200020000001801 19011A01180100000000000000000200 02000200020002000200020002000200 02000200000000000000000000000000 00000000000002000200020002000200 02000200020002000100000017010000 00000000000000000000000000000200 02000200020002000200020002000200 02000200000002000200020002000200 02000200000002000200020002000200 02000200020002000200020000000200 02000200020002000200020000000200 02000200020002000200020002000200 02000200000002000200020002000200 02000200000002000200020002000200 02000200020002000200020000000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200000002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000 #11:LEVEL EIGHT OCTO 10/A 00001410020002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200020002000000000000000000 00000000020003010301030103010301 03010301000000000200020002000200 0000180119011A011801000002000000 00000000000000000000000000000100 02000200020002000501000000000000 00000000000016011701170117011601 17011701020002000200020002000200 02000501000000000000000000000000 00001701170100001601000000000000 02000200020002000200020000000000 00000000000000000000000000000000 00000000000000000200020002000200 04010000000000000000000000000F01 0E010F010E010F010E010F0100000000 02000200020002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200020002000200020002000200 02000200000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000