EvilEngine/CSN: Difference between revisions

From Heavy Iron Modding
Content added Content deleted
No edit summary
(Add JDTM, MorphTarget and other small fixes)
 
(8 intermediate revisions by 2 users not shown)
Line 4: Line 4:
{{#vardefine:type|[[Binary]]}}<nowiki/>
{{#vardefine:type|[[Binary]]}}<nowiki/>
{{#vardefine:basetype|}}<nowiki/>
{{#vardefine:basetype|}}<nowiki/>
{{#vardefine:games|Scooby BFBB TSSM Incredibles}}<nowiki/>
{{#vardefine:games|Scooby BFBB TSSM Incredibles ROTU}}<nowiki/>
{{#vardefine:sourcecode|}}<nowiki/>
{{#vardefine:sourcecode|}}<nowiki/>
{{#vardefine:image|}}<nowiki/>
{{#vardefine:image|}}<nowiki/>
Line 10: Line 10:
{{AutoAssetInfobox}}
{{AutoAssetInfobox}}


==Format: Header==
Because cutscenes can be quite big in size, they are loaded in chunks into RAM and therefore are aligned to 2048/800h byte boundary.


==Format==
===Header===
CSN starts with a header, which is also present in the [[CTOC]] asset (without padding bytes).
CSN starts with a header, which is also present in the [[CTOC]] asset (without padding bytes).

====xCutsceneInfo====
====xCutsceneInfo====
This xCutsceneInfo header is 0x50 bytes in Scooby/BFBB, 0x830 bytes in TSSM and 0x1030 bytes in The Incredibles long.
{| class="wikitable"
{| class="wikitable"
|-
|-
! Offset !! Type !! Variable !! Description
! Offset !! Type !! Variable !! Description
|-
|-
| 0x00 || uint || '''Magic''' ||
| 0x00 || u32 || '''Magic''' ||
* '''CTSN''' (Xbox/PlayStation 2) (little-endian)
* '''CTSN''' (Xbox/PlayStation 2, little-endian)
* '''NSTC''' (GameCube) (big-endian)
* '''NSTC''' (GameCube, big-endian)
|-
|-
| 0x04 || uint || '''AssetID''' || AssetID of CSN.
| 0x04 || [[AssetID]] || '''AssetID''' || AssetID of CSN.
|-
|-
| 0x08 || uint || '''NumData''' || Amount of '''xCutsceneData''' entries.
| 0x08 || u32 || '''NumData''' || Amount of '''xCutsceneData''' entries.
|-
|-
| 0x0C || uint || '''NumTime''' || Amount of '''xCutsceneTime''' entries.
| 0x0C || u32 || '''NumTime''' || Amount of '''xCutsceneTime''' entries. Last offset is end of file and not counted into this.
|-
|-
| 0x10 || uint || '''MaxModel''' || Largest model in bytes (+padding bytes) in xCutsceneData.
| 0x10 || u32 || '''MaxModel''' || Largest model in bytes (+padding) in [[#Models|Models]].
|-
|-
| 0x14 || uint || '''MaxBufEven''' || Largest timechunk in bytes (+padding bytes), usually the first one.
| 0x14 || u32 || '''MaxBufEven''' || Largest timechunk with an even ChunkIndex in bytes (+padding), usually the first one.
|-
|-
| 0x18 || uint || '''MaxBufOdd''' || Largest timechunk in bytes (+padding bytes).
| 0x18 || u32 || '''MaxBufOdd''' || Largest timechunk with an odd ChunkIndex in bytes (+padding).
|-
|-
| 0x1C || uint || '''HeaderSize''' || Size of header.
| 0x1C || u32 || '''HeaderSize''' || Size of header.
|-
|-
| 0x20 || uint || '''VisCount''' || Amount of visibility entries.
| 0x20 || u32 || '''VisCount''' || Amount of '''Visibility''' entries
|-
|-
| 0x24 || uint || '''VisSize''' || Total size of all visibility entries.
| 0x24 || u32 || '''VisSize''' || Total size of all visibility entries, measured in 4-byte steps. To determine the number of entries within the 2D array (columns), divide this by '''VisCount'''.
|-
|-
| 0x28 || uint || '''BreakCount''' || Amount of '''xCutsceneBreak''' entries.
| 0x28 || u32 || '''BreakCount''' || Amount of '''xCutsceneBreak''' entries.
|-
|-
| 0x2C || uint || '''pad''' || ''null''
| 0x2C || u32 || '''pad''' || ''null''
|-
|-
| 0x30 || byte[16] || '''SoundLeft''' || '''Only present in Scooby/BFBB'''
! 0x30 || || || Night of 100 Frights/Battle for Bikini Bottom
|-
|-
| 0x40 || byte[16] || '''SoundRight''' || ''null'' '''(Only present in Scooby/BFBB)'''
| 0x30 || char[16] || '''SoundLeft''' ||
|-
| 0x40 || char[16] || '''SoundRight''' || ''null''
|-
! 0x30 || xCutsceneAudioTrack[32] || '''AudioTracks''' || The SpongeBob SquarePants Movie
|-
| 0x00 || u32 || '''uLeftSoundId''' ||
|-
| 0x04 || u32 || '''uRightSoundId''' ||
|-
| 0x08 || char[28] || '''szLeftSound''' ||
|-
| 0x24 || char[28] || '''szRightSound''' ||
|-
! 0x30 || xCutsceneAudioTrack[32] || '''AudioTracks''' || The Incredibles
|-
| 0x00 || u32 || '''uLeftSoundId''' ||
|-
| 0x04 || u32 || '''uRightSoundId''' ||
|-
| 0x08 || char[60] || '''szLeftSound''' ||
|-
| 0x44 || char[60] || '''szRightSound''' ||
|}
|}


====xCutsceneData====
====xCutsceneData[]====
* If ChunkSize and FileOffset are 0, an external [[MODL]] is used within the HOP.
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"
{| class="wikitable"
|-
|-
! Offset !! Type !! Variable !! Description
! Offset !! Type !! Variable !! Description
|-
|-
| 0x00 || uint || '''DataType''' ||
| 0x00 || u32 || '''DataType''' ||
* 1 = [[MODL]]
* 1 = Renderware Model
* 6 = JDTM '''(Not present in Scooby)'''
* 6 = JDTM (JDeltaModel) '''(Not present in Scooby)'''
|-
|-
| 0x04 || [[AssetID]] || '''AssetID''' || AssetID of model.
| 0x04 || [[AssetID]] || '''AssetID''' || AssetID of model.
|-
|-
| 0x08 || uint || '''ChunkSize''' || Size of model.
| 0x08 || u32 || '''ChunkSize''' || Size of model.
|-
|-
| 0x0C || uint || '''FileOffset''' || Offset to model.
| 0x0C || u32 || '''FileOffset''' || Offset to model.
|}
|}


Line 73: Line 96:
! Offset !! Type !! Variable !! Description
! Offset !! Type !! Variable !! Description
|-
|-
| 0x00 || uint || '''TimeChunkOffs''' || Offset to TimeChunk
| 0x00 || u32[] || '''TimeChunkOffs''' || Offsets to TimeChunks
|}
|}


Line 81: Line 104:
! Offset !! Type !! Variable !! Description
! Offset !! Type !! Variable !! Description
|-
|-
| 0x00 || uint || '''Visibility''' ||
| 0x00 || u32[VisCount][VisSize/VisCount] || '''Visibility''' ||
|}
|}


====xCutsceneBreak====
====xCutsceneBreak[]====
{| class="wikitable"
{| class="wikitable"
|-
|-
! Offset !! Type !! Variable !! Description
! Offset !! Type !! Variable !! Description
|-
|-
| 0x00 || float || '''Time''' ||
| 0x00 || f32 || '''Time''' ||
|-
|-
| 0x04 || int || '''Index''' ||
| 0x04 || s32 || '''Index''' ||
|}
|}


====Padding====
Padding - 0x00 bytes, 2048 byte alignment.


===TimeChunk===
==Models==
Following the header section, the subsequent content comprises Renderware clump and JDTM models.

===JDTM===
{| class="wikitable"
|-
! Offset !! Type !! Variable !! Description
|-
| 0x00 || char[4] || Magic || "JDTM" in ASCII
|-
| 0x04 || u32 || amountTargets || Amount of JDeltaTarget entries
|-
| 0x08 || '''JDeltaTarget[amountTargets]''' || targets || Array of JDeltaTarget's
|}


{| class="wikitable"
|+ JDeltaTarget
|-
! Offset !! Type !! Variable !! Description
|-
| 0x00 || s32 || '''skipSize''' || Total size of this structure
|-
| 0x04 || s32 || '''numRuns''' || Amount of JDeltaRun entries.
|-
| 0x08 || s32 || '''numVerts''' || Amount of vertices.
|-
| 0x0C || f32 || '''scale''' ||
|-
| 0x10 || '''JDeltaRun[numRuns]''' || '''runs''' ||
|-
! colspan="4" | 00h padding bytes (16-byte boundary)
|-
| || f32[numVerts][3] or s16[numVerts][3] || Vertices || If scale is 0, this array consists of 3 float values. If scale is > 0, this array consists of 3 signed short integers (aligned to 4-byte boundary).
|}

{| class="wikitable"
|+ JDeltaRun
|-
! Offset !! Type !! Variable !! Description
|-
| 0x00 || s32 || '''VertIdx''' ||
|-
| 0x04 || s32 || '''VertCt''' ||
|}


==Format: TimeChunk==
Each timechunk has a 0x10 byte header:
Each timechunk has a 0x10 byte header:
{| class="wikitable"
{| class="wikitable"
Line 103: Line 171:
! Offset !! Type !! Variable !! Description
! Offset !! Type !! Variable !! Description
|-
|-
| 0x00 || float || '''StartTime''' ||
| 0x00 || f32 || '''StartTime''' ||
|-
|-
| 0x04 || float || '''EndTime''' ||
| 0x04 || f32 || '''EndTime''' ||
|-
|-
| 0x08 || uint || '''NumData''' || Number of entries.
| 0x08 || u32 || '''NumData''' || Number of entries.
|-
|-
| 0x0C || uint || '''ChunkIndex''' || TimeChunk index.
| 0x0C || u32 || '''ChunkIndex''' || Zero-based TimeChunk index.
|}
|}



====xCutsceneData====
====xCutsceneData====
Each entry has this 0x10 byte header:
Every entry is 16-byte aligned and has this header:
{| class="wikitable"
{| class="wikitable"
|-
|-
! Offset !! Type !! Variable !! Description
! Offset !! Type !! Variable !! Description
|-
|-
| 0x00 || uint || '''DataType''' ||
| 0x00 || u32 || '''DataType''' ||
* 2 = Animation
* 2 = Animation
* 3 = Camera
* 3 = Camera
* 4 = MorphTarget '''(Only present in scooby)'''
* 4 = MorphTarget '''(Only present in scooby)'''
* 5 = Sound
* 5 = Sound
* 7 = JDTA '''(Not present in scooby)'''
* 7 = JDTA (JDeltaAnim) '''(Not present in scooby)'''
|-
|-
| 0x04 || [[AssetID]] || '''AssetID''' || AssetID of entry.
| 0x04 || [[AssetID]] || '''AssetID''' || AssetID of entry.
|-
|-
| 0x08 || uint || '''ChunkSize''' || Size of data, relative to end of this header.
| 0x08 || u32 || '''ChunkSize''' || Size of data, relative to end of this header.
|-
|-
| 0x0C || uint || '''FileOffset''' || Starting position of data, relative to end of this header.
| 0x0C || u32 || '''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=====
TODO
[[Sound_Format|SNDS]]


=====Animation=====
=====Animation=====
Line 142: Line 209:
! Offset !! Type !! Variable !! Description
! Offset !! Type !! Variable !! Description
|-
|-
| 0x00 || uint || '''RootIndex''' ||
| 0x00 || u32 || '''RootIndex''' ||
|-
|-
| 0x04 || float[3] || '''Translate''' || Starting position?
| 0x04 || f32[3] || '''Translate''' || Starting position?
|-
|-
| 0x10 || colspan="3" style="text-align:center" | [[ANIM]]
| 0x10 || colspan="3" style="text-align:center" | [[ANIM]]
Line 150: Line 217:


=====Camera=====
=====Camera=====
(BFBB/TSSM/Incredibles only)
{| class="wikitable"
{| class="wikitable"
|+ '''Night of 100 Frights'''
|-
|-
! Offset !! Type !! Variable !! Description
! Offset !! Type !! Description
|-
|-
| 0x00 || uint || colspan="2" | Amount of frames.
| 0x00 || u32 || '''Unknown'''
|-
|-
| 0x04 || f32[3] || '''Position'''
| 0x04 || colspan="3" style="text-align:center" | [[FLY]] (big-endian on GameCube)
|-
| 0x10 || u32 || '''Amount''' frames
|-
| 0x14 || f32[amountFrames][2] ||
* First float: Time
* Second float: Focal length?
|-
| 0x14 + (8*amountFrames) || [[ANIM]] ||
|}

{| class="wikitable"
|+ '''BFBB, TSSM and The Incredibles'''
|-
! Offset !! Type !! Description
|-
| 0x00 || u32 || '''Amount''' of frames.
|-
| 0x04 || [[EvilEngine/FLY|FLY]] || Big-endian on GameCube
|}
|}


=====JDTA=====
=====JDTA=====
{| class="wikitable"
Unknown
! Offset !! Type !! Description
|-
| 0x00 || char[4] || "JDTA" in ASCII
|-
| 0x04 || u32 || '''Amount''' of time entries (and rows in 2D array).
|-
| 0x08 || u32 || '''Amount''' of columns in 2D array.
|-
| 0x0C || f32[] || '''Array''' of time floats.
|-
| 0x0C + (4*amount times) || f32[][] || '''2D-Array''' for every time frame with unknown values inside.
|}


=====MorphTarget=====
=====MorphTarget=====
{| class="wikitable"
Unknown
! Offset !! Type !! Variable !! Description
|-
| 0x00 || u32 || amountFrames ||
|-
! 0x04 || xCutsceneMphFrame[] || || Aligned to 16-byte boundary
|-
| 0x00 || f32 || '''Time''' ||
|-
| 0x04 || u32 || '''Flags''' ||
|-
! colspan="4" |
|-
| colspan="4" style="text-align:center" | [[EvilEngine/MPHT|MPHT]]
|}

==AssetID List==
The following is a list of every model inside the cutscene file and their corresponding name. Some names are still unknown.

<div class="mw-collapsible mw-collapsed">
===Night of 100 Frights===
<div class="mw-collapsible-content">
<pre>
-cin_4 [G009]
B2E286A1
C598E7C1 = da_skel_c4.dff
8DAF19AC = gs_skel_c4.dff
82DED3F8 = mm_skel_c4.dff
F09843E3
-cin_5 [G009]
7F97B5C8 = cwc_skel_c5.dff
C7AECAC2 = sd_skel_c5.dff
7336A443
F8BC4AEF = umbrella_c5.dff
9676FA5C
91230C4F = icetray.dff
D7269E12 = da_skel_c5.dff
99E42016 = trap_skel_c5.dff
B0D74A8C = ho_skel_c5.dff
-cin_1 [H001]
9EF3E3B9 = ve_skel.dff
14A6D84B = da_skel.dff
45B60259 = ho_skel.dff
7C85EA4F = tree3.dff
E7EA265C = front3.dff
6AF833FE = tree2.dff
5912DBD0 = side1.dff
F97180A9 = van_skel.dff
B2E286A1
E5FA06E7 = sh_skel.dff
F390BB30 = fr_skel.dff
3DF2CCA8 = background.dff
34351E38 = snack4.dff
45C2D489 = snack5.dff
1119B196 = snack2.dff
22A767E7 = snack3.dff
3927B5B3
CDD61238 = branch.dff
FF8BFB45 = snack1.dff
-cin_2 [O008]
B2E286A1
102F7CB9 = ve_skel_c2.dff
5FC36756 = mm_skel_c2.dff
8171F6ED = bk_bind.dff
C9561D16 = cage_skel_c2.dff
-cin_3 [O008]
CD970A98
ADE66B98
98EDE7A5
A4935E20 = sd_skel_c3.dff
F10CEA55 = pr_skel_c3.dff
21BD330A = ve_skel_c3.dff
BC095447
AA7B9DF6
FC68B961 = foreground.dff
3DF2CCA8 = background.dff
F124BDA5
DAE3D367 = cage_skel_c3.dff
-cin_sh_barrel [P004]
FF67FEB4
99CA4705
E5FA06E7 = sh_skel.dff
E81E7C42
A9D84953
-cin_10 [S005]
25A1D113 = mm_skel_c10.dff
B2E286A1
-cin_8 [S005]
E5806D7F = ho_skel_c8.dff
0BCFC105 = da_skel_c8.dff
7F1502AC = fr_skel_c8.dff
7981C29F = ve_skel_c8.dff
FC57EDB5 = sd_skel_c8.dff
FEE9E579 = sh_skel_c8.dff
-cin_9 [S005]
F70E23D0 = ho_skel_c9.dff
90A2B8FD = fr_skel_c9.dff
1D5D7756 = da_skel_c9.dff
8B0F78F0 = ve_skel_c9.dff
0DE5A406 = sd_skel_c9.dff
10779BCA = sh_skel_c9.dff

-cin_mm_post_death [S005]
F286E81B
613B51AA = card.dff
C63A3E7A = tube.dff
-cin_mm_scare [S005]
9EF3E3B9 = ve_skel.dff
14A6D84B = da_skel.dff
45B60259 = ho_skel.dff
A02FABE0 = mm_skel.dff
70217815 = platform.dff
E5FA06E7 = sh_skel.dff
F390BB30 = fr_skel.dff
14F89DCC = rail.dff
-cin_11 [S006, XBOX only]
73F1326D
613B51AA = card.dff
3F99D19B = clue2.dff
5D42585E
512787EC = clue3.dff
6ED00EAF
AB96C02D = gr_skel_c11.dff
58D83FB4 = fr_skel_c11.dff
9449446E = pr_skel_c11.dff
2E0C1B4A = clue1.dff
4BB4A20D
C1CFE9AD = ho_skel_c11.dff
C7CAE26D
372F8764 = mm_skel_c11.dff
15B13325 = h_table.dff
58C2A454
427114CC = mask_skel_c11.dff
74DC995B
6D02D666
797334FD
C2C84E9B = sh_skel_c11.dff
96149BC9
992C359C
6DA9C57F
7E7E790D = ve_skel_c11.dff
7EA9FFF4 = tube_skel_c11.dff
7216854F = sd_skel_c11.dff
A7566BB4 = projector_skel_c11.dff
B8F81540
5C67A73F = da_skel_c11.dff
-cin_6 [W028]
43C712DE = rb_skel_c6.dff
D93C8113 = sd_skel_c6.dff
FCF22045
5E233602 = barrel02.dff
2763282C
4EDDE2E9 = toprope.dff
D2FAB2DC = fd_skel_c6.dff
07938B08 = stairs.dff
44BAC0AF = lifesaver.dff
A5FA409A = mm_skel_c6.dff
31FD43A6
-cin_7 [W028]
88C64D35 = cheese6.dff
EACA3764 = sd_skel_c7.dff
ED5C2F28 = sh_skel_c7.dff
65AAE093 = cheese4.dff
67F40C4E = ve_skel_c7.dff
33D81964 = piece4.dff
773896E4 = cheese5.dff
428F73F1 = cheese2.dff
ADC40D04 = fish2.dff
0F407AA8 = cake2.dff
19E61B40 = loop2.dff
10BCACC2 = piece2.dff
541D2A42 = cheese3.dff
5E233602 = barrel02.dff
224A6313 = piece3.dff
DB3D79FC = sandwich1.dff
7880E019 = peice1.dff
3101BDA0 = cheese1.dff
9C3656B3 = fish1.dff
FDB2C457 = cake1.dff
085864EF = loop1.dff
551CE869
FDF43B7F
5038E533
6D874C5B = fr_skel_c7.dff
61C69B84
FB46D344 = gh_skel_c7.dff
07938B08 = stairs.dff
2823F911
082AF84D = drumstick1.dff
89E0864B
7852CFFA
8FA520B4
A64AF63D
169642C0
19B8AE9E = drumstick2.dff
</pre></div></div>

<div class="mw-collapsible mw-collapsed">
===Battle for Bikini Bottom===
<div class="mw-collapsible-content>
<pre>
-b1_open [B101]
19B3F661 = news_skel.dff
CB7037E3 = king_neptune_skel.dff
EAB142DF = sandy_bot_skel.dff
EEF23E95 = sb_skel.dff
E7B7032A = patrick_skel.dff

-b1_round2 [B101]
EEC1DD72 = scoreboard.dff
EEF23E95 = sb_skel.dff
E7B7032A = patrick_skel.dff

-b1_round3 [B101]
EEF23E95 = sb_skel.dff
E7B7032A = patrick_skel.dff

-b1_ending [B101]
19B3F661 = news_skel.dff
CB7037E3 = king_neptune_skel.dff
EAB142DF = sandy_bot_skel.dff
4C039C0D = golden_spatula_golden_spatula.dff
EEF23E95 = sb_skel.dff
E7B7032A = patrick_skel.dff
-b2_open [B201]
873173AC
CE6C11AF = boss.dff
BDDE5529 = spongebob.dff
1D5AA8B0 = squidward.dff
5DEB2C3E = icecube.dff
6F7F2327 = sandy.dff

-b2_round2 [B201]
C58FBA9D = group4_SB_frozen1.dff
873173AC
CE6C11AF = boss.dff
5DEB2C3E = icecube.dff
581C8370
6F7F2327 = sandy.dff

-b2_round3 [B201]
E8FCA8BF = group6_bubble_bowlingball1.dff
1F278F15 = goo_skel.dff
BEE66906 = handle.dff
CE6C11AF = boss.dff
97A2A315
BDDE5529 = spongebob.dff
D1EDEEAA = group6_chunk1.dff
E37BA4FB = group6_chunk2.dff
F5095B4C = group6_chunk3.dff
1D5AA8B0 = squidward.dff
FF1EBBF4
6C130598
6F7F2327 = sandy.dff

-b2_ending [B201]
1F278F15 = goo_skel.dff
CE6C11AF = boss.dff
BDDE5529 = spongebob.dff
DD70AFB2 = squidward_skel.dff
6F7F2327 = sandy.dff

-B3_open [B302]
BA272258 = mime_skel.dff
CC46C1ED = dupe_duplicatotron3001_skel2.dff
8EB6570A = sb_karate_skel.dff
1B5BC0B9 = plankton_boss_skel.dff
46109027 = sandy_skel.dff
DD70AFB2 = squidward_skel.dff
38482557
EEF23E95 = sb_skel.dff
E7B7032A = patrick_skel.dff
6C6AF9E3 = karen_skel.dff
C60604A3 = plankton_skel.dff

-B3_transition [B302]
01CFF3B0 = sb_big_skel.dff
8EB6570A = sb_karate_skel.dff
1B5BC0B9 = plankton_boss_skel.dff
3ADE96C2 = platform02_platform_b301_boss.dff
4C40CEF7 = platform01_platform_b301_boss.dff
46109027 = sandy_skel.dff
DD70AFB2 = squidward_skel.dff
EEF23E95 = sb_skel.dff
E7B7032A = patrick_skel.dff
6C6AF9E3 = karen_skel.dff
C60604A3 = plankton_skel.dff
37182A4C = duplicatotron3001_skel.dff

-B3_end_game_win [B303]
01CFF3B0 = sb_big_skel.dff
1B5BC0B9 = plankton_boss_skel.dff
46109027 = sandy_skel.dff
DD70AFB2 = squidward_skel.dff
38482557
EEF23E95 = sb_skel.dff
E7B7032A = patrick_skel.dff
6C6AF9E3 = karen_skel.dff
80B211B7 = sb_big_armr_skel.dff
89AA4965 = sb_big_arml_skel.dff
C60604A3 = plankton_skel.dff
37182A4C = duplicatotron3001_skel.dff
-cin_glove [BB01]
C3E9D2BD = fish_f.dff
4A508ABB
AF72467B = gary.dff
FC9FE2B3 = glove2.dff
EB122C62 = glove1.dff

-cin_chuck [BB02]
BEE9319C = bomb.dff
E389D856 = fish_g_01.dff
A6F1332A = shadow.dff
21D10872 = chuck.dff
CDC26722 = proj_missile.dff

-cin_arf_intro [BC01]
A20322A8 = arf_dog.dff
CC0B8B7D = hook2.dff
DD9941CE = hook3.dff
BA7DD52C = hook1.dff
286622B3 = arf_skel.dff
8B147E65 = arf_bone1.dff

-cin_prawn_opening [BC05]
5A8AD591 = barnacle_boy_skel.dff
CEB5ED08 = prawn.dff
EEF23E95 = sb_skel.dff
229D1D0C = mermaid_man_skel.dff

-cin_prawn_ending [BC05]
CBD62B3A = prawn_skel.dff
A05EC923
5A8AD591 = barnacle_boy_skel.dff
EEF23E95 = sb_skel.dff
FD9BF34B
229D1D0C = mermaid_man_skel.dff
-cin_monsoon [GL01]
F7A5B367 = cloud.dff
8CFA41B8
D70E1E66 = fried_fish_h.dff
E7053F5F = fish_h.dff
-cin_slick [GY01]
54709D95
869328D7
3B45C4B0
24ED7263
AA4AFDE4
40B29FAA
F5653B83
0E901468
72D52AEC
3E51677D
F02B8711
EB953B9A = fish_a_skel.dff
D92C5D64
F6A5A508 = slick_skel.dff
EEF23E95 = sb_skel.dff
67191FC3 = fish_d_skel.dff
6E30D2DC

-GY_dutchman_open [GY04]
0BF9646E = flag.dff
41A13BE3 = spatula_golden_spatula.dff
46109027 = sandy_skel.dff
32B65AD6 = dutchman_skel.dff
EEF23E95 = sb_skel.dff
82E9EDF7 = robot_ship_skel.dff

-GY_dutchman_end [GY04]
51E90D95 = group12_golden_spatula.dff
46109027 = sandy_skel.dff
32B65AD6 = dutchman_skel.dff
D19A5D40 = group12_bubble1.dff
EEF23E95 = sb_skel.dff
D71E617C = group12_bubble_pirate_ship.dff
F4B5C9E2 = group12_bubble3.dff
E3281391 = group12_bubble2.dff
17D13684 = group12_bubble5.dff
06438033 = group12_bubble4.dff
-cin_prolog [HB00]
74A14D0A
DF04CB7A
CEF30AE3 = gary_skel.dff
10B55FD7 = fodder_04.dff
066622B6
22431628 = fodder_05.dff
E7D5BCDF = doors_skel.dff
ED99F335 = fodder_02.dff
FF27A986 = fodder_03.dff
DC0C3CE4 = fodder_01.dff
EEF23E95 = sb_skel.dff
E7B7032A = patrick_skel.dff
6C6AF9E3 = karen_skel.dff
C60604A3 = plankton_skel.dff
-DB_entry [HB01]
71C634E0 = lids_skel.dff
EEF23E95 = sb_skel.dff
-BC_entry [HB06]
EEF17CC5
6BAF1746 = couch_skel.dff
EEF23E95 = sb_skel.dff
229D1D0C = mermaid_man_skel.dff
-cin_fodder [JF01]
19E972DB = robot_0A_fodder_bind.dff [External]
1DC1C387 = jellyfish_pink_bind.dff [External]
1D5AA8B0 = squidward.dff

-cin_hammer [JF01]
BDDE5529 = spongebob.dff
5E20E815 = fish_j_skel.dff
9FF87F23 = ham_bind07_ham_bind1.dff

-cin_tartar [JF03]
D49D1B0F
23731D5C = robot_tar_skel.dff
C30F64BE
B181AE6D
1D2392ED = pat.dff
B9F7CE9A
33BE64E9
CB8584EB
454C1B3A
87856DE9
9913243A
75F7B798

-cin_jf_kingjelly_open [JF04]
6E4E9930 = curtain.dff
BDDE5529 = spongebob.dff
2AE7B631 = kingjelly.dff

-cin_jf_kingjelly_end [JF04]
6E4E9930 = curtain.dff
91AB287B = group3_antidote.dff
2AE7B631 = kingjelly.dff
EEF23E95 = sb_skel.dff
-cin_tublet_intro [KF01]
C49F56E5 = tube3.dff
B311A094 = tube2.dff
9AAF4D48 = tree.dff
A183EA43 = tube1.dff
B673A54F = fish_h_skel.dff
-game_win [PG12]
CEF30AE3 = gary_skel.dff
19B3F661 = news_skel.dff
0520AD6E = larry_lobster_skel.dff
BF0C202E = patrick2.dff
5A8AD591 = barnacle_boy_skel.dff
DD70AFB2 = squidward_skel.dff
EEF23E95 = sb_skel.dff
C360D2CF = mr_skel.dff
1ABD8E14 = mspuffs_skel.dff
229D1D0C = mermaid_man_skel.dff
0C1FE7DE = King_neptune_bind_gecklund_group1.dff
4C46724C = bubblebuddy.dff
6F7F2327 = sandy.dff
C60604A3 = plankton_skel.dff
-cin_sleepytime_intro [RB01]
B25C1C6C = fish_e.dff
03E711FA = pee.dff
4538E751 = sleepytime.dff
201047AA
</pre></div></div>

<div class="mw-collapsible mw-collapsed">
===The SpongeBob SquarePants Movie===
<div class="mw-collapsible-content">
<pre>
-boss_frogfish_death [B101]
39E8AB2D = grammy.dff
DA88B451 = patrick_cin.dff
CA8CF85E
3E3F346A
F9562930 = frogfish6.dff
BF057411 = skulls1.dff
D0932A62 = skulls2.dff
54CF68A6 = ribs.dff
E220E0B3 = skulls3.dff
F3AE9704 = skulls4.dff

-boss_frogfish_intro [B101]
F9562930 = frogfish6.dff
EEF23E95 = sb_skel.dff
3E3F346A
CA8CF85E
39E8AB2D = grammy.dff
8F783BB8 = booth.dff
9B767040 = group1.dff
054CBD34
E220E0B3 = skulls3.dff
54CF68A6 = ribs.dff
D0932A62 = skulls2.dff
BF057411 = skulls1.dff
DA88B451 = patrick_cin.dff
4D1F31C8 = bridge01.dff
-boss_dennis01_intro [B201]
E2C3ABFC = dennis1.dff
AF2B97BF = sb_bat.dff
3E3F346A
DA88B451 = patrick_cin.dff
7432B37C
85C069CD
-boss_dennis1_death [B201]
DA88B451 = patrick_cin.dff
F1E89A34 = boot.dff
E2C3ABFC = dennis1.dff
AF2B97BF = sb_bat.dff
-boss_dennis02_intro [B301]
3E3F346A
DA88B451 = patrick_cin.dff
F451624D = dennis2.dff
DBC8FF40 = patrick_bind.dff
07D56E35 = boot01.dff
-boss_dennis2_death [B301]
F451624D = dennis2.dff
089FB94A
69ECB2F1
15A3E388
-boss_neptune_death [B401]
0C9F257B = king_neptune.dff

-boss_neptune_tran [B401]
0C9F257B = king_neptune.dff
-neptune_boss_intro [B401]
D5D7847D = mr_krabs_bind.dff
BA1800B9 = plankton_bind.dff
E3043AAB = sb_bind.dff
DBC8FF40 = patrick_bind.dff
689E85D3 = crown_bind.dff
BF8233F9 = king_neptune_bind.dff
-100_ending [B402]
3E3F346A
6592D809 = mop01.dff
F75728F5
192C0979 = toothbrush01.dff
C360D2CF = mr_skel.dff
EE520111 = gum.dff
BCADACAC
B6085579
47B52979 = plunger.dff
306E6891
EE162017 = boxes.dff
1E99DF04
38B2ABFA = adver.dff
FBD5470A = fish_a_geo.dff
1AE24FA7 = coin.dff
EB953B9A = fish_a_skel.dff
4F8C6FD4 = bulbs.dff
DFCC57DE = trashbag.dff

-bikini_bottom [BB02]
DFA737B0 = fish_a_bind.dff
B37DD913 = fish_b_bind.dff
E3043AAB = sb_bind.dff
D5D7847D = mr_krabs_bind.dff
F8A494CB = helecopter_bind.dff
35CE9859 = helecopter02_bind.dff
B3F6EE5B = limo_bind.dff
-enemy_critter_intro [BB02]
8060A8D5 = patrick_spin.dff
1D63FFC7 = critter_01.dff
86B645AD = critter_07.dff
75288F5C = critter_06.dff
639AD90B = critter_05.dff
520D22BA = critter_04.dff
407F6C69 = critter_03.dff
2EF1B618 = critter_02.dff
DA88B451 = patrick_cin.dff
-enemy_bucketotron_intro [BB03]
EEF23E95 = sb_skel.dff
3DB03DFC = spawner_skel.dff
58BD8701 = fogger_gg_bind.dff [External]

-enemy_fogger_intro [BB03]
1D2392ED = pat.dff
58BD8701 = fogger_gg_bind.dff [External]
EEF23E95 = sb_skel.dff
A3A38D28 = signs.dff
9747DC89 = slammer_goof_bind.dff [External]
37AF9EB7 = lights.dff
-enemy_slammer_intro [BB03]
EEF23E95 = sb_skel.dff
92475B2E
B4B4CF23 = duck.dff
9747DC89 = slammer_goof_bind.dff [External]

-cin_yolkel_crushed [DE01]
25BD0AD8
47031518 = gen_skel.dff
26926840
E3043AAB = sb_bind.dff
7372CE66
DBC8FF40 = patrick_bind.dff
-enemy_flinger_intro [DE01]
817FB4D5 = flinger_v1_bind.dff [External]
E1AD4984 = group5.dff
209E9760 = light.dff
0015A8A7 = rock.dff
9359A082 = bat1.dff
DA88B451 = patrick_cin.dff
-enemy_merv_intro [JK01]
EB122C62 = glove1.dff
0FE78DB3 = minimerv_v1_bind.dff [External]
3E3F346A
EEF23E95 = sb_skel.dff
-tv_explode_cine [JK02]
F0B52749
733FE548 = tv.dff
E97E9958 = patrick.dff
EEF23E95 = sb_skel.dff
-planktopolis_drive [PT02]
74C0CC11 = patty_wagon_bind.dff

-planktopolis [PT03]
BA1800B9 = plankton_bind.dff
E3043AAB = sb_bind.dff
221F7B2A = statue_bind.dff
8AA1E394
7E8B919D = conveyer_bind.dff
-cin_monster_retreat [TR02]
29F2E418 = cave_monster_skel.dff
EEF23E95 = sb_skel.dff
-cliff_monster_cine [TR02/B301]
D57B1F5E
F9A126DD = cliff_patrick.dff
40FEADDF = projectile_skel.dff
CE590CBB = cliff_mon.dff
-enemy_popper_intro [TR02]
DA88B451 = patrick_cin.dff
64F2AA7D = popper_t_bind.dff [External]
D57B1F5E
-enemy_spinner_intro [TT01]
EEF23E95 = sb_skel.dff
DA88B451 = patrick_cin.dff
BBD2B3FA = spinner_thug_bind.dff [External]
3A8FFA50 = spatula.dff
-enemy_turret_intro [TT01]
EEF23E95 = sb_skel.dff
DA88B451 = patrick_cin.dff
3A8FFA50 = spatula.dff
92AFBA3E = turret_bind.dff [External]
-thug_tug [TT01]
85E036A8 = spatula_bind.dff
DBC8FF40 = patrick_bind.dff
E3043AAB = sb_bind.dff
C844201E = spatula02_bind.dff
</pre></div></div>

<div class="mw-collapsible mw-collapsed">
===The Incredibles===
<div class="mw-collapsible-content">
<pre>
-ci03_opening [CI03]
4F3E6EAD = mr_i_super.dff
-ft02_dash_takeoff [FT01]
DE2CE918 = dash_super_blend_skel.dff
-ft02_dash_vine [FT01_US]
DE2CE918 = dash_super_blend_skel.dff
C812A1E4
-ft02_dismount_monopod [FT02]
8B660456 = elastigirl_skel.dff
8B4B58D6 = monopod_skel.dff
-ft02_mount_monopod [FT02]
8B660456 = elastigirl_skel.dff
C5A0C22C
C0163672
-ft04_ending_launch [FT03_US]
D0D119CB = IncBall_skel.dff
CE3A83DB = mr_i_super_blend_skel.dff
DE2CE918 = dash_super_blend_skel.dff
DD461D1F
53EF2081 = violet_super_skel.dff
-ft04_tower_fall [FT03]
98972D23
-hs01_elastigirl [HS01_US]
E1F2512F
F3800780
991F3939
AAACEF8A
31ED86D9 = omnidroid_10_skel.dff
BA1E6680
4C81692A
2737BF59 = mr_i_super_skel.dff
107086B9
8968EF7E
00C02F0E = elastigirl_super_skel.dff
-hs01_ending [HS01]
107086B9
99E0ED30
31ED86D9 = omnidroid_10_skel.dff
CE3A83DB = mr_i_super_blend_skel.dff
D0649ADE
E1F2512F
F3800780
991F3939
AAACEF8A
-hs01_frozone [HS01_US]
D0649ADE
E1F2512F
F3800780
991F3939
AAACEF8A
31ED86D9 = omnidroid_10_skel.dff
BA1E6680
4C81692A
-hs01_incrediball_ending [HS01]
60DAE131 = ball_skel.dff
80DD0113 = arm01.dff
926AB764 = arm02.dff
B5862406 = arm04.dff
53EF2081 = violet_super_skel.dff
11A1A95E = dash_super_skel.dff
57EEC253
31ED86D9 = omnidroid_10_skel.dff
-hs01_incrediball_intro [HS01]
80DD0113 = arm01.dff
926AB764 = arm02.dff
B5862406 = arm04.dff
53EF2081 = violet_super_skel.dff
11A1A95E = dash_super_skel.dff
57EEC253
60DAE131 = ball_skel.dff
31ED86D9 = omnidroid_10_skel.dff
-ld01_ending [LD01_US]
290A80E3
7AF4A514
360D35C2
7E7BB6F0
-ld01_frozone01 [LD01_US]
360D35C2
BCAE253A = stairs_skel.dff

-ld01_frozone02 [LD01_US]
7AF4A514
360D35C2

-ld01_frozone03 [LD01_US]
7AF4A514
360D35C2
7E7BB6F0
-ld01_opening [LD01]
290A80E3
-ld02_ending_dash [LD04_US]
A82E83E3 = dash_norm_skel.dff
D37B9BEB

-ld02_opening_dash [LD04_US]
D37B9BEB
A82E83E3 = dash_norm_skel.dff
1FBCAB8B = text.dff
-ni01_opening [NI01]
C144FD8B = pod_drop_skel.dff
CE3A83DB = mr_i_super_blend_skel.dff
-ni01_velocipodin [NI01]
2737BF59 = mr_i_super_skel.dff
9808AA35
-ni01_velocipodout [NI01]
9808AA35
2737BF59 = mr_i_super_skel.dff
-ni03_ending [NI03]
3DA49DAB = omnidroid_09_skel.dff
CE3A83DB = mr_i_super_blend_skel.dff
-ni03_opening_omni [NI03]
CE3A83DB = mr_i_super_blend_skel.dff
3DA49DAB = omnidroid_09_skel.dff
-nj01_opening [NJ01]
C144FD8B = pod_drop_skel.dff
EE689F24 = mr_i_fatold_blend_skel.dff
-nj02_ending [NJ02]
69CDFC48 = omnidroid_08_skel.dff
EE689F24 = mr_i_fatold_blend_skel.dff
-nj02_omni_trees [NJ02]
AB84C485
69CDFC48 = omnidroid_08_skel.dff
-nj02_opening [NJ02]
61412D92 = viper_skel.dff
69CDFC48 = omnidroid_08_skel.dff
EE689F24 = mr_i_fatold_blend_skel.dff
-nj02_turret_dropoff [NJ02]
0F61C44A = mr_i_fatold_skel.dff
27B9BDD4 = turret_holdable_skel.dff
-nj02_turret_pickup [NJ02]
0F61C44A = mr_i_fatold_skel.dff
85C21551 = turret_holdable_skel1.dff
39843BB2
-nj03_opening [NJ03]
69CDFC48 = omnidroid_08_skel.dff
-om01_frozone_chase [OM01]
BA1E6680
0B2B60BC
C3C20E22 = choppergroup.dff
5EF697C8 = rocket_skel.dff
-om01_heli_escape [OM01_US]
BA1E6680
F52CD9C6 = mr_i_young_blend_skel.dff
5EF697C8 = rocket_skel.dff
C3C20E22 = choppergroup.dff
-om01_opening [OM01]
A798EA18 = bv_skel.dff
C3C20E22 = choppergroup.dff
F52CD9C6 = mr_i_young_blend_skel.dff
5EF697C8 = rocket_skel.dff
0B7059BB
-om01_tower [OM01]
C3C20E22 = choppergroup.dff
82B45C5F
F52CD9C6 = mr_i_young_blend_skel.dff
-om03_copter_ride_01 [OM03]
931B2871 = elastigirl_young_skel.dff
26424FD9
C3C20E22 = choppergroup.dff
-om03_copter_ride_02 [OM03]
931B2871 = elastigirl_young_skel.dff
9F7D41DE = helicopter_bv_undamaged_bind04_choppergroup.dff
26424FD9
4A21536E = missile_skel.dff
7B7B1877
-om03_ending [OM03_US]
5A828179
1ED4B0BA
931B2871 = elastigirl_young_skel.dff
26424FD9


-om03_opening [OM03_US]
====Padding====
931B2871 = elastigirl_young_skel.dff
Padding - 0x00 bytes, 2048 byte alignment.
BA1E6680
9F7D41DE = helicopter_bv_undamaged_bind04_choppergroup.dff
0D6FDB33
6F52EE90
-om04_ending_bv [OM04]
F52CD9C6 = mr_i_young_blend_skel.dff
C3C20E22 = choppergroup.dff
-om04_opening_bv [OM04_US]
F52CD9C6 = mr_i_young_blend_skel.dff
19097E81 = buddy_p_skel.dff
809B050D
A798EA18 = bv_skel.dff
F1340DDC
A41BE53E = om04_exported_bv_helicopter_helicopter_bv_undamaged_bind04_choppergroup.dff
-om05_newspaper [OM04]
F704D058
-rs01_opening_elastigirl [RS02_US]
DE2CE918 = dash_super_blend_skel.dff
0484020D = violet_super_bind_blend_violet_super_skel.dff
CE3A83DB = mr_i_super_blend_skel.dff
00C02F0E = elastigirl_super_skel.dff
-rs01_opening_mr_i [RS01_US]
DE2CE918 = dash_super_blend_skel.dff
CE3A83DB = mr_i_super_blend_skel.dff
0484020D = violet_super_bind_blend_violet_super_skel.dff
00C02F0E = elastigirl_super_skel.dff
-rs02_turret_dropoff [RS02]
2737BF59 = mr_i_super_skel.dff
27B9BDD4 = turret_holdable_skel.dff
-RS02_turret_pickup [RS02]
85C21551 = turret_holdable_skel1.dff
2737BF59 = mr_i_super_skel.dff
</pre></div></div>





Latest revision as of 15:51, 26 December 2023

CSN
Cutscene
TypeBinary
Games usedNight of 100 Frights

Battle for Bikini Bottom
The SpongeBob SquarePants Movie
The Incredibles

Rise of the Underminer

Format: Header

Because cutscenes can be quite big in size, they are loaded in chunks into RAM and therefore are aligned to 2048/800h byte boundary.

CSN starts with a header, which is also present in the CTOC asset (without padding bytes).

xCutsceneInfo

This xCutsceneInfo header is 0x50 bytes in Scooby/BFBB, 0x830 bytes in TSSM and 0x1030 bytes in The Incredibles long.

Offset Type Variable Description
0x00 u32 Magic
  • CTSN (Xbox/PlayStation 2, little-endian)
  • NSTC (GameCube, big-endian)
0x04 AssetID AssetID AssetID of CSN.
0x08 u32 NumData Amount of xCutsceneData entries.
0x0C u32 NumTime Amount of xCutsceneTime entries. Last offset is end of file and not counted into this.
0x10 u32 MaxModel Largest model in bytes (+padding) in Models.
0x14 u32 MaxBufEven Largest timechunk with an even ChunkIndex in bytes (+padding), usually the first one.
0x18 u32 MaxBufOdd Largest timechunk with an odd ChunkIndex in bytes (+padding).
0x1C u32 HeaderSize Size of header.
0x20 u32 VisCount Amount of Visibility entries
0x24 u32 VisSize Total size of all visibility entries, measured in 4-byte steps. To determine the number of entries within the 2D array (columns), divide this by VisCount.
0x28 u32 BreakCount Amount of xCutsceneBreak entries.
0x2C u32 pad null
0x30 Night of 100 Frights/Battle for Bikini Bottom
0x30 char[16] SoundLeft
0x40 char[16] SoundRight null
0x30 xCutsceneAudioTrack[32] AudioTracks The SpongeBob SquarePants Movie
0x00 u32 uLeftSoundId
0x04 u32 uRightSoundId
0x08 char[28] szLeftSound
0x24 char[28] szRightSound
0x30 xCutsceneAudioTrack[32] AudioTracks The Incredibles
0x00 u32 uLeftSoundId
0x04 u32 uRightSoundId
0x08 char[60] szLeftSound
0x44 char[60] szRightSound

xCutsceneData[]

If ChunkSize and FileOffset are 0, an external MODL is used within the HOP.

Offset Type Variable Description
0x00 u32 DataType
  • 1 = Renderware Model
  • 6 = JDTM (JDeltaModel) (Not present in Scooby)
0x04 AssetID AssetID AssetID of model.
0x08 u32 ChunkSize Size of model.
0x0C u32 FileOffset Offset to model.

xCutsceneTime

Offset Type Variable Description
0x00 u32[] TimeChunkOffs Offsets to TimeChunks

Visibility

Offset Type Variable Description
0x00 u32[VisCount][VisSize/VisCount] Visibility

xCutsceneBreak[]

Offset Type Variable Description
0x00 f32 Time
0x04 s32 Index


Models

Following the header section, the subsequent content comprises Renderware clump and JDTM models.

JDTM

Offset Type Variable Description
0x00 char[4] Magic "JDTM" in ASCII
0x04 u32 amountTargets Amount of JDeltaTarget entries
0x08 JDeltaTarget[amountTargets] targets Array of JDeltaTarget's


JDeltaTarget
Offset Type Variable Description
0x00 s32 skipSize Total size of this structure
0x04 s32 numRuns Amount of JDeltaRun entries.
0x08 s32 numVerts Amount of vertices.
0x0C f32 scale
0x10 JDeltaRun[numRuns] runs
00h padding bytes (16-byte boundary)
f32[numVerts][3] or s16[numVerts][3] Vertices If scale is 0, this array consists of 3 float values. If scale is > 0, this array consists of 3 signed short integers (aligned to 4-byte boundary).
JDeltaRun
Offset Type Variable Description
0x00 s32 VertIdx
0x04 s32 VertCt


Format: TimeChunk

Each timechunk has a 0x10 byte header:

Offset Type Variable Description
0x00 f32 StartTime
0x04 f32 EndTime
0x08 u32 NumData Number of entries.
0x0C u32 ChunkIndex Zero-based TimeChunk index.


xCutsceneData

Every entry is 16-byte aligned and has this header:

Offset Type Variable Description
0x00 u32 DataType
  • 2 = Animation
  • 3 = Camera
  • 4 = MorphTarget (Only present in scooby)
  • 5 = Sound
  • 7 = JDTA (JDeltaAnim) (Not present in scooby)
0x04 AssetID AssetID AssetID of entry.
0x08 u32 ChunkSize Size of data, relative to end of this header.
0x0C u32 FileOffset Starting position of data, relative to end of this header.
Sound

TODO

Animation
Offset Type Variable Description
0x00 u32 RootIndex
0x04 f32[3] Translate Starting position?
0x10 ANIM
Camera
Night of 100 Frights
Offset Type Description
0x00 u32 Unknown
0x04 f32[3] Position
0x10 u32 Amount frames
0x14 f32[amountFrames][2]
  • First float: Time
  • Second float: Focal length?
0x14 + (8*amountFrames) ANIM
BFBB, TSSM and The Incredibles
Offset Type Description
0x00 u32 Amount of frames.
0x04 FLY Big-endian on GameCube
JDTA
Offset Type Description
0x00 char[4] "JDTA" in ASCII
0x04 u32 Amount of time entries (and rows in 2D array).
0x08 u32 Amount of columns in 2D array.
0x0C f32[] Array of time floats.
0x0C + (4*amount times) f32[][] 2D-Array for every time frame with unknown values inside.
MorphTarget
Offset Type Variable Description
0x00 u32 amountFrames
0x04 xCutsceneMphFrame[] Aligned to 16-byte boundary
0x00 f32 Time
0x04 u32 Flags
MPHT

AssetID List

The following is a list of every model inside the cutscene file and their corresponding name. Some names are still unknown.

Night of 100 Frights

-cin_4 [G009]
	B2E286A1
	C598E7C1 = da_skel_c4.dff
	8DAF19AC = gs_skel_c4.dff
	82DED3F8 = mm_skel_c4.dff
	F09843E3
	
-cin_5 [G009]
	7F97B5C8 = cwc_skel_c5.dff
	C7AECAC2 = sd_skel_c5.dff
	7336A443
	F8BC4AEF = umbrella_c5.dff
	9676FA5C
	91230C4F = icetray.dff
	D7269E12 = da_skel_c5.dff
	99E42016 = trap_skel_c5.dff
	B0D74A8C = ho_skel_c5.dff
	
-cin_1 [H001]
	9EF3E3B9 = ve_skel.dff
	14A6D84B = da_skel.dff
	45B60259 = ho_skel.dff
	7C85EA4F = tree3.dff
	E7EA265C = front3.dff
	6AF833FE = tree2.dff
	5912DBD0 = side1.dff
	F97180A9 = van_skel.dff
	B2E286A1
	E5FA06E7 = sh_skel.dff
	F390BB30 = fr_skel.dff
	3DF2CCA8 = background.dff
	34351E38 = snack4.dff
	45C2D489 = snack5.dff
	1119B196 = snack2.dff
	22A767E7 = snack3.dff
	3927B5B3
	CDD61238 = branch.dff
	FF8BFB45 = snack1.dff
	
-cin_2 [O008]
	B2E286A1
	102F7CB9 = ve_skel_c2.dff
	5FC36756 = mm_skel_c2.dff
	8171F6ED = bk_bind.dff
	C9561D16 = cage_skel_c2.dff
	
-cin_3 [O008]
	CD970A98
	ADE66B98
	98EDE7A5
	A4935E20 = sd_skel_c3.dff
	F10CEA55 = pr_skel_c3.dff
	21BD330A = ve_skel_c3.dff
	BC095447
	AA7B9DF6
	FC68B961 = foreground.dff
	3DF2CCA8 = background.dff
	F124BDA5
	DAE3D367 = cage_skel_c3.dff
	
-cin_sh_barrel [P004]
	FF67FEB4
	99CA4705
	E5FA06E7 = sh_skel.dff
	E81E7C42
	A9D84953
	
-cin_10 [S005]
	25A1D113 = mm_skel_c10.dff
	B2E286A1
	
-cin_8 [S005]
	E5806D7F = ho_skel_c8.dff
	0BCFC105 = da_skel_c8.dff
	7F1502AC = fr_skel_c8.dff
	7981C29F = ve_skel_c8.dff
	FC57EDB5 = sd_skel_c8.dff
	FEE9E579 = sh_skel_c8.dff
	
-cin_9 [S005]
	F70E23D0 = ho_skel_c9.dff
	90A2B8FD = fr_skel_c9.dff
	1D5D7756 = da_skel_c9.dff
	8B0F78F0 = ve_skel_c9.dff
	0DE5A406 = sd_skel_c9.dff
	10779BCA = sh_skel_c9.dff

-cin_mm_post_death [S005]
	F286E81B
	613B51AA = card.dff
	C63A3E7A = tube.dff
	
-cin_mm_scare [S005]
	9EF3E3B9 = ve_skel.dff
	14A6D84B = da_skel.dff
	45B60259 = ho_skel.dff
	A02FABE0 = mm_skel.dff
	70217815 = platform.dff
	E5FA06E7 = sh_skel.dff
	F390BB30 = fr_skel.dff
	14F89DCC = rail.dff
	
-cin_11 [S006, XBOX only]
	73F1326D
	613B51AA = card.dff
	3F99D19B = clue2.dff
	5D42585E
	512787EC = clue3.dff
	6ED00EAF
	AB96C02D = gr_skel_c11.dff
	58D83FB4 = fr_skel_c11.dff
	9449446E = pr_skel_c11.dff
	2E0C1B4A = clue1.dff
	4BB4A20D
	C1CFE9AD = ho_skel_c11.dff
	C7CAE26D
	372F8764 = mm_skel_c11.dff
	15B13325 = h_table.dff
	58C2A454
	427114CC = mask_skel_c11.dff
	74DC995B
	6D02D666
	797334FD
	C2C84E9B = sh_skel_c11.dff
	96149BC9
	992C359C
	6DA9C57F
	7E7E790D = ve_skel_c11.dff
	7EA9FFF4 = tube_skel_c11.dff
	7216854F = sd_skel_c11.dff
	A7566BB4 = projector_skel_c11.dff
	B8F81540
	5C67A73F = da_skel_c11.dff
	
-cin_6 [W028]
	43C712DE = rb_skel_c6.dff
	D93C8113 = sd_skel_c6.dff
	FCF22045
	5E233602 = barrel02.dff
	2763282C
	4EDDE2E9 = toprope.dff
	D2FAB2DC = fd_skel_c6.dff
	07938B08 = stairs.dff
	44BAC0AF = lifesaver.dff
	A5FA409A = mm_skel_c6.dff
	31FD43A6
	
-cin_7 [W028]
	88C64D35 = cheese6.dff
	EACA3764 = sd_skel_c7.dff
	ED5C2F28 = sh_skel_c7.dff
	65AAE093 = cheese4.dff
	67F40C4E = ve_skel_c7.dff
	33D81964 = piece4.dff
	773896E4 = cheese5.dff
	428F73F1 = cheese2.dff
	ADC40D04 = fish2.dff
	0F407AA8 = cake2.dff
	19E61B40 = loop2.dff
	10BCACC2 = piece2.dff
	541D2A42 = cheese3.dff
	5E233602 = barrel02.dff
	224A6313 = piece3.dff
	DB3D79FC = sandwich1.dff
	7880E019 = peice1.dff
	3101BDA0 = cheese1.dff
	9C3656B3 = fish1.dff
	FDB2C457 = cake1.dff
	085864EF = loop1.dff
	551CE869
	FDF43B7F
	5038E533
	6D874C5B = fr_skel_c7.dff
	61C69B84
	FB46D344 = gh_skel_c7.dff
	07938B08 = stairs.dff
	2823F911
	082AF84D = drumstick1.dff
	89E0864B
	7852CFFA
	8FA520B4
	A64AF63D
	169642C0
	19B8AE9E = drumstick2.dff

Battle for Bikini Bottom

-b1_open [B101]
	19B3F661 = news_skel.dff
	CB7037E3 = king_neptune_skel.dff
	EAB142DF = sandy_bot_skel.dff
	EEF23E95 = sb_skel.dff
	E7B7032A = patrick_skel.dff

-b1_round2 [B101]
	EEC1DD72 = scoreboard.dff
	EEF23E95 = sb_skel.dff
	E7B7032A = patrick_skel.dff

-b1_round3 [B101]
	EEF23E95 = sb_skel.dff
	E7B7032A = patrick_skel.dff

-b1_ending [B101]
	19B3F661 = news_skel.dff
	CB7037E3 = king_neptune_skel.dff
	EAB142DF = sandy_bot_skel.dff
	4C039C0D = golden_spatula_golden_spatula.dff
	EEF23E95 = sb_skel.dff
	E7B7032A = patrick_skel.dff
	
-b2_open [B201]
	873173AC
	CE6C11AF = boss.dff
	BDDE5529 = spongebob.dff
	1D5AA8B0 = squidward.dff
	5DEB2C3E = icecube.dff
	6F7F2327 = sandy.dff

-b2_round2 [B201]
	C58FBA9D = group4_SB_frozen1.dff
	873173AC
	CE6C11AF = boss.dff
	5DEB2C3E = icecube.dff
	581C8370
	6F7F2327 = sandy.dff

-b2_round3 [B201]
	E8FCA8BF = group6_bubble_bowlingball1.dff
	1F278F15 = goo_skel.dff
	BEE66906 = handle.dff
	CE6C11AF = boss.dff
	97A2A315
	BDDE5529 = spongebob.dff
	D1EDEEAA = group6_chunk1.dff
	E37BA4FB = group6_chunk2.dff
	F5095B4C = group6_chunk3.dff
	1D5AA8B0 = squidward.dff
	FF1EBBF4
	6C130598
	6F7F2327 = sandy.dff

-b2_ending [B201]
	1F278F15 = goo_skel.dff
	CE6C11AF = boss.dff
	BDDE5529 = spongebob.dff
	DD70AFB2 = squidward_skel.dff
	6F7F2327 = sandy.dff

-B3_open [B302]
	BA272258 = mime_skel.dff
	CC46C1ED = dupe_duplicatotron3001_skel2.dff
	8EB6570A = sb_karate_skel.dff
	1B5BC0B9 = plankton_boss_skel.dff
	46109027 = sandy_skel.dff
	DD70AFB2 = squidward_skel.dff
	38482557
	EEF23E95 = sb_skel.dff
	E7B7032A = patrick_skel.dff
	6C6AF9E3 = karen_skel.dff
	C60604A3 = plankton_skel.dff

-B3_transition [B302]
	01CFF3B0 = sb_big_skel.dff
	8EB6570A = sb_karate_skel.dff
	1B5BC0B9 = plankton_boss_skel.dff
	3ADE96C2 = platform02_platform_b301_boss.dff
	4C40CEF7 = platform01_platform_b301_boss.dff
	46109027 = sandy_skel.dff
	DD70AFB2 = squidward_skel.dff
	EEF23E95 = sb_skel.dff
	E7B7032A = patrick_skel.dff
	6C6AF9E3 = karen_skel.dff
	C60604A3 = plankton_skel.dff
	37182A4C = duplicatotron3001_skel.dff

-B3_end_game_win [B303]
	01CFF3B0 = sb_big_skel.dff
	1B5BC0B9 = plankton_boss_skel.dff
	46109027 = sandy_skel.dff
	DD70AFB2 = squidward_skel.dff
	38482557
	EEF23E95 = sb_skel.dff
	E7B7032A = patrick_skel.dff
	6C6AF9E3 = karen_skel.dff
	80B211B7 = sb_big_armr_skel.dff
	89AA4965 = sb_big_arml_skel.dff
	C60604A3 = plankton_skel.dff
	37182A4C = duplicatotron3001_skel.dff
	
-cin_glove [BB01]
	C3E9D2BD = fish_f.dff
	4A508ABB
	AF72467B = gary.dff
	FC9FE2B3 = glove2.dff
	EB122C62 = glove1.dff

-cin_chuck [BB02]
	BEE9319C = bomb.dff
	E389D856 = fish_g_01.dff
	A6F1332A = shadow.dff
	21D10872 = chuck.dff
	CDC26722 = proj_missile.dff

-cin_arf_intro [BC01]
	A20322A8 = arf_dog.dff
	CC0B8B7D = hook2.dff
	DD9941CE = hook3.dff
	BA7DD52C = hook1.dff
	286622B3 = arf_skel.dff
	8B147E65 = arf_bone1.dff

-cin_prawn_opening [BC05]
	5A8AD591 = barnacle_boy_skel.dff
	CEB5ED08 = prawn.dff
	EEF23E95 = sb_skel.dff
	229D1D0C = mermaid_man_skel.dff

-cin_prawn_ending [BC05]
	CBD62B3A = prawn_skel.dff
	A05EC923
	5A8AD591 = barnacle_boy_skel.dff
	EEF23E95 = sb_skel.dff
	FD9BF34B
	229D1D0C = mermaid_man_skel.dff
	
-cin_monsoon [GL01]
	F7A5B367 = cloud.dff
	8CFA41B8
	D70E1E66 = fried_fish_h.dff
	E7053F5F = fish_h.dff
	
-cin_slick [GY01]
	54709D95
	869328D7
	3B45C4B0
	24ED7263
	AA4AFDE4
	40B29FAA
	F5653B83
	0E901468
	72D52AEC
	3E51677D
	F02B8711
	EB953B9A = fish_a_skel.dff
	D92C5D64
	F6A5A508 = slick_skel.dff
	EEF23E95 = sb_skel.dff
	67191FC3 = fish_d_skel.dff
	6E30D2DC

-GY_dutchman_open [GY04]
	0BF9646E = flag.dff
	41A13BE3 = spatula_golden_spatula.dff
	46109027 = sandy_skel.dff
	32B65AD6 = dutchman_skel.dff
	EEF23E95 = sb_skel.dff
	82E9EDF7 = robot_ship_skel.dff

-GY_dutchman_end [GY04]
	51E90D95 = group12_golden_spatula.dff
	46109027 = sandy_skel.dff
	32B65AD6 = dutchman_skel.dff
	D19A5D40 = group12_bubble1.dff
	EEF23E95 = sb_skel.dff
	D71E617C = group12_bubble_pirate_ship.dff
	F4B5C9E2 = group12_bubble3.dff
	E3281391 = group12_bubble2.dff
	17D13684 = group12_bubble5.dff
	06438033 = group12_bubble4.dff
	
-cin_prolog [HB00]
	74A14D0A
	DF04CB7A
	CEF30AE3 = gary_skel.dff
	10B55FD7 = fodder_04.dff
	066622B6
	22431628 = fodder_05.dff
	E7D5BCDF = doors_skel.dff
	ED99F335 = fodder_02.dff
	FF27A986 = fodder_03.dff
	DC0C3CE4 = fodder_01.dff
	EEF23E95 = sb_skel.dff
	E7B7032A = patrick_skel.dff
	6C6AF9E3 = karen_skel.dff
	C60604A3 = plankton_skel.dff
	
-DB_entry [HB01]
	71C634E0 = lids_skel.dff
	EEF23E95 = sb_skel.dff
	
-BC_entry [HB06]
	EEF17CC5
	6BAF1746 = couch_skel.dff
	EEF23E95 = sb_skel.dff
	229D1D0C = mermaid_man_skel.dff
	
-cin_fodder [JF01]
	19E972DB = robot_0A_fodder_bind.dff  [External]
	1DC1C387 = jellyfish_pink_bind.dff   [External]
	1D5AA8B0 = squidward.dff

-cin_hammer [JF01]
	BDDE5529 = spongebob.dff
	5E20E815 = fish_j_skel.dff
	9FF87F23 = ham_bind07_ham_bind1.dff

-cin_tartar [JF03]
	D49D1B0F
	23731D5C = robot_tar_skel.dff
	C30F64BE
	B181AE6D
	1D2392ED = pat.dff
	B9F7CE9A
	33BE64E9
	CB8584EB
	454C1B3A
	87856DE9
	9913243A
	75F7B798

-cin_jf_kingjelly_open [JF04]
	6E4E9930 = curtain.dff
	BDDE5529 = spongebob.dff
	2AE7B631 = kingjelly.dff

-cin_jf_kingjelly_end [JF04]
	6E4E9930 = curtain.dff
	91AB287B = group3_antidote.dff
	2AE7B631 = kingjelly.dff
	EEF23E95 = sb_skel.dff
	
-cin_tublet_intro [KF01]
	C49F56E5 = tube3.dff
	B311A094 = tube2.dff
	9AAF4D48 = tree.dff
	A183EA43 = tube1.dff
	B673A54F = fish_h_skel.dff
	
-game_win [PG12]
	CEF30AE3 = gary_skel.dff
	19B3F661 = news_skel.dff
	0520AD6E = larry_lobster_skel.dff
	BF0C202E = patrick2.dff
	5A8AD591 = barnacle_boy_skel.dff
	DD70AFB2 = squidward_skel.dff
	EEF23E95 = sb_skel.dff
	C360D2CF = mr_skel.dff
	1ABD8E14 = mspuffs_skel.dff
	229D1D0C = mermaid_man_skel.dff
	0C1FE7DE = King_neptune_bind_gecklund_group1.dff
	4C46724C = bubblebuddy.dff
	6F7F2327 = sandy.dff
	C60604A3 = plankton_skel.dff 
	
-cin_sleepytime_intro [RB01]
	B25C1C6C = fish_e.dff
	03E711FA = pee.dff
	4538E751 = sleepytime.dff
	201047AA

The SpongeBob SquarePants Movie

-boss_frogfish_death [B101]
	39E8AB2D = grammy.dff
	DA88B451 = patrick_cin.dff
	CA8CF85E
	3E3F346A
	F9562930 = frogfish6.dff
	BF057411 = skulls1.dff
	D0932A62 = skulls2.dff
	54CF68A6 = ribs.dff
	E220E0B3 = skulls3.dff
	F3AE9704 = skulls4.dff

-boss_frogfish_intro [B101]
	F9562930 = frogfish6.dff
	EEF23E95 = sb_skel.dff
	3E3F346A
	CA8CF85E
	39E8AB2D = grammy.dff
	8F783BB8 = booth.dff
	9B767040 = group1.dff
	054CBD34
	E220E0B3 = skulls3.dff
	54CF68A6 = ribs.dff
	D0932A62 = skulls2.dff
	BF057411 = skulls1.dff
	DA88B451 = patrick_cin.dff
	4D1F31C8 = bridge01.dff
	
-boss_dennis01_intro [B201]
	E2C3ABFC = dennis1.dff
	AF2B97BF = sb_bat.dff
	3E3F346A
	DA88B451 = patrick_cin.dff
	7432B37C
	85C069CD
	
-boss_dennis1_death [B201]
	DA88B451 = patrick_cin.dff
	F1E89A34 = boot.dff
	E2C3ABFC = dennis1.dff
	AF2B97BF = sb_bat.dff
	
-boss_dennis02_intro [B301]
	3E3F346A
	DA88B451 = patrick_cin.dff
	F451624D = dennis2.dff
	DBC8FF40 = patrick_bind.dff
	07D56E35 = boot01.dff
	
-boss_dennis2_death [B301]
	F451624D = dennis2.dff
	089FB94A
	69ECB2F1
	15A3E388
	
-boss_neptune_death [B401]
	0C9F257B = king_neptune.dff

-boss_neptune_tran [B401]
	0C9F257B = king_neptune.dff
	
-neptune_boss_intro [B401]
	D5D7847D = mr_krabs_bind.dff
	BA1800B9 = plankton_bind.dff
	E3043AAB = sb_bind.dff
	DBC8FF40 = patrick_bind.dff
	689E85D3 = crown_bind.dff
	BF8233F9 = king_neptune_bind.dff
	
-100_ending [B402]
	3E3F346A
	6592D809 = mop01.dff
	F75728F5
	192C0979 = toothbrush01.dff
	C360D2CF = mr_skel.dff
	EE520111 = gum.dff
	BCADACAC
	B6085579
	47B52979 = plunger.dff
	306E6891
	EE162017 = boxes.dff
	1E99DF04
	38B2ABFA = adver.dff
	FBD5470A = fish_a_geo.dff
	1AE24FA7 = coin.dff
	EB953B9A = fish_a_skel.dff
	4F8C6FD4 = bulbs.dff
	DFCC57DE = trashbag.dff

-bikini_bottom [BB02]
	DFA737B0 = fish_a_bind.dff
	B37DD913 = fish_b_bind.dff
	E3043AAB = sb_bind.dff
	D5D7847D = mr_krabs_bind.dff
	F8A494CB = helecopter_bind.dff
	35CE9859 = helecopter02_bind.dff
	B3F6EE5B = limo_bind.dff
	
-enemy_critter_intro [BB02]
	8060A8D5 = patrick_spin.dff
	1D63FFC7 = critter_01.dff
	86B645AD = critter_07.dff
	75288F5C = critter_06.dff
	639AD90B = critter_05.dff
	520D22BA = critter_04.dff
	407F6C69 = critter_03.dff
	2EF1B618 = critter_02.dff
	DA88B451 = patrick_cin.dff
	
-enemy_bucketotron_intro [BB03]
	EEF23E95 = sb_skel.dff
	3DB03DFC = spawner_skel.dff
	58BD8701 = fogger_gg_bind.dff [External]

-enemy_fogger_intro [BB03]
	1D2392ED = pat.dff
	58BD8701 = fogger_gg_bind.dff [External]
	EEF23E95 = sb_skel.dff
	A3A38D28 = signs.dff
	9747DC89 = slammer_goof_bind.dff [External]
	37AF9EB7 = lights.dff
	
-enemy_slammer_intro [BB03]
	EEF23E95 = sb_skel.dff
	92475B2E
	B4B4CF23 = duck.dff
	9747DC89 = slammer_goof_bind.dff [External]

-cin_yolkel_crushed [DE01]
	25BD0AD8
	47031518 = gen_skel.dff
	26926840
	E3043AAB = sb_bind.dff
	7372CE66
	DBC8FF40 = patrick_bind.dff
	
-enemy_flinger_intro [DE01]
	817FB4D5 = flinger_v1_bind.dff [External]
	E1AD4984 = group5.dff
	209E9760 = light.dff
	0015A8A7 = rock.dff
	9359A082 = bat1.dff
	DA88B451 = patrick_cin.dff
	
-enemy_merv_intro [JK01]
	EB122C62 = glove1.dff
	0FE78DB3 = minimerv_v1_bind.dff [External]
	3E3F346A
	EEF23E95 = sb_skel.dff
	
-tv_explode_cine [JK02]
	F0B52749
	733FE548 = tv.dff
	E97E9958 = patrick.dff
	EEF23E95 = sb_skel.dff
	
-planktopolis_drive [PT02]
	74C0CC11 = patty_wagon_bind.dff

-planktopolis [PT03]
	BA1800B9 = plankton_bind.dff
	E3043AAB = sb_bind.dff
	221F7B2A = statue_bind.dff
	8AA1E394
	7E8B919D = conveyer_bind.dff
	
-cin_monster_retreat [TR02]
	29F2E418 = cave_monster_skel.dff
	EEF23E95 = sb_skel.dff
	
-cliff_monster_cine [TR02/B301]
	D57B1F5E
	F9A126DD = cliff_patrick.dff
	40FEADDF = projectile_skel.dff
	CE590CBB = cliff_mon.dff
	
-enemy_popper_intro [TR02]
	DA88B451 = patrick_cin.dff
	64F2AA7D = popper_t_bind.dff [External]
	D57B1F5E
	
-enemy_spinner_intro [TT01]
	EEF23E95 = sb_skel.dff
	DA88B451 = patrick_cin.dff
	BBD2B3FA = spinner_thug_bind.dff [External]
	3A8FFA50 = spatula.dff
	
-enemy_turret_intro [TT01]
	EEF23E95 = sb_skel.dff
	DA88B451 = patrick_cin.dff
	3A8FFA50 = spatula.dff
	92AFBA3E = turret_bind.dff [External]
	
-thug_tug [TT01]
	85E036A8 = spatula_bind.dff
	DBC8FF40 = patrick_bind.dff
	E3043AAB = sb_bind.dff
	C844201E = spatula02_bind.dff

The Incredibles

-ci03_opening [CI03]
	4F3E6EAD = mr_i_super.dff
	
-ft02_dash_takeoff [FT01]
	DE2CE918 = dash_super_blend_skel.dff
	
-ft02_dash_vine [FT01_US]
	DE2CE918 = dash_super_blend_skel.dff
	C812A1E4
	
-ft02_dismount_monopod [FT02]
	8B660456 = elastigirl_skel.dff
	8B4B58D6 = monopod_skel.dff
	
-ft02_mount_monopod [FT02]
	8B660456 = elastigirl_skel.dff
	C5A0C22C
	C0163672
	
-ft04_ending_launch [FT03_US]
	D0D119CB = IncBall_skel.dff
	CE3A83DB = mr_i_super_blend_skel.dff
	DE2CE918 = dash_super_blend_skel.dff
	DD461D1F
	53EF2081 = violet_super_skel.dff
	
-ft04_tower_fall [FT03]
	98972D23
	
-hs01_elastigirl [HS01_US]
	E1F2512F
	F3800780
	991F3939
	AAACEF8A
	31ED86D9 = omnidroid_10_skel.dff
	BA1E6680
	4C81692A
	2737BF59 = mr_i_super_skel.dff
	107086B9
	8968EF7E
	00C02F0E = elastigirl_super_skel.dff
	
-hs01_ending [HS01]
	107086B9
	99E0ED30
	31ED86D9 = omnidroid_10_skel.dff
	CE3A83DB = mr_i_super_blend_skel.dff
	D0649ADE
	E1F2512F
	F3800780
	991F3939
	AAACEF8A
	
-hs01_frozone [HS01_US]
	D0649ADE
	E1F2512F
	F3800780
	991F3939
	AAACEF8A
	31ED86D9 = omnidroid_10_skel.dff
	BA1E6680
	4C81692A
	
-hs01_incrediball_ending [HS01]
	60DAE131 = ball_skel.dff
	80DD0113 = arm01.dff
	926AB764 = arm02.dff
	B5862406 = arm04.dff
	53EF2081 = violet_super_skel.dff
	11A1A95E = dash_super_skel.dff
	57EEC253
	31ED86D9 = omnidroid_10_skel.dff
	
-hs01_incrediball_intro [HS01]
	80DD0113 = arm01.dff
	926AB764 = arm02.dff
	B5862406 = arm04.dff
	53EF2081 = violet_super_skel.dff
	11A1A95E = dash_super_skel.dff
	57EEC253
	60DAE131 = ball_skel.dff
	31ED86D9 = omnidroid_10_skel.dff
	
-ld01_ending [LD01_US]
	290A80E3
	7AF4A514
	360D35C2
	7E7BB6F0
	
-ld01_frozone01 [LD01_US]
	360D35C2
	BCAE253A = stairs_skel.dff

-ld01_frozone02 [LD01_US]
	7AF4A514
	360D35C2

-ld01_frozone03 [LD01_US]
	7AF4A514
	360D35C2
	7E7BB6F0
	
-ld01_opening [LD01]
	290A80E3
	
-ld02_ending_dash [LD04_US]
	A82E83E3 = dash_norm_skel.dff
	D37B9BEB

-ld02_opening_dash [LD04_US]
	D37B9BEB
	A82E83E3 = dash_norm_skel.dff
	1FBCAB8B = text.dff
	
-ni01_opening [NI01]
	C144FD8B = pod_drop_skel.dff
	CE3A83DB = mr_i_super_blend_skel.dff
	
-ni01_velocipodin [NI01]
	2737BF59 = mr_i_super_skel.dff
	9808AA35
	
-ni01_velocipodout [NI01]
	9808AA35
	2737BF59 = mr_i_super_skel.dff
	
-ni03_ending [NI03]
	3DA49DAB = omnidroid_09_skel.dff
	CE3A83DB = mr_i_super_blend_skel.dff
	
-ni03_opening_omni [NI03]
	CE3A83DB = mr_i_super_blend_skel.dff
	3DA49DAB = omnidroid_09_skel.dff
	
-nj01_opening [NJ01]
	C144FD8B = pod_drop_skel.dff
	EE689F24 = mr_i_fatold_blend_skel.dff
	
-nj02_ending [NJ02]
	69CDFC48 = omnidroid_08_skel.dff
	EE689F24 = mr_i_fatold_blend_skel.dff
	
-nj02_omni_trees [NJ02]
	AB84C485
	69CDFC48 = omnidroid_08_skel.dff
	
-nj02_opening [NJ02]
	61412D92 = viper_skel.dff
	69CDFC48 = omnidroid_08_skel.dff
	EE689F24 = mr_i_fatold_blend_skel.dff
	
-nj02_turret_dropoff [NJ02]
	0F61C44A = mr_i_fatold_skel.dff
	27B9BDD4 = turret_holdable_skel.dff
	
-nj02_turret_pickup [NJ02]
	0F61C44A = mr_i_fatold_skel.dff
	85C21551 = turret_holdable_skel1.dff
	39843BB2
	
-nj03_opening [NJ03]
	69CDFC48 = omnidroid_08_skel.dff
	
-om01_frozone_chase [OM01]
	BA1E6680
	0B2B60BC
	C3C20E22 = choppergroup.dff
	5EF697C8 = rocket_skel.dff
	
-om01_heli_escape [OM01_US]
	BA1E6680
	F52CD9C6 = mr_i_young_blend_skel.dff
	5EF697C8 = rocket_skel.dff
	C3C20E22 = choppergroup.dff
	
-om01_opening [OM01]
	A798EA18 = bv_skel.dff
	C3C20E22 = choppergroup.dff
	F52CD9C6 = mr_i_young_blend_skel.dff
	5EF697C8 = rocket_skel.dff
	0B7059BB
	
-om01_tower [OM01]
	C3C20E22 = choppergroup.dff
	82B45C5F
	F52CD9C6 = mr_i_young_blend_skel.dff
	
-om03_copter_ride_01 [OM03]
	931B2871 = elastigirl_young_skel.dff
	26424FD9
	C3C20E22 = choppergroup.dff
	
-om03_copter_ride_02 [OM03]
	931B2871 = elastigirl_young_skel.dff
	9F7D41DE = helicopter_bv_undamaged_bind04_choppergroup.dff
	26424FD9
	4A21536E = missile_skel.dff
	7B7B1877
	
-om03_ending [OM03_US]
	5A828179
	1ED4B0BA
	931B2871 = elastigirl_young_skel.dff
	26424FD9

-om03_opening [OM03_US]
	931B2871 = elastigirl_young_skel.dff
	BA1E6680
	9F7D41DE = helicopter_bv_undamaged_bind04_choppergroup.dff
	0D6FDB33
	6F52EE90
	
-om04_ending_bv [OM04]
	F52CD9C6 = mr_i_young_blend_skel.dff
	C3C20E22 = choppergroup.dff
	
-om04_opening_bv [OM04_US]
	F52CD9C6 = mr_i_young_blend_skel.dff
	19097E81 = buddy_p_skel.dff
	809B050D
	A798EA18 = bv_skel.dff
	F1340DDC
	A41BE53E = om04_exported_bv_helicopter_helicopter_bv_undamaged_bind04_choppergroup.dff
	
-om05_newspaper [OM04]
	F704D058
	
-rs01_opening_elastigirl [RS02_US]
	DE2CE918 = dash_super_blend_skel.dff
	0484020D = violet_super_bind_blend_violet_super_skel.dff
	CE3A83DB = mr_i_super_blend_skel.dff
	00C02F0E = elastigirl_super_skel.dff
	
-rs01_opening_mr_i [RS01_US]
	DE2CE918 = dash_super_blend_skel.dff
	CE3A83DB = mr_i_super_blend_skel.dff
	0484020D = violet_super_bind_blend_violet_super_skel.dff
	00C02F0E = elastigirl_super_skel.dff
	
-rs02_turret_dropoff [RS02]
	2737BF59 = mr_i_super_skel.dff
	27B9BDD4 = turret_holdable_skel.dff
	
-RS02_turret_pickup [RS02]
	85C21551 = turret_holdable_skel1.dff
	2737BF59 = mr_i_super_skel.dff