# RetroCart emulator bundle EmulatorJS **4.2.3**, with its matching legacy (WebGL 1, single-threaded) cartridge cores. All runtime downloads come from this directory; ROMs are passed as browser File objects and never uploaded. The frontend is adapted by `app/javascript/retro_player.js` in a separate same-origin document. Destroying that document stops the previous emulator before another cartridge starts. Upstream: https://github.com/EmulatorJS/EmulatorJS/tree/v4.2.3 API reference: https://emulatorjs.org/docs/options/ `4.2.3/sources.json` records each downloaded URL and SHA-256. Rebuild with `python tools/bundle_retro_emulator.py`. The upstream frontend is unmodified; the adapter disables its localhost-only update check. The page's policy also prevents remote fallback downloads. No BIOS images or games are bundled. The frontend's GPL-3.0 license is in `4.2.3/LICENSE`. Each core archive contains its upstream `license.txt`, `core.json` (including the source repository), and `build.json`; the licenses are also extracted alongside the archives: | System | Core | Source | | --- | --- | --- | | NES | FCEUmm | https://github.com/EmulatorJS/libretro-fceumm | | Game Boy / Color | Gambatte | https://github.com/EmulatorJS/gambatte-libretro | | Game Boy Advance | mGBA | https://github.com/EmulatorJS/mgba | | SNES | Snes9x | https://github.com/EmulatorJS/snes9x | | Mega Drive / Genesis | Genesis Plus GX | https://github.com/EmulatorJS/Genesis-Plus-GX | Only these cores are hosted. Archives must be extracted by the player before loading; ambiguous .bin files need a recognized cartridge signature. CHIP-8 has its own cabinet. Console compatibility remains that of the upstream cores.