// sha256/assets.ne — one big Tileset sprite block. // // The ROM uses a single 8 KB CHR page that both the background // layer and the sprite layer read from, so every tile declared // here is available either way. User tiles start at index 1 // (index 0 is reserved for the compiler's built-in smiley). // // The alphabet is a 2-pixel-stroke sans-serif that reads well on // NES resolution. Every tile keeps its glyph inside a 6×6 window // (columns 1..6, rows 1..6) so adjacent characters never touch. // // Colour vocabulary: // . palette index 0 — transparent (sprites) / bg universal // 2 palette index 2 — main glyph colour (white in bg0/sp0) // 3 palette index 3 — accent (cursor bar, key arrows) sprite Tileset { pixels: [ // ── 1: A ───────────────────────────────────────── "........", "..2222..", ".22..22.", ".22..22.", ".222222.", ".22..22.", ".22..22.", "........", // ── 2: B ───────────────────────────────────────── "........", ".22222..", ".22..22.", ".22222..", ".22..22.", ".22..22.", ".22222..", "........", // ── 3: C ───────────────────────────────────────── "........", "..22222.", ".22..22.", ".22.....", ".22.....", ".22..22.", "..22222.", "........", // ── 4: D ───────────────────────────────────────── "........", ".2222...", ".22.22..", ".22..22.", ".22..22.", ".22.22..", ".2222...", "........", // ── 5: E ───────────────────────────────────────── "........", ".222222.", ".22.....", ".22222..", ".22.....", ".22.....", ".222222.", "........", // ── 6: F ───────────────────────────────────────── "........", ".222222.", ".22.....", ".22222..", ".22.....", ".22.....", ".22.....", "........", // ── 7: G ───────────────────────────────────────── "........", "..22222.", ".22.....", ".22.222.", ".22..22.", ".22..22.", "..2222..", "........", // ── 8: H ───────────────────────────────────────── "........", ".22..22.", ".22..22.", ".222222.", ".22..22.", ".22..22.", ".22..22.", "........", // ── 9: I ───────────────────────────────────────── "........", "..2222..", "...22...", "...22...", "...22...", "...22...", "..2222..", "........", // ── 10: J ──────────────────────────────────────── "........", "....222.", ".....22.", ".....22.", ".....22.", ".22..22.", "..2222..", "........", // ── 11: K ──────────────────────────────────────── "........", ".22..22.", ".22.22..", ".2222...", ".22.22..", ".22..22.", ".22..22.", "........", // ── 12: L ──────────────────────────────────────── "........", ".22.....", ".22.....", ".22.....", ".22.....", ".22.....", ".222222.", "........", // ── 13: M ──────────────────────────────────────── "........", ".22..22.", ".222222.", ".222222.", ".22..22.", ".22..22.", ".22..22.", "........", // ── 14: N ──────────────────────────────────────── "........", ".22..22.", ".222.22.", ".222222.", ".22.222.", ".22..22.", ".22..22.", "........", // ── 15: O ──────────────────────────────────────── "........", "..2222..", ".22..22.", ".22..22.", ".22..22.", ".22..22.", "..2222..", "........", // ── 16: P ──────────────────────────────────────── "........", ".22222..", ".22..22.", ".22..22.", ".22222..", ".22.....", ".22.....", "........", // ── 17: Q ──────────────────────────────────────── "........", "..2222..", ".22..22.", ".22..22.", ".22.222.", ".22.22..", "..222.2.", "........", // ── 18: R ──────────────────────────────────────── "........", ".22222..", ".22..22.", ".22..22.", ".22222..", ".22.22..", ".22..22.", "........", // ── 19: S ──────────────────────────────────────── "........", "..22222.", ".22.....", "..2222..", ".....22.", ".....22.", ".22222..", "........", // ── 20: T ──────────────────────────────────────── "........", ".222222.", "...22...", "...22...", "...22...", "...22...", "...22...", "........", // ── 21: U ──────────────────────────────────────── "........", ".22..22.", ".22..22.", ".22..22.", ".22..22.", ".22..22.", "..2222..", "........", // ── 22: V ──────────────────────────────────────── "........", ".22..22.", ".22..22.", ".22..22.", ".22..22.", "..2222..", "...22...", "........", // ── 23: W ──────────────────────────────────────── "........", ".22..22.", ".22..22.", ".22..22.", ".222222.", ".222222.", ".22..22.", "........", // ── 24: X ──────────────────────────────────────── "........", ".22..22.", "..2222..", "...22...", "...22...", "..2222..", ".22..22.", "........", // ── 25: Y ──────────────────────────────────────── "........", ".22..22.", ".22..22.", "..2222..", "...22...", "...22...", "...22...", "........", // ── 26: Z ──────────────────────────────────────── "........", ".222222.", ".....22.", "....22..", "...22...", "..22....", ".222222.", "........", // ── 27: 0 ──────────────────────────────────────── "........", "..2222..", ".22..22.", ".22..22.", ".22..22.", ".22..22.", "..2222..", "........", // ── 28: 1 ──────────────────────────────────────── "........", "...22...", "..222...", ".2.22...", "...22...", "...22...", "..2222..", "........", // ── 29: 2 ──────────────────────────────────────── "........", "..2222..", ".22..22.", ".....22.", "....22..", "..22....", ".222222.", "........", // ── 30: 3 ──────────────────────────────────────── "........", "..2222..", ".22..22.", "....22..", ".....22.", ".22..22.", "..2222..", "........", // ── 31: 4 ──────────────────────────────────────── "........", "....22..", "...222..", "..2.22..", ".22.22..", ".222222.", "....22..", "........", // ── 32: 5 ──────────────────────────────────────── "........", ".222222.", ".22.....", ".22222..", ".....22.", ".22..22.", "..2222..", "........", // ── 33: 6 ──────────────────────────────────────── "........", "..2222..", ".22.....", ".22222..", ".22..22.", ".22..22.", "..2222..", "........", // ── 34: 7 ──────────────────────────────────────── "........", ".222222.", ".....22.", "....22..", "...22...", "..22....", "..22....", "........", // ── 35: 8 ──────────────────────────────────────── "........", "..2222..", ".22..22.", "..2222..", ".22..22.", ".22..22.", "..2222..", "........", // ── 36: 9 ──────────────────────────────────────── "........", "..2222..", ".22..22.", ".22..22.", "..22222.", ".....22.", "..2222..", "........", // ── 37: underscore / space ('_') ───────────────── // A shallow underline so the "space" key is visible // in the keyboard grid and the rendered input buffer // shows blanks where the user typed spaces. "........", "........", "........", "........", "........", "........", ".222222.", "........", // ── 38: period ('.') ───────────────────────────── "........", "........", "........", "........", "........", "..22....", "..22....", "........", // ── 39: colon (':') — used in labels only ──────── "........", "........", "...22...", "...22...", "........", "...22...", "...22...", "........", // ── 40: dash ('-') — used in labels only ───────── "........", "........", "........", "........", ".222222.", "........", "........", "........", // ── 41: backspace arrow ('<') ──────────────────── // A left-pointing arrow with a vertical bar on the // right, read as "rub out" by anyone who's used a // Unix terminal. "........", "...2..2.", "..22..2.", ".222222.", "..22..2.", "...2..2.", "........", "........", // ── 42: enter / return arrow ('>') ─────────────── // An arrow pointing down and left — the classic // ↵ glyph flattened to monochrome. Drawn offset to // the right so it reads as "confirm". "........", "......2.", "......2.", "..2...2.", ".22...2.", "222222..", ".22.....", "..2.....", // ── 43: cursor glyph ───────────────────────────── // A right-pointing triangle in the accent colour // (palette index 3). When placed as a sprite at the // cell immediately left of the selected key, it sits // on a row that carries only this sprite, so it never // contributes to the keyboard row's 8-per-scanline // budget. "........", "..3.....", "..33....", "..333...", "..333...", "..33....", "..3.....", "........", // ── 44: blank tile ─────────────────────────────── // Every pixel is palette index 0 — renders as the // universal colour (dk_blue) in the background and // as fully transparent when used as a sprite. Used // to pad the nametable so short rows don't fall back // to tile 0 (the built-in smiley glyph). "........", "........", "........", "........", "........", "........", "........", "........" ] }