OpenTTD 15.3, built by Browser Games Now, 2026-10-18.
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.
Simulation code is unchanged. No music driver is included.
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
6. cmake --build build -j8 --target openttd
7. Copy build/openttd.js, .wasm and .data beside openttd-player.html (index.html),
   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.
