N3rdsWithGame

mm BA stuff (gen)

Aug 2nd, 2016
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.78 KB | None | 0 0
  1. mips info: http://wiki.cloudmodding.com/oot/Mips
  2. mips info2 (more indepth):http://math-atlas.sourceforge.net/devel/assembly/mips-iv.pdf
  3. n64 cpu info: https://en.wikibooks.org/wiki/N64_Programming/CPU_overview
  4. n64 register info: http://wiki.cloudmodding.com/oot/Registers
  5. natwa's ram map: https://goo.gl/hm0n0v
  6. BA write info (addresses are mupen and us, relative difference is what matters): https://goo.gl/zjxjIl
  7.  
  8. rom: Zelda no Densetsu - Mujura no Kamen (Japan).n64 (jp 1.0)
  9. MD5 hash: 44dbde0232b67654b3a4251d599cc713
  10. all addresses are the nemu addresses for this rom, (I think should be physical addresses). Should probably talk to mzx about that at somepoint.
  11.  
  12. *important address (not comprehensive if gets big will move to own pastebin)*
  13. entrance mod setter (ems): jp 1.0 0x801F3734
  14. -This is row 4 of BA with Breman mask, row 3 with circus leader row 2 with circus leader
  15. temp B/B enable: jp 0x801f36fc
  16. -This is row row 1 Kamaro, row 2 Romani, row 3 keeton, row 4 postman
  17. kamaro/Romani BA softlock byte: jp 0x801f372e
  18. -This is row row 2 Kamaro, row 3 Romani, row 4 keeton
  19.  
  20. row 4:
  21. Row 4 is written to by 2 function corresponding to what I will call catch/update. (Note: to my knowledge the original function names the programmers used are not in the game. If it can be found like in the debug rom i may edit this to add them in).
  22.  
  23. 1) catch: this is the 1st time row 4 is written. This is called for real or duped bottle. it is what writes the all 0. it is called at the end of the catching animation and before the "show item over head" animation.
  24. function 0x80110770
  25. 0x801107fc: sw t5,0x426c(a2)
  26. -- sw is write word
  27. -- register t5 has value 0 (need to figure out where that register is set, if hardcoded to 0 why isnt it using r0)
  28. -- offset 0x426c is hardcoded into rom
  29. -- register a2 is based on the item slot that bottle is in
  30. breman )a2 = 0xFFFFFFFF801ef4c8
  31. bottle 4)a2 = 0xFFFFFFFF801ef478
  32. general) I think 'a2 = const + slot number' but will verify later
  33.  
  34. 2) update: this is is called to update row 4 for real bottles. This is called when "you caught HSW" textbox closes. Faschz thoeriezed theorized that this writing when "you caught..." is a measure of how long that textbox is open. SampleName_ also found that pausing, going through loading zones, or anything that isn't a "playing state" also changes this value. Interestingly, this is also called when you dump the HSW (I originally thought it was a different function)
  35.  
  36. function 0x*still needs to be found, lots of branching statements after, hard to find the original jal*
  37. 0x8011ff34: sw t3,0x426c(a0)
  38. -- sw is write word
  39. -- register t3 has a different value based on each call, but appear to be strictly increasing.
  40. -- offset 0x426c is hardcoded into rom
  41. -- register a0 has the same value as register a2 from catch.
Add Comment
Please, Sign In to add comment