{"id":13436739,"url":"https://github.com/mohanson/gameboy","last_synced_at":"2025-04-12T20:41:19.621Z","repository":{"id":43056748,"uuid":"182086384","full_name":"mohanson/gameboy","owner":"mohanson","description":"Full featured Cross-platform GameBoy emulator by Rust. Forever boys!.","archived":false,"fork":false,"pushed_at":"2024-09-15T09:18:35.000Z","size":5776,"stargazers_count":1394,"open_issues_count":6,"forks_count":82,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-04-05T19:08:41.036Z","etag":null,"topics":["emulator","gameboy","rust"],"latest_commit_sha":null,"homepage":"","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/mohanson.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}},"created_at":"2019-04-18T12:46:05.000Z","updated_at":"2025-04-03T13:23:48.000Z","dependencies_parsed_at":"2022-08-12T10:11:35.881Z","dependency_job_id":"5093f80d-2305-41f7-9ce0-bba36419d078","html_url":"https://github.com/mohanson/gameboy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohanson%2Fgameboy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohanson%2Fgameboy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohanson%2Fgameboy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohanson%2Fgameboy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mohanson","download_url":"https://codeload.github.com/mohanson/gameboy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248631669,"owners_count":21136554,"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":["emulator","gameboy","rust"],"created_at":"2024-07-31T03:00:51.749Z","updated_at":"2025-04-12T20:41:19.597Z","avatar_url":"https://github.com/mohanson.png","language":"Rust","readme":"# Gameboy\n\nFull-featured Cross-platform GameBoy emulator. **Forever boys!**\n\n![sample.gif](./res/imgs/sample.gif)\n\nYou can start a game with the following command. The following example uses the built-in game \"SUPER MARIOLAND\":\n\n```s\n$ cargo run --release -- \"./res/sml.gb\"\n```\n\nThe following options are supported:\n\n```text\n-a, --enable-audio    Enable audio, default is false\n-x, --scale-factor    Scale the video by a factor of 1, 2, 4, or 8\n```\n\nGameboy is developed in Rust and has been thoroughly tested on Windows, Ubuntu, and Mac.\n\n# Dependencies\n\nThis project depends on the following Rust libraries, which have native dependencies:\n\n- [cpal](https://github.com/RustAudio/cpal)\n- [minifb](https://github.com/emoon/rust_minifb)\n\nYou may need to install the native dependencies these libraries require before running this emulator.\n\nFor Ubuntu Linux, you can run:\n\n```sh\nsudo apt install libasound2-dev # Install CPAL dependencies\nsudo apt install libxkbcommon-dev libwayland-cursor0 libwayland-dev # Install MiniFB dependencies\n```\n\nFor Windows, you should install [Microsoft C++ Build Tools](https://aka.ms/vs/17/release/vs_BuildTools.exe).\n\n# Controls\n\n```\n                _n_________________\n                |_|_______________|_|\n                |  ,-------------.  |\n                | |  .---------.  | |\n                | |  |         |  | |\n                | |  |         |  | |\n                | |  |         |  | |\n                | |  |         |  | |\n                | |  `---------'  | |\n                | `---------------' |\n                |   _ GAME BOY      |\n   Up           | _| |_         ,-. | ----\u003e Z\nLeft/Right \u003c--- ||_ O _|   ,-. \"._,\"|\n  Down          |  |_|    \"._,\"   A | ----\u003e X\n                |    _  _    B      |\n                |   // //           |\n                |  // //    \\\\\\\\\\\\  | ----\u003e Enter/BackSpace\n                |  `  `      \\\\\\\\\\\\ ,\n                |________...______,\"\n```\n\n# Tests\n\nThanks to [Blargg's Gameboy hardware test ROMs](https://github.com/retrio/gb-test-roms), I can easily verify my code. Run tests with the command:\n\n```sh\n$ cargo run --example blargg\n```\n\n| Test Name    | Result                              |\n|--------------|-------------------------------------|\n| cpu_instrs   | ![img](./res/imgs/cpu_instrs.png)   |\n| instr_timing | ![img](./res/imgs/instr_timing.png) |\n\n# References\n\n- [Gbdev](http://gbdev.gg8.se/wiki/articles/Main_Page)\n- [Open Game Boy Documentation Project](https://mgba-emu.github.io/gbdoc/)\n- [LR35902 Opcodes](https://rednex.github.io/rgbds/gbz80.7.html)\n- [LR35902 Opcodes Table](http://www.pastraiser.com/cpu/gameboy/gameboy_opcodes.html)\n- [Game Boy Memory Map](http://gameboy.mongenel.com/dmg/asmmemmap.html)\n- [Game Boy Technical Data](http://bgb.bircd.org/pandocs.htm)\n- [awesome-gbdev](https://github.com/gbdev/awesome-gbdev)\n- [List of MBC roms](https://ladecadence.net/trastero/listado%20juegos%20gameboy.html)\n- [Roms download](http://romhustler.net/roms/gbc/number)\n\n# Licenses\n\nMIT.\n","funding_links":[],"categories":["Applications","Rust","应用程序 Applications","应用","应用 Applications"],"sub_categories":["Emulators","模拟器 Emulators","仿真器"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohanson%2Fgameboy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmohanson%2Fgameboy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohanson%2Fgameboy/lists"}