Executioners Archive Format
The Executioners Archive Format is how most, but not all, files in the game Executioners is stored. The game will check the archive file first and fall back to the game directory if the desired file could not be found in the archives. This means you can simply rename or remove the archive files to force the game to use external files from the game directory. The default volume file also contains duplicates of some files, (such as GF1.VOL) intended to be used at different points in the game. However, since the game scans the file header sequentially, it always stops at the first matching entry, never reading the repeats.
There is no known signature for this format. One method to identify files is to check the first word of the file and compare it to the word at 0x0A. The first value will be a multiple of 16 (the file entries) and the second will be two larger (FAT plus the FAT size word). This should give a minimal chance of incorrectly identifing a file.
The first section of the file consists of file entries, with the remainder containing the data. Each file entry consists of the filename, its offset and its size. This slightly unusual configuration (storing both the offset and the size) means it is possible (in theory) for two different files to share the same data, and to insert "hidden" data between files.
A file entry is laid out as follows:
|Filename (8.3 style, but lacking extension), only NULL-terminated if there is enough room
|File offset from start of group file
File entries in the archive do not store the file extension, which is .VOL by default, for all contained files.
Implementation Restrictions & Bugs
- All file names in the archive must be in upper case
- When searching for a file name, the first match in the FAT is used.
- As mentioned, extensions are not stored, and are always assumed to be .VOL.