Difference between revisions of "Memory Address Table"

From Ōkami Speedrun Wiki
Jump to navigation Jump to search
(starting page)
 
(refining the table structure and finishing out the column explanations)
Line 3: Line 3:
'''Address''' refers to the path to the location in memory of the given data. These will be of the form <code>dllFile.dll+offset</code> or <code>dllFile.dll+offset + pointerOffset + pointerOffset</code> or similar. Offsets will be given in hexadecimal.  
'''Address''' refers to the path to the location in memory of the given data. These will be of the form <code>dllFile.dll+offset</code> or <code>dllFile.dll+offset + pointerOffset + pointerOffset</code> or similar. Offsets will be given in hexadecimal.  


'''Categories''' refers to data which is somehow associated. For example, data pertaining to Amaterasu will have the "Ammy" category, data pertaining to the in-game map will have the "Map" category, data pertaining to
'''Short Description''' refers to a brief phrase or sentence which describes the meaning/purpose of the value.
 
'''Type''' refers to the way the value located at the given address is interpreted. The common types are:
* Float: A floating point value, representing a fraction/decimal value. Generally used for values which vary continuously. Can take on a very wide range of values, with varying degrees of precision. A float is always 4 bytes in length.
* (1/2/4/8) Byte(s): An integer value. Sometimes signed (positive or negative) sometimes unsigned (not negative). Can represent countable quantities (e.g. number of a given item in the inventory), addresses of other values, or a wide variety of other things. Sometimes represented in hexadecimal or decimal. Each byte represents 8 adjacent bits (binary on/off values).
* Array of Bytes: A list of byte values of arbitrary length. Can contain many independently meaningful addresses. Usually listed here to represent a group of related values stored adjacently in memory.
* String: A list of characters of arbitrary length, usually representing a something like a word, sentence, or filename.
* Binary: A set of values which are either on/off or true/false. Often used to represent flags, such as whether a certain one-time-only action has been performed. Because addresses can only refer to bytes, and not individual bits, each binary address listed here will represent a group of 8 actual bits/flags. In many cases, not all of the bits in a byte are used (the unused bits always remain at 0). For these values, the description will describe the overall contents of the byte, and the detailed values will be present in the [[Bitfield Table]], linked in the Article column
 
'''Range''' describes, roughly, the range of values stored at the given address. This doesn't generally indicate precise bounds.
 
'''Units'''  describes the type of quantity represented by the value. For values which don't represent some kind of quantity, this column may be blank.
 
'''Article''' will be a link to another wiki page which explains the meaning and behavior of that value in greater depth. Some addresses will have their own article, while others (e.g. binary values) will be grouped in larger articles.


{| class="wikitable sortable"
{| class="wikitable sortable"
|-
|-
! Address !! Categories !! Short Description !! Type !! Typical Value Range !! Article
! Address !! Short Description !! Type !! Range !! Units !! Article
|-
|-
| main.dll+B6B2D0 + 000000A8 + 0 || Ammy, Position || Ammy X Position/Coordinate || Float || Roughly -20,000 to 20,000 ||  
| main.dll+B6B2D0 + 000000A8 + 0 || Ammy X Position/Coordinate || Float || -20,000 to 20,000 || In-game distance ||  
|-
|-
| main.dll+B6B2D0 + 000000A8 + 4 || Ammy, Position || Ammy Y Position/Coordinate || Float || Roughly -10,000 to 10,000 ||  
| main.dll+B6B2D0 + 000000A8 + 4 || Ammy Y Position/Coordinate || Float || -10,000 to 10,000 || In-game distance ||  
|-
|-
| main.dll+B6B2D0 + 000000A8 + 8 || Ammy, Position || Ammy Z Position/Coordinate || Float || Roughly -20,000 to 20,000 ||  
| main.dll+B6B2D0 + 000000A8 + 8 || Ammy Z Position/Coordinate || Float || -20,000 to 20,000 || In-game distance ||  
|-
|-
| main.dll+B4DF90 || Ammy, Health || Ammy Current Health/Solar Energy || 2 Bytes || 0 to 900. Every 300 represents 1 Solar Unit ||
| main.dll+B4DF90 || Ammy Current Health/Solar Energy || 2 Bytes || 0 to 900 by default || Health ||
|}
|}

Revision as of 22:52, 8 May 2021

Here you will find an incomplete list of descriptions of memory addresses/locations/structures in Okami, discovered via Reverse Engineering.

Address refers to the path to the location in memory of the given data. These will be of the form dllFile.dll+offset or dllFile.dll+offset + pointerOffset + pointerOffset or similar. Offsets will be given in hexadecimal.

Short Description refers to a brief phrase or sentence which describes the meaning/purpose of the value.

Type refers to the way the value located at the given address is interpreted. The common types are:

  • Float: A floating point value, representing a fraction/decimal value. Generally used for values which vary continuously. Can take on a very wide range of values, with varying degrees of precision. A float is always 4 bytes in length.
  • (1/2/4/8) Byte(s): An integer value. Sometimes signed (positive or negative) sometimes unsigned (not negative). Can represent countable quantities (e.g. number of a given item in the inventory), addresses of other values, or a wide variety of other things. Sometimes represented in hexadecimal or decimal. Each byte represents 8 adjacent bits (binary on/off values).
  • Array of Bytes: A list of byte values of arbitrary length. Can contain many independently meaningful addresses. Usually listed here to represent a group of related values stored adjacently in memory.
  • String: A list of characters of arbitrary length, usually representing a something like a word, sentence, or filename.
  • Binary: A set of values which are either on/off or true/false. Often used to represent flags, such as whether a certain one-time-only action has been performed. Because addresses can only refer to bytes, and not individual bits, each binary address listed here will represent a group of 8 actual bits/flags. In many cases, not all of the bits in a byte are used (the unused bits always remain at 0). For these values, the description will describe the overall contents of the byte, and the detailed values will be present in the Bitfield Table, linked in the Article column

Range describes, roughly, the range of values stored at the given address. This doesn't generally indicate precise bounds.

Units describes the type of quantity represented by the value. For values which don't represent some kind of quantity, this column may be blank.

Article will be a link to another wiki page which explains the meaning and behavior of that value in greater depth. Some addresses will have their own article, while others (e.g. binary values) will be grouped in larger articles.

Address Short Description Type Range Units Article
main.dll+B6B2D0 + 000000A8 + 0 Ammy X Position/Coordinate Float -20,000 to 20,000 In-game distance
main.dll+B6B2D0 + 000000A8 + 4 Ammy Y Position/Coordinate Float -10,000 to 10,000 In-game distance
main.dll+B6B2D0 + 000000A8 + 8 Ammy Z Position/Coordinate Float -20,000 to 20,000 In-game distance
main.dll+B4DF90 Ammy Current Health/Solar Energy 2 Bytes 0 to 900 by default Health