- C 42.7%
- C++ 36.6%
- Python 16.4%
- Assembly 1.2%
- POV-Ray SDL 1.1%
- Other 1.9%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
The original mix runs at full scale and clips; in the browser it is scaled by a master volume before clipping. web/shell.html has a small slider + mute button (bottom right, remembered per browser) that calls sm_set_volume. Desktop output is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
| docs | ||
| orig | ||
| packaging/arch | ||
| re | ||
| src | ||
| tests | ||
| tools | ||
| web | ||
| .gitignore | ||
| CMakeLists.txt | ||
| README.md | ||
StarMiner port
Faithful C++17 / SDL2 reimplementation of eGames' StarMiner ("spaceminer 1.3 LITE", 1999–2000),
reading the original data files byte for byte. The game is Positech Computing's Asteroid Miner V1.0
(13/3/99, see orig/install/maindir/readme.txt) repackaged by eGames.
Layout
orig/NewStarMinerVal.EXE— the original Wise installer, untouched (sha2563848137d…50e0).orig/install/— its contents, extracted statically bytools/wise_extract.py;orig/MANIFEST.txtlists CRC/size/date.orig/wise/— the Wise installer's internal streams (install script =script_stream01_*.bin, wizard DLLs/bitmaps).
Installed files that are not what their names say
| file | actually |
|---|---|
maindir/wcsup.dll |
the game: packed PE32 GUI exe, version info spaceminer.exe / spaceminer 1.3 LITE, custom packer |
maindir/res1.dll |
a 640x480x8 BMP |
maindir/egames.exe |
16-bit NE launcher (needs VBRUN300.DLL?) |
tools/container/Containerfile— all RE/build tooling (ghidra, radare2, wine, mingw, imagemagick). Nothing is installed on the host.re/— reverse-engineering notes, annotated disassembly, format specs.src/— the port.
Toolbox
podman build --network=host -v /var/cache/pacman/pkg:/hostcache:ro -t localhost/starminer-re tools/container
podman run --rm --network=host --userns=keep-id -v "$PWD":/work:Z localhost/starminer-re <cmd>
WebAssembly build
The same CMakeLists.txt builds a browser version with Emscripten (tested with 4.0.7): soft renderer, SDL2 from the
Emscripten ports, the game data packaged into starminer.data, single player only (no DirectPlay provider).
source /path/to/emsdk/emsdk_env.sh
emcmake cmake -S . -B build-wasm -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build-wasm
python3 -m http.server 8000 --directory build-wasm # then open http://localhost:8000/starminer.html
Output: build-wasm/starminer.html (page from web/shell.html), .js, .wasm, .data; serve the four files
together over HTTP (a file:// page cannot load the data). Click the page to start (browsers allow sound only
after a click). Memory layout and main-loop yielding: docs/PORTING.md, "WebAssembly build".