GBA SDK — build tool for Game Boy Advance
Project description
GameBoy Advance - SDK
A Software Development Kit for developers who want to build GameBoy Advance games.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
About The Project
This SDK aims to simplify GameBoy Advance homebrew development by allowing developers to write game logic in Python. It handles the underlying compilation, asset conversion, and bindings to interface efficiently with the GBA hardware.
Built With
Getting Started
To get a local copy up and running, follow these simple steps.
Prerequisites
You need Python 3.x installed on your system
Installation
Development mode (clone the repo, with local changes)
- Clone the repo
git clone https://github.com/lukas-sgx/GBA-sdk.git
cd GBA-sdk
- Install the SDK in development mode
pip install -e .
Release mode (stable version from PyPI)
pip install cartridge-sdk
Usage
Here is a quick example of how to dump header of ROM:
$ cartridge-sdk hdr dump bin/ExampleGBA.gba
bin/ExampleGBA.gba:
|-- entry
| |-- valid: True
| |-- raw: 0xea00002e
| `-- opcode: b 0xc0
|-- nintendo logo:
| |-- status: True
| `-- debugging: True
|-- game title: EXAMPLEGBA
|-- game code:
| |-- code: BXXE
| |-- date: 2003.. (new)
| `-- language: USA/English
|-- marker code:
| |-- id: 01
| `-- developer: Nintendo
|-- fixed value: valid (96h)
|-- unit code: 00h
|-- device type: 00h
|-- reserved: valid
|-- software_ver: 00h
`-- checksum:
|-- valid: True
|-- rom: e3
`-- our: e3
For more advanced examples, please refer to the Documentation.
Roadmap
- Automated header checker
.gbaROM - Automated compilation to
.gbaROM - Font asset pipeline (PNG to C file converter)
- Core GBA bindings (Video, Audio, Inputs)
- Asset pipeline (PNG to GBA sprite palette converter)
See the open issues for a full list of proposed features (and known issues).
Contributing
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Top contributors:
License
Distributed under the MIT License. See LICENSE for more information.
Contact
Lukas Soigneux - lukas.soigneux@epitech.eu
Acknowledgments
- GBATEK - GameBoy Advance Technical Info
- Ayyboy-Advance - Great emulator for testing
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cartridge_sdk-1.0.0rc1.tar.gz.
File metadata
- Download URL: cartridge_sdk-1.0.0rc1.tar.gz
- Upload date:
- Size: 12.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32d26d5f83254fed6caf6dc3b72ba7c7d6deb5bd2c289646222f4db9aacaed69
|
|
| MD5 |
28406a9cd27aee3c04aa58329b6baad8
|
|
| BLAKE2b-256 |
9f511a460f753681129cf199ed7b8a9c9d7a9b5ebbdd86ed939e5c2fc9613bf6
|
Provenance
The following attestation bundles were made for cartridge_sdk-1.0.0rc1.tar.gz:
Publisher:
release.yml on lukas-sgx/GBA-sdk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cartridge_sdk-1.0.0rc1.tar.gz -
Subject digest:
32d26d5f83254fed6caf6dc3b72ba7c7d6deb5bd2c289646222f4db9aacaed69 - Sigstore transparency entry: 1966069892
- Sigstore integration time:
-
Permalink:
lukas-sgx/GBA-sdk@ec3cfefd776720024d207359b4d4036f5deaebdb -
Branch / Tag:
refs/heads/main - Owner: https://github.com/lukas-sgx
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ec3cfefd776720024d207359b4d4036f5deaebdb -
Trigger Event:
workflow_run
-
Statement type:
File details
Details for the file cartridge_sdk-1.0.0rc1-py3-none-any.whl.
File metadata
- Download URL: cartridge_sdk-1.0.0rc1-py3-none-any.whl
- Upload date:
- Size: 12.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d1e8e9c87fadd44280f94b6ec47186e8b42045351740f8fcdbe02399dc2702d
|
|
| MD5 |
729ea24b8e077188f316f9c5554cccde
|
|
| BLAKE2b-256 |
f07fc45faae136eb3ecb14cc6e3750037e11452a5a4e7a1da8b65e1740b47017
|
Provenance
The following attestation bundles were made for cartridge_sdk-1.0.0rc1-py3-none-any.whl:
Publisher:
release.yml on lukas-sgx/GBA-sdk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cartridge_sdk-1.0.0rc1-py3-none-any.whl -
Subject digest:
1d1e8e9c87fadd44280f94b6ec47186e8b42045351740f8fcdbe02399dc2702d - Sigstore transparency entry: 1966070045
- Sigstore integration time:
-
Permalink:
lukas-sgx/GBA-sdk@ec3cfefd776720024d207359b4d4036f5deaebdb -
Branch / Tag:
refs/heads/main - Owner: https://github.com/lukas-sgx
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ec3cfefd776720024d207359b4d4036f5deaebdb -
Trigger Event:
workflow_run
-
Statement type: