Skip to content

0.1.0-alpha

Pre-release
Pre-release
Compare
Choose a tag to compare
@zlfn zlfn released this 02 Nov 19:59
· 8 commits to main since this release

First Alpha Release!

The ROM build process has stabilized to some extent, allowing us to reveal the first alpha release of Rust-GB!

You can find it in crates.io and docs.rs

Features

The features you can test at the moment are as follows.

  • io::GbStream : A print stream that allows you to print characters on GameBoy screen. Including familiar print! and println! macros.
  • io::Joypad : A struct that allows you check GameBoy key input.
  • mmio : This is a module that makes it easy to Memory Map IO using VolAddress. Note that the distinction between Safe and Unsafe is not yet accurate. If you think Unsafe is Safe enough, or if you find a Undefined Behavior in the mmio area specified as Safe, I would appreciate it if you could report it to issue :)
  • drawing : This is a drawing library that uses GBDK's All Points Addressable (APA) mode. By default, it is recommended not to use it in the long run because the side effects are too large and slow, but it's not bad to use for simple testing.
  • gbdk_c : Provides incomplete binding for GBDK-2020

Caution

  • The compilation process is still very, very unstable! In particular, there are many features that cannot be used in core, For external crates, most of them are still unavailable. We're trying to work it out, but it's going to take a long time...
  • You can only run the compiler on Linux x64 platforms. It is also libc dependent, so it may not run if it is not in the latest distribution or in special cases.

Versioning

Since new features and document modifications are still very frequent, we will follow the following versioning principles for the time being. This is because the minor version can become too large if we keep the semantic versioning as it is.

X.Y.Z-alpha.W

  • X : 0 until the build is sufficiently stabilized.
  • Y : It goes up one by one as a new module or big feature is added.
  • Z : It goes up when we fix a bug or add a new feature to an existing module.
  • alpha : We're going to keep it for a while. This is because it is not very suitable for production or big projects.
  • W : It goes up when modifying documents or modifying the build process & compiler (It does not affect existing code.)