{"id":16805629,"url":"https://github.com/gcarq/romoulade","last_synced_at":"2026-04-01T17:00:20.863Z","repository":{"id":148726654,"uuid":"295497704","full_name":"gcarq/romoulade","owner":"gcarq","description":"Game Boy Emulator written in Rust.","archived":false,"fork":false,"pushed_at":"2025-06-23T10:22:42.000Z","size":938,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-03-27T23:42:18.878Z","etag":null,"topics":["egui","emulator","gameboy","gameboy-emulator","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/gcarq.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-09-14T18:02:59.000Z","updated_at":"2025-07-29T02:08:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"956bebdf-9287-44c7-a8ec-5d992b2c947f","html_url":"https://github.com/gcarq/romoulade","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/gcarq/romoulade","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gcarq%2Fromoulade","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gcarq%2Fromoulade/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gcarq%2Fromoulade/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gcarq%2Fromoulade/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gcarq","download_url":"https://codeload.github.com/gcarq/romoulade/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gcarq%2Fromoulade/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290538,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["egui","emulator","gameboy","gameboy-emulator","rust"],"created_at":"2024-10-13T09:48:50.707Z","updated_at":"2026-04-01T17:00:20.647Z","avatar_url":"https://github.com/gcarq.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Romoulade\n\nA Game Boy Emulator written in Rust.\n\nAt this point, a lot of tested games are playable; however, there are still some bugs.\n\n\u003cimg src=\"https://github.com/user-attachments/assets/cb0598a6-6fa8-4653-b134-b25d93558e55\" width=\"240\" height=\"240\"\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/e621bef7-866a-4224-8f6f-bdc08ce19d61\" width=\"240\" height=\"240\"\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/b209c4ea-c4c2-47a6-85f0-6522ed166ba2\" width=\"240\" height=\"240\"\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/e721c8ca-d585-46e2-a268-eec63f7e92cd\" width=\"240\" height=\"240\"\u003e\n\n## Quick Start\n\nClone this repository, build and run it with cargo:\n\n```\ngit clone https://github.com/gcarq/romoulade.git\ncd romoulade/\ncargo run --release\n```\n\n## Key Bindings\n\n| Keyboard    | Emulator |\n|-------------|----------|\n| Arrow Right | A        |\n| Arrow Left  | B        |\n| Enter       | Start    |\n| Backspace   | Select   |\n| W           | Up       |\n| A           | Left     |\n| S           | Down     |\n| D           | Right    |\n\n## State\n\nThis project started as an exploratory project and aims to have an accurate\nDMG emulator with cross-platform support and good documentation.\nThe Frontend has been built with [egui.rs](https://github.com/emilk/egui), but the emulator can also be started in\nheadless mode (see usage below).\n\n#### Known Issues and TODOs\n\n- Implement remaining MBCs (MBC2, MBC6, MBC7, ...)\n- Implement Sound Processing Unit\n- Pass acceptance tests from [the Mooneye Test Suite](https://github.com/Gekkio/mooneye-test-suite)\n- Improve debugger UI\n\n### Blargg's Test ROMs\n\n| Test No.     | Result | Remark  |\n|--------------|--------|---------|\n| cpu_instrs   | ✅      | Passed  |\n| instr_timing | ✅      | Passed  |\n| mem_timing   | ✅      | Passed  |\n| mem_timing-2 | ✅      | Passed  |\n| oam_bug      | ❌      | Failed  |\n| halt_bug     | ✅      | Passed  |\n| dmg_sound    | ❌      | Missing |\n\n### Mooneye Acceptance Tests\n\nThe test ROMs are taken from the\ncommit [a1adfe2](https://github.com/Gekkio/mooneye-test-suite/commit/a1adfe27ba6517d8f4d14d16088e23ce6bbf4d55).\n\n| Test Name  | Passed | Failing Tests                                                                                                                     |\n|------------|--------|-----------------------------------------------------------------------------------------------------------------------------------|\n| common     | 26/31  | \u003csub\u003eboot_div, boot_hwio, di_timing, halt_ime0_nointr_timing, halt_ime1_timing2\u003c/sub\u003e                                             |\n| bits       | 3/3    | ✅                                                                                                                                 |\n| instr      | 1/1    | ✅                                                                                                                                 |\n| interrupts | 1/1    | ✅                                                                                                                                 |\n| oam_dma    | 2/3    | \u003csub\u003esources\u003c/sub\u003e                                                                                                                |\n| ppu        | 6/12   | \u003csub\u003eintr_2_mode0_timing_sprites, hblank_ly_scx_timing, lcdon_timing, lcdon_write_timing, stat_irq_blocking, stat_lyc_onoff\u003c/sub\u003e |\n| serial     | 0/1    | \u003csub\u003eboot_sclk_align\u003c/sub\u003e                                                                                                        |\n| timer      | 10/13  | \u003csub\u003erapid_toggle, tima_write_reloading, tma_write_reloading\u003c/sub\u003e                                                                |\n\n## Debugger\n\nThis emulator comes with a visual debugger built using [egui.rs](https://github.com/emilk/egui).\nThe debugger can be attached and detached at any time without a performance penalty.\n![Screenshot_20250526_152543](https://github.com/user-attachments/assets/fc9fca26-6af5-4559-8046-7b042f6e1864)\n\n## Command Line Options\n\n```\nUsage: romoulade [OPTIONS]\n\nOptions:\n  -r, --rom \u003cROM\u003e     Path to the Game Boy ROM\n  -d, --debug         Enable the debugger immediately\n  -f, --fastboot      Start immediately and skip boot ROM\n  -p, --print-serial  Print serial data to stdout\n      --headless      Start the emulator in headless mode\n  -h, --help          Print help\n  -V, --version       Print version\n```\n\n## Contributing\n\nThis repository is open to contributions.\nThe code should follow the [Rust Style Guide](https://doc.rust-lang.org/stable/style-guide/) and shouldn't produce any\n`clippy` warnings.\n\n## Dependencies\n\n* Rust \u003e= 1.87.0\n\n## Resources\n\n* [The Ultimate Game Boy Talk (33C3)](https://www.youtube.com/watch?v=HyzD8pNlpwI)\n* [Game Boy CPU Manual](http://marc.rawer.de/Gameboy/Docs/GBCPUman.pdf)\n* [Game Boy: Complete Technical Reference](https://gekkio.fi/files/gb-docs/gbctr.pdf)\n* [Pan Docs](https://gbdev.io/pandocs/)\n* [Mooneye GB](https://github.com/Gekkio/mooneye-gb)\n* [Educational Gameboy Emulator in Rust](https://github.com/rylev/DMG-01)\n* [Opcode Table](https://izik1.github.io/gbops/)\n* [Blargg's Gameboy hardware test ROMs](https://github.com/retrio/gb-test-roms)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgcarq%2Fromoulade","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgcarq%2Fromoulade","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgcarq%2Fromoulade/lists"}