Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- set kernel_options no_blank_lines player1colors
- set romsize 8k
- set smartbranching on
- title_screen
- player1x=58 : player1y=96
- playfield:
- ..XX.XX.XX.X..X..XX.........XX...
- ..X...X.X..XX.X..XX.........X....
- ..X..XX.XX.X..X..XX......XX.XX...
- ..X..XX..X.X..X..X.......XX.X....
- ..XX.XX.XX.XX.XX.XXX.....XX.X....
- ...................X.............
- ...................X.............
- ..................XX.XX.XX.XXXXX.
- ..................XX.XX.XX.X.X.X.
- ..................XX.XX.XX.X.X.X.
- .................................
- end
- player1:
- %0100010
- %0010100
- %0001000
- %0111110
- %1001001
- %0011100
- %0111110
- %0011100
- end
- player1color:
- $f2
- $94
- $94
- $C4
- $2c
- $2c
- $2c
- $22
- end
- player0:
- %11111111
- %11111111
- %11111111
- %10100101
- %10100101
- %10100101
- %10100101
- %10100101
- %10100101
- %10100101
- %10100101
- %11111111
- %11111111
- %11111111
- %11111111
- %11111111
- %11111111
- %11111111
- %11011011
- %11011011
- %11011011
- %11011011
- %11011011
- %11011011
- %10000011
- %10000011
- %10000011
- %10000011
- %10000011
- %10000011
- end
- v=0
- get_random_thunder
- w=rand/64 : t=0
- title_main
- COLUBK=v : scorecolor=$C4
- COLUP0=$04 : COLUPF=$C8 : player0x=50 : player0y=90 : NUSIZ0=$01 : CTRLPF=$31
- ballx=59 : bally=87 : ballheight=13
- if player1y>82 && player1y<200 then e=e+1 else player1y=200
- if e>10 && player1y<>87 then e=0 : player1y=player1y-1
- if e>200 && player1y=87 then e=0 : player1y=player1y-1
- if joy0fire && !b{0} then b{0}=1
- if !joy0fire && b{0} then b{0}=0 : goto new_game
- dim scback=u
- u=$c4
- drawscreen
- z=z+1
- if z>59 then z=0 : t=t+1
- if t=w && z=59 then v=8
- if t>w then goto thunder
- AUDV0=0
- goto title_main
- thunder
- AUDV0=v : AUDF0=v*2 : AUDC0=2
- if z>7 then z=0 : v=v-1
- if v=0 then goto get_random_thunder
- goto title_main
- new_game
- scorecolor=14
- AUDV0=0
- player0:
- %00010100
- %00111100
- %01111110
- %01010010
- %11011011
- end
- o=64
- player1x=23 : player1y=79
- dim level=r
- level=17 : score=18
- if joy0up then level=0 : score=1
- goto get_new_level bank2
- main
- COLUPF=$24
- COLUP0=$66
- u=0 : COLUBK=0
- ballheight=13 : CTRLPF=$31
- NUSIZ0=$06
- if level=12 then NUSIZ0=$03
- if level=14 then NUSIZ0=$00
- dim sc1=score
- dim sc2=score+1
- sc1=$DA
- sc2=$BC
- if !switchbw then goto skip_music
- rem music data
- AUDC0=12 : AUDF0=bass_notes[n] : AUDV0=4
- l=l+1
- if l>39 then l=0 : n=n+1 : p=p+1
- if n>47 then n=0 : p=0
- skip_music
- if player1x<20 then player1x=132
- if player1x>132 then player1x=20
- if switchreset then goto title_screen
- drawscreen
- if !a{1} && joy0up && collision(player1,ball) then level=level+1 : score=score+1 : goto get_new_level bank2
- if collision(player1,player0) then o=32 : goto get_new_level bank2
- if player1y>90 then goto get_new_level bank2
- if level=14 && m=3 then player0y=player0y+2
- if level=14 && m=4 then player0x=player0x-2
- if level=14 && m=1 then player0y=player0y-2
- if level=14 && m=2 then player0x=player0x+2
- if level=14 && player0y>80 then m=4 : player0y=80 : player0x=player0x-2
- if level=14 && player0x<30 then m=1
- if level=14 && player0y<20 then m=2
- if level=14 && player0x>130 then m=3
- if level=14 then goto main_2
- if level>10 && v>90 && m{0} then player0x=player0x-1
- if level>10 && v>90 && !m{0} then player0x=player0x+1
- if level=10 && m{0} && t>5 then player0x=player0x-1
- if level=10 && !m{0} && t>5 then player0x=player0x+1
- if level=10 && player0y<player1y && t>5 then player0y=player0y+1
- if level=10 && player0y>player1y && t>5 then player0y=player0y-1
- if t>5 then t=0
- if t=5 && player0x>v then m{0}=1
- if t=5 && player0x<20 then m{0}=0
- if v>90 then t=t+1 : goto main_2
- if m{0} then player0y=player0y+1 else player0y=player0y-1
- if player0y=10 then m{0}=1
- if player0y=v then m{0}=0
- main_2
- AUDV1=0
- if z>30 then a{0}=0 : a{1}=1 : goto __Test_P0_Down
- if a{0} && z<30 && o=64 then AUDC1=1 : AUDV1=4 : AUDF1=z
- if o<64 then o=o+1 : AUDC1=3 : AUDF1=o/2 : AUDV1=4
- if o>63 then o=64
- if joy0fire && !a{0} then a{0}=1 : goto __Test_P0_Up
- if !joy0fire && a{0} then a{0}=0
- if a{0} then goto __Test_P0_Up
- if !a{0} then a{1}=1 : z=21
- __Test_P0_Up
- z=z+1
- b=(player1x-17)/4
- e=(player1y/8)-1
- if pfread(b,e) then a{0}=0 : z=31 : a{0}=0 : a{1}=1 : goto __Cant_Move_Up
- d=b + 2
- if pfread(d,e) then a{0}=0 : z=31 : a{0}=0 : a{1}=1 : goto __Cant_Move_Up
- goto __P0_Move_Up
- __Cant_Move_Up
- goto __Skip_Joy0_Up
- __P0_Move_Up
- if a{0} then player1y=player1y-1
- __Skip_Joy0_Up
- if a{1} then goto __Test_P0_Down
- goto __Skip_Joy0_Down
- __Test_P0_Down
- if !a{1} then goto __Skip_Joy0_Down
- b = (player1x-17)/4
- e = ((player1y-7)/8) + 1
- if pfread(b,e) then goto __Cant_Move_Down
- d = b + 2
- if pfread(d,e) then goto __Cant_Move_Down
- goto __P0_Move_Down
- __Cant_Move_Down
- a=0 : z=0
- goto __Skip_Joy0_Down
- __P0_Move_Down
- if a{1} then player1y=player1y+1
- if joy0left then goto left
- if joy0right then goto right
- goto main
- __Skip_Joy0_Down
- left
- f = ((player1x-14)/4)-1
- g = (player1y)/8
- if pfread(f,g) then goto __Cant_Move_Left
- goto __P0_Move_Left
- __Cant_Move_Left
- goto __Skip_Joy0_Left
- __P0_Move_Left
- if joy0left then player1x=player1x-1 : goto main
- __Skip_Joy0_Left
- if joy0right then goto __Test_P0_Right
- goto main
- right
- __Test_P0_Right
- f = ((player1x-12)/4)+1
- g = ((player1y)/8)
- if pfread(f,g) then goto __Cant_Move_Right
- goto __P0_Move_Right
- __Cant_Move_Right
- goto __Skip_Joy0_Right
- __P0_Move_Right
- if joy0right then player1x=player1x+1
- __Skip_Joy0_Right
- goto main
- level_info
- player0x = P0x_dat[r] : player0y = P0y_dat[r]
- ballx = ballx_dat[r] : bally = bally_dat[r]
- gosub on_r
- goto main
- on_r
- temp1 = lo_table[r] : temp2 = hi_table[r]
- asm
- jmp (temp1)
- end
- data lo_table
- <.aa, <.ab, <.ac, <.ad, <.ae, <.af, <.ag, <.ah, <.ai, <.aj
- <.ak, <.al, <.am, <.an, <.ao, <.ap, <.aq, <.ar, <.aa
- end
- data hi_table
- >.aa, >.ab, >.ac, >.ad, >.ae, >.af, >.ag, >.ah, >.ai, >.aj
- >.ak, >.al, >.am, >.an, >.ao, >.ap, >.aq, >.ar, >.aa
- end
- data P0x_dat
- 130, 37, 57, 52, 70, 132, 130, 130, 57
- 57, 57, 130, 60, 69, 131, 50, 30, 50
- end
- data P0y_dat
- 20, 20, 30, 30, 30, 56, 60, 48, 48
- 47, 47, 72, 66, 12, 10, 40, 40, 49
- end
- data ballx_dat
- 56, 130, 120, 73, 40, 130, 70, 130, 133
- 23, 45, 108, 74, 25, 112, 33, 33, 48
- end
- data bally_dat
- 78, 78, 78, 30, 54, 54, 78, 22, 30
- 22, 30, 62, 78, 54, 78, 54, 54, 22
- end
- aa v=80 : return
- ab v=70
- ac return
- ad v=80 : return
- ae v=90 : return
- af player1x=44 : player1y=79 : return
- ag v=80
- ah return
- ai v=80 : return
- aj v=90 : return
- ak v=130 : return
- al player1x=52 : v=135 : return
- am v=90 : return
- an v=90 : return
- ao v=135 : return
- ap v=90 : return
- aq player1x=21 : v=90 : return
- ar player1x=40 : v=90 : return
- data treble_notes
- 14, 17, 15, 18, 17, 20, 23, 18
- 14, 11, 15, 18, 17, 20, 18, 15
- end
- data bass_notes
- 23, 20, 19, 23, 20, 19, 23, 20, 19, 23, 20, 19
- 24, 23, 20, 24, 23, 20, 24, 23, 20, 24, 23, 20
- 27, 24, 23, 27, 24, 23, 27, 24, 23, 27, 24, 23
- 29, 27, 24, 29, 27, 24, 29, 27, 24, 29, 27, 24
- end
- bank 2
- get_new_level
- player1x=23 : player1y=79
- if r < 9 then on r goto ca cb cc cd ce cf cg ch ci
- s = r - 9 : if s < 9 then on s goto cj ck cl cm cn co cp cq cr cs
- ca
- playfield:
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- X..............................X
- X..............................X
- X.......XXXXXXXXXXXXXXXXXXX....X
- X.........X............XX......X
- XXXXX.....X............XX......X
- X.........X..............XX....X
- X.......XXX.....XX.......XX....X
- X.......X.......XX.............X
- X.......X.......XX.............X
- XXXXXXXXXXXXXXXXXX......XXXXXXXX
- ................................
- end
- goto level_info_bank1_jump
- cb
- playfield:
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- X..............................X
- X..............................X
- X.....XXXXXXXXXXXXXXXXXXXXX....X
- XXX...X........................X
- X.....X........................X
- X.....X.......XXXXXXXXXXXXXXXXXX
- X...XXX..XX...XXXX....XXXXX....X
- X.....X........................X
- X.....X........................X
- XXXXXXX.......XXXX....XXXXXXXXXX
- end
- goto level_info_bank1_jump
- cc
- playfield:
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- X..............................X
- X..............................X
- X.......................XXX....X
- X.......................X.X....X
- X.......................X.X....X
- X.........XX.....XX.....X.X....X
- X....XX.................XXX....X
- X....XX.................X......X
- X....XX.................X......X
- XXXXXXX.................XXXXXXXX
- end
- goto level_info_bank1_jump
- cd
- playfield:
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- X...........X..................X
- X...........X..................X
- X...........X.........XXX......X
- X.....XX....XXXXXXXXXXX.....XXXX
- X.....XX....XX........X........X
- X.....XX....XX........X........X
- X...XXXX....XX...XX...XXXXX....X
- X.....XX.........XX............X
- X.....XX.........XX............X
- XXXXXXXX....XX...XX....XXXXXXXXX
- end
- goto level_info_bank1_jump
- ce
- playfield:
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- XXXX...........................X
- X..............................X
- X..............................X
- X...XXXXXX.....XX....XX..XX....X
- X........X.....XX....XX........X
- X........X.....XX............XXX
- XXXXXXXXXX.....................X
- X........................XX....X
- X....................XX..XX....X
- XXXXXXXXXX.....XX....XX..XX....X
- end
- goto level_info_bank1_jump
- cf
- playfield:
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- X..............................X
- X..............................X
- X..............................X
- X..........XX.....XX.....XX....X
- X...XX.....XX.....XX.....XX....X
- X...XX.....XX.....XX.....XX....X
- X...XX.....XX............XXXXXXX
- X...XX...XXXX..................X
- X...XX.....XX..................X
- X...XXXXXXXXXXXXXXXXXXXXXXXXXXXX
- end
- goto level_info_bank1_jump
- cg
- playfield:
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- X..............................X
- X..............................X
- X.....XX...XX......XXXX...XX...X
- X...XXXXXXXXXXXXXXXXXXX...XX...X
- X.....XX..................XX...X
- X.....XX..................XX...X
- XXX........XXXXXXXXXXXXXXXXX...X
- X..........X...................X
- X..........X...................X
- XXXXXXX....XXXX...XXX...XXXX...X
- end
- goto level_info_bank1_jump
- ch
- playfield:
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- X....................X.........X
- X....................X.........X
- X...XX...XX...XXXX...X....XXXXXX
- X.............X..X...X.........X
- XXX...........X..X...XXX.......X
- ..X...........X..X...X.X.......X
- XXXXXXXXXX....X..X...XXXXXXX...X
- X.............X..X.............X
- X.............X..X.............X
- XXXXXXXXXXXXXXX..XXXXXXXXXXXXXXX
- end
- goto level_info_bank1_jump
- ci
- playfield:
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- X...........X..........X.......X
- X...........X..........X.......X
- X......XX...X.....XX...X.......X
- X....XXXX...X...XXXX...X...XXXXX
- X......XX...X.....XX...X.......X
- X......XX...X.....XX...X.......X
- XXXX...XX...XXX...XX...XXX.....X
- X......XX.........XX...........X
- X......XX.........XX...........X
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- end
- goto level_info_bank1_jump
- cj
- playfield:
- XXXXXXXXXXXXXXXXXXXXXXXXXXXX....
- X........X.................X....
- X........X.................X....
- XXXXXX...X......XXXXXX.....XXXXX
- .........XXX....XX.......XX.....
- .........X......XX.....XX.......
- XXXXXXXXXX......XX.....XX.....XX
- X........XXX....XX.....XX.....XX
- X...............XXXX........XXXX
- X....XX...........XXXX........XX
- XXXXXXXXXXXXXX........XXXXXXXXXX
- end
- goto level_info_bank1_jump
- ck
- playfield:
- X..............................X
- X....XXXXXXXXXXXXXXXXXXXXX.....X
- X....X...................X.....X
- X....X...................X.....X
- X....XXXXXXXXXXXXXXXX....XXX...X
- X........................X.....X
- X........................X.....X
- XXXXXXXXXXXXXXXXXXXXXXXXXX...XXX
- X..............................X
- X..............................X
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- end
- goto level_info_bank1_jump
- cl
- playfield:
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ......XX........................
- ......XX........................
- XXX...XX....XXXXXXXXXXXXXXXXXXXX
- X.....XX.............X.........X
- X...XXXX.............X.........X
- X.....XX...XX...XX...X.........X
- XXX........XX...XX...X...XX....X
- X..........XX...XX...XXXXXX....X
- X..........XX...XX.............X
- XXX.....XXXXX...XXXXXXXXXXXXXXXX
- end
- goto level_info_bank1_jump
- cm
- playfield:
- ....XXXXXXXXXXXXXXXXXXXXXXXXXXXX
- XXXXXX...........XX............X
- X................XX............X
- X...........XX...XX.....XXXX...X
- X...XXXXXXXXXX...XXXX...XX.....X
- X...........XX..........XX.....X
- X...........XX..........XX...XXX
- XXXXXXXXX...XXXXXXXXXXXXXX...X..
- X...........X................X..
- X...........X................X..
- XXXXXXXXX...XXXXXXXXXXXXXXXXXX..
- end
- goto level_info_bank1_jump
- cn
- playfield:
- X..............................X
- X..............................X
- X...XXXXXXXXXXXXXX...XX........X
- X...X...........XX...........XXX
- X...X...........XX.............X
- X...X.....XX....XX.............X
- X...X.....X.....XX...XX........X
- XXXXX...XXX...XX.............XXX
- X.........X....................X
- X.........X....................X
- XXXXXXXXXXXXXXXX.....XX......XXX
- end
- goto level_info_bank1_jump
- co
- playfield:
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- X.............X.....XX.........X
- X.............X................X
- X.....XXXXX...X..........XXX...X
- XXX...X.......X...XXXXXXXX.....X
- X.....X.......X.........X....XXX
- X.....X...XXXXX.........X......X
- X...XXX......XXXXXX...XXXXXX...X
- X.....X...............X........X
- X.....X...............X........X
- XXXXXXX.....XX...XX...XXXXXX...X
- end
- goto level_info_bank1_jump
- cp
- playfield:
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- X..............................X
- X..............................X
- X...XXXXXXXXX...XXXXX...XX.....X
- X...XXX.....X...X...X...XX...XXX
- X.....X.....XXXXX...XXXXXX.....X
- X.....X........................X
- XXXXXXX......................XXX
- X.........XX.........XX........X
- X.........XX....XX...XX........X
- XXXXXXX...XX....XX...XXXXXXXXXXX
- end
- goto level_info_bank1_jump
- cq
- playfield:
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ......X.........................
- ......X.........................
- XX....X...XXXXXXX.............XX
- XX....X..........XXXXXXXXXXXXXXX
- XX....X........................X
- XX....XXXX.....................X
- XXXXXXXXXXXXXXXXXXXXXXXXXXXX...X
- X..............................X
- X..............................X
- XXXX...XXX...XXX...XXX...XXX...X
- end
- goto level_info_bank1_jump
- cr
- playfield:
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- ......X.........................
- ......X.........................
- XX....XXX.....XX.....XXXXXXXXXXX
- XX......X............XX........X
- XXXX....X............XX........X
- XX......X............XX........X
- .....XXXX.......XX...XX...XX...X
- .....X..........XX........XX....
- .....X..........XX........XX....
- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- end
- goto level_info_bank1_jump
- cs
- level=0 : score=1
- level_info_bank1_jump
- goto level_info bank1
- asm
- minikernel
- lda scback
- sta COLUBK
- rts
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement