{"id":25274602,"url":"https://github.com/xkevio/kevboy","last_synced_at":"2025-10-27T12:30:51.085Z","repository":{"id":65972163,"uuid":"541508230","full_name":"xkevio/kevboy","owner":"xkevio","description":"A Game Boy and Game Boy Color emulator in Rust.","archived":false,"fork":false,"pushed_at":"2024-02-06T00:31:43.000Z","size":31490,"stargazers_count":32,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-05-16T04:17:10.699Z","etag":null,"topics":["dmg","emulator","gameboy","gbc","rust"],"latest_commit_sha":null,"homepage":"https://xkev.io/gameboy","language":"Rust","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/xkevio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2022-09-26T09:34:52.000Z","updated_at":"2024-03-30T19:46:26.000Z","dependencies_parsed_at":"2023-12-12T11:42:11.830Z","dependency_job_id":"84d8985f-e3a6-4dd7-9426-c063fb05695c","html_url":"https://github.com/xkevio/kevboy","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xkevio%2Fkevboy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xkevio%2Fkevboy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xkevio%2Fkevboy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xkevio%2Fkevboy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xkevio","download_url":"https://codeload.github.com/xkevio/kevboy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238488596,"owners_count":19480792,"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":["dmg","emulator","gameboy","gbc","rust"],"created_at":"2025-02-12T14:31:17.000Z","updated_at":"2025-10-27T12:30:45.672Z","avatar_url":"https://github.com/xkevio.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WIP Game Boy \u0026 Game Boy Color Emulator\r\n\r\n\u003cp float=\"left\" align=\"middle\"\u003e\r\n\u003cimg src=\"icon/crystal.png\" alt=\"Pokemon Crystal Title Screen\" width=\"450\" /\u003e\r\n\u003cimg src=\"icon/shantae.png\" alt=\"Shantae Title Screen\" width=\"350\" /\u003e\r\n\u003c/p\u003e\r\n\r\n## Installation\r\n\r\n#### Pre-built Binaries:\r\n\r\nCheck the [`Releases`](https://github.com/xkevio/kevboy/releases) page and download an already built version of `Kevboy`.\r\n\r\nOur CI workflow currently produces binaries for:\r\n\r\n- Windows 64-bit (`x86_64-pc-windows-msvc`)\r\n- Ubuntu 64-bit (`x86_64-unknown-linux-gnu`)\r\n- Mac OS x86 (`x86_64-apple-darwin`)\r\n\r\n#### Manual:\r\n\r\n- Clone with `git@github.com:xkevio/kevboy.git`\r\n- Build the project in release mode with [`cargo`](https://rustup.rs/): `cargo build --release`\r\n\r\n## Usage\r\n\r\nOpen a ROM via `File \u003e Open ROM`.\r\n\r\nA boot rom is not provided, the state of the Game Boy after the boot rom finishes is emulated.\r\n\r\nSerial (link cable) is emulated in so far that games that rely on it do work, though no emulation of actual linking between two Game Boys is implemented.\r\n\r\n**Supported Memory Bank Controllers:**\r\n\r\n- **MBC0**\r\n- **MBC1**\r\n- **MBC2**\r\n- **MBC3** (without RTC)\r\n- **MBC5**\r\n\r\n## Controls:\r\n\r\nControls may be customized via `Options \u003e Controls`. For manual editing (not recommended, key order needs to be preserved), settings are stored here:\r\n\r\n- Linux: `/home/UserName/.local/share/Kevboy`\r\n- macOS: `/Users/UserName/Library/Application Support/Kevboy`\r\n- Windows: `C:\\Users\\UserName\\AppData\\Roaming\\Kevboy`\r\n\r\nSome keys might not be supported.\r\n\r\nFor a full list, see: https://docs.rs/egui/latest/egui/enum.Key.html\r\n\r\n|   **Keyboard**   | **Game Boy** |\r\n|:----------------:|:------------:|\r\n|   \u003ckbd\u003eO\u003c/kbd\u003e   |     `B`      |\r\n|   \u003ckbd\u003eP\u003c/kbd\u003e   |     `A`      |\r\n|   \u003ckbd\u003eW\u003c/kbd\u003e   |     `Up`     |\r\n|   \u003ckbd\u003eA\u003c/kbd\u003e   |    `Left`    |\r\n|   \u003ckbd\u003eS\u003c/kbd\u003e   |    `Down`    |\r\n|   \u003ckbd\u003eD\u003c/kbd\u003e   |   `Right`    |\r\n| \u003ckbd\u003eEnter\u003c/kbd\u003e |   `Start`    |\r\n|   \u003ckbd\u003eQ\u003c/kbd\u003e   |   `Shift`    |\r\n\r\n## Passed tests:\r\n\r\n### CPU tests:\r\n\r\n| Test              | Status |\r\n|-------------------|--------|\r\n| `cpu_instrs.gb`   | ✅      |\r\n| `mem-timing.gb`   | ✅      |\r\n| `instr_timing.gb` | ✅      |\r\n\r\n### PPU tests:\r\n\r\n| Test                           | Status |\r\n|--------------------------------|--------|\r\n| `dmg-acid2.gb`, `cgb-acid2.gb` | ✅      |\r\n| `sprite_priority.gb`           | ✅      |\r\n\r\n#### Timer tests:\r\n\r\n| Test                      | Status |\r\n|---------------------------|---------|\r\n| `div_write.gb`            | ✅      |\r\n| `tim00.gb`                | ✅      |\r\n| `tim00_div_trigger.gb`    | ✅      |\r\n| `tim01.gb`                | ✅      |\r\n| `tim01_div_trigger.gb`    | ✅      |\r\n| `tim10.gb`                | ✅      |\r\n| `tim10_div_trigger.gb`    | ✅      |\r\n| `tim11.gb`                | ✅      |\r\n| `tim11_div_trigger.gb`    | ✅      |\r\n| `tima_reload.gb`          | ✅      |\r\n| `tima_write_reloading.gb` | ✅      |\r\n| `tma_write_reloading.gb`  | ✅      |\r\n\r\n## TODO\r\n\r\n- [x] Implement fast-forward feature\r\n- [x] Gamepad support\r\n- [x] Implement enabling and disabling individual sound channels\r\n- [ ] More automatic saving (`mmap`)\r\n- [ ] Implement the Real Time Clock (RTC) in MBC3\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxkevio%2Fkevboy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxkevio%2Fkevboy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxkevio%2Fkevboy/lists"}