Advertisement
Guest User

Untitled

a guest
Sep 24th, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.88 KB | None | 0 0
  1. !explodeTime = $FF ; frames until the bob-omb explodes
  2. !xSpeed = $10 ; x speed to give the spawned bob-omb
  3.  
  4. !shootTime = $FF ; frames between firing
  5. !xOff = $04 ; x offset from the shooter to spawn the bomb
  6.  
  7.  
  8.  
  9. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  10.  
  11. print "INIT ",pc
  12. LDA #!shootTime
  13. STA $1540,x
  14. RTL
  15.  
  16. print "MAIN ",pc
  17. PHB
  18. PHK
  19. PLB
  20. JSR Main
  21. PLB
  22. RTL
  23.  
  24. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  25. xOffs:
  26. db !xOff, $100-!xOff
  27. db $00,$FF
  28.  
  29. Main:
  30. JSR SubOffscreenX0
  31.  
  32. LDA $1540,x
  33. ORA $9D
  34. BNE Return
  35.  
  36. LDA #!shootTime
  37. STA $1540,x
  38.  
  39. JSR SubHorzPos
  40. LDA xOffs,y
  41. STA $00
  42. LDA xOffs+2,y
  43. STA $01
  44.  
  45. LDA $186C,x
  46. BNE Return
  47. JSL $02A9DE
  48. BMI Return
  49. LDA #$09
  50. STA $14C8,y
  51. LDA #!SpriteNumber
  52. STA $009E,y
  53. LDA $E4,x
  54. CLC
  55. ADC $00
  56. STA $00E4,y
  57. LDA $14E0,x
  58. CLC
  59. ADC $01
  60. STA $14E0,y
  61. LDA $D8,x
  62. STA $00D8,y
  63. LDA $14D4,x
  64. STA $14D4,y
  65. PHX
  66. TYX
  67. JSL $07F7D2
  68. LDA #!explodeTime
  69. STA $1540,x
  70. LDA #!xSpeed
  71. STA $B6,x
  72. PLX
  73. Return:
  74. RTS
  75.  
  76.  
  77.  
  78. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  79. SubHorzPos:
  80. LDY.b #$00
  81. LDA $D1
  82. SEC
  83. SBC $E4,X
  84. STA $0F
  85. LDA $D2
  86. SBC.w $14E0,X
  87. BPL +
  88. INY
  89. +
  90. RTS
  91.  
  92.  
  93.  
  94. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  95. Table1: db $0C,$1C
  96. Table2: db $01,$02
  97. Table3: db $40,$B0
  98. Table6: db $01,$FF
  99. Table4: db $30,$C0,$A0,$C0,$A0,$F0,$60,$90,$30,$C0,$A0,$80,$A0,$40,$60,$B0
  100. Table5: db $01,$FF,$01,$FF,$01,$FF,$01,$FF,$01,$FF,$01,$FF,$01,$00,$01,$FF
  101.  
  102. SubOffscreenX0:
  103. STZ $03
  104. JSR SubIsOffscreen
  105. BEQ ReturnSOS
  106. LDA $5B
  107. LSR
  108. BCS VerticalLevel
  109. LDA $D8,x
  110. CLC
  111. ADC #$50
  112. LDA $14D4,x
  113. ADC #$00
  114. CMP #$02
  115. BPL EraseSprite
  116. LDA $167A,x
  117. AND #$04
  118. BNE ReturnSOS
  119. LDA $13
  120. AND #$01
  121. ORA $03
  122. STA $01
  123. TAY
  124. LDA $1A
  125. CLC
  126. ADC Table4,y
  127. ROL $00
  128. CMP $E4,x
  129. PHP
  130. LDA $1B
  131. LSR $00
  132. ADC Table5,y
  133. PLP
  134. SBC $14E0,x
  135. STA $00
  136. LSR $01
  137. BCC Label20
  138. EOR #$80
  139. STA $00
  140. Label20:
  141. LDA $00
  142. BPL ReturnSOS
  143.  
  144. EraseSprite:
  145. LDA $14C8,x
  146. CMP #$08
  147. BCC KillSprite
  148. LDY $161A,x
  149. CPY #$FF
  150. BEQ KillSprite
  151. LDA #$00
  152. STA $1938,y
  153. KillSprite:
  154. STZ $14C8,x
  155. ReturnSOS:
  156. RTS
  157.  
  158. VerticalLevel:
  159. LDA $167A,x
  160. AND #$04
  161. BNE ReturnSOS
  162. LDA $13
  163. LSR
  164. BCS ReturnSOS
  165. AND #$01
  166. STA $01
  167. TAY
  168. LDA $1C
  169. CLC
  170. ADC Table3,y
  171. ROL $00
  172. CMP $D8,x
  173. PHP
  174. LDA $1D
  175. LSR $00
  176. ADC Table6,y
  177. PLP
  178. SBC $14D4,x
  179. STA $00
  180. LDY $02
  181. BEQ Label22
  182. EOR #$80
  183. STA $00
  184. Label22:
  185. LDA $00
  186. BPL ReturnSOS
  187. BMI EraseSprite
  188.  
  189. SubIsOffscreen:
  190. LDA $15A0,x
  191. ORA $186C,x
  192. RTS
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement