ggbasm 0.2.0

Generating Gameboy Assembler
docs.rs failed to build ggbasm-0.2.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: ggbasm-0.3.0

The main API of GGBASM is the [RomBuilder] struct.

Various methods are called on the RomBuilder to insert assembly, graphics and raw bytes.

``

fn foo() -> Result<(), failure::Error> {

use ggbasm::header::*;

let colors_map = std::collections::HashMap::new();

let header = Header {

title: String::from(""),

color_support: ColorSupport::Unsupported,

licence: String::new(),

sgb_support: false,

cartridge_type: CartridgeType::Mbc5Ram,

ram_type: RamType::Some32KB,

japanese: false,

version_number: 0,

};

use ggbasm::RomBuilder;

RomBuilder::new()? // Starts off in the first rom bank // A simple example doesnt need to deal with interrupts and jumps, so generate a dummy .add_basic_interrupts_and_jumps()?

// generate a header from data in the passed header struct .add_header(header)?

// Add game code via an asm file .add_asm_file("main.asm")?

// Add an image to the second rom bank .advance_address(1, 0)? .add_image("tiles.png", "Tileset", &colors_map)?

// Consume the RomBuilder and write the rom to disk .write_to_disk("my_cool_game.gb")?;

Ok(())

}

``

The RomBuilder searches for images in the graphics directory and assembly files in the gbasm directory. These directories are in the root directory of the crate, the innermost directory containing a Cargo.toml file.

Parser

If you are after a lower level api, the [parser] and [ast] modules can be used without the RomBuilder. You can also construct the ast types yourself and give them to the RomBuilder.

Rust version

Requires nightly rust, because I thought it would be fun to use rust 2018 and I didn't realize I would make progress this quickly. >.>