{"id":13817460,"url":"https://github.com/felixjones/gba-plusplus","last_synced_at":"2025-05-15T20:32:24.449Z","repository":{"id":51425438,"uuid":"205685327","full_name":"felixjones/gba-plusplus","owner":"felixjones","description":"C++ library for writing Game Boy Advance apps and games","archived":true,"fork":false,"pushed_at":"2023-08-19T13:30:36.000Z","size":356,"stargazers_count":71,"open_issues_count":1,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-11-19T15:45:15.632Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/felixjones.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}},"created_at":"2019-09-01T14:09:02.000Z","updated_at":"2024-10-02T15:39:55.000Z","dependencies_parsed_at":"2024-02-05T20:14:09.949Z","dependency_job_id":"98608c2d-9d56-46d7-800d-26736304f2ae","html_url":"https://github.com/felixjones/gba-plusplus","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felixjones%2Fgba-plusplus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felixjones%2Fgba-plusplus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felixjones%2Fgba-plusplus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felixjones%2Fgba-plusplus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/felixjones","download_url":"https://codeload.github.com/felixjones/gba-plusplus/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254418631,"owners_count":22068113,"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":[],"created_at":"2024-08-04T06:00:44.527Z","updated_at":"2025-05-15T20:32:23.905Z","avatar_url":"https://github.com/felixjones.png","language":"C++","funding_links":[],"categories":["图书馆"],"sub_categories":[],"readme":"# gba-plusplus has been replaced by gba-hpp!\n\n[Go to gba-hpp (github.com/felixjones/gba-hpp)](https://github.com/felixjones/gba-hpp)\n\n# gba-plusplus\n\n[![Documentation Status](https://readthedocs.org/projects/gba-plusplus/badge/?version=latest)](https://gba-plusplus.readthedocs.io/en/latest/?badge=latest)\n\nCode samples and tutorials available on the [project Wiki](https://github.com/felixjones/gba-plusplus/wiki).\n\nModern drop-in C++ library for the Game Boy Advance. Zlib license.\n\nFeel free to ask for help on the [gbadev Discord](https://discord.io/gbadev).\n\nFor a CMake GBA development toolchain see our sister project: [gba-toolchain](https://github.com/felixjones/gba-toolchain).\n\n# Example\n\n```C++\n#include \u003cgba/gba.hpp\u003e\n\nusing namespace gba;\n\nusing video_memory_type = std::array\u003cstd::array\u003cuint16, 240\u003e, 160\u003e;\n\nstatic auto\u0026 video_memory = *reinterpret_cast\u003cvideo_memory_type *\u003e( 0x06000000 );\n\nstruct bgr555_type {\n    uint16 red : 5;\n    uint16 green : 5;\n    uint16 blue : 5;\n};\n\nint main() {\n    reg::dispcnt::write( { .mode = 3, .layer_background_2 = true } );\n    \n    video_memory[80][120] = uint_cast( bgr555_type { .red = 31 } );\n    video_memory[80][136] = uint_cast( bgr555_type { .green = 31 } );\n    video_memory[96][120] = uint_cast( bgr555_type { .blue = 31 } );\n    \n    while ( true ) {}\n    __builtin_unreachable();\n}\n```\n\n# About\n\ngba-plusplus is a light-weight C++ abstraction of the Game Boy Advance hardware.\n\n* Hardware tested\n* Assembler inspected\n* Optimized for `-Og` and `-O3`\n* C++17\n* Both GCC and Clang compatible\n* Compatible with [Tonclib](https://www.coranac.com/man/tonclib/main.htm) and [libgba](https://github.com/devkitPro/libgba)\n\n## *NOT* a game engine\n\nWe make close-to-zero assumptions about the type of GBA game you are making.\n\n## Zero tools\n\nWe do not restrict you to use any particular file formats or force you to use any additional tools.\n\n## Explicit\n\nThe API is verbose and hides as little as possible.\n\nRegister names match the familiar documentation.\n\nWe respect the programmer, the code you write to shoot yourself in the foot will read like code that is shooting you in the foot.\n\n# Extensions\n\nThe `gba/ext/` headers provide features outside of the core GBA hardware.\n\nSome of these may depend on external libraries, such as [agbabi](https://github.com/felixjones/agbabi).\n\n# In-development\n\nWe welcome all forms of feedback in the form of GitHub issues. The API will change when necessary, but don't worry all releases will be archived.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelixjones%2Fgba-plusplus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffelixjones%2Fgba-plusplus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelixjones%2Fgba-plusplus/lists"}