Crate ggbasm

Source
Expand description

The main API of GGBASM is the RomBuilder struct.

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


 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")?;

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.

Modules§

  • The AST produced by the parser.
  • Generate audio data.
  • Miscellaneous gameboy hardware constants.
  • Define the ROM header via a typed interface.
  • Parse asm files into an AST.

Structs§

  • Represents a color in modern images. Used when mapping colors from modern images to gameboy graphics.
  • Keeps track of the state of a rom as it is being constructed.