{"id":22553665,"url":"https://github.com/drhelius/gearboy","last_synced_at":"2026-04-02T18:29:38.143Z","repository":{"id":4016789,"uuid":"5116054","full_name":"drhelius/Gearboy","owner":"drhelius","description":"Game Boy / Gameboy Color emulator and debugger for macOS, Windows, Linux, BSD and RetroArch.","archived":false,"fork":false,"pushed_at":"2025-05-12T18:32:02.000Z","size":70831,"stargazers_count":969,"open_issues_count":22,"forks_count":142,"subscribers_count":47,"default_branch":"master","last_synced_at":"2025-05-14T19:07:58.006Z","etag":null,"topics":["bsd","emulation","emulator","game-boy","gameboy","gameboy-color-emulator","gameboy-emulator","libretro","linux","nintendo-gameboy","raspberry-pi","retroarch"],"latest_commit_sha":null,"homepage":"https://x.com/drhelius","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/drhelius.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"drhelius","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2012-07-19T21:45:46.000Z","updated_at":"2025-05-14T00:54:20.000Z","dependencies_parsed_at":"2023-01-13T13:00:29.133Z","dependency_job_id":"e4fedbe5-5f80-45bc-bebe-f45a4438bd0b","html_url":"https://github.com/drhelius/Gearboy","commit_stats":{"total_commits":1434,"total_committers":41,"mean_commits":34.97560975609756,"dds":0.0829846582984658,"last_synced_commit":"8161290995c685de47db8f72fc17ecc7f7e006a1"},"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drhelius%2FGearboy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drhelius%2FGearboy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drhelius%2FGearboy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drhelius%2FGearboy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/drhelius","download_url":"https://codeload.github.com/drhelius/Gearboy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254209859,"owners_count":22032897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bsd","emulation","emulator","game-boy","gameboy","gameboy-color-emulator","gameboy-emulator","libretro","linux","nintendo-gameboy","raspberry-pi","retroarch"],"created_at":"2024-12-07T18:10:40.324Z","updated_at":"2026-04-02T18:29:38.134Z","avatar_url":"https://github.com/drhelius.png","language":"C++","readme":"# Gearboy\n\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/drhelius/Gearboy/gearboy.yml)](https://github.com/drhelius/Gearboy/actions/workflows/gearboy.yml)\n[![GitHub Releases)](https://img.shields.io/github/v/tag/drhelius/Gearboy?label=version)](https://github.com/drhelius/Gearboy/releases)\n[![commits)](https://img.shields.io/github/commit-activity/t/drhelius/Gearboy)](https://github.com/drhelius/Gearboy/commits/master)\n[![GitHub contributors](https://img.shields.io/github/contributors/drhelius/Gearboy)](https://github.com/drhelius/Gearboy/graphs/contributors)\n[![GitHub Sponsors](https://img.shields.io/github/sponsors/drhelius)](https://github.com/sponsors/drhelius)\n[![License](https://img.shields.io/github/license/drhelius/Gearboy)](https://github.com/drhelius/Gearboy/blob/master/LICENSE)\n[![Twitter Follow](https://img.shields.io/twitter/follow/drhelius)](https://x.com/drhelius)\n\nGearboy is an accurate cross-platform Game Boy / Game Boy Color / Super Game Boy emulator written in C++ that runs on Windows, macOS, Linux, BSD and RetroArch, with an embedded MCP server for debugging and tooling.\n\nThis is an open source project with its ongoing development made possible thanks to the support by these awesome [backers](backers.md). If you find it useful, please consider [sponsoring](https://github.com/sponsors/drhelius).\n\nDon't hesitate to report bugs or ask for new features by [opening an issue](https://github.com/drhelius/Gearboy/issues).\n\n\u003cimg src=\"http://www.geardome.com/files/gearboy/gearboy_debug_05.png\"\u003e\n\n## Downloads\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n      \u003cth\u003ePlatform\u003c/th\u003e\n      \u003cth\u003eArchitecture\u003c/th\u003e\n      \u003cth\u003eDownload Link\u003c/th\u003e\n    \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd rowspan=\"2\"\u003e\u003cstrong\u003eWindows\u003c/strong\u003e\u003c/td\u003e\n      \u003ctd\u003eDesktop x64\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/drhelius/Gearboy/releases/download/3.8.2/Gearboy-3.8.2-desktop-windows-x64.zip\"\u003eGearboy-3.8.2-desktop-windows-x64.zip\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eDesktop ARM64\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/drhelius/Gearboy/releases/download/3.8.2/Gearboy-3.8.2-desktop-windows-arm64.zip\"\u003eGearboy-3.8.2-desktop-windows-arm64.zip\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd rowspan=\"3\"\u003e\u003cstrong\u003emacOS\u003c/strong\u003e\u003c/td\u003e\n      \u003ctd\u003eHomebrew\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003ebrew install --cask drhelius/geardome/gearboy\u003c/code\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eDesktop Apple Silicon\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/drhelius/Gearboy/releases/download/3.8.2/Gearboy-3.8.2-desktop-macos-arm64.zip\"\u003eGearboy-3.8.2-desktop-macos-arm64.zip\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eDesktop Intel\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/drhelius/Gearboy/releases/download/3.8.2/Gearboy-3.8.2-desktop-macos-intel.zip\"\u003eGearboy-3.8.2-desktop-macos-intel.zip\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd rowspan=\"4\"\u003e\u003cstrong\u003eLinux\u003c/strong\u003e\u003c/td\u003e\n      \u003ctd\u003eUbuntu PPA\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/drhelius/ppa-geardome\"\u003edrhelius/ppa-geardome\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eDesktop Ubuntu 24.04 x64\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/drhelius/Gearboy/releases/download/3.8.2/Gearboy-3.8.2-desktop-ubuntu24.04-x64.zip\"\u003eGearboy-3.8.2-desktop-ubuntu24.04-x64.zip\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eDesktop Ubuntu 22.04 x64\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/drhelius/Gearboy/releases/download/3.8.2/Gearboy-3.8.2-desktop-ubuntu22.04-x64.zip\"\u003eGearboy-3.8.2-desktop-ubuntu22.04-x64.zip\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003eDesktop Ubuntu 24.04 ARM64\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/drhelius/Gearboy/releases/download/3.8.2/Gearboy-3.8.2-desktop-ubuntu24.04-arm64.zip\"\u003eGearboy-3.8.2-desktop-ubuntu24.04-arm64.zip\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cstrong\u003eMCPB\u003c/strong\u003e\u003c/td\u003e\n      \u003ctd\u003eAll platforms\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"MCP_README.md\"\u003eMCP Readme\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cstrong\u003eRetroArch\u003c/strong\u003e\u003c/td\u003e\n      \u003ctd\u003eAll platforms\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://docs.libretro.com/library/gearboy/\"\u003eLibretro core documentation\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cstrong\u003eDev Builds\u003c/strong\u003e\u003c/td\u003e\n      \u003ctd\u003eAll platforms\u003c/td\u003e\n      \u003ctd\u003e\u003ca href=\"https://github.com/drhelius/Gearboy/actions/workflows/gearboy.yml\"\u003eGitHub Actions\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n**Notes:**\n- **Windows**: May need [Visual C++ Redistributable](https://go.microsoft.com/fwlink/?LinkId=746572) and [OpenGL Compatibility Pack](https://apps.microsoft.com/detail/9nqpsl29bfff)\n- **Linux**: May need `libsdl3`\n\n## Features\n\n- Supported cartridges: ROM, ROM + RAM, MBC1, MBC2, MBC3, MBC5, MBC7, HuC-1, HuC-3, MMM01, Pocket Camera, TAMA5 and MBC1M.\n- Game Boy Color support.\n- Super Game Boy support.\n- LCD screen ghosting effect as seen in the original Game Boy.\n- LCD dot matrix effect.\n- Battery powered RAM save support.\n- Save states.\n- Compressed rom support (ZIP).\n- Bootrom (BIOS) support.\n- *Game Genie* and *GameShark* cheat support.\n- VGM recorder.\n- Supported platforms (standalone): Windows, Linux, BSD and macOS.\n- Supported platforms (libretro): Windows, Linux, macOS, Raspberry Pi, Android, iOS, tvOS, webOS, PlayStation Vita, PlayStation 3, Nintendo 3DS, Nintendo GameCube, Nintendo Wii, Nintendo WiiU, Nintendo Switch, Emscripten, Classic Mini systems (NES, SNES, C64, ...), OpenDingux, RetroFW and QNX.\n- Full debugger with just-in-time disassembler, CPU breakpoints, memory access breakpoints, code navigation (goto address, JP JR and CALL double clicking), debug symbols, automatic labels, memory editor, trace logger, IO inspector and VRAM viewer including tiles, sprites, backgrounds and palettes.\n- MCP server for AI-assisted debugging with GitHub Copilot, Claude, ChatGPT and similar, exposing tools for execution control, memory inspection, hardware status, and more.\n- Windows and Linux *Portable Mode*.\n- ROM loading from the command line by adding the ROM path as an argument.\n- ROM loading using drag \u0026 drop.\n- Support for modern game controllers through [gamecontrollerdb.txt](https://github.com/mdqinc/SDL_GameControllerDB) file located in the same directory as the application binary.\n\n## Tips\n\n### Basic Usage\n- **Boot ROM**: Gearboy can run with or without a Boot ROM. You can optionally load a Boot ROM and enable it.\n- **Mouse Cursor**: Automatically hides when hovering over the main output window or when Main Menu is disabled.\n- **Portable Mode**: Create an empty file named `portable.ini` in the same directory as the application binary to enable portable mode.\n\n### Debugging Features\n- **Docking Windows**: In debug mode, you can dock windows together by pressing SHIFT and dragging a window onto another.\n- **Multi-viewport**: In Windows or macOS, you can enable \"multi-viewport\" in the debug menu. You must restart the emulator for the change to take effect. Once enabled, you can drag debugger windows outside the main window.\n- **Single Instance**: You can enable \"Single Instance\" in the ```Emulator``` menu. When enabled, opening a ROM while another instance is running will send the ROM to the running instance instead of starting a new one.\n- **Debug Symbols**: The emulator automatically tries to load a symbol file when loading a ROM (.sym, .noi). For example, for ```path_to_rom_file.gb``` it tries to load ```path_to_rom_file.sym```. You can also load a symbol file using the GUI or the CLI. It supports RGBDS, GBDK-2020, WLA-DX, no$gmb, SDCC/NoICE (.noi), EQU and generic file formats.\n\n### Command Line Usage\n```\ngearboy [options] [rom_file] [symbol_file]\n\nArguments:\n  [rom_file]               ROM file: accepts ROMs (.gb, .dmg, .gbc, .cgb, .sgb) or ZIP (.zip)\n  [symbol_file]            Optional symbol file for debugging\n\nOptions:\n  -f, --fullscreen         Start in fullscreen mode\n  -w, --windowed           Start in windowed mode with menu visible\n      --mcp-stdio          Auto-start MCP server with stdio transport\n      --mcp-http           Auto-start MCP server with HTTP transport\n      --mcp-http-port N    HTTP port for MCP server (default: 7777)\n      --headless           Run without GUI (requires --mcp-stdio or --mcp-http)\n  -v, --version            Display version information\n  -h, --help               Display this help message\n```\n\n### MCP Server\n\nGearboy includes a [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server that enables AI-assisted debugging through AI agents like GitHub Copilot, Claude, ChatGPT and similar. The server provides tools for execution control, memory inspection, breakpoints, disassembly, hardware status, and more.\n\nFor complete setup instructions and tool documentation, see [MCP_README.md](MCP_README.md).\n\n### Agent Skills\n\nGearboy provides [Agent Skills](https://agentskills.io/) that teach AI assistants how to effectively use the emulator for specific tasks:\n\n- **[gearboy-debugging](skills/gearboy-debugging/SKILL.md)** — Game debugging, code tracing, breakpoint management, hardware inspection, and reverse engineering.\n- **[gearboy-romhacking](skills/gearboy-romhacking/SKILL.md)** — Cheat creation, memory searching, ROM data modification, text translation, and game patching.\n\nInstall with `npx skills add drhelius/gearboy`. See the [skills README](skills/README.md) for details.\n\n## Build Instructions\n\n### Windows\n\n- Install Microsoft Visual Studio Community 2022 or later.\n- Download the latest SDL3 VC development libraries from [SDL3 Releases](https://github.com/libsdl-org/SDL/releases) (the file named `SDL3-devel-x.y.z-VC.zip`).\n- Extract the archive and rename the resulting folder (e.g. `SDL3-x.y.z`) to `SDL3`.\n- Place the `SDL3` folder inside `platforms/windows/dependencies/` so that the include path is `platforms/windows/dependencies/SDL3/include/SDL3/`.\n- Open the Gearboy Visual Studio solution `platforms/windows/Gearboy.sln` and build.\n\n### macOS\n\n- Install Xcode and run `xcode-select --install` in the terminal for the compiler to be available on the command line.\n- Run these commands to generate a Mac *app* bundle:\n\n``` shell\nbrew install sdl3\ncd platforms/macos\nmake dist\n```\n\n### Linux\n\n- Ubuntu / Debian / Raspberry Pi (Raspbian):\n\nIf you are using Ubuntu 25.04 or later, you can install SDL3 directly. Use the following commands to build:\n\n``` shell\nsudo apt install build-essential libsdl3-dev\ncd platforms/linux\nmake\n```\n\nFor older Ubuntu versions (22.04, 24.04), you need to build SDL3 from source first. Use the following commands to build both SDL3 and Gearlynx:\n\n``` shell\nsudo apt install build-essential cmake \\\n  libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxfixes-dev \\\n  libxi-dev libxss-dev libxkbcommon-dev libwayland-dev libdecor-0-dev \\\n  libdrm-dev libgbm-dev libgl1-mesa-dev libegl1-mesa-dev libdbus-1-dev libudev-dev libxtst-dev\nSDL3_TAG=$(curl -s https://api.github.com/repos/libsdl-org/SDL/releases/latest | jq -r '.tag_name')\ngit clone --depth 1 --branch \"$SDL3_TAG\" https://github.com/libsdl-org/SDL.git /tmp/SDL3\ncmake -S /tmp/SDL3 -B /tmp/SDL3/build -DCMAKE_INSTALL_PREFIX=/usr -DSDL_TESTS=OFF -DSDL_EXAMPLES=OFF\ncmake --build /tmp/SDL3/build -j$(nproc)\nsudo cmake --install /tmp/SDL3/build\ncd platforms/linux\nmake\n```\n\n- Fedora:\n\n``` shell\nsudo dnf install @development-tools gcc-c++ SDL3-devel\ncd platforms/linux\nmake\n```\n\n- Arch Linux:\n\n``` shell\nsudo pacman -S base-devel sdl3\ncd platforms/linux\nmake\n```\n\n### BSD\n\n- FreeBSD:\n\n``` shell\nsu root -c \"pkg install -y git gmake pkgconf SDL3 lang/gcc\"\ncd platforms/bsd\ngmake\n```\n\n- NetBSD:\n\n``` shell\nsu root -c \"pkgin install gmake pkgconf SDL3 lang/gcc\"\ncd platforms/bsd\ngmake\n```\n\n### Libretro\n\n- Ubuntu / Debian / Raspberry Pi (Raspbian):\n\n``` shell\nsudo apt install build-essential\ncd platforms/libretro\nmake\n```\n\n- Fedora:\n\n``` shell\nsudo dnf install @development-tools gcc-c++\ncd platforms/libretro\nmake\n```\n\n## Screenshots\n\n![Screenshot](http://www.geardome.com/files/gearboy/gearboy_004.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_006.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_008.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_022.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_013.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_023.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_015.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_029.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_011.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_024.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_017.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_016.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_034.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_026.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_018.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_025.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_021.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_027.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_019.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_020.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_031.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_028.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_007.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_009.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_010.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_005.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_012.png)![Screenshot](http://www.geardome.com/files/gearboy/gearboy_014.png)\n\n## Contributors\n\nThank you to all the people who have already contributed to Gearboy!\n\n[![Contributors](https://contrib.rocks/image?repo=drhelius/gearboy)](https://github.com/drhelius/gearboy/graphs/contributors)\n\n## License\n\nGearboy is licensed under the GNU General Public License v3.0 License, see [LICENSE](LICENSE) for more information.\n","funding_links":["https://github.com/sponsors/drhelius"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrhelius%2Fgearboy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrhelius%2Fgearboy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrhelius%2Fgearboy/lists"}