Reference
Holiday emblem gallery
32 pixel-art icons, 32x32 each, in the Sierra house style.
~2 min read · 721 words
On this page
The four original Sierra holidays (New Year’s Day, St. Patrick’s
Day, Halloween, Christmas — IDs 1–4 in holidays.yml) keep their
original full-island sprites. The 32 holidays added by this port
(IDs 5–36) use a different artifact: a 32x32 transparent emblem
that overlays the corner of the screen during the holiday’s window.
There are 32 emblems total, one for each added holiday — 4 original
32added =36total holidays in the calendar (matches the home status pill andholidays.yml).
The icons were authored by AI sub-agents working from
docs/ps1/holidays-style-guide.md
and a shared 16-color CLUT defined in scripts/holidays_art_lib.py.
Index 0 is reserved for transparent. The visual register matches the
Sierra screensaver house style: saturated VGA primaries (cyan, blue,
yellow, red, green), 1px dark outlines where they help readability,
roughly 20-30 active pixels across, no Johnny, no palm reskins, no
sand or sky strips. Each emblem is a small overlay prop, not a scene.
All 32 cells fit on one 256x128 sheet, eight columns by four rows.
At runtime the PS1 reads a single cell out of the sheet by (x, y)
offset and blits it transparent over the screen at the
(island_x, island_y) anchor recorded in the holiday’s row of
gHolidays[].
The sheet

Direct link:
docs/ps1/holidays-emblems/holiday-emblems-sheet.png.
A checkerboard preview at the same path makes transparency obvious.
Per-emblem index
Cell numbers run row-major from the top-left. (x, y) is the
pixel offset into the sheet. The slug column links to the holiday’s
own page.
| ID | Holiday | Short name | Cell | (x, y) | Description |
|---|---|---|---|---|---|
| 5 | Elvis's Birthday | ELVIS BDAY | 0 | (0, 0) | Small guitar and music note. |
| 6 | MLK Jr. Day | MLK DAY | 1 | (32, 0) | Tiny podium with speech paper and dove. |
| 7 | Groundhog Day | GROUNDHOG | 2 | (64, 0) | Groundhog head popping from a burrow. |
| 8 | Valentine's Day | VALENTINE | 3 | (96, 0) | Heart carved on trunk sliver with small floating hearts. |
| 9 | Super Bowl Sunday | SUPER BOWL | 4 | (128, 0) | Football with laces. |
| 10 | Presidents' Day | PRESIDENTS | 5 | (160, 0) | Tricorn hat with star cockade. |
| 11 | Mardi Gras | MARDI GRAS | 6 | (192, 0) | Mardi Gras mask and beads. |
| 12 | Pi Day | PI DAY | 7 | (224, 0) | Tiny chalkboard with pi and pie slice. |
| 13 | First Day of Spring | SPRING | 8 | (0, 32) | Blossom branch with butterfly. |
| 14 | April Fool's Day | APRIL FOOL | 9 | (32, 32) | Whoopee cushion and clown nose. |
| 36 | 4/20 Day | 420 DAY | 10 | (64, 32) | Green leaf and peace-sign medallion. |
| 15 | Easter | EASTER | 11 | (96, 32) | Decorated Easter eggs. |
| 16 | Earth Day | EARTH DAY | 12 | (128, 32) | Globe with tiny leaf. |
| 17 | Star Wars Day | STAR WARS | 13 | (160, 32) | Lightsaber prop with star sparkle. |
| 18 | Cinco de Mayo | CINCO MAYO | 14 | (192, 32) | Sombrero and maraca. |
| 19 | Mother's Day | MOTHERS DAY | 15 | (224, 32) | Coconut vase bouquet. |
| 20 | Memorial Day | MEMORIAL | 16 | (0, 64) | Half-mast American flag with poppies. |
| 21 | Father's Day | FATHERS DAY | 17 | (32, 64) | Dad tie and small spatula. |
| 22 | First Day of Summer | SUMMER | 18 | (64, 64) | Smiling summer sun with shades. |
| 23 | Pride Day | PRIDE | 19 | (96, 64) | Rainbow pride flag with heart. |
| 24 | Independence Day | JULY 4TH | 20 | (128, 64) | Firework burst and small flag. |
| 25 | Moon Landing Day | MOON LAND | 21 | (160, 64) | Toy rocket and moon. |
| 26 | National Watermelon Day | WATERMELON | 22 | (192, 64) | Watermelon slice with seeds. |
| 27 | Left-Handers Day | LEFT HAND | 23 | (224, 64) | Left hand holding pencil. |
| 28 | Hawaii Statehood Day | HAWAII DAY | 24 | (0, 96) | Hibiscus flower. |
| 29 | Labor Day | LABOR DAY | 25 | (32, 96) | Hard hat and tool. |
| 30 | Talk Like a Pirate Day | PIRATE DAY | 26 | (64, 96) | Pirate tricorn and skull face. |
| 31 | First Day of Autumn | AUTUMN | 27 | (96, 96) | Autumn leaf and acorn. |
| 32 | Columbus / Indigenous Peoples' Day | COLUMBUS | 28 | (128, 96) | Compass rose on parchment map. |
| 33 | Election Day | ELECTION | 29 | (160, 96) | Ballot box with checked ballot. |
| 34 | Veterans Day | VETERANS | 30 | (192, 96) | Medal and wreath. |
| 35 | Thanksgiving | THANKSGIVE | 31 | (224, 96) | Cornucopia with fruit. |
Style rules
From docs/ps1/holidays-style-guide.md:
- 32x32 canvas; transparent (palette index 0) background.
- 16-color CLUT shared across all emblems. No per-emblem palette.
- 20-30 active pixels across the icon. Readable from the PS1 viewing distance on a CRT.
- 1px dark outlines around the silhouette where contrast against the island helps. Skip outlines on bright accents that read fine on their own.
- No Johnny. No palm reskins. No sand or sky strips. The sprite is a small prop, not a scene reskin.
- The three-color hint in each row of
holidays.yml(e.g. red / green / gold for Christmas) is a guide to the codegen step, not a full palette. The full palette is the shared CLUT.
Adding an emblem
See the build pipeline reference:
docs/ps1/holidays-pipeline.md.
Short version:
./scripts/holidays-build-all.sh --clean
That regenerates the per-icon PNGs, the packed sheet, the
checkerboard preview, and manifest.json into scratch/holidays-emblems/.
Tracked review copies live at
docs/ps1/holidays-emblems/.
Related
- Per-holiday calendar
- Date-algorithm core
- Lab: 35 holidays in 4 weeks — the codegen retrospective; the sprite-primitive composition for these emblems is described from the inside there.
- AI sub-agents on this project — the emblem sprites were authored by an LLM sub-agent against the style guide; this page records what that did and didn’t cover.
holidays.yml— source of truthscripts/holidays_art_lib.py— shared CLUTdocs/ps1/holidays-style-guide.md— full style rules