# TechnicalEntropy doomgeneric distribution

This directory contains the exact corresponding source for the Freedoom browser
runtime distributed by TechnicalEntropy.

- Upstream: <https://github.com/ozkl/doomgeneric>
- Commit: `dcb7a8dbc7a16ce3dda29382ac9aae9d77d21284`
- License: GPL-2.0-only; see `upstream/LICENSE`
- Compiler: Emscripten 6.0.8
- Compiler image digest:
  `docker.io/emscripten/emsdk@sha256:8714ed3a9fb585e662c931259a996bac36a57a8dd34b81e8277436fd77364475`

`upstream/` contains the pinned upstream tree plus the map-completion callback,
WebAssembly-safe shutdown, and allowlisted KEX widescreen-patch compatibility
changes. `technicalentropy/` contains the local browser adapter and reproducible
Makefile. The generated JavaScript and WebAssembly live under
`public/games/freedoom/engine/` and are checked by
`scripts/verify-freedoom-artifacts.mjs`.

Build from the repository root:

```sh
podman run --rm --userns=keep-id \
  -v "$PWD:/src:Z" \
  -w /src/third_party/doomgeneric/technicalentropy \
  docker.io/emscripten/emsdk@sha256:8714ed3a9fb585e662c931259a996bac36a57a8dd34b81e8277436fd77364475 \
  make -f Makefile.web clean all
```

The build is single-threaded, modular ES6 and local-only. It does not require
`SharedArrayBuffer`, pthreads, a worker-owned engine, or cross-origin isolation.
