Advertisement
Guest User

Untitled

a guest
Apr 17th, 2019
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.19 KB | None | 0 0
  1. if read1($00FFD5) == $23
  2. sa1rom
  3. !addr = $6000
  4. !bank = $000000
  5. else
  6. lorom
  7. !addr = $0000
  8. !bank = $800000
  9. endif
  10.  
  11. ;---------;
  12. ; Defines ;
  13. ;---------;
  14.  
  15. !PalNum = $0F ; Which palette slots to affect (default: $00-$0F).
  16. !XPos = $78 ; X pos smoke tile
  17. !YPos = $40 ; Y pos smoke tile
  18. !Prop = $04 ; YXPPCCCT
  19. !Size = $02 ; 16x16. Change to $00 for 8x8
  20. !SmokeTime = $1B ; Amount of time to smoke (putting it higher than $1B is not recommended.)
  21. !MarioSize = $B0 ; Stop shrinking when Mario has this size. (The higher the number, the smaller.)
  22. !CenterX = $80 ; The horizontal center position around which Layer 1 rotates and scales (default: middle point of Mario)
  23. !CenterY = $48 ; The vertical center position around which Layer 1 rotates and scales (default: middle point of Mario)
  24. !MarioImgPos1 = $8F03 ; see below
  25. !MarioImgStartPos = $0F04 ; Position of Mario's tiles. Relevant bits: yxxxxxxx --yyyyyy.
  26. !MarioImgPos2 = $8F04 ; see above
  27. !MarioImgPos3 = $0F05 ; see above
  28. !RotateSpd = $0010 ; rotation speed
  29. !SclSpd = $01 ; scale speed
  30. ; Graphics are to be edited in GFX32, or if you use Seperate Luigi GFX or Mario ExGFX, there. The death frame depends on the death frame inside the level.
  31. ; Palettes can be edited with a hex editor -> palett.bin. They're in -bbbbbgg gggrrrrr format (SNES RGB). x0-x1F is Mario's palette, x20-x3F is Luigi's palette.
  32.  
  33. ;--------;
  34. ; Hijack ;
  35. ;--------;
  36.  
  37. org $0081D5
  38. autoclean JML Mainheh
  39.  
  40. org $0093E6
  41. autoclean JML Random
  42.  
  43. org $009750
  44. autoclean JML Meh
  45.  
  46. org $009759
  47. autoclean JSL Heh
  48.  
  49. ;--------;
  50. ; Custom ;
  51. ;--------;
  52.  
  53. freedata ; this one doesn't change the data bank register, so it uses the RAM mirrors from another bank, so I might as well toss it into banks 40+
  54.  
  55. Mainheh:
  56. LDA $0100|!addr
  57. CMP #$0B
  58. BEQ Hehch
  59. CMP #$17
  60. BNE Rolardy
  61.  
  62. Hehch:
  63. LDA $143B|!addr
  64. CMP #$14
  65. BNE Rolardy
  66. LDA $2E
  67. STA $211B
  68. LDA $2F
  69. STA $211B
  70. LDA $30
  71. STA $211C
  72. LDA $31
  73. STA $211C
  74. LDA $32
  75. STA $211D
  76. LDA $33
  77. STA $211D
  78. LDA $34
  79. STA $211E
  80. LDA $35
  81. STA $211E
  82. LDA #!CenterX
  83. STA $211F
  84. STZ $211F
  85. LDA #!CenterY
  86. STA $2120
  87. STZ $2120
  88. LDA #$07
  89. BRA Ret
  90.  
  91. Rolardy:
  92. LDA #$09
  93.  
  94. Ret:
  95. STA $2105
  96. JML $0081DA|!bank
  97.  
  98. Random:
  99. LDA $0100|!addr
  100. CMP #$16
  101. BNE Hehok
  102. LDA $143B|!addr
  103. CMP #$14
  104. BNE Hehok
  105. LDX.b #PalEnd-PalBeg-$22
  106. LDA $0DB3|!addr
  107. BEQ NotSoThen
  108. TXA
  109. CLC
  110. ADC #$20
  111. TAX
  112.  
  113. NotSoThen:
  114. LDY.b #!PalNum
  115.  
  116. PalLoop:
  117. STY $2121
  118. LDA.l PalBeg,x
  119. STA $2122
  120. LDA.l PalBeg+1,x
  121. STA $2122
  122. DEX
  123. DEX
  124. DEY
  125. CPY.b #!PalNum-$10
  126. BNE PalLoop
  127. LDX #$11
  128. TXY
  129. BRA DoDat
  130.  
  131. Special:
  132. REP #$20
  133. TYA
  134. SEC
  135. SBC #$0010
  136. TAY
  137. TXA
  138. SEC
  139. SBC #$0020
  140. TAX
  141. SEP #$20
  142. BRA PalLoop
  143.  
  144. Hehok:
  145. LDX #$10
  146. LDY #$04
  147.  
  148. DoDat:
  149. JML $0093EA|!bank
  150.  
  151. Meh:
  152. PHK
  153. PEA.w Ret1-1
  154. PEA $84CE
  155. JML $0085FA|!bank
  156.  
  157. Ret1:
  158. PHK
  159. PEA.w Ret2-1
  160. PEA $84CE
  161. JML $00A82D|!bank
  162.  
  163. Zero:
  164. db $00
  165.  
  166. Ret2:
  167. STZ $2115
  168. STZ $2116
  169. STZ $2117
  170. LDX #$06
  171.  
  172. DMALoop1:
  173. LDA.l DMATable1,x
  174. STA $4300,x
  175. DEX
  176. BPL DMALoop1
  177. LDA #$01
  178. STA $420B
  179. LDX #$07
  180.  
  181. Ohno:
  182. LDA.l Rrr,x
  183. STA $7ECA00,x
  184. DEX
  185. BPL Ohno
  186.  
  187. REP #$10
  188. LDX #$0000
  189. STX $00
  190. LDA #$00
  191. XBA
  192. TXY
  193. CLC
  194. PHB
  195. LDA #$7E
  196. PHA
  197. PLB
  198.  
  199. ConvertGraphics:
  200. LDA $6500,x
  201. PHY
  202. LDY $00
  203. AND $CA00,y
  204. BEQ Br1
  205. LDA #$01
  206.  
  207. Br1:
  208. PLY
  209. STA $C800,y
  210. INX
  211. LDA $6500,x
  212. PHY
  213. LDY $00
  214. AND $CA00,y
  215. BEQ Br2
  216. LDA #$02
  217.  
  218. Br2:
  219. PLY
  220. ORA $C800,y
  221. STA $C800,y
  222. REP #$20
  223. TXA
  224. CLC
  225. ADC #$000F
  226. TAX
  227. SEP #$20
  228. LDA $6500,x
  229. PHY
  230. LDY $00
  231. AND $CA00,y
  232. BEQ Br3
  233. LDA #$04
  234.  
  235. Br3:
  236. PLY
  237. ORA $C800,y
  238. STA $C800,y
  239. INX
  240. LDA $6500,x
  241. PHY
  242. LDY $00
  243. AND $CA00,y
  244. BEQ Br4
  245. LDA #$08
  246.  
  247. Br4:
  248. PLY
  249. ORA $C800,y
  250. STA $C800,y ; Pixel done.
  251. REP #$20
  252. TXA
  253. SEC
  254. SBC #$0011
  255. TAX
  256. SEP #$20
  257. INY
  258. REP #$20
  259. TYA
  260. AND #$0007
  261. STA $00
  262. SEP #$20
  263. BNE ConvertGraphics
  264. REP #$20
  265. TXA
  266. CLC
  267. ADC #$0002
  268. TAX
  269. TYA
  270. AND #$003F
  271. SEP #$20
  272. BNE ConvertGraphics
  273. REP #$20
  274. TXA
  275. CLC
  276. ADC #$0010
  277. TAX
  278. TYA
  279. AND #$007F
  280. SEP #$20
  281. BNE JumpDiz
  282. REP #$20
  283. TXA
  284. CLC
  285. ADC #$01C0
  286. TAX
  287. TYA
  288. AND #$00FF
  289. SEP #$20
  290. BNE JumpDiz
  291. REP #$20
  292. TXA
  293. SEC
  294. SBC #$03C0
  295. TAX
  296. SEP #$20
  297. CPY #$0200
  298. BCS BreakOut
  299.  
  300. JumpDiz:
  301. JMP ConvertGraphics
  302.  
  303. BreakOut:
  304. SEP #$10
  305. PLB
  306. LDA #$80
  307. STA $2115
  308. STZ $2116
  309. STZ $2117
  310. LDX #$06
  311.  
  312. DMALoop2:
  313. LDA.l DMATable2,x
  314. STA $4300,x
  315. DEX
  316. BPL DMALoop2
  317. LDA #$01
  318. STA $420B
  319. STZ $2117
  320. LDA #$40
  321. STA $2116
  322. LDX #$06
  323.  
  324. DMALoop3:
  325. LDA.l DMATable3,x
  326. STA $4300,x
  327. DEX
  328. BPL DMALoop3
  329. LDA #$01
  330. STA $420B
  331. REP #$10
  332. STZ $2115
  333. LDX #$0000
  334. LDA #$00
  335. XBA
  336.  
  337. DMANIT:
  338. LDA.l StripeImage,x
  339. BMI Wateenk
  340. STA $2117
  341. INX
  342. LDA.l StripeImage,x
  343. STA $2116
  344. INX
  345. LDA.l StripeImage,x
  346. BPL SevenUPE
  347. AND #$7F
  348. TAY
  349. INX
  350.  
  351. LoopStim:
  352. LDA.l StripeImage,x
  353. STA $2118
  354. DEY
  355. BNE LoopStim
  356. INX
  357. BRA DMANIT
  358.  
  359. Wateenk:
  360. SEP #$10
  361. BRA Urdone
  362.  
  363. SevenUPE:
  364. TAY
  365. INX
  366.  
  367. Loopheh:
  368. LDA.l StripeImage,x
  369. STA $2118
  370. INX
  371. DEY
  372. BNE Loopheh
  373. BRA DMANIT
  374.  
  375. Urdone:
  376. STZ $36
  377. STZ $37
  378. STZ $38
  379. STZ $39
  380. STZ $1A
  381. STZ $1B
  382. STZ $1C
  383. STZ $1D
  384. JML $0093CA|!bank
  385.  
  386. DMATable1:
  387. db $08,$18
  388. dl Zero
  389. dw $4000
  390.  
  391. DMATable2:
  392. db $08,$19
  393. dl Zero
  394. dw $0040
  395.  
  396. DMATable3:
  397. db $00,$19
  398. dl $7EC800
  399. dw $0200
  400.  
  401. Rrr:
  402. db $80,$40,$20,$10,$08,$04,$02,$01
  403.  
  404. PalBeg:
  405. incbin palett.bin
  406. PalEnd:
  407.  
  408. StripeImage:
  409. dw !MarioImgPos1 : db $02,$01,$02
  410. dw !MarioImgStartPos : db $02,$03,$04
  411. dw !MarioImgPos2 : db $02,$05,$06
  412. dw !MarioImgPos3 : db $02,$07,$08
  413. db $FF
  414.  
  415. Ign:
  416. RTL
  417.  
  418. Heh:
  419. JSL $7F8000
  420. LDA $143B|!addr
  421. CMP #$14
  422. BNE Ign
  423. LDA $17C0|!addr
  424. CMP #$63
  425. BNE NotSoS
  426. LDA $17C1|!addr
  427. BEQ Ign
  428. DEC $17C1|!addr
  429. LDA $17C1|!addr
  430. LSR A
  431. LSR A
  432. TAX
  433. BRA Unequi
  434.  
  435. NotSoS:
  436. REP #$20
  437. LDA $36
  438. CLC
  439. ADC #!RotateSpd
  440. STA $36
  441. SEP #$20
  442. LDA $38
  443. CLC
  444. ADC #!SclSpd
  445. STA $38
  446. LDA $39
  447. CLC
  448. ADC #!SclSpd
  449. STA $39
  450. CMP #!MarioSize
  451. BCC DontErase
  452. REP #$30
  453. STZ $00
  454. LDA $7F837B
  455. TAX
  456.  
  457. Loop:
  458. LDA #!MarioImgPos1
  459. XBA
  460. CLC
  461. ADC $00
  462. XBA
  463. STA $7F837D,x
  464. INX
  465. INX
  466. LDA #$0300
  467. STA $7F837D,x
  468. INX
  469. INX
  470. LDA #$0000
  471. STA $7F837D,x
  472. INX
  473. INX
  474. STA $7F837D,x
  475. INX
  476. INX
  477. LDA $00
  478. CLC
  479. ADC #$0080
  480. STA $00
  481. CMP #$0400
  482. BCC Loop
  483. DEC A
  484. STA $7F837D,x
  485. TXA
  486. STA $7F837B
  487. SEP #$30
  488. LDA #$63
  489. STA $17C0|!addr
  490. LDA #!SmokeTime
  491. STA $17C1|!addr
  492. LSR A
  493. LSR A
  494. TAX
  495.  
  496. Unequi:
  497. LDA #!XPos
  498. STA $0250|!addr
  499. LDA #!YPos
  500. STA $0251|!addr
  501. LDA.l Rrrrr,x
  502. STA $0252|!addr
  503. LDA #!Prop
  504. STA $0253|!addr
  505. LDA #!Size
  506. STA $0434|!addr
  507.  
  508. DontErase:
  509. PHK
  510. PEA.w Ret3-1
  511. PEA $84CE
  512. JML $008ACD|!bank
  513.  
  514. Rrrrr:
  515. db $66,$66,$64,$62,$60,$62,$60 ; Tiles for smoke table.
  516.  
  517. Ret3:
  518. RTL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement