Expand description
This crate allows working with RGBDS object files. Currently, only version 9 revisions 6–11 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 release | Object file format |
---|---|
v0.9.0 | v9 r11 |
v0.8.0 | v9 r10 |
v0.7.0 | v9 r9 (reported), v9 r10 (actual) |
v0.6.1 | v9 r9 |
v0.6.0 | v9 r9 |
v0.5.2 | v9 r8 |
v0.5.1 | v9 r8 |
v0.5.0 | v9 r7 |
v0.4.2 | v9 r6 |
v0.4.1 | v9 r5 |
v0.4.0 | v9 r3 |
v0.3.10 | v6 |
RGBDS releases v0.3.4 through v0.3.9 also used object format v6.
Structs§
- A link-time assertion. Functions mostly like a
Patch
. - An iterator over a RPN expression’s operations (this includes literals).
- A file stack node.
- A RGBDS object file.
- A section patch. Patches are bytes (or groups of bytes) whose computation was deferred to the linker.
- A Reverse Polish Notation expression.
- 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.
- A section definition.
- A ROM section’s data.
- A symbol declaration, which may include a definition.
- A symbol definition’s data.
Enums§
- A RPN operation’s arity.
- An assertion’s error type.
- A file stack node’s type, and associated type-dependent data.
- An error that occurs while walking the node tree.
- A patch’s type.
- A RPN operation; since this means “operation on the RPN stack” here, this includes literals, not just operators.
- A section memory type.
- A section modifier.
- A section memory type, and associated data if applicable.
- A symbol’s visibility, and accompanying data if applicable.