mirror of
https://github.com/imjasonh/nescript
synced 2026-07-09 01:16:12 +00:00
437 lines
15 KiB
Text
437 lines
15 KiB
Text
|
|
// 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).
|
|||
|
|
"........",
|
|||
|
|
"........",
|
|||
|
|
"........",
|
|||
|
|
"........",
|
|||
|
|
"........",
|
|||
|
|
"........",
|
|||
|
|
"........",
|
|||
|
|
"........"
|
|||
|
|
]
|
|||
|
|
}
|