Play Game Boy, Game Boy Color, and Game Boy Advance games directly in your browser with this online Game Boy emulator. Choose a ROM from your device or drag it onto the player above. The cartridge stays in your browser: the page does not upload ROM data to RAW.
The emulator is powered by GB.js, an accuracy-focused TypeScript emulation library. Video, audio, keyboard input, gamepad input, save memory, and cartridge metadata are handled locally after the page has loaded.
How to Play a Game Boy ROM Online
- Select Choose a ROM, or drag a cartridge image onto the emulator.
- Choose a
.gb,.gbc, or.gbafile from your device. - Use the keyboard, on-screen controls, or a connected standard gamepad to play.
- Use the player toolbar to pause, reset, mute audio, import a save, or download save data.
No games are included. Use cartridge images that you are legally permitted to use. Some Game Boy Advance games may require a compatible BIOS image; it can be selected as a local .bin file and is not uploaded.
Supported Systems and Files
| System | ROM file | Display |
|---|---|---|
| Game Boy | .gb | 160 × 144 pixels |
| Game Boy Color | .gbc | 160 × 144 pixels |
| Game Boy Advance | .gba | 240 × 160 pixels |
| Game Boy Advance BIOS | .bin | Optional 16 KiB firmware |
The cartridge header is inspected before a game starts. The player reports the detected system, title, cartridge hardware, ROM size, and header status. Invalid or unsupported images produce an error instead of being executed as another console type.
Keyboard and Gamepad Controls
| Game control | Keyboard | Gamepad |
|---|---|---|
| D-pad | Arrow keys or WASD | D-pad |
| A / B | Z / X | Primary face buttons |
| L / R | Q / E | Shoulder buttons |
| Start / Select | Enter / Shift | Start / Select |
| Pause | Space | Player toolbar |
Touch controls appear on the virtual handheld, so the emulator can also be used on phones and tablets. A connected controller uses the browser Gamepad API and follows the standard button layout.
Save Games and Cartridge Data
Battery-backed save memory is stored in local browser storage under a key derived from the cartridge header. The cartridge manager can download that state as a save file or restore a compatible save from disk. Clearing site data can remove browser-stored saves, so download a backup before clearing browser storage or moving to another device.
ROM files, BIOS images, and imported save files are read with browser file APIs. They are not sent to a server. Network access is only needed to load the page, emulator code, fonts, and normal RAW site assets.
About the Emulator
The player uses the open-source GB.js emulator library. Its Game Boy and Game Boy Color core models the SM83 CPU, cartridge controllers, LCD timing, audio, timers, DMA, joypad, and serial hardware. The Game Boy Advance core coordinates an ARM7TDMI CPU, memory bus, graphics, audio, DMA, timers, interrupts, keypad input, save devices, and real-time-clock hardware through a deterministic scheduler.
GB.js is under active development, so compatibility and hardware accuracy vary between games. The @rawify/gb package and source repository document the current subsystem status and known limitations.
Frequently Asked Questions
Does the online Game Boy emulator include games?
No. The emulator does not contain commercial games, ROM downloads, or firmware. You supply a local cartridge image that you are legally allowed to use.
Are ROMs uploaded?
No. Selected ROMs are processed locally in the browser. The player does not submit their contents to RAW.
Can the emulator play Game Boy Advance games?
Yes, the player accepts .gba files. Compatibility depends on the hardware features used by the game. A legally obtained BIOS image can be supplied locally when software requires firmware behavior not covered by the built-in fallback.
Why is there no sound before I interact with the page?
Browsers prevent pages from starting audio automatically. Load a game and interact with the player before enabling sound. This is a browser autoplay policy, not a ROM error.
Where are save games stored?
Save memory is kept in local browser storage. Use the cartridge manager to download backups and restore compatible save files later.