# Research references

The extraction tools are independent implementations. External code and documentation were used for format vocabulary and hypotheses, then checked against this game's files and original routines where indicated in FORMATS.md.

- [Open Siege](https://github.com/open-siege/open-siege), Matthew Rindel, MIT. Pinned revision in `analysis/references.json`. Particularly useful for early 3Space and VOL layouts; some details differ from retained ES1 bytes.
- [Herculan](https://github.com/kevinfoley/Herculan), Kevin Foley / Subject9x, MIT. Pinned revision in `analysis/references.json`. Extensive Earthsiege 2 research; never assume its file strides, vtable slots, palette formats or input tapes apply unchanged to ES1.
- [ScummVM HMP reader](https://github.com/scummvm/scummvm/blob/master/audio/midiparser_hmp.cpp), GPL. Reference only; no code copied. Original ES1 routing demonstrates 32 contiguous five-ID device records, which must not be interpreted as five transposed arrays.
- [FFmpeg FLIC decoder](https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/flicvideo.c) and [ANM decoder](https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/anm.c), LGPL/GPL as distributed. FFmpeg creates previews and decodes standard LPF animation. Earthsiege's type-20 DFL extension required our own decoder, compared with original PLAYFLIC.
- Ghidra, Capstone and Unicorn are analysis tools only. No original executable emulation is intended to ship as the native C++ reimplementation.

Original resource/executable ownership is separate from tool licensing. Research preserves the supplied media's files and release notes; the user has authorised bundling the developer-released freeware game assets in the native project.
