Skip to content

Meteor Storm

Spectrum · Assembly

Dodge a drifting storm, collect stars and race the clock — build the game from pixels and measured updates.

36 units

Start with Carry a pixel into the next byte Browse lessons

New to assembly? Begin with Meet Assembly →

Meteor Storm course capture
Meteor Storm · Spectrum

Race through a scattered meteor storm. One hit ends the run. Stars tempt you away from a safe path; holding Space doubles your progress and their value. Cross one storm and the next begins: the voyage is five storms long, and each is faster, denser and hotter than the last. Finish each storm faster for a bigger bonus, multiplied by the storm’s number, then try to beat your fastest storm and your furthest voyage. Every star, boost, arrival and impact has its own sound, a hit breaks the ship apart before the result, and meteors change colour as they fall towards you.

Source · view and edit
ZX Spectrum
Companion file: assets.inc

The include line reads this editable data when you assemble. Keep it beside your source for a local build.

Edit the source, then assemble.

Edits are saved in this browser. Keep a downloaded copy of work you want to keep.

Focus the Spectrum screen to use the keyboard, or hold these buttons. Assemble again for a fresh machine.

Run the program to inspect it. Editing source does not change the running machine.

phase
—
storm
—
score
—
elapsed
—

Build it in small steps

We start with a pixel crossing a byte boundary and finish with a game you can load from tape. The target is a stock 48K PAL ZX Spectrum, using original Z80 instructions. Meet Assembly introduces the registers, memory, loops, calls, keyboard input and debugger we use here; immediate ideas are recalled as they become useful. BASIC is not a prerequisite.

Every lesson includes runnable source, an experiment and a way to inspect the real machine. Companions containing artwork and course data are editable and downloadable too. The browser starts code directly so you can spend time changing the program; the final lesson separately checks a fresh tape load. Tick Sound beside an experiment’s buttons to hear the machine; it starts off, and once ticked it stays on for the other lessons. Asm198x is the recommended local assembler, with upstream Pasmo as an alternative, and Emu198x is the recommended desktop emulator; getting started covers installing them.

Pixels and a measured update

  1. Carry a pixel into the next byte
  2. Prepare eight horizontal positions
  3. Find a pixel in Spectrum memory
  4. Draw the whole ship
  5. Erase before moving
  6. Give the interrupt a small job
  7. Count frames, choose updates
  8. Put steering on the frame clock

Objects, phases and rewards

  1. Let a meteor move independently
  2. Distinguish a hit from a near miss
  3. Give the game clear phases
  4. Give each object a record
  5. Walk the pool and reuse a slot
  6. Make a storm with an end
  7. Give meteors a gentle drift
  8. Collect something worth the risk
  9. Turn a score into readable digits

A complete timed game

  1. Measure time without counting distance
  2. Show seconds and hundredths
  3. Hold Space to boost
  4. Draw once, check twice
  5. Keep the best time and score
  6. Make the instructions fit

Sound, spectacle and sharing

  1. Turn a click into a tone
  2. Give every event a sound
  3. Pay for sound in the frame
  4. Break the ship apart
  5. Colour the storm by place
  6. Chain storms into a voyage
  7. Let the score outgrow a byte
  8. Reward each storm cleared
  9. Make each storm harder
  10. Remember the furthest storm
  11. Let the title play itself
  12. Draw a loading screen
  13. Keep and share the game