Low-level minimal allocation implementation of Relic's funky formats in Zig with comments and clearly named variables.
SGAs: Headers should work for all versions of SGAs, but more high-level code and complex operations are only tested on AoE4 SGAs.
You can grab a copy of sgatool
, the actually executable portion of zig-essence
, from the latest successful CI run, the latest release (soon), or by compiling the program yourself.
First, install Zig. Then:
git clone https://github.com/aoemods/zig-sga
cd zig-sga
zig build
# Output in ./zig-out/bin!
# Or to run it right away (useful for developers)
zig build sgatool -- [args]
See tools/sgatool.zig
and build.zig
for an example of how zig-essence
can be used as a library in Zig!
Credit where credit's due!
Thanks Janne for the awesome blog post as well as the SGA viewer tooling that inspired this effort. A dozen lines of documentation are based off of a table in Janne's blog post. <3
MIT
All files in dump
are also MIT licensed and generated by other SGA tools. Please do not add any official game archives to dump
!