set kernel_options no_blank_lines player1colors include 6lives_statusbar.asm title_screen playfield: XXX.X.XXX.X...XXX.............. .X..X..X..X...X................ .X..X..X..X...XXX.............. .X..X..X..X...X................ .X..X..X..XXX.XXX.............. ............................... .XX..XX.XX..XXX.XXX.XX......... X...X...X.X.X...X...X.X........ .X..X...XX..XXX.XXX.X.X........ ..X.X...X.X.X...X...X.X........ XX...XX.X.X.XXX.XXX.X.X........ end lifecolor=0 player0x=0 : player0y=0 : player1x=0 : player1y=0 COLUPF=64 : COLUBK=0 : b{5}=0 drawscreen if switchreset then goto begin goto title_screen begin lives=64 lives: %01110 %11111 %11111 %00000 %11111 %10101 %10101 %01110 end player1color: 246 246 246 68 68 68 246 246 246 246 246 end dim screen=a dim jump=c screen=0 : b{0}=0 score=0 e{3}=0 : e{2}=0 jump=0 statusbarlength=244 pick_screen screen=screen+1 score=score+1 pick_screen_2 b{0}=0 : g=0 b{6}=0 if b{5} then goto title_screen if screen=1 then player0x=74 : player0y=48 : e{1}=1 : player1x=30 : player1y=10 : playfield: X.........XXXXXXXXXXXXXXXXXXXXX X.........X...................X X.........X...................X XXXXX.....X...................X X.........XXXX....XXXX....XXXXX X.........XXXX....XXXX....XXXXX X.........XXXX....XXXX....XXXXX X....XXXXXXXXX....XXXX....XXXXX X..................XX.......... X..................XX.......... X..................XX.......... end if screen=2 then e{3}=1 : player1y=70 : player0x=110 : playfield: X....................X......... X....................X......... X....XXXXX...XXXXX...XXXXX..... X....X...X...X...X...X...X....X X....X...X...X...X...X...X....X X....X...X...X...X...X...X....X XXXXXX...X...X...X...X...X....X .....XXXXX...XXXXX...XXXXX....X .............X................X .............X................X XXXX.........X................X end if screen=3 then e{1}=1 : e{3}=0 : player0x=53 : player1y=10 : playfield: .......X....................... .......X....................... .......X....................... X......X.....XXXXXXXXXXXXXXXXXX X......X.....XXXX.............X X......X......................X X......X.............XXXX...XXX X......XXXXXXXXXXXXXXXXXX...XXX X.............................X X.............................X X.............................X end if screen=4 then e{1}=0 : e{5}=1 : e{3}=0 : e{4}=1 : player1y=20 : player0y=48 : player0x=40 : playfield: .........X...X.............X... .........X...X.............X... .........X...X.............X... XXXXX....X...X....XXXXX....X... X...X....X...X....X...X....X... X...X....X...X....X...X....X... X...X....X...X....X...X....X... X...X....XXXXX....X...X....XXXX X...X.............X...X........ X...X.............X...X........ X...X.............X...X........ end if screen=5 then player1y=70 : player0x=40 : player0y=48 : e{5}=0 : e{1}=1 : playfield: X......X......X.........X...... X.....X........X.......X....... X....X..........X.....X........ X...X............X...X.......XX X..X......X.......X.X.......X.X X.X......X.X.......X.......X..X XX......X...X.............X...X .......X.....X...........X....X ......X.......X.........X.....X .....X.........X.......X......X XXXXX...........X.....X.......X end player0: %01110001 %11111101 %11111110 %11111110 %10111101 %01110001 end swim if f>10 then player1: %00000101 %00001011 %01001010 %00101010 %01111110 %01111100 %01001000 %11100100 %00000000 %11100000 %01000000 end if f<9 then player1: %00000001 %00000111 %00010010 %00101010 %01111110 %01111100 %01001000 %11110000 %00000000 %11100000 %01000000 end if player1y>88 then goto die if collision(player0,player1) && !b{1} then b{1}=1 : goto die b{1}=0 if e{1} then gosub e_1 if e{5} then gosub e_5 if e{3} then gosub e_3 if e{4} then REFP0=0 else REFP0=8 if player1x<20 then player1x=20 if player1y<13 then player1y=13 if player1x>130 then player1x=20 : goto pick_screen d=d+1 : f=f+1 if g>2 then g=0 if joy0down then d=3 if f>20 then f=0 if !joy0fire && d>2 then b{0}=0 : y=1 if joy0fire then b{0}=1 if b{0} && d>2 then y=255 if joy0left then x=255 : b{2}=1 if joy0right then x=1 : b{2}=0 player1x=player1x+x : player1y=player1y+y if b{2} then REFP1=0 else REFP1=8 ds if screen=1 then NUSIZ0=$02 if screen=3 then NUSIZ0=$06 if screen=4 then NUSIZ0=$06 if screen=5 then NUSIZ0=$06 COLUPF=198 : COLUP1=78 : COLUBK=130 : lifecolor=246 : scorecolor=14 : COLUP0=0 drawscreen if collision(playfield,player1) then player1x=player1x-x : player1y=player1y-y if d>2 then d=0 x=0 : y=0 if b{6} then goto die goto swim e_5 i=i+1 if e{4} && i>1 then player0x=player0x-1 : i=0 if !e{4} && i>1 then player0x=player0x+1 : i=0 if player0x>80 then e{4}=1 if player0x<20 then e{4}=0 return e_3 i=i+1 if e{4} && i>1 then player0x=player0x-1 : i=0 if !e{4} && i>1 then player0x=player0x+1 : i=0 if player0x<20 then e{4}=0 if player0x>125 then e{4}=1 if g<2 then player0y=80 if g>1 then player0y=12 return e_1 g=g+1 if player0y>88 then e{0}=0 if player0y<16 then e{0}=1 if g>2 && e{0} then player0y=player0y+1 if g>2 && !e{0} then player0y=player0y-1 return die b{6}=1 h=h+1 if lives<32 then b{5}=1 if h>59 then statusbarlength=statusbarlength-16 if h>59 && statusbarlength>15 then h=0 : player1x=20 : goto pick_screen_2 if h>59 && statusbarlength<16 then h=0 : lives=lives-32 : player1x=20 : goto pick_screen_2 if h<60 then goto ds