includesfile multisprite_bankswitch.inc set kernel multisprite set romsize 8k dim byte1=score dim byte2=score+1 dim byte3=score+2 dim dktimer=o dim level=p level=1 n{5}=1 b=0 the_aegis_logo player0: %10101100 %10101001 %11101101 %10101001 %01001100 end player1: %11010110 %01010001 %01010010 %00010100 %11010011 end player2: %0110110 %0110110 %1001001 %1001001 %1001000 %1001000 %1001000 %1001000 %1001000 %1001000 %0111110 %0111110 %0001001 %0001001 %0001001 %0001001 %1001001 %1001001 %1001001 %1001001 %0110110 %0110110 end the_aegis_logo_2 player0x=71 : player0y=40 player1x=84 : player1y=38 player2x=77 : player2y=62 COLUP0=b _COLUP1=b COLUP2=b : NUSIZ2=$05 drawscreen a=a+1 d=d+1 if b=0 && c{0} then a=0 : goto title_screen if a>7 && !c{0} && b=0 then b=b+126 if a>7 && c{0} && b=128 then b=2 if a>7 && d<47 && !c{0} then b=b+2 if b=136 && !c{0} then c{0}=1 if a>7 && d>71 && c{0} then b=b-2 if a>7 then a=0 goto the_aegis_logo_2 title_screen x=0 missile1x=0 : missile1y=0 player0x=0 : player0y=0 : player1x=0 : player1y=0 player2x=0 : player2y=0 : player3x=0 : player3y=0 player4x=0 : player4y=0 : player5x=0 : player5y=0 drawscreen COLUPF=208 if joy0fire then n{6}=1 if !joy0fire && n{6} then n{6}=0 : n{5}=0 : score=0 : byte1=$3F t=0 main_setup e=0 n{0}=0 : n{1}=0 : n{2}=0 m{5}=0 m{6}=0 pfheight=1 a{2}=0 : a{3}=0 r=0 if level>3 then t=t+1 : level=1 if level=1 then playfield: ................ ................ .............XX. ............X.X. ...........X..X. ..........X...X. .........X....X. ........X.....X. .......XXX....X. .......XXX....X. ........X.....X. ..............X. .XXXXXXX......X. XXXXXXXXXX....X. XXXXXXXXXX....X. X.X.X.X.XX....X. X.X.X.X.XXX...X. ......X.X.X...X. ........X.X...X. XXXXX.....X...X. XXXXXXX...X...X. X.X.X.XX..X...X. X.X.X.XXX.X...X. ......X.X.X..... ........X.X..... XXXXXX..X.X..... XXXXXXX.X.X..... X.X.XXX.X.X..... X.X.X.X.X.X..... ....X.X.XXXXXXXX ........X....... .......XX....... .......XXXXXXXXX .......X........ ......XX........ ......XXXXXXXXXX .....XX......... ..XXXXX......... XXXXXXXXXX.XXXXX ................ XXXXXXXX.XXXXXXX XXXXXXX.XXXXXXXX ................ XXXXX.XXXXXXXXXX end if n{5} then goto title_screen if level=2 then playfield: ................ ................ .........XXXXXXX ........XX....X. .......X.X....X. ......X.XXX...X. .....X..XXX...X. ....X....X....X. XXXX..........X. ..............X. ..............X. ..............X. ..............X. ..............X. ..............X. ..............X. ..............X. ..............X. ..............X. ...X..........X. ..XXX.........X. ..XXX.........X. .XXXXX........X. .XXXXX.......... .XXXXX.......... ..XXX........... ..XXX........... ...X............ ...X......XXXXXX ...X........X... ...X........X... ...X........X... ...X........X... ...X...XXXXXXXXX ...X....X....... ...X....X....... ...X....X....... ...X....X....... XXXXXXXXXX.XXXXX ................ XXXXXXXX.XXXXXXX XXXXXXX.XXXXXXXX ................ XXXXX.XXXXXXXXXX end if level=3 then playfield: ................ ................ .............XX. ............X.X. ...........X..X. ..........X...X. .........X....X. ........X.....X. .......XXX....X. .......XXX....X. ........X.....X. ..............X. .XXXXXXX......X. XXXXXXXXXX....X. XXXXXXXXXX....X. X.X.X.X.XX....X. X.X.X.X.XXX...X. ......X.X.X...X. ........X.X...X. XXXXX.....X...X. XXXXXXX...X...X. X.X.X.XX..X...X. X.X.X.XXX.X...X. ......X.X.X..... ........X.X..... XXXXXX..X.X..... XXXXXXX.X.X..... X.X.XXX.X.X..... X.X.X.X.X.X..... ....X.X.XXXXXXXX ........X....... .......XX....... .......XXXXXXX.. .......X.....X.. ......XX.....X.. ......XXXXXXXXXX .....XX......... ..XXXXX......... XXXXXXXXXX.XXXXX ................ XXXXXXXX.XXXXXXX XXXXXXX.XXXXXXXX ................ XXXXX.XXXXXXXXXX end if level<3 then COLUPF=208 else COLUPF=$48 COLUBK=0 player3: %01100110 %01000010 %01100110 %00111100 %00111100 %01111110 %01111110 %01111110 %11111111 %11111111 %10111101 %00111100 %00011000 end player1: %00110110 %00010010 %00011110 %01111110 %01100000 %11101111 %11100111 %11100101 %11101111 %11100100 %01000100 %01000000 end player2: %00011000 %00111100 %00111100 %00011000 %10011001 %11111111 %00111100 %01111110 %11011011 %11011011 %01011010 end player4: %00011000 %00111100 %00111100 %00011000 %10011001 %11111111 %00111100 %01111110 %11011011 %11011011 %01011010 end player1x=78 player1y=24 : player2x=54 : player2y=15 : NUSIZ2=$06 after_death player3x=79 : player3y=60 player4x=0 : player4y=0 player0: %00111000 %01111100 %01111100 %00111000 end player5: %00111000 %01111100 %01111100 %00111000 end goto get_player0 bank2 r_0 if e>2 && s{3} && player1y<84 then player3y=player3y+1 AUDV1=0 a{2}=0 AUDV0=5 : AUDC0=12 : AUDF0=z if s=1 then z=29 if s=20 then z=23 if s=40 then z=19 if s=60 then z=14 player0y=0 : player5y=0 l=0 s=s+1 if s>99 && !n{0} then byte3=byte3+$10 if s>99 && !n{1} then byte3=byte3+$10 if s>99 && !n{2} then byte3=byte3+$10 if byte3>$99 then e=e+1 : byte3=byte3-$A0 : byte2=byte2+$01 if s>99 then s=0 : level=level+1 : r{0}=0 : goto main_setup bank1 goto main bank2 hole if player1y<30 || player1y>40 then return otherbank if player1x>70 && player1x<90 then player1y=player1y-1 return otherbank r_1 m{6}=0 a{2}=0 s=s+1 AUDV1=0 AUDV0=5 : AUDC0=14 : AUDF0=z if s=30 then z=4 if s=40 then z=3 if s=60 then z=7 if s=80 then z=5 player0x=255 : player0y=0 : player5y=0 l=0 if s>129 && byte1=$0F then n{5}=1 : n{6}=0 : p=1 : AUDV0=0 : goto title_screen if s>129 then s=0 : byte1=byte1-$10 : r{1}=0 : goto after_death goto main bank2 towards_you if player1x69 then reboot if m{6} && a{7} then gosub bee_got_shot_with_flower m{2}=0 : m{3}=0 : m{4}=0 : m{7}=0 : m{6}=0 player0y=70 player0x=(rand/2)+10 if player0x<52 then m{2}=1 : m{3}=0 : m{4}=0 if player0x>51 && player0x<116 then m{3}=1 : m{2}=0 : m{4}=0 if player0x>115 then m{4}=1 : m{2}=0 : m{3}=0 if byte3>$99 then e=e+1 : x=0 : byte3=byte3-$99 : byte2=byte2+$01 if x>9 then e=e+1 : x=0 : byte3=byte3+$06 if n{1} && n{0} then player0x=140 if n{1} && n{2} then player0x=20 if a{3} then goto main bank2 get_player5 player5y=70 : player5x=(rand/2)+10 if byte3>$99 then e=e+1 : x=0 : byte3=byte3-$99 : byte2=byte2+$01 if x>9 then e=e+1 : x=0 : byte3=byte3+$06 main a{3}=1 if !a{2} then missile1x=player1x-6 : missile1y=player1y : g=0 if switchreset then reboot f=f+1 l=l+1 rem a{2}=firing rem a{3}= makes sure that after it gets a random first bee x movement that it doesn't get a player5 random one. if m{5} then gosub flower_fall_down if !m{6} then gosub m_6_equals_0 else gosub m_6_equals_1 if m{5} && r=0 then AUDC0=4 : AUDV0=5 : AUDF0=z : y=y+1 if m{6} && r=0 then AUDC0=4 : AUDV0=5 : AUDF0=z : y=y+1 if m{6} && y=10 then z=z+3 if m{6} && y=20 then z=z-2 : y=0 if m{6} && z<10 then z=10 if !m{6} && !m{5} && r=0 then AUDV0=0 if m{5} && y>3 && z<32 then y=0 : z=z+1 if player3y>80 && !r{0} then z=29 : r{0}=1 COLUP3=240 : _COLUP1=36 : COLUP2=64 : COLUP0=30 COLUP4=64 : COLUP5=30 NUSIZ3=$05 rem flower part player2y=15 if n=0 then player2x=52 : NUSIZ2=$06 else gosub pick_up_flower if p=1 || p=3 then u=58 : temp2=50 : temp3=48 : v=108 : w=116 : temp5=122 if p=2 then u=66 : temp2=50 : temp3=18 : v=104 : w=116 : temp5=138 if player1y>41 && player1x32 && player1y<40 && player1x24 && player1x41 && player1x>v then player1x=v if player1y>32 && player1y<40 && player1x>w then player1x=w if player1y<31 && player1y>24 && player1x>temp5 then player1x=temp5 if player1y=24 && player1x<16 then player1x=16 if player1y=24 && player1x>136 then player1x=136 dktimer=dktimer+1 if dktimer>254 then dktimer=0 : player3y=player3y-2 if player3y<44 then r{1}=1 scorecolor=14 drawscreen if r{0} then goto r_0 bank1 if r{1} then goto r_1 bank1 if l=3 && r=0 && t=0 then player5y=player5y-1 : l=0 if l=3 && r=0 && t>0 then player5y=player5y-1 : l=0 : gosub towards_you bank1 if player5y<15 then goto get_player5 if m{6} && f>3 then player0y=player0y+1 : f=0 if joy0left then player1x=player1x-1 : n{3}=0 if joy0right then player1x=player1x+1 : n{3}=1 if joy0up && player1y<43 then b=b+1 if joy0down && player1y>23 then c=c+1 if p=3 then gosub hole bank1 if b>20 then b=0 : player1y=player1y+q if c>20 then c=0 : player1y=player1y-q if e>2 then r{0}=1 if level=2 then q=10 else q=6 if joy0fire && !a{2} then a{2}=1 if a{2} then missile1y=missile1y+1 : g=g+1 if a{2} && g<10 then AUDV1=5 : AUDC1=8 : AUDF1=10 else AUDV1=0 if a{2} && g>30 then a{2}=0 temp5=player3x+8 : temp4=player3x-1 : temp6=player3y-8 if collision(missile1,player1) && missile1y=temp6 && missile1x>temp4 && missile1x84 then a{2}=0 d=player0y+3 : temp1=player5y+3 temp3=player1x+6 temp4=player1y+6 temp5=player1y-8 temp6=player1x-8 n{3}=0 : n{4}=0 if temp5player0y then n{3}=1 if n{3} && temp6player0x then r{1}=1 : z=2 : goto r_1 bank1 rem a{2}=0 : a{3}=1 : r{1}=1 : z=2 : goto r_1 if temp5player5y then n{4}=1 if n{4} && temp6player5x then r{1}=1 : z=2 : goto r_1 bank1 if player0y>84 then player4x=0 : player4y=0 : m{6}=0 : a{3}=1 : goto get_player0 rem missile1y>player0y && missile1yplayer5y && missile1y84 then a{2}=0 goto main flower_fall_down if player4y>7 then player4y=player4y-1 : return m{5}=0 if player4x<52 then n{0}=0 if player4x>51 && player4x<90 then n{1}=0 if player4x>90 then n{2}=0 pick_up_flower a{6}=1 if n{1} && !n{0} && !n{2} then player2x=52 : NUSIZ2=$04 if n{2} && !n{0} && !n{1} then player2x=52 : NUSIZ2=$02 if n{0} && !n{1} && !n{2} then player2x=84 : NUSIZ2=$02 if n{0} && !n{1} && n{2} then NUSIZ2=$00 : player2x=84 if n{0} && n{1} && !n{2} then NUSIZ2=$00 : player2x=116 if !n{0} && n{1} && n{2} then NUSIZ2=$00 : player2x=52 if n{0} && n{1} && n{2} then player2x=0 : player2y=0 return bee_got_shot_with_flower m{6}=0 : a{7}=0 m{5}=1 rem gosub flower_fall_down return m_6_equals_0 if f>3 && r=0 then player0y=player0y-1 if m{4} && n{2} then m{2}=1 : m{4}=0 if m{2} && n{0} then m{4}=1 : m{2}=0 if m{3} && n{1} then temp1=rand/128 : m{3}=0 : gosub get_temp1 rem 51, 84, & 116 if m{2} && f>3 && player0x<41 then player0x=player0x+1 if m{2} && f>3 && player0x>41 then player0x=player0x-1 if m{3} && f>3 && player0x<74 then player0x=player0x+1 if m{3} && f>3 && player0x>74 then player0x=player0x-1 if m{4} && f>3 && player0x<106 then player0x=player0x+1 if m{4} && f>3 && player0x>106 then player0x=player0x-1 if player0y=15 && player0x=41 then m{6}=1 : z=10 : gosub pick_up_flower if player0y=15 && player0x=74 then m{6}=1 : z=10 : gosub pick_up_flower if player0y=15 && player0x=106 then m{6}=1 : z=10 : gosub pick_up_flower if f>3 then f=0 return m_6_equals_1 rem player0x-8 if m{6} then player4x=player0x+10 : player4y=player0y if m{6} && player0x<49 then n{0}=1 if m{6} && player0x>105 then n{2}=1 if m{6} && player0x>49 && player0x<106 then n{1}=1 return get_temp1 if temp1=0 then m{2}=1 : m{4}=0 else m{4}=1 : m{2}=0 return