set kernel_options no_blank_lines set romsize 32kSC dim level=b dim byte1=score dim byte2=score+1 dim byte3=score+2 rem e, m, q, r, x & y are open i_like_bacon const pfres=16 level=1 : c{7}=0 : d=40 : f=0 : p=1 : e{2}=1 : g=0 : h=1 : s=0 byte1=$01 v{3}=0 : i{0}=0 r{0}=0 : r{1}=0 : r{2}=0 : r{3}=0 : ballx=0 : bally=0 player1x=80 : player1y=60 : missile1x=0 : missile1y=0 player0: %0101010 %0101010 %0101010 %0101010 %0111110 %1110111 %1101011 %0111110 end player1: %11111110 %11111110 %01110000 %00111000 %00011100 %11001110 %11111110 %01111100 %00000000 %11111100 %11000110 %11000110 %11111100 %11111100 %11000110 %11000110 %11111100 %00000000 %01111100 %11111110 %11000110 %11000110 %11000110 %11000110 %11000110 %11000110 %00000000 %01111100 %11000110 %00000110 %01111110 %11111100 %11000000 %11000110 %01111100 %00000000 %01111100 %11111110 %11000110 %11000110 %11000110 %11000110 %11111110 %01111100 %00000000 %01111100 %11111110 %11000110 %11011110 %11000000 %11000110 %11111110 %01111100 end o=0 : p=1 : a=1 : v{1}=1 : byte2=$B0 : byte3=$00 goto g_o bank4 title_screen scorecolor=14 byte1=$1B if joy0fire && joy0right && !c{7} then s=s+1 if !c{7} && s=20 then s=0 : level=level+1 : byte3=byte3+$02 if joy0fire && joy0right && c{7} then s=s+1 if c{7} && s=20 then s=0 : level=level+1 : byte3=byte3+$01 if joy0fire && joy0left then s=s+1 if s=20 then s=0 : level=level-1 : byte3=byte3-$01 if level>1 then c{7}=1 if level=10 then byte3=$10 if byte3=$0F then byte3=$09 if byte3=$0A then byte3=$10 if byte3=$1F then byte3=$19 if byte3=$1A then byte3=$20 if level=20 then byte3=$20 if level<1 then level=28 : byte3=$28 COLUBK=128 : COLUPF=196 : COLUP1=204 if level>28 then level=1 : byte3=$01 if switchleftb then y{7}=0 : COLUP0=80 else y{7}=1 : COLUP0=128 if switchbw then w{7}=1 else w{7}=0 rem if joy0left then goto easter_egg_begin bank5 if y{0} then player0x=0 : player0y=0 if !y{0} then player0x=79 : player0y=82 scorecolor=0 missile0x=0 : missile0y=0 : ballx=0 : bally=0 drawscreen if switchreset && byte1=$1B then goto begin_game if switchreset && byte1=$2B then goto minigame_setup bank6 goto ts_music bank2 begin_game byte1=$3B : byte2=$00 : byte3=$00 begin_level scorecolor=128 COLUPF=196 if !y{7} then COLUP0=128 else COLUP0=80 drawscreen AUDV0=0 : AUDV1=0 : y{4}=0 if level=1 then goto level_1 bank4 if level=2 then goto level_2 bank4 if level=3 then goto level_3 bank4 if level=4 then goto level_4 bank4 if level=5 then goto level_5 bank4 if level=6 then goto level_6 bank4 if level=7 then goto level_7 bank4 if level=8 then goto level_8 bank4 if level=9 then goto level_9 bank4 if level=10 then goto level_10 bank4 if level=11 then goto level_11 bank4 if level=12 then goto level_12 bank4 if level=13 then goto level_13 bank4 if level=14 then goto level_14 bank4 if level=15 then goto level_15 bank4 if level=16 then goto level_16 bank4 if level=17 then goto level_17 bank4 if level=18 then goto level_18 bank4 if level=19 then goto level_19 bank4 if level=20 then goto level_20 bank4 if level=21 then goto level_21 bank4 if level=22 then goto level_22 bank4 if level=23 then goto level_23 bank4 if level=24 then goto level_24 bank4 if level=25 then goto level_25 bank4 if level=26 then goto level_26 bank4 if level=27 then goto level_27 bank4 if level=28 then goto level_28 bank4 begin_level_2 player1: %0111110 %1111111 %1101011 %0111110 %0001000 %0001100 end player1x=23 : player1y=80 : g=0 : y{1}=1 : a=0 if y{7} then player0x=0 : player0y=0 : goto main else player0x=150 octopus_intro if y{1} then player0x=153 : goto get_y if y{2} then player0x=23 : goto get_y get_x player0x=rand if player0x<28 then goto get_x if player0x>135 then goto get_x get_y player0y=rand if player0y<8 then goto get_y if player0y>70 then goto get_y y{1}=0 : y{2}=0 main COLUPF=196 : scorecolor=14 drawscreen if a>0 then z=z+1 if switchselect then goto i_like_bacon if collision(player1,playfield) then goto hit_wall bank3 if joy0left then a=1 if joy0right then a=2 if joy0up then a=3 if joy0down then a=4 if joy0left && joy0up then a=5 if joy0left && joy0down then a=6 if joy0right && joy0up then a=7 if joy0right && joy0down then a=8 if !joy0fire && y{0} then y{0}=1 if joy0fire && !y{0} && v=3 && !y{7} then y{0}=1 if a=1 && z>v then z=0 : player1x=player1x-1 : y{5}=1 if a=2 && z>v then z=0 : player1x=player1x+1 : y{5}=0 if a=3 && z>v then z=0 : player1y=player1y-1 if a=4 && z>v then z=0 : player1y=player1y+1 if a=5 && z>v then z=0 : player1x=player1x-1 : player1y=player1y-1 : y{5}=1 if a=6 && z>v then z=0 : player1x=player1x-1 : player1y=player1y+1 : y{5}=1 if a=7 && z>v then z=0 : player1x=player1x+1 : player1y=player1y-1 : y{5}=0 if a=8 && z>v then z=0 : player1x=player1x+1 : player1y=player1y+1 : y{5}=0 if player1y>88 && player1x>50 then goto got_treasure bank3 if player1y>88 && player1x<=50 then player1y=88 if player1x<15 then player1x=15 if player1x>140 then goto got_treasure bank3 if player1y<5 then goto got_treasure bank3 if !y{0} then x=a : missile1x=player1x+5 : missile1y=player1y-1 if y{0} then goto missile_shoot goto 23a bank2 missile_shoot if x=0 then goto 23a if x=1 then missile1x=missile1x-1 if x=2 then missile1x=missile1x+1 if x=3 then missile1y=missile1y-1 if x=4 then missile1y=missile1y+1 if x=5 then missile1x=missile1x-1 : missile1y=missile1y-1 if x=6 then missile1x=missile1x-1 : missile1y=missile1y+1 if x=7 then missile1x=missile1x+1 : missile1y=missile1y-1 if x=8 then missile1x=missile1x+1 : missile1y=missile1y+1 if collision(missile1,playfield) then y{0}=0 if collision(missile1,player0) then byte3=byte3+$10 if collision(missile1,player0) && player1x<70 then y{0}=0 : y{1}=1 : goto octopus_intro if collision(missile1,player0) && player1x>=70 then y{0}=0 : y{2}=1 : goto octopus_intro if missile1x>140 then y{0}=0 if missile1x<22 then y{0}=0 if missile1y>88 then y{0}=0 if missile1y<5 then y{0}=0 goto 23a bank2 bank 2 23a ballheight=4 : CTRLPF=$11 if y{4} then ballx=0 : bally=0 : goto 24 if level<11 then goto 23b if level<21 then goto 23c if level<31 then goto 23d 23b if level=1 then ballx=90 : bally=42 if level=2 then ballx=120 : bally=68 if level=3 then ballx=24 : bally=24 if level=4 then ballx=40 : bally=28 if level=5 then ballx=108 : bally=78 if level=6 then ballx=23 : bally=22 if level=7 then ballx=120 : bally=10 if level=8 then ballx=56 : bally=10 if level=9 then ballx=68 : bally=10 if level=10 then ballx=72 : bally=78 goto 24 23c if level=11 then ballx=58 : bally=22 if level=12 then ballx=44 : bally=64 if level=13 then ballx=23 : bally=10 if level=14 then ballx=0 : bally=0 if level=15 then ballx=58 : bally=8 if level=16 then ballx=41 : bally=78 if level=17 then ballx=0 : bally=0 if level=18 then ballx=0 : bally=0 if level=19 then ballx=72 : bally=78 if level=20 then ballx=56 : bally=10 goto 24 23d if level=21 then ballx=136 : bally=28 if level=22 then ballx=0 : bally=0 if level=23 then ballx=136 : bally=28 if level=24 then ballx=36 : bally=46 if level=25 then ballx=38 : bally=10 if level=26 then ballx=120 : bally=30 if level=27 then ballx=0 : bally=0 if level=28 then ballx=40 : bally=28 goto 24 24 if y{5} then REFP1=0 else REFP1=8 if collision(player0,player1) then v=6 else v=3 : u=0 if v=6 then u=u+1 if v=6 && u=60 then goto hit_wall bank3 if collision(ball,player1) then y{4}=1 : ballx=0 : bally=0 : byte1=byte1+$10 if byte1>$9B then byte1=$9B if y{7} then COLUP0=128 : goto main bank1 g=g+1 : i=i+1 if h=0 then h=(rand / 32) +1 if h=1 && g=3 then g=0 : player0x=player0x+1 if h=2 && g=3 then g=0 : player0x=player0x-1 if h=3 && g=3 then g=0 : player0y=player0y+1 if h=4 && g=3 then g=0 : player0y=player0y-1 if h=5 && g=3 then g=0 : player0x=player0x+1 : player0y=player0y-1 if h=6 && g=3 then g=0 : player0x=player0x+1 : player0y=player0y+1 if h=7 && g=3 then g=0 : player0x=player0x-1 : player0y=player0y-1 if h=8 && g=3 then g=0 : player0x=player0x-1 : player0y=player0y+1 if i=30 then i=0 : g=0 : h=0 if player0x<30 then h=1 if player0x>140 then h=2 if player0y>80 then h=4 if player0y<5 then h=3 if h=1 then goto octopus_right if h=2 then goto octopus_left if h>2 then goto octopus_straight if h>4 then goto octopus_right if h>6 then goto octopus_left octopus_left player0: %00010101 %00101010 %00101010 %01010100 %01111100 %11101110 %11010110 %01111100 end goto main bank1 octopus_straight player0: %0101010 %0101010 %0101010 %0101010 %0111110 %1110111 %1101011 %0111110 end goto main bank1 octopus_right player0: %10101000 %01010100 %01010100 %00101010 %00111110 %01110111 %01101011 %00111110 end goto main bank1 ts_music g=g+1 : AUDC0=12 if h=1 && g>0 then AUDF0=31 : AUDV0=6 if h=1 && g>20 then AUDF0=28 if h=1 && g>40 then AUDF0=24 if h=1 && g>60 then AUDF0=23 if h=1 && g>75 then AUDF0=20 if h=1 && g>80 then AUDF0=24 if h=1 && g>95 then AUDF0=28 if h=2 && g>0 then AUDF0=31 if h=2 && g>15 then AUDF0=28 if h=2 && g>20 then AUDF0=24 if h=2 && g>60 then AUDF0=28 if h=2 && g>75 then AUDF0=31 if h=2 && g>80 then AUDF0=28 if h=2 && g>95 then AUDF0=24 if h=3 && g>0 then AUDF0=28 if h=3 && g>40 then AUDF0=31 if h=3 && g>55 then AUDF0=28 if h=3 && g>60 then AUDF0=24 if h=3 && g>75 then AUDF0=28 if h=3 && g>80 then AUDF0=31 if h=4 && g>3 then AUDV0=0 if h=4 && g>20 then g=0 : h=1 if g>99 then g=0 : h=h+1 goto title_screen bank1 bank 3 got_treasure if !y{7} then COLUP0=80 COLUP0=128 g=g+1 drawscreen AUDV1=0 if g>0 then AUDV0=6 : AUDC0=12 : AUDF0=17 if g>20 then AUDF0=13 if g>40 then AUDF0=11 if g>60 then AUDF0=8 if g>99 then AUDV0=0 : a=0 : g=0 : b=b+1 : goto begin_level bank1 goto got_treasure game_over player0: %11111000 %10000000 %10000000 %11110000 %10000000 %10000000 %11111000 %00000000 %10101000 %10101000 %10101000 %10101000 %10101000 %10101000 %01110000 %00000000 %10001000 %10001000 %10001000 %11111000 %10001000 %10001000 %01110000 %00000000 %01110000 %10001000 %10001000 %10111000 %10000000 %10001000 %01110000 end player1: %10001000 %10001000 %10001000 %11110000 %10001000 %10001000 %11110000 %00000000 %11111000 %10000000 %10000000 %11110000 %10000000 %10000000 %11111000 %00000000 %00100000 %01010000 %10001000 %10001000 %10001000 %10001000 %10001000 %00000000 %01110000 %10001000 %10001000 %10001000 %10001000 %10001000 %01110000 end t=0 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X.............................X X....XXX...XXX...XXX..XXXXX...X X...X.....X...X.X.X.X.X.......X X...X.XXX.XXXXX.X.X.X.XXX.....X X...X...X.X...X.X.X.X.X.......X X....XXX..X...X.X.X.X.XXXXX...X X.............................X X....XXX..X...X.XXXXX.XXXX....X X...X...X.X...X.X.....X...X...X X...X...X.X...X.XXX...XXXX....X X...X...X..X.X..X.....X...X...X X....XXX....X...XXXXX.X...X...X X.............................X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end game_over_2 player0x=0 : player0y=0 : player1x=0 : player1y=0 ballx=0 : bally=0 missile1x=0 : missile1y=0 : scorecolor=0 AUDC0=12 : AUDV0=t : NUSIZ0=$05 : NUSIZ1=$05 if !w{7} then COLUBK=0 : scorecolor=200 : COLUP1=64 : COLUP0=64 if w{7} then COLUBK=0 : scorecolor=14 : COLUP1=8 : COLUP0=8 drawscreen o=o+1 if p=1 && o>20 then AUDF0=13 : t=6 if p=1 && o>40 then AUDF0=14 if p=1 && o>60 then AUDF0=15 if p=1 && o>80 then AUDF0=16 if p=1 && o>99 then p=2 : o=0 if p=2 && o>0 then AUDF0=17 if p=2 && o>20 then AUDF0=18 if p=2 && o>30 then AUDF0=19 if p=2 && o>70 then t=0 : o=71 if joy0up && joy0fire then goto begin_level if switchreset then goto begin_game bank1 if switchselect then o=0 : p=1 : goto i_like_bacon bank1 goto game_over_2 hit_wall f=f+1 : AUDV0=6 : AUDC0=8 : AUDF0=15 : AUDV1=0 if f>60 && byte1=$0B then y{3}=0 : goto game_over if !y{0} then COLUP0=128 else COLUP0=80 if f>60 then f=0 : AUDV0=0 : y{3}=0 : byte1=byte1-$10 : a=0 : goto begin_level_2 bank1 drawscreen player1: %10101010 %01010100 %10111010 %01111100 %10101010 %01010100 end goto hit_wall the_end_setup r{0}=1 : r{1}=0 : missile1x=0 : missile1y=0 : e{0}=1 : g=1 ballx=130 : bally=82 : CTRLPF=$51 : player1x=20 : player1y=83 r{2}=0 : r{3}=0 : AUDV1=0 : AUDV0=0 REFP0=0 player1: %0111110 %1111111 %1111111 %0111110 %0001000 %0001100 end player0: %11100110 %11100110 %11100110 %11100110 %10000101 %10000101 %10000101 %10000101 %11000101 %11000101 %11000101 %11000101 %10000101 %10000101 %10000101 %10000101 %11100110 %11100110 %11100110 %11100110 %00000000 %00000000 %00000000 %00000000 %10100101 %10100101 %10100101 %10100101 %10100101 %10100101 %10100101 %10100101 %11100101 %11100101 %11100101 %11100101 %10100101 %10100101 %10100101 %10100101 %10100110 %10100110 %10100110 %10100110 %00000000 %00000000 %00000000 %00000000 %01000111 %01000111 %01000111 %01000111 %01000100 %01000100 %01000100 %01000100 %01000110 %01000110 %01000110 %01000110 %01000100 %01000100 %01000100 %01000100 %11100111 %11100111 %11100111 %11100111 end the_end if switchbw then w{7}=1 else w{7}=0 player0x=70 : player0y=74 : CTRLPF=$31 : NUSIZ0=$07 if !w{7} then COLUPF=240 : COLUP0=196 : COLUP1=0 : COLUBK=128 if w{7} then COLUPF=10 : COLUP0=8 : COLUP1=0 : COLUBK=4 ballheight=6 if e{0} then f=f+1 if e{0} && f=3 then f=0 : player1x=player1x+1 if collision(player1,ball) then e{0}=0 if switchselect then goto i_like_bacon bank1 drawscreen if !e{0} then goto the_end_music goto g_o bank4 the_end_music if !e{0} then f=f+1 AUDC0=12 if g=1 && f>0 then AUDF0=31 : AUDV0=6 if g=1 && f>20 then AUDF0=29 if g=1 && f>40 then AUDF0=26 if g=1 && f>80 then AUDF0=23 if g=2 && f>20 then AUDF0=26 if g=2 && f>60 then AUDF0=29 if g=3 && f>0 then AUDF0=31 if g=3 && f>40 then AUDF0=26 if g=3 && f>80 then AUDF0=19 if g=4 && f>20 then AUDF0=15 if g=4 && f>40 then AUDF0=17 if g=4 && f>60 then AUDF0=19 if g=5 && f>0 then AUDF0=17 if g=5 && f>40 then AUDF0=19 if g=5 && f>80 then AUDF0=23 if g=6 && f>20 then AUDF0=26 if g=7 && f>30 then AUDF0=31 if g=7 && f>50 then AUDF0=29 if g=7 && f>70 then AUDF0=26 if g=8 && f>10 then AUDF0=19 if g=8 && f>50 then AUDF0=15 if g=9 && f>10 then AUDF0=17 if g=9 && f>30 then AUDF0=19 if g=9 && f>70 then AUDF0=23 if g=10 && f>10 then AUDF0=26 if g=10 && f>50 then AUDF0=23 if g=10 && f>70 then AUDF0=20 if g=10 && f>90 then AUDF0=19 if g=11 && f>30 then AUDF0=23 if g=11 && f>70 then AUDF0=15 if g=12 && f>30 then AUDF0=17 if g=12 && f>50 then AUDF0=19 if g=13 && f>70 then AUDV0=0 if g>13 then g=14 if f>99 then f=0 : g=g+1 goto the_end bank 4 level_1 playfield: XXXXXXXXXXXXXXXXXXXXXX....XXXXXX X.......X.......X.X............X X.......X.......X.X............X X...X...X...X...XXX...XXXXXX...X X...X...X...X...X.....X..X.....X X...X...X...X...X.....X..X.....X X...X.......X...X..XX....X.....X X...X.......X...X..X.....X.....X X...XXXXXXXXX...X...XXXXXX...XXX X...........X...X............X.X X...........X...X............X.X XXXXXXXXX...X...XXXXXX....XXXX.X X...........X.............X....X X...........X.............X....X X...XXXXXXXXXXXXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 level_2 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X........X.............X.......X X........X.............X.......X X...X....X....XXXXXX...X...X...X X...X.........X........X...X...X X...X.........X........X...X...X X...XXXXXXXXXXX...XXXXXX...X...X X.............X...X........X...X X.............X...X........X...X XXXXXXXXXX....X...X....X...X...X X........X....X...X...X.X..X...X X........X....X...X...X.X..X...X X...X.........X............X.... X...X.........X............X.... X...XXXXXXXXXXXXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 level_3 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X..........XX..................X X..........X...................X X..X...X...X....XXXXXXXXXXXX...X X..X...X...X....X..............X XXX....X...X....X..............X X......X........X...XXXXXXXXXXXX X.....XX.......XX...XX.........X X...XXXXXXXXXXXXX...X..........X X.....X.............X....XXX...X X.....X.............X......X...X XXX...X...XXXXXXXXXXXX.....X...X ......X....................X.... ......X....................X.... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 level_4 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X..........X.......X.......X.... X..........X.......X.......X.... X...XXX........X.......X.......X X...X..X.......X.......X.......X X...X..XXXXXXXXXXXXXXXXXXXXXXXXX X......X.............XX........X X......X.............X.........X X...XX......XXXXXX...X....XX...X X..........X.....X.......X.X...X X.......XX.......X.......X.X...X XXXXXXXXX........XXXXXXXXXXX...X .............X.................X .............X.................X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 level_5 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X.......X....................... X.......XX...................... X...X........XXXXXXXXXXXXXXXXXXX X...X........X.................X X...XXXXXXXXXX.................X X............X...XXXXXXXXXX....X X............X...X........X....X XXXXXXXXXX...X...X.......XXX...X X.......X........X...X.........X X.......X........X...XX........X X...X...XXXXXXXXXX...XXXXXXX..XX X...X................X........XX X...X................X........XX X...XXXXXXXXXXXXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 level_6 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X.....X....................X.... X.....X....................X.... X..X......XXXXXXXXXXXXXX...X...X X..X.....X.....X.......X...X...X XXXX...XX..............X...X...X X......X...........X...X.......X X......X....XXXXXXXX...X.......X X...XXXX...X.......X...XXXXXXXXX X..........X.......X...........X X..........X...X...X...........X XXXXXXXXXXXX...X...XXXXXXXXX...X ...............X...............X ...............X...............X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 level_7 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X...............X.......X..X.... X...............X.......X..X.... X...XXXXXXXXX...X.......X..X...X X......X........X...X..........X X......X........X....X.........X XXXX...X...XXXXXXX.....XXXXXXXXX X......X...X......X....X.......X X......X...X.......X...X.......X X...XXX....X.......X.......X...X X...X......X...X...X.......X...X X...X....XXX...X...XXXXXXXXX...X X...X..........X...............X X...X..........X...............X X...XXXXXXXXXXXXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 level_8 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X.......X..XX........X.........X X.......X..XX........X.........X X...X...X.......X.........X...XX X...X...X........X........X....X X...X...XXXXX....XXXXXXXXXX....X X...X........X............XX...X X...X.........X...........X....X X...XXXXXX....XXXXXXXXX...X....X X.........X...X.......X...X...XX X.........X...X.......X...X....X XXXXXXX...X...X...X...X...X....X ..........X.......X.......X..... ..........X.......X.......XX.... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 level_9 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X..........X..XX...............X X..........X..X................X X....XXX...X..X....XXXXXXXXX...X X......X...X..XX....XX.........X XXX....X........X....X.........X X......X........XX...X....XXXXXX X......XXXXX....X....X....XXXXXX X...XXXXXXXX...X.........X.....X X...X..........X...X...........X X...X..........X...X...X.......X X...X...XXXXXXXX...X...X...X...X ....X..............X.......X.... ....XX.............X.......X.... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 level_10 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X.......X........X.............. X.......XXXXXXXXXX.............. X...X............X...XXXXXXXXXXX X...X............X.........X...X X...XXXXXXXXXX...X..........X..X X............X...XXXXXXXX....X.X X............X.........X.X...X.X XXXXXXXXXX...X.........X.X...X.X X.......X....X..XXXX...X.X...X.X X.......X...X...X..X...X.X...X.X X...X...X...X...X..X...XXX...X.X ....X.......X..X...X.........X.X ....X.......X..X...X.........X.X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 level_11 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X.......X......X...........X.... X.......X......X...........X.... X...X...X...X.....X....X.......X X...X...X...X.....X....X.......X X...X...XXXXXXXXXXX....XXXXXXXXX X...X.........X........X.......X X...X.........X........X.......X X...XXXXXXX...X...XXXXXX...X...X X.........X...X............X...X X.........X...X............X...X XXXXXXX...X...XXXXXXXXXXXXXX...X ..........X....................X ..........X....................X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 level_12 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X.............X................X X.............X................X X...XXXXXXX...X...XXXXXXXXXX...X X.........X.......X............X X.........X.......X............X XXXXXXX...XXXXXXXXX...XXXXXXXXXX X.........X...........X........X X.........X...........X........X X...XXXXXXX...XXXXXXXXX...XX...X X....X..XXX...X.......X...X....X XX...X..XXX...X.......X...X...XX .....X............X.......X..... .....X............X.......X..... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 level_13 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X..XX..........X.......X.......X X..XX..........X.......X.......X X......X...X...X...X.......X...X X......X...X...X...X.......X...X XXXXXXXX...X...X...XXXXXXXXX...X X..........X.......X.......X...X X..........X.......X.......X...X X...XXXXXXXXXXXXXXXX...X...X...X X...X..................X.......X X...X..................X.......X X...X...XXXXXXXXXXXXXXXXXXXXXXXX X...X........................... X...X........................... X...XXXXXXXXXXXXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 level_14 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX......X.............X.......XX X.......X.............X........X X...X...X...XXXXXXX...X...XX...X X...X.......X.........X....X...X X...X.......X.........X....X...X X...XXXXXXXXX...XXXXXXXX...X...X X...X.......X...X..........X...X X...X.......X...X..........X...X X.......X...X...X...XXXXXXXX...X X.......X...X...X...X..........X XXXXXXXXX...X...X...X..........X X...........X.......X...XXXXXXXX X...........X.......X...X......X X...XXXXXXXXXXXXXXXXX...XXXXXXXX end goto begin_level_2 bank1 level_15 playfield: XXXXXXXXXXXXXXXXX...XXXXXXXXXXXX X.......X.......X......X.......X X.......X.......X.......XXXXXXXX X...X...XXXXXX..XXXXX..........X X...X................X.........X X...X.................XXXXXX...X X...XXXXXXXXXXXXXXX....X.......X X..................X....X......X X...................X...X...XXXX XXXXXXXXXXXXXXXXX...X...X......X X.......X.......X...X...X......X X.......X.......X...X...XXXX...X ....X.......X.......X..........X ....X.......X.......X..........X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 level_16 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X...X.........X.......X........X X.............X.......X........X X.........X...X...X...X....X...X X...XXXXXXX.......X........X...X X.........X.......X........X...X X.........XXXXXXXXXXXXXXXXXX...X XXXXXXX...X....................X X.........X....................X X.........X...XXXXXXXXXXXXXXXXXX X...XXX..XX...X.......X........X X...XXX..XX...X.......X........X ....X....XX.......X.......X..... ....X....XX.......X.......X..... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 level_17 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X..............................X X..............................X X...XXXXXXXXXXXXXXXXXXXXXXXX...X X...X......................X...X X...XXXXXXXXXXXXXXX........X...X X...X..............X...X...X...X X...X..............X...X...X...X X...X...XXXXXXX....X...X...X...X X.......X..........X...X...X...X X......X...........X...X...X...X XXXXXXX.....XXXXXXXX...X...X...X X..........X...........X.......X X.........X............X.......X X...XXXXXXX...XXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 level_18 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X................X.............X X................X.............X X...XXXXXXXXXX...X...XXXXXXX...X X...X........X...X...X.........X X...XXXXXXXXXX...X...X.........X X............X.......X...XXXXXXX X............X.......X...X...... XXXXXXXXXX...XXXXXXXXX...X...... X........X...........X...X...XXX X........X...........X...X...X.X X...X....XXXXXXXXX...X...X...X.X X...X................X.......X.X X...X................X.......X.X X...XXXXXXXXXXXXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 level_19 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X..............................X X..............................X X...XXXXXXXXXXXXXXXXXXXXXXXX...X X...X.......X..............X...X X...X.......X..............X...X X...X...X...X...XXXXXXXX.......X X...X...X...X..........X.......X X...X...X...X..........XXXXXXXXX X.......X...XXXXXXXX...X.......X X.......X...X......X...X.......X XXXXXXXXX...X......X...X...X...X X...........X..XX..........X.... X...........X..XX..........X.... X...XXXXXXXXXXXXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 level_20 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXX...XXX X.......X......XX........X...XXX X.......X......XX........X.....X X...X...XXXXX..XX...XX...X.....X X...X..........XX...X....X.X...X X...X...........X...X....XXX...X X...XXXXXXXXX.......X....X.....X X...X.......X.......X....X.....X X...X.......XXXXXXXXX...XX...XXX X.......X...X............X.....X X.......X...X............X.....X XXXXXXXXX...X...XXXXXXXXXXXX...X ............X..................X ............X..................X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 level_21 playfield: XXXXXXXX...XXXXXXXXXXXXXXXXXXXXX X..........X.......X...........X X..........X.......X...........X X...XXXXXXXX...X...X...X...XX..X X..............X.......X...XX..X X..............X.......X....X..X XXXXXXXXXXXXXXXXXXXXXXXXX....XXX X.......X..............XXX.....X X.......X..............XXXX....X X...X.......XXXXXXXX.....XXX...X X...X......XX..XX..XX......X...X X...X.......XXXXXXXX.......X...X X...XXXXX..............X.......X X...X...X..............X.......X X...XXXXXXXXXXXXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 level_22 playfield: XXXXXXXXXXXXXXXXXXXXXXXXX...XXXX X.......X...............X...X..X X.......X...............X...XXXX X...X.......XXXXXXXXX...X......X X...X.......X.......X...X......X X...XXXXXXXXX.......X...XXXX...X X...........X...X...X...X......X X...........X...X...X...X......X XXXXXXXXX...X...X...X...X...XXXX X.......X.......X...X...X......X X.......X.......X...X...X......X X...X...XXXXXXXXX...X...XXXX...X X...X...............X..........X X...X...............X..........X X...XXXXXXXXXXXXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 level_23 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X.......................X......X X.......................X......X X...XXXXXXXXXXXXXXXXX...X...X..X X...X...............X.......X..X X...X...............X.......X..X X...X...XXXXXXXXX...X...XXXXXXXX X...X...X.......X...X..........X X...X...X.......X...X..........X X.......X...X...X...XXXXXXXX...X X.......X...X...X...X..........X XXXXXXXXX...X...X...X..........X ............X.......X...XXXXXXXX ............X.......X...X......X XXXXXXXXXXXXXXXXXXXXX...XXXXXXXX end goto begin_level_2 bank1 level_24 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X..............................X X..............................X X...XXXXXXXXXXXXXXXXXXXXXXXX...X X..........X.......X.......X...X X..........X.......X.......X...X X..XXXXX...X...X...X...X...X...X X..X..XX...X...X...X...X...X...X X..X..XX...X...X...X...X...X...X X.....XX.......X.......X...X...X X.....XX.......X.......X...X...X XXXXXXXXXXXXXXXXXXXXXXXX...X...X ...........................X.... ...........................X.... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 level_25 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X......X...........X...........X X......X...........X...........X X..XXXXX...XXXXX...X...........X X..X.......X.......X...XXXXX...X X..........X.......X...X...X...X X......XXXXX...XXXXX...X...X.... XX.....X.......X.......X...X.... XXXX...X.......X.......XXXXX.... X......X...XXXXX...X.......X...X X......X...X.......X.......X...X X...XXXX...X.......X...X...X...X X...X..X.......X.......X.......X X...X..X.......X.......X.......X X...XXXXXXXXXXXXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 level_26 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX.............X.............X X................X.............X X......XXXXXX....X....X..XXX...X X...XXXXXXXXX...XXX...X....X...X X...........X.........X....X...X X...........X.........XXXXXX...X XXXXXXXXX...XXXXXXXXXXX........X X.......X...X..................X X.......X...X.............XXXXXX X...X...X...X...XXXXXXXXX....... X...X...X...X...X.......X....... X...X.......X...............XXXX X...X.......X.......X.......X..X X...XXXXXXXXXXXXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 level_27 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X.......X...X.......X.......X..X X.......XXXXX.......X.......X..X X...X...........X.......X...X..X X...X...........X.......X...X..X X...XXXXXXXXX...X...XXXX....X..X X...........X.......XXXX....XXXX X...........X.......X..........X XXXXXXXXX...XXXXXXXXX..........X X.......X...........X...XXXX...X X.......X...........X...X..X...X X...X...XXXXXXXXX...X...XXXX...X ....X...............X..........X ....X...............X..........X XXXXXXXXXXXXXXXXXXXXXXXX....XXXX end goto begin_level_2 bank1 level_28 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X..............................X X..............................X X...XXXXXXXXXXXXXXXXXXXXXXXX...X X...X..XXX.......X.........X...X X...X..XXX.......X.........X...X X...X........X.......XXX...X...X X...X........X.......X.X...X...X X...XXXXXX...XXXXXXXXXXX...X...X X........X.......X.........X...X X........X.......X.........X...X XXXXXX...XXXXX...X...XXXXXXX...X .........X.......X.............X .........X.......X.............X XXXXXXXXXX...XXXXXXXXXXXXXXXXXXX end goto begin_level_2 bank1 g_o playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X..............................X X..............................X X..............................X X..............................X X..............................X X..............................X X..............................X X..............................X X..............................X X..............................X X..............................X X..............................X X..............................X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end if c{7} then goto the_end bank3 if e{2} then goto title_screen bank1 if !e{0} then goto the_end_music bank3 goto game_over_2 bank3 bank 5 easter_egg_begin if switchselect then goto i_like_bacon bank1 player0y=82 : player0x=74 : player1x=0 : player1y=0 : a{0}=0 : AUDV0=0 goto zyx_pf get_zyx_on_screen player0: %111 %101 %000 %010 %000 %101 end if !switchleftb then a{3}=1 : a{4}=1 if switchleftb then a{3}=0 : a{4}=0 goto zyx_main zyx_get_player1x if byte3=$0A then byte3=$10 if byte3=$1A then byte3=$20 if byte3=$2A then byte3=$30 if byte3=$3A then byte3=$40 if byte3=$4A then byte3=$50 if byte3=$5A then byte3=$60 if byte3=$6A then byte3=$70 if byte3=$7A then byte3=$80 if byte3=$8A then byte3=$90 if byte3=$9A then byte3=$00 : byte2=byte2+$01 if byte2=$0A then byte2=$10 if byte2=$1A then byte2=$20 if byte2=$2A then byte2=$30 if byte2=$3A then byte2=$40 if byte2=$4A then byte2=$50 if byte2=$5A then byte2=$60 if byte2=$6A then byte2=$70 if byte2=$7A then byte2=$80 if byte2=$8A then byte2=$90 if byte2=$9A then byte2=$00 : byte3=$00 k=60 : l=90 if e>29 then e=30 player1x=rand if player1xl then goto zyx_get_player1x player1y=10 get_sound w=rand if w<5 then goto get_sound if w>31 then goto get_sound zyx_main if byte1=$0B then a{0}=0 : e=0 : player1y=0 if !a{0} && switchselect then h=h+1 if h>15 then h=0 : i=i+1 if i>3 then i=1 if joy0fire && !a{0} then a{0}=1 : score=0 : byte1=$3B : goto zyx_get_player1x drawscreen player1: %00110000 %01110000 %11100000 %11000000 %11000000 %01100000 %00110000 %00011000 end zyx_main_2 COLUP0=64 : COLUP1=30 : COLUPF=196 : COLUP1=28 : scorecolor=30 : lifecolor=78 if a{4} then NUSIZ0=$05 else NUSIZ0=$00 if !a{0} then goto easter_egg_begin if a{1} then goto zyx_death if e>=0 then d=3 if e>=10 then d=2 if e>=20 then player1y=player1y+1 if e<=19 then c=c+1 if c=d && e<=19 then c=0 : player1y=player1y+1 if collision(player0,playfield) then player0x=player0x-o o=0 if joy0left then o=255 if joy0right then o=1 player0x=player0x+o if player1y>82 then a{1}=1 : goto zyx_death if collision(player0,player1) then byte3=byte3+1 : e=e+1 : y=y+1 : goto zyx_get_player1x if e>29 then q=q-1 if q=0 then q=2 : player1y=player1y+1 if y>0 then goto get_banana goto zyx_main get_banana y=y+1 if y<30 then AUDV0=6 : AUDC0=12 : AUDF0=w if y>30 then y=0 : AUDV0=0 goto zyx_main zyx_death f=f+1 if f<60 then AUDV0=6 : AUDC0=7 : AUDF0=31 if f>60 then f=0 : a{1}=0 : AUDV0=0 : byte1=byte1-$10 : goto zyx_get_player1x goto zyx_main zyx_pf playfield: XXXXXXXXXXX..........XXXXXXXXXXX XXXX..XXXXX..........XXXX..XXXXX XXXXX.XXXXX..........XXXXX.XXXXX XXXXX..XXXX..........XXXXX..XXXX XXXXXXXXXXX..........XXXXXXXXXXX XXXX.X.XXXX..........XXXX.X.XXXX XXXX...XXXX..........XXXX...XXXX XXXXX.XXXXX..........XXXXX.XXXXX XXXXXXXXXXX..........XXXXXXXXXXX XXXX.X.XXXX..........XXXX.X.XXXX XXXXX.XXXXX..........XXXXX.XXXXX XXXX.X.XXXX..........XXXX.X.XXXX XXXXXXXXXXX..........XXXXXXXXXXX XXXXXXXXXXX..........XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end goto get_zyx_on_screen bank 6 minigame_setup a{0}=0 : a{1}=0 : a{2}=0 : v=60 : x=60 : w=0 : u=0 byte1=$00 : byte2=$BB : byte3=$00 player1: %0111110 %0111110 %1111111 %1111111 %1111111 %1111111 %0111110 %0111110 %0001000 %0001000 %0001100 %0001100 end player0: %0111110 %0111110 %1111111 %1111111 %1111111 %1111111 %0111110 %0111110 %0001000 %0001000 %0001100 %0001100 end minigame playfield: X..............XX..............X X..............XX..............X X..............XX..............X X..............XX..............X X..............XX..............X X..............XX..............X X..............XX..............X X..............XX..............X X..............XX..............X X..............XX..............X X..............XX..............X X..............XX..............X X..............XX..............X X..............XX..............X X..............XX..............X end player0x=50 : player1x=100 if joy1fire && joy0fire && !a{0} then a{0}=1 : a{1}=1 : a{2}=1 if !a{0} then goto minigame_main if a{1} then goto get_h get_h if byte1=$0A then byte1=$10 if byte1=$1A then byte1=$20 if byte1=$2A then byte1=$30 if byte1=$3A then byte1=$40 if byte1=$4A then byte1=$50 if byte1=$5A then byte1=$60 if byte1=$6A then byte1=$70 if byte1=$7A then byte1=$80 if byte1=$8A then byte1=$90 if byte1=$9A then byte1=$BB get_h2 b=0 : j=1 : d=2 : e=3 : f=4 : g=5 h=rand if h<5 then goto get_h if h>12 then goto get_h if a{2} then goto get_o else goto minigame_main get_o if byte3=$0A then byte3=$10 if byte3=$1A then byte3=$20 if byte3=$2A then byte3=$30 if byte3=$3A then byte3=$40 if byte3=$4A then byte3=$50 if byte3=$5A then byte3=$60 if byte3=$6A then byte3=$70 if byte3=$7A then byte3=$80 if byte3=$8A then byte3=$90 if byte3=$9A then byte3=$BB y=0 : z=1 : var1=2 : var2=3 : var3=4 : var4=5 o=rand if o<20 then goto get_o if o>27 then goto get_o a{2}=0 minigame_main i=h-1 : k=h-2 : m=h+1 : l=h-3 : n=h+2 p=o-1 : q=o-2 : r=o+1 : s=o-3 : t=o+2 drawscreen AUDV0=0 : player0y=88 : player1y=88 : NUSIZ0=$05 : NUSIZ1=$05 if switchbw then COLUP0=4 : COLUP1=14 : COLUPF=0 : COLUBK=10 if !switchbw then COLUP0=64 : COLUP1=30 : COLUPF=196 : COLUBK=128 if !a{0} then goto minigame else goto minigame_main_3 minigame_main_3 if joy0fire then var5=var5+1 if joy0fire && var5=10 then var5=0 : v=v-2 if !joy0fire then var5=var5+1 if !joy0fire && var5=10 then var5=0 : v=v+2 if v>60 then v=60 if v<2 then v=2 if joy1fire then var6=var6+1 if joy1fire && var6=10 then var6=0 : x=x-2 if !joy1fire then var6=var6+1 if !joy1fire && var6=10 then var6=0 : x=x+2 if x>60 then x=60 if x<2 then x=2 pfhline i b h on pfpixel h j on pfhline k d m on pfhline l e n on pfhline l f n on pfhline k g m on pfhline p y o on pfpixel o z on pfhline q var1 r on pfhline s var2 t on pfhline s var3 t on pfhline q var4 r on if joy0left then player0x=player0x-2 if joy0right then player0x=player0x+2 if player0x<18 then player0x=18 if player0x>60 then player0x=60 if joy1left then player1x=player1x-2 if joy1right then player1x=player1x+2 if player1x<82 then player1x=82 if player1x>124 then player1x=124 u=u+1 : w=w+1 if u>v then goto u_equals_whatever if w>x then goto w_equals_whatever goto minigame_main u_equals_whatever pfhline i b h off pfpixel h j off pfhline k d m off pfhline l e n off pfhline l f n off pfhline k g m off u=0 : b=b+1 : j=j+1 : d=d+1 : e=e+1 : f=f+1 : g=g+1 if b=15 then goto w_equals_whatever if w=x then goto w_equals_whatever goto minigame_main w_equals_whatever pfhline p y o off pfpixel o z off pfhline q var1 r off pfhline s var2 t off pfhline s var3 t off pfhline q var4 r off w=0 : y=y+1 : z=z+1 : var1=var1+1 : var2=var2+1 : var3=var3+1 : var4=var4+1 if b=15 && y<15 then byte1=byte1+$01 : goto get_h if b=15 && y=15 then goto start_same if y=15 && b<15 then byte3=byte3+$01 : goto get_o goto minigame_main start_same u=0 : w=0 byte3=byte3+$01 : byte1=byte1+$01 : a{2}=1 : goto get_h bank 7 bank 8