Advertisement
exodus122

GIM explained by mzxrules

Jun 27th, 2018
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.22 KB | None | 0 0
  1. mzxrules - 04/23/2017
  2. i forget how gim works... let me logic it out...
  3.  
  4. jamz - 04/23/2017
  5. The controller looks worse than original xbox
  6.  
  7. jotam - 04/23/2017
  8. haha what the heck... only 14 games were ported to iQue...
  9.  
  10. mzxrules - 04/23/2017
  11. ok you collect an item, but in such a way that you can interrupt and regain control of Link. This causes the model of the item Link is holding over his head to be loaded/shown
  12. if you pass within "A action/bottle range" range of certain objects (chests, bushes, fish, bugs), the byte which stores what item you will obtain changes to a new value. The only useful one for item collection manipulation is chests
  13. chests set a negative get item index, which is suppose to be negated to a positive before the item giving routine uses it to pick what item you obtain
  14. but since it doesn't, when you jump/surface water afterward the negative index means the game looks up data from before the get item table, treating that as an item record
  15. now the reason the game crashes is twofold
  16. or rather, can crash
  17.  
  18. jotam - 04/23/2017
  19. huh interesting
  20. im with ya so far
  21.  
  22. mzxrules - 04/23/2017
  23. there is a byte value in Link's instance which stores what I call a model id. This id is used to locate the start point for the model that Link holds over his head
  24. like, you know how Link can hold rupees over his head?
  25.  
  26. jotam - 04/23/2017
  27. yeah
  28.  
  29. mzxrules - 04/23/2017
  30. well, there is one file that contains the display list for all the different colored rupees (the "high resolution" ones, not the ones you bump into normally)
  31. this index is used to look up the start of the model data within that file, as a relative offset
  32.  
  33. jotam - 04/23/2017
  34. i see
  35.  
  36. mzxrules - 04/23/2017
  37. these files that contain "high resolution" models of items that Link can hold over his head are called "gi_*" in the actual game data, hence why I called it GID/GIM
  38. as in I think object_gi_rupee or so (probably not right but you get the picture)
  39.  
  40. jotam - 04/23/2017
  41. ahh makes sense
  42.  
  43. mzxrules - 04/23/2017
  44. so there's an array of offsets relative to the start of where this type of file will be reserved in ram
  45. now when you surface, the model id will almost always change, which changes where the game looks for the start of the display list
  46. thus the game can crash if the display list is broken enough to where it seizes the system
  47. the other part of it, is that the object_gi file doesn't change when you surface water
  48.  
  49. jotam - 04/23/2017
  50. interesting
  51. so the list was essentially stabilized in the VC version?
  52.  
  53. mzxrules - 04/23/2017
  54. not really. the way N64 emulation historically works is through something called high-level emulation
  55. the two core computing units of the N64 are the CPU, and the RCP (reality co-processor)
  56.  
  57. TotalWeebDude - 04/23/2017
  58. Hi
  59.  
  60. mzxrules - 04/23/2017
  61. the RCP contains the RSP (which is a reprogrammable) and the RDP (which does things I don't understand :smile: )(edited)
  62.  
  63. TotalWeebDude - 04/23/2017
  64. Best emulator for TAS and faster pause screen loading?(edited)
  65.  
  66. mzxrules - 04/23/2017
  67. what high level emulation does is it processes the display lists directly, rather than emulating the reprogrammable RSP
  68.  
  69. jotam - 04/23/2017
  70. interesting
  71.  
  72. mzxrules - 04/23/2017
  73. people say bizhawk
  74. i'm not one of those, but i'd try it out
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement