100% local · nothing uploaded · nothing stored

Retro games. Zero friction.

Drop in a ROM you have permission to use and it's playing in seconds. NES, SNES, Game Boy, GBA, and Genesis, no installs, no accounts, no upload to any server, ever.

Drop a ROM file here or click to browse
.nes · .sfc / .smc · .gb / .gbc · .gba · .md / .gen / .smd
NES SNES Game Boy Game Boy Color Game Boy Advance Genesis / Mega Drive

Need a game file? Browse ROM sources, then return here to load your download.

ARROWSD-pad
ZA button
XB button
ENTERStart
SHIFTSelect

A connected USB or Bluetooth gamepad works automatically too, no setup needed.

Why play in the browser

No client to install, no launcher to update, no BIOS files to hunt down.

Zero install

No installs, no launchers, no admin permissions. It's a tab, not an app.

Works everywhere

Windows, Mac, Linux, Chromebook, even a lot of tablets. If it runs a modern browser, it runs this.

Nothing leaves your device

Your ROM is read locally and never transmitted anywhere. We couldn't see it if we tried.

Keyboard or gamepad

Full keyboard controls out of the box, plus USB and Bluetooth controller support.

Find a ROM. Then press play.

Browse the community ROM directory, download a supported game file, and bring it back to GamePuke.

r/ROMs Megathread

Use the external directory for its current source links. Opening the directory in a new tab keeps GamePuke ready for your return.

NES.nes
SNES.sfc / .smc
Game Boy / Game Boy Color.gb / .gbc
Game Boy Advance.gba
Genesis / Mega Drive.md / .gen / .smd
  1. Find a game for one of the supported systems above.
  2. Download the file from its source. Extract ZIP, 7z, or RAR archives first.
  3. Return here and select Load a ROM, or drag the extracted file into the player.

The directory includes other systems that this player does not support. Downloads happen on external sites; availability and account requirements vary. GamePuke is not affiliated with the directory and does not host game files. Only download and use files you are authorized to access.

Supported systems

Six classic platforms, more may get added down the line.

1985

NES

The console that rebuilt the home gaming market after the early-80s crash. 8-bit, cartridge-based, and still influential decades later.

1991

SNES

Nintendo's 16-bit follow-up, known for detailed sprite work, layered backgrounds, and the Mode 7 pseudo-3D effect.

1989

Game Boy & Game Boy Color

The handheld that defined portable gaming for a generation, later given a color screen and expanded palette in 1998.

2001

Game Boy Advance

A genuine 32-bit handheld with a widescreen format, closing out the era of dedicated Game Boy hardware.

1988

Genesis / Mega Drive

Sega's 16-bit answer to the SNES, built around faster hardware and a distinctly different library of action titles.

More soon

What's next

Additional systems get considered based on what people actually ask for. Got a request? Reach out.

How it works

No accounts, no uploads, no waiting.

01

Choose your ROM

Find a supported file through the ROM sources above, or use one you already have permission to use. Load the extracted file into the player; it is read locally by your browser.

02

The right core loads

Based on the file type, the matching emulator core downloads automatically and boots your game.

03

Play instantly

Full keyboard or gamepad controls, save states, and fullscreen, all running locally in this browser tab.

Understanding ROM emulation

A quick primer if any of this is new to you.

ROM, core, and BIOS, what's the difference?

A ROM is a digital copy of a game's data, dumped from the original cartridge or disc. A core is the actual emulator, software that mimics a specific system's hardware closely enough to run that ROM correctly. Some systems also need a BIOS, a small firmware file the original hardware shipped with, though none of the systems supported here require one.

GamePuke handles the core automatically based on your file type. You only ever need to provide the ROM.

About backing up your own games

Cartridge dumping means reading game data from an original cartridge into a file. Use only files you are authorized to obtain and use.

GamePuke plays files you select locally. The external ROM directory above is a separate service; GamePuke does not host its downloads.

Controls & tips

Default keyboard mapping and a couple of things worth knowing.

Default keyboard controls

ARROWSD-PAD
ZA BUTTON
XB BUTTON
ENTERSTART
SHIFTSELECT

A connected USB or Bluetooth gamepad is detected automatically through your browser, no setup needed.

A couple of things to expect

  • A camera/mic permission prompt may pop up. That's a known quirk of the underlying emulator's audio engine checking for microphone availability during setup, it never actually uses your camera or mic. Safe to deny.
  • Close unused tabs for best performance. This runs a full hardware emulator via WebAssembly, it's efficient, but more headroom never hurts.
  • .zip files won't load directly. If your ROM is inside a zip, extract it first and load the raw file.
We don't host, store, or distribute any game files. GamePuke is a browser-based emulator front end built on the open-source Nostalgist.js and RetroArch projects. It only works with files you provide yourself, and those files are processed entirely on your own device, they are never uploaded to any server.

FAQ

How do I use the ROM directory?

Download a supported ROM from an authorized source, extract it if it is archived, then return to GamePuke and choose Load a ROM. The external directory opens in a new tab; it does not automatically load a game into the player.

Is this legal?

GamePuke does not grant permission to download or use copyrighted games. Only load ROM files you are authorized to use. GamePuke links to an external ROM directory but does not host or distribute game files.

Do you upload or store my ROM file?

No. The file is read directly by your browser using the File API and handed to the emulator locally. It never touches our server, and we have no way to see, copy, or store it.

What systems are supported?

NES, SNES, Game Boy, Game Boy Color, Game Boy Advance, and Sega Genesis / Mega Drive right now. Support for more systems may be added later.

Can I use a controller?

Yes. USB and Bluetooth gamepads connected to your device are detected automatically through your browser, alongside full keyboard controls.

Why did my browser ask for camera or microphone access?

That's a known quirk of the underlying emulator technology, not GamePuke asking to watch or listen to anything. The audio engine checks for microphone availability during setup even though it's never actually used. Safe to deny the prompt.

My game won't load, what happened?

Double check the file extension matches one of the supported formats. Some ROM files are compressed inside a .zip, unzip it first and load the raw ROM file directly. If it still fails, the file may be corrupted.

What is this built on?

GamePuke is built on Nostalgist.js, an open-source library (MIT licensed) that runs RetroArch emulator cores in the browser via WebAssembly. Full credit to that project and to the RetroArch and libretro communities behind it.