LibT2FS 0.1
C API for accessing TEngine data in memory.
Loading...
Searching...
No Matches
ROM structs

Data structures as in file. More...

Data Structures

struct  s_T2FSDataCoordF32
struct  s_T2FSDataWorldCoordF32
struct  s_T2FSDataCoordS32
 yeah.. not kiddin More...
struct  s_T2FSDataCoordS16
struct  s_T2FSDataWorldCoordS16
struct  s_T2FSDataLevelInfo
struct  s_T2FSDataLevel_unk_1_0
struct  s_T2FSDataLevelMeshBuffer
struct  s_T2FSDataLevelMeshIndices
struct  s_T2FSDataRegionBounds
struct  s_T2FSDataLevel_unk_2_x_0
struct  s_T2FSDataLevel_unk_2_x_1
struct  s_T2FSDataScriptedObject
struct  s_T2FSDataLevel_unk_4_0
struct  s_T2FSDataLevel_unk_4_1
struct  s_T2FSDataLevel_unk_4_2
struct  s_T2FSDataLevel_unk_4_3
struct  s_T2FSDataTileBounds
struct  s_T2FSDataTiledObject
struct  s_T2FSDataStaticObject
struct  s_T2FSDataStaticObjectShadow
struct  s_T2FSDataLevelItem
struct  s_T2FSDataLevel_unk_5_x_3
struct  s_T2FSDataLevel_unk_6
struct  s_T2FSDataLevel_unk_7_0
struct  s_T2FSDataLevel_unk_7_1
struct  s_T2FSDataLevel_unk_7_2
struct  s_T2FSDataLevel_unk_7_3
struct  s_T2FSDataModelInfo
struct  s_T2FSDataModelInfoDino
struct  s_T2FSDataBone
struct  s_T2FSDataBoneOrientation
struct  s_T2FSDataBoneOrientationE3
struct  s_T2FSDataAnimationBoneIndices
struct  s_T2FSDataAnimationHeader
struct  s_T2FSDataHotpoint
struct  s_T2FSDataColorRGBA8
struct  s_T2FSDataMaterial
struct  s_T2FSDataVertex
struct  s_T2FSDataSceneHeader
struct  s_T2FSDataSceneHeader_0x48
struct  s_T2FSDataLevelSpawnPoint
struct  s_T2FSDataTextureHeader

Typedefs

typedef struct s_T2FSDataCoordF32 T2FSDataCoordF32
typedef struct s_T2FSDataWorldCoordF32 T2FSDataWorldCoordF32
typedef struct s_T2FSDataCoordS32 T2FSDataCoordS32
 yeah.. not kiddin
typedef struct s_T2FSDataCoordS16 T2FSDataCoordS16
typedef struct s_T2FSDataWorldCoordS16 T2FSDataWorldCoordS16
typedef struct s_T2FSDataLevelInfo T2FSDataLevelInfo
typedef struct s_T2FSDataLevel_unk_1_0 T2FSDataLevel_unk_1_0
typedef struct s_T2FSDataLevelMeshBuffer T2FSDataLevelMeshBuffer
typedef struct s_T2FSDataLevelMeshIndices T2FSDataLevelMeshIndices
typedef struct s_T2FSDataRegionBounds T2FSDataRegionBounds
typedef struct s_T2FSDataLevel_unk_2_x_0 T2FSDataLevel_unk_2_x_0
typedef struct s_T2FSDataLevel_unk_2_x_1 T2FSDataLevel_unk_2_x_1
typedef struct s_T2FSDataScriptedObject T2FSDataScriptedObject
typedef struct s_T2FSDataLevel_unk_4_0 T2FSDataLevel_unk_4_0
typedef struct s_T2FSDataLevel_unk_4_1 T2FSDataLevel_unk_4_1
typedef struct s_T2FSDataLevel_unk_4_2 T2FSDataLevel_unk_4_2
typedef struct s_T2FSDataLevel_unk_4_3 T2FSDataLevel_unk_4_3
typedef struct s_T2FSDataTileBounds T2FSDataTileBounds
typedef struct s_T2FSDataTiledObject T2FSDataTiledObject
typedef struct s_T2FSDataStaticObject T2FSDataStaticObject
typedef struct s_T2FSDataStaticObjectShadow T2FSDataStaticObjectShadow
typedef struct s_T2FSDataLevelItem T2FSDataLevelItem
typedef struct s_T2FSDataLevel_unk_5_x_3 T2FSDataLevel_unk_5_x_3
typedef struct s_T2FSDataLevel_unk_6 T2FSDataLevel_unk_6
typedef struct s_T2FSDataLevel_unk_7_0 T2FSDataLevel_unk_7_0
typedef struct s_T2FSDataLevel_unk_7_1 T2FSDataLevel_unk_7_1
typedef struct s_T2FSDataLevel_unk_7_2 T2FSDataLevel_unk_7_2
typedef struct s_T2FSDataLevel_unk_7_3 T2FSDataLevel_unk_7_3
typedef struct s_T2FSDataModelInfo T2FSDataModelInfo
typedef struct s_T2FSDataModelInfoDino T2FSDataModelInfoDino
typedef struct s_T2FSDataBone T2FSDataBone
typedef struct s_T2FSDataBoneOrientation T2FSDataBoneOrientation
typedef struct s_T2FSDataBoneOrientationE3 T2FSDataBoneOrientationE3
typedef struct s_T2FSDataAnimationBoneIndices T2FSDataAnimationBoneIndices
typedef struct s_T2FSDataAnimationHeader T2FSDataAnimationHeader
typedef struct s_T2FSDataHotpoint T2FSDataHotpoint
typedef struct s_T2FSDataColorRGBA8 T2FSDataColorRGBA8
typedef struct s_T2FSDataMaterial T2FSDataMaterial
typedef struct s_T2FSDataVertex T2FSDataVertex
typedef struct s_T2FSDataSceneHeader T2FSDataSceneHeader
typedef struct s_T2FSDataSceneHeader_0x48 T2FSDataSceneHeader_0x48
typedef struct s_T2FSDataLevelSpawnPoint T2FSDataLevelSpawnPoint
typedef struct s_T2FSDataTextureHeader T2FSDataTextureHeader

Detailed Description

Data structures as in file.

All defined structs that are as in file (possible after decompression and/or deinterleaving) are prefixed with T2FSData

Typedef Documentation

◆ T2FSDataCoordF32

◆ T2FSDataWorldCoordF32

◆ T2FSDataCoordS32

yeah.. not kiddin

◆ T2FSDataCoordS16

This is a test ..

◆ T2FSDataWorldCoordS16

This is a test ..

◆ T2FSDataLevelInfo

◆ T2FSDataLevel_unk_1_0

These have almost always the same values, not that interesting?

Entry from interleaved T2FSArray (after deinterleaving)

◆ T2FSDataLevelMeshBuffer

Entry from interleaved T2FSArray (after deinterleaving)

◆ T2FSDataLevelMeshIndices

Entry from interleaved T2FSArray (after deinterleaving)

◆ T2FSDataRegionBounds

Very likely these are the region bounds (region indices from scenes indicate that).

Entry from interleaved T2FSArray (after deinterleaving)

◆ T2FSDataLevel_unk_2_x_0

◆ T2FSDataLevel_unk_2_x_1

◆ T2FSDataScriptedObject

It looks like all the used models have at least one bone and one pose. So these are probably scripted objects.

Entry from interleaved T2FSArray (after deinterleaving)

Looks the same as T2FSDataRegionObject except that it's 12 bytes shorter (missing between scale and modelId).

◆ T2FSDataLevel_unk_4_0

◆ T2FSDataLevel_unk_4_1

◆ T2FSDataLevel_unk_4_2

◆ T2FSDataLevel_unk_4_3

◆ T2FSDataTileBounds

These seem to define a tile inside the grid.

Entry from T2FSArray.

◆ T2FSDataTiledObject

These are basic static models that make up most of the levels, their position is calculated with the level it's grid multiplier for the x and y axis. For the z axis we have to multiply the given value with a constant (approx 5.12f). The z axis rotation is in steps of 90 degrees.

TODO on T2FS_FILE_PC_SEEDS_OF_EVIL_MP it's different

https://ultra64.ca/files/documentation/online-manuals/man/pro-man/pro24/index24.1.html

Entry from T2FSArray.

◆ T2FSDataStaticObject

Mountains, trees, buildings, cars and stuff

on Turok2Demo.lss it's 56 in size, that's 4 more..

Entry from interleaved T2FSArray (after deinterleaving)

◆ T2FSDataStaticObjectShadow

Mountains, trees, buildings, cars and stuff

For Turok2Demo.lss and N64 Shadow of Oblivion

Entry from interleaved T2FSArray (after deinterleaving)

◆ T2FSDataLevelItem

Level items (pickups)

Entry from T2FSArray.

◆ T2FSDataLevel_unk_5_x_3

Is this the groud mesh?

Entry from interleaved T2FSArray (after deinterleaving)

◆ T2FSDataLevel_unk_6

◆ T2FSDataLevel_unk_7_0

◆ T2FSDataLevel_unk_7_1

◆ T2FSDataLevel_unk_7_2

◆ T2FSDataLevel_unk_7_3

◆ T2FSDataModelInfo

◆ T2FSDataModelInfoDino

FIXME these are guesses just to see what happends..

◆ T2FSDataBone

typedef struct s_T2FSDataBone T2FSDataBone

◆ T2FSDataBoneOrientation

◆ T2FSDataBoneOrientationE3

◆ T2FSDataAnimationBoneIndices

/root/0/ModelID/2/PoseID/1/data

This is hypothetical.. TODO

It is guessed that these indices might be useful with 0/x/2/x/5/1/data and 0/x/2/x/5/2/data

◆ T2FSDataAnimationHeader

/root/0/ModelID/2/PoseID/5/0/data

This struct is for Seeds of Evil. South Park is lacking the last 8 bytes.

This is hypothetical.. TODO

◆ T2FSDataHotpoint

◆ T2FSDataColorRGBA8

◆ T2FSDataMaterial

find dumps/seeds/0/ | grep -P "seeds/0/([0-9]+)/1/2/([0-9]+)/([0-9]+)/0/data" | xargs -n1 xxd -c24

◆ T2FSDataVertex

◆ T2FSDataSceneHeader

xxd -c76 -seek 8 dumps/seeds/18/0/data
xxd -c72 -seek 8 dumps/southpark/17/0/data
  • Seeds of Evil.lss - 76 bytes in size
  • win32.dat - 72 bytes in size

◆ T2FSDataSceneHeader_0x48

As in South Park (four bytes shorter then in Seeds of Evil).

See also
s_T2FSDataSceneHeader

◆ T2FSDataLevelSpawnPoint

◆ T2FSDataTextureHeader