-
-
Notifications
You must be signed in to change notification settings - Fork 13
File structure ‐ ACEF
The acts extension format (acef) file format is an internal format for acts, it's a way to provide extensions to acts, but it is also used as a storage file.
It is composed of:
- file magic
0x46454341(32 bits integer) - file version (16 bits integer)
- file flags (16 bits integer)
- header size (32 bits integer)
- size of an object (32 bits integer)
- number of objects (32 bits integer)
- size compressed (32 bits integer)
- size decompressed (32 bits integer)
- max size of a compressed object (32 bits integer)
- compress information (64 bits integer)
The flags are described by this table
| Value | Description |
|---|---|
| 0x0001 | Big endian |
Compress information are described in the enum in compress_utils.hpp. Bits 0-7 bits is the compression algorithm Bit 8 bit says the high compression algorithm was used Next bits are used by the compression algorithms.
| Value | Description |
|---|---|
| 0x0000 | Invalid |
| 0x0001 | No compression |
| 0x0002 | zlib |
| 0x0003 | lzma |
| 0x0004 | lz4 |
| 0x0005 | oodle |
| 0x0006 | zstd |
| 0x0100 | High compression |
After header size bytes, the file will contain number of objects times these data:
- compressed size (32 bits integer)
- uncompressed size (32 bits integer)
- file offset (32 bits integer)
- data offset (32 bits integer)
- object ID (64 bits integer)
After size of an object bytes, the object will have compressed size bytes of compressed data.
The object ID is hashed using the fnv1a64 hash with the 64th bit removed.
Each file is built as an object list, they can be decompressed independently or in one buffer using the size decompressed header, the data offset object header describe the relative location in the decompressed data.
Name: acts.hash
Description: Contains hashes, test to compare with wni.
Structure:
- Number of hashes (64 bits integer)
- Number of hashes times:
- Hash ID (64 bits integer)
- Hash Value (0 byte ended string)
Name: acts.opcodes
Description: Contains opcodes to extend the GSC compiler/decompiler.
Structure:
- VM magic (64 bits integer)
- Platform (64 bits integer) : 1=pc, ps=2,xbox=3,alpha=4,test=5
- Opcodes (until the end)
- opcode id (16 bits integer)
- opcode value (16 bits integer)
Name: acts.gscbinopaque.[magic], magic is the hex of the VM magic.
Description: Contains opaque strings to extend the GSC compiler/decompiler with gscbin VMs.
Structure:
- Strings count (32 bits integer)
- locations (strings count 32 bits integer)
- strings (strings count 0 byte ended strings)
Note: the locations contains the offset inside the strings buffer, a 0 location means that it is not described in this file.
- AtianTools
- Atian Tools UI
- Game Script Code (GSC)
- Fast Files (FF)
- File Structure
- Other Utilities
- Developer