Skip to main content
Logo

GameBoy Advance - SDK

PyPI version Build Status

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
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

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

Python C Assembly CMake Linker Script

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)

  1. Clone the repo
git clone https://github.com/lukas-sgx/GBA-sdk.git
cd GBA-sdk
  1. 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 .gba ROM
  • Automated compilation to .gba ROM
  • 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), and CHANGELOG.md for release history.

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.

See CONTRIBUTING.md for setup instructions, commit conventions, and the PR process.

Top contributors:

contrib.rocks image

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Lukas Soigneux - lukas.soigneux@epitech.eu

Acknowledgments

Metadata

Release files for cartridge-sdk 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cartridge-sdk 2.0.0
File Size Uploaded
cartridge_sdk-2.0.0.tar.gz 12.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cartridge-sdk 2.0.0
File Interpreter ABI Platform
cartridge_sdk-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 26.3 kB

Release files / cartridge_sdk-2.0.0.tar.gz

Download URL cartridge_sdk-2.0.0.tar.gz
Size 12.8 kB
Tags Source
SHA-256 checksum
How to use checksums
ffe8c654d0062e375479a7441a781061e9dc1465dfdd783576db99a34c7de2bf
BLAKE2b-256 checksum
How to use checksums
5fbfafeed21f25d0ca0698b7cfef4ff52dfc268f4198a11606a490685dec119f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 26, 2026.

Transparency log

Release files / cartridge_sdk-2.0.0-py3-none-any.whl

Download URL cartridge_sdk-2.0.0-py3-none-any.whl
Size 13.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3a2a43767566938d71ca4c381bae01a61da78bde114ce7c13e0357ae6717835c
BLAKE2b-256 checksum
How to use checksums
74a8ed3740a401f148c5306a7aabdfa898e3f6dd0d1bce1f581922689420535f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 26, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page