{"id":24674075,"url":"https://github.com/jabolol/gameboy","last_synced_at":"2025-08-26T07:13:31.468Z","repository":{"id":155086139,"uuid":"625537976","full_name":"Jabolol/gameboy","owner":"Jabolol","description":"An accurate GameBoy emulator written in C from scratch ","archived":false,"fork":false,"pushed_at":"2025-03-13T22:46:28.000Z","size":7441,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-06T14:42:12.932Z","etag":null,"topics":["c","emulator","gameboy"],"latest_commit_sha":null,"homepage":"https://gameboy.deno.dev/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jabolol.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2023-04-09T12:30:23.000Z","updated_at":"2025-03-13T22:46:29.000Z","dependencies_parsed_at":"2024-12-22T01:21:31.278Z","dependency_job_id":"ad291e1a-1c0d-4c24-b544-950e2b002b84","html_url":"https://github.com/Jabolol/gameboy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Jabolol/gameboy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jabolol%2Fgameboy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jabolol%2Fgameboy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jabolol%2Fgameboy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jabolol%2Fgameboy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jabolol","download_url":"https://codeload.github.com/Jabolol/gameboy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jabolol%2Fgameboy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272187886,"owners_count":24888687,"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","status":"online","status_checked_at":"2025-08-26T02:00:07.904Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["c","emulator","gameboy"],"created_at":"2025-01-26T11:15:02.759Z","updated_at":"2025-08-26T07:13:31.448Z","avatar_url":"https://github.com/Jabolol.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gameboy\n\nAn accurate **gameboy** emulator written in C from scratch.\n\n![](./assets/super-mario.png)\n\n## development\n\nIn order to run the emulator, you need to have `cmake`, a build system like\n`ninja` and a C compiler. `SDL2` is included as a submodule and will be compiled\nalong with the project.\n\n1. Clone the repository\n\n```bash\ngit clone --recurse-submodules git@github.com:Jabolol/gameboy.git .\n```\n\n2. Add the `ROMs` directory with the ROMs to be loaded in the web version\n\n```bash\nmkdir ROMs \u0026\u0026 cp /path/to/rom.gb ROMs\n```\n\n3. Compile the project\n\n```bash\ncmake -B build -G Ninja \u0026\u0026 cmake --build build\n```\n\n4. Run the emulator\n\n```bash\n./build/gameboy /path/to/rom.gb\n```\n\n## features\n\n- [x] Bus (Memory Management)\n- [x] CPU\n- [x] PPU (Graphics)\n- [x] Input (Joypad)\n- [x] Timer\n- [x] Interrupts (V-Blank, LCD, Timer, Serial, Joypad)\n- [x] MBC1 - MBC7 (Memory Bank Controllers 1-7)\n- [x] Save States (.sav files)\n- [x] Sound (Square Wave, Wave, Noise)\n- [x] Web version at [gameboy.deno.dev](https://gameboy.deno.dev/)\n\n## controls\n\n- `Arrow Keys` - D-Pad\n- `A` - A\n- `B` - B\n- `U` - Volume Up\n- `D` - Volume Down\n- `Enter` - Start\n\n## web version\n\nThe emulator is also available as a web version using `emscripten` and `deno`.\nIn order to run the web version, you need to have `deno` installed.\n\nSome games are preloaded in the web version, just append `?game=${game}` to the\nurl to load a different game. The supported games are shown\n[here](./www/static/inject.js).\n\nThe web version will bundle the ROMs available at `ROMs` directory and serve\nthem at `http://localhost:8000`.\n\n```bash\ndeno task --cwd www start\n```\n\n## screenshots\n\n\u003e [Legend of Zelda, The - Link's Awakening](https://gameboy.deno.dev/?game=zelda)\n\n![](./assets/zelda.png)\n\n\u003e [Pokemon - Yellow Version - Special Pikachu Edition](https://gameboy.deno.dev/?game=pokemon-yellow)\n\n![](./assets/pokemon-yellow.png)\n\n\u003e [Dr. Mario](https://gameboy.deno.dev/?game=dr-mario)\n\n![](./assets/dr-mario.png)\n\n\u003e [Mega Man - Dr. Wily's Revenge](https://gameboy.deno.dev/?game=megaman-willy)\n\n![](./assets/megaman.png)\n\n\u003e [Contra - The Alien Wars](https://gameboy.deno.dev/?game=contra)\n\n![](./assets/contra.png)\n\n\u003e [Kirby - Dream Land](https://gameboy.deno.dev/?game=kirby-dream)\n\n![](./assets/kirby.png)\n\n\u003e [Kirby - Dream Land 2](https://gameboy.deno.dev/?game=kirby-dream-2)\n\n![](./assets/kirby-2.png)\n\n\u003e [Tetris](https://gameboy.deno.dev/?game=tetris)\n\n![](./assets/tetris.png)\n\n## resources\n\n- [Gameboy CPU Manual](http://marc.rawer.de/Gameboy/Docs/GBCPUman.pdf): A\n  comprehensive guide to the Gameboy CPU.\n- [Gameboy Opcodes](https://www.pastraiser.com/cpu/gameboy/gameboy_opcodes.html):\n  List of all opcodes for the Gameboy CPU.\n- [Gameboy Pan Docs](https://gbdev.io/pandocs/): A detailed guide to the Gameboy\n  hardware.\n\n## license\n\nThis project is licensed under the MIT License - see the [LICENSE](./LICENSE)\nfile for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjabolol%2Fgameboy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjabolol%2Fgameboy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjabolol%2Fgameboy/lists"}