Difference between revisions of "Exit Destination (.JMP) File Format"

From Ōkami Speedrun Wiki
Jump to navigation Jump to search
(→‎jumpEntry: Padding is part of overall)
(changing level file id link to Map Table)
 
(5 intermediate revisions by 2 users not shown)
Line 3: Line 3:
==Explanation==
==Explanation==


This file defines the destinations for exits. This does not define the loading zones themselves, but is referred to by them. (See Zone (.MEH/.SCA/.SCI) File Format for that.)
This file defines the destinations for exits. This does not define the loading zones themselves, but is referred to by them. (See [[Zones (.MEH/.SCA/.SCI) File Format]] for that.)


==File Format==
==File Format==
Line 11: Line 11:
! Start (Bytes in Hex) !! Width (Bytes in Hex) !! Type !! Field Name !! Note
! Start (Bytes in Hex) !! Width (Bytes in Hex) !! Type !! Field Name !! Note
|-
|-
| 0 || 4 || uint32 || number_of_entries || One for each exit destination definition.
| 0 || 4 || uint32 || Number of entries || Count of exit destination definition.
|-
|-
| 4 || 64 each || jumpEntry array || jumpEntries ||  
| 4 || 12 each || [[#jumpEntry|jumpEntry]] array || [[#jumpEntry|jumpEntry]] || One for each exit definition.
|-
| || || || padding || Pad with zeroes for 64 byte alignment
|}
|}


===jumpEntry===
===jumpEntry===
{| class="wikitable dataStructure"
Describes a single exit destination.
|-
 
! Start (Bytes in Hex) !! Width (Bytes in Hex) !! Type !! Field Name !! Note
{| class="wikitable"
|-
! Start (Byte) !! Width (Bytes) !! Type !! Field Name !! Note
| 0 || 2 || uint16 || x_coordinate ||
|-
| 2 || 2 || uint16 || 7_coordinate ||
|-
|-
| 4 || 2 || uint16 || z_coordinate ||
| 0 || 6 || PackedTuple<int16> || coordinates || Location on destination map (x, y, z)
|-
|-
| 6 || 2 || uint16 || ammy_orientation ||
| 6 || 2 || uint16 || orient || Ammy's orientation. Could be int16.
|-
|-
| 8 || 1 || uint8 || area_id || See Level File ID Table.
| 8 || 1 || uint8 || area_id || Destination area ID. See [[Map Table]].
|-
|-
| 9 || 1 || uint8 || region_id || See Level File ID Table.
| 9 || 1 || uint8 || region_id || Destination region ID. See [[Map Table]].
|-
|-
| 10 || 1 || uint8 || source_id? || Seems to reference the other side of the exit, but doesn't appear to do anything when changed.
| 10 || 1 || uint8 || unknown || Seems to reference the other side of the exit but doesn't do anything when changed?
|-
|-
| 11 || 1 || uint8 || exit_id || Index into this file.
| 11 || 1 || uint8 || exit_id || Index into this file.
|}
|}

Latest revision as of 21:12, 30 July 2023

Note: This page pertains to Reverse Engineering of Okami.

Explanation

This file defines the destinations for exits. This does not define the loading zones themselves, but is referred to by them. (See Zones (.MEH/.SCA/.SCI) File Format for that.)

File Format

Overall

Start (Bytes in Hex) Width (Bytes in Hex) Type Field Name Note
0 4 uint32 Number of entries Count of exit destination definition.
4 12 each jumpEntry array jumpEntry One for each exit definition.
padding Pad with zeroes for 64 byte alignment

jumpEntry

Describes a single exit destination.

Start (Byte) Width (Bytes) Type Field Name Note
0 6 PackedTuple<int16> coordinates Location on destination map (x, y, z)
6 2 uint16 orient Ammy's orientation. Could be int16.
8 1 uint8 area_id Destination area ID. See Map Table.
9 1 uint8 region_id Destination region ID. See Map Table.
10 1 uint8 unknown Seems to reference the other side of the exit but doesn't do anything when changed?
11 1 uint8 exit_id Index into this file.