Crates.io | rust-gb |
lib.rs | rust-gb |
version | |
source | src |
created_at | 2024-10-31 17:44:33.889859 |
updated_at | 2024-11-02 20:13:07.045236 |
description | Compile Rust code to Nintendo GameBoy |
homepage | |
repository | https://github.com/zlfn/rust-gb |
max_upload_size | |
id | 1430410 |
Cargo.toml error: | TOML parse error at line 23, column 1 | 23 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
Compile Rust code to GBZ80 (Work in Progress)
You can find ROM builds of examples in release
GameBoy is not a possible target of Rust (even its not in Tier 3), and there is currently no suitable (stable) LLVM backend for the CPU in GameBoy. Therefore, the Rust code is compiled using the following process.
I referred to z80-babel for steps 1–3, and used gbdk-2020 for steps 4–5.
In the long run, I hope to write LLVM backend for z80 (sm83), and include it in Rust's Tier 3 list. This will dramatically simplify the build chain.
This project's goal is to develop a Game Boy Development Kit that enables the creation of Game Boy games using Rust, including safe management APIs in Game Boy memory, abstracted functions, and more.
Currently, the dependence on GBDK is large, but we plan to gradually reduce it.
If you like this project, you can always join our Discussion! Please feel free to share your opinions or ideas.
This project is in its very early stages, and we are still designing many things, so it would be nice to have a variety of ideas.
PRs are always welcome too!
This project is still a work in progress, and I haven't tested it outside of my development environment.
Dependencies may change as the project evolves.