LOCAL ROM

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.

  1. 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.

  2. 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.

  3. 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.