Skip to content

Deep Winter C64: 2020 Development Notes

Deep Winter has been percolating away in the background while Parallaxian takes centre stage, but the technical foundation is interesting enough to warrant a write-up. The whole architecture hinges on a trick I developed in Parallaxian and then pushed further: NMI-plexing while suspending IRSTs.

The NMI/IRST Chain

The display is driven by a chain of IRSTs (Interrupt Raster Splits) — these handle the parallax scrolling layers, colour splits, and the various screen effects that make the forest scenery look like more than a flat character display. Standard stuff for any C64 game with raster effects.

The clever part is what happens on top of that. Precisely timed NMIs fire via the CIA at $DD0D, interrupting the IRSTs mid-execution to plex the tree sprites. The NMI handler repositions sprites, updates pointers, and gets out as fast as possible — typically in under 20 cycles. It has to be fast because the IRST it interrupted is time-critical and needs to resume without visible glitching. If your NMI overstays its welcome, you get torn raster bars or missed colour splits. Not acceptable.

The key insight is that the NMI suspends the IRST rather than fighting with it. The IRST doesn’t know or care that it was interrupted. It resumes exactly where it left off, with all registers restored. The NMI is a ghost that slips in, does its sprite work, and vanishes. This concept originated in Parallaxian’s multiplexer and was subsequently picked up by John Henderson for his The Wild Wood game, which was satisfying to see.

The Toggleplex Snowstorm

The snowstorm effect uses what I call “Toggleplex” — a multiplexing technique where sprite enable bits at $D015 are rapidly toggled to create the illusion of more snowflake sprites than the hardware actually supports. Rather than moving 8 sprites around in a conventional plex cycle, Toggleplex rapidly enables and disables individual sprites across multiple screen zones within a single frame, creating the visual density of a heavy snowfall.

The result is a screen full of falling snow that looks like it involves 20+ sprites but actually uses the standard 8, just very aggressively time-sliced. The flickering is managed carefully so each snowflake gets enough visible frames to register as a solid object rather than a flashing dot. It’s an optical illusion, but it works.

Gameplay: Survive Until Spring

The game concept is pure survival. No enemies to shoot, no levels to complete. Just you, the cold, and the wilderness. Each day you need to source three things:

  • Food — forage, trap, fish through ice
  • Water — find unfrozen sources, melt snow (costs fuel)
  • Heat — gather firewood, maintain shelter, don’t let the fire die

Fail any of these and your condition deteriorates. The cycle repeats daily until spring arrives — if you’re still alive. Temperature drops steadily as winter deepens, making resources scarcer and each day’s survival harder than the last. It’s meant to feel bleak, desperate, and ultimately rewarding when you see the thaw begin.

See also: Deep Winter game page · origins of Deep Winter concept · technical deep-dive: sprite multiplexing · December 2020 newsletter