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

  • 32 added = 36 total holidays in the calendar (matches the home status pill and holidays.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

Sheet of 32 holiday emblem sprites: 8 columns × 4 rows of 32×32 pixel-art icons in the Sierra house style.

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.

IDHolidayShort nameCell(x, y)Description
5Elvis's BirthdayELVIS BDAY0(0, 0)Small guitar and music note.
6MLK Jr. DayMLK DAY1(32, 0)Tiny podium with speech paper and dove.
7Groundhog DayGROUNDHOG2(64, 0)Groundhog head popping from a burrow.
8Valentine's DayVALENTINE3(96, 0)Heart carved on trunk sliver with small floating hearts.
9Super Bowl SundaySUPER BOWL4(128, 0)Football with laces.
10Presidents' DayPRESIDENTS5(160, 0)Tricorn hat with star cockade.
11Mardi GrasMARDI GRAS6(192, 0)Mardi Gras mask and beads.
12Pi DayPI DAY7(224, 0)Tiny chalkboard with pi and pie slice.
13First Day of SpringSPRING8(0, 32)Blossom branch with butterfly.
14April Fool's DayAPRIL FOOL9(32, 32)Whoopee cushion and clown nose.
364/20 Day420 DAY10(64, 32)Green leaf and peace-sign medallion.
15EasterEASTER11(96, 32)Decorated Easter eggs.
16Earth DayEARTH DAY12(128, 32)Globe with tiny leaf.
17Star Wars DaySTAR WARS13(160, 32)Lightsaber prop with star sparkle.
18Cinco de MayoCINCO MAYO14(192, 32)Sombrero and maraca.
19Mother's DayMOTHERS DAY15(224, 32)Coconut vase bouquet.
20Memorial DayMEMORIAL16(0, 64)Half-mast American flag with poppies.
21Father's DayFATHERS DAY17(32, 64)Dad tie and small spatula.
22First Day of SummerSUMMER18(64, 64)Smiling summer sun with shades.
23Pride DayPRIDE19(96, 64)Rainbow pride flag with heart.
24Independence DayJULY 4TH20(128, 64)Firework burst and small flag.
25Moon Landing DayMOON LAND21(160, 64)Toy rocket and moon.
26National Watermelon DayWATERMELON22(192, 64)Watermelon slice with seeds.
27Left-Handers DayLEFT HAND23(224, 64)Left hand holding pencil.
28Hawaii Statehood DayHAWAII DAY24(0, 96)Hibiscus flower.
29Labor DayLABOR DAY25(32, 96)Hard hat and tool.
30Talk Like a Pirate DayPIRATE DAY26(64, 96)Pirate tricorn and skull face.
31First Day of AutumnAUTUMN27(96, 96)Autumn leaf and acorn.
32Columbus / Indigenous Peoples' DayCOLUMBUS28(128, 96)Compass rose on parchment map.
33Election DayELECTION29(160, 96)Ballot box with checked ballot.
34Veterans DayVETERANS30(192, 96)Medal and wreath.
35ThanksgivingTHANKSGIVE31(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/.