set kernel_options no_blank_lines pfcolors set romsize 16k start_over dim musicPointer=j dim musicTimer=k dim beatPointer=i dim beatTimer=m dim tempaudv=l i=1 rem INITIALIZE POINTERS AND TIMERS musicPointer=$FF musicTimer=0 beatPointer=$FF beatTimer=0 lives=96 lives: %00000000 %00111100 %00111100 %00111100 %00111100 %00111100 %00111100 %00000000 end lifecolor=14 statusbarlength=0 a=0 playfield: ..............XXXX.............. .............XX.X.X............. ............XXXX.XXX............ ...........X.XXXXXX.X........... ............XXXX.XXX............ ................................ X.X.X.XX..XX..X.X...X...XX...... X.X.X.X.X.X.X.X.X..X.X.X........ XX..X.XX..XX...XX....X.XX....... X.X.X.X.X.X.X...X...X..X.X...... X.X.X.X.X.XX..XX...XXX..X....... end pfcolors: 92 92 92 92 92 92 92 92 92 92 92 92 end b=0 : c=0 : d=0 : f=0 : p=0 : o=0 : rem MUSIC SETUP v{0}=0 : v{1}=0 : v{2}=0 gosub eyes_blink_anim title_screen drawscreen dim screen=n n=1 : g{1}=0 COLUP1=92 : NUSIZ1=$20 : missile1height=3 : missile1x=82 : missile1y=19 COLUBK=14 if a=0 && b=1 && !e{1} then c=rand/64 b=b+1 if b>60 && !e{1} then b=0 : d=d+1 if d>c && !e{1} then d=0 : e{1}=1 : e{2}=1 rem BLINKING EYES CODE player0x=125 : player0y=89 : player1x=136 : player1y=89 : COLUP0=92 if e{1} && e{2} && b>1 then b=0 : a=a+1 : gosub eyes_blink_anim if e{1} && e{2} && a>3 then e{2}=0 if e{1} && !e{2} && a=0 then e{1}=0 : b=0 if e{1} && !e{2} && b>1 then b=0 : a=a-1 : gosub eyes_blink_anim if e{1} && e{2} && a>3 then e{2}=1 if joy0fire then e{0}=1 if !joy0fire && e{0} then e{0}=0 : screen=1 : goto begin_level goto title_screen changeMusicNote2 musicPointer = musicPointer + 1 if !a{3} && !g{3} then AUDF0 = musicData[musicPointer] tempaudv = 8 if musicData[musicPointer] = $FF then tempaudv = 0 if !a{3} && !g{3} then AUDV0 = tempaudv musicPointer = musicPointer + 1 musicTimer = musicData[musicPointer] rem value is (2 * #_OF_NOTES) - 1 if musicPointer > 182 then musicPointer = #-1 return changeBeatNote2 beatPointer = beatPointer + 1 AUDF1 = beatData[beatPointer] tempaudv = 8 if beatData[beatPointer] = $FF then tempaudv = 0 AUDV1 = tempaudv beatPointer = beatPointer + 1 beatTimer = beatData[beatPointer] rem value is (2 * #_OF_NOTES) - 1 if beatPointer > 224 then beatPointer = #-1 return eyes_blink_anim if a=0 then player0: %0111110 %0111110 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %0111110 %0111110 end if a=0 then player1: %0111110 %0111110 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %0111110 %0111110 end if a=1 then player0: %0111110 %0111110 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %0111110 %0111110 end if a=1 then player1: %0111110 %0111110 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1100011 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %0111110 %0111110 end if a=2 then player0: %0111110 %0111110 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100011 %1100011 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %0111110 %0111110 end if a=2 then player1: %0111110 %0111110 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100111 %1100011 %1100011 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %0111110 %0111110 end if a=3 then player0: %0111110 %0111110 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %0111110 %0111110 end if a=3 then player1: %0111110 %0111110 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %1111111 %0111110 %0111110 end return begin_level missile1x=0 : missile1y=0 player0x=0 : player0y=0 COLUP1=14 player1x=0 : player1y=0 if screen=1 then playfield: ...X...XXX.X.X.XXX.X.......X.... ...X...X...X.X.X...X......XX.... ...X...XXX.X.X.XXX.X.......X.... ...X...X...X.X.X...X.......X.... ...XXX.XXX..X..XXX.XXX....XXX... ................................ ....XX..X....X..XXX.XX...XX..... ....X.X.X...X.X..X..X.X.X....... ....XX..X...XXX..X..X.X..X...... ....X...X...X.X..X..X.X...X..... ....X...XXX.X.X.XXX.X.X.XX...... end if screen=1 then score=0 : pfcolors: 200 200 200 200 200 200 200 200 200 200 200 200 end player1y=81 AUDC1=12 if joy0fire then e{0}=1 if !joy0fire && e{0} then e{0}=0 : goto begin drawscreen goto begin_level begin player1: %0 end g{2}=0 COLUP1=92 if r=1 then COLUP0=204 if r=2 then COLUP0=68 if r>2 && r<5 then COLUP0=6 if r=5 then COLUP0=0 if r=6 then COLUP0=30 screen=22 drawscreen if screen>9 then goto level_1_part_2 if screen>19 then goto level_1_part_3 if screen=1 then r=1 : v{2}=1 : statusbarlength=96 : y=51 : a{6}=0 : u{3}=0 : u{4}=0 : u{5}=0 : playfield: ............................... ....XXXXXXXXXX.......XXXXXX.... ......XXXXX.........XXXXXXXXX.. ............................... ............................... ............................... ............................... ............................... ............................... ............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end if screen=2 then playfield: ............................... ....XXXXXXXXXX.......XXXXXX.... ......XXXXX.........XXXXXXXXX.. ............................... ............................... ............................... ............................... ............................... ............................... ............................... XXXXXXXX........X.........XXXXX end if screen=3 then playfield: ............................... ....XXXXXXXXXX.......XXXXXX.... ......XXXXX.........XXXXXXXXX.. ............................... ............................... ............................... ............................... ............XXXXXX............. ............................... ............................... XXXXXXXX..............XXXXXXXXX end if screen=4 then r=2 : playfield: ............................... ....XXXXXXXXXX.......XXXXXX.... ......XXXXX.........XXXXXXXXX.. ............................... ............................... ............................... ............................... ........XXXXXXXXXXXXXXXXXXX... ............................... ............................... XXXXXXXX...............XXXXXXXX end if screen=5 then r=3 : playfield: ............................... ....XXXXXXXXXX.......XXXXXX.... ......XXXXX.........XXXXXXXXX.. ............................... ............................... ............................... ............................... ........XXXXXXXXXXXXXXXXXXX.... ............................... ............................... XXXXXXXX...............XXXXXXXX end if screen=6 then r=4 : playfield: ............................... ....XXXXXXXXXX.......XXXXXX.... ......XXXXX.........XXXXXXXXX.. ............................... ............................... ............................... ............................... ............................... ............................... ............................... XXXXXXXX.......XX...........XXX end if screen=8 then playfield: ............................... ....XXXXXXXXXX.......XXXXXX.... ......XXXXX.........XXXXXXXXX.. ............................... ............................... ............................... ............................... ....................X.......... ............................... ............................... XXXXXXX......X.............XXXX end if screen=9 then r=5 : y=30 : playfield: ............................... ....XXXXXXXXXX.......XXXXXXXX.. ......XXXXX.........XXXXXXXXX.. ............................... ............................... ............................... ............................... ............................... ............................... ............................... XXXXXXX....................XXXX end goto level_1_playfieldcolors level_1_part_2 if screen=10 then r=4 : y=30 : u{1}=1 : u{3}=1 : u{6}=1 : playfield: ............................... ....XXXXXXXXXX.......XXXXXXX... ......XXXXX.........XXXXXXXXX.. ............................... ............................... ............................... ............................... ....XXXX................XXXX... ............................... ............................... XXXXXXXX................XXXXXXX end if screen=11 then r=4 : y=30 : u{1}=1 : u{3}=0 : u{4}=1 : playfield: ............................... ....XXXXXXXXXX.......XXXXXXXX.. ......XXXXX.........XXXXXXXXX.. ............................... .............XXX............... ............................... ............................... .......XXXX.................... ............................... ............................... XXXXXXX.................XXXXXXX end if screen=12 then r=4 : y=30 : u{1}=1 : u{4}=0 : u{5}=1 : playfield: ............................... ....XXXXXXXXXX.......XXXXXX.... ......XXXXX.........XXXXXXXXX.. ............................... .............XXXX........XXXXXX ............................... ............................... ............................... ............................... ............................... XXXXXXX........................ end if screen=13 then u{5}=0 : u{3}=1 : u{1}=1 : r=4 : y=30 : playfield: ............................... ....XXXXXXXXXX.......XXXXXX.... ......XXXXX.........XXXXXXXXX.. ............................... XXXXX.....................XXXXX ............................... ............................... ..............XXXXXX........... ............................... ............................... XXX...........XXXXXX........... end if screen=13 && !u{7} then missile1x=80 : missile1y=70 : missile1height=7 if screen=14 then r=2 : missile1x=0 : missile1y=0 : u{3}=0 : playfield: ............................... ....XXXXXXXXXX.......XXXXXX.... ......XXXXX.........XXXXXXXXX.. ............................... ........XXXXXXXXXXXXXX......... ............................... ............................... ............................... ............................... ............................... XXXXXXXX..............XXXXXXXXX end if screen=15 then r=4 : y=30 : u{3}=1 : u{1}=1 : playfield: ............................... ....XXXXXXXXXX.......XXXXXX.... ......XXXXX.........XXXXXXXXX.. ............................... .......XXXXXX.....XXXXXX....... ............................... ............................... .......XXXXXX.....XXXXXX....... ............................... ............................... XXXXXX...................XXXXXX end if screen=16 then r=6 : u{3}=0 : playfield: ............................... ....XXXXXXXXXX.......XXXXXX.... ......XXXXX.........XXXXXXXXX.. ............................... ............................... ............................... ............................... ............................... ............................... ............................... XXXXXX...XXXXXXXXXXXXXXXXXXXXXX end if screen=17 then r=4 : y=30 : u{4}=1 : playfield: ............................... ....XXXXXXXXXX.......XXXXXX.... ......XXXXX.........XXXXXXXXX.. ............................... ............................... ............................... ............................... ............................... ............................... ............................... XXXXXXXXX..................XXXX end if screen=18 then r=7 : u{4}=0 : playfield: ............................... ....XXXXXXXXXX.......XXXXXX.... ......XXXXX.........XXXXXXXXX.. ............................... .....................XXXXXXXXXX ............................... ............................... ..........XXXXXXXXXXX.......... ............................... ............................... XXXXXXXXXX..................... end if screen=19 then r=4 : y=30 : u{3}=1 : playfield: ............................... ....XXXXXXXXXX.......XXXXXX.... ......XXXXX.........XXXXXXXXX.. ............................... XXXXX.......................... ............................... ............................... .......XXXXXXXXXX.............. ............................... ............................... XXX....XXXXXXXXXX..........XXXX end level_1_part_3 if screen=20 then r=8 : u{3}=0 : u{6}=1 : playfield: ............................... ....XXXXXXXXXX.......XXXXXX.... ......XXXXX.........XXXXXXXXX.. ............................... ............................... ............................... ............................... .......XXXXX......XXXXXXXX..... ............................... ............................... XXXXXXX....................XXXX end if screen=21 then r=4 : u{7}=0 : u{4}=1 : y=30 : playfield: ............................... ....XXXXXXXXXX.......XXXXXX.... ......XXXXX.........XXXXXXXXX.. ............................... ..............XXXXXXXXXX....... ............................... ............................... ............................... ............................... ............................... XXXXXXXXXXXXXX................. end if screen=21 && !u{7} then missile1x=90 : missile1y=20 : missile1height=7 screen_22 if screen=22 then r=1 : u{4}=0 : y=52 : playfield: ............................... ............................... ............................... ............................... XXXXXXXXXXXXX.................. ............................... ............................... ............................... ............................... ............................... XXXXXXXXXXXXXXXXX.......XXXXXXX end w=22 : f=9 level_1_playfieldcolors pfcolors: 14 14 14 14 196 248 196 196 248 196 196 248 end player1x=20 player0x=120 : player0y=81 if screen=4 then x=130 if screen=6 then player0x=76 if screen=9 then player0x=76 if screen=10 then player0x=40 if screen=11 then player0x=100 if screen=12 then player0x=88 if screen=13 then player0x=44 if screen=14 then player0x=70 : x=50 if screen=15 then player0x=44 if screen=16 then player0y=81 : player0x=100 : x=130 if screen=17 then player0x=58 if screen=18 then player0x=130 : player0y=35 if screen=19 then player0x=49 : player0y=57 if screen=20 then player0x=108 : g{2}=0 : player0y=50 if screen=21 then player0x=72 : player0y=30 if screen=22 then player0x=115 : player0y=70 COLUP1=92 if r=1 then COLUP0=204 if r=2 then COLUP0=68 if r>2 && r<5 then COLUP0=6 if r=5 then COLUP0=0 if r>5 && r<8 then COLUP0=30 if r=8 then COLUP0=6 drawscreen a{6}=0 : g{0}=1 : a{7}=1 e=8 goto p_0_anim bank2 bank 2 death if g{7} then g{7}=0 : goto game_over_setup bank3 if lives<32 then g{7}=1 u{0}=0 g{6}=1 : t=0 : statusbarlength=64 goto main bank3 p_0_anim if r=8 then player0: %00000100 %00001100 %00011100 %00111100 %00011100 %00001100 %00011100 %00111100 %00011100 %00001100 %00011100 %00111100 %00011100 %00001100 %00011100 %00111100 %00011100 %00001100 %00011100 %00111100 %00011100 %00001100 %00011100 %00111100 %00011100 %00001100 %00011100 %00111100 %00011100 %00001100 %00011100 %00111100 %00011100 %00001100 %00011100 %00111100 %00011100 %00001100 %00011100 %00111100 %00011100 %00001100 %00000100 end if r=8 then goto main bank3 if s>20 then s=0 if r>5 && r<8 then goto var_r_6 if r=5 then goto var_r_5 if r=3 || r=4 then goto var_r_3_4 if r=2 then x=110 if r<3 then goto the_rest_of_the_enemies var_r_6 if s<5 then player0: %00111100 %01000010 %10000001 %10111101 %11111111 %11011011 %01111110 %00111100 end if s>4 && s<10 then player0: %00111100 %01001110 %10011011 %10011111 %10011111 %10011011 %01001110 %00111100 end if s>9 && s<15 then player0: %00111100 %01111110 %11011011 %11111111 %10111101 %10000001 %01000010 %00111100 end if s>14 then player0: %00111100 %01110010 %11011001 %11111001 %11111001 %11011001 %01110010 %00111100 end goto main bank3 var_r_5 if s<10 then player0: %00100100 %00011000 %00111100 %01111110 %11011011 %10011001 %00011100 %00011000 end if s>9 then player0: %00100100 %10011000 %11011011 %01111110 %00111100 %00011000 %00011100 %00011000 end goto main bank3 var_r_3_4 player0: %00000100 %00001100 %00011100 %00111100 %00011100 %00001100 %00011100 %00111100 %00011100 %00001100 %00011100 %00111100 %00011100 %00001100 %00011100 %00111100 %00011100 %00001100 %00011100 %00111100 %00011100 %00001100 %00011100 %00111100 %00011100 %00001100 %00000100 end if r=3 then player0y=57 goto main bank3 the_rest_of_the_enemies if a{6} && r=1 then goto p_0_anim_1 if !a{6} && r=1 then goto p_0_anim_2 if r=2 && s<10 then p_0_anim_3 if r=2 && s>9 then p_0_anim_4 p_0_anim_3 player0: %00001100 %01101000 %01001000 %01111100 %11000100 %11011000 %11111110 %11101000 %01110000 end goto main bank3 p_0_anim_4 player0: %01100000 %01001100 %01001000 %01111100 %11000100 %11011000 %11111110 %11101000 %01110000 end goto main bank3 p_0_anim_1 player0: %00111100 %01111110 %11111111 %11111111 %11011011 %11011011 %01111110 %00111100 end goto main bank3 p_0_anim_2 player0: %11111111 %11111111 %01111110 %01111110 %01011010 %01011010 %01111110 %00111100 end goto main bank3 bank 3 data musicData 31,6,-1,2,31,6,-1,2,31,6,-1,2,31,6,-1,2,31,6,-1,10 20,16,18,16,20,8,23,8,24,16,20,15,-1,1,20,32,-1,96 31,6,-1,2,31,6,-1,2,31,6,-1,2,31,6,-1,2,31,6,-1,10 20,16,18,16,20,8,22,8,23,16,27,16,24,16,20,48,-1,64 26,6,-1,2,26,6,-1,2,26,6,-1,2,26,6,-1,2,26,6,-1,10 17,16,15,32,17,30,-1,2 29,6,-1,2,29,6,-1,2,29,6,-1,2,29,6,-1,2,29,6,-1,10 19,16,17,32,19,30,-1,2 20,6,-1,10,23,6,-1,10,24,6,-1,10,27,6,-1,10 20,6,-1,10,23,6,-1,10,24,6,-1,10,27,6,-1,10 31,6,-1,10,24,6,-1,10,20,6,-1,10,16,6,-1,10,15,48,-1,16 end data beatData 31,8,-1,8,26,8,-1,8,19,8,-1,8,9,8,-1,8,8,8,-1,8,7,8,-1,40 31,8,-1,8,26,8,-1,8,19,8,-1,8,7,8,-1,8,8,8,-1,8,9,8,-1,40 31,8,-1,8,26,8,-1,8,19,8,-1,8,9,8,-1,8,8,8,-1,8,7,8,-1,40 31,8,-1,8,26,8,-1,8,19,8,-1,8,7,8,-1,8,8,8,-1,8,9,8,-1,40 16,8,26,8,16,8,26,8,16,8,-1,8,26,8,-1,8 16,8,26,8,16,8,26,8,16,8,-1,8,26,8,-1,8 18,8,24,8,18,8,24,8,18,8,-1,8,24,8,-1,8 18,8,24,8,18,8,24,8,18,8,-1,8,24,8,-1,8 8,8,-1,8,8,7,-1,1,8,7,-1,1,7,16,8,16 8,8,-1,8,8,7,-1,1,8,7,-1,1,7,16,8,16 19,8,26,8,19,8,15,8,14,8,15,8,14,8,15,8 19,8,-1,8,26,8,-1,8,19,8,-1,24 end main if r=1 then COLUP0=204 if r=2 then COLUP0=68 if r>2 && r<5 then COLUP0=6 if r=5 then COLUP0=0 : s=s+1 if r>5 && r<8 then COLUP0=30 if r=8 then COLUP0=6 if u{3} then NUSIZ0=$06 if u{4} then NUSIZ0=$03 if u{5} then NUSIZ0=$02 if g{6} && t>30 then g{6}=0 : t=0 : player1x=20 : player1y=81 : musicPointer=$FF : musicTimer=0 : beatPointer=$FF : beatTimer=0 : goto begin bank1 if g{6} && t<30 then t=t+1 : drawscreen : AUDV0=6 : AUDC0=8 : AUDF0=8 : AUDV1=0 : goto main if r=8 then goto main_2 if r=2 || r>5 then goto enemy_2 if collision(player0,playfield) && r=1 && player0y<80 then score=score+200 : a{7}=0 if a{6} && !g{2} && screen<>5 then player0y=player0y-1 if !a{6} && !g{2} && screen<>5 then player0y=player0y+1 if g{2} && a{7} && player0y<81 then player0y=player0y+3 if player0y60 && screen=17 then a{6}=1 if player0y>80 && !u{1} && !g{2} then a{6}=1 if player0y80 && u{6} && !g{2} then a{6}=1 goto main_2 enemy_2 s=s+1 if screen=4 && r=2 then player0y=58 if screen=14 && r=2 then x=90 : player0y=35 if !collision(player0,playfield) && r=7 then z{6}=0 : player0y=player0y+1 if player0y=35 && collision(player0,playfield) && r=7 then z{6}=1 if player0y=57 && collision(player0,playfield) && r=7 then z{6}=1 if player0y=81 && collision(player0,playfield) && r=7 then z{6}=1 if r=7 then player0x=player0x-1 if player0x<18 then player0x=140 : player0y=35 if r=7 then goto main_2 if a{6} then REFP0=8 else REFP0=0 if a{6} && !g{2} then player0x=player0x-1 if !a{6} && !g{2} then player0x=player0x+1 if player0x<50 then a{6}=0 if player0x>x then a{6}=1 main_2 if joy0up && a{5} then a{5}=0 : u{0}=1 : a{3}=0 if joy0up && a{4} then a{4}=0 : u{0}=1 : a{3}=0 if player1x<20 then player1x=20 if statusbarlength<8 then lives=lives-32 : goto death bank2 if player1y>90 && player1y<92 && !g{6} then lives=lives-32 : goto death bank2 if player1x>140 then screen=screen+1 : goto begin bank1 if !a{7} then player0x=0 : player0y=0 if !g{6} && musicTimer = 0 && screen>0 then gosub changeMusicNote_level1music musicTimer = musicTimer - 1 if !g{6} && beatTimer = 0 && screen>0 then gosub changeBeatNote_level1music beatTimer = beatTimer - 1 rem SUCKING UP BLOX CODE if v{2} then goto main_3 d=(player1x-13)/4 if a{3} && d>w && f=9 && pfread(w,f) then pfpixel w f off : w=w+1 : goto player_colors if a{3} && d30 && v{0} then v{0}=0 : v{2}=1 if v{2} then pfpixel w f off main_3 COLUP1=92 : COLUBK=138 : NUSIZ1=$20 drawscreen main_4 if a{3} && h>2 then h=h-1 : AUDC0=8 : AUDV0=6 : AUDF0=h if a{3} && !joy0up then a{3}=0 : AUDC0=1 : AUDV0=0 : AUDF0=musicData[musicPointer] if switchreset then goto start_over bank1 if player1y>81 && !a{5} && !u{0} then player1y=81 if !a{7} then player0x=0 : player0y=0 scorecolor=14 if joy0fire && !a{5} && !a{4} && !u{0} then a{0}=0 : a{1}=0 : a{4}=1 : g{3}=1 : e=8 if !joy0fire && a{4} then c=0 : a{4}=0 : a{5}=1 : g{3}=0 : e=8 : AUDV0=0 : AUDC0=1 : AUDF0=musicData[musicPointer] if a{4} then player1y=player1y-1 : c=c+1 if g{3} && !a{3} then e=e-1 : AUDV0=6 : AUDC0=12 : AUDF0=e if e<3 && g{3} then g{3}=0 : AUDV0=0 : AUDC0=1 : AUDF0=musicData[musicPointer] if a{4} && c>30 then a{4}=0 : a{5}=1 : c=0 : g{3}=1 if a{5} then a{4}=0 : player1y=player1y+1 if collision(player1,playfield) && a{5} && player1y=35 then player1y=player1y-1 : a{5}=0 if collision(player1,playfield) && a{5} && player1y=59 then player1y=player1y-1 : a{5}=0 if collision(player1,playfield) && a{5} && player1y>78 then player1y=player1y-1 : a{5}=0 if !collision(player1,playfield) && !a{4} && !u{0} then a{5}=1 p=player1x-30 : q=player1x+30 t=player1y-5 if joy0down && !u{0} && !v{0} && v{1} then v{1}=0 : v{0}=1 : f=(player1y-8)/8 : goto main_5 if joy0down && !u{0} && !v{0} && player1y<78 then player1y=player1y+2 : a{5}=1 main_5 if !joy0up && !joy0left && !joy0right then a{1}=0 : a{3}=0 : a{0}=1 if joy0right && !u{0} then a{0}=0 : a{1}=1 : a{2}=0 : player1x=player1x+1 if joy0left && !u{0} then a{0}=0 : a{1}=1 : a{2}=1 : player1x=player1x-1 if joy0up && !u{0} then a{0}=0 : a{1}=0 : a{3}=1 if collision(player0,player1) && a{3} && r=6 then a{3}=0 if a{3} && a{2} && pplayer0x && player0y>t && player1y<=player0y && r<3 then a{6}=0 : g{2}=1 : player0x=player0x+1 if a{3} && !a{2} && q>player0x && player1xt && player1y<=player0y && r<3 then a{6}=0 : g{2}=1 : player0x=player0x-1 if collision(player1,missile1) then statusbarlength=96 : missile1x=0 : missile1y=0 : u{7}=1 if collision(player0,player1) && !a{3} then statusbarlength=statusbarlength-16 : player1x=20 if collision(player0,player1) && !a{3} && screen=18 then player0x=140 : player0y=35 if collision(player0,player1) && a{3} && r<3 then a{7}=0 : player0x=0 : player0y=0 : score=score+100 if a{2} then REFP1=8 else REFP1=0 if a{1} then b=b+1 if b>20 then b=0 if u{0} then goto flying if a{1} && b<10 then goto kirby_walk_anim_1 if a{1} && b>9 then goto kirby_walk_anim_2 if a{3} && !u{0} then g{0}=0 : goto kirby_sucking else g{0}=1 : g{2}=0 : h=31 : AUDC0=1 if a{0} then goto kirby_standing kirby_standing player1: %11100111 %01111110 %00111100 %10111101 %11100111 %11111111 %01011010 %01011010 %00111100 end if a{7} then goto p_0_anim bank2 goto main kirby_sucking player1: %01111100 %00111000 %00011100 %00111111 %01111100 %01111000 %01111100 %01110111 %00110110 %00011100 end if a{7} then goto p_0_anim bank2 goto main kirby_walk_anim_1 player1: %01111000 %00110111 %00011100 %00111110 %01111101 %01111111 %01111011 %01111011 %00111110 end if a{7} then goto p_0_anim bank2 goto main kirby_walk_anim_2 player1: %00001111 %01110110 %00011100 %00111110 %01111101 %01111111 %01111011 %01111011 %00111110 end if a{7} then goto p_0_anim bank2 goto main flying player1: %01111110 %11111111 %11111111 %11111111 %11101011 %11101011 %00111100 end if u{0} && player1y<8 then player1y=8 if u{0} && joy0up && player1y>8 then a{3}=0 : player1y=player1y-2 if u{0} then o=o+1 : a{5}=0 if u{0} && o>2 then o=0 : player1y=player1y+1 if u{0} && joy0left then NUSIZ1=8 : o=o+1 : a{2}=1 if u{0} && joy0left && o>2 then o=0 : player1x=player1x-1 if u{0} && joy0right then NUSIZ1=0 : o=o+1 : a{2}=0 if u{0} && joy0right && o>2 then o=0 : player1x=player1x+1 if u{0} && collision(player1,playfield) && player1y=34 then c=0 : u{0}=0 if u{0} && collision(player1,playfield) && player1y=57 then c=0 : u{0}=0 if u{0} && collision(player1,playfield) && player1y=81 then c=0 : u{0}=0 if a{7} then goto p_0_anim bank2 goto main changeMusicNote_level1music musicPointer = musicPointer + 1 if !a{3} && !g{3} then AUDF0 = musicData[musicPointer] tempaudv = 8 if musicData[musicPointer] = $FF then tempaudv = 0 if !a{3} && !g{3} then AUDV0 = tempaudv musicPointer = musicPointer + 1 musicTimer = musicData[musicPointer] rem value is (2 * #_OF_NOTES) - 1 if musicPointer > 182 then musicPointer = #-1 return changeBeatNote_level1music beatPointer = beatPointer + 1 AUDF1 = beatData[beatPointer] tempaudv = 8 if beatData[beatPointer] = $FF then tempaudv = 0 AUDV1 = tempaudv beatPointer = beatPointer + 1 beatTimer = beatData[beatPointer] rem value is (2 * #_OF_NOTES) - 1 if beatPointer > 218 then beatPointer = #-1 return game_over_setup playfield: ..XXXX..XXX..X...X.XXXXX........ .X.....X...X.XX.XX.X............ .X.XXX.X.XXX.X.X.X.XXXXX........ .X...X.X...X.X.X.X.X............ ..XXX..X...X.X...X.XXXXX........ ................................ ..XXX..X...X.XXXXX.XXXX......... .X...X.X...X.X.....X...X........ .X.X.X.X...X.XXXXX.X.XX......... .X...X..X.X..X.....X...X........ ..XXX....X...XXXXX.X...X........ end pfcolors: 14 14 14 14 14 14 14 14 14 14 14 14 end AUDV0=0 : AUDV1=0 : lives=0 : statusbarlength=0 player0x=0 : player0y=0 player1x=0 : player1y=0 missile1x=0 : missile1y=0 u{7}=0 : u{2}=0 game_over COLUBK=0 drawscreen if !joy0fire && u{7} then u{7}=0 : goto start_over bank1 if joy0fire && !u{7} then u{7}=1 goto game_over player_colors if r=1 then COLUP0=204 if r=2 then COLUP0=68 if r>2 && r<5 then COLUP0=6 if r=5 then COLUP0=0 : s=s+1 if r>5 && r<8 then COLUP0=30 if r=8 then COLUP0=6 COLUP1=92 drawscreen goto main_4 bank 4 inline 6lives_statusbar.asm