set kernel_options no_blank_lines set romsize 2k const pfscore=1 const pfres=11 dim sc2=score+1 dim sc3=score+2 titlescreen a=0 : b=0 if sc3 < z then goto New_High_Score if sc3 > z then goto ts if sc2 < y then goto New_High_Score goto ts New_High_Score sc2=y : sc3=z ts playfield: X............................... XXX.XXX.XX..XXX.XX..XXX.XXX..... X.X.X.X.X.X.X.X.X.X.X.X.X....... X.X.XXX.X.X.XXX.X.X.XXX...X..... XXX.X.X.X.X.X.X.X.X.X.X.XXX..... ................................ XXX..XX.XXX......XXX.XXX.XXX...X X.X.X...XXX......XXX.X.X.X.X...X XXX.X...X..........X.X.X.X.X.XXX X.X.X...XXX......XXX.XXX.XXX.XXX end player1: %11 %11 end l=1 : m=2 player1x=rand/2 : player1y=rand/4 titlescreen_loop COLUBK=$0e : COLUPF=$1a CTRLPF=$21 : scorecolor=$21 NUSIZ0=$27 : COLUP0=$1c if a>14 then a=0 : b=b+1 c=b/4 AUDV1=4 : AUDV0=4 if bananasong[b]>32 && a>10 then AUDV0=0 AUDC0=4 : AUDF0=bananasong[b] AUDC1=12 : AUDF1=bananasongbass[c] if b{6} then b=0 gosub fly_movement if joy0fire then goto main_game_setup drawscreen goto titlescreen_loop main_game_setup playfield: .............XX................. ............XXX................. ...........XXX.................. ..........XXX................... ..........XXX................... ..........XXX................... ..........XXX................... ...........XXX.................. ............XXX................. .............XX................. end score=0 : f=0 : h=0 : k=0 j=$1c : COLUP0=$1c pfscorecolor=$42 : player0x=$42 : player0y=$42 pfscore1=255 player0: %111 %111 %111 %111 %111 %111 %111 end main_game f=f+1 if f>19 then pfscore1=pfscore1/2 : f=0 COLUPF=j NUSIZ0=5 if switchreset then goto titlescreen missile1y=player0y+missile1height : missile1x=player0x+14 drawscreen if pfscore1=0 then k=31 : j=j-2 : pfscore1=255 if j=$12 then goto game_over gosub fly_movement AUDV0=h/4 : AUDV1=k/4 if h>0 then h=h-2 : AUDC0=12 : AUDF0=h if k>0 then k=k-1 : AUDC1=1 : AUDF1=k if joy0fire && o<31 && collision(player1,player0) then h=32 : pfscore1=255 : gosub speed_up if o>30 then o=31 if joy0fire then o=o+1 : missile1height=4 : player0height=4 : goto main_game missile1height=7 : player0height=7 : o=7 if joy0left then player0x=player0x-1 if joy0right then player0x=player0x+1 if joy0up then player0y=player0y-1 if joy0down then player0y=player0y+1 if player0x<2 then player0x=140 if player0x>140 then player0x=2 if player0y<2 then player0y=88 if player0y>88 then player0y=2 goto main_game game_over playfield: ..XXX.XXX.XXXXX.XXX....X..XXX.. ..X.X...X.X.X.X.X.X.......X.... ..XXX.XXX.X.X.X.XXX....X..XXX.. ....X.X.X.X.X.X.X......X....X.. ..XXX.XXX.X.X.X.XXX....X..XXX.. ............................... .XXX.XXX....XXX.X.X.XXX..XX..X. .X...X.X....X.X.X.X.X.X.X....X. .XXX.X.X....X.X.X.X.XXX.X....X. ...X.X.X....X.X.X.X.X...X...... .XXX.XXX....XXX..X..XXX.X....X. end player1y=200 : player0y=200 : missile1y=200 g=0 : i=0 : COLUBK=0 game_over_loop if i<254 then i=i+1 if !joy0fire && g{0} then goto titlescreen if i=254 && joy0fire && !g{0} then g{0}=1 drawscreen goto game_over_loop speed_up player1x=rand/2 : player1y=rand/4 score=score+1 if score=25 || score=50 then m=m+1 : l=l+1 return fly_movement a=a+1 COLUP1=0 if a{1} then e=rand/32 if player1x>10 then player1x=player1x-l if e{1} && player1x<150 then player1x=player1x+m if player1y>2 then player1y=player1y-l if e{2} && player1y<88 then player1y=player1y+m return data bananasong 15, 15, 15, 20, 18, 20, 20, 23, 24, 20, 20, 20, 20, 20, 52, 20 18, 13, 13, 15, 16, 18, 18, 16, 20, 20, 20, 20, 20, 20, 20, 20 15, 15, 15, 20, 18, 20, 20, 23, 24, 20, 20, 20, 20, 20, 52, 20 18, 13, 13, 15, 16, 18, 18, 16, 15, 15, 15, 15, 15, 15, 15, 47 end data bananasongbass 20, 27, 20, 27, 18, 25, 27, 21 20, 27, 20, 27, 18, 27, 20, 27 end