Skip to content

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 04 Oct 09:24
· 57 commits to master since this release

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.EXE could make the EXEPACK
    decompressor read outside its buffer, and a short ELITE.GRF the 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 difftest fails 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) and THIRD_PARTY.md, with how to relink with your own Nuked OPL3. The
    README and the interface notes now say precisely what the comparisons prove.