Stella Games LzmaPack Decryptor and Unpacker
This tool allows you to extract files from Data.pack. You can extract all files, one file, files that match a certain glob, and encrypt/decrypt the pack for whatever reason. Encryption key is not included, so you'll have to extract it out of the game launcher. Save the key text inside a Unicode text file, or else the key won't work. Here's the typical usage scenario:
Code: Select all
LuckySoftUnpack.exe /in=path\to\Data.pack /extract /keyfile=path\to\key.txt
Stella Games Assembly Deobfuscator
This tool decrypts the assemblies from the 'bin' folder inside the game folder and attempts to restore their original names. The resulting files can then be referenced by .NET programs for use. You will need to point the tool to Startup.bin, which is the initial assembly deobfuscator. Startup.bin must be from a game later than Elementals: The Magic Key (i.e. Mystery of Mortlake Mansion and Secrets of Power: Alexander the Great), because the version in Elementals is obfuscated in itself. After that, pick the bin directory, and click on "Deobfuscate". You'll see the log window scroll, and when it's done you may see files that need "rectifying". Pick one, click on "Rectify", and swap the letters from the bottom box until it successfully deobfuscates. Note that you do not need to deobfuscate 1h0iv6hs00twjvh8wr.bin and z03zw30tp0nn0sjixs.bin, as they are merely flags and their contents are in one of the other files.
Stella Games UData Binary/Udl Transcoder
Once you've unpacked the game files, you've probably noticed that most of the .resource files are in some sort of binary format. This tool will allow you to convert the file between binary, compact, and formatted formats. Double click on a .resource or .metadata file to convert it to text and view it, and right click on it to convert to one of the three formats. It doesn't get any simpler.
Stella Games Image Decompositor (Noveau)
This is a rewrite of the previous image decompositor, and does not use the game engine to do the decompositing. This program takes all the image resources that have been composited, and separates those images back out. This makes it easy to find the images and edit them if you wish. Just supply the repository root path (must be extracted) to the tool, and it'll separate out all the files that are in composites. The output format is PNG, and the input can be DDS, PNG (as of Alexander the Great), and Targa (very recently). As usual, do not steal other people's art assets and use it in your own projects.
The reason the program was rewritten is because the engine needs to be wrangled to not alpha blend, and in Alexander the Great transparency is very screwed up. Therefore I used a proven library (FreeImage and System.Drawing) to read and write images, putting problematic code out of the way. It works much faster than the game engine, and doesn't run out of memory or crash like the game engine does.
Updated June 6, 2013
- Rewritten decomposing process to decompose images by composites, resulting in no duplicate loading of composites.
Startup.bin and these programs
If you can't get a copy of Engine.dll, you can still run these programs. Just obfuscate them with Startup.bin and run them under Startup.bin.
Code: Select all
Startup.bin --obf path\to\program.exe
Code: Select all
Startup.bin ProgramName arg1 arg2 arg...
I haven't managed to get it working, but I'll say it's theoretically correct. I think QuickBMS expects every compressed section to have its own decoder bytes, but in the LzmaPack it's defined once at the beginning. GRAF Format Wiki Page
http://wiki.xentax.com/index.php/GRAF:S ... s_LzmaPack
If you have any problems, please leave a reply. If you need to have the programs linked against an older game (Alexander the Great refactored all of their code so the namespaces are different), reply with the version.txt file and game name and I'll try recompiling it for you.