{"id":47929315,"url":"https://github.com/jamescook/gemba","last_synced_at":"2026-04-04T07:12:17.101Z","repository":{"id":338907901,"uuid":"1159603664","full_name":"jamescook/gemba","owner":"jamescook","description":"GBA emulator frontend powered by Ruby, Tcl/Tk, and libmgba","archived":false,"fork":false,"pushed_at":"2026-03-06T13:10:33.000Z","size":5525,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-06T17:27:27.672Z","etag":null,"topics":["emulator","gba","mgba","ruby","sdl2","tcl-tk"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jamescook.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-16T23:31:48.000Z","updated_at":"2026-03-06T13:10:36.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jamescook/gemba","commit_stats":null,"previous_names":["jamescook/gemba"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/jamescook/gemba","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamescook%2Fgemba","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamescook%2Fgemba/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamescook%2Fgemba/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamescook%2Fgemba/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jamescook","download_url":"https://codeload.github.com/jamescook/gemba/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamescook%2Fgemba/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31390953,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T04:26:24.776Z","status":"ssl_error","status_checked_at":"2026-04-04T04:23:34.147Z","response_time":60,"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":["emulator","gba","mgba","ruby","sdl2","tcl-tk"],"created_at":"2026-04-04T07:12:16.527Z","updated_at":"2026-04-04T07:12:17.085Z","avatar_url":"https://github.com/jamescook.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gemba\n\nA GBA emulator frontend powered by [teek](https://github.com/jamescook/teek) and [libmgba](https://github.com/mgba-emu/mgba).\n\nA full-featured GBA player with video/audio rendering, keyboard and gamepad\ninput, save states, and a settings UI.\n\n## Installation\n\nSee [INSTALL.md](INSTALL.md) for platform-specific dependency setup.\n\n## Usage\n\n```\ngemba [command] [options]\n```\n\n### Commands\n\n| Command | Description |\n|---------|-------------|\n| `play` | Play a ROM (default if omitted) |\n| `record` | Record video+audio to .grec (headless) |\n| `decode` | Encode .grec to video via ffmpeg |\n| `replay` | Replay a .gir input recording |\n| `config` | Show or reset configuration |\n| `version` | Show version |\n\nRun `gemba \u003ccommand\u003e --help` for command-specific options.\n\n### Examples\n\n```sh\n# Play a ROM (these are equivalent)\ngemba game.gba\ngemba play game.gba\n\n# Play with options\ngemba play --scale 2 --fullscreen game.gba\n\n# Record 10 seconds of gameplay (headless)\ngemba record --frames 600 game.gba\n\n# Show recording stats\ngemba decode --stats recording.grec\n\n# Encode to video\ngemba decode -o clip.mp4 recording.grec\n\n# Replay an input recording\ngemba replay session.gir\n\n# Reset config\ngemba config --reset\n```\n\n## Features\n\n- GBA emulation via libmgba\n- SDL2 video rendering with configurable window scale (1x-4x)\n- Integer scaling and nearest-neighbor/bilinear pixel filtering\n- GBA color correction (Pokefan531 formula) for authentic LCD appearance\n- Fullscreen support\n- SDL2 audio with volume control and mute\n- Keyboard and gamepad input with remappable controls and hotkeys\n- Quick save/load and 10-slot save state picker with thumbnails\n- Turbo/fast-forward mode\n- ROM info viewer\n- Persistent user configuration with settings UI\n\n## Language Support\n\nThe UI supports multiple languages via YAML-based locale files. The active\nlanguage is auto-detected from the system environment (`LANG`) or can be\nset manually in the config.\n\nCurrently supported:\n\n| Language | Code |\n|----------|------|\n| English  | `en` |\n| Japanese | `ja` |\n\nTo force a specific language:\n\n```ruby\nGemba.user_config.locale = 'ja'\n```\n\nAdding a new language: create `lib/gemba/locales/\u003ccode\u003e.yml` following\nthe structure in `en.yml`.\n\n## Future Ideas\n\n- Game picker / ROM browser\n- GB/GBC support\n- ROM patching (IPS/UPS)\n- Local multiplayer (link cable emulation)\n- RetroAchievements integration\n- Solar sensor and tilt/gyro cartridge emulation\n- Audio visualizer / channel debug view\n- Ruby scripting API\n\n## Supported Platforms\n\n| Platform | Notes |\n|----------|-------|\n| macOS (Apple Silicon) | Primary development platform |\n| Linux (x86_64) | Tested in CI via Docker (Ubuntu 24.04) |\n| Windows 10+ | Tested in CI (GitHub Actions) and manually in VM |\n\n## License\n\nMIT. See [THIRD_PARTY_NOTICES](THIRD_PARTY_NOTICES) for bundled font licenses.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamescook%2Fgemba","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamescook%2Fgemba","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamescook%2Fgemba/lists"}