Difference between revisions of "MAPINFO"
| Line 69: | Line 69: | ||
Ignored. | Ignored. | ||
===SNDP (Sound Program)=== | ===[[SNDP]] (Sound Program)=== | ||
[[(HLTaskFunc)sndCtrlSoundProgram]] | [[(HLTaskFunc)sndCtrlSoundProgram]] | ||
Revision as of 18:51, 12 May 2019
Memory Models
Could be the MAPINFO memory model:
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x04 | string | Identifier (SCNC) |
| 0x04 | 0x0? | ? | Variable size (contains pointers) |
| 0x0? | 0x04 | string | Identifier (USE ) //space at the end |
| 0x0? | 0x0? | ? | Variable size (contains pointers) |
Found at qword_7FF717119290 (v1.03) in the code segment (CS). It is accessed when reading the TRCK segment.
struct s1 {
signed char[8] pad8;
signed char f8; //bool set to 1 at end
signed char[7] pad16;
struct s0* f16;
struct s2* f24; //ASEQ
struct s2* f32; //ACAM
struct s2* f40; //AMOV
struct s2* f48; //ASTR
struct s2* f56; //ALIP
uint64_t f64;
uint64_t f72;
signed char[8] pad88;
int32_t f88;
int32_t f92;
int32_t f96;
int32_t f100;
signed char[12] pad116;
struct s2* f116;
signed char[4] pad128;
struct s2* f128;
signed char[42376] pad42512;
int32_t f42512;
int16_t f42516;
};
struct s0 {
signed char[4] pad4;
int32_t f4;
int32_t f8;
};
struct s2 {
int32_t f0;
int32_t f4;
signed char[1] pad9;
signed char f9;
signed char[2] pad12;
int32_t f12;
};
ATTR (Attribute)
Ignored.
SNDP (Sound Program)
(HLTaskFunc)sndCtrlSoundProgram
SNDD
SNDA
SNDR
SNDM
SMAP
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x04 | string | Identifier (SMAP) |
| 0x04 | 0x04 | string | Map name 1 |
| 0x08 | 0x04 | string | Map name 2 |
| 0x0C | 0x04 | uint | Size in bytes |
SBTS
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x04 | string | Identifier (SBTS) |
| 0x04 | 0x04 | string | Map name 1 |
| 0x08 | 0x04 | string | Map name 2 |
| 0x0C | 0x04 | uint | Size in bytes |
LGHT (Light)
Parent Node:
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x04 | string | Identifier (LGHT) |
| 0x04 | 0x04 | uint | Size in bytes |
| 0x08 | 0x04 | string | Unknown (Sub node name) |
| 0x0C | 0x04 | uint | Size relativ to 0x08 |
Child Node:
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x04 | string | Identifier (LGHT) |
| 0x04 | 0x04 | uint | Size in bytes |
| 0x08 | 0x04 | float | Unknown |
| 0x0C | 0x02 | ushort | Entry count |
| 0x0E | 0x02 | short | Flag for something (cmp 3) |
| 0x10 | 0x04 | ? | Unknown |
| 0x14 | 0x04 | ? | Unknown |
Child Node Entry (32 bytes):
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x02 | short | Unused? |
| 0x02 | 0x01 | byte | Unknown (same value as 0x00 but used) |
| 0x04 | 0x01 | byte | Unknown |
| 0x06 | 0x01 | byte | Unused? |
| 0x08 | 0x14 | half floats | Unknown |
| 0x1E | 0x02 | short | Unknown |
ECAM
Event Cam. Used when interacting with object (switching camera). Has something to do with HPMa/HPMb.
COLS (Collisions)
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x04 | string | Identifier (COLS) |
| 0x04 | 0x04 | uint | Size in bytes |
Followed by 4 byte string identifier. Example: 0000
COLI
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x04 | string | Identifier (COLI) |
| 0x04 | 0x04 | uint | Size in bytes |
HGHT
EVNT
UNDU
SOND
PROP
WALK
FLDD (Collision Field)
Used often when moving around.
PROP
Header:
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x04 | string | Identifier (PROP) |
| 0x04 | 0x04 | uint | Content offset |
| 0x08 | 0x04 | uint | Footer offset |
Footer:
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x04 | uint | Positions offset |
| 0x04 | 0x0? | ? | Unknown offsets |
DOOR
SCEX
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x04 | string | Identifier (SCEX) |
| 0x04 | 0x04 | uint | Size in bytes |
| 0x08 | 0x04 | string | Scene name? |
| 0x0C | 0x04 | uint | Size in bytes (relative to 0x08) |
TRCK
https://tcrf.net/Shenmue/Source_Code#.5CSCENE.5C99.5CMS08.5CSEQCONV.C
A track contains information for an cutscene.
The track segment has no data itself, it just contains all the child segments which do contain the data.
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x04 | string | Identifier (TRCK) |
| 0x04 | 0x04 | uint | Size in bytes |
ASEQ
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x04 | string | Identifier (ASEQ) |
| 0x04 | 0x04 | uint | Size in bytes |
| 0x08 | 0x04 | ? | Some flags? (0x09 is 7 mostly) |
| 0x0C | 0x04 | uint? | Unknown |
| 0x10 | 0x10 | string | Some .qst file? |
| 0x20 | 0x4 | uint? | Unknown |
| 0x24 | 0x? | TOC |
Table of content entry (12 bytes)
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x01 | byte | Flag? |
| 0x01 | 0x01 | byte | Flag? |
| 0x02 | 0x02 | ? | Reserved? |
| 0x04 | 0x04 | string | Character name and other stuff (props?) |
| 0x08 | 0x04 | uint | Index |
ACAM
Probably camera animation.
AMOV
ASTR
AUVW
LGHC
RFBD
EYES
HAID
HADT
HAND
FACX
FADE
MBTK
FOBJ
FCLP
DOOR
LGHS
SCN3
SCN4
REGD
Empty.
WTHR (Weather)
Used by WEXE ((HLTaskFunc)ExecuteWeather)
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x04 | string | Identifier (WTHR) |
| 0x04 | 0x04 | uint | Size in bytes |
| 0x08 | 0x04 | uint | Unknown |
| 0x0C | 0x04 | uint | Entry count? |
| 0x10 | 0x04 | uint | Entry count? |
| 0x14 | 0x04 | uint | Reserved or Empty |
EVFD
Empty.
LSCN
Empty.
MAPR
MAPT
SCRL
| Position | Length | Type | Description |
|---|---|---|---|
| 0x00 | 0x04 | string | Identifier (SCRL) |
| 0x04 | 0x04 | uint | Size in bytes |
| 0x08 | 0x04 | uint | Either fully F or 0 |
Only present 2 times in sm2, but in sm1 it's common.
CHRD (Character Data)
The CHRD segment contains models character properties that will be loaded for the mapinfo.