[−][src]Crate ggbasm
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
ast | The AST produced by the parser. |
audio | Generate audio data. |
constants | Miscellaneous gameboy hardware constants. |
header | Define the ROM header via a typed interface. |
parser | Parse asm files into an AST. |
Structs
Color | Represents a color in modern images. Used when mapping colors from modern images to gameboy graphics. |
RomBuilder | Keeps track of the state of a rom as it is being constructed. |