A downloadable game

Download NowName your own price

Potions rain down from the shelves of a wizard's laboratory in vials of six colours. Line up three or more of a colour — horizontally, vertically or diagonally — and they react and vanish, dropping whatever sat above them into new arrangements.

Among the potions fall the arcane reagents: fireballs, bolts, bombs, stars and prisms. Placed well, they set each other off, and a single piece can unravel half the board.

Wizards Lab is a 16 KB cartridge for three 8-bit machines — the Commodore 64, the Commodore VIC-20 and the AC6502 — written in 6502 assembly. Same playfield same tiles, same timing, on all three.

This is a cartridge, not a browser game. The download is four ROM images: run them in VICE or the AC6502 emulator, or burn one to an EPROM and play it on the real thing.

Rules:

Tiles match on colour. The glyph on a tile decides what happens when it clears. A red potion, a red fireball and a red star are all "red" — so every reagent is aimed exactly like the potion it resembles, and you choose when to set it off.

- Fireball — destroys every tile of its own colour, board wide
- Bolt — clears its whole row and column, up to 21 cells
- Bomb — clears the 3 × 3 around it
- Star — doubles the whole cascade's score, up to ×8
- Prism — wildcard, matches any colour

A reagent caught in another reagent's blast goes off too!

Controls:

Rotate — joystick up, or W, or cursor up
Move — joystick left and right, or A and D, or the cursor keys
Soft drop — joystick down, or S, or cursor down
Rotate back — fire, or Q, or SPACE
Pause — P
Start — fire, or SPACE, or RETURN

Joysticks are Atari 2600 compatible — port 2 on the C64.

What is in the download:

run/ — load these. One file per machine, the load address carried inside it.

- WizardsLab-C64.crt — Commodore 64
- WizardsLab-VIC20.crt — VIC-20
- WizardsLab-VIC20.prg — VIC-20 prg (32k RAM)
- WizardsLab-AC6502.crt — AC6502

eprom/ — burn these. Raw ROM images, named for their size and load address, for a 27C128, a pair of 27C64s or a 28C256.

Running it:

Drag the .crt onto a running VICE window, or:

Commodore 64 — x64sc -cart16 WizardsLab-C64.crt
VIC-20 — xvic -cartA WizardsLab-VIC20-blk5.crt -cart6 WizardsLab-VIC20-blk3.crt
AC6502 — 6502 run --cart WizardsLab-AC6502.crt

x64sc and xvic are VICE — https://vice-emu.sourceforge.io/
The AC6502 emulator — https://github.com/acwright/6502-EMULATOR

VIC-20 Penultimate Cart — Use the WizardsLab-VIC20.prg file (32k RAM)
KungFu Flash / C64U — Use the WizardsLab-C64.crt file

How it was made:

One source tree, three cartridges. Everything the game does is shared code; the only things that differ are four constants and seven routines behind a platform contract, so no game logic anywhere knows which machine it is on.

The VIC-20 set the shape of it. Its 22 columns are the playfield all three machines draw, its eight hi-res colours capped the palette at six potions plus white, and its ~1 KB of usable RAM is what the whole 557-byte memory layout was designed against. Designing for the tightest machine first is why the other two needed no compromises.

Source, and the full design document — every rule, scoring table and level speed — at https://github.com/acwright/WIZARDSLAB

MIT licensed.

Updated 5 minutes ago
Published 1 day ago
StatusReleased
Rating
Rated 5.0 out of 5 stars
(1 total ratings)
AuthorA.C. Wright
GenrePuzzle
Tags6502, 8-Bit, assembly, Commodore 64, Homebrew, match-3, Pixel Art, Retro, Singleplayer, VIC-20
AI DisclosureAI Assisted, Code

Download

Download NowName your own price

Click download now to get access to the following files:

Cartridge images — AC6502, VIC-20, C64 (.crt, .prg + ROMs, 40 KB) 39 kB

Comments

Log in with itch.io to leave a comment.

I really like Columns clone, like your game. I was impressed when I launched it in xvic without adding any memory.

And on my first play with the C64 version, I went to level 8, and 18814 points. Not that bad after all!

(+1)

Nice! Thanks for trying it out!

And you for publishing it.  Maybe my favorite retro-game for september 2026.