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.