ROM 文件不随项目提供,需自备游戏 ROM;macOS 用手柄需额外安装兼容的 SDL2;网络对战为未加密 TCP 直连,仅限可信对象。
coffee-gb
trekawekMIT活跃维护用 Java 写的高精度 Game Boy Color 模拟器,能准确还原 Z80 指令和硬件时序,适合跑老游戏或研究模拟器实现。
Accurate Gameboy Color emulator.
java -jar coffee-gb.jar --portableREADME 未说明具体 CPU、内存或显存要求;桌面应用基于 Java/Kotlin,需可运行 JAR 的 Java 环境。macOS 上使用手柄需系统安装兼容的 SDL2,键盘输入无需。
高兼容性的 Game Boy 与 Game Boy Color 桌面模拟器,适合跑老游戏、自制程序和诊断 ROM
用 Java 写的高精度 Game Boy Color 模拟器,能准确还原 Z80 指令和硬件时序,适合跑老游戏或研究模拟器实现。
核心能力
- 模拟 GB/DMG 与 GBC/CGB,支持 SGB 边框和调色板
- 提供十个存档槽、命名、预览、自动存档与回退
- 支持拖放加载 .gb/.gbc/.rom 及 ZIP、7z 压缩包
- 回滚网络对战支持联机线游戏与红外通信
- 支持 Game Genie 与 GameShark 金手指并内置可搜索数据库
容易踩的坑
- coffee-gb-2.1.8Coffee GB 2.1.8最新正式版2026-11-02 · 2026-11-02 10:42 UTC
Changes
- On Windows, store settings in
%LOCALAPPDATA%\Coffee GB\coffeegb.properties. Existing settings are imported from the user profile without changing the old file. - Add
--portableto keep settings beside the JAR or an unpacked application launcher. The application directory must be writable; saves and other application data retain their existing locations. The single-file Windows EXE extracts to a temporary directory, so use the JAR or an unpacked application image for persistent portable settings.
Known platform limitations
- On macOS, game controllers require a compatible system SDL2 installation. Keyboard input and emulation remain usable without it.
Merged pull requests
Fixed issues
Full changelog: https://github.com/trekawek/coffee-gb/compare/coffee-gb-2.1.7...coffee-gb-2.1.8
- On Windows, store settings in
- coffee-gb-2.1.7Coffee GB 2.1.72026-10-01 · 2026-10-01 10:31 UTC
查看更新说明
Coffee GB 2.1.7 adds link-cable startup support for Renju Club, improves netplay handoff and recovery, restores a Java ROM-loading constructor overload, and adds pressed-state feedback to Android touch controls. Compatibility documentation and acknowledgments were also updated.
Merged pull requests
- #690 Switch SGB sessions to DMG for netplay — preserve the session-only DMG fallback through controller handoff, forward local client output, retain diagnostic state paths, ignore stale save sidecars for batteryless games, and restore the Java ROM-image constructor overload. @trekawek
- #691 Add Android pressed control artwork and touch feedback — show held buttons and directions in the Android touch controls. @trekawek
- #693 Fix Renju Club link startup — start two-player sessions with both cable endpoints attached so the game can negotiate its link. @trekawek
Fixed issues
None.
Known platform limitations
On macOS, game controllers require a compatible system SDL2 installation; keyboard input and emulation remain usable without it.
- coffee-gb-2.1.6Coffee GB 2.1.62026-09-20 · 2026-09-20 13:21 UTC
查看更新说明
Coffee GB 2.1.6 adds BESS save-state interchange, expands Game Boy peripheral support, and brings connection choices and device controls together in the desktop menu.
Changes
- Load and save BESS-compatible states from the File menu, with validated ROM matching and interchange for supported DMG, CGB, and SGB configurations.
- Use HuC-1/HuC-3 cartridge infrared and send or receive GBKiss GBF files.
- Scan EAN-13 barcodes with the separate Barcode Taisen Bardigun reader.
- Run Pocket Sonar with MBC1S sensor emulation and simulated sonar input. Scene changes now end active input recording, and the mapper is included in state coverage checks.
- Use Turbo File GB internal memory and removable cards, including import/export, persistence, and write protection. The GBA-only Advance choice is no longer exposed in the menu; legacy state and storage support is retained.
- Emulate Singer and Jaguar sewing machines, including the JN-2000 embroidery arm, live stitch preview, and PNG export.
- Organize Peripherals into Link port, Cartridge, and Infrared. Device submenus combine Connect with their controls; Mobile Adapter configuration moves from Preferences into its device submenu.
- Fix Android CI setup by replacing the retired SDK tools package request with platform-tools.
Merged pull requests
- #679 — Add HuC cartridge IR and GBKiss Link file transfers — @trekawek
- #680 — Fix Android CI SDK package setup — @trekawek
- #681 — Add the Bardigun optical barcode reader — @trekawek
- #682 — Add Pocket Sonar MBC1S sensor emulation — @trekawek
- #683 — Add Turbo File GB and Turbo File Advance support — @trekawek
- #684 — Add Singer and Jaguar sewing machine emulation — @trekawek
- #686 — Add BESS state loading and saving — @trekawek
- #687 — Group peripheral connections and controls by device — @trekawek
Fixed issues
- #672 — GBKiss emulation.
- #674 — Barcode Taisen Bardigun emulation.
- #675 — Pocket Sonar emulation.
- #676 — Turbo File peripheral support; Advance remains an internal compatibility model.
- #677 — Game Boy sewing machine emulation.
- #685 — BESS-compatible save states.

Sewing machine controls displaying an original synthetic pattern (#677).
Known platform limitations
On macOS, game controllers require a compatible system SDL2 installation; keyboard input and emulation remain usable without it.
Full changelog: 2.1.5…2.1.6
- coffee-gb-2.1.5Coffee GB 2.1.52026-09-13 · 2026-09-13 20:51 UTC
查看更新说明
This release fixes Razor Freestyle Scooter multiplayer startup and race disconnects, and keeps netplay input logs available only as an internal diagnostic feature.
- Starting netplay in Razor now lets the host coordinate a fresh boot of both games with the link connected. The reboot explicitly bypasses autosave loading on both machines.
- Opposing directional inputs are resolved consistently, preventing the race disconnect reproduced from a supplied input log.
- Netplay diagnostic logs capture every player's input and rollback timing. They are hidden and disabled by default; developers can opt in with
-Dcoffeegb.netplay.inputRecording=true. Ordinary input recording and playback are unchanged.
Merged pull requests
- #673 — Fix Razor netplay startup and race disconnects, by @trekawek.
- #678 — Hide netplay input diagnostics behind an opt-in flag, by @trekawek.
Fixed issues
- #663 — Razor Freestyle Scooter multiplayer remains unavailable after loading a ROM before connecting; the follow-up fix also addresses disconnects during racing.

Razor remains racing after the input sequence that previously broke the link (#663).
Known platform limitations
On macOS, game controllers require a compatible system SDL2 installation; keyboard input and emulation remain usable without it.
Full changelog: 2.1.4 → 2.1.5
- coffee-gb-2.1.4Coffee GB 2.1.42026-09-09 · 2026-09-09 19:35 UTC
查看更新说明
What's changed
- Expand performance-mode batching across CPU, PPU, DMA, memory access, and peripherals, with additional state/replay regression coverage, diagnostics, and Android performance tooling.
- Fix simultaneous 2P connections in Mach Go Go Go when the machines' timing phases differ. Each player still needs a saved car: complete a solo race and choose きろくする (Record) before entering 2P Battle.
- Prevent competing Coffee GB processes sharing a Saves directory from freezing the host during netplay autosave handoff. All instances sharing Saves should use the updated version.
- Restore GBVisualizer audio when skipping the boot ROM and initialize deterministic post-boot CPU, audio, palette, joypad, and DMA register defaults. Refresh state and replay baselines for these defaults; older SKIP boot-reference recordings may report divergence.
Merged pull requests
- #668: Expand performance-mode batching and regression coverage — @trekawek.
- #670: Fix simultaneous 2P connection in Mach Go Go Go — @trekawek.
- #671: Prevent autosave races from freezing netplay connections — @trekawek.
- #669: Initialize skipped-boot registers and fix GBVisualizer audio — @trekawek.
Fixed issues
- #665: Fix the connection-time host freeze caused by shared-save autosave races, reported with Master Karateka.
- #666: Fix Mach Go Go Go's simultaneous 2P connection failure.
- #667: Restore missing GBVisualizer music with skipped boot.

Mach Go Go Go reaches course selection after the connection fix (#666).
Known platform limitations
On macOS, game controllers require a compatible system SDL2 installation; keyboard input and emulation remain usable without it.
Full changelog: coffee-gb-2.1.3...coffee-gb-2.1.4
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Coffee GB
Coffee GB emulates the original Game Boy (GB/DMG) and Game Boy Color (GBC/CGB). It is built for high compatibility across the historic game library, unusual cartridges and accessories, and modern homebrew, demos, and diagnostic ROMs. The reusable emulation core is written in Java; the desktop application and its orchestration layer use Kotlin and Java.
Download the latest Coffee GB release
Features
- Game Boy and Game Boy Color emulation, with Super Game Boy borders and palettes.
- High compatibility across commercial games, unusual cartridges, homebrew, demos, and diagnostic ROMs.
- Save states and rewind, including ten save slots, named states, previews, autosave and resume, BESS state interchange, screenshots, deterministic input recordings, and battery-backed saves.
- Easy game loading with drag and drop and support for
.gb,.gbc, and.romfiles, either directly or from ZIP and 7z archives. - Rollback netplay for link-cable games, with synchronized infrared communication through CGB and HuC-1/HuC-3 cartridge hardware.
- GBKiss Link for sending and receiving
.gbffiles through the cartridge's infrared port. - Customizable display and sound, including fullscreen, scaling, rotation, grayscale, color correction, LCD ghosting, audio-device selection, and volume and latency controls.
- Keyboard and game-controller support, including independent controls for up to four players in compatible Super Game Boy games.
- Broad cartridge and accessory support, including real-time clocks, rumble, tilt controls, Game Boy Camera, Game Boy Printer, Barcode Boy, Bardigun Reader, Full Changer, Pocket Sonar, Turbo File GB/Advance, Singer/Jaguar sewing machines, and Datel Action Replay pass-through.
- Game Genie and GameShark cheats, with a bundled searchable libretro cheat database.
ROM files are not included.
Configuration
On Windows, Coffee GB stores its settings in
%LOCALAPPDATA%\Coffee GB\coffeegb.properties. If that file does not exist,
settings from the earlier %USERPROFILE%\.coffeegb.properties location are
loaded when available; subsequent changes are saved to the new location. On
other platforms, the default settings file remains ~/.coffeegb.properties.
To keep the properties file beside the application, start the JAR with:
java -jar coffee-gb.jar --portable
Portable mode uses coffeegb.properties in the JAR's directory and does not
import the normal settings file. With an unpacked native application image it
uses the launcher directory. The Windows single-file EXE extracts its launcher
to a temporary directory, so use the JAR or an unpacked application image for
portable settings. The application directory must be writable. This option
controls the properties file; game saves and other application data keep their
own locations.
Controls
Default keyboard controls:
| Action | Key |
|---|---|
| D-pad | Arrow keys |
| A / B | Z / X |
| Start / Select | Enter / Shift |
| Open menu / resume paused game | Esc |
| Pause | Space |
| Save / load state | F5 / F7 |
| Take screenshot | F12 |
| Start input recording | Ctrl/Cmd+Shift+R |
| Rewind | Hold Backspace |
| Toggle fullscreen | F11 |
Keyboard and game-controller bindings can be changed in File > Preferences…. The same window contains display, sound, and save settings. On macOS, game-controller input requires a compatible system SDL2 installation; keyboard input works without it.
Use Game > Manage States… to choose among the ten save slots, name states, preview them, and export them. Autosave and resume settings are under File > Preferences… > Saves & Rewind. See save states, autosave, screenshots, input recording, and rewind for more details. Pause, save states, and rewind are unavailable during netplay.
Use File > Load BESS state and File > Save BESS state to exchange states with other BESS-compatible emulators. Open the matching ROM first; see the BESS compatibility notes.
Compatibility
Compatibility is a defining feature of Coffee GB. Its test profiles exercise 5,858 automated verdicts from 17 suite families, covering all popular Game Boy and Game Boy Color test suites, and every verdict passes. Coffee GB also earns the maximum score in GBEmulatorShootout.
Every exact-reference image suite is pixel-perfect: both Acid2 tests, CGB-ACID-HELL, Strikethrough, all four CasualPokePlayer tests, and all 24 Mealybug Tearoom tests.
| Test suite | Cases exercised | Current result |
|---|---|---|
| Blargg | 54 | 54 / 54 pass* |
| Mooneye Test Suite | 130 | 130 / 130 selected cases pass |
| RTC3Test | 3 | 3 / 3 menus pass |
| SameSuite | 71 | 71 / 71 later-revision cases pass |
| Gambatte HWTests | 4,674 | 4,674 / 4,674 canonical DMG/CGB verdicts match hardware |
| BullyGB | 2 | 2 / 2 DMG and CGB cases pass |
| MBC30Test | 1 | 1 / 1 ROM banking and SRAM case passes |
| GBEmulatorShootout — specific tests | 9 | Maximum score; 8 / 8 images and the ROM+RAM test pass |
| DMG-ACID2 and CGB-ACID2 | 2 | 2 / 2 are pixel-perfect |
| CGB-ACID-HELL | 1 | 1 / 1 is pixel-perfect |
| Strikethrough | 1 | 1 / 1 is pixel-perfect |
| CasualPokePlayer test ROMs | 4 | 4 / 4 are pixel-perfect |
| Mealybug Tearoom | 24 | 24 / 24 are pixel-perfect |
| GBMicrotest | 482 | 482 / 482 machine-readable verdicts pass; 31 additional diagnostics have no automated verdict |
| DocBoy Test Suite | 162 | 162 / 162 selected machine-readable DMG, CGB, and CGB-in-DMG-mode verdicts pass |
| gbc-hw-tests | 221 | 221 / 221 selected hardware-reference verdicts match exactly |
| Misc.-GB-Tests | 17 | 17 / 17 pass verdicts match |
| Total | 5,858 | 5,858 / 5,858 automated verdicts pass |
* Blargg's aggregate and individual checks overlap by design.
Every automated case must produce its documented pass value, match its selected external hardware reference, or satisfy its upstream image oracle. The source revisions, archive membership, hardware models, and ROM revisions used by these profiles are fixed for reproducibility. GBMicrotest's 31 non-verdict diagnostics are tracked separately and are not included in the 5,858 automated verdicts.
Netplay
For link-cable multiplayer, open Game > Netplay…. One player selects Host > Start hosting; the other selects Join, enters the host's address, and selects Join game. Netplay uses a direct, unencrypted TCP connection, so play only with people and networks you trust. When a game is running under an SGB or SGB2 profile, starting or joining netplay restarts that game in DMG mode for the current session without changing the saved hardware-profile preference.
Project history
Coffee GB began as a six-week deep dive into how a small computer works. The 2017 origin story covers the CPU, pixel pipeline, audio, early compatibility testing, and first GBC implementation. The later rollback-netplay article explains how per-frame snapshots made high-latency link play practical.
| Date | Milestone |
|---|---|
| 31 Dec 2016 | The project starts. |
| 14 Jan 2017 | The first playable version runs Tetris, two weeks after the initial commit. |
| 5–7 Feb 2017 | Game Boy Color support lands with double-speed mode, banked RAM and VRAM, color graphics, and the GBC boot path. |
| 22 Dec 2017 | Coffee GB 1.0.0 is released. |
| 29 Feb 2024 | Save-state support is added. |
| Jul 2025 | Fast mementos enable rollback netplay, released in 1.5.0. |
| Aug 2025 | Super Game Boy borders and palettes arrive alongside Super Game Boy command support and predefined game palettes. |
Kudos
Coffee GB owes a great deal to the Game Boy hardware research community and to the authors of every test suite linked above.
Thanks to:
- The authors and contributors of SuperSnes9x for their research, testing, and documentation of Game Boy and Game Boy Color link cable compatibility.
- Shonumi for detailed research into Game Boy hardware and peripherals in the Edge of Emulation series.
- @ScottNash042 for issue reports and feature suggestions.
License
Coffee GB is available under the MIT License.