EvilEngine/CSN: Difference between revisions

From Heavy Iron Modding
Content added Content deleted
No edit summary
No edit summary
Line 11: Line 11:


===Alignment===
===Alignment===
Header, Raw Data and TimeChunks are all aligned to 2048 bytes.
Header, Raw Data and TimeChunks are all aligned to 2048 bytes.<br>
Entries in TimeChunks are aligned to 16 bytes?


==Format==
==Format==
Line 29: Line 30:
| 0x04 || float || '''EndTime''' ||
| 0x04 || float || '''EndTime''' ||
|-
|-
| 0x08 || uint || '''NumData''' || Number of entries
| 0x08 || uint || '''NumData''' || Number of entries.
|-
|-
| 0x0C || uint || '''ChunkIndex''' || TimeChunk index (starts with 0)
| 0x0C || uint || '''ChunkIndex''' || TimeChunk index (starts with 0).
|}
|}


Line 47: Line 48:
* 7 = JDTA '''(Not present in scooby)'''
* 7 = JDTA '''(Not present in scooby)'''
|-
|-
| 0x04 || [[AssetID]] || '''AssetID''' ||
| 0x04 || [[AssetID]] || '''AssetID''' || AssetID of entry.
|-
|-
| 0x08 || uint || '''ChunkSize''' || Size of data, relative to end of this header
| 0x08 || uint || '''ChunkSize''' || Size of data, relative to end of this header.
|-
|-
| 0x0C || uint || '''FileOffset''' || Starting position of data, relative to end of this header
| 0x0C || uint || '''FileOffset''' || Starting position of data, relative to end of this header.
|}
|}


Line 73: Line 74:
| 0x10 || uint32 || '''RootIndex''' ||
| 0x10 || uint32 || '''RootIndex''' ||
|-
|-
| 0x14 || float[3] || '''Translate''' || Starting position
| 0x14 || float[3] || '''Translate''' || Starting position.
|-
|-
| 0x20 || colspan="3" style="text-align:center" | [[ANIM]]
| 0x20 || colspan="3" style="text-align:center" | [[ANIM]]
Line 87: Line 88:
! 0x00 || colspan="3" | [[#xCutsceneData|xCutsceneData Header]]
! 0x00 || colspan="3" | [[#xCutsceneData|xCutsceneData Header]]
|-
|-
| 0x10 || uint32 || colspan="2" | Amount of cameras/frames
| 0x10 || uint32 || colspan="2" | Amount of frames.
|-
|-
| 0x14 || colspan="3" style="text-align:center" | [[FLY]] in big-endian
| 0x14 || colspan="3" style="text-align:center" | [[FLY]] (Big-Endian on Gamecube)
|}
|}



Revision as of 05:36, 2 August 2022

CSN
Cutscene
TypeBinary
Games usedNight of 100 Frights

Battle for Bikini Bottom
The SpongeBob SquarePants Movie

The Incredibles

Alignment

Header, Raw Data and TimeChunks are all aligned to 2048 bytes.
Entries in TimeChunks are aligned to 16 bytes?

Format

The asset data starts with a main header, which is also present in the CTOC asset.

Raw Data

This section contains all MODL and JDTM assets. Its size and offset are defined in the main header.

TimeChunk

Every timechunk has a 0x10 byte header:

Offset Type Variable Description
0x00 float StartTime
0x04 float EndTime
0x08 uint NumData Number of entries.
0x0C uint ChunkIndex TimeChunk index (starts with 0).

The entries have the following structure:

xCutsceneData
Offset Type Variable Description
0x00 uint DataType
  • 2 = Animation
  • 3 = Camera
  • 4 = MorphTarget (Only present in scooby)
  • 5 = Sound
  • 7 = JDTA (Not present in scooby)
0x04 AssetID AssetID AssetID of entry.
0x08 uint ChunkSize Size of data, relative to end of this header.
0x0C uint FileOffset Starting position of data, relative to end of this header.
Sound
Offset Type Variable Description
0x00 xCutsceneData Header
0x10 SNDS (Scooby/BFBB)
Animation
Offset Type Variable Description
0x00 xCutsceneData Header
0x10 uint32 RootIndex
0x14 float[3] Translate Starting position.
0x20 ANIM
Camera

Camera is different in Night of 100 Frights. This is BFBB/TSSM/Incredibles only.

Offset Type Variable Description
0x00 xCutsceneData Header
0x10 uint32 Amount of frames.
0x14 FLY (Big-Endian on Gamecube)
JDTA
Offset Type Variable Description
0x00 xCutsceneData Header
0x10 Unknown
MorphTarget
Offset Type Variable Description
0x00 xCutsceneData Header
0x10 Unknown
MPHT