fig02

Untitled

Nov 6th, 2019
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.59 KB | None | 0 0
  1. redead death
  2.  
  3. 1E3E70:1E41CC AI 0090: 5 07 1 FFFE ( 3498.0 -543.0 721.0)
  4. 1E79C0:1E7D1C AI 0090: 5 07 1 FFFE ( 3212.0 -543.0 726.0)
  5.  
  6.  
  7. 801E50E0:1E7990 AF 0090: 0000 02 FILE: 00CD71B0:00CD9A60
  8.  
  9. 801E3E70 - gibdo that is jumpslashed - gibdoA
  10. 801E79C0 - gibdo that dies on its own - gibdoB
  11.  
  12. health is at gibdo+0xAF
  13.  
  14. gibdoB health: 801E7A6F
  15.  
  16. when glitch is performed, health is set to 0
  17.  
  18. set to 0 by function 80028390:
  19.  
  20. from z64ovl:
  21. Subtracts damage amount (colliding damage source) from *actor's health
  22. actor_update_health(z64_actor_t *actor);
  23.  
  24. call to actor_update_health at 801E6F8C (ovl+0x1EAC)
  25. which is a part of function 801E6E24 which runs every frame (prob state update)
  26. this is contained within a big branch at 801E6EA0
  27. beqz t0
  28. t0 comes from:
  29.  
  30. 801E6E94 lbu v0, 0x321(s0)
  31. 801E6E9C andi t0, 0x0002
  32.  
  33. when idle, gibdo+0x321 is 0x09
  34.  
  35. 00001001
  36. & 00000010
  37. ------------
  38. branch will be taken (update health is skipped) if the second bit of this variable is not set
  39.  
  40. when idle this variable is set to 0x09
  41. when slashed this variable is set to 0x0B
  42. when slashed and killed this variable is also set to 0x0B
  43.  
  44. so what is gibdo+0x321
  45. written to by 80049FC0 of function 80049FB0
  46.  
  47. sb t7, a1+0x11
  48. a1 is gibdo+0x310 (why is this not the gibdo pointer?)
  49. value written to gibdo+0x321 is (gibdo+0x321 & 0xFF7D)
  50.  
  51. idle, +0x321 is 0x09
  52. 0000000000001001
  53. & 1111111101111101
  54. --------------------
  55. which will write 0x09 again
  56.  
  57. =======================================================================
  58. call to write this variable to 9 again is at 8004ADA8
  59. 8004AD94 called by 8004BF9C
  60. 8004BF40 called by 801E71C0 in 801E6FF0 (gibdoB)
  61.  
  62. /**
  63. * //Subscribe to collision pool 2, non-complex poly types | //Called directly by actors
  64. * TODO Look into actors that use this function, there are conflicts between these notes and the function prototype, define a type for collision and figure out the return type
  65. * A0 = Global Context | A1 = 801DA300 //collision body groups | A2 = Collision Body Ptr | V0 = 0 or -1 based on 801DA302 lowest bit?
  66. */
  67. extern void actor_collision_check_set_ac(z64_global_t *global, void* simple_body_groups, z64_collider_cylinder_main_t *collision);
  68.  
  69. ----
  70.  
  71. call to write this value to 0x0B is at 8004CD80 in function 8004CCC8
  72. call at 8004E7F8, part of 8004E660
  73. call at 8004F7C4, part of 8004F6E4
  74. call at 8004F890, part of 8004F80C
  75. call at 8009BD28, part of 8009AF1C (fucking massive function)
  76. call at 8009CAE8, part of 8009CAC8
  77. call at 804000D8, part of 804000A4
  78. call at 800A0BF8, part of 800A0BD0
  79. call at 800A16B4, part of 800A1688
  80. nvm this is fucking dumb lmao
  81.  
  82. ----
Advertisement
Add Comment
Please, Sign In to add comment