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.