Advertisement
Guest User

Untitled

a guest
Jun 8th, 2020
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.43 KB | None | 0 0
  1. !HP = #04 ; BOOM-BOOM HP - Decimal, not hex
  2. !TILE = $2A
  3.  
  4. YSpeedtable: db $0C,$F4
  5. YAcceleration: db $01,$FF
  6. frm:
  7. db $02,$03,$04,$05,$04,$03
  8. frmfly:
  9. db $06,$09,$08,$07
  10. frmhurt:
  11. db $0A,$0B
  12. Xspd:
  13. db $10,$F0
  14. Xspd2:
  15. db $18,$E8
  16.  
  17. macro InitPointer(address)
  18. LDA <address>,x
  19. JSL $0086DF|!BankB
  20. dw INIT1
  21. dw INIT2
  22. dw INIT3
  23. endmacro
  24.  
  25. macro InitRoutine(c2val,yspd,xspd)
  26. JSR FaceMario
  27. LDA #<c2val>
  28. STA !C2,x
  29. LDA #$10
  30. STA !154C,x
  31. LDA #<yspd>
  32. STA !AA,x
  33. LDY !157C,x
  34. LDA <xspd>,y
  35. STA !B6,x
  36. endmacro
  37.  
  38. print "INIT ",pc
  39. JSR FaceMario
  40. STZ !1602,x
  41. LDA #$60
  42. STA !154C,x
  43. RTL
  44.  
  45. print "MAIN ",pc
  46. PHB
  47. PHK
  48. PLB
  49. JSR Run
  50. PLB
  51. RTL
  52.  
  53. FaceMario:
  54. %SubHorzPos()
  55. TYA
  56. STA !157C,x
  57. Return:
  58. RTS
  59.  
  60. Run:
  61. JSR Graphics
  62. LDA $9D
  63. BNE Return
  64. LDA !14C8,x
  65. CMP #$08
  66. BNE Return
  67. %SubOffScreen()
  68. LDA !C2,x
  69. JSL $0086DF|!BankB
  70. dw boomstart1
  71. dw boomstart2
  72. dw boom1
  73. dw boom2
  74. dw boom3
  75. dw boomhurt
  76. dw boomdead
  77. dw genSphere
  78.  
  79. thing1234:
  80. INC !1528,x
  81. JSL $01AA33|!BankB
  82. JSL $01AB99|!BankB
  83. LDA #$28
  84. STA $1DFC|!Base2
  85. LDA #$02
  86. STA $1DF9|!Base2
  87. LDA !1528,x
  88. CMP !HP
  89. BCS stof2
  90. LDA #$05
  91. STA !C2,x
  92. STZ !B6,x
  93. LDA #$60
  94. STA !154C,x
  95. RTS
  96.  
  97. stof2:
  98. LDA #$06
  99. STA !C2,x
  100. STZ !B6,x
  101. LDA #$B0
  102. STA !1540,x
  103. RTS
  104.  
  105. Interact:
  106. JSL $01A7DC|!BankB
  107. BCS hurt
  108. RTS
  109.  
  110. hurt:
  111. %SubVertPos()
  112. LDA $0E
  113. CMP #$E6
  114. BMI thing1234
  115. JSL $00F5B7|!BankB
  116. RTS
  117.  
  118. boom1:
  119. JSL $01802A|!BankB
  120. JSR Interact
  121. JSL $019138|!BankB
  122. LDA !1588,x
  123. AND #$03
  124. BEQ +
  125. JMP FlipDir
  126. +
  127.  
  128. LDA !151C,x
  129. LSR #2
  130. TAY
  131. LDA frm,y
  132. STA !1602,x
  133. LDA $14
  134. AND #$03
  135. BEQ RETURN
  136.  
  137. LDA !151C,x
  138. CMP #$0A
  139. BNE +
  140. STZ !151C,x
  141. RTS
  142. +
  143. INC !151C,x
  144. RTS
  145.  
  146. HurtMario:
  147. JSL $00F5B7|!BankB
  148. RETURN: RTS
  149.  
  150. boomstart1:
  151. JSL $01802A|!BankB
  152. JSL $01A7DC|!BankB
  153. BCS HurtMario
  154. STZ !1602,x
  155. LDA !154C,x
  156. BNE .End
  157. INC !C2,x
  158. LDA #$0A
  159. STA !154C,x
  160. .End
  161. RTS
  162.  
  163. boomstart2:
  164. JSL $01802A|!BankB
  165. JSL $01A7DC|!BankB
  166. BCS HurtMario
  167. LDA #$01
  168. STA !1602,x
  169. LDA !154C,x
  170. BNE RETURN
  171. LDA !1528,x
  172. CMP #$02
  173. BCS stuffer
  174. %InitPointer(!extra_prop_1)
  175.  
  176. stuffer:
  177. %InitPointer(!extra_prop_2)
  178.  
  179. INIT1:
  180. %InitRoutine($02,$D0,Xspd)
  181. RTS
  182.  
  183. INIT2:
  184. %InitRoutine($03,$C0,Xspd)
  185. STZ !1570,x
  186. STZ !187B,x
  187. LDA #$F0
  188. STA !163E,x
  189. RTS
  190.  
  191. INIT3:
  192. %InitRoutine($04,$C0,Xspd2)
  193. LDA #$80
  194. STA !163E,x
  195. RTS
  196.  
  197. FlipDir:
  198. LDA !B6,x
  199. EOR #$FF
  200. STA !B6,x
  201. RTS
  202.  
  203.  
  204. boom2:
  205. JSR Interact
  206. LDA $14
  207. LSR #2
  208. AND #$03
  209. TAY
  210. LDA frmfly,Y
  211. STA !1602,x
  212. JSL $019138|!BankB
  213. LDA !1588,x
  214. AND #$03
  215. BNE FlipDir
  216. JSL $01801A|!BankB
  217. JSL $018022|!BankB
  218. LDA $187B|!Base2,x
  219. BNE stuff2
  220. LDA !14D4,x
  221. XBA
  222. LDA !D8,x
  223. REP #$20
  224. CMP.w #$00F0
  225. SEP #$20
  226. BCS DoRise
  227. STZ !AA,x
  228. INC !187B,x
  229. DoRise:
  230. RTS
  231.  
  232. otherapp:
  233. LDA !1564,x
  234. BNE +
  235. LDA #$A0
  236. STA !163E,x
  237. STA !1570,x
  238. JMP INIT2
  239.  
  240.  
  241. stuff2:
  242. LDA !1570,x
  243. BNE otherapp
  244. LDA !163E,x
  245. BEQ dothing35
  246. LDA !1FD6,x ;Load something
  247. AND #$01 ;AND #$01
  248. TAY ;Use as index for acceleration table
  249. LDA !AA,x ;
  250. CLC ; |Load Y speed
  251. ADC YAcceleration,y ; |Accelerate it
  252. STA !AA,x ;/
  253. CMP YSpeedtable,y ;If it didn't reach the desired Y speed
  254. BNE + ;Continue processing the sprite
  255. INC !1FD6,x ;If it reached the desired speed, change Y direction
  256. +
  257. RTS
  258.  
  259. dothing35:
  260. INC !1570,x
  261. LDA #$50
  262. STA !1564,x
  263.  
  264. LDA !14E0,x
  265. XBA
  266. LDA !E4,x
  267. REP #$20
  268. SEC
  269. SBC $94
  270. STA $00
  271. SEP #$20
  272. LDA !14D4,x
  273. XBA
  274. LDA !D8,x
  275. REP #$20
  276. SEC
  277. SBC $96
  278. SEC
  279. SBC #$0010
  280. STA $02
  281. SEP #$20
  282. LDA #$20
  283. %Aiming()
  284. LDA $00
  285. STA !B6,x
  286. LDA $02
  287. STA !AA,x
  288. RTS
  289.  
  290. boom3:
  291. JSR boom1
  292. LDA !163E,x
  293. BNE .Return
  294. LDA #$B0
  295. STA !AA,x
  296. LDA #$80
  297. STA !163E,x
  298. .Return
  299. RTS
  300.  
  301. boomhurt:
  302. JSL $01802A|!BankB
  303. LDA !154C,x
  304. BEQ thing4
  305. LDA $14
  306. LSR #2
  307. AND #$01
  308. TAY
  309. LDA frmhurt,y
  310. STA !1602,x
  311. RTS
  312.  
  313. thing4:
  314. STZ !C2,x
  315. STZ !1602,x
  316. LDA #$60
  317. STA !154C,x
  318. RTS
  319.  
  320. boomdead:
  321. JSL $01802A|!BankB
  322. LDA !1540,x
  323. BEQ SphereINIT
  324. LDA #$0A
  325. STA !1602,x
  326. RTS
  327.  
  328. SphereINIT:
  329. LDA #$10
  330. STA $1DF9|!Base2
  331. STZ $00
  332. STZ $01
  333. LDA #$1C
  334. STA $02
  335. LDA #$01
  336. %SpawnSmoke()
  337. LDA #$07
  338. STA !C2,x
  339. LDA #$B8
  340. STA !AA,x
  341. RTS
  342.  
  343. genSphere:
  344. JSL $01802A|!BankB
  345. LDA $9D
  346. BNE RETURN2
  347. JSR ContactSph
  348. LDA $14
  349. AND #$07
  350. BEQ RETURN2
  351.  
  352. PHK
  353. PER $0006|!Base2
  354. PEA $B456|!Base2-1
  355. JML $01B159|!BankB ; Sparkles routine
  356.  
  357. ContactSph:
  358. JSL $01A7DC|!BankB
  359. BCC RETURN2
  360. LDA #$FF
  361. STA $1493|!Base2
  362. LDA #$0B
  363. STA $1DFB|!Base2
  364. STZ !14C8,x
  365. DEC $13C6|!Base2
  366. RETURN2:
  367. RTS ; return
  368.  
  369.  
  370.  
  371. TILEMAP:
  372. db $00,$00,$20,$20
  373. db $40,$40,$60,$60
  374. db $02,$08,$22,$28
  375. db $04,$06,$24,$26
  376. db $06,$04,$26,$24
  377. db $08,$02,$28,$22
  378. db $42,$44,$62,$64
  379. db $44,$42,$64,$62
  380. db $46,$48,$66,$68
  381. db $48,$46,$68,$66
  382. db $0A,$0A,$4A,$6A
  383. db $0A,$0A,$6A,$4A
  384.  
  385. XDISP:
  386. db $F8,$08,$F8,$08
  387. YDISP:
  388. db $F0,$F0,$00,$00
  389. PROP:
  390. db $0D,$4D,$0D,$4D
  391.  
  392. Graphics:
  393. %GetDrawInfo()
  394.  
  395. LDA !C2,x
  396. CMP #$07
  397. BNE NormalGFX
  398. LDA $00
  399. STA $0300|!Base2,y
  400. LDA $01
  401. STA $0301|!Base2,y
  402. LDA #!TILE
  403. STA $0302|!Base2,y
  404. LDA #$0F
  405. ORA $64
  406. STA $0303|!Base2,y
  407. LDY #$02
  408. LDA #$00
  409. BRA DrawSprite
  410.  
  411. NormalGFX:
  412. LDA !1602,x
  413. ASL #2
  414. STA $02
  415. LDA $1540|!Base2,x
  416. STA $03
  417.  
  418. LDX #$03
  419. Loop:
  420. STX $04
  421. LDA $00
  422. CLC
  423. ADC XDISP,x
  424. STA $0300|!Base2,y
  425.  
  426. LDA $01
  427. CLC
  428. ADC YDISP,x
  429. STA $0301|!Base2,y
  430.  
  431. TXA
  432. CLC
  433. ADC $02
  434. TAX
  435. LDA TILEMAP,x
  436. STA $0302|!Base2,y
  437.  
  438. LDX $04
  439. LDA PROP,x
  440. ORA $64
  441. STA $0303|!Base2,y
  442. LDA $03
  443. BEQ NextTile
  444. LDA $14
  445. LSR #2
  446. AND #$07
  447. TAX
  448. LDA $0303|!Base2,y
  449. AND #$F1
  450. ORA FlashTbl,x
  451. STA $0303|!Base2,y
  452.  
  453. LDX $04
  454. NextTile:
  455. INY #4
  456. DEX
  457. BPL Loop
  458.  
  459. LDX $15E9|!Base2
  460. LDY #$02
  461. LDA #$03
  462. DrawSprite:
  463. JSL $01B7B3|!BankB
  464. RTS
  465.  
  466. FlashTbl:
  467. db $0C,$04,$0C,$06,$0C,$08,$0C,$0A
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement