3ric — 65C02 Game Dev Tutorials

▶ Emulator & Editor ▶ Story ▶ Gallery

An eight-lesson course in 65C02 assembly game programming on 3ric — the from-scratch Apple-II-class machine that runs in your browser. Start at Hello, 3ric and build up to a playable Space Invaders. Every lesson comes with a small, fully-commented program you can run with one click, edit in the in-browser editor, and re-share. No install, no account. Read the lessons in order — each one reuses the routines from the last.

Lesson 1

Hello, 3ric

Your first program end-to-end: type it, assemble it, run it. Print text with the ROM’s character-out routine.

New: the assembler, COUT, the run loop.

Lesson 2

The text screen

Write straight to screen memory: draw a border, center a title, and lay out a HUD on the 40×24 text grid.

New: screen memory, the interleaved row map, direct writes.

Lesson 3

Reading the keyboard

Steer a hero around the screen with W/A/S/D. Build the read-a-key, erase, move, redraw loop every game uses.

New: the keyboard at $C000, bounds, the input loop.

Lesson 4

Color with lo-res

Flip into 40×48 lo-res color, write a reusable plot routine, and steer a color-cycling block.

New: soft switches, the lo-res two-pixels-per-byte layout, 16 colors.

Lesson 5

Motion & collision

A ball that moves on its own and bounces off all four walls — your first real game loop with velocity.

New: the game loop, velocity, reflecting at boundaries, timing.

Lesson 6

Randomness & scoring

Catch-the-food: a random target, collision, and a live score in a text HUD below the graphics.

New: an LFSR random generator, mixed mode, drawing a number.

Capstone

Space Invaders

Put it all together: a marching alien fleet, a cannon, a bullet, collision, score, and win/lose screens.

New: a game state machine, a fleet stored as data, edge-reverse motion.

Lesson 8

Hi-res & next steps

A peek at 280×192 high-resolution graphics, then a map of the shipped games to read and remix from here.

New: hi-res mode, interleaved rows, precomputed address tables.