;###############################################
;upper two bits
;0 = wait
;1 = command
;2 = block
;3 = spike
;objects
;ttthhhhh
;
;100 = spike
;101 = spikex
;110 = block
;
;hhhhh = height in whole blocks
;commands
;01cccccc
;
;0 = winning!
;1 = toggle dark
;2 = flip screen
;3 = invert screen
;4 = falling
;5 = rising
;6 = mirror
cWinning equ 0
cToggleDark equ 1
cFlipScreen equ 2
cInvertScreen equ 3
cFalling equ 4
cRising equ 5
cMirrorScreen equ 6
#define wait(xxx) .db xxx
#define command(xxx) .db $40 + xxx
#define commandWait(xxx, dl) .db $40 + xxx, dl
#define blockSingle(h1) .db $C0 + h1
#define block(h1,dl) .db $C0 + h1, dl
#define spikeSingle(h1) .db $80 + h1
#define spike(h1,dl) .db $80 + h1, dl
#define double(h1,dl) .db $80 + h1, 3, $80 + h1, dl
#define triple(h1,dl) .db $80 + h1, 3, $80 + h1, 3, $80 + h1, dl
#define quad(h1,dl) .db $80 + h1, 3, $80 + h1, 3, $80 + h1, 3, $80 + h1, dl
#define quint(h1,dl) .db $80 + h1, 3, $80 + h1, 3, $80 + h1, 3, $80 + h1, 3, $80 + h1, dl
#define spikexSingle(h1) .db $A0 + h1
#define spikex(h1,dl) .db $A0 + h1, dl
#define doublex(h1,dl) .db $A0 + h1, 3, $A0 + h1, dl
#define triplex(h1,dl) .db $A0 + h1, 3, $A0 + h1, 3, $A0 + h1, dl
#define quadx(h1,dl) .db $A0 + h1, 3, $A0 + h1, 3, $A0 + h1, 3, $A0 + h1, dl
;jump distances
;+2 3*3 9
;+1 4*3 12
;0 4*3+2 14
;-1 5*3 15
;-2 5*3+1 16
;fall distances
;-1 3*3 9
fireAuraHax:
command(cFlipScreen)
command(cMirrorScreen)
command(cRising)
command(cFalling)
fireAura:
spike(0, 17*3)
double(0, 16*3)
block(0, 1*3)
commandWait(cToggleDark, 3*3 + 1)
blockSingle(0)
commandWait(cToggleDark, 17*3)
double(0, 18*3)
spike(0, 8*3)
double(0, 5*3)
spike(0, 7*3)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 4*3)
block(2, 5*3)
block(1, 5*3)
blockSingle(0)
commandWait(cToggleDark, 8*3)
spike(0, 18*3)
spike(0, 16*3)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 2*3 + 1)
blockSingle(1)
spike(2, 2*3 + 1)
block(1, 5*3)
blockSingle(0)
commandWait(cToggleDark, 5*3)
spike(0, 12*3)
spike(0, 10*3)
spike(0, 7*3)
spike(0, 9*3)
spike(0, 7*3)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 4*3)
block(2, 4*3)
block(3, 4*3)
block(4, 1*3)
block(4, 1*3)
block(4, 1*3)
block(4, 1*3)
block(4, 1*3)
block(4, 1*3)
block(4, 1*3)
block(4, 1*3)
block(4, 1*3)
block(4, 1*3)
block(4, 1*3)
blockSingle(4)
spike(5, 2*3 + 1)
block(5, 1*3)
block(5, 1*3)
block(5, 1*3)
block(5, 1*3)
blockSingle(5)
spike(6, 1*3)
block(5, 1*3)
block(5, 1*3)
block(5, 1*3)
block(5, 1*3)
blockSingle(5)
spike(6, 1*3)
block(5, 1*3)
block(5, 1*3)
block(5, 3*3)
block(4, 1*3)
blockSingle(6)
spike(7, 2*3)
block(3, 3*3)
block(2, 3*3)
block(1, 3*3)
block(0, 4*3)
block(1, 4*3)
block(2, 4*3)
block(3, 4*3)
block(4, 4*3)
block(5, 4*3)
block(6, 4*3)
block(7, 4*3)
block(8, 4*3)
block(9, 4*3)
block(10, 4*3)
block(11, 4*3)
block(12, 3*3)
block(11, 3*3 + 2)
block(12, 1*3)
blockSingle(12)
spike(13, 1*3)
blockSingle(12)
spike(13, 1*3)
blockSingle(12)
spike(13, 1*3)
block(12, 5*3)
block(11, 5*3)
block(11, 1*3)
block(11, 1*3)
block(11, 4*3)
block(12, 4*3)
block(13, 4*3)
block(14, 5*3)
block(13, 3*3)
block(12, 1*3)
block(12, 1*3)
blockSingle(12)
spike(13, 1*3)
block(12, 1*3)
block(12, 1*3)
block(12, 1*3)
block(12, 1*3)
block(12, 1*3)
blockSingle(11)
spikex(12, 1*3)
blockSingle(11)
spikex(12, 1*3)
blockSingle(11)
spikex(12, 1*3)
block(11, 1*3)
block(11, 1*3)
block(11, 1*3)
block(11, 1*3)
block(11, 1*3)
block(11, 1*3)
block(11, 5*3)
block(10, 5*3)
block(9, 5*3)
block(8, 5*3)
block(7, 5*3)
block(6, 5*3)
block(5, 5*3)
block(4, 5*3)
block(3, 5*3)
block(2, 5*3)
block(1, 5*3)
blockSingle(0)
commandWait(cToggleDark, 5*3)
spike(0, 7*3)
double(0, 9*3)
triple(0, 10*3)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 4*3)
block(2, 4*3)
block(3, 4*3)
block(4, 3*3)
block(3, 4*3)
block(4, 4*3 + 2)
block(4, 3*3)
block(3, 4*3)
block(4, 5*3)
block(3, 4*3)
block(4, 3*3)
block(3, 4*3)
block(4, 4*3 + 2)
block(4, 4*3 + 2)
block(4, 4*3 + 2)
block(4, 5*3)
block(3, 4*3)
block(4, 3*3)
block(3, 4*3)
block(4, 4*3)
block(5, 3*3)
block(4, 1*3)
blockSingle(6)
spike(7, 2*3)
block(3, 3*3)
block(2, 5*3 + 1)
block(0, 4*3 + 2)
block(0, 4*3)
block(1, 4*3)
block(2, 4*3)
block(3, 2*3)
blockSingle(3)
spike(4, 2*3)
block(4, 1*3)
commandWait(cToggleDark, 3*3)
spike(0, 6*3)
spike(0, 8*3)
triple(0, 7*3)
double(0, 6*3)
spike(0, 7*3)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 4*3)
block(2, 4*3)
block(3, 4*3)
block(4, 4*3)
block(5, 4*3)
block(6, 4*3)
block(7, 4*3)
block(8, 4*3)
block(9, 4*3)
block(10, 4*3)
block(11, 4*3)
block(12, 4*3)
block(13, 4*3)
block(14, 4*3)
block(15, 4*3)
block(16, 4*3)
block(17, 4*3)
block(18, 4*3)
block(19, 4*3)
block(20, 4*3)
block(21, 4*3)
block(22, 4*3)
block(23, 3*3 + 2)
blockSingle(24)
spike(25, 3*3)
block(5, 1*3)
block(5, 6*3)
commandWait(cToggleDark, 3*3)
spike(0, 5*3)
spike(0, 11*3)
spike(0, 7*3)
double(0, 4*3)
doublex(0, 1*3)
block(0, 1*3)
doublex(0, 7*3)
block(0, 1*3)
quadx(0, 9*3)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 4*3)
block(2, 1*3)
block(2, 1*3)
block(2, 1*3)
block(2, 1*3)
blockSingle(2)
spike(3, 3*3)
block(3, 3*3)
block(2, 5*3)
block(1, 3*3)
blockSingle(0)
commandWait(cToggleDark, 1*3)
quadx(0, 7*3)
spike(0, 10*3)
triple(0, 2*3 + 2)
triple(0, 5*3 + 2)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 4*3)
block(2, 4*3)
blockSingle(3)
blockSingle(0)
spike(1, 4*3)
blockSingle(4)
blockSingle(1)
spike(2, 4*3)
blockSingle(5)
blockSingle(2)
spike(3, 4*3)
blockSingle(6)
blockSingle(3)
spike(4, 4*3)
blockSingle(7)
blockSingle(4)
spike(5, 4*3)
blockSingle(8)
blockSingle(5)
spike(6, 3*3)
blockSingle(7)
blockSingle(10)
spike(11, 3*3)
blockSingle(6)
blockSingle(11)
spike(12, 5*3)
blockSingle(5)
blockSingle(9)
spike(10, 5*3)
blockSingle(4)
blockSingle(8)
spike(9, 4*3 + 2)
blockSingle(4)
blockSingle(8)
spike(9, 4*3)
blockSingle(5)
blockSingle(2)
spike(3, 4*3)
blockSingle(6)
blockSingle(3)
spike(4, 4*3)
blockSingle(7)
blockSingle(4)
spike(5, 4*3)
blockSingle(8)
blockSingle(5)
spike(6, 4*3)
blockSingle(9)
blockSingle(6)
spike(7, 1*3)
blockSingle(9)
spike(10, 1*3)
blockSingle(8)
spike(9, 1*3)
blockSingle(7)
spike(8, 1*3)
blockSingle(5)
spike(6, 1*3)
blockSingle(3)
spike(4, 1*3)
blockSingle(0)
spikeSingle(1)
commandWait(cToggleDark, 9*3)
spike(0, 6*3)
double(0, 7*3)
triple(0, 7*3)
double(0, 8*3)
spike(0, 6*3)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 4*3)
block(2, 4*3)
block(3, 4*3)
block(4, 4*3)
block(5, 4*3)
blockSingle(6)
commandWait(cWinning, 4*3)
block(7, 4*3)
block(8, 4*3)
block(9, 4*3)
block(10, 4*3)
block(11, 4*3)
block(12, 4*3)
block(13, 4*3)
block(14, 4*3)
block(15, 4*3)
block(16, 4*3)
block(17, 4*3)
blockSingle(18)
commandWait(cToggleDark, 16*3 + 2)
xboxLevelHax:
command(cFlipScreen)
command(cMirrorScreen)
command(cRising)
command(cFalling)
xboxLevel:
spike(0, 9*3)
spike(0, 8*3)
double(0, 15*3)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
blockSingle(1)
commandWait(cToggleDark, 8*3)
double(0, 14*3)
spike(0, 16*3)
spike(0, 8*3)
spike(0, 5*3)
double(0, 7*3)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 4*3)
block(2, 5*3)
block(1, 5*3)
blockSingle(0)
commandWait(cToggleDark, 8*3)
spike(0, 17*3)
spike(0, 10*3)
block(0, 1*3)
triplex(0, 7*3)
spikex(0, 1*3)
block(0, 1*3 + 1)
spikex(0, 6*3)
spike(0, 18*3)
block(0, 4*3)
block(1, 1*3)
blockSingle(1)
spike(2, 5*3)
double(0, 6*3)
spike(0, 9*3)
spike(0, 7*3)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 4*3)
block(2, 4*3)
block(3, 1*3)
block(3, 1*3)
block(3, 1*3)
block(3, 1*3)
block(3, 1*3)
block(3, 1*3)
block(3, 1*3)
block(3, 1*3)
block(3, 1*3)
block(3, 1*3)
block(3, 4*3)
block(4, 5*3)
block(3, 5*3)
block(2, 3*3)
block(1, 1*3)
blockSingle(3)
spike(4, 2*3)
block(0, 4*3 + 2)
block(0, 4*3)
block(1, 4*3)
block(2, 4*3)
block(3, 4*3)
block(4, 4*3)
block(5, 3*3)
block(4, 1*3)
block(6, 2*3)
block(3, 2*3)
block(7, 1*3)
block(2, 3*3)
blockSingle(1)
block(8, 3*3)
block(0, 1*3)
spikexSingle(0)
block(9, 1*3)
triplex(0, 1*3)
block(10, 4*3)
block(11, 4*3)
block(12, 4*3)
block(13, 4*3)
block(14, 4*3)
block(15, 4*3)
block(16, 4*3)
block(17, 4*3)
block(18, 4*3)
block(19, 4*3)
block(20, 4*3)
block(21, 5*3 + 1)
block(20, 1*3)
blockSingle(20)
spike(21, 1*3)
blockSingle(20)
spike(21, 3*3)
block(19, 5*3)
block(18, 5*3)
block(17, 1*3)
blockSingle(17)
spike(18, 4*3)
block(16, 5*3)
block(15, 1*3)
block(15, 1*3)
block(15, 1*3)
block(15, 1*3)
blockSingle(15)
spike(16, 1*3)
block(15, 1*3)
block(15, 1*3)
block(15, 1*3)
block(15, 1*3)
blockSingle(15)
spike(16, 1*3)
block(15, 1*3)
block(15, 1*3)
block(15, 1*3)
block(15, 1*3)
blockSingle(15)
spike(16, 3*3)
block(14, 5*3)
block(13, 5*3)
block(12, 5*3)
block(11, 5*3)
block(10, 5*3)
block(9, 5*3)
block(8, 5*3)
block(7, 5*3)
block(6, 5*3)
block(5, 5*3)
block(4, 5*3)
block(3, 5*3)
block(2, 5*3)
block(1, 5*3)
blockSingle(0)
commandWait(cToggleDark, 6*3)
spike(0, 7*3)
triple(0, 9*3)
spike(0, 7*3)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 4*3)
block(2, 4*3)
block(3, 4*3)
block(4, 4*3)
block(5, 6*3)
block(1, 3*3)
commandWait(cToggleDark, 4*3)
spike(0, 6*3)
spike(0, 6*3)
spike(0, 5*3)
spike(0, 6*3)
double(0, 4*3)
double(0, 7*3)
triple(0, 6*3)
block(0, 1*3)
quadx(0, 8*3)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 4*3)
block(2, 4*3)
block(3, 4*3)
block(4, 4*3)
block(5, 4*3)
block(6, 4*3)
block(7, 4*3)
block(8, 4*3)
block(9, 3*3)
block(8, 4*3 + 2)
block(8, 4*3)
block(9, 4*3)
block(10, 4*3)
block(11, 4*3)
block(12, 6*3)
block(8, 4*3)
block(9, 4*3)
block(10, 4*3)
block(11, 4*3)
block(12, 4*3)
block(13, 4*3)
block(14, 4*3)
block(15, 4*3)
block(16, 3*3)
block(15, 4*3)
block(16, 3*3)
block(15, 4*3)
block(16, 4*3)
block(17, 4*3)
block(18, 5*3)
block(17, 4*3)
block(18, 4*3)
block(19, 4*3)
block(20, 8*3)
block(2, 1*3)
block(2, 3*3)
commandWait(cToggleDark, 9*3)
double(0, 8*3)
double(0, 4*3)
double(0, 7*3)
double(0, 4*3)
double(0, 9*3)
triple(0, 2*3 + 2)
triple(0, 4*3)
spike(0, 4*3)
double(0, 1*3)
block(0, 1*3)
commandWait(cToggleDark, 4*3)
block(1, 3*3)
blockSingle(0)
commandWait(cToggleDark, 1*3)
quadx(0, 4*3)
spike(0, 5*3)
spike(0, 10*3)
spike(0, 5*3)
spike(0, 5*3)
spike(0, 12*3)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 4*3)
block(2, 3*3)
block(1, 4*3)
block(2, 3*3)
block(1, 4*3)
block(2, 5*3)
block(1, 4*3)
block(2, 3*3)
block(1, 4*3)
block(2, 5*3)
block(1, 4*3)
block(2, 5*3)
block(1, 4*3)
block(2, 3*3)
block(1, 5*3)
blockSingle(0)
commandWait(cToggleDark, 9*3)
spike(0, 7*3)
double(0, 7*3)
triple(0, 7*3)
double(0, 7*3)
spike(0, 11*3)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 4*3)
block(2, 4*3)
block(3, 4*3)
block(4, 4*3)
block(5, 4*3)
blockSingle(6)
commandWait(cWinning, 4*3)
block(7, 4*3)
block(8, 4*3)
block(9, 4*3)
block(10, 4*3)
block(11, 4*3)
block(12, 4*3)
block(13, 4*3)
block(14, 4*3)
block(15, 4*3)
block(16, 4*3)
block(17, 4*3)
blockSingle(18)
commandWait(cToggleDark, 16*3 + 2)
chaozFantasy:
spike(0, 5*3 + 1)
spike(0, 6*3 + 2)
double(0, 6*3)
spike(0, 6*3)
block(0, 1*3)
block(0, 1*3)
doublex(0, 5*3)
spike(0, 5*3)
spike(0, 6*3 + 2)
double(0, 6*3)
spike(0, 4*3)
double(0, 3*3 + 2)
double(0, 4*3 + 2)
spike(0, 5*3)
spike(0, 6*3 + 2)
double(0, 6*3)
spike(0, 6*3)
block(0, 1*3)
triplex(0, 5*3)
spike(0, 5*3 + 1)
spike(0, 6*3 + 2)
double(0, 8*3 + 1)
spike(0, 4*3 + 1)
spike(0, 1*3 + 1)
spike(0, 6*3)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 4*3)
block(2, 3*3)
block(1, 4*3)
block(2, 3*3)
block(1, 5*3)
blockSingle(0)
commandWait(cToggleDark, 1*3)
blockSingle(0)
spike(1, 1*3)
blockSingle(0)
spike(1, 2*3 + 2)
block(0, 1*3 + 2)
blockSingle(0)
spike(1, 1*3)
blockSingle(0)
spike(1, 6*3 + 2)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 3*3)
block(0, 4*3 + 2)
block(0, 4*3 + 2)
block(0, 4*3)
block(1, 4*3)
block(2, 1*3)
block(2, 1*3)
blockSingle(2)
spike(3, 1*3)
blockSingle(2)
spike(3, 1*3)
blockSingle(1)
spikex(2, 2*3)
block(1, 1*3)
block(1, 1*3)
block(1, 1*3)
block(1, 4*3)
block(2, 1*3)
block(2, 1*3)
block(2, 1*3)
block(2, 1*3)
block(2, 3*3)
block(1, 4*3)
block(2, 4*3 + 2)
block(2, 3*3)
block(1, 1*3)
blockSingle(1)
spike(2, 1*3)
blockSingle(1)
spike(2, 1*3)
blockSingle(1)
spike(2, 1*3)
block(1, 5*3)
blockSingle(0)
commandWait(cToggleDark, 7*3 + 1)
spike(0, 9*3 + 1)
spike(0, 6*3)
spike(0, 21*3)
commandWait(cFlipScreen, 2*3)
spike(0, 11*3 + 2)
double(0, 13*3)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 5*3)
blockSingle(0)
commandWait(cToggleDark, 5*3 + 2)
spike(0, 7*3)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 3*3)
blockSingle(0)
commandWait(cToggleDark, 1*3)
triplex(0, 6*3 + 2)
double(0, 6*3)
spike(0, 4*3 + 2)
spike(0, 5*3 + 2)
spike(0, 1*3 + 1)
block(0, 2*3 + 1)
spike(0, 2*3 + 1)
block(0, 1*3 + 1)
spike(0, 8*3 + 1)
block(0, 1*3)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 1*3)
block(1, 4*3)
block(2, 1*3)
block(2, 5*3)
block(1, 1*3)
block(1, 4*3)
block(2, 1*3)
block(2, 3*3)
block(1, 1*3)
block(1, 4*3 + 2)
block(1, 1*3)
blockSingle(1)
commandWait(cToggleDark, 1*3)
quad(0, 6*3)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 4*3)
block(2, 3*3)
block(1, 4*3)
block(2, 5*3)
block(1, 4*3)
block(2, 5*3)
block(1, 4*3)
block(2, 3*3)
block(1, 4*3)
block(2, 3*3)
block(1, 4*3)
block(2, 3*3)
block(1, 4*3)
block(2, 3*3)
block(1, 4*3)
block(2, 5*3)
block(1, 4*3)
block(2, 3*3)
block(1, 4*3)
block(2, 4*3 + 2)
block(2, 3*3)
block(1, 1*3)
blockSingle(1)
spike(2, 1*3)
blockSingle(1)
spike(2, 3*3)
blockSingle(0)
commandWait(cToggleDark, 1*3)
block(0, 1*3)
block(0, 1*3)
quadx(0, 2*3 + 2)
triplex(0, 8*3 + 2)
spike(0, 6*3)
spike(0, 21*3)
commandWait(cFlipScreen, 3*3)
spike(0, 3*3 + 1)
spike(0, 8*3)
block(0, 1*3)
block(0, 1*3)
blockSingle(0)
spike(1, 1*3)
commandWait(cToggleDark, 2*3)
block(1, 4*3 + 2)
block(1, 1*3 + 1)
commandWait(cToggleDark, 3*3 + 1)
spike(0, 1*3 + 2)
block(1, 10*3)
spike(0, 9*3 + 1)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 1*3)
block(1, 1*3)
blockSingle(1)
spike(2, 1*3)
blockSingle(1)
spike(2, 1*3)
blockSingle(1)
spike(2, 1*3)
block(1, 3*3)
blockSingle(0)
commandWait(cToggleDark, 1*3)
triplex(0, 9*3 + 1)
double(0, 8*3 + 1)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 3*3)
block(0, 4*3 + 2)
blockSingle(0)
commandWait(cToggleDark, 5*3)
triple(0, 8*3)
spike(0, 21*3)
wait(2*3 + 1)
commandWait(cFlipScreen, 4*3)
spike(0, 9*3 + 1)
double(0, 8*3 + 1)
triple(0, 2*3 + 2)
triple(0, 2*3 + 2)
triple(0, 2*3 + 2)
triple(0, 2*3 + 2)
triple(0, 8*3 + 1)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 4*3 + 2)
block(1, 4*3)
block(2, 3*3)
block(1, 4*3)
block(2, 1*3)
block(2, 1*3)
blockSingle(2)
spike(3, 1*3)
blockSingle(2)
spike(3, 1*3)
blockSingle(2)
spike(3, 1*3)
block(2, 3*3)
block(1, 4*3 + 2)
block(1, 4*3)
block(2, 4*3 + 2)
block(2, 5*3)
block(1, 3*3)
blockSingle(0)
commandWait(cToggleDark, 4*3 + 1)
spike(0, 2*3 + 1)
block(1, 3*3)
block(0, 1*3)
triplex(0, 1*3)
block(0, 21*3)
commandWait(cFlipScreen, 10*3)
spike(0, 9*3 + 1)
spike(0, 16*3 + 2)
triple(0, 7*3 + 1)
spike(0, 7*3)
double(0, 10*3 + 2)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 1*3)
block(1, 1*3)
block(1, 1*3)
blockSingle(1)
spike(2, 1*3)
blockSingle(1)
spike(2, 1*3)
blockSingle(1)
spike(2, 1*3)
commandWait(cToggleDark, 2*3 + 1)
triple(0, 7*3 + 1)
spike(0, 1*3 + 1)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 1*3)
block(1, 1*3)
block(1, 4*3)
block(2, 3*3)
block(1, 4*3 + 2)
block(1, 4*3)
block(2, 3*3)
block(1, 1*3)
block(1, 1*3)
blockSingle(1)
spike(2, 1*3)
blockSingle(1)
spike(2, 1*3)
blockSingle(1)
spike(2, 1*3)
block(1, 5*3)
blockSingle(0)
commandWait(cToggleDark, 6*3 + 2)
spike(0, 14*3 + 1)
double(0, 11*3 + 1)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 4*3)
block(2, 4*3)
block(3, 4*3)
block(4, 4*3)
block(5, 4*3)
blockSingle(6)
commandWait(cWinning, 4*3)
block(7, 4*3)
block(8, 4*3)
block(9, 4*3)
block(10, 4*3)
block(11, 4*3)
block(12, 4*3)
block(13, 4*3)
block(14, 4*3)
block(15, 4*3)
block(16, 4*3)
block(17, 4*3)
blockSingle(18)
commandWait(cToggleDark, 16*3 + 2)
heaven:
spike(0, 7*3)
spike(0, 9*3 + 1)
spike(0, 9*3 + 1)
spike(0, 9*3 + 1)
spike(0, 8*3 + 1)
spike(0, 10*3 + 2)
spike(0, 8*3 + 2)
block(0, 1*3)
blockSingle(0)
spike(1, 1*3)
blockSingle(0)
spike(1, 7*3 + 2)
spike(0, 7*3 + 1)
spike(0, 9*3 + 2)
spike(0, 9*3 + 1)
spike(0, 9*3 + 1)
spike(0, 8*3 + 1)
spike(0, 10*3 + 2)
spike(0, 7*3)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
blockSingle(0)
blockSingle(1)
commandWait(cToggleDark, 1*3)
triplex(0, 5*3 + 1)
spike(0, 7*3)
spike(0, 8*3 + 2)
spike(0, 9*3 + 2)
spike(0, 9*3 + 2)
spike(0, 8*3 + 2)
spike(0, 11*3)
spike(0, 6*3)
block(0, 3*3 + 2)
blockSingle(1)
spike(2, 4*3)
spike(0, 6*3 + 1)
spike(0, 6*3 + 1)
double(0, 10*3)
spike(0, 8*3)
block(0, 1*3)
blockSingle(0)
spike(1, 1*3)
blockSingle(0)
spike(1, 1*3)
block(0, 9*3 + 1)
spike(0, 7*3)
double(0, 3*3 + 1)
double(0, 5*3 + 2)
spike(0, 9*3 + 1)
double(0, 16*3 + 2)
commandWait(cInvertScreen, 21*3)
commandWait(cFalling, 8*3 + 1)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 4*3)
blockSingle(2)
commandWait(cInvertScreen, 4*3)
block(3, 4*3)
block(4, 3*3)
block(3, 4*3)
block(4, 4*3)
block(5, 1*3)
block(5, 1*3)
block(5, 4*3)
block(6, 5*3)
block(5, 4*3 + 1)
block(6, 1*3)
block(6, 1*3)
blockSingle(6)
spike(7, 1*3)
blockSingle(6)
spike(7, 1*3)
block(6, 3*3)
block(5, 4*3)
block(6, 1*3)
block(6, 1*3)
blockSingle(6)
spike(7, 1*3)
blockSingle(6)
spike(7, 1*3)
blockSingle(6)
spike(7, 1*3 + 1)
block(6, 1*3 + 1)
blockSingle(6)
spike(7, 1*3)
blockSingle(6)
spike(7, 1*3)
blockSingle(6)
spike(7, 1*3 + 1)
block(6, 1*3 + 1)
blockSingle(6)
spike(7, 1*3)
blockSingle(6)
spike(7, 1*3)
blockSingle(6)
spike(7, 1*3)
block(6, 3*3)
block(5, 4*3)
block(6, 4*3)
block(7, 4*3)
block(8, 2*3 + 2)
block(7, 1*3)
blockSingle(7)
spike(8, 1*3)
blockSingle(7)
spike(8, 1*3)
blockSingle(7)
spike(8, 1*3)
block(7, 4*3)
block(8, 4*3)
block(9, 1*3)
block(9, 1*3)
blockSingle(9)
spike(10, 1*3)
blockSingle(9)
spike(10, 1*3)
blockSingle(9)
spike(10, 1*3)
block(9, 4*3)
block(10, 1*3)
block(10, 1*3)
blockSingle(10)
spike(11, 1*3)
blockSingle(10)
spike(11, 1*3)
blockSingle(10)
spike(11, 1*3)
block(10, 4*3)
block(11, 1*3)
block(11, 1*3)
blockSingle(11)
spike(12, 1*3)
blockSingle(11)
spike(12, 1*3)
blockSingle(11)
spike(12, 1*3)
block(11, 4*3)
block(12, 3*3)
block(11, 4*3)
block(12, 5*3)
block(11, 4*3)
block(12, 4*3)
block(13, 4*3)
block(14, 1*3)
block(14, 1*3)
block(14, 1*3)
blockSingle(14)
spike(15, 1*3)
blockSingle(14)
spike(15, 1*3)
block(14, 1*3)
block(14, 1*3)
blockSingle(14)
spike(15, 4*3)
block(13, 4*3)
block(14, 3*3)
block(13, 4*3)
block(14, 3*3)
block(13, 4*3)
block(14, 4*3)
block(15, 3*3)
block(14, 1*3)
blockSingle(14)
spike(15, 1*3)
blockSingle(14)
spike(15, 1*3)
blockSingle(14)
spike(15, 2*3)
block(13, 1*3)
blockSingle(13)
spike(14, 1*3)
blockSingle(13)
spike(14, 1*3)
blockSingle(13)
spike(14, 2*3)
block(12, 1*3)
blockSingle(12)
spike(13, 1*3)
blockSingle(12)
spike(13, 1*3)
blockSingle(12)
spike(13, 1*3 + 1)
block(12, 1*3 + 1)
blockSingle(12)
spike(13, 1*3)
blockSingle(12)
spike(13, 1*3)
blockSingle(12)
spike(13, 1*3 + 1)
block(12, 3*3)
block(11, 4*3)
block(12, 4*3)
block(13, 4*3)
block(14, 4*3)
block(15, 4*3)
block(16, 2*3 + 1)
blockSingle(16)
spike(17, 2*3 + 1)
block(16, 4*3)
block(17, 2*3 + 1)
blockSingle(17)
spike(18, 2*3 + 1)
block(17, 1*3)
block(17, 1*3)
block(17, 1*3)
blockSingle(17)
spike(18, 1*3)
blockSingle(17)
spike(18, 1*3)
blockSingle(17)
spike(18, 1*3)
block(17, 4*3)
block(18, 3*3)
block(17, 1*3)
blockSingle(17)
spike(18, 1*3)
blockSingle(17)
spike(18, 2*3 + 2)
block(17, 3*3)
block(16, 4*3)
block(17, 4*3)
block(18, 3*3)
block(17, 4*3)
block(18, 4*3)
block(19, 4*3)
block(20, 4*3)
block(21, 8*3 + 1)
block(18, 1*3)
blockSingle(17)
commandWait(cToggleDark, 1*3)
blockSingle(16)
blockSingle(17)
blockSingle(18)
blockSingle(19)
blockSingle(20)
block(21, 1*3)
block(17, 1*3)
block(18, 7*3 + 2)
command(cInvertScreen)
command(cFalling)
commandWait(cRising, 15*3)
blockSingle(0)
commandWait(cInvertScreen, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 4*3)
block(2, 4*3 + 2)
block(2, 3*3)
block(1, 4*3)
block(2, 4*3)
block(3, 5*3)
block(2, 4*3)
block(3, 4*3)
block(4, 5*3)
block(3, 4*3)
block(4, 3*3)
block(3, 4*3 + 2)
block(3, 1*3)
block(3, 1*3)
blockSingle(3)
spike(4, 1*3)
blockSingle(3)
spike(4, 1*3)
blockSingle(3)
spike(4, 1*3)
block(3, 3*3)
block(2, 4*3)
block(3, 3*3)
block(2, 1*3)
blockSingle(2)
spike(3, 1*3)
blockSingle(2)
spike(3, 1*3)
blockSingle(2)
spike(3, 1*3)
block(2, 4*3)
block(2, 1*3)
block(2, 1*3)
block(2, 1*3)
blockSingle(2)
spike(3, 1*3)
blockSingle(2)
spike(3, 1*3)
block(2, 1*3)
block(2, 1*3)
blockSingle(2)
spike(3, 3*3)
block(3, 1*3)
block(3, 1*3)
blockSingle(3)
spike(4, 3*3)
block(4, 1*3)
block(4, 1*3)
blockSingle(4)
spike(5, 4*3)
block(3, 2*3 + 1)
blockSingle(3)
spike(4, 2*3 + 1)
block(3, 4*3)
block(4, 4*3)
block(5, 3*3 + 1)
block(4, 1*3)
blockSingle(4)
spike(5, 1*3)
block(4, 1*3)
block(4, 1*3)
block(4, 1*3)
block(4, 1*3)
block(4, 1*3)
blockSingle(4)
spike(5, 1*3)
block(4, 3*3)
block(3, 4*3)
block(4, 5*3)
block(3, 3*3)
block(2, 5*3)
block(1, 2*3)
commandWait(cToggleDark, 1*3)
block(0, 1*3)
quadx(0, 12*3 + 1)
spike(0, 11*3)
triple(0, 2*3 + 2)
triple(0, 2*3 + 2)
triple(0, 2*3 + 2)
triple(0, 2*3 + 2)
triple(0, 2*3 + 2)
triple(0, 2*3 + 2)
triple(0, 2*3 + 2)
triple(0, 5*3)
triple(0, 5*3)
triple(0, 5*3)
triple(0, 5*3)
triple(0, 5*3)
triple(0, 10*3 + 1)
blockSingle(1)
spike(2, 1*3)
block(1, 1*3)
block(1, 1*3)
block(1, 1*3)
block(1, 1*3)
block(1, 1*3)
block(1, 1*3)
block(1, 1*3)
block(1, 1*3)
block(1, 1*3)
block(1, 1*3)
block(1, 1*3)
block(1, 1*3)
block(2, 1*3)
block(3, 1*3)
spikeSingle(0)
block(4, 1*3)
blockSingle(0)
block(4, 1*3)
blockSingle(0)
block(4, 1*3)
blockSingle(0)
block(3, 1*3)
blockSingle(0)
block(2, 1*3)
blockSingle(0)
block(3, 1*3)
blockSingle(0)
block(4, 1*3)
blockSingle(0)
spikeSingle(1)
block(4, 1*3)
blockSingle(0)
block(4, 1*3)
blockSingle(0)
block(4, 1*3)
blockSingle(0)
block(4, 1*3)
blockSingle(0)
block(3, 1*3)
block(2, 1*3)
block(2, 1*3)
block(2, 1*3)
block(1, 1*3)
block(1, 1*3)
block(1, 7*3 + 1)
spike(0, 5*3)
double(0, 4*3 + 2)
triple(0, 4*3 + 2)
double(0, 4*3 + 2)
spike(0, 12*3 + 2)
command(cRising)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 4*3)
block(2, 4*3)
block(3, 4*3)
block(4, 4*3)
block(5, 4*3)
blockSingle(6)
commandWait(cWinning, 4*3)
block(7, 4*3)
block(8, 4*3)
block(9, 4*3)
block(10, 4*3)
block(11, 4*3)
block(12, 4*3)
block(13, 4*3)
block(14, 4*3)
block(15, 4*3)
block(16, 4*3)
block(17, 4*3)
blockSingle(18)
newLevel:
spike(0, 5*3)
spike(0, 7*3)
blockSingle(0)
commandWait(cToggleDark, 4*3)
block(1, 4*3)
block(2, 4*3)
block(3, 3*3)
block(2, 1*3)
spikeSingle(5) ;you have to block, else a shortcut is present
block(4, 2*3)
block(1, 3*3)
block(3, 4*3+1)
block(4, 4*3)
block(5, 5*3)
block(4, 1*3)
spikeSingle(7) ;again block is necessary
block(6, 2*3)
block(3, 3*3)
block(2, 3*3+1)
block(4, 3*3)
block(6, 3*3)
block(8, 1*3)
block(8, 1*3)
block(8, 1*3)
spikeSingle(9)
block(8, 1*3)
spikeSingle(9)
block(8, 1*3)
block(8, 1*3)
block(8, 1*3)
spikeSingle(9)
block(8, 1*3)
spikeSingle(9)
block(8, 1*3)
block(8, 1*3)
block(8, 3*3+2)
block(10, 3*3)
block(12, 3*3)
block(11, 4*3)
block(12, 4*3)
block(13, 1*3)
block(13, 1*3)
block(13, 4*3)
spike(13)
block(12, 1*3)
block(12, 3*3+1)
block(14, 3*3)
block(13, 4*3+2)
block(13, 4*3)
block(14, 3*3)
block(16, 3*3)
block(15, 4*3)
block(16, 4*3)
block(17, 3*3)
block(19, 5*3)
block(18, 3*3)
block(20, 3*3)
block(22, 2*3)
commandWait(cToggleDark, 11*3)
commandWait(cInvertScreen, 7*3)
command(cMirrorScreen)
commandWait(cInvertScreen, 2*3)
;newLevel:
blockSingle(1)
commandWait(cToggleDark, 3*3)
block(3, 3*3)
block(5, 3*1)
block(5, 3*3)
block(7, 3*3)
block(9, 3*3)
block(11, 3*1)
block(11, 5*3)
block(10, 3*3)
block(9, 5*3)
block(8, 1*3)
block(8, 1*3)
block(8, 1*3)
block(8, 2*3)
spikeSingle(6)
block(5, 1*3)
spikeSingle(6)
block(5, 1*3+1)
block(5, 1*3+1)
spikexSingle(6)
block(5, 1*3)
spikexSingle(6)
block(5, 2)
spikexSingle(4)
block(3, 1*3)
spikexSingle(4)
block(3, 1*3+1)
block(3, 1*3+1)
spikexSingle(4)
block(3, 1*3)
spikexSingle(4)
block(3, 2)
spikexSingle(2)
block(1, 1*3)
spikexSingle(2)
block(1, 1*3+1)
block(1, 1*3+1)
spikexSingle(2)
block(1, 1*3)
spikexSingle(2)
command(cToggleDark)
block(1, 8*3)
blockSingle(0)
commandWait(cToggleDark, 3*3)
block(2, 2)
spikeSingle(3)
block(2, 1*3)
spikeSingle(3)
block(2, 1*3)
spikeSingle(3)
block(2, 1*3+1)
block(2, 1*3+1)
spikeSingle(3)
block(2, 1*3)
spikeSingle(3)
block(2, 1*3)
spikeSingle(3)
block(2, 1*3)
block(3, 4*3)
block(4, 4*3)
block(5, 3*3+1)
block(6, 2*3+2)
block(5, 1*3+1)
spikeSingle(6)
block(5, 1*3)
spikeSingle(6)
block(5, 1*3)
spikeSingle(6)
block(5, 1*3+1)
block(5, 3*3)
block(4, 1*3)
spikeSingle(7)
block(6, 2*3)
block(3, 3*3)
block(2, 3*3)
block(1, 4*3)
commandWait(cToggleDark, 12*3)
block(0, 3*3)
block(2, 3*1)
spikeSingle(3)
block(2, 3*1)
spikeSingle(3)
block(2, 3*1)
spikeSingle(3)
block(2, 3*1
spikeSingle(3)
block(2, 5*3)
blockSingle(1)
commandWait(cToggleDark, 3*3)
block(3, 3*3)
blockSingle(2)
block(1, 1*3)
spikexSingle(2)
block(1, 1*3)
spikexSingle(2)
block(1, 1*3)
spikexSingle(2)
block(1, 2) ;this cuts in to prevent bouncing
block(1, 1) ;off the spike
spikex(2, 2*3)
block(0, 4*3)
block(1, 4*3)
block(2, 4*3)
block(3, 3*3)
block(1, 4*3+2)
block(1, 4*3+2)
block(1, 1*3+1)
spikeSingle(2)
block(1, 1*3)
spikeSingle(2)
block(1, 1*3)
spikeSingle(2)
block(1, 1*3+1)
block(1, 1*3+1)
spikeSingle(2)
block(1, 1*3)
spikeSingle(2)
block(1, 1*3)
spikeSingle(2)
block(1, 1*3+1)
block(1, 3*3)
block(3, 3*3)
block(5, 3*3)
block(7, 3*3)
block(9, 3*3)
block(11, 3*3)
block(13, 3*3)
block(15, 1*3)
commandWait(cToggleDark, 11*3)
commandWait(cInvertScreen, 7*3)
command(cFlipScreen)
commandWait(cInvertScreen, 2*3)
triple(0, 5*3)
blockSingle(1)
commandWait(cToggleDark, 3*3)
block(3, 3*3)
block(5, 3*3)
block(4, 1*3)
block(4, 1*3)
spikeSingle(5)
block(4, 2*3)
spikeSingle(5)
block(4, 1*3)
block(4, 4*3 + 1)
block(5, 4*3 + 1)
block(6, 3*3)
block(8, 3*3)
block(10, 3*3)
block(12, 1*3 + 2)
spikeSingle(13)
block(12, 3*3)
block(12, 3*3)
block(14, 3*3)
block(13, 3*3)
block(12, 5*3)
block(11, 5*3)
block(10, 3*3)
block(9, 5*3)
block(8, 1*3)
block(8, 1*3)
spikeSingle(9)
block(8, 1*3)
block(8, 1*3)
block(8, 4*3)
block(9, 3*3)
block(8, 3*3)
block(10, 3*3)
block(9, 3*3)
block(11, 3*3)
block(10, 3*3)
block(12, 3*3)
block(11, 3*3)
block(13, 3*3)
block(12, 4*3)
block(13, 4*3)
block(14, 4*3)
block(15, 1*3)
block(15, 1*3)
spikeSingle(16)
block(15, 1*3)
spikeSingle(16)
block(15, 3*3+2)
block(14, 5*3)
block(13, 1*3)
block(13, 1*3)
spikeSingle(14)
block(13, 4*3+2)
block(11, 4*3+2)
block(11, 5*3)
block(10, 5*3)
block(9, 3*3)
block(8, 5*3)
block(7, 3*3)
block(9, 3*3)
block(8, 3*3)
block(10, 3*3)
block(9, 3*3)
block(11, 5*3)
block(10, 3*3)
block(12, 3*3)
block(11, 3*3)
block(13, 3*3)
block(12, 3*3)
block(14, 5*3)
block(13, 3*3)
block(15, 3*3)
block(14, 3*3)
block(16, 5*3)
block(15, 3*3)
block(17, 5*3)
block(16, 3*3)
block(18, 1*3)
block(18, 1*3)
spikeSingle(19)
block(18, 1*3)
spikeSingle(19)
block(18, 1*3)
spikeSingle(19)
block(18, 1*3)
commandWait(cToggleDark, 13*3)
commandWait(cInvertScreen, 5*3)
command(cMirrorScreen)
commandWait(cInvertScreen, 2*3)
double(0, 4*3)
triple(0, 2*3+2)
triple(0, 2*3+2)
triple(0, 2*3+2)
triple(0, 8*3)
block(1, 3*3)
block(3, 1*3)
block(3, 1*3)
block(3, 1*3)
spikeSingle(4)
block(3, 1*3)
spikeSingle(4)
block(3, 1*3)
spikeSingle(4)
block(3, 1*3)
block(3, 2)
quint(0, 8*3)
blockSingle(0)
commandWait(cToggleDark, 3*3)
block(2, 3*3)
block(4, 3*3)
block(6, 3*3)
block(5, 4*3)
block(6, 3*3)
block(5, 4*3)
block(6, 5*3)
block(5, 4*3)
block(6, 3*3+1)
block(4, 3*3)
block(6, 5*3+1)
block(4, 3*3)
block(6, 3*3+1)
block(4, 1*3)
spikeSingle(7)
block(6, 2*3)
block(3, 3*3+1)
block(2, 3*3+1)
block(4, 3*3)
block(3, 3*3)
block(5, 3*3)
block(4, 3*3)
block(6, 3*3)
block(8, 3*3)
block(7, 3*3)
block(9, 5*3+1)
block(7, 5*3+1)
block(5, 5*3+1)
block(3, 1*3)
spikeSingle(6)
block(5, 2*3)
block(2, 3*3)
block(1, 3*3)
command(cToggleDark)
block(0, 8*3)
blockSingle(1)
commandWait(cToggleDark, 3*3)
block(3, 1*3)
block(3, 1*3)
block(3, 1*3)
block(3, 4*3)
block(0, 3*3)
block(2, 3*3)
block(4, 3*3)
block(6, 3*3)
block(8, 3*3)
block(10, 3*3)
block(12, 3*3)
block(14, 3*3)
block(16, 3*3)
block(18, 3*3)
block(20, 1*3)
spikeSingle(21)
spike(24, 1*3)
spikeSingle(21)
spike(24, 1*3)
spikeSingle(20)
spikeSingle(19)
spike(24, 1*3)
spikeSingle(18)
spikeSingle(17)
spikeSingle(16)
spike(23, 1*3)
spikeSingle(22)
spikeSingle(15)
spikeSingle(14)
spikeSingle(13)
spikeSingle(12)
spike(21, 1*3)
spikeSingle(20)
spikeSingle(11)
spikeSingle(10)
spikeSingle(9)
spikeSingle(8)
spike(19, 1*3)
spikeSingle(18)
spikeSingle(17)
spikeSingle(16)
blockSingle(7)
spike(15, 1*3)
spikeSingle(14)
spikeSingle(13)
spikeSingle(12)
spikeSingle(11)
spike(10, 2*3)
block(6, 3*3)
command(cInvertScreen)
block(5, 3*3)
block(4, 3*3)
command(cFlipScreen)
command(cInvertScreen)
block(3, 3*3)
block(2, 3*3)
block(1, 3*3)
command(cToggleDark)
block(0, 10*3)
;newLevel:
blockSingle(1)
commandWait(cToggleDark, 3*3+1)
block(0, 3*3)
block(2, 3*3)
block(4, 3*3)
block(6, 1*3)
block(6, 5*3)
spikeSingle(5)
block(4, 1*3)
block(4, 1*3)
block(4, 5*3)
spikeSingle(3)
block(2, 1*3)
block(2, 1*3)
block(2, 5*3)
spikeSingle(1)
block(0, 1*3)
block(0, 1*3)
block(0, 3*3)
block(2, 3*3)
block(1, 3*3)
block(3, 3*3)
block(2, 3*3)
block(4, 5*3)
block(3, 3*3)
block(2, 3*3)
block(4, 3*3)
block(6, 5*3+2)
block(4, 5*3)
block(3, 3*3)
block(2, 4*3+2)
block(2, 5*3)
block(1, 3*3)
command(cToggleDark)
block(0, 8*3)
triple(0, 8*3)
block(0, 1*3)
commandWait(cToggleDark, 3*3)
block(1, 4*3)
block(2, 4*3)
block(3, 4*3)
block(4, 4*3)
block(5, 4*3)
blockSingle(6)
commandWait(cWinning, 4*3)
block(7, 4*3)
block(8, 4*3)
block(9, 4*3)
block(10, 4*3)
block(11, 4*3)
block(12, 4*3)
block(13, 4*3)
block(14, 4*3)
block(15, 4*3)
block(16, 4*3)
block(17, 4*3)
blockSingle(18)
wait(63)
wait(63)
wait(63)
wait(63)
wait(63)