rem ----------- rem Bombs Away! rem ----------- rem rem by Steve Engelhardt rem v23 3/5/2010 rem smartbranching on set kernel_options pfheights pfcolors set romsize 16k include fixed_point_math.asm h=0 : rem 4.4 var for speed variance dim speed=h.h init pfheights: 8 62 2 2 2 2 2 2 2 2 1 1 end pfcolors: 144 64 208 210 212 214 216 218 220 222 48 220 end l=18 titlescreen AUDV0=0 rem counter for falling bombs l=l+1 if l>70 then l=18 COLUP0=68 if l<67 then COLUP1=8 if l>66 then COLUP1=28 playfield: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....XXXXXXXXXXXXXXXXXXXXX....... ....XX.......................... ....X.X.XXX.X...X.XX..XXX....... ....X.X.X.X.XX.XX.X.X.X......... ....XX..X.X.X.X.X.X.X.X......... ....X.X.X.X.X...X.XX..XXX....... ....X.X.X.X.X...X.X.X...X....... ....X.X.X.X.X...X.X.X...X....... ....XX..XXX.X...X.XX..XXX....... ................................ ................................ end if joy0fire then goto begin NUSIZ1=$06 NUSIZ0=$05 player0: %00001000 %00001000 %00011100 %00110110 %01100011 %01000001 %00000000 %01000001 %01100011 %01111111 %01100011 %00111110 %00011100 %00000000 %00100010 %01110111 %01111111 %01011101 %01001001 %01000001 %00000000 %01000001 %01100011 %01111111 %01100011 %00111110 %00011100 %00000000 %00000000 %00000000 %00000000 %00000000 %00000000 %00000000 %00000000 %00000000 %00000000 %00000000 %00000000 %00000000 %00000000 %00000000 %00000000 %00000000 %00000000 %11111111 %00000000 %11100000 %00100000 %11100000 %10001110 %11101000 %00001100 %11101000 %00101110 %11100000 %10001010 %11101100 %00001110 %11101010 %10001110 %11000000 %10001110 %11100100 %00000100 %10101110 %11000000 %11101000 %10101000 %11101100 %00001000 %10001110 %10000000 %11100000 %10100000 %11100000 %00000000 %11111111 end player0x=117:player0y=86 j=j+1 if j=30 then player1: %00011000 %00101100 %00101100 %01011110 %01011110 %00101100 %00111100 %00011000 %00011000 %00101100 end if j=20 then player1: %00011000 %00100100 %00100100 %01100110 %01111110 %00100100 %00111100 %00011000 %00011000 %01100110 end if j=10 then player1: %00011000 %00110100 %00110100 %01111010 %01111010 %00110100 %00111100 %00011000 %00011000 %00110100 end rem make bomb explode when it gets to the bottom if l>66 && l<74 then AUDF0=31:AUDC0=l:AUDV0=8: player1: %10011001 %00110100 %00100100 %01100010 %11000011 %00100100 %00111100 %01011010 %10011001 %00100100 end if j>30 then j=0 player1x=38:player1y=l drawscreen goto titlescreen rem ---------------- rem game begin rem ---------------- begin rem ------------------------------ rem set initial playfield playfield: ................................ ................................ ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end rem ------------------------------ rem set initial score to zero score=000000 rem ------------------------------ rem variable assignments rem j counter in titlescreen for player1 animation rem l counter in titlescreen for dropping bombs a=80 : rem ball x pos b=87 : rem ball y pos c=130 : rem missile 0 x pos d=0 : rem smartbomb e=40 : rem missile 1 x pos f=0 : rem smartbomb g=0 : rem random number generator rem h=0 : rem speed variable - dont clear here - it's set on options screen i=0 : rem shields on/off j=0 : rem counter for sprite animation rem k : rem Bit Variable rem k{1} : rem l/r movement for shield rem k{2} : rem l/r movement for shield rem l=0 : rem not used m=3 : rem counter in death sequence, counter for smart bombs. n=0 : rem counter to slow down falling bombs o=10 : rem color change for bombs, changes each level p=0 : rem counter for slowing down bomb speed q=0 : rem pause timer for hitting the joystick button between levels, about 1.5 seconds. r=0 : rem level selection on options screen s=0 : rem counter for clearing playfield after laser shot t=0 : rem shield speed u=0 : rem "lose a life" counter. Incremented when a bomb hits the city. v=100 : rem player 1 x pos w=3 : rem player 1 y pos x=35 : rem player 0 x pos y=13 : rem player 0 y pos z=0 : rem speed of laser movement rem ------------------------------ rem set up life counter const pfscore=1 pfscorecolor=20 pfscore1=168 pfscore2=168 rem ------------------------------ rem Set Background color rem COLUBK=00 rem rem set ball to 4 pixels wide rem CTRLPF=$21 gosub options bank4 gamestart rem ------------------------------ rem score color set to yellow scorecolor=28 rem ------------------------------ rem bomb colors vary depending on the level you're on. rem rem Set Player 0 Color rem COLUP0=o rem rem Set Player 1 Color rem COLUP1=o+4 rem laser shot sound if joy0fire then AUDF1=s:AUDC1=12:AUDV1=4 else AUDV1=0 rem bomb is falling sound AUDF0=y:AUDC0=14:AUDV0=8 rem not used sound rem if joy0fire then AUDF1=29:AUDC1=l:AUDV1=4 else AUDV1=0 rem sound when a bomb hits the city if y>68 then AUDF0=31:AUDC0=s:AUDV0=12 if w>68 then AUDF0=31:AUDC0=s:AUDV0=12 if collision(player0,missile0) || collision(player1,missile1) then AUDF0=31:AUDC0=s:AUDV0=12 if collision(player1,missile0) || collision(player0,missile1) then AUDF0=31:AUDC0=s:AUDV0=12 rem sound when a laser destroys a bomb if collision(player0,playfield) || collision(player1,playfield) then AUDF1=31:AUDC1=s:AUDV0=15 if collision(player1,playfield) || collision(player0,playfield) then AUDF1=31:AUDC1=s:AUDV0=15 if switchreset then reboot drawscreen NUSIZ0=$30 NUSIZ1=$30 ballheight=1 missile0height=2 missile1height=2 rem ------------------------------ rem move ball at the bottom of the screen if joy0left then a=a-3-z if joy0right then a=a+3+z rem ------------------------------ rem Set Sprite Boundaries rem rem set outside boundaries for Player1 Left/Right movement rem if a<17 then a=a+3+z if a>144 then a=a-3-z rem ------------------------------ rem set random pattern for falling bombs rem gosub random bank2 rem ------------------------------ rem lose a life - end game after six bombs hit the city if y>70 && collision(player0,playfield) then u=u+1 if w>70 && collision(player1,playfield) then u=u+1 rem ------------------------------ rem change life counter if u=0 then pfscore1=168:pfscore2=168 : rem 3 3 if u=1 then pfscore1=10:pfscore2=168 : rem 2 3 if u=2 then pfscore1=4:pfscore2=168 : rem 1 3 if u=3 then pfscore1=0:pfscore2=168 : rem 0 3 if u=4 then pfscore1=0:pfscore2=10 : rem 0 2 if u=5 then pfscore1=0:pfscore2=4 : rem 0 1 if u>5 then pfscore1=0:pfscore2=0:goto death bank3 : rem 0 0 rem ------------------------------ rem set initial locations of bombs and shields rem player0x=x player0y=y player1x=v player1y=w ballx=a bally=b if i=0 then missile0x=0:missile0y=0:missile1x=0:missile1y=0: goto skipmis missile0x=c missile0y=39 missile1x=e missile1y=69 skipmis rem ----------------------------- rem right joystick moves city shields if joy1right then c=c+4:e=e-4 if joy1left then c=c-4:e=e+4 if joy1right && c>140 then c=c-4 if joy1left && c<10 then c=c+4 if joy1right && e<10 then e=e+4 if joy1left && e>140 then e=e-4 rem ------------------------------ rem move shields back and forth rem rem rem Add Z variable here to speed up the shields too? if e>140 then k{1}=1 if e<10 then k{1}=0 if k{1} then e=e-1-t if !k{1} then e=e+1+t if c>140 then k{2}=1 if c<10 then k{2}=0 if k{2} then c=c-1-t if !k{2} then c=c+1+t rem ----------------------------- rem gradually increase speed of falling bombs, rem rem n slows down the fall of the bombs. rem p is incremented by one whenever a bomb is destroyed by the laser. rem hence, destroying a bomb brings you closer to the increased speed. rem the 'z' variable increases the speed of the left/right movement of the laser. rem the 't' variable increases the speed of the city shields if p>240 then p=240 n=n+1 if l=1 then gosub bombspeed1 bank2: rem easy difficulty if l=2 then gosub bombspeed2 bank2: rem average difficulty if l=3 then gosub bombspeed3 : rem hard difficulty rem --------------------- rem check and see if you've reached the end of a level gosub levelcheck bank4 rem --------------------- rem change the playfield based on location, this is for the laser shot rem if joy0fire && ballx<18 then gosub fire1 bank2 if joy0fire && ballx>17 && ballx<22 then gosub fire2 bank2 if joy0fire && ballx>21 && ballx<26 then gosub fire3 bank2 if joy0fire && ballx>25 && ballx<30 then gosub fire4 bank2 if joy0fire && ballx>29 && ballx<34 then gosub fire5 bank2 if joy0fire && ballx>33 && ballx<38 then gosub fire6 bank2 if joy0fire && ballx>37 && ballx<42 then gosub fire7 bank2 if joy0fire && ballx>41 && ballx<46 then gosub fire8 bank2 if joy0fire && ballx>45 && ballx<50 then gosub fire9 bank2 if joy0fire && ballx>49 && ballx<54 then gosub fire10 bank2 if joy0fire && ballx>53 && ballx<58 then gosub fire11 bank2 if joy0fire && ballx>57 && ballx<62 then gosub fire12 bank2 if joy0fire && ballx>61 && ballx<66 then gosub fire13 bank2 if joy0fire && ballx>65 && ballx<70 then gosub fire14 bank2 if joy0fire && ballx>69 && ballx<74 then gosub fire15 bank2 if joy0fire && ballx>73 && ballx<78 then gosub fire16 bank2 if joy0fire && ballx>77 && ballx<82 then gosub fire17 bank2 if joy0fire && ballx>81 && ballx<86 then gosub fire18 bank2 if joy0fire && ballx>85 && ballx<92 then gosub fire19 bank2 if joy0fire && ballx>91 && ballx<96 then gosub fire20 bank2 if joy0fire && ballx>95 && ballx<100 then gosub fire21 bank2 if joy0fire && ballx>99 && ballx<104 then gosub fire22 bank2 if joy0fire && ballx>103 && ballx<108 then gosub fire23 bank2 if joy0fire && ballx>107 && ballx<112 then gosub fire24 bank2 if joy0fire && ballx>111 && ballx<116 then gosub fire25 bank2 if joy0fire && ballx>115 && ballx<120 then gosub fire26 bank2 if joy0fire && ballx>119 && ballx<124 then gosub fire27 bank2 if joy0fire && ballx>123 && ballx<128 then gosub fire28 bank2 if joy0fire && ballx>127 && ballx<132 then gosub fire29 bank2 if joy0fire && ballx>131 && ballx<136 then gosub fire30 bank2 if joy0fire && ballx>135 && ballx<140 then gosub fire31 bank2 if joy0fire && ballx>139 then gosub fire32 bank2 rem ------------------------------ rem smartbomb rem you only get one! if joy0up && d=0 then d=1 if !joy0up && d=1 then d=2 if joy0up && d=2 then m=m+1 if f>1 then goto skipthisthing if m>1 && joy0up then f=f+1:gosub bomb bank2 skipthisthing skipit rem ------------------------------ rem if a bomb hits a shield, it's removed and reset to the top, does not increase your score. if collision(player0,missile0) then y=2 if collision(player0,missile1) then y=2 if collision(player1,missile0) then w=2 if collision(player1,missile1) then w=2 rem ------------------------------ s=s+1 rem clear playfield fire if s>25 then s=0: gosub clear bank2 if collision(player0,playfield) then score=score+10: x=0:goto p0clear if collision(player1,playfield) then score=score+10: v=0:goto p1clear rem ------------------------- rem bomb animation j=j+1 if j>30 then j=0 if j=30 then player1: %00011000 %00101100 %00101100 %01011110 %01011110 %00101100 %00111100 %00011000 %00011000 %00101100 end if j=20 then player1: %00011000 %00100100 %00100100 %01100110 %01111110 %00100100 %00111100 %00011000 %00011000 %01100110 end if j=10 then player1: %00011000 %00110100 %00110100 %01111010 %01111010 %00110100 %00111100 %00011000 %00011000 %00110100 end if j=30 then player0: %00011000 %00101100 %00101100 %01011110 %01011110 %00101100 %00111100 %00011000 %00011000 %00101100 end if j=20 then player0: %00011000 %00100100 %00100100 %01100110 %01111110 %00100100 %00111100 %00011000 %00011000 %01100110 end if j=10 then player0: %00011000 %00110100 %00110100 %01111010 %01111010 %00110100 %00111100 %00011000 %00011000 %00110100 end goto gamestart rem ----------------------- p1clear if p<240 then p=p+1 player1: %00000000 end 300 v=rand if v<20 || v>80 then goto 300 w=0 goto gamestart rem ----------------------- p0clear if p<240 then p=p+1 player0: %00000000 end 400 x=rand if x<81 || x>140 then goto 400 y=0 goto gamestart rem ----------------------- rem ------------------- rem hard difficulty bombspeed3 if p>0 && p<20 && n>5 then speed=0.2:w=w+speed:y=y+speed:n=0 if p>19 && p<40 && n>5 then speed=0.2:w=w+speed:y=y+speed:n=0 if p>39 && p<60 && n>5 then speed=0.3:w=w+speed:y=y+speed:n=0 if p>59 && p<80 && n>5 then speed=0.3:w=w+speed:y=y+speed:n=0 if p>79 && p<100 && n>5 then speed=0.4:w=w+speed:y=y+speed:n=0 if p>99 && p<120 && n>5 then speed=0.4:w=w+speed:y=y+speed:n=0 if p>119 && p<140 && n>5 then speed=0.5:w=w+speed:y=y+speed:n=0 if p>139 && p<160 && n>5 then speed=0.5:w=w+speed:y=y+speed:n=0:z=1 if p>159 && p<180 && n>5 then speed=0.6:w=w+speed:y=y+speed:n=0:z=1 if p>179 && p<200 && n>5 then speed=0.6:w=w+speed:y=y+speed:n=0:z=2:t=1 if p>199 && p<220 && n>5 then speed=0.7:w=w+speed:y=y+speed:n=0:z=2:t=1 if p>219 && p<240 && n>5 then speed=0.7:w=w+speed:y=y+speed:n=0:z=2:t=1 if p>239 && n>4 then speed=0.8:w=w+speed:y=y+speed:n=0:z=3:t=2 return thisbank bank 2 rem ------------------- rem average difficulty bombspeed2 if p>0 && p<20 && n>5 then speed=0.1:w=w+speed:y=y+speed:n=0 if p>19 && p<40 && n>5 then speed=0.1:w=w+speed:y=y+speed:n=0 if p>39 && p<60 && n>5 then speed=0.2:w=w+speed:y=y+speed:n=0 if p>59 && p<80 && n>5 then speed=0.2:w=w+speed:y=y+speed:n=0 if p>79 && p<100 && n>5 then speed=0.3:w=w+speed:y=y+speed:n=0 if p>99 && p<120 && n>5 then speed=0.3:w=w+speed:y=y+speed:n=0 if p>119 && p<140 && n>5 then speed=0.3:w=w+speed:y=y+speed:n=0 if p>139 && p<160 && n>5 then speed=0.4:w=w+speed:y=y+speed:n=0:z=1 if p>159 && p<180 && n>5 then speed=0.4:w=w+speed:y=y+speed:n=0:z=1 if p>179 && p<200 && n>5 then speed=0.5:w=w+speed:y=y+speed:n=0:z=2:t=1 if p>199 && p<220 && n>5 then speed=0.5:w=w+speed:y=y+speed:n=0:z=2:t=1 if p>219 && p<240 && n>5 then speed=0.6:w=w+speed:y=y+speed:n=0:z=2:t=1 if p>239 && n>5 then speed=0.7:w=w+speed:y=y+speed:n=0:z=3:t=2 return otherbank rem ------------------- rem easy difficulty bombspeed1 if p>0 && p<20 && n>5 then speed=0.1:w=w+speed:y=y+speed:n=0 if p>19 && p<40 && n>5 then speed=0.1:w=w+speed:y=y+speed:n=0 if p>39 && p<60 && n>5 then speed=0.1:w=w+speed:y=y+speed:n=0 if p>59 && p<80 && n>5 then speed=0.2:w=w+speed:y=y+speed:n=0 if p>79 && p<100 && n>5 then speed=0.2:w=w+speed:y=y+speed:n=0 if p>99 && p<120 && n>5 then speed=0.2:w=w+speed:y=y+speed:n=0 if p>119 && p<140 && n>5 then speed=0.3:w=w+speed:y=y+speed:n=0 if p>139 && p<160 && n>5 then speed=0.3:w=w+speed:y=y+speed:n=0:z=1 if p>159 && p<180 && n>5 then speed=0.3:w=w+speed:y=y+speed:n=0:z=1 if p>179 && p<200 && n>5 then speed=0.4:w=w+speed:y=y+speed:n=0:z=2:t=1 if p>199 && p<220 && n>5 then speed=0.4:w=w+speed:y=y+speed:n=0:z=2:t=1 if p>219 && p<240 && n>5 then speed=0.5:w=w+speed:y=y+speed:n=0:z=2:t=1 if p>239 && n>5 then speed=0.6:w=w+speed:y=y+speed:n=0:z=3:t=2 return otherbank one2 player0: %00111000 %00111000 %00111000 %00111000 %00011000 %00011000 %00011000 %00011000 end return otherbank two2 player0: %01111110 %01100000 %01100000 %01100000 %00111110 %00000010 %01000010 %01111110 end return otherbank three2 player0: %01111110 %01000110 %00000110 %00000110 %00111110 %00000010 %01000010 %01111110 end return otherbank four2 player0: %00001100 %00001100 %00001100 %01111110 %01000100 %01000100 %01000100 %00000100 end return otherbank five2 player0: %01111110 %01000110 %00000110 %00000110 %01111100 %01000000 %01000000 %01111110 end return otherbank six2 player0: %01111110 %01000110 %01000110 %01000110 %01111100 %01000000 %01000010 %01111110 end return otherbank seven2 player0: %00001100 %00001100 %00001100 %00001100 %00000100 %00000010 %01000010 %01111110 end return otherbank eight2 player0: %01111110 %01000110 %01000110 %01000010 %01111110 %01000010 %01000010 %01111110 end return otherbank nine2 player0: %00000110 %00000110 %00000110 %00000010 %01111110 %01000010 %01000010 %01111110 end return otherbank ten2 player0: %11011110 %11010110 %11010110 %11010110 %01010010 %01010010 %01010010 %01011110 end return otherbank eleven2 player0: %01101100 %01101100 %01101100 %01101100 %00100100 %00100100 %00100100 %00100100 end return otherbank twelve2 player0: %11011110 %11011000 %11011000 %11011000 %11011110 %01000010 %01000010 %01011110 end return otherbank fire1 playfield: ................................ X............................... ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire2 playfield: ................................ .X.............................. ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire3 playfield: ................................ ..X............................. ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire4 playfield: ................................ ...X............................ ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire5 playfield: ................................ ....X........................... ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire6 playfield: ................................ .....X.......................... ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire7 playfield: ................................ ......X......................... ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire8 playfield: ................................ .......X........................ ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire9 playfield: ................................ ........X....................... ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire10 playfield: ................................ .........X...................... ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire11 playfield: ................................ ..........X..................... ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire12 playfield: ................................ ...........X.................... ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire13 playfield: ................................ ............X................... ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire14 playfield: ................................ .............X.................. ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire15 playfield: ................................ ..............X................. ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire16 playfield: ................................ ...............X................ ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire17 playfield: ................................ ................X............... ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire18 playfield: ................................ .................X.............. ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire19 playfield: ................................ ..................X............. ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire20 playfield: ................................ ...................X............ ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire21 playfield: ................................ ....................X........... ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire22 playfield: ................................ .....................X.......... ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire23 playfield: ................................ ......................X......... ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire24 playfield: ................................ .......................X........ ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire25 playfield: ................................ ........................X....... ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire26 playfield: ................................ .........................X...... ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire27 playfield: ................................ ..........................X..... ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire28 playfield: ................................ ...........................X.... ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire29 playfield: ................................ ............................X... ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire30 playfield: ................................ .............................X.. ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire31 playfield: ................................ ..............................X. ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank fire32 playfield: ................................ ...............................X ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank clear playfield: ................................ ................................ ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank bomb playfield: ................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return otherbank random 200 g=rand:if g>215 then 200 g=g/8:g=g+1 rem ------------------------------ rem Based on random number, assign initial X values to bombs rem if g > 0 && g < 5 && y>88 then x=52:y=11 if g > 4 && g < 9 && y>88 then x=127:y=11 if g > 8 && g < 13 && y>88 then x=79:y=11 if g > 12 && g < 15 && y>88 then x=69:y=11 if g > 14 && g < 19 && y>88 then x=27:y=11 if g > 18 && g < 23 && y>88 then x=46:y=11 if g > 22 && g < 27 && y>88 then x=90:y=11 if g > 26 && g < 29 && y>88 then x=41:y=11 if g > 0 && g < 5 && w>88 then v=102:w=0 if g > 4 && g < 9 && w>88 then v=87:w=0 if g > 8 && g < 13 && w>88 then v=139:w=0 if g > 12 && g < 15 && w>88 then v=117:w=0 if g > 14 && g < 19 && w>88 then v=65:w=0 if g > 18 && g < 23 && w>88 then v=99:w=0 if g > 22 && g < 27 && w>88 then v=30:w=0 if g > 26 && g < 29 && w>88 then v=88:w=0 return otherbank rem --------------------------- bank 3 death q=0 missile0x=0:missile0y=0 missile1x=0:missile1y=0 death1 m=0 COLUP1=28 player1: %00000000 end player0: %00000000 end playfield: ................................ ................................ ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end drawscreen death2 COLUP0=238 if m<101 then m=m+1 rem AUDF0=31:AUDC0=m:AUDV0=12 AUDF1=29:AUDC1=m:AUDV1=9 if m=101 then AUDV0=0:AUDV1=0 if m=101 then COLUP1=28:player1: %01000100 %01001000 %01111100 %01000100 %01111100 %00000000 %01111100 %01000000 %01111100 %01000000 %01111100 %00000000 %00111000 %01000100 %01000100 %01000100 %01000100 %00000000 %01111100 %01000100 %01000100 %01000100 %01111100 %00000000 %00000000 %00000000 %01111100 %01000000 %01111100 %01000000 %01111100 %00000000 %01000100 %01000100 %01010100 %01010100 %01101100 %00000000 %01000100 %01000100 %01111100 %01000100 %01111100 %00000000 %01111100 %01000100 %01001100 %01000000 %01111100 end if m=10 then COLUBK=62:gosub crumble1 if m=20 then COLUBK=28:gosub crumble2 if m=30 then COLUBK=64:gosub crumble3 if m=40 then COLUBK=68:gosub crumble4 if m=50 then COLUBK=28:gosub crumble5 if m=60 then COLUBK=62:gosub crumble6 if m=70 then COLUBK=64:gosub crumble7 if m=80 then COLUBK=68:gosub crumble8 if m=90 then COLUBK=28:gosub crumble9 if m=100 then COLUBK=62:gosub crumble10 if m>100 then COLUBK=0:m=101 rem ---------------------------------------- rem put skill level used on game over screen n=n+1 if n>2 then n=0 if n=1 && l=1 && m=101 then gosub skill1b if n=1 && l=2 && m=101 then gosub skill2b if n=1 && l=3 && m=101 then gosub skill3b if n=2 && m=101 && r=1 then gosub one2 bank2 if n=2 && m=101 && r=2 then gosub two2 bank2 if n=2 && m=101 && r=3 then gosub three2 bank2 if n=2 && m=101 && r=4 then gosub four2 bank2 if n=2 && m=101 && r=5 then gosub five2 bank2 if n=2 && m=101 && r=6 then gosub six2 bank2 if n=2 && m=101 && r=7 then gosub seven2 bank2 if n=2 && m=101 && r=8 then gosub eight2 bank2 if n=2 && m=101 && r=9 then gosub nine2 bank2 if n=2 && m=101 && r=10 then gosub ten2 bank2 if n=2 && m=101 && r=11 then gosub eleven2 bank2 if n=2 && m=101 && r=12 then gosub twelve2 bank2 if n=1 && m=101 then player0x=38:player0y=70 if n=2 && m=101 then player0x=120:player0y=70 NUSIZ1=$30 missile1height=8 if m=101 && i=1 then missile1x=121:missile1y=58 player1x=78:player1y=68 if switchreset then reboot q=q+1 if q>250 then q=250 if q=250 && joy0fire then reboot drawscreen goto death2 skill1b player0: %00000000 %00000000 %01000000 %01000000 %11100000 %10100000 %10100000 %00000000 %11100000 %00100000 %11100000 %10000000 %11100000 %00000000 %10100000 %10100000 %11100000 %10100000 %11100000 %00000000 %11100000 %10000000 %11000000 %10000000 %11100000 %00000000 end return thisbank skill2b player0: %00000000 %11100000 %10000000 %11000000 %10000000 %11100000 %00000000 %11100000 %10100000 %10100000 %10000000 %11100000 %00000000 %10100000 %10100000 %11100000 %10100000 %11100000 %00000000 %10100000 %11000000 %11100000 %10100000 %11100000 %00000000 %11100000 %10000000 %11000000 %10000000 %11100000 %00000000 %01000000 %10100000 %10100000 %10100000 %10100000 %00000000 %10100000 %10100000 %11100000 %10100000 %11100000 %00000000 end return thisbank skill3b player0: %00000000 %00000000 %11000000 %10100000 %10100000 %10100000 %11000000 %00000000 %10100000 %11000000 %11100000 %10100000 %11100000 %00000000 %10100000 %10100000 %11100000 %10100000 %11100000 %00000000 %10100000 %10100000 %11100000 %10100000 %10100000 %00000000 end return thisbank crumble1 playfield: ................................ ............................... ..XX.................XXX........ ..XXXX...X.X........XXXXXX.XX... ..X..X..XXXXXX......XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return thisbank crumble2 playfield: ................................ ................................ .X............X........X.....X.. ....XX.....X.....X....XXXX...... .....X...XXXXX......XXXXXX.X.... .XXXXXX.X.X.X.X...X.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return thisbank crumble3 playfield: ................................ ................................ .X.......X.....X............X... .................X....XX........ .....X.....XX........XX.X....... ...XXXX.X.X.X.......XXXXXX..XX.. .X....X.XXXXXXX...X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return thisbank crumble4 playfield: ................................ ................................ X.......X............X.........X ..X...........X................. ........................X....X.. ...XX...X.X.........XXXXX....... .X....X.XXXXX.....X.XXXXXX.X.... .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return thisbank crumble5 playfield: ................................ ................................ ................................ ..............................X. ..X.............X............... ......................XXX....... ......X...XXX.......XXXXXX...... .XXXXXX.XXX.X...XXX.XXXXXX.XXX.. .X..XXX.XXXXXXX.XXX.XXXXXX.XXXX. .XXXXXX.XXX.XXX.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return thisbank crumble6 playfield: ................................ ................................ ................................ ................................ ................................ ......................X......... ...................XXXXX........ ...XXXX...X.X....XX.XXXXXX..XX.. .XXXXXX..XXXXXX..XX.XXXXXX.XXXX. .XXXXXX.XXXXXXX.XXX.X..XXXXXXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return thisbank crumble7 playfield: ................................ ................................ ................................ ................................ ................................ ................................ .....................XXX........ ...XX.....X.X....XX.XXXXXX...X.. .XXXXXX..XXXXXX..XX.XXXXXX.XXXX. .XXXXXXXXXXXXXX.XXXXXX.XXXXXXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return thisbank crumble8 playfield: ................................ ................................ ................................ ................................ ................................ ................................ ......................XX........ ....X............XX..XXXXX...... ..XXXXX..XXXXXX..XX.XXXXXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return thisbank crumble9 playfield: ................................ ................................ ................................ ................................ ................................ ................................ ................................ ....X............XX..XXXXX...... ..XXXXX..XXXXXX..XX.XXXXXXXXXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return thisbank crumble10 playfield: ................................ ................................ ................................ ................................ ................................ ................................ ................................ ......................XXXX...... ..XXXXXX.XXXXXX..XX.XXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end return thisbank levelup0 q=0 COLUP1=0 levelup0b missile0x=0:missile0y=0 missile1x=0:missile1y=0 AUDV1=0 AUDV0=0 NUSIZ0=$05 COLUP1=28 player0: %00000100 %00000100 %00000100 %00001110 %00001010 %00001010 %00000000 %00001100 %00001010 %00001010 %00001010 %00001100 %00000000 %00001010 %00001010 %00001110 %00001010 %00001110 %00000000 %01001110 %01001000 %01001100 %01001000 %11101110 %00000000 %11101010 %10001100 %11001110 %10001010 %11101110 %00000000 %11100000 %10100000 %10100000 %10000000 %11100000 end playfield: ................................ ................................ ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end player0x=74:player0y=50 q=q+1 if q>70 then q=70 if q=70 && joy0fire then p=1:y=2:w=2:return otherbank drawscreen goto levelup0b levelup1 if u>0 then u=u-1 q=0 levelup1b NUSIZ1=$05 COLUP1=28 player0: %01111110 %01100000 %01100000 %01100000 %00111110 %00000010 %01000010 %01111110 end player1: %11010011 %10010010 %10101010 %10101010 %10101010 %10101010 end playfield: ................................ ................................ ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end player0x=80:player0y=50 player1x=75:player1y=40 q=q+1 if q>100 then q=100 if q=100 && joy0fire then p=21:y=2:w=2:return otherbank drawscreen goto levelup1b levelup2 if u>0 then u=u-1 q=0 levelup2b NUSIZ1=$05 COLUP1=28 player0: %01111110 %01000110 %00000110 %00000110 %00111110 %00000010 %01000010 %01111110 end player1: %11010011 %10010010 %10101010 %10101010 %10101010 %10101010 end playfield: ................................ ................................ ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end player0x=80:player0y=50 player1x=75:player1y=40 q=q+1 if q>100 then q=100 if q=100 && joy0fire then p=41:y=2:w=2:return otherbank drawscreen goto levelup2b levelup3 if u>0 then u=u-1 q=0 levelup3b NUSIZ1=$05 COLUP1=28 player0: %00001100 %00001100 %00001100 %01111110 %01000100 %01000100 %01000100 %00000100 end player1: %11010011 %10010010 %10101010 %10101010 %10101010 %10101010 end playfield: ................................ ................................ ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end player0x=80:player0y=50 player1x=75:player1y=40 q=q+1 if q>100 then q=100 if q=100 && joy0fire then p=61:y=2:w=2:return otherbank drawscreen goto levelup3b levelup4 if u>0 then u=u-1 q=0 levelup4b NUSIZ1=$05 COLUP1=28 player0: %01111110 %01000110 %00000110 %00000110 %01111100 %01000000 %01000000 %01111110 end player1: %11010011 %10010010 %10101010 %10101010 %10101010 %10101010 end playfield: ................................ ................................ ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end player0x=80:player0y=50 player1x=75:player1y=40 q=q+1 if q>100 then q=100 if q=100 && joy0fire then p=81:y=2:w=2:return otherbank drawscreen goto levelup4b levelup5 if u>0 then u=u-1 q=0 levelup5b NUSIZ1=$05 COLUP1=28 player0: %01111110 %01000110 %01000110 %01000110 %01111100 %01000000 %01000010 %01111110 end player1: %11010011 %10010010 %10101010 %10101010 %10101010 %10101010 end playfield: ................................ ................................ ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end player0x=80:player0y=50 player1x=75:player1y=40 q=q+1 if q>100 then q=100 if q=100 && joy0fire then p=101:y=2:w=2:return otherbank drawscreen goto levelup5b levelup6 if u>0 then u=u-1 q=0 levelup6b NUSIZ1=$05 COLUP1=28 player0: %00001100 %00001100 %00001100 %00001100 %00000100 %00000010 %01000010 %01111110 end player1: %11010011 %10010010 %10101010 %10101010 %10101010 %10101010 end playfield: ................................ ................................ ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end player0x=80:player0y=50 player1x=75:player1y=40 q=q+1 if q>100 then q=100 if q=100 && joy0fire then p=121:y=2:w=2:return otherbank drawscreen goto levelup6b levelup7 if u>0 then u=u-1 q=0 levelup7b NUSIZ1=$05 COLUP1=28 player0: %01111110 %01000110 %01000110 %01000010 %01111110 %01000010 %01000010 %01111110 end player1: %11010011 %10010010 %10101010 %10101010 %10101010 %10101010 end playfield: ................................ ................................ ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end player0x=80:player0y=50 player1x=75:player1y=40 q=q+1 if q>100 then q=100 if q=100 && joy0fire then p=141:y=2:w=2:return otherbank drawscreen goto levelup7b levelup8 if u>0 then u=u-1 q=0 levelup8b NUSIZ1=$05 COLUP1=28 player0: %00000110 %00000110 %00000110 %00000010 %01111110 %01000010 %01000010 %01111110 end player1: %11010011 %10010010 %10101010 %10101010 %10101010 %10101010 end playfield: ................................ ................................ ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end player0x=80:player0y=50 player1x=75:player1y=40 q=q+1 if q>100 then q=100 if q=100 && joy0fire then p=161:y=2:w=2:return otherbank drawscreen goto levelup8b levelup9 if u>0 then u=u-1 q=0 levelup9b NUSIZ1=$05 COLUP1=28 player0: %11011110 %11010110 %11010110 %11010110 %01010010 %01010010 %01010010 %01011110 end player1: %11010011 %10010010 %10101010 %10101010 %10101010 %10101010 end playfield: ................................ ................................ ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end player0x=80:player0y=50 player1x=75:player1y=40 q=q+1 if q>100 then q=100 if q=100 && joy0fire then p=181:y=2:w=2:return otherbank drawscreen goto levelup9b levelup10 if u>0 then u=u-1 q=0 levelup10b NUSIZ1=$05 COLUP1=28 player0: %01101100 %01101100 %01101100 %01101100 %00100100 %00100100 %00100100 %00100100 end player1: %11010011 %10010010 %10101010 %10101010 %10101010 %10101010 end playfield: ................................ ................................ ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end player0x=80:player0y=50 player1x=75:player1y=40 q=q+1 if q>100 then q=100 if q=100 && joy0fire then p=201:y=2:w=2:return otherbank drawscreen goto levelup10b levelup12 if u>0 then u=u-1 q=0 levelup12b NUSIZ1=$05 COLUP1=28 player0: %11011110 %11011000 %11011000 %11011000 %11011110 %01000010 %01000010 %01011110 end player1: %11010011 %10010010 %10101010 %10101010 %10101010 %10101010 end playfield: ................................ ................................ ..XXXX..............XXXXXX...... ..XXXX...X.X.X......XXXXXX.XXXX. ..X..X..XXXXXXX.....XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.XXXXXX.X..X. .XXXXXX.X.X.X.X.XXX.XXXXXX.XXXX. .X....X.XXXXXXX.X.X.X..XXX.X..X. .XXXXXX.X.X.X.X.XXX.X..XXX.XXXX. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX end player0x=80:player0y=50 player1x=75:player1y=40 q=q+1 if q>100 then q=100 if q=100 && joy0fire then p=240:y=2:w=2:return otherbank drawscreen goto levelup12b bank 4 levelcheck if p=0 then missile0x=0:missile0y=0:missile1x=0:missile1y=0:AUDV1=0:AUDV0=0:o=o+10:gosub levelup0 bank3 if p=20 then missile0x=0:missile0y=0:missile1x=0:missile1y=0:AUDV1=0:AUDV0=0:o=o+10:gosub levelup1 bank3 if p=40 then missile0x=0:missile0y=0:missile1x=0:missile1y=0:AUDV1=0:AUDV0=0:o=o+10:gosub levelup2 bank3 if p=60 then missile0x=0:missile0y=0:missile1x=0:missile1y=0:AUDV1=0:AUDV0=0:o=o+10:gosub levelup3 bank3 if p=80 then missile0x=0:missile0y=0:missile1x=0:missile1y=0:AUDV1=0:AUDV0=0:o=o+10:gosub levelup4 bank3 if p=100 then missile0x=0:missile0y=0:missile1x=0:missile1y=0:AUDV1=0:AUDV0=0:o=o+10:gosub levelup5 bank3 if p=120 then missile0x=0:missile0y=0:missile1x=0:missile1y=0:AUDV1=0:AUDV0=0:o=o+10:gosub levelup6 bank3 if p=140 then missile0x=0:missile0y=0:missile1x=0:missile1y=0:AUDV1=0:AUDV0=0:o=o+10:gosub levelup7 bank3 if p=160 then missile0x=0:missile0y=0:missile1x=0:missile1y=0:AUDV1=0:AUDV0=0:o=o+10:gosub levelup8 bank3 if p=180 then missile0x=0:missile0y=0:missile1x=0:missile1y=0:AUDV1=0:AUDV0=0:o=o+10:gosub levelup9 bank3 if p=200 then missile0x=0:missile0y=0:missile1x=0:missile1y=0:AUDV1=0:AUDV0=0:o=o+10:gosub levelup10 bank3 if p=239 then missile0x=0:missile0y=0:missile1x=0:missile1y=0:AUDV1=0:AUDV0=0:o=o+10:gosub levelup12 bank3 return otherbank options missile0height=8 r=1 q=0 i=1 j=0 d=3 m=52 l=3 player1: %00111000 %00111000 %00111000 %00111000 %00011000 %00011000 %00011000 %00011000 end missile0x=72:missile0y=67 pfscore1=0 pfscore2=0 scorecolor=0 options1b NUSIZ1=$30 NUSIZ0=$37 COLUP1=10 COLUP0=28 player0: %00000000 %00000000 %11100111 %00100100 %11100100 %10000100 %11100100 %00000000 %11000111 %10100100 %10100110 %10100100 %11000111 %00000000 %11100010 %10000101 %10000101 %10000101 %10000101 %00000000 %11100111 %10000100 %11000110 %10000100 %11100111 %00000000 %11100111 %01000100 %01000100 %01000100 %11100100 %00000000 %10100000 %10100000 %11100000 %10100000 %10100000 %00000000 %11100000 %00100000 %11100000 %10000000 %11100000 %00000000 %00000000 end playfield: ................................ ........XXX..XXX..XXX........... ................................ ................................ ................................ .XXX.XXX.XXX.XXX.XXX.X..X.XXX... .X.X.X.X..X...X..X.X.XX.X.X..... .X.X.XXX..X...X..X.X.XX.X.XXX... .X.X.X....X...X..X.X.X.XX...X... .XXX.X....X..XXX.XXX.X.XX.XXX... .XXX.X....X..XXX.XXX.X.XX.XXX... end missile1height=2 missile1x=m:missile1y=8 if joy0left && t=1 then m=m-20 if joy0right && t=1 then m=m+20 if m<52 then m=52 if m>92 then m=92 j=j+1 if j>2 then j=1 if j=1 then gosub mainsprite if d>0 then skipthis9 if j=2 && l=3 then gosub skill3:l=3 if j=2 && l=2 then gosub skill2:l=2 if j=2 && l=1 then gosub skill1:l=1 skipthis9 if m=52 && l=1 && t=1 && joy0down then d=3 if m=52 && l=2 && t=1 && joy0down then d=1 if m=52 && l=3 && t=1 && joy0down then d=2 if m=52 && l=1 && t=1 && joy0up then d=2 if m=52 && l=2 && t=1 && joy0up then d=3 if m=52 && l=3 && t=1 && joy0up then d=1 if j=2 && d=1 then gosub skill1:l=1 if j=2 && d=2 then gosub skill2:l=2 if j=2 && d=3 then gosub skill3:l=3 if j=1 then player0x=68:player0y=58 if j=2 then player0x=48:player0y=58 player1x=92:player1y=67 if r=13 then r=1 if r=0 then r=12 t=t+1 if t>10 then t=1 if joy0up && t=1 && m=92 then r=r+1 if joy0down && t=1 && m=92 then r=r-1 if r=1 then gosub one if r=2 then gosub two if r=3 then gosub three if r=4 then gosub four if r=5 then gosub five if r=6 then gosub six if r=7 then gosub seven if r=8 then gosub eight if r=9 then gosub nine if r=10 then gosub ten if r=11 then gosub eleven if r=12 then gosub twelve if joy0up && m=72 then i=1:missile0x=72:missile0y=67 if joy0down && m=72 then i=0:missile0x=0:missile0y=0 q=q+1 if q>69 then q=70 if q=70 && joy0fire then t=0:return otherbank drawscreen goto options1b one player1: %00111000 %00111000 %00111000 %00111000 %00011000 %00011000 %00011000 %00011000 end p=0 return thisbank two player1: %01111110 %01100000 %01100000 %01100000 %00111110 %00000010 %01000010 %01111110 end p=20 return thisbank three player1: %01111110 %01000110 %00000110 %00000110 %00111110 %00000010 %01000010 %01111110 end p=40 return thisbank four player1: %00001100 %00001100 %00001100 %01111110 %01000100 %01000100 %01000100 %00000100 end p=60 return thisbank five player1: %01111110 %01000110 %00000110 %00000110 %01111100 %01000000 %01000000 %01111110 end p=80 return thisbank six player1: %01111110 %01000110 %01000110 %01000110 %01111100 %01000000 %01000010 %01111110 end p=100 return thisbank seven player1: %00001100 %00001100 %00001100 %00001100 %00000100 %00000010 %01000010 %01111110 end p=120 return thisbank eight player1: %01111110 %01000110 %01000110 %01000010 %01111110 %01000010 %01000010 %01111110 end p=140 return thisbank nine player1: %00000110 %00000110 %00000110 %00000010 %01111110 %01000010 %01000010 %01111110 end p=160 return thisbank ten player1: %11011110 %11010110 %11010110 %11010110 %01010010 %01010010 %01010010 %01011110 end p=180 return thisbank eleven player1: %01101100 %01101100 %01101100 %01101100 %00100100 %00100100 %00100100 %00100100 end p=200 return thisbank twelve player1: %11011110 %11011000 %11011000 %11011000 %11011110 %01000010 %01000010 %01011110 end p=239 return thisbank skill1 player0: %00000000 %00000000 %01000000 %01000000 %11100000 %10100000 %10100000 %00000000 %11100000 %00100000 %11100000 %10000000 %11100000 %00000000 %10100000 %10100000 %11100000 %10100000 %11100000 %00000000 %11100000 %10000000 %11000000 %10000000 %11100000 %00000000 end return thisbank skill2 player0: %00000000 %11100000 %10000000 %11000000 %10000000 %11100000 %00000000 %11100000 %10100000 %10100000 %10000000 %11100000 %00000000 %10100000 %10100000 %11100000 %10100000 %11100000 %00000000 %10100000 %11000000 %11100000 %10100000 %11100000 %00000000 %11100000 %10000000 %11000000 %10000000 %11100000 %00000000 %01000000 %10100000 %10100000 %10100000 %10100000 %00000000 %10100000 %10100000 %11100000 %10100000 %11100000 %00000000 end return thisbank skill3 player0: %00000000 %00000000 %11000000 %10100000 %10100000 %10100000 %11000000 %00000000 %10100000 %11000000 %11100000 %10100000 %11100000 %00000000 %10100000 %10100000 %11100000 %10100000 %11100000 %00000000 %10100000 %10100000 %11100000 %10100000 %10100000 %00000000 end return thisbank mainsprite player0: %00000000 %00000000 %11100111 %00100100 %11100100 %10000100 %11100100 %00000000 %11000111 %10100100 %10100110 %10100100 %11000111 %00000000 %11100010 %10000101 %10000101 %10000101 %10000101 %00000000 %11100111 %10000100 %11000110 %10000100 %11100111 %00000000 %11100111 %01000100 %01000100 %01000100 %11100100 %00000000 %10100000 %10100000 %11100000 %10100000 %10100000 %00000000 %11100000 %00100000 %11100000 %10000000 %11100000 %00000000 %00000000 end return thisbank forreference rem a=80 : rem ball x pos rem b=87 : rem ball y pos rem c=130 : rem missile 0 x pos rem d=0 : rem smartbomb rem e=40 : rem missile 1 x pos rem f=0 : rem smartbomb rem g=0 : rem random number generator rem h=0 : rem speed variable rem i=0 : rem shields on/off rem j=0 : rem counter for sprite animation rem k=0 : rem l/r movement for shield rem l=0 : rem l/r movement for shield rem m=3 : rem counter in death sequence, counter for smart bombs. rem n=0 : rem counter to slow down falling bombs rem o=10 : rem color change for bombs, changes each level rem p=0 : rem counter for slowing down bomb speed rem q=0 : rem pause timer for hitting the joystick button between levels, about 1.5 seconds. rem r=0 : rem level selection on options screen rem s=0 : rem counter for clearing playfield after laser shot rem t=0 : rem shield speed rem u=0 : rem "lose a life" counter. Incremented when a bomb hits the city. rem v=100 : rem player 1 x pos rem w=3 : rem player 1 y pos rem x=35 : rem player 0 x pos rem y=3 : rem player 0 y pos rem z=0 : rem speed of laser movement