ppu.toysA tiny playground for a legendary chip

Make pictures like it’s 1991.

ppu.toys is a playground for the SNES graphics chip, the picture processing unit. Write a little Lua that pokes its memory and registers each frame, each scanline, and the picture updates as you type. What you publish is a toy: playable, forkable, one link to share.

ppu.toys

Now playing

The chip’s face is a real QR code to the site. Hover it.

Toy · Mode 7

Mode 7 Road

The affine ground plane, one matrix per scanline.

Toy · Playable

Bovine Intervention

Abduct five cows, reach the ship. Enter to start, arrows to move, X to switch view, Z for the beam.

Toy · Windows

Stage Lights

Window masking as a moving spotlight iris.

Where toys get made

The Studio

A multi-file Lua editor beside the live 256×224 output, with inspectors for backgrounds, VRAM, CGRAM, sprites, windows, scanlines and every register. The last program that ran keeps running while you type.

Toy · Offset-per-tile

Wavy Text

There is no text mode. A tile font and sine waves, per column and per scanline.

Toy · Sprites

Star Patrol

An arcade shooter built from OAM sprites.

Toy · Scrolling

Dusk Parallax

Layered scrolling, colour cycling, a first sprite.

Toy · OAM

Sprite Parade

Animation and the real per-line sprite limits.

The wall

Browse every toy

Everything published, newest first. Open one, press Fork, change a number.

Write Lua, see the frame

Flat globals, no namespace: mode, bg[n], m7, cgram[], obj[], hdma(). Change a line and the output answers.

Poke the chip

Edit a register or a colour in an inspector and it is written down as Lua in ppuglobals.lua. The script always wins.

Publish, fork, share

A published toy is a live, playable permalink. Anyone can fork it into their own studio. Signing in is with Discord.

Modelled faithfully

The real machine

  • Tile modes 0 to 4 and Mode 7, with EXTBG and direct colour.
  • Sprites with the authentic OBJ limits.
  • Main and sub screens, windows, colour math, mosaic, force blank.
  • Register changes per scanline, HDMA-style.
  • S-DSP audio, with a small music kit.
Why it exists

I’ve wanted to poke around the SNES graphics chip for as long as I’ve watched people explain it. ppu.toys is the playground I wanted: the real register semantics, nothing hidden, and a picture that answers the moment you change something.

Playing, forking and publishing toys is free and stays free. It’s built with a lot of AI assistance, and I’m glad to say so.

Community

Join the Discord

Jams, help, and a place to show what you made.

Source

ppu CLI

The open-source ppu CLI renders and checks toys on your own machine.

Liora Labs

All software

Cook, Git Mosaic, Canopy, and what's next.