Guide · Retro consoles

NES, Sega Genesis and PS1 games in your browser: how it works

Three consoles, three emulators, one tab. This is what actually runs under the page, what each shelf is good at, how the controls map to a keyboard and where the limits are — no ROM hunting, no installers.

Retro console games running in a browser
Three shelves, three emulator cores, one browser tab.

What runs under the page

Each shelf is a different emulator core compiled from C to WebAssembly. The core is the part that pretends to be the console: it reads the game data, runs the CPU instructions and produces frames and sound. The page around it only handles the canvas, the keyboard and the touch buttons.

ShelfCoreConsoleLoad size
Dendy / NESFCEUmm or JSNES8-bit NES and its clonestens of kilobytes to a few MB
Sega Genesisgenesis_plus_gx16-bit Mega Drive / Genesisa few MB per game
PlayStationpcsx_rearmed32-bit PS1, CD-basedhundreds of MB per disc

That difference in size explains everything else. NES games start almost instantly, Genesis games in a few seconds, and PS1 discs are the reason the PlayStation shelf shows a loading bar — a CD image is hundreds of megabytes even when compressed.

The NES shelf: instant and huge

The 8-bit library is the easiest place to start. Games are small, the emulator is small, and the controls are simple: arrows for the d-pad, X for A, Z for B, Enter for Start, Shift or Tab for Select. Every page also shows on-screen buttons on phones.

The Sega shelf: 16-bit and fast

The Genesis core is heavier but still small enough to start in seconds. The six-button pad maps to two rows on the keyboard: Z X C for A B C and A S D for X Y Z, with Enter as Start and Shift as Mode. Fighting games and beat 'em ups need that layout — Street Fighter II' Special Champion Edition is unplayable otherwise.

The PlayStation shelf: the heavy one

PS1 emulation is a different scale. A disc image is 500–700 MB, the emulator has to handle 3D geometry, CD audio and memory cards, and the browser has to keep all of it in memory. That is why this shelf is desktop-first and why the first launch of a game is slow.

The controls follow the original pad: arrows for the d-pad, S for Cross, D for Square, A for Circle, W for Triangle, Q and E for L1 and R1, Tab and R for L2 and R2, Enter for Start and Shift for Select. Multi-disc games switch discs automatically when the story reaches the second CD.

Controls on a phone

NES and Genesis shelves add on-screen buttons and a rotate button. It works, but platformers that need frame-perfect jumps are still better with a keyboard or a gamepad. PS1 games are the worst fit for touch: analogue-era 3D games expect a stick, and the on-screen d-pad cannot replace it in racing or stealth games.

Saves and progress

Performance tips

  1. Close other tabs — emulation is single-threaded and hates competing for CPU.
  2. Use fullscreen: it removes browser chrome and lets the canvas scale cleanly.
  3. If a PS1 game stutters, the first launch is the disc download, not the emulator; the second run reads from cache.
  4. Disable extensions that draw overlays on top of the page; they break pointer capture and add frame time.

Frequently asked questions

Do I need to download ROMs or a BIOS?
No. The pages load the data they need and cache it; there is nothing to install or configure.
Which shelf should I start with?
NES — fastest to load and the most forgiving. Then Genesis for 16-bit action, and PS1 last because it is the heaviest.
Can I use a gamepad?
The emulated pad is mapped to the keyboard. Browsers expose gamepads to the page, but support depends on the port; a keyboard is the reliable option.
Why are PS1 games so large?
A CD image is 500–700 MB of audio and video data. Compression helps, but the download is still an order of magnitude bigger than a cartridge game.

Play NES games · Sega Genesis · PlayStation

Looking for something specific? The A–Z list has every title on the site.