A program to work with compiled Adventure Game Studio (AGS) engine resources.
It features extraction of game assets from executable (*.exe) or archive files (*.ags, *.xxx), unpacking and repacking of sprites (*.spr), previewing and changing room backgrounds (*.crm), generating translation files (*.trs, *.tra), replacing strings directly in scripts and more.
Written in .NET C#.
This project aims to support all officially released 2.x and 3.x AGS versions. It includes support for obsolete engines before 2.54 that have no support in publically released source code.
Original Adventure Creator 1.x and all future AGS 4.x (this includes 3.99.x) or custom versions are beyond the scope (for now).
The list of features is not definitive nor full it just outlines high-level representation of what this project has or lacks at the moment.
- Assets
- Extraction from executable (*.exe)
- Extraction from single archive (*.ags)
- Extraction from multiple archives (*.xxx)
- Packaging into executable
- Packaging into single archive
- Packaging into multiple archives
- Forward conversion (upgrade) to newer engines (for old unmaintained games mostly)
- Sprites
- Unpacking sprites (*.spr)
- Repacking sprites
- Translations
- Generation of translation file from assets
- "Decompilation" of existing translation files (*.tra)
- "Compilation" of translation files (*.trs)
- Scripts
- Scripts extraction (*.scom3)
- Scripts injection into game data (*.dta)
- Scripts injection into rooms (*.crm)
- Replacing strings in scripts from translation file
- Script disassembler
- Script assembler
- Script decompiler
- Rooms
- Preview backgrounds
- Replace backgrounds
- Preview room areas (walkable, regions, etc.) (?)
- Preview room objects (?)
- GUI
- Preview GUI elements (?)
- Change GUI elements (?)
- Project structure reconstruction
AGSUnpacker.UI:
AGSUnpacker.Graphics.GDI:
For windows host you can use .NET 6 or .NET 8. If you're cross-compiling on linux then prefer .NET 8.
On Windows:
- Download and install .NET 6 SDK or .NET 8 SDK
On Linux:
- Depending on the distribution install either from your distro repository or follow instructions from M*.
Clone repository:
git clone https://github.com/adm244/AGSUnpacker.git
or download master branch and unpack it.
In terminal navigate to AGSUnpacker root folder and use provided makefile to build:
make publish CONFIG=Release ARCH=x64
or to compile 32-bit executables:
make publish CONFIG=Release ARCH=x86
If everything went OK you'll find compiled program in build/package
folder.
If you can't use make
then follow this instructions.
In terminal navigate to AGSUnpacker root folder and use this dotnet command:
dotnet publish AGSUnpacker.UI/AGSUnpacker.UI.csproj --os win -c Release -a x64 --no-self-contained -o build/package/
or to compile 32-bit executables:
dotnet publish AGSUnpacker.UI/AGSUnpacker.UI.csproj --os win -c Release -a x86 --no-self-contained -o build/package/
If everything went OK you'll find compiled program in build/package
folder.
Other projects that work with AGS engine I am aware of:
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.
In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.