Not sure what you exactly mean by "the whole story". Obviously it does have something to do with cutscenes, but I was questioning what kind of data is actually in the file. Not sure if it contains cutscene animations, compressed text, etc. DLLS does mention these strings for it though:
ROM:00187600 00000026 C triggers: unknown trigger object %d.\n
ROM:00187628 00000022 C TRIGGER: warning Script overflow\n
ROM:0018764C 00000021 C Trigger [%d], Gamplay Vulnerable
ROM:00187670 00000037 C Trigger [%d], Music Action, Action Num [%d] Free
ROM:001876A8 00000036 C Trigger [%d], Music Action, Action Num [%d] Set
ROM:001876E0 00000042 C Trigger [%d], Sound FX, Action Num [%d],Handle Num [%d]
ROM:00187724 0000004D C Trigger [%d], Camera, Action [%d], Camera Num [%d], PassDir [%d]
ROM:00187774 0000001B C Trigger [%d], Track Sky On
ROM:00187790 0000001C C Trigger [%d], Track Sky Off
ROM:001877AC 00000021 C Trigger [%d], Track AntiAlias On
ROM:001877D0 00000022 C Trigger [%d], Track AntiAlias Off
ROM:001877F4 00000022 C Trigger [%d], Track SkyObjects On
ROM:00187818 00000023 C Trigger [%d], Track SkyObjects Off
ROM:0018783C 0000001C C Trigger [%d], Track Dome On
ROM:00187858 0000001D C Trigger [%d], Track Dome Off
ROM:00187878 00000022 C Trigger [%d], Track MrSheen On %d
ROM:0018789C 00000020 C Trigger [%d], Track MrSheen Off
ROM:001878BC 0000003E C Trigger [%d], Environment Effect, Action Num [%d], Range [%d]
ROM:001878FC 0000004D C Trigger [%d], Lighting, Action [%d], Range [%d], PassDir [%d]
ROM:0018794C 0000003C C Trigger [%d], Anim Sequence, SequenceID [%d], Activate
ROM:00187988 0000003C C Trigger [%d], Anim Sequence, SequenceID [%d], Flag = 1
ROM:001879C4 0000003C C Trigger [%d], Anim Sequence, SequenceID [%d], Flag = 0
ROM:00187A00 00000032 C Trigger [%d], Trigger, Local ID [%d]
ROM:00187A34 0000002C C Storyboard disabled, please remove trigger\n
ROM:00187A60 0000001D C Trigger [%d], LOD Model [%d]
ROM:00187A80 00000043 C Trigger [%d], Setup Point, Level [%d], SetupPoint [%d]
ROM:00187AC4 00000014 C Trigger [%d], Bits\n
ROM:00187AD8 0000001B C Trigger [%d], Object Load\n
ROM:00187AF4 0000001B C Trigger [%d], Object Free\n
ROM:00187B10 0000001D C Trigger [%d], Object Toggle\n
ROM:00187B30 00000018 C Trigger [%d], Tex Load\n
ROM:00187B48 00000018 C Trigger [%d], Tex Free\n
ROM:00187B60 00000021 C TRIGGER: warning DLL not loaded\n
ROM:00187B84 0000001D C Script [%d], Subscript [%d]\n
ROM:00187BA4 0000001B C Trigger [%d], Object Load\n
ROM:00187BC0 0000001B C Trigger [%d], Object Free\n
ROM:00187BDC 00000012 C Restart Set [%d]\n
ROM:00187BF0 00000014 C Restart Clear [%d]\n
ROM:00187C04 00000013 C Restart Goto [%d]\n
ROM:00187C18 00000012 C killing sidekick\n
ROM:00187C2C 0000000D C findobj %i \n
ROM:00187C3C 00000043 C Trigger [%d], amSfxWaterFallsSetFlags, Action [%d], PassDir [%d]
But I don't know what kind of data is inside the file.
Also I found something extremely useful. The .tab files are definitely 4 byte aligned "tables" of addresses for their corresponding file. This means we might be able to determine where certain pieces of data (either they be code or data) begin and end, and how many are actually in the file. For assets like models and sounds, we might be able to code something quick to split the file up. For instance, according to their .tab files:
BLOCKS.bin - 1265 models (base address: 00000000)
STORYBOARD.bin - 92 of something (base address: 00000000)
MPEG.bin - 1037 voice clips (base address: 00000000)
ANIM.bin - 2550 animations (base address: 00000000)
TEX.bin - 352 textures (base address: 00000000)
Some weird tables:
AUDIO.bin - We all know this is where sequence data for the music is stored, but there's some more information completely unrelated to audio (seems to be more for textures) that's padded onto the file at 0x11BCFC till EOF. The table for the file has 3 addresses that make sense for audio, the first address is 00000000, which is the start of a list of addresses with a base of 00000000 for the contents of the file itself. 0xE000 is the start of the actual music sequencing data, 0xB8A78 looks to be the start of the sound effect sequencing data. But whatever that information that's padded at 0x11BCFC, the address table for the file has addresses for each one. No idea what it could've been used for. Here's a snippet:
/DRkrazstatuetopr.rgb.at..N...81...(D...textures/DRlavat..N.ck.r...httr.....C..........,..90ures....ocks...0at.r....ttr...y........h......5.ures/DRrocksrepeatlighter.rg..N.tr.F...hD.......ures....usty..90lNOs....rgb...N..Ch....(...,textures/DRrustymetalsha
DLLS.bin - "DLLSIMPO" and "DLLSIMPORTTAB" already have addresses, but DLLS.bin has a few with a base address of 00000000. 0x5B, 0xAE, 0x0, 0xC6. Does anyone wanna see what this could correlate to in the file? Maybe 0xC6 is the start of the instructions while all the other addresses point to certain parts of the file's header?
(note: last entries in the .tab lists are usually null (FFFFFFFF) or zero)
I wonder if anyone can write a model viewer for these model files? The textures are a combination of RGB and RGBA.
|