Intermediate Patterns
More advanced techniques building on the basics
Commodore 64
2 patternsRaster Splits
Fire an interrupt when the beam reaches a chosen scanline and change a VIC-II register mid-screen — the basis of colour bars, split panels, and beating the chip's limits.
Smooth Scrolling
Scroll the screen a pixel at a time with the VIC-II fine-scroll registers, then coarse-shift the character map every eighth pixel — the trick behind every smooth C64 playfield.
Sinclair ZX Spectrum
5 patternsAY Envelopes and Noise
Let the AY shape a note's volume in hardware and add its noise channel — a decaying pluck from the envelope generator, an explosion from noise, each fired with a single register write.
Beeper Music
Play an actual melody on the Spectrum's one-bit speaker — a note table for pitch, a length per note — and coax two or more voices from that single bit with phase accumulators.
State Machine Loop
Organise game flow with distinct states (title, playing, game over). Clean separation of game phases.
Attribute Clash
The Spectrum stores one ink-and-paper colour per 8×8 cell, so pixels and colour live on different grids — the source of colour clash. Understanding it, and the design craft that turns the constraint into the platform's look.
Bitmap Addressing
Turn an (x, y) pixel into a Spectrum screen address — where consecutive lines are nowhere near each other in memory. The interleaved layout that every Spectrum drawing routine has to reckon with.
Nintendo Entertainment System
3 patternsSound Effects
Let the APU bend pitch and fade volume in hardware — a swept pulse for a laser, a decaying noise burst for an explosion — each fired with a single trigger write.
Multi-Sprite OAM Update
Manage multiple sprites in the OAM buffer. Update positions, hide unused sprites, and DMA transfer efficiently.
Nametables and Scrolling
Position the NES's 256×240 viewport inside the larger tile map by setting the nametable-select bits and the fine scroll every vblank — the foundation of every scrolling NES game.
Commodore Amiga
3 patternsOne-Shot Samples
Play a sample once instead of looping, using Paula's channel interrupt to stop it after a single pass — the way sound effects fire, and the seed of tracker playback.
Blitter Copy
Move a rectangular block of graphics with the Amiga's blitter instead of the CPU — set four registers, write BLTSIZE, and Agnus streams the copy while the processor does something else.
Copper Colour Bars
Change the background colour at chosen scanlines from the copper list — no CPU, no interrupt, no jitter — to paint horizontal bars or a smooth vertical gradient the beam draws for you.
Cross-Platform
4 patternsTune Sequencer with Two Terminators
A melody is a table of pitch and duration; a once-per-frame tick serves it. One terminator loops (title music), the other stops (fanfares and stings) — win and lose having voices costs one extra marker.
Escalation as Data
Difficulty lives in a table; a level-up pokes the next row into live tuning variables the systems read fresh every frame. The systems never learn that levels exist.
LFSR Random Numbers
Linear Feedback Shift Register for fast, deterministic pseudo-random numbers.
Fixed-Point Math
Fractional values without floating point. Essential for smooth movement and physics on 8/16-bit CPUs.