| Name | Offset | End | Len | Contents |
|---|---|---|---|---|
| Checksum | 0x00 | 0x01 | 0x2 | Little-Endian short of the overall file checksum |
| File Magic | 0x02 | 0x0D | 0xC | NUL-terminated string, 4143 524f 5353 2644 4f57 4e00 |
| CIB Checksum | 0x0E | 0x0F | 0x2 | Little-Endian checksum of the puzzle's CIB |
| Masked Low Checksums | 0x10 | 0x13 | 0x4 | A set of checksums, XOR-masked against a magic string. |
| Masked High Checksums | 0x14 | 0x17 | 0x4 | A set of checksums, XOR-masked against a magic string. |
| Version String(?) | 0x18 | 0x1B | 0x4 | NUL-terminated string, "1.2\0" |
| Reserved1C(?) | 0x1C | 0x1D | 0x2 | In many files, this is uninitialized memory |
| Unknown | 0x1E | 0x1F | 0x2 | In all files, this is set to 0x0000(?) |
| Reserved20(?) | 0x20 | 0x2B | 0xB | In files where Reserved1C is garbage, this is garbage too. |
| BIC | 0x2C | 0x33 | 0x8 | I've named this range the Board Initialization Checksum
region. It contains the vitals of the puzzle, and is used
to initialize the overall checksum of the file. Note that this is not a "Real" value in the file |
| Width | 0x2C | 0x2C | 0x1 | The width of the board as a byte |
| Height | 0x2D | 0x2D | 0x1 | The height of the board as a byte |
| # of Clues | 0x2E | 0x2F | 0x2 | Little-Endian short of the number of clues for this board |
| Unknown Bitmask | 0x30 | 0x31 | 0x2 | Little-Endian short containing a bitmask. Operations unknown. |
| Unknown32 | 0x32 | 0x33 | 0x2 | Unknown short or two bytes... |
| Solution | 0x34 | 0x34+ w×h-1 | w×h | A flat string of bytes, one for each cell in the board. Rasters from the top left corner across the board, then to the second row, etc. Non-playable (ie: black) cells are denoted by '.' |
| Grid | 0x34+ w×h | 0x34+ 2(w×h)-1 | w×h | A flat string of bytes, one for each cell in the board.
Rasters from the top left corner across the board, then to
the second row, etc. Non-playable (ie: black) cells are
denoted by '.' If a cell is empty, it gets a '-'; otherwise the player's guess is stored in the cell. |
| Title | 0x34+ 2(w×h) | ?? | Delimited | A NUL-terminated string containing the title of the puzzle. |
| Author | ?? | ?? | Delimited | A NUL-terminated string containing the author of the puzzle. |
| Copyright | ?? | ?? | Delimited | A NUL-terminated string, containing the copyright statement for the puzzle. |
| Clues | ?? | ?? | Delimited | A string #-of-clues NUL-terminated strings, one right after the other. |
| Notes | ?? | EOF | ?? | Exact format unknown at present. They're there. They are NUL-terminated; if the user has opened the Notes pane without entering any, you get an empty string. This looks like an extra NUL. |