Advertisement
Guest User

new_castle14new.bas

a guest
Aug 27th, 2014
294
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.72 KB | None | 0 0
  1. set kernel_options no_blank_lines player1colors
  2. set romsize 8k
  3. set smartbranching on
  4.  
  5.  
  6. title_screen
  7. player1x=58 : player1y=96
  8.  
  9. playfield:
  10. ..XX.XX.XX.X..X..XX.........XX...
  11. ..X...X.X..XX.X..XX.........X....
  12. ..X..XX.XX.X..X..XX......XX.XX...
  13. ..X..XX..X.X..X..X.......XX.X....
  14. ..XX.XX.XX.XX.XX.XXX.....XX.X....
  15. ...................X.............
  16. ...................X.............
  17. ..................XX.XX.XX.XXXXX.
  18. ..................XX.XX.XX.X.X.X.
  19. ..................XX.XX.XX.X.X.X.
  20. .................................
  21. end
  22.  
  23. player1:
  24. %0100010
  25. %0010100
  26. %0001000
  27. %0111110
  28. %1001001
  29. %0011100
  30. %0111110
  31. %0011100
  32. end
  33. player1color:
  34. $f2
  35. $94
  36. $94
  37. $C4
  38. $2c
  39. $2c
  40. $2c
  41. $22
  42. end
  43.  
  44. player0:
  45. %11111111
  46. %11111111
  47. %11111111
  48. %10100101
  49. %10100101
  50. %10100101
  51. %10100101
  52. %10100101
  53. %10100101
  54. %10100101
  55. %10100101
  56. %11111111
  57. %11111111
  58. %11111111
  59. %11111111
  60. %11111111
  61. %11111111
  62. %11111111
  63. %11011011
  64. %11011011
  65. %11011011
  66. %11011011
  67. %11011011
  68. %11011011
  69. %10000011
  70. %10000011
  71. %10000011
  72. %10000011
  73. %10000011
  74. %10000011
  75. end
  76.  
  77.  
  78. v=0
  79.  
  80. get_random_thunder
  81. w=rand/64 : t=0
  82.  
  83. title_main
  84. COLUBK=v : scorecolor=$C4
  85. COLUP0=$04 : COLUPF=$C8 : player0x=50 : player0y=90 : NUSIZ0=$01 : CTRLPF=$31
  86. ballx=59 : bally=87 : ballheight=13
  87. if player1y>82 && player1y<200 then e=e+1 else player1y=200
  88. if e>10 && player1y<>87 then e=0 : player1y=player1y-1
  89. if e>200 && player1y=87 then e=0 : player1y=player1y-1
  90.  
  91. if joy0fire && !b{0} then b{0}=1
  92. if !joy0fire && b{0} then b{0}=0 : goto new_game
  93.  
  94. dim scback=u
  95. u=$c4
  96.  
  97. drawscreen
  98. z=z+1
  99. if z>59 then z=0 : t=t+1
  100. if t=w && z=59 then v=8
  101. if t>w then goto thunder
  102.  
  103. AUDV0=0
  104.  
  105. goto title_main
  106.  
  107. thunder
  108. AUDV0=v : AUDF0=v*2 : AUDC0=2
  109. if z>7 then z=0 : v=v-1
  110. if v=0 then goto get_random_thunder
  111. goto title_main
  112.  
  113. new_game
  114.  
  115. scorecolor=14
  116.  
  117.  
  118. AUDV0=0
  119.  
  120.  
  121. player0:
  122. %00010100
  123. %00111100
  124. %01111110
  125. %01010010
  126. %11011011
  127. end
  128.  
  129. o=64
  130. player1x=23 : player1y=79
  131. dim level=r
  132.  
  133. level=17 : score=18
  134.  
  135.  
  136.  
  137. if joy0up then level=0 : score=1
  138.  
  139.  
  140. goto get_new_level bank2
  141.  
  142.  
  143. main
  144.  
  145. COLUPF=$24
  146. COLUP0=$66
  147. u=0 : COLUBK=0
  148. ballheight=13 : CTRLPF=$31
  149.  
  150. NUSIZ0=$06
  151. if level=12 then NUSIZ0=$03
  152. if level=14 then NUSIZ0=$00
  153.  
  154. dim sc1=score
  155. dim sc2=score+1
  156.  
  157. sc1=$DA
  158. sc2=$BC
  159.  
  160. if !switchbw then goto skip_music
  161.  
  162. rem music data
  163. AUDC0=12 : AUDF0=bass_notes[n] : AUDV0=4
  164. l=l+1
  165. if l>39 then l=0 : n=n+1 : p=p+1
  166. if n>47 then n=0 : p=0
  167.  
  168.  
  169. skip_music
  170. if player1x<20 then player1x=132
  171. if player1x>132 then player1x=20
  172.  
  173. if switchreset then goto title_screen
  174.  
  175. drawscreen
  176.  
  177. if !a{1} && joy0up && collision(player1,ball) then level=level+1 : score=score+1 : goto get_new_level bank2
  178. if collision(player1,player0) then o=32 : goto get_new_level bank2
  179. if player1y>90 then goto get_new_level bank2
  180.  
  181. if level=14 && m=3 then player0y=player0y+2
  182. if level=14 && m=4 then player0x=player0x-2
  183. if level=14 && m=1 then player0y=player0y-2
  184. if level=14 && m=2 then player0x=player0x+2
  185.  
  186. if level=14 && player0y>80 then m=4 : player0y=80 : player0x=player0x-2
  187. if level=14 && player0x<30 then m=1
  188. if level=14 && player0y<20 then m=2
  189. if level=14 && player0x>130 then m=3
  190.  
  191. if level=14 then goto main_2
  192.  
  193.  
  194. if level>10 && v>90 && m{0} then player0x=player0x-1
  195. if level>10 && v>90 && !m{0} then player0x=player0x+1
  196.  
  197. if level=10 && m{0} && t>5 then player0x=player0x-1
  198. if level=10 && !m{0} && t>5 then player0x=player0x+1
  199.  
  200. if level=10 && player0y<player1y && t>5 then player0y=player0y+1
  201. if level=10 && player0y>player1y && t>5 then player0y=player0y-1
  202.  
  203.  
  204. if t>5 then t=0
  205.  
  206. if t=5 && player0x>v then m{0}=1
  207. if t=5 && player0x<20 then m{0}=0
  208.  
  209. if v>90 then t=t+1 : goto main_2
  210.  
  211. if m{0} then player0y=player0y+1 else player0y=player0y-1
  212. if player0y=10 then m{0}=1
  213. if player0y=v then m{0}=0
  214.  
  215. main_2
  216.  
  217. AUDV1=0
  218.  
  219. if z>30 then a{0}=0 : a{1}=1 : goto __Test_P0_Down
  220. if a{0} && z<30 && o=64 then AUDC1=1 : AUDV1=4 : AUDF1=z
  221.  
  222. if o<64 then o=o+1 : AUDC1=3 : AUDF1=o/2 : AUDV1=4
  223. if o>63 then o=64
  224.  
  225.  
  226. if joy0fire && !a{0} then a{0}=1 : goto __Test_P0_Up
  227.  
  228.  
  229. if !joy0fire && a{0} then a{0}=0
  230.  
  231.  
  232. if a{0} then goto __Test_P0_Up
  233. if !a{0} then a{1}=1 : z=21
  234.  
  235.  
  236.  
  237. __Test_P0_Up
  238. z=z+1
  239. b=(player1x-17)/4
  240. e=(player1y/8)-1
  241. if pfread(b,e) then a{0}=0 : z=31 : a{0}=0 : a{1}=1 : goto __Cant_Move_Up
  242. d=b + 2
  243. if pfread(d,e) then a{0}=0 : z=31 : a{0}=0 : a{1}=1 : goto __Cant_Move_Up
  244. goto __P0_Move_Up
  245.  
  246. __Cant_Move_Up
  247. goto __Skip_Joy0_Up
  248.  
  249. __P0_Move_Up
  250. if a{0} then player1y=player1y-1
  251.  
  252.  
  253. __Skip_Joy0_Up
  254. if a{1} then goto __Test_P0_Down
  255. goto __Skip_Joy0_Down
  256.  
  257.  
  258. __Test_P0_Down
  259. if !a{1} then goto __Skip_Joy0_Down
  260.  
  261. b = (player1x-17)/4
  262. e = ((player1y-7)/8) + 1
  263. if pfread(b,e) then goto __Cant_Move_Down
  264. d = b + 2
  265. if pfread(d,e) then goto __Cant_Move_Down
  266. goto __P0_Move_Down
  267.  
  268.  
  269. __Cant_Move_Down
  270. a=0 : z=0
  271. goto __Skip_Joy0_Down
  272.  
  273.  
  274. __P0_Move_Down
  275. if a{1} then player1y=player1y+1
  276. if joy0left then goto left
  277. if joy0right then goto right
  278. goto main
  279.  
  280. __Skip_Joy0_Down
  281.  
  282. left
  283. f = ((player1x-14)/4)-1
  284. g = (player1y)/8
  285. if pfread(f,g) then goto __Cant_Move_Left
  286. goto __P0_Move_Left
  287.  
  288. __Cant_Move_Left
  289. goto __Skip_Joy0_Left
  290.  
  291. __P0_Move_Left
  292. if joy0left then player1x=player1x-1 : goto main
  293.  
  294. __Skip_Joy0_Left
  295. if joy0right then goto __Test_P0_Right
  296. goto main
  297.  
  298. right
  299. __Test_P0_Right
  300. f = ((player1x-12)/4)+1
  301. g = ((player1y)/8)
  302. if pfread(f,g) then goto __Cant_Move_Right
  303.  
  304.  
  305. goto __P0_Move_Right
  306.  
  307. __Cant_Move_Right
  308. goto __Skip_Joy0_Right
  309.  
  310. __P0_Move_Right
  311. if joy0right then player1x=player1x+1
  312.  
  313. __Skip_Joy0_Right
  314. goto main
  315.  
  316.  
  317. level_info
  318.  
  319. player0x = P0x_dat[r] : player0y = P0y_dat[r]
  320. ballx = ballx_dat[r] : bally = bally_dat[r]
  321.  
  322. gosub on_r
  323. goto main
  324.  
  325.  
  326. on_r
  327. temp1 = lo_table[r] : temp2 = hi_table[r]
  328.  
  329. asm
  330. jmp (temp1)
  331. end
  332.  
  333. data lo_table
  334. <.aa, <.ab, <.ac, <.ad, <.ae, <.af, <.ag, <.ah, <.ai, <.aj
  335. <.ak, <.al, <.am, <.an, <.ao, <.ap, <.aq, <.ar, <.aa
  336. end
  337.  
  338. data hi_table
  339. >.aa, >.ab, >.ac, >.ad, >.ae, >.af, >.ag, >.ah, >.ai, >.aj
  340. >.ak, >.al, >.am, >.an, >.ao, >.ap, >.aq, >.ar, >.aa
  341. end
  342.  
  343.  
  344. data P0x_dat
  345. 130, 37, 57, 52, 70, 132, 130, 130, 57
  346. 57, 57, 130, 60, 69, 131, 50, 30, 50
  347. end
  348.  
  349. data P0y_dat
  350. 20, 20, 30, 30, 30, 56, 60, 48, 48
  351. 47, 47, 72, 66, 12, 10, 40, 40, 49
  352. end
  353.  
  354. data ballx_dat
  355. 56, 130, 120, 73, 40, 130, 70, 130, 133
  356. 23, 45, 108, 74, 25, 112, 33, 33, 48
  357. end
  358.  
  359. data bally_dat
  360. 78, 78, 78, 30, 54, 54, 78, 22, 30
  361. 22, 30, 62, 78, 54, 78, 54, 54, 22
  362. end
  363.  
  364. aa v=80 : return
  365. ab v=70
  366. ac return
  367. ad v=80 : return
  368. ae v=90 : return
  369. af player1x=44 : player1y=79 : return
  370. ag v=80
  371. ah return
  372. ai v=80 : return
  373. aj v=90 : return
  374. ak v=130 : return
  375. al player1x=52 : v=135 : return
  376. am v=90 : return
  377. an v=90 : return
  378. ao v=135 : return
  379. ap v=90 : return
  380. aq player1x=21 : v=90 : return
  381. ar player1x=40 : v=90 : return
  382.  
  383.  
  384. data treble_notes
  385. 14, 17, 15, 18, 17, 20, 23, 18
  386. 14, 11, 15, 18, 17, 20, 18, 15
  387. end
  388.  
  389. data bass_notes
  390. 23, 20, 19, 23, 20, 19, 23, 20, 19, 23, 20, 19
  391. 24, 23, 20, 24, 23, 20, 24, 23, 20, 24, 23, 20
  392. 27, 24, 23, 27, 24, 23, 27, 24, 23, 27, 24, 23
  393. 29, 27, 24, 29, 27, 24, 29, 27, 24, 29, 27, 24
  394. end
  395.  
  396.  
  397. bank 2
  398.  
  399. get_new_level
  400.  
  401. player1x=23 : player1y=79
  402.  
  403. if r < 9 then on r goto ca cb cc cd ce cf cg ch ci
  404. s = r - 9 : if s < 9 then on s goto cj ck cl cm cn co cp cq cr cs
  405.  
  406.  
  407.  
  408.  
  409.  
  410. ca
  411. playfield:
  412. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  413. X..............................X
  414. X..............................X
  415. X.......XXXXXXXXXXXXXXXXXXX....X
  416. X.........X............XX......X
  417. XXXXX.....X............XX......X
  418. X.........X..............XX....X
  419. X.......XXX.....XX.......XX....X
  420. X.......X.......XX.............X
  421. X.......X.......XX.............X
  422. XXXXXXXXXXXXXXXXXX......XXXXXXXX
  423. ................................
  424. end
  425. goto level_info_bank1_jump
  426.  
  427. cb
  428. playfield:
  429. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  430. X..............................X
  431. X..............................X
  432. X.....XXXXXXXXXXXXXXXXXXXXX....X
  433. XXX...X........................X
  434. X.....X........................X
  435. X.....X.......XXXXXXXXXXXXXXXXXX
  436. X...XXX..XX...XXXX....XXXXX....X
  437. X.....X........................X
  438. X.....X........................X
  439. XXXXXXX.......XXXX....XXXXXXXXXX
  440. end
  441. goto level_info_bank1_jump
  442.  
  443. cc
  444. playfield:
  445. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  446. X..............................X
  447. X..............................X
  448. X.......................XXX....X
  449. X.......................X.X....X
  450. X.......................X.X....X
  451. X.........XX.....XX.....X.X....X
  452. X....XX.................XXX....X
  453. X....XX.................X......X
  454. X....XX.................X......X
  455. XXXXXXX.................XXXXXXXX
  456. end
  457. goto level_info_bank1_jump
  458.  
  459. cd
  460. playfield:
  461. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  462. X...........X..................X
  463. X...........X..................X
  464. X...........X.........XXX......X
  465. X.....XX....XXXXXXXXXXX.....XXXX
  466. X.....XX....XX........X........X
  467. X.....XX....XX........X........X
  468. X...XXXX....XX...XX...XXXXX....X
  469. X.....XX.........XX............X
  470. X.....XX.........XX............X
  471. XXXXXXXX....XX...XX....XXXXXXXXX
  472. end
  473. goto level_info_bank1_jump
  474.  
  475.  
  476. ce
  477. playfield:
  478. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  479. XXXX...........................X
  480. X..............................X
  481. X..............................X
  482. X...XXXXXX.....XX....XX..XX....X
  483. X........X.....XX....XX........X
  484. X........X.....XX............XXX
  485. XXXXXXXXXX.....................X
  486. X........................XX....X
  487. X....................XX..XX....X
  488. XXXXXXXXXX.....XX....XX..XX....X
  489. end
  490. goto level_info_bank1_jump
  491.  
  492. cf
  493. playfield:
  494. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  495. X..............................X
  496. X..............................X
  497. X..............................X
  498. X..........XX.....XX.....XX....X
  499. X...XX.....XX.....XX.....XX....X
  500. X...XX.....XX.....XX.....XX....X
  501. X...XX.....XX............XXXXXXX
  502. X...XX...XXXX..................X
  503. X...XX.....XX..................X
  504. X...XXXXXXXXXXXXXXXXXXXXXXXXXXXX
  505. end
  506. goto level_info_bank1_jump
  507.  
  508. cg
  509. playfield:
  510. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  511. X..............................X
  512. X..............................X
  513. X.....XX...XX......XXXX...XX...X
  514. X...XXXXXXXXXXXXXXXXXXX...XX...X
  515. X.....XX..................XX...X
  516. X.....XX..................XX...X
  517. XXX........XXXXXXXXXXXXXXXXX...X
  518. X..........X...................X
  519. X..........X...................X
  520. XXXXXXX....XXXX...XXX...XXXX...X
  521. end
  522. goto level_info_bank1_jump
  523.  
  524. ch
  525. playfield:
  526. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  527. X....................X.........X
  528. X....................X.........X
  529. X...XX...XX...XXXX...X....XXXXXX
  530. X.............X..X...X.........X
  531. XXX...........X..X...XXX.......X
  532. ..X...........X..X...X.X.......X
  533. XXXXXXXXXX....X..X...XXXXXXX...X
  534. X.............X..X.............X
  535. X.............X..X.............X
  536. XXXXXXXXXXXXXXX..XXXXXXXXXXXXXXX
  537. end
  538. goto level_info_bank1_jump
  539.  
  540. ci
  541. playfield:
  542. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  543. X...........X..........X.......X
  544. X...........X..........X.......X
  545. X......XX...X.....XX...X.......X
  546. X....XXXX...X...XXXX...X...XXXXX
  547. X......XX...X.....XX...X.......X
  548. X......XX...X.....XX...X.......X
  549. XXXX...XX...XXX...XX...XXX.....X
  550. X......XX.........XX...........X
  551. X......XX.........XX...........X
  552. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  553. end
  554.  
  555. goto level_info_bank1_jump
  556.  
  557. cj
  558. playfield:
  559. XXXXXXXXXXXXXXXXXXXXXXXXXXXX....
  560. X........X.................X....
  561. X........X.................X....
  562. XXXXXX...X......XXXXXX.....XXXXX
  563. .........XXX....XX.......XX.....
  564. .........X......XX.....XX.......
  565. XXXXXXXXXX......XX.....XX.....XX
  566. X........XXX....XX.....XX.....XX
  567. X...............XXXX........XXXX
  568. X....XX...........XXXX........XX
  569. XXXXXXXXXXXXXX........XXXXXXXXXX
  570. end
  571. goto level_info_bank1_jump
  572.  
  573. ck
  574. playfield:
  575. X..............................X
  576. X....XXXXXXXXXXXXXXXXXXXXX.....X
  577. X....X...................X.....X
  578. X....X...................X.....X
  579. X....XXXXXXXXXXXXXXXX....XXX...X
  580. X........................X.....X
  581. X........................X.....X
  582. XXXXXXXXXXXXXXXXXXXXXXXXXX...XXX
  583. X..............................X
  584. X..............................X
  585. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  586. end
  587. goto level_info_bank1_jump
  588.  
  589. cl
  590. playfield:
  591. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  592. ......XX........................
  593. ......XX........................
  594. XXX...XX....XXXXXXXXXXXXXXXXXXXX
  595. X.....XX.............X.........X
  596. X...XXXX.............X.........X
  597. X.....XX...XX...XX...X.........X
  598. XXX........XX...XX...X...XX....X
  599. X..........XX...XX...XXXXXX....X
  600. X..........XX...XX.............X
  601. XXX.....XXXXX...XXXXXXXXXXXXXXXX
  602. end
  603. goto level_info_bank1_jump
  604.  
  605. cm
  606. playfield:
  607. ....XXXXXXXXXXXXXXXXXXXXXXXXXXXX
  608. XXXXXX...........XX............X
  609. X................XX............X
  610. X...........XX...XX.....XXXX...X
  611. X...XXXXXXXXXX...XXXX...XX.....X
  612. X...........XX..........XX.....X
  613. X...........XX..........XX...XXX
  614. XXXXXXXXX...XXXXXXXXXXXXXX...X..
  615. X...........X................X..
  616. X...........X................X..
  617. XXXXXXXXX...XXXXXXXXXXXXXXXXXX..
  618. end
  619. goto level_info_bank1_jump
  620.  
  621. cn
  622. playfield:
  623. X..............................X
  624. X..............................X
  625. X...XXXXXXXXXXXXXX...XX........X
  626. X...X...........XX...........XXX
  627. X...X...........XX.............X
  628. X...X.....XX....XX.............X
  629. X...X.....X.....XX...XX........X
  630. XXXXX...XXX...XX.............XXX
  631. X.........X....................X
  632. X.........X....................X
  633. XXXXXXXXXXXXXXXX.....XX......XXX
  634. end
  635. goto level_info_bank1_jump
  636.  
  637. co
  638. playfield:
  639. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  640. X.............X.....XX.........X
  641. X.............X................X
  642. X.....XXXXX...X..........XXX...X
  643. XXX...X.......X...XXXXXXXX.....X
  644. X.....X.......X.........X....XXX
  645. X.....X...XXXXX.........X......X
  646. X...XXX......XXXXXX...XXXXXX...X
  647. X.....X...............X........X
  648. X.....X...............X........X
  649. XXXXXXX.....XX...XX...XXXXXX...X
  650. end
  651. goto level_info_bank1_jump
  652.  
  653. cp
  654. playfield:
  655. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  656. X..............................X
  657. X..............................X
  658. X...XXXXXXXXX...XXXXX...XX.....X
  659. X...XXX.....X...X...X...XX...XXX
  660. X.....X.....XXXXX...XXXXXX.....X
  661. X.....X........................X
  662. XXXXXXX......................XXX
  663. X.........XX.........XX........X
  664. X.........XX....XX...XX........X
  665. XXXXXXX...XX....XX...XXXXXXXXXXX
  666. end
  667. goto level_info_bank1_jump
  668.  
  669. cq
  670. playfield:
  671. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  672. ......X.........................
  673. ......X.........................
  674. XX....X...XXXXXXX.............XX
  675. XX....X..........XXXXXXXXXXXXXXX
  676. XX....X........................X
  677. XX....XXXX.....................X
  678. XXXXXXXXXXXXXXXXXXXXXXXXXXXX...X
  679. X..............................X
  680. X..............................X
  681. XXXX...XXX...XXX...XXX...XXX...X
  682. end
  683. goto level_info_bank1_jump
  684.  
  685. cr
  686. playfield:
  687. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  688. ......X.........................
  689. ......X.........................
  690. XX....XXX.....XX.....XXXXXXXXXXX
  691. XX......X............XX........X
  692. XXXX....X............XX........X
  693. XX......X............XX........X
  694. .....XXXX.......XX...XX...XX...X
  695. .....X..........XX........XX....
  696. .....X..........XX........XX....
  697. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  698. end
  699.  
  700. goto level_info_bank1_jump
  701.  
  702. cs
  703. level=0 : score=1
  704.  
  705. level_info_bank1_jump
  706. goto level_info bank1
  707.  
  708.  
  709. asm
  710. minikernel
  711. lda scback
  712. sta COLUBK
  713. rts
  714. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement