Repository navigation
v0.1.1
Fixes from an outside review (Codex): safer file handling, a fidelity fix, and stricter checks.
- Dust in the original's colours. Space dust was drawn through the general game colours;
the original's dust routine has its own table of MCGA pixels (ds:2656). It is a separate
primitive now (EP_PRIM_DUST), and a pixel-level test checks it. - Broken game files are refused safely. A crafted
ELITE.EXEcould make the EXEPACK
decompressor read outside its buffer, and a shortELITE.GRFthe picture loader. Both now
check every length and offset; a new test feeds them tens of thousands of broken files under
AddressSanitizer and UBSan, in CI. - Saves are whole or not at all. A commander is written to a temporary file, checked to
the last byte, then put in place; a failed save is reported by the game, and the old file is
kept. In the browser, files or commanders the browser's storage will not keep are reported
instead of silently lost. - No undefined arithmetic. The dust's steering shifted negative numbers left; the core now
builds warning-free in Debug too, and the comparisons run clean under the sanitizers. - Sound. The PC speaker's state is handed to the audio thread under its lock.
- Tests and releases.
make difftestfails when a comparison fails or the routines
cannot be listed (it reported success); an empty test corpus, or a game copy that is not
Elite Plus, is an error; CI runs a sanitizer build; releases and the web site are
published only after CI passes. - Licences. Every download and the web site carry the third-party licences (Nuked OPL3's
LGPL, SDL2's zlib, and for the web Emscripten's and musl's MIT) andTHIRD_PARTY.md, with how to relink with your own Nuked OPL3. The
README and the interface notes now say precisely what the comparisons prove.