Guest User

TASK4 ASM(U)

a guest
Aug 2nd, 2017
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.23 KB | None | 0 0
  1. arch n64.cpu
  2. endian msb
  3. //output "", create
  4.  
  5. include "LIB\N64.inc"
  6. include "LIB\macros.inc"
  7.  
  8. origin 0x0
  9. insert "LIB\Super Mario 64 (U) [!].z64"
  10.  
  11. // Title Screen
  12. origin 0xF1F80
  13. Asciiz("TASK4")
  14. origin 0xF1F88
  15. Asciiz(" US")
  16.  
  17. // All Stars Yellow
  18. origin 0xAD548
  19. beq r0, r0, 0xAD56C // 812F2548 1000
  20. origin 0x65FC4
  21. beq r0, r0, 0x65FD4 // 812AAFC4 1000
  22.  
  23. //Always Have Special Triple Jump
  24. //origin 0x26828
  25. //nop // 8126B828 2400
  26.  
  27. //1up->blue coin
  28. origin 0xEC952
  29. dh 0x30D4 //81331952 30D4
  30. dh 0x0077 //81331954 0077
  31. origin 0xA1510
  32. dh 0x1000 //812E6510 1000
  33.  
  34. //Remove redcoin
  35. origin 0x21DCAC
  36. dh 0x1D00 //810EF02C 1D00
  37.  
  38. //Remove fires
  39. origin 0x21AF68
  40. dh 0x1D00 //810EC2E8 1D00
  41.  
  42. //Remove small bully
  43. origin 0x21D430
  44. dh 0x1D00 //810EE7B0 1D00
  45.  
  46. //Remove boss bully
  47. origin 0x21D460
  48. dh 0x1D00 //810EE7E0 1D00
  49.  
  50. //Remove spurt fire
  51. origin 0x21AF08
  52. dh 0x1D00 //810EC288 1D00
  53.  
  54. //Walk On Lava
  55. origin 0xB900
  56. dh 0x1000 //81250900 1000
  57.  
  58. // LLLposition
  59. origin 0x48D21C
  60. dh 0x0000 //8118BF64 0000
  61. dh 0x0700 //8118BF66 0700
  62. dh 0xE520 //8118BF68 E520
  63.  
  64. // LLL face orientation
  65. origin 0x48D225
  66. dh 0x0000 //8118BF6C 0000
  67.  
  68. // change star posi
  69. origin 0x48CE8C
  70. dh 0xFFFF //8118C66C FFFF
  71. dh 0x02BA //8118C66E 02BA
  72. dh 0x181C //8118C670 181C
  73.  
  74. // No Music
  75. origin 0xD83F4
  76. dh 0x2405
  77. origin 0xD83F6
  78. dh 0x0000
  79.  
  80. // Level Reset
  81. origin 0x57E9C
  82. nop // 8129CE9C 2400
  83. origin 0x57EC0
  84. nop // 8129CEC0 2400
  85.  
  86. // Prevent timer reset at start of Koopa race
  87. origin 0x463C
  88. nop // 8124963C 2400
  89.  
  90. // Prevent timer stop at end of Koopa race
  91. origin 0x4660
  92. nop // 81249660 2400
  93.  
  94. // Manual Timer
  95. origin 0x4688
  96. sb k1, 0xB25E (at) // 81249688 A03B
  97. origin 0x4690
  98. nop // 81249690 2400
  99. //origin 0x6194
  100. //ori t2, t1, 0x0040 // 8024B197 0040
  101. origin 0x8C7C
  102. sb r0, 0x00EE (t5) // 8124DC7C A1A0 & 8124DC7E 00EE
  103.  
  104. //stage music modifer
  105. origin 0x5024
  106. beq r0, r0, 0x5044 // 8124A024 1000
  107.  
  108. // Star-Grab Timer
  109. origin 0x8C70
  110. base 0x8024DC70
  111. lb at, 0x00 (t5)
  112. ori t6, r0, 0x7F //8124DC70 81A1 && 8124DC74 340E && 8124DC76 007F
  113. beq r0, at, 0x8024DC7C
  114. origin 0x8C84
  115. sh t6, 0xFA (t5) //8124DC84 A5AE && 8124DC86 00FA
  116.  
  117. // Centisecond
  118. origin 0x9E9C8
  119. addiu at, r0, 0x0A
  120. origin 0x9EA00
  121. mult t9, at
  122. mflo t1
  123. addiu at, r0, 0x03
  124. div t1, at
  125. mflo t2
  126. sh t2, 0x24 (sp)
  127. origin 0x9EA60
  128. addiu a2, a2, 0x83B4
  129.  
  130. // Lag Frame Counter
  131. origin 0xE29AC // 803279AC
  132. jal 0x8027F4C8 // ROM 0x3A4C8
  133. origin 0x3BE0 // 80248BE0 Hijack BUF display
  134. lui t8, 0x8034
  135. lw t7, 0xB290 (t8) // Read current value
  136. lw t6, 0xB294 (t8) // Read previous value
  137. sw t7, 0xB294 (t8) // Copy current value to previous value
  138. subu t5, t7, t6 // Calculate difference between previous and current
  139. lw a3, 0xB298 (t8) // Load sum
  140. addu a3, a3, t5 // Expect 2 frames difference
  141. addiu a3, a3, 0xFFFE
  142. origin 0x3C14 // 80248C14
  143. sw a3, 0xB298 (t8) // Save sum
  144. origin 0x3A4C8 // RAM 0x8027F4C8
  145. lui t2,0x8034
  146. lw t3,0xB290(t2)
  147. addiu t3, t3, 0x0001
  148. sw t3, 0xB290 (t2) // Add 1 to the video interrupt counter
  149. j 0x80327B98 // Return to normal exception handling path
  150. nop
  151.  
  152. // Lag as Lives
  153. origin 0x3C10 // 80248C10
  154. nop
  155. origin 0x9E77C // 802E377C
  156. lw a3, 0xB298 (a3)
  157.  
  158. // Hijack Resource Meter
  159. origin 0x2D2C
  160. nop
  161. origin 0x2D34
  162. jal 0x8027E65C // ROM 0x3965C
  163. origin 0x3965C // RAM 0x8027E65C
  164.  
  165. // Constant Writes
  166. lui t0, 0x8020
  167. lui t1, 0x8033
  168. lui t2, 0x8034
  169.  
  170. // 120 Star File (Slot 3)
  171. addiu v0, r0, 0x1F10
  172. sh v0, 0x77E8 (t0) // 812077E8 1F10
  173. addiu v0, r0, 0xFFCB
  174. sh v0, 0x77EA (t0) // 812077EA FFCB
  175. addiu v0, r0, 0x7FFF
  176. sh v0, 0x77EC (t0) // 812077EC 7FFF
  177. sh v0, 0x77EE (t0) // 812077EE 7FFF
  178. addiu v0, r0, 0x7FFF
  179. sh v0, 0x77F0 (t0) // 802077F0 007F & 802077F1 007F
  180. sh v0, 0x77F2 (t0) // 802077F2 007F & 802077F3 007F
  181. sh v0, 0x77F4 (t0) // 802077F4 007F & 802077F5 007F
  182. sh v0, 0x77F6 (t0) // 802077F6 007F & 802077F7 007F
  183. sh v0, 0x77F8 (t0) // 802077F8 007F & 802077F9 007F
  184. sb v0, 0x77FA (t0) // 802077FA 007F
  185. addiu v0, r0, 0x0081
  186. sb v0, 0x77FB (t0) // 802077FB 0081
  187. addiu v0, r0, 0x0101
  188. sh v0, 0x77FC (t0) // 812077FC 0101
  189. addiu v0, r0, 0x0301
  190. sh v0, 0x77FE (t0) // 812077FE 0301
  191. addiu v0, r0, 0x0101
  192. sh v0, 0x7800 (t0) // 81207800 0101
  193. addiu v0, r0, 0x0181
  194. sh v0, 0x7802 (t0) // 81207802 0181
  195.  
  196. // Remove Time Text
  197. sh r0, 0x83A8 (t2) // 813383A8 0000
  198.  
  199. // Conditionals
  200. lui t0, 0x8020
  201. lui t1, 0x8028
  202. lui t2, 0x8033
  203. lui t3, 0x8034
  204. lui t4, 0x8036
  205.  
  206. // Automatically Reset Timer at Star Select
  207. lb at, 0xB239 (t3)
  208. addiu v0, r0, 0x0004
  209. bne at, v0, Skip01 // D033B239 0004
  210. nop
  211. sh r0, 0xB26C (t3) // 8133B26C 0000
  212. Skip01:
  213.  
  214. // Level Reset(L)
  215. lb at, 0xAFA1 (t3)
  216. addiu v0, r0, 0x0020
  217. bne at, v0, Skip02 // D033AFA1 0020
  218. nop
  219. addiu v0, r0, 0x0008
  220. sb v0, 0xB21E (t3) // 8033B21E 0008
  221. sh r0, 0xB262 (t3) // 8133B262 0000
  222. sh r0, 0xB218 (t3) // 8133B218 0000
  223. addiu v0, r0, 0x0002
  224. sb v0, 0xB248 (t3) // 8033B248 0002
  225. addiu v0, r0, 0x0005
  226. sh v0, 0x1414 (t4) // 81361414 0005
  227. Skip02:
  228.  
  229. // Level Reset Camera Fix
  230. lb at, 0xB249 (t3)
  231. addiu v0, r0, 0x001D
  232. beq at, v0, Skip03 // D233B249 001D
  233. nop
  234. addiu v0, r0, 0x0001
  235. sh v0, 0x72DA (t1) // 812872DA 0001
  236. Skip03:
  237. bne at, v0, Skip04 // D033B249 001D
  238. nop
  239. sh r0, 0x72DA (t1) // 812872DA 0000
  240. Skip04:
  241.  
  242. // Manual Timer reset on L
  243. lb at, 0xAFA1 (t3)
  244. addiu v0, r0, 0x0020
  245. bne at, v0, Skip05 // D033AFA1 0020
  246. nop
  247. sh r0, 0xB26C (t3) // 8133B26C 0000
  248. Skip05:
  249.  
  250. // Star Select(L+R)
  251. lb at, 0xAFA1 (t3)
  252. addiu v0, r0, 0x0030
  253. bne at, v0, Skip07 // D033AFA1 0030
  254. nop
  255. addiu v0, r0, 0x0008
  256. sb v0, 0xB21E (t3) // 8033B21E 0008
  257. addiu v0, r0, 0x0004
  258. sh v0, 0xB238 (t3) // 8133B238 0004
  259. addiu v0, r0, 0x0002
  260. sb v0, 0xB248 (t3) // 8033B248 0002
  261. sh r0, 0xB26C (t3) // 8133B26C 0000
  262. // sw r0, 0xFED4 (t2) // 8132FED4 0000 & 8132FED6 0000
  263. lb at, 0xB249 (t3)
  264. addiu v0, r0, 0x000D
  265. bne at, v0, Not_THI // D033B249 000D
  266. nop
  267. THI:
  268. addiu v0, r0, 0x010A
  269. sh v0, 0xB24A (t3) // 8133B24A 020A
  270. beq r0, r0, Skip07
  271. nop
  272. Not_THI:
  273. addiu v0, r0, 0x010A
  274. sh v0, 0xB24A (t3) // 8133B24A 010A
  275. Skip07:
  276.  
  277. // Lag Frame Counter
  278. lb at, 0xAFA1 (t3)
  279. addiu v0, r0, 0x0020
  280. bne at, v0, Skip08 // D033AFA1 0020
  281. nop
  282. sw r0, 0xB298 (t3) // 8133B298 0000 & 8133B29A 0000
  283. Skip08:
  284.  
  285. // Lag Frame Counter Reset
  286. lb at, 0xB239 (t3)
  287. addiu v0, r0, 0x0004
  288. bne at, v0, Skip14 // D033B239 0004
  289. nop
  290. sw r0, 0xB298 (t3) // 8133B298 0000 & 8133B29A 0000
  291. Skip14:
  292.  
  293. // Return
  294. jr ra
  295. nop
Advertisement
Add Comment
Please, Sign In to add comment