Home > Software > Soul Spiral
Soul Spiral
software and article by Ben_Lincoln
Soul Spiral is a utility for unpacking the contents of the bigfile.dat format used by many Crystal Dynamics games based on the engine from Gex. It can also read the pill.big data file from the PC and Playstation versions of Blood Omen.
Soul Spiral's only function is to unpack content from a monolithic data file. It is not an image/model viewer or a sound file player. Once the files are extracted, other tools (such as ModelEx, The_Eye_of_RAW, and The_Sound_of_Her_Wings) are necessary to actually do anything with any of the files. Because the game assets are usually in a proprietary format, not all of them have been reverse-engineered well enough to do anything with yet.
If there is not a utility listed on The Lost Worlds for the file type you are interested in, there is probably nothing available to you to open it - some common examples are the textures and models from Soul Reaver 2 and Defiance.
Soul Spiral requires at least version 2.0 of the .NET Framework to be installed on your PC. It can be obtained from the Microsoft website or Windows Update.
Usage:
- Open bigfile.dat (or, for Blood Omen, pill.big).
- Soul Spiral will attempt to automatically determine the game it's from. If it is successful, you should probably just click OK. If it's NOT successful, pick the best match from the list and click OK. If it works, please email me and let me know which game it worked with and what Soul Spiral says in the "Size (Bytes)" field of the main window.
- Browse the contents and either export a single item or all of them using the Export menu.
- Make use of the contents in another utility.
Supported Formats:
- Gex (Playstation) - uncompressed files only, no hashed name lookups.
- Blood Omen (all Playstation and PC releases) - no hashed name lookups.
- Gex 2 (Playstation) - uncompressed files only, no hashed name lookups.
- Akuji: The Heartless (Playstation) - uncompressed files only, no hashed name lookups.
- Gex 3 (Playstation) - uncompressed files only, no hashed name lookups.
- Soul Reaver Lighthouse Demo (Playstation) - uncompressed files only, no hashed name lookups.
- Soul Reaver Fire Glyph Demo (Playstation and PC).
- Soul Reaver (all Playstation and PC releases).
- Soul Reaver (Dreamcast) - no hashed name lookups.
- Soul Reaver 2 Air Forge Demo (Playstation 2) - no hashed name lookups.
- Soul Reaver 2 (all Playstation 2 and PC retail releases) - incomplete hashed name lookups.
- Legacy of Kain: Defiance (all Playstation 2 and PC releases) - incomplete hashed name lookups.
- Tomb Raider: Legend Demo (Playstation 2) - no hashed name lookups.
- Tomb Raider: Legend (Playstation 2 and PSP) - no hashed name lookups.
Currently Unsupported Formats:
- Blood Omen 2 (all releases) - uses a completely different data file format.
- Legacy of Kain: Defiance (all Xbox releases) - uses an unsupported variation of the bigfile format.
- Legacy of Kain: Defiance (downloadable PC release) - uses an encrypted bigfile format.
- Tomb Raider: Legend (all Xbox/Xbox 360/PC releases) - uses an unsupported variation of the bigfile format.
Known Issues:
Updates in Version 1.1:
- Incorporated some additional reverse hash lookups for Defiance and SR2 based on information from Alexey Kragin and Andrew Fradley.
- Made the progress dialogue modal.
Updates in Version 1.0:
- This a complete rewrite from the ground up.
- Added support for reading the compressed file format used in the PS2 versions of Soul Reaver 2 (this was REALLY hard to reverse-engineer), so the RAW images from those games can now be exported.
- Brand new UI with fancy buttons and progress bars that is much nicer to work with.
- Added the ability to export a single directory and its subdirectories, in addition to the old export single/all functions.
- Added the ability to replace a file (unless it is compressed in the BigFile) with another file of identical size. This allows files to be exported, modified, and then re-imported.
- Added reverse hash lookup functionality for many more files in Soul Reaver and Defiance.
- Added preliminary support for a couple of other games, including Gex 2.
- Added full support for the XOR'd index variation used in the PAL retail release of Soul Reaver, instead of the workaround in previous versions.
- Changed the duplicate filename behaviour to be more intuitive and less messy.
- Added the ability to choose to view proper directory names or the raw index organization.
- All I/O operations are much faster.
- Added the ability to export raw index data instead of looking at messy log files.
- Removed the Options menu because at least for now there is no need of one.
Updates in Version 0.9:
- Andrew_Fradley reverse-engineered the filename-hashing algorithm from the PC and Playstation versions of Soul Reaver. I've added support in the ohrainBOWS database for the vast majority of the files in the PC version. The Playstation version is partially complete.
- Fixed a bug that prevented Soul Spiral from opening the German PC release of Soul Reaver 2.
- Added support for reverse hash lookups for the German PC release of Soul Reaver 2.
- Implemented nested directories properly.
- Directories and their contents are now sorted in alphabetical order.
- Modified the handling of duplicate references to the same file in the bigfile. They will now all be listed, with a .dupe extension for multiple references to the same file. A future release will have a more elegant solution.
- Added identification abilities for a few other variants of the games, including the PAL release of Legend (thanks Dan) and Kain the Vampire.
Updates in Version 0.8:
- Used information from Andrew_Fradley to add reverse hash lookups for the PC version of Soul Reaver 2.
- Added a few more hash names to both versions of Soul Reaver 2.
Updates in Version 0.7:
- Migrated to .NET 2.0.
- Added recognition for the PSP release of Tomb Raider: Legend.
- Fixed a nasty bug related to the PS2 versions of Soul Reaver 2. The bug still applies to the Air Forge demo - it will be fixed completely in a future release.
- Added most of the other hash names to the ohrainBOWS database for the PS2 versions of Soul Reaver 2. Recognition of proper filenames in those bigfiles is now over 94%.
Updates in Version 0.6:
- Added support for Tomb Raider: Legend and the prerelease demo (considerable thanks for this goes to Ben from Tomb Raider Central for sending me the PAL coverdisc for analysis!). This only includes the PS2 versions. The PAL retail version will not be identified correctly (I don't have a copy to fingerprint yet), but it should open if the TR: Legend file type is selected.
- Added support for reverse hash lookups to determine proper filenames. This currently only works with the North American and PAL releases of Soul Reaver 2 for the PS2, and not all names are present. As I have time to research the other games, support will be added for them as well. This feature depends on the presence of the file "ohrainBOWS.mdb" in the same folder as Soul Spiral.
- Changed the UI to represent folders differently to work better with reverse hash lookups.
Updates in Version 0.5:
- The file format used in the Soul Reaver lighthouse demo, Akuji, and Gex 3 is now interpreted correctly. However, there are still some oddball entries in their indices for items with a length of 0 and an offset of 0. I believe these are pointers of some kind to external files.
- The Options window now includes a checkbox for turning off the prepending of object offsets to their names if their names can be determined based on their contents (like the "*.SRObj" files. When exporting, this prevents duplicate items from being exported (and makes individual objects easier to find), but if two different objects have the same internal name, only one will be exported, and there is no guarantee as to which one it will be.
- A few additional item types are recognized, notably the sound clip collections in Soul Reaver 2.
Updates in Version 0.4:
- All versions of Soul Reaver 2 and Defiance are now interpreted correctly. 0.3 read the right locations of their files, but not the right file sizes.
- Added support for the Soul Reaver 2 Air Forge demo.
- Added support for Blood Omen.
- Added a few additional file types that Soul Spiral can recognize.
Updates in Version :
- Can now read the bigfile from the PAL Playstation version of Soul Reaver.
- Has an Options window with a debug logging option that will probably only be useful to me.
- Only displays read errors once instead of over and over and over.
- TIM-recognizing for the Playstation version of Soul Reaver has been tweaked.
Note: Releases prior to 1.1 are no longer publicly available.
|
|
The main Soul Spiral UI
|
|
|
|
The file type selection dialogue
|
|
|
|
The automatic recognition dialogue
|
|
|
|
File
|
Size
|
Version
|
Release Date
|
Author
|
|
Soul Spiral
|
1 MiB
|
1.1
|
15-Oct-2006
|
Ben Lincoln
|
|
|
Related Articles:
ModelEx
The_Eye_of_RAW
The_Sound_of_Her_Wings
Extract_the_Music_from_Defiance_for_the_PC