Difference between revisions of "Save File (OKAMI) File Format"

From Ōkami Speedrun Wiki
Jump to navigation Jump to search
(WIP stuff)
 
(→‎Texture Data: more info on texture stuff)
 
Line 113: Line 113:
! Save Offset !! Relative Offset !! Type !! Size !! Description
! Save Offset !! Relative Offset !! Type !! Size !! Description
|-
|-
| 0x7140 || 0x00 || uint8_t[0x8080] || 0x8080 || unknown
| 0x7140 || 0x00 || uint8_t[0x8000] || 0x8000 || Texture 1 Image bits (4 bits per pixel) (256x256)
|-
|-
| 0xF1C0 || 0x8080 || hx::Texture[2] || 0x30 || unknown
| 0xF140 || 0x8000 || uint32_t[16] || 0x40 || Texture 1 unknown colour information
|-
|-
| 0xF1F0 || 0x80B0 || uint8_t[0x8080] || 0x8080 || unknown
| 0xF180 || 0x8040 || uint32_t[16] || 0x40 || Texture 1 unknown colour information
|-
|-
| 0x17270 || 0x10130 || hx::Texture[2] || 0x30 || unknown
| 0xF1C0 || 0x8080 || hx::Texture[2] || 0x30 || Texture 1 unknown
|-
| 0xF1F0 || 0x80B0 || uint8_t[0x8000] || 0x8000 || Texture 2 Image bits (4 bits per pixel) (256x256)
|-
| 0x171F0 || 0x100B0 || uint32_t[16] || 0x40 || Texture 2 unknown colour information
|-
| 0x17230 || 0x100F0 || uint32_t[16] || 0x40 || Texture 2 unknown colour information
|-
| 0x17270 || 0x10130 || hx::Texture[2] || 0x30 || Texture 2 unknown
|}
|}

Latest revision as of 19:29, 23 June 2025

The following article is currently a Work In Progress and will have more details soon.


Note: This page pertains to Reverse Engineering of Okami File Formats.

Save File

The save file is exactly 2 846 400 bytes (2.71MB), with a fixed allocation of 30 save slots.

Okami HD save file information is located at Steam/userdata/<user-id>/587620/remote/Steam/OKAMI.

Save Slot

Each save slot is 94880 (0x172A0) bytes.

Save Slot Format
Offset Type Size Description
0x0000 uint32_t 4 00 00 40 40
0x0004 uint32_t 4 Area name string ID
0x0008 uint64_t 8 Slot checksum
0x0010 uint64_t 8 Save time RTC (result of wk::OSGetTimeRTC from flower_kernel.dll)
0x0018 CharacterStats 0x48 Character Stats such as health, food, praise, godhood, position, and some unlocks.
0x60 TrackerData 0x80 Tracking information such as first-time item acquisition, logbook, bestiary, time played, etc.
0xE0 CollectionData 0x11B0 Items collected, inventory, current map, travel guides and various tomes collected, time and day, brush techniques, map states, rejuvenated areas, animals fed, money, demon fangs, enemies slain, etc.
0x1290 uint32_t[83][57] 0x49EC Additional persistent map flags (others in CollectionData). First index is the Map Table vanilla index. Second is the bitfield index.
0x5C7C uint32_t[83][16] 0x14C0 Issun dialog bits. If a bit is set, then the dialog has been completed before. First index is the Map Table vanilla index. Second is the bitfield index.
0x713C uint32_t 4 unknown
0x7140 TextureData 0x10160 Texture information for drawn in-game art. i.e. the Imp Mask drawn in the Moon Cave.

Character Stats

The following article is currently a Work In Progress and will have more details soon.


Save Offset Relative Offset Type Size Description
0x0018 0x00 uint16_t 2 Current health
0x001A 0x02 uint16_t 2 Max health
0x001C 0x04 uint16_t 2 Current food (Astral Pouch)
0x001E 0x06 uint16_t 2 Max food (Astral Pouch)
0x0020 0x08 uint8_t 1 unknown
0x0021 0x09 uint8_t 1 unknown (padding?)
0x0022 0x0A uint16_t 2 Current praise
0x0024 0x0C uint16_t 2 Total praise
0x0026 0x0E uint16_t 2 unknown (padding?)
0x0028 0x10 uint32_t[2] 8 Bitmask for dojo techniques unlocked
0x0030 0x18 uint8_t 1 unknown
0x0031 0x19 uint8_t 1 unknown
0x0032 0x1A uint8_t 1 unknown
0x0033 0x1B uint8_t 1 unknown (padding?)
0x0034 0x1C uint16_t 2 Godhood Points
0x0036 0x1E uint16_t 2 unknown (padding?)
0x0038 0x20 uint32_t[2] 8 Bitmask for weapon unlocks ? (TODO confirm)
0x0040 0x28 uint16_t 2 unknown
0x0042 0x2A uint16_t 2 unknown
0x0044 0x2C uint16_t 2 unknown
0x0046 0x2E uint16_t 2 unknown (padding?)
0x0048 0x30 float 4 x
0x004C 0x34 float 4 y
0x0050 0x38 float 4 z
0x0054 0x3C float 4 u
0x0058 0x40 float 4 v
0x005C 0x44 float 4 w

Tracker Data

The following article is currently a Work In Progress and will have more details soon.


Collection Data

The following article is currently a Work In Progress and will have more details soon.


Persistent Bits

The following article is currently a Work In Progress and will have more details soon.


Texture Data

Save Offset Relative Offset Type Size Description
0x7140 0x00 uint8_t[0x8000] 0x8000 Texture 1 Image bits (4 bits per pixel) (256x256)
0xF140 0x8000 uint32_t[16] 0x40 Texture 1 unknown colour information
0xF180 0x8040 uint32_t[16] 0x40 Texture 1 unknown colour information
0xF1C0 0x8080 hx::Texture[2] 0x30 Texture 1 unknown
0xF1F0 0x80B0 uint8_t[0x8000] 0x8000 Texture 2 Image bits (4 bits per pixel) (256x256)
0x171F0 0x100B0 uint32_t[16] 0x40 Texture 2 unknown colour information
0x17230 0x100F0 uint32_t[16] 0x40 Texture 2 unknown colour information
0x17270 0x10130 hx::Texture[2] 0x30 Texture 2 unknown