MAPINFO

From Wulinshu
Jump to navigation Jump to search

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)

LGHT (Light)

(HLTaskFunc)LT_LightTask

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.

END