Play Your Own Game ROMs
Got your own cartridge backups, or a homebrew / open-source game? Pick a platform, drop the file in, and it runs right in your browser.
- 01
Drop in a ROM file
Auto-detect is on by default: we read the file header and extension to work out the platform (for a zip, we look at what is inside), then pick the matching emulator.
- 02
The runtime is picked for you
Consoles / handhelds / arcade / DOS go to EmulatorJS, Flash (.swf) goes to Ruffle. If detection gets it wrong, you can set the platform yourself.
- 03
Start playing
Files are read locally in your browser and never uploaded. The runtime takes a few seconds to load the first time, and you can save, go fullscreen or plug in a gamepad at any point.
Default keys
These are the default keys. Click the gamepad icon 🎮 in the player’s bottom toolbar to rebind them. Gamepads are detected automatically. On phones you get on-screen buttons.
1P
D-Pad
W S A D
A
K
B
J
Turbo A
I
Turbo B
U
Start
Enter
Select
L Shift
Quick save
F2
Quick load
F4
2P
D-Pad
Numpad 8 2 4 6
A
Numpad 7
B
Numpad 9
Start
Numpad 1
Select
Numpad 3
The NES was always two-player — 2P uses the numeric keypad, and NumLock does not matter. No numpad? Rebind 2P to other keys in the 🎮 panel.
Drop in a ROM and playAuto-detect platform · Runtime: jsnes
Drag a NES (Famicom) file here, or click the button to pick one. Files are read locally in your browser and never uploaded.
Formats: .nes .unf .fds .zip · Runtime: EmulatorJS
Only run games you legally own a backup of, or homebrew / open-source ROMs. 8BitGo does not host any copyrighted game files.