EvilEngine/CSN: Difference between revisions
no edit summary
EnergyDrink (talk | contribs) No edit summary |
EnergyDrink (talk | contribs) No edit summary |
||
Line 10:
{{AutoAssetInfobox}}
==Format==
===Header===
CSN starts with a header, which is also present in the [[CTOC]] asset (without padding bytes).
====xCutsceneInfo====
{| class="wikitable"
|-
! Offset !! Type !! Variable !! Description
|-
| 0x00 || uint || '''Magic''' ||
* '''CTSN''' (Xbox/PlayStation 2) (little-endian)
* '''NSTC''' (GameCube) (big-endian)
|-
| 0x04 || uint || '''AssetID''' || AssetID of CSN.
|-
| 0x08 || uint || '''NumData''' || Amount of '''xCutsceneData''' entries.
|-
| 0x0C || uint || '''NumTime''' || Amount of '''xCutsceneTime''' entries.
|-
| 0x10 || uint || '''MaxModel''' || Largest model in bytes (+padding bytes) in xCutsceneData.
|-
| 0x14 || uint || '''MaxBufEven''' || Largest timechunk in bytes (+padding bytes), usually the first one.
|-
| 0x18 || uint || '''MaxBufOdd''' || Largest timechunk in bytes (+padding bytes).
|-
| 0x1C || uint || '''HeaderSize''' || Size of header.
|-
| 0x20 || uint || '''VisCount''' || Amount of visibility entries.
|-
| 0x24 || uint || '''VisSize''' || Total size of all visibility entries.
|-
| 0x28 || uint || '''BreakCount''' || Amount of '''xCutsceneBreak''' entries.
|-
| 0x2C || uint || '''pad''' || ''null''
|-
| 0x30 || byte[16] || '''SoundLeft''' || '''Only present in Scooby/BFBB'''
|-
| 0x40 || byte[16] || '''SoundRight''' || ''null'' '''(Only present in Scooby/BFBB)'''
|}
====xCutsceneData====
* If ChunkSize and FileOffset are 0, an external [[MODL]] is used within the HOP.
* Every model has padding - 0x00 bytes at the end, 2048 byte alignment.
{| class="wikitable"
|-
! Offset !! Type !! Variable !! Description
|-
| 0x00 || uint || '''DataType''' ||
* 1 = [[MODL]]
* 6 = JDTM '''(Not present in Scooby)'''
|-
| 0x04 || [[AssetID]] || '''AssetID''' || AssetID of model.
|-
| 0x08 || uint || '''ChunkSize''' || Size of model.
|-
| 0x0C || uint || '''FileOffset''' || Offset to model.
|}
====xCutsceneTime====
{| class="wikitable"
|-
! Offset !! Type !! Variable !! Description
|-
| 0x00 || uint || '''TimeChunkOffs''' || Offset to TimeChunk
|}
====Visibility====
{| class="wikitable"
|-
! Offset !! Type !! Variable !! Description
|-
| 0x00 || uint || '''Visibility''' ||
|}
====xCutsceneBreak====
{| class="wikitable"
|-
! Offset !! Type !! Variable !! Description
|-
| 0x00 || float || '''Time''' ||
|-
| 0x04 || int || '''Index''' ||
|}
===
Padding - 0x00 bytes, 2048 byte alignment.
===TimeChunk===
{| class="wikitable"
|-
! Offset !! Type !! Variable !! Description
|-
| 0x00 || float || '''StartTime''' ||
|-
| 0x04 || float || '''EndTime''' ||
Line 32 ⟶ 109:
| 0x08 || uint || '''NumData''' || Number of entries.
|-
| 0x0C || uint || '''ChunkIndex''' || TimeChunk index
|}
====xCutsceneData====
Each entry has this 0x10 byte header:
{| class="wikitable"
|-
Line 54 ⟶ 131:
| 0x0C || uint || '''FileOffset''' || Starting position of data, relative to end of this header.
|}
Every entry has padding - 0x00 bytes at the end, 16 byte alignment.
=====Sound=====
[[Sound_Format|SNDS]]
=====Animation=====
Line 70 ⟶ 142:
! Offset !! Type !! Variable !! Description
|-
|-
|
|-
| 0x10 || colspan="3" style="text-align:center" | [[ANIM]]
|}
=====Camera=====
(BFBB/TSSM/Incredibles only)
{| class="wikitable"
|-
! Offset !! Type !! Variable !! Description
|-
|-
|
|}
=====JDTA=====
Unknown
=====MorphTarget=====
Unknown
====Padding====
Padding - 0x00 bytes, 2048 byte alignment.
|