Expand description
Encode and decode Octo cartridges or “Octocarts”, CHIP-8 game cartridges for the Octo environment.
Use cases:
- Decoding: You can extract the program source code and runtime settings from an
Octocart file. The source code can be assembled into CHIP-8 bytecode with Octo or
decasm
. The runtime settings can be given to a CHIP-8 interpreter like Octo ordeca
, or saved as JSON for the CHIP-8 Archive, as an.octo.rc
file for C-Octo ortermin-8
, etc. - Encoding: TODO
Octo cartridge files are GIF89a images with a payload steganographically embedded in one or more animation frames. Data is stored in the least significant bits of colors, 1 from the red/blue channels and 2 from the green channel, allowing us to pack a hidden byte into every 2 successive pixels.
The payload consists of a 32-bit length, followed by a sequence of ASCII bytes consisting of the JSON-encoded options dictionary and source text.
An Octo cartridge contains the source code of an Octo program, and a set of options for the Octo runtime on how to run the program.
Structs§
- Octo
Cart - Representation of the payload in the Octo cartridge.
Enums§
- Error
- Represents the types of errors that can occur during decoding of an Octocart.
Functions§
- decode_
octocart - Decodes an Octocart, and returns the decoded JSON payload as a string.
- from_
file - Read and decode Octocart from a file path