Guest User

TASK3 ASM(U)

a guest
Jul 17th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.13 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 "Super Mario 64 (U) [!].z64"
  10.  
  11. // Title Screen
  12. origin 0xF1F80
  13. Asciiz("TASK3")
  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. //no pipe
  28. origin 0x21A5A0 //810EB920 1D00
  29. dh 0x1D00
  30.  
  31. //no wind
  32. origin 0x10824
  33. dh 0x1000 //81255824 1000
  34. origin 0x25650
  35. dh 0x1000 //8126A650 1000
  36. origin 0x21AC70
  37. dh 0x1D00 //810EBFF0 1D00
  38.  
  39. //no big balls
  40. origin 0x21D858
  41. dh 0x1D00 //810EEBD8 1D00
  42.  
  43. //no water
  44. origin 0x8C0A0
  45. dh 0x2419 //812D10A0 2419
  46. origin 0xFE94C
  47. dh 0x2419 //81381BCC 2419
  48.  
  49. // THIposition
  50. origin 0x42CA3C
  51. dh 0x1CDE //811929F4 1CDE
  52. dh 0xFE00 //811929F6 FE00
  53. dh 0xE76E //811929F8 E76E
  54.  
  55. // change star from 3goombas
  56. origin 0x42C767
  57. db 0x7A //
  58. origin 0x42C775
  59. db 0x00 //
  60. origin 0x42C77A
  61. dh 0x3E3C //
  62.  
  63. // change 3goombas(star) position
  64. origin 0x42C768
  65. dh 0xED00 //81192B60 ED00
  66. dh 0xF4DA //81192B62 F4DA
  67. dh 0x1933 //81192B64 1933
  68.  
  69. // No Music
  70. origin 0xD83F4
  71. dh 0x2405
  72. origin 0xD83F6
  73. dh 0x0000
  74.  
  75. // Level Reset
  76. origin 0x57E9C
  77. nop // 8129CE9C 2400
  78. origin 0x57EC0
  79. nop // 8129CEC0 2400
  80.  
  81. // Prevent timer reset at start of Koopa race
  82. origin 0x463C
  83. nop // 8124963C 2400
  84.  
  85. // Prevent timer stop at end of Koopa race
  86. origin 0x4660
  87. nop // 81249660 2400
  88.  
  89. // Manual Timer
  90. origin 0x4688
  91. sb k1, 0xB25E (at) // 81249688 A03B
  92. origin 0x4690
  93. nop // 81249690 2400
  94. //origin 0x6194
  95. //ori t2, t1, 0x0040 // 8024B197 0040
  96. origin 0x8C7C
  97. sb r0, 0x00EE (t5) // 8124DC7C A1A0 & 8124DC7E 00EE
  98.  
  99. //stage music modifer
  100. origin 0x5024
  101. beq r0, r0, 0x5044 // 8124A024 1000
  102.  
  103. // Star-Grab Timer
  104. origin 0x8C70
  105. base 0x8024DC70
  106. lb at, 0x00 (t5)
  107. ori t6, r0, 0x7F //8124DC70 81A1 && 8124DC74 340E && 8124DC76 007F
  108. beq r0, at, 0x8024DC7C
  109. origin 0x8C84
  110. sh t6, 0xFA (t5) //8124DC84 A5AE && 8124DC86 00FA
  111.  
  112. // Centisecond
  113. origin 0x9E9C8
  114. addiu at, r0, 0x0A
  115. origin 0x9EA00
  116. mult t9, at
  117. mflo t1
  118. addiu at, r0, 0x03
  119. div t1, at
  120. mflo t2
  121. sh t2, 0x24 (sp)
  122. origin 0x9EA60
  123. addiu a2, a2, 0x83B4
  124.  
  125. // Lag Frame Counter
  126. origin 0xE29AC // 803279AC
  127. jal 0x8027F4C8 // ROM 0x3A4C8
  128. origin 0x3BE0 // 80248BE0 Hijack BUF display
  129. lui t8, 0x8034
  130. lw t7, 0xB290 (t8) // Read current value
  131. lw t6, 0xB294 (t8) // Read previous value
  132. sw t7, 0xB294 (t8) // Copy current value to previous value
  133. subu t5, t7, t6 // Calculate difference between previous and current
  134. lw a3, 0xB298 (t8) // Load sum
  135. addu a3, a3, t5 // Expect 2 frames difference
  136. addiu a3, a3, 0xFFFE
  137. origin 0x3C14 // 80248C14
  138. sw a3, 0xB298 (t8) // Save sum
  139. origin 0x3A4C8 // RAM 0x8027F4C8
  140. lui t2,0x8034
  141. lw t3,0xB290(t2)
  142. addiu t3, t3, 0x0001
  143. sw t3, 0xB290 (t2) // Add 1 to the video interrupt counter
  144. j 0x80327B98 // Return to normal exception handling path
  145. nop
  146.  
  147. // Lag as Lives
  148. origin 0x3C10 // 80248C10
  149. nop
  150. origin 0x9E77C // 802E377C
  151. lw a3, 0xB298 (a3)
  152.  
  153. // Hijack Resource Meter
  154. origin 0x2D2C
  155. nop
  156. origin 0x2D34
  157. jal 0x8027E65C // ROM 0x3965C
  158. origin 0x3965C // RAM 0x8027E65C
  159.  
  160. // Constant Writes
  161. lui t0, 0x8020
  162. lui t1, 0x8033
  163. lui t2, 0x8034
  164.  
  165. // 120 Star File (Slot 3)
  166. addiu v0, r0, 0x1F10
  167. sh v0, 0x77E8 (t0) // 812077E8 1F10
  168. addiu v0, r0, 0xFFCB
  169. sh v0, 0x77EA (t0) // 812077EA FFCB
  170. addiu v0, r0, 0x7FFF
  171. sh v0, 0x77EC (t0) // 812077EC 7FFF
  172. sh v0, 0x77EE (t0) // 812077EE 7FFF
  173. addiu v0, r0, 0x7FFF
  174. sh v0, 0x77F0 (t0) // 802077F0 007F & 802077F1 007F
  175. sh v0, 0x77F2 (t0) // 802077F2 007F & 802077F3 007F
  176. sh v0, 0x77F4 (t0) // 802077F4 007F & 802077F5 007F
  177. sh v0, 0x77F6 (t0) // 802077F6 007F & 802077F7 007F
  178. sh v0, 0x77F8 (t0) // 802077F8 007F & 802077F9 007F
  179. sb v0, 0x77FA (t0) // 802077FA 007F
  180. addiu v0, r0, 0x0081
  181. sb v0, 0x77FB (t0) // 802077FB 0081
  182. addiu v0, r0, 0x0101
  183. sh v0, 0x77FC (t0) // 812077FC 0101
  184. addiu v0, r0, 0x0301
  185. sh v0, 0x77FE (t0) // 812077FE 0301
  186. addiu v0, r0, 0x0101
  187. sh v0, 0x7800 (t0) // 81207800 0101
  188. addiu v0, r0, 0x0181
  189. sh v0, 0x7802 (t0) // 81207802 0181
  190.  
  191. // Remove Time Text
  192. sh r0, 0x83A8 (t2) // 813383A8 0000
  193.  
  194. // Conditionals
  195. lui t0, 0x8020
  196. lui t1, 0x8028
  197. lui t2, 0x8033
  198. lui t3, 0x8034
  199. lui t4, 0x8036
  200.  
  201. // Automatically Reset Timer at Star Select
  202. lb at, 0xB239 (t3)
  203. addiu v0, r0, 0x0004
  204. bne at, v0, Skip01 // D033B239 0004
  205. nop
  206. sh r0, 0xB26C (t3) // 8133B26C 0000
  207. Skip01:
  208.  
  209. // Level Reset(L)
  210. lb at, 0xAFA1 (t3)
  211. addiu v0, r0, 0x0020
  212. bne at, v0, Skip02 // D033AFA1 0020
  213. nop
  214. addiu v0, r0, 0x0008
  215. sb v0, 0xB21E (t3) // 8033B21E 0008
  216. sh r0, 0xB262 (t3) // 8133B262 0000
  217. sh r0, 0xB218 (t3) // 8133B218 0000
  218. addiu v0, r0, 0x0002
  219. sb v0, 0xB248 (t3) // 8033B248 0002
  220. addiu v0, r0, 0x0005
  221. sh v0, 0x1414 (t4) // 81361414 0005
  222. Skip02:
  223.  
  224. // Level Reset Camera Fix
  225. lb at, 0xB249 (t3)
  226. addiu v0, r0, 0x001D
  227. beq at, v0, Skip03 // D233B249 001D
  228. nop
  229. addiu v0, r0, 0x0001
  230. sh v0, 0x72DA (t1) // 812872DA 0001
  231. Skip03:
  232. bne at, v0, Skip04 // D033B249 001D
  233. nop
  234. sh r0, 0x72DA (t1) // 812872DA 0000
  235. Skip04:
  236.  
  237. // Manual Timer reset on L
  238. lb at, 0xAFA1 (t3)
  239. addiu v0, r0, 0x0020
  240. bne at, v0, Skip05 // D033AFA1 0020
  241. nop
  242. sh r0, 0xB26C (t3) // 8133B26C 0000
  243. Skip05:
  244.  
  245. // Star Select(L+R)
  246. lb at, 0xAFA1 (t3)
  247. addiu v0, r0, 0x0030
  248. bne at, v0, Skip07 // D033AFA1 0030
  249. nop
  250. addiu v0, r0, 0x0008
  251. sb v0, 0xB21E (t3) // 8033B21E 0008
  252. addiu v0, r0, 0x0004
  253. sh v0, 0xB238 (t3) // 8133B238 0004
  254. addiu v0, r0, 0x0002
  255. sb v0, 0xB248 (t3) // 8033B248 0002
  256. sh r0, 0xB26C (t3) // 8133B26C 0000
  257. // sw r0, 0xFED4 (t2) // 8132FED4 0000 & 8132FED6 0000
  258. lb at, 0xB249 (t3)
  259. addiu v0, r0, 0x000D
  260. bne at, v0, Not_THI // D033B249 000D
  261. nop
  262. THI:
  263. addiu v0, r0, 0x010A
  264. sh v0, 0xB24A (t3) // 8133B24A 020A
  265. beq r0, r0, Skip07
  266. nop
  267. Not_THI:
  268. addiu v0, r0, 0x010A
  269. sh v0, 0xB24A (t3) // 8133B24A 010A
  270. Skip07:
  271.  
  272. // Lag Frame Counter
  273. lb at, 0xAFA1 (t3)
  274. addiu v0, r0, 0x0020
  275. bne at, v0, Skip08 // D033AFA1 0020
  276. nop
  277. sw r0, 0xB298 (t3) // 8133B298 0000 & 8133B29A 0000
  278. Skip08:
  279.  
  280. // Lag Frame Counter Reset
  281. lb at, 0xB239 (t3)
  282. addiu v0, r0, 0x0004
  283. bne at, v0, Skip14 // D033B239 0004
  284. nop
  285. sw r0, 0xB298 (t3) // 8133B298 0000 & 8133B29A 0000
  286. Skip14:
  287.  
  288. // Return
  289. jr ra
  290. nop
Advertisement
Add Comment
Please, Sign In to add comment