Crate rgbds_obj[][src]

This crate allows working with RGBDS object files. Currently, only version 9 revisions 6, 7 and 8 are supported, but more should be added in the future.

Object file revision table

The object file format has changed several times over RGBDS’ lifespan. The following table indicates which object file version each release of RGBDS uses.

Note that a “revision” field was introduced in version 9, so it’s not listed earlier.

RGBDS releaseObject file format
v0.5.1v9 r8
v0.5.0v9 r7
v0.4.2v9 r6
v0.4.1v9 r5
v0.4.0v9 r3
v0.3.10v6

Earlier releases use v6, up to and including v0.3.4.

Structs

Assertion

A link-time assertion. Functions mostly like a Patch.

Iter

An iterator over a RPN expression’s operations (this includes literals).

Node

A file stack node.

Object

A RGBDS object file.

Patch

A section patch. Patches are bytes (or groups of bytes) whose computation was deferred to the linker.

RpnExpr

A Reverse Polish Notation expression.

RpnIterError

An error produced while iterating on a RPN expression. This can be an early EOF, an operator trying to popping an item off of an empty RPN stack, etc.

Section

A section definition.

SectionData

A ROM section’s data.

Symbol

A symbol declaration, which may include a definition.

SymbolDef

A symbol definition’s data.

Enums

Arity

A RPN operation’s arity.

AssertionType

An assertion’s error type.

NodeType

A file stack node’s type, and associated type-dependent data.

NodeWalkError

An error that occurs while walking the node tree.

PatchType

A patch’s type.

RpnOp

A RPN operation; since this means “operation on the RPN stack” here, this includes literals, not just operators.

SectionMod

A section modifier.

SectionType

A section memory type, and associated data if applicable.

SymbolVisibility

A symbol’s visibility, and accompanying data if applicable.