Advertisement
YoniArousement

SOR2 Memory Addresses (Red Crimson)

Feb 5th, 2019
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.22 KB | None | 0 0
  1. FFFFA900 DecBuffer
  2. FFFFEC80 SpriteMappingsBuffer
  3. FFFFEF00 P1CharacterSST - This is the offset where most of pl1 information is stored
  4. FFFFF000 P2CharacterSST - Same, but for player 2
  5. FFFFF100 BossObjSST
  6. FFFFF700 ItemSST
  7. FFFFFC00 Next_GameMode - Next mode can have one of the following values
  8.  
  9. 0 SEGAScreen
  10. 4 TitleScreen
  11. 8 Demo
  12. C SelectMode
  13. 10 Options
  14. 14 InGame
  15. 18 CharacterSelectScreen
  16. 1C Ending
  17. 20 DuelMode
  18. 24 Intro
  19. 28 Highscores (top 10)
  20.  
  21. FFFFFC02 Current Gamemode - same values apply here
  22. FFFFFC08 P1ButtonHeld
  23. FFFFFC09 P1ButtonPress
  24. FFFFFC0A P2ButtonHeld
  25. FFFFFC0B P2ButtonPress
  26. FFFFFC14 SpriteMappingsBufferPointer
  27. FFFFFC18 TwoPlayerGame - One Player = 0 ; Two Players = 1
  28. FFFFFC22 CamX - horizontal coordinates of the view camera
  29. FFFFFC26 CamY - vertical coordinates of the view camera
  30. FFFFFC3C Timer_Minute
  31. FFFFFC3D Timer_Second
  32. FFFFFC3E Timer_MilliSecond
  33. FFFFFC3F PauseFlag
  34. FFFFFC42 ELC_Index_Level_ID
  35. FFFFFC44 ELC_Index_Stage_ID
  36.  
  37. FFFFFC6D Chk_TwoPlayerPad - set to 0 if player 2 pad is connected; 1 otherwise
  38. FFFFFC6E P1ButtonHeld_InGame
  39. FFFFFC70 P2ButtonHeld_InGame
  40. FFFFFCCA ELC_Index_Item
  41. FFFFFCD2 ELC_Index_Enemy1
  42. FFFFFCD6 ELC_Index_Enemy2
  43. FFFFFD04 Opt_Difficulty - 0 very easy; 2 easy; 4 normal; 6 hard; 8 very hard; A mania
  44. FFFFFD06 Opt_Lives
  45. FFFFFD0E Level - Starting level. Story mode levels are from 0 to 7, value 8 results in battle mode scenes
  46. FFFFFD11 Cheat_SelectSameCharacter
  47. FFFFFD30 Top10PlayerData
  48. FFFFFDF6 _812C (?)
  49.  
  50.  
  51. --------------------------------------------
  52.  
  53.  
  54. Player specific Addresses:
  55.  
  56. Those addresses are as follows:
  57. FFEF?? addresses for player 1
  58. FFF0?? addresses for player 2
  59. In disassembled code, you'll notice that first FFFFEF00 or FFFFF000 is loaded into some address register, then the specific addresses are accessed with offsets, eg:
  60. Code:
  61. LEA ($FFFFF000).w,a2 // load P1CharacterSST into a2
  62. TST.w $82(a2) // check if lives reached zero
  63.  
  64.  
  65. 00 ObjMode
  66. 02 CameraX
  67. 06 CameraY
  68. 0A SpriteStatus
  69. 0C ObjID
  70. 0E NextAnimation
  71. 0F SpriteOrientation - 0 = Facing Left ; 1 = Facing Right
  72. 10 CurrentAnimation
  73. 12 AnimationScriptOffset - Contains offset of current animation script, which contains pointer to art data
  74. 16 FrameTimer
  75. 18 FrameID - ID of the current frame
  76. 1A NextFramePointer - a word pointer added to the offset from AnimationScriptOffset. When a new Animation Script is updated, value of 2 is moved here. After each new frame, 8 is added here to get the next frame data from the offset from AnimationScriptOffset.
  77. 1C PreviousFramePointer
  78. 1E AnimationStatus
  79.  
  80. ; BIT 7 10000000 - 80 DMA
  81. ; BIT 6 01000000 - 40
  82. ; BIT 5 00100000 - 20
  83. ; BIT 4 00010000 - 10
  84. ; BIT 3 00001000 - 8
  85. ; BIT 2 00000100 - 4
  86. ; BIT 1 00000010 - 2
  87. ; BIT 0 00000001 - 1 set if animation script needs updating
  88.  
  89.  
  90. 20 HPos - horizontal position
  91. 24 VPos - vertical position
  92. 28 CollisionBitfieldStatus
  93.  
  94. ; BIT 7 10000000 - 80 1 = Knockout attack 0 = Normal attack
  95. ; BIT 6 01000000 - 40
  96. ; BIT 5 00100000 - 20 Enemy - Score
  97. ; BIT 4 00010000 - 10 Enemy - Score
  98. ; BIT 3 00001000 - 8 Enemy - Score
  99. ; BIT 2 00000100 - 4 Enemy - Score
  100. ; BIT 1 00000010 - 2
  101. ; BIT 0 00000001 - 1
  102.  
  103. 2A JumpingHPosInertia
  104. 2E JumpingVPosInertia
  105. 32 ObjStatus4
  106.  
  107. ; BIT 7 10000000 - 80
  108. ; BIT 6 01000000 - 40
  109. ; BIT 5 00100000 - 20
  110. ; BIT 4 00010000 - 10
  111. ; BIT 3 00001000 - 8
  112. ; BIT 2 00000100 - 4
  113. ; BIT 1 00000010 - 2 1 = effects P1&P2 only 0 = effects P1&P2 and Enemies
  114. ; BIT 0 00000001 - 1 Enable Weapon
  115.  
  116.  
  117. 34 HeldObj - Knives and Swords
  118. 38 HeldObjID
  119. 3A JumpHeight - determines how high the character jumps
  120. 3C CurrentSpriteArtAddress
  121. 40 HInertia - horizontal inertia
  122. 44 VInertia - vertical inertia
  123. 48 ObjStatus5
  124.  
  125. ; BIT 7 10000000 - 80
  126. ; BIT 6 01000000 - 40
  127. ; BIT 5 00100000 - 20 Down+B attack
  128. ; BIT 4 00010000 - 10 Running Flag
  129. ; BIT 3 00001000 - 8 Knockdown flag (set when obj is lying on floor)
  130. ; BIT 2 00000100 - 4 (set when move has ended)
  131. ; BIT 1 00000010 - 2 Jumping Attack
  132. ; BIT 0 00000001 - 1 Block Flag
  133.  
  134.  
  135. 49 ObjStatus1
  136.  
  137. ; BIT 7 10000000 - 80 Obj Active
  138. ; BIT 6 01000000 - 40 Knockout Flag
  139. ; BIT 5 00100000 - 20 Main Character hold Partner/Enemy
  140. ; BIT 4 00010000 - 10 Partner/Enemy hold Main Character
  141. ; BIT 3 00001000 - 8 Attack flag
  142. ; BIT 2 00000100 - 4 Hit flag
  143. ; BIT 1 00000010 - 2
  144. ; BIT 0 00000001 - 1 0 = Hit from Left; 1 = Hit from Right (used for setting breakable objects inertia)
  145.  
  146. 4A ObjStatus2 - an animation timer used for animation scripts to give stylised effects ie pause effects
  147. 4B PreviousButton_Press_Copy - stores previous state of button press-copy
  148. 4C - K.O.s
  149. 4E - K.O.s (I added those two myself, I don't know exactly the difference of them, they seem to store the same value)
  150. 50 InvincibilityTimer
  151. 52 PreviousButton_Press - stores previous state of button press
  152. 54 Top10PlayerPosition
  153. 58 Button_Held_Counter - timer to perform the knockdown attack when holding attack for a while. It is incremented every frame while attack is held. When it reaches the value 3C, Knockout_Move_Flag is activated
  154. 59 Knockout_Move_Flag - if set to $FF, the knockout move is executed
  155. 5A Throw_H_Inertia
  156. 5E Throw_V_Inertia
  157. 62 Atk_Width
  158. 64 Atk_Height
  159. 66 Hit_Width
  160. 68 Hit_Height
  161. 6A Hit_Vicinty
  162. 72 HighScoreLetter
  163. 78 CharacterName
  164. 80 HP - Energy
  165. 82 Lives
  166. 86 ThrowingObj - An Object you throw, ie an enemy
  167. 8A AttackingObj - An Object attacking you
  168. 8E AttackDamage
  169. 90 HPBar - displaid energy
  170. 96 Score
  171. 98 Top10Player_Round
  172. 9C ComboCount - Used for combo attacks ie 2 = punch; 4 = punch; 6 = hard punch; 8 = combo end
  173. 9E ComboCountTimer - timer used for combo attacks ie button presses
  174. A4 Continue
  175. A6 AttackChk - 00 = sprite not touching object; 11 = sprite touching object
  176. AA LastObjTouch - address of last obj attacked/thrown either by player or enemy
  177. AE DpadTimer - Timer used for Walking/running/blitz test. When Left/Right is pressed it takes the value $10. It's decremented every frame. If the same direction is pressed again within $10 game frames, then the Double tap flag is enabled (enabling running/blitz)
  178. B4 SpriteSize
  179. B8 HighScoreName_FirstLetter
  180. B9 HighScoreName_SecondLetter
  181. BA HighScoreName_ThirdLetter
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement