NovaKirby

Baku2 Notes

Dec 29th, 2017
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.44 KB | None | 0 0
  1. Last Update : 2018-03-13 (GMT)
  2.  
  3. ----------------------------------------------------------------------------------
  4. * Available on Github : https://github.com/novakirby/Baku2Note *
  5. ----------------------------------------------------------------------------------
  6. * Any feedback is appreciated. *
  7. * Please note that information is based on JP version. *
  8. ----------------------------------------------------------------------------------
  9. ========================
  10. * Global Flag (Misc) *
  11. ========================
  12. 0x08FB30 : disable_hitchk
  13. When lowest bit of this word is set, all objects ignore collision(eg. walls, doors, hitbox, etc.), may used to debug.
  14.  
  15. ==========================
  16. * Movement Calculation *
  17. ==========================
  18. Speed = min( sqrt(stuff), 12.0) * multiplier, in which:
  19. multiplier : stuff :
  20. LV0 : 0.6 Something related to controller input/status
  21. LV1 : 0.8
  22. LV2 : 1.0
  23. LV3 : 1.2
  24. Pommy(ポミュ)'s movement is always calculated as LV0
  25.  
  26. ====================
  27. * Player Status *
  28. ====================
  29. Base : 0x0AB590 (Physical Address on Emulators)
  30. Size : 0x3C (Big Endian)
  31. *In fact, boss takes player 3 slot in Story mode.
  32. -------------------------------------------------------------------------------------------------------------------
  33. Offset| Discription
  34. -------------------------------------------------------------------------------------------------------------------
  35. 0x00 | (DWord) Bomb(爆弾数) [0x0AB590]
  36. | Display value for bomb count on UI.
  37. 0x04 | (DWord) Fire(火力) [0x0AB594]
  38. 0x08 | (DWord) Bomb type(爆弾属性) [0x0AB598]
  39. | Modify this directly will makes graphic glicthy since the texture does not loaded correctly.
  40. | Invalid value freezes the game when bomb spwan.
  41. | Buggy in battle mode, freeze the game easily due to overflow or some other error.
  42. 0x0C | (DWord) Speed(スピード) [0x0AB59C]
  43. | LV3 is unused, works fine. Invalid values will have multiplier 1.0.
  44. 0x10 | (Byte) ? [0x0AB5A0]
  45. 0x11 | (Byte) ? [0x0AB5A1]
  46. | Bit | Discription
  47. | 0 | unused / unknown
  48. | 1 | unused / unknown
  49. | 2 | unused / unknown
  50. | 3 | unused / unknown
  51. | 4 | unused / unknown
  52. | 5 | unused / unknown
  53. | 6 | unused / unknown
  54. | 7 | Asserted when not active (eg. Title screen)
  55. 0x12 | (Byte) Event Status [0x0AB5A2]
  56. | Bit | Discription
  57. | 0 | unused / unknown
  58. | 1 | unused / unknown
  59. | 2 | Event Invincible(*1)
  60. | 3 | unused / unknown
  61. | 4 | unused / unknown
  62. | 5 | unused / unknown
  63. | 6 | unused / unknown
  64. | 7 | unused / unknown
  65. | -----------------
  66. | Additional Note
  67. | -----------------
  68. | (*1) The game asserts bit 2 when map events triggered. If bit 2 is asserted, player will:
  69. | 1. Not affect by hitbox.
  70. | 2. Affect normally by Wind bomb(風ボム).
  71. | 3. Not affect by Dark bomb(闇ボム).
  72. | 4. Not affect by danger zone. Water(水)/Magma(マグマ) zone makes player "sink" slowly until button of zone.
  73. | 5. Not affect by instant-kill(即死) move from boss; Scripts and effects still work as if move connected, but player can
  74. | move freely. Boss will stuck on finish motion, any hitbox can make them return to idle/damage state.
  75. | and thus makes gameover not possible. Probably intended to prevent unexcepted behavior during events and debug test.
  76. 0x13 | (Byte) Ability [0x0AB5A3]
  77. | Bit | Discription
  78. | 0 | Kick(キック)
  79. | 1 | Throw(投げ)
  80. | 2 | Remote(リモコン)
  81. | 3 | unused / unknown
  82. | 4 | unused / unknown
  83. | 5 | unused / unknown
  84. | 6 | unused / unknown
  85. | 7 | unused / unknown
  86. 0x14 | ? [0x0AB5A4 - 0x0AB5B7]
  87. 0x28 | (DWord) Bomb(Limit)(爆弾数(上限)) [0x0AB5B8]
  88. | Maximum number allowed for bomb exist in world. It seems that the value is calculated each time when bomb type changed.
  89. | Fire(炎) : Bomb + 1
  90. | Ice(氷) : Bomb
  91. | Wind(風) : Bomb
  92. | Elec(雷) : Bomb + 1
  93. | Ground(土) : 1
  94. | Light(光) : 1
  95. | Dark(闇) : 1
  96. | Too many bombs explode at once would cause the game hangs up due to overflow.
  97. 0x2C | (DWord) Health(Current) (ハート) [0x0AB5BC]
  98. 0x30 | (DWord) : Health(Maximum) (ハート上限) [0x0AB5C0]
  99. | Gameover is triggered in story mode if player 1 has health less or equal than 0 after damage calculation.
  100. | Pommy can not dies by health 0.
  101. | Too many heart icon on UI will make the game hangs up when switching area.
  102. 0x34 | (DWord) : Special Status (状態) [0x0AB5C4]
  103. | Next special status register when skull(ドクロ) or invincible(無敵) touched.
  104. | 0x0 : None
  105. | 0x1 : Tiny(リトル)
  106. | 0x2 : Big(ビッグ)
  107. | 0x3 : Disarmed(ハムスター)
  108. | 0x4 : Reverse(リバース)
  109. | 0x5 : Disguise(フェイクボム)
  110. | 0x6 : Fire(ファイアーマン)
  111. | 0x7 : Invisible(クリア)
  112. | 0x8 : Phantom(死神)
  113. | 0x9 : Fuzzy(ブラインド)
  114. | 0xA : Invincible(無敵) (*1)
  115. | -----------------
  116. | Additional Note
  117. | -----------------
  118. | (*1) This invincible only blocks damage hitboxs.
  119. 0x38 | 0x0AB5C8 - 0x0AB5CC : ?
  120.  
  121. =================
  122. * In Research *
  123. =================
  124. (1)
  125. Addr : [0x0D0BB0] (P1 / Story Mode)
  126. - Destination of subroutine called "obj2GetPos" and source of subroutine called "obj2SetPos".
  127. - Offset 0x0 is the pointer (virtual address) to obj2, which located in heap segment, dynamically changes by time.
  128. - Offset 0x4, 0x8, 0xC are X, Y, Z Position of object, respectively, using IEEE 754 single precision. As mentioned, the game system
  129. loads position from a obj2 struct via obj2GetPos every single frame, thus directly modify it likely does no effect.
  130. ---------------------------------------------------------------------------------
  131. (2)
  132. obj2 structure
  133. - A doubly linked list
  134. - Contains information of current model.
  135. struct size : 0xE8
  136. -------------------------------------------------------------------------------------------------------------------
  137. Offset| Discription
  138. -------------------------------------------------------------------------------------------------------------------
  139. 0x00 | (DWord) Next
  140. 0x04 | (DWord) Prev
  141. 0x08 | (DWord) X Offset
  142. 0x0C | (DWord) Y Offset
  143. 0x10 | (DWord) Z Offset
  144. 0x14 | (DWord) X Rot (probably stands for "rotation")
  145. 0x18 | (DWord) Y Rot
  146. 0x1C | (DWord) Z Rot
  147. 0x20 | (DWord) X Scale
  148. 0x24 | (DWord) Y Scale
  149. 0x28 | (DWord) Z Scale
  150. 0x2C | (DWord)
  151. 0x30 | (HWord)
  152. 0x32 | (HWord) Sort Key
  153. 0x34 | (HWord) Status ID
  154. 0x36 | (HWord)
  155. 0x38 | (HWord) Rendering Flag
  156. | Bit | Discription
  157. | 0 | unknown
  158. | 1 | unknown
  159. | 2 | unknown
  160. | 3 | unknown
  161. | 4 | unknown
  162. | 5 | unknown
  163. | 6 | unknown
  164. | 7 | Reset Model?
  165. | 8 | unknown
  166. | 9 | unknown
  167. | A | unknown
  168. | B | unknown
  169. | C | unknown
  170. | D | Blinking
  171. | E | Visability
  172. | F | unknown
  173. 0x3A | (HWord) Black-listed animID? (Stored by bit-flag)
  174. 0x50 | (Byte) Color R?
  175. 0x51 | (Byte) Color G?
  176. 0x52 | (Byte) Color B?
  177. 0x53 | (Byte) Color A
  178. 0xDC | (DWord) Function Parameter
  179.  
  180. ===================
  181. * Example codes *
  182. ===================
  183. Gameshark:
  184. God Mode (Player 1)
  185. 800AB593 0003 //Bomb
  186. 800AB597 0003 //Fire
  187. 800AB59F 0003 //Speed
  188. 810AB5A2 0407 //Flags
  189. 800AB5BB 000A //Bomb(Limit)
  190. 800AB5BF 000C //Health(Current)
  191. 800AB5C3 000C //Health(Max)
  192. -----------------------------------------------
  193. (reserved)
  194. -----------------------------------------------
Add Comment
Please, Sign In to add comment