EvilEngine/CSN
CSN | |
---|---|
Cutscene | |
Type | Binary |
Games used | Night of 100 Frights Battle for Bikini Bottom |
Format[edit]
Header[edit]
CSN starts with a header, which is also present in the CTOC asset (without padding bytes).
xCutsceneInfo[edit]
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 | uint | Magic |
|
0x04 | uint | AssetID | AssetID of CSN. |
0x08 | uint | NumData | Amount of xCutsceneData entries. |
0x0C | uint | NumTime | Amount of xCutsceneTime entries. |
0x10 | uint | MaxModel | Largest model in bytes (+padding bytes) in xCutsceneData. |
0x14 | uint | MaxBufEven | Largest timechunk in bytes (+padding bytes), usually the first one. |
0x18 | uint | MaxBufOdd | Largest timechunk in bytes (+padding bytes). |
0x1C | uint | HeaderSize | Size of header. |
0x20 | uint | VisCount | Amount of visibility entries. |
0x24 | uint | VisSize | Total size of all visibility entries. |
0x28 | uint | BreakCount | Amount of xCutsceneBreak entries. |
0x2C | uint | pad | null |
0x30 | Night of 100 Frights/Battle for Bikini Bottom | ||
0x30 | char[16] | SoundLeft | |
0x40 | char[16] | SoundRight | null |
0x30 | xCutsceneAudioTrack | AudioTracks[32] | The SpongeBob SquarePants Movie |
0x00 | uint | uLeftSoundId | |
0x04 | uint | uRightSoundId | |
0x08 | char[28] | szLeftSound | |
0x24 | char[28] | szRightSound | |
0x30 | xCutsceneAudioTrack | AudioTracks[32] | The Incredibles |
0x00 | uint | uLeftSoundId | |
0x04 | uint | uRightSoundId | |
0x08 | char[60] | szLeftSound | |
0x44 | char[60] | szRightSound |
xCutsceneData[edit]
- 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.
Offset | Type | Variable | Description |
---|---|---|---|
0x00 | uint | DataType |
|
0x04 | AssetID | AssetID | AssetID of model. |
0x08 | uint | ChunkSize | Size of model. |
0x0C | uint | FileOffset | Offset to model. |
xCutsceneTime[edit]
Offset | Type | Variable | Description |
---|---|---|---|
0x00 | uint | TimeChunkOffs | Offset to TimeChunk |
Visibility[edit]
Offset | Type | Variable | Description |
---|---|---|---|
0x00 | uint | Visibility |
xCutsceneBreak[edit]
Offset | Type | Variable | Description |
---|---|---|---|
0x00 | float | Time | |
0x04 | int | Index |
Padding[edit]
Padding - 0x00 bytes, 2048 byte alignment.
TimeChunk[edit]
Each timechunk has a 0x10 byte header:
Offset | Type | Variable | Description |
---|---|---|---|
0x00 | float | StartTime | |
0x04 | float | EndTime | |
0x08 | uint | NumData | Number of entries. |
0x0C | uint | ChunkIndex | TimeChunk index. |
xCutsceneData[edit]
Each entry has this 0x10 byte header:
Offset | Type | Variable | Description |
---|---|---|---|
0x00 | uint | DataType |
|
0x04 | AssetID | AssetID | AssetID of entry. |
0x08 | uint | ChunkSize | Size of data, relative to end of this header. |
0x0C | uint | FileOffset | Starting position of data, relative to end of this header. |
Every entry has padding - 0x00 bytes at the end, 16 byte alignment.
Sound[edit]
Animation[edit]
Offset | Type | Variable | Description |
---|---|---|---|
0x00 | uint | RootIndex | |
0x04 | float[3] | Translate | Starting position? |
0x10 | ANIM |
Camera[edit]
(BFBB/TSSM/Incredibles only)
Offset | Type | Variable | Description |
---|---|---|---|
0x00 | uint | Amount of frames. | |
0x04 | FLY (big-endian on GameCube) |
JDTA[edit]
Unknown
MorphTarget[edit]
Unknown
Padding[edit]
Padding - 0x00 bytes, 2048 byte alignment.
AssetID List[edit]
Battle for Bikini Bottom[edit]
The following is a list of every model inside the cutscene file and their corresponding name. Some names are still unknown.
-b1_open [B101] 19B3F661 = news_skel.dff CB7037E3 = king_neptune_skel.dff EAB142DF EEF23E95 = sb_skel.dff E7B7032A = patrick_skel.dff -b1_round2 [B101] EEC1DD72 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 4C039C0D = golden_spatula_golden_spatula.dff EEF23E95 = sb_skel.dff E7B7032A = patrick_skel.dff -b2_open [B201] 873173AC CE6C11AF BDDE5529 = spongebob.dff 1D5AA8B0 = squidward.dff 5DEB2C3E = icecube.dff 6F7F2327 = sandy.dff -b2_round2 [B201] C58FBA9D = group4_SB_frozen1.dff 873173AC CE6C11AF 5DEB2C3E = icecube.dff 581C8370 6F7F2327 = sandy.dff -b2_round3 [B201] E8FCA8BF = group6_bubble_bowlingbal1.dff 1F278F15 = goo_skel.dff BEE66906 = handle.dff CE6C11AF 97A2A315 BDDE5529 = spongebob.dff D1EDEEAA E37BA4FB F5095B4C 1D5AA8B0 = squidward.dff FF1EBBF4 6C130598 6F7F2327 = sandy.dff -b2_ending [B201] 1F278F15 = goo_skel.dff CE6C11AF 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.dd 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 EB122C62 -cin_chuck [BB02] BEE9319C E389D856 = fish_g_01.dff A6F1332A 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 41A13BE3 = spatula_golden_spatula.dff 46109027 = sandy_skel.dff 32B65AD6 = dutchman_skel.dff EEF23E95 = sb_skel.dff 82E9EDF7 -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 066622B6 22431628 E7D5BCDF ED99F335 FF27A986 DC0C3CE4 EEF23E95 = sb_skel.dff E7B7032A = patrick_skel.dff 6C6AF9E3 = karen_skel.dff C60604A3 = plankton_skel.dff -DB_entry [HB01] 71C634E0 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 2AE7B631 = kingjelly.dff EEF23E95 = sb_skel.dff -cin_tublet_intro [KF01] C49F56E5 B311A094 9AAF4D48 A183EA43 B673A54F = fish_h_skel.dff -game_win [PG12] CEF30AE3 = gary_skel.dff 19B3F661 = news_skel.dff 0520AD6E = larry_lobster_skel.dff BF0C202E 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 4538E751 = sleepytime.dff 201047AA