{"id":31921804,"url":"https://github.com/zpg6/agbrs-playground","last_synced_at":"2025-10-13T22:54:19.416Z","repository":{"id":315674070,"uuid":"1060447981","full_name":"zpg6/agbrs-playground","owner":"zpg6","description":"Game Boy Advance game development with Rust using agbrs + Embassy. Includes blocking and async examples.","archived":false,"fork":false,"pushed_at":"2025-09-27T03:10:37.000Z","size":1851,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-27T04:18:48.804Z","etag":null,"topics":[],"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/zpg6.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":"2025-09-19T23:54:50.000Z","updated_at":"2025-09-27T03:10:40.000Z","dependencies_parsed_at":"2025-09-20T02:42:15.841Z","dependency_job_id":null,"html_url":"https://github.com/zpg6/agbrs-playground","commit_stats":null,"previous_names":["zpg6/agbrs-playground"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zpg6/agbrs-playground","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zpg6%2Fagbrs-playground","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zpg6%2Fagbrs-playground/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zpg6%2Fagbrs-playground/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zpg6%2Fagbrs-playground/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zpg6","download_url":"https://codeload.github.com/zpg6/agbrs-playground/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zpg6%2Fagbrs-playground/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279017088,"owners_count":26085984,"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-10-13T02:00:06.723Z","response_time":61,"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":[],"created_at":"2025-10-13T22:54:17.052Z","updated_at":"2025-10-13T22:54:19.410Z","avatar_url":"https://github.com/zpg6.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# agbrs-playground\n\nExamples of Game Boy Advance game development with Rust using [agbrs](https://agbrs.dev).\n\n## Examples\n\n### Blocking agb Examples\n\n- `hello_world` - Text rendering\n  - \u003cimg src=\"./docs/hello_world.gif\" width=200 /\u003e\n- `hello_world_ttf` - Text rendering with TTF font\n  - \u003cimg src=\"./docs/hello_world_ttf.gif\" width=200 /\u003e\n- `color_test` - Color Wheel with slices of a few RGB colors\n  - \u003cimg src=\"./docs/color_test.gif\" width=200 /\u003e\n- `color_spin` - Spin the Color Wheel continuously\n  - \u003cimg src=\"./docs/color_spin.gif\" width=200 /\u003e\n- `simple_sprite` - Basic sprite display using aseprite\n  - \u003cimg src=\"./docs/simple_sprite.gif\" width=200 /\u003e\n\n### Async Examples (embassy-agb)\n\n- `animated_ship` - Async animated ship (rockets) with movement with button holding support\n  - \u003cimg src=\"./docs/animated_ship.gif\" width=200 /\u003e\n- `animated_sprite` - Async animated sprite (ship flames) with movement with button holding support\n  - \u003cimg src=\"./docs/animated_sprite.gif\" width=200 /\u003e\n- `moving_sprite_hold` - Async sprite movement with button holding support\n  - \u003cimg src=\"./docs/moving_sprite_hold.gif\" width=200 /\u003e\n- `moving_square` - Async sprite movement with button press detection\n  - \u003cimg src=\"./docs/moving_square.gif\" width=200 /\u003e\n- `moving_square_hold` - Async sprite movement with button holding support\n  - \u003cimg src=\"./docs/moving_square_hold.gif\" width=200 /\u003e\n\n\u003e [!NOTE]\n\u003e These async examples accompany [agb PR #1089](https://github.com/agbrs/agb/pull/1089) which adds async support to agb. I brought in Embassy as the async executor and implemented async for inputs, display, and time drivers.\n\n## Quick Start\n\n```sh\n# Install prerequisites\ncargo install agb-gbafix\n\n# Run a blocking example (requires mgba-qt in PATH)\ncargo run --bin hello_world\n\n# Run an async example (requires mgba-qt in PATH)\ncargo run --bin moving_square\ncargo run --bin moving_square_hold\n\n# Build for real hardware\ncargo build --release --bin hello_world\nagb-gbafix target/thumbv4t-none-eabi/release/hello_world -o hello_world.gba\n```\n\n## Resources\n\n- [agb documentation](https://docs.rs/agb/latest/agb/)\n- [agbrs book](https://agbrs.dev/book/)\n- [mGBA emulator](https://mgba.io)\n- ⭐️ [zpg6/agbrs-capture](https://github.com/zpg6/agbrs-capture) - For capturing GIFs of projects and examples\n\n## License\n\n[MIT](./LICENSE)\n\n## Contributing\n\nContributions are welcome! Whether it's bug fixes, feature additions, or documentation improvements, we appreciate your help in making this project better. For major changes or new features, please open an issue first to discuss what you would like to change.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzpg6%2Fagbrs-playground","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzpg6%2Fagbrs-playground","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzpg6%2Fagbrs-playground/lists"}