OpenTTD 15.3, built by Browser Games Now, runtime v3, 2026-10-24.
Official engine: https://github.com/OpenTTD/OpenTTD/tree/14ec60f248547d4d062a1160f0fc26d742319888
Changes: bundle all language files; use SDL sound effects instead of null sound;
link Emscripten's FreeType port; use the bundled Noto CJK default font in WebAssembly.
Add optional Emscripten callbacks after menu initialization, successful new/load
game startup and failed save loading. Simulation code is unchanged.
No music driver is included. The wrapper reports anonymous per-launch outcomes
to its same-origin parent; the parent applies the site's analytics consent rules.
The local HTML wrapper preloads free assets, loads immediately, and offers
save import/export. IndexedDB uses upstream's persistent filesystem.

Rebuild with CMake, a native C++ compiler and Emscripten 3.1.57 activated:
1. Extract source.tar.gz and dependencies-source.tar.gz.
2. Copy os/emscripten/ports/liblzma.py into
   $EMSDK/upstream/emscripten/tools/ports/contrib/liblzma.py.
3. cmake -S . -B build-host -DOPTION_TOOLS_ONLY=ON -DCMAKE_BUILD_TYPE=Release
4. cmake --build build-host -j8 --target tools
5. emcmake cmake -S . -B build -DHOST_BINARY_DIR="$PWD/build-host" -DCMAKE_BUILD_TYPE=Release -DOPTION_USE_ASSERTS=OFF
   On Windows, set EMSDK and EM_CONFIG to the SDK's canonical full paths.
   The modified CMake uses Python3 plus the official em++.py for linking,
   avoiding mixed 8.3/canonical paths during SDK library generation.
6. cmake --build build -j8 --target openttd
7. Copy build/openttd.js, .wasm and .data beside openttd-player.html (index.html)
   and openttd-startup.js,
   OpenGFX2_Classic-0.8.1.tar, opensfx-1.0.3.tar and NotoSansCJKsc-Regular.otf;
   serve over HTTP(S). Fonts are preloaded at /fonts by the wrapper.
The prepare-openttd.py script automates this from the site repository.
Emscripten uses its pinned SDL 2.28.4, libpng 1.6.39, zlib 1.2.13 and
OpenTTD's liblzma 5.4.6 port; their source archives are supplied separately.
FreeType uses Emscripten 3.1.57's version_1 port and is distributed under GPLv2.
Noto CJK Sans 2.004 is unmodified, SIL OFL 1.1, commit 523d033d6cb47f4a80c58a35753646f5c3608a78.
Builds on other hosts may differ byte-for-byte. The original build uses
Emscripten SDK release 523b29e1b99a61069a2fa9f9d3cc9be1c4c53d4d.
