WebX68k / px68k, GPL-2.0-only. No game disks or console firmware included.
Native core revision 649bb0fdb73efc03926adf407df0595883618db1 from https://github.com/uraraworks/px68k-libretro . Host/shim/build sources revision 4a3ee8fb7763c0281eb8a40fb9431e4dd1091409 from https://github.com/uraraworks/WebX68k . The distributed core's build manifest reports Emscripten 6.0.7 and a clean native source tree.
Extract corresponding-source.tar.gz into a directory containing webx68k/ and px68k-libretro/ as siblings. Install/activate Emscripten SDK 6.0.7. Set EMSDK_DIR to that SDK and run webx68k/scripts/build-core.sh. It compiles the native Musashi CPU core (C68K=0) and the C shim, and copies JS/WASM to webx68k/public/core/.
For the frontend host, cd webx68k and npm ci --ignore-scripts. Then:
node_modules/.bin/esbuild src/libretro-host.ts --bundle --format=iife --global-name=WebXHost --target=es2022 --define:import.meta.env.DEV=false --define:__BUILD_ID__='"b2og-v1"' --outfile=host.js
Keep host.js, px68k_libretro.js, px68k_libretro.wasm, worker.js and audio.js together. integration-source.tar.gz contains the local worker and player adapter. The worker uses OffscreenCanvas and supplies external owner IPL/CGROM arrays before boot. Disks and SRAM are written only in browser memory, and may be persisted in the visitor's IndexedDB. There are no server disk writes or external emulator services.
