overview@webemu

Retro gaming,
in your browser.

WebEmu runs classic console ROMs directly in the browser with no plugins, no installs, and no accounts. Drop a ROM file or paste a URL and play within seconds. Every emulator supports save states, rewind, fast forward, cover art, and volume control.

6 Systems
Fully open source Made for flavortown.hackclub.com
100% Browser-based, Nostalgist.js
How it's built
Nostalgist.js
Core emulation library. It wraps libretro cores compiled to WebAssembly and handles ROM loading, canvas rendering, input, and audio routing.
libretro cores
Each system uses a dedicated libretro core through Nostalgist.js and cores like mGBA, fceumm, snes9x, genesis_plus_gx, gw compiled to WASM via Emscripten.
Web Audio API
A GainNode is patched onto the AudioContext before launch, intercepting all connect() calls to give real-time volume control.
libretro-thumbnails
Cover art is fetched via HEAD requests from the libretro-thumbnails CDN on jsDelivr, matched by ROM filename with region-tag stripping.
Vanilla JS + CSS
No frameworks (because I am still learning them ;-;). Each page is a single self-contained HTML file otherwise it would've got too complicated. All UI state, save states, overlays, and controls are plain JS.
localStorage
Dark mode preference is persisted via global.js injected in the document head before paint, preventing a flash on load (thank me later).