Difference between revisions of "Memory Address Table"

From Ōkami Speedrun Wiki
Jump to navigation Jump to search
(→‎Table: adding yen-related values)
(Changing "Units" column to "Units/Details". I've so far been using the Units articles to explain what each associated value does/how it behaves. In the future, I'll make similar articles for values that aren't really quantities, like bitfields/arrays)
Line 17: Line 17:
'''Range''' describes, roughly, the range of values stored at the given address. This doesn't generally indicate precise bounds.
'''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.
'''Units/Details''' describes the type of quantity represented by the value and/or contains one or more links to an article which explains the meaning, purpose, and mechanics of that value in greater detail compared to the Short Description.


==Table==
==Table==
{| class="wikitable sortable"
{| class="wikitable sortable"
|-
|-
! Address !! Short Description !! Type !! Range !! Units
! Address !! Short Description !! Type !! Range !! Units/Details
|-
|-
| main.dll+B6B2D0 + 000000A8 + 0 || Ammy X Position/Coordinate || Float || -20,000 to 20,000 || [[Distance]]
| main.dll+B6B2D0 + 000000A8 + 0 || Ammy X Position/Coordinate || Float || -20,000 to 20,000 || [[Distance]]
Line 60: Line 60:
| main.dll+B1CFE4 || Displayed Yen || 4 Bytes || 0 to 99999 by default || [[Yen]]
| main.dll+B1CFE4 || Displayed Yen || 4 Bytes || 0 to 99999 by default || [[Yen]]
|-
|-
| main.dll+6B22A8 || Maximum Yen / Purse Size At 0 Purse Upgrades || 4 Bytes || 99,999 || [[Yen]]
| main.dll+6B22A8 || Maximum Yen / Purse Size At 0 Purse Upgrades || Array(4) 4 Bytes || 99,999 to 99,999,999 || [[Yen]]
|-
| main.dll+6B22AC || Maximum Yen / Purse Size At 1 Purse Upgrade || 4 Bytes || 999,999 || [[Yen]]
|-
| main.dll+6B22B0 || Maximum Yen / Purse Size At 2 Purse Upgrades || 4 Bytes || 9,999,999 || [[Yen]]
|-
| main.dll+6B22B4 || Maximum Yen / Purse Size At 3 Purse Upgrades || 4 Bytes || 99,999,999 || [[Yen]]
|-
|-
| main.dll+B21758 || Total Yen Earned || 4 Bytes || Typically 0 to 99,000,000 || [[Yen]]
| main.dll+B21758 || Total Yen Earned || 4 Bytes || Typically 0 to 99,000,000 || [[Yen]]

Revision as of 19:42, 24 May 2021

Note: This page pertains to Reverse Engineering of Okami.

Explanation

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. Some addresses may have a link to a separate page which explains in greater depth its meaning and behavior.

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/Details describes the type of quantity represented by the value and/or contains one or more links to an article which explains the meaning, purpose, and mechanics of that value in greater detail compared to the Short Description.

Table

Address Short Description Type Range Units/Details
main.dll+B6B2D0 + 000000A8 + 0 Ammy X Position/Coordinate Float -20,000 to 20,000 Distance
main.dll+B6B2D0 + 000000A8 + 4 Ammy Y Position/Coordinate Float -10,000 to 10,000 Distance
main.dll+B6B2D0 + 000000A8 + 8 Ammy Z Position/Coordinate Float -20,000 to 20,000 Distance
main.dll+B4DF90 Ammy Current Health/Solar Energy 2 Bytes 0 to 900 by default Health
main.dll+B4DF92 Ammy Max Health/Solar Energy 2 Bytes 900 to 6000 in increments of 300 Health
main.dll+B205E5 Solar Energy Praise Upgrade Count Byte 0 to 12 Counter
main.dll+B205D8 Current Ink Level 4 Bytes 0 to 46080 by default Ink
main.dll+B205DD Ammy Max Ink Level 4 Bytes 46080 to 153600 in increments of 15360 Ink
main.dll+8928A4 Target Ink Level when opening Brush 4 Bytes 0 to 30720 by default Ink
main.dll+8928A8 Current Ink Level when opening Brush 4 Bytes 0 to 46080 by default Ink
main.dll+B1F208 Ink Pot Upgrade Count (read only) Byte 3 to 10 Counter
main.dll+888C58 Number of brush strokes on current canvas Byte 0 to 31 Counter
main.dll+B4DF94 Current Astral Pouch Fill 2 Bytes 0 to 200 Food Points
main.dll+B4DF96 Max Astral Pouch Fill 2 Bytes 200 to 800 in increments of 200 Food Points
main.dll+B1F207 Astral Pouch Upgrade Count (read only) Byte 1 to 4 Counter
main.dll+B4DFAC Godhood 2 Bytes 0 to 375 in increments of 5 Godhood Points
main.dll+B205E0 Current Yen 4 Bytes 0 to 99999 by default Yen
main.dll+B1CFE4 Displayed Yen 4 Bytes 0 to 99999 by default Yen
main.dll+6B22A8 Maximum Yen / Purse Size At 0 Purse Upgrades Array(4) 4 Bytes 99,999 to 99,999,999 Yen
main.dll+B21758 Total Yen Earned 4 Bytes Typically 0 to 99,000,000 Yen
main.dll+B205E4 Purse Upgrade Count Byte 0 to 3 Counter