EvilEngine/CSN: Difference between revisions
(Created page with "<onlyinclude> {{#vardefine:typeid|CSN}}<nowiki/> {{#vardefine:name|Cutscene}}<nowiki/> {{#vardefine:type|Binary}}<nowiki/> {{#vardefine:basetype|}}<nowiki/> {{#vardefine:g...") |
EnergyDrink (talk | contribs) (timechunk and camera duration) |
||
(14 intermediate revisions by 2 users not shown) | |||
Line 4:
{{#vardefine:type|[[Binary]]}}<nowiki/>
{{#vardefine:basetype|}}<nowiki/>
{{#vardefine:games|Scooby BFBB TSSM Incredibles ROTU}}<nowiki/>
{{#vardefine:sourcecode|}}<nowiki/>
{{#vardefine:image|}}<nowiki/>
</onlyinclude>
{{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.
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.
{| class="wikitable"
|-
! 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|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.
{| class="wikitable"
|-
! 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====
{| class="wikitable"
|-
! Offset !! Type !! Variable !! Description
|-
| 0x00 || u32[] || '''TimeChunkOffs''' || Offsets to TimeChunks
|}
====Visibility[]====
The visibility data is organized into an array where each entry corresponds to a model/atomic. The number of entries in this array is defined by ''VisCount'' in the header. The total size of the visibility section is specified by ''VisSize'' in the header. Since each entry is of equal length, the length of a single entry can be determined by dividing ''VisSize'' by ''VisCount''.
{| class="wikitable"
|-
! Offset !! Type !! Description
|-
| 0x00 || u16 || Atomic index
|-
| 0x02 || u16 || Model index
|-
| 0x04 || u16 || Number of frames
|-
| 0x06 || u16 || Unknown
|-
| 0x08 || u8[Frames/8] || A series of bits, each representing the visibility of the atomic for a specific frame. <br>Each bit corresponds to 1/30 of a second, indicating whether the atomic is visible (1) or invisible (0) in that frame.
|}
====xCutsceneBreak[]====
{| class="wikitable"
|-
! Offset !! Type !! Variable !! Description
|-
| 0x00 || f32 || '''Time''' ||
|-
| 0x04 || s32 || '''Index''' || Model index
|}
==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:
{| class="wikitable"
|-
! Offset !! Type !! Variable !! Description
|-
| 0x00 || f32 || '''StartTime''' || rowspan="2" | Start-/EndTime of this chunk. Length can be found in the table below
|-
| 0x04 || f32 || '''EndTime'''
|-
| 0x08 || u32 || '''NumData''' || Number of entries.
|-
| 0x0C || u32 || '''ChunkIndex''' || Zero-based TimeChunk index.
|}
TimeChunks have different durations, depending on game and platform, probably because of memory reasons. Below is a table of how long a timechunk approximately lasts.
{| class="wikitable" style="text-align:center"
|-
! !! Scooby !! BFBB !! TSSM !! Incredibles
|-
| GameCube || - || 39/60 || 78/60 || 36/60
|-
| PS2 || rowspan="2" style="text-align:center" | 60/60 || 65/60 || colspan="2" | 60/60
|-
| Xbox || 50/60 || colspan="2" | 23/60
|}
----
====xCutsceneData====
Every entry is 16-byte aligned and has this header:
{| class="wikitable"
|-
! 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<br>For animations this must be the asset id of the model to apply.<br>For JDTA's this has the following format: Upper 16-bits (atomic index), Lower 16-bits (model index).
|-
| 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=====
{| class="wikitable"
|-
! Offset !! Type !! Variable !! Description
|-
| 0x00 || u32 || '''RootIndex''' ||
|-
| 0x04 || f32[3] || '''Translate''' || Starting position
|-
| 0x10 || colspan="3" style="text-align:center" | [[ANIM]]
|}
----
=====Camera: Night of 100 Frights=====
{| class="wikitable"
|-
! 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]] ||
|}
----
=====Camera: BFBB, TSSM and The Incredibles=====
{| class="wikitable"
|-
! Offset !! Type !! Description
|-
| 0x00 || u32 || '''Amount''' of frames.
|-
| 0x04 || [[EvilEngine/FLY|FLY]] || Big-endian on GameCube
|}
How many camera frames a timechunk has also depends on how long a timechunk lasts, this is around half the frame amount (30 FPS) of timechunks (60 FPS).<br>Additionally, timechunks include the last two frames from the previous chunk, except for the first one.
{| class="wikitable" style="text-align:center"
|-
! !! BFBB !! TSSM !! Incredibles
|-
| GameCube || 21-22 || 41 || 19-20
|-
| PS2 || 34-35 || colspan="2" | 32-33
|-
| Xbox || 27-28 || colspan="2" | 13-14
|}
----
=====JDTA=====
{| class="wikitable"
! 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=====
{| class="wikitable"
! 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]
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
</pre></div></div>
{{Assets}}
|
Latest revision as of 16:06, 4 June 2024
CSN | |
---|---|
Cutscene | |
Type | Binary |
Games used | Night of 100 Frights Battle for Bikini Bottom |
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 |
|
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 |
|
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[]
The visibility data is organized into an array where each entry corresponds to a model/atomic. The number of entries in this array is defined by VisCount in the header. The total size of the visibility section is specified by VisSize in the header. Since each entry is of equal length, the length of a single entry can be determined by dividing VisSize by VisCount.
Offset | Type | Description |
---|---|---|
0x00 | u16 | Atomic index |
0x02 | u16 | Model index |
0x04 | u16 | Number of frames |
0x06 | u16 | Unknown |
0x08 | u8[Frames/8] | A series of bits, each representing the visibility of the atomic for a specific frame. Each bit corresponds to 1/30 of a second, indicating whether the atomic is visible (1) or invisible (0) in that frame. |
xCutsceneBreak[]
Offset | Type | Variable | Description |
---|---|---|---|
0x00 | f32 | Time | |
0x04 | s32 | Index | Model 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 |
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). |
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 | Start-/EndTime of this chunk. Length can be found in the table below |
0x04 | f32 | EndTime | |
0x08 | u32 | NumData | Number of entries. |
0x0C | u32 | ChunkIndex | Zero-based TimeChunk index. |
TimeChunks have different durations, depending on game and platform, probably because of memory reasons. Below is a table of how long a timechunk approximately lasts.
Scooby | BFBB | TSSM | Incredibles | |
---|---|---|---|---|
GameCube | - | 39/60 | 78/60 | 36/60 |
PS2 | 60/60 | 65/60 | 60/60 | |
Xbox | 50/60 | 23/60 |
xCutsceneData
Every entry is 16-byte aligned and has this header:
Offset | Type | Variable | Description |
---|---|---|---|
0x00 | u32 | DataType |
|
0x04 | AssetID | AssetID | AssetID of entry For animations this must be the asset id of the model to apply. For JDTA's this has the following format: Upper 16-bits (atomic index), Lower 16-bits (model index). |
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] |
|
0x14 + (8*amountFrames) | ANIM |
Camera: BFBB, TSSM and The Incredibles
Offset | Type | Description |
---|---|---|
0x00 | u32 | Amount of frames. |
0x04 | FLY | Big-endian on GameCube |
How many camera frames a timechunk has also depends on how long a timechunk lasts, this is around half the frame amount (30 FPS) of timechunks (60 FPS).
Additionally, timechunks include the last two frames from the previous chunk, except for the first one.
BFBB | TSSM | Incredibles | |
---|---|---|---|
GameCube | 21-22 | 41 | 19-20 |
PS2 | 34-35 | 32-33 | |
Xbox | 27-28 | 13-14 |
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