Skip to content

papyDeck

papyDeck is an arcade-inspired console programmable in Lua. The hardware: three genlocked RP2350B, 640 × 480 at 60 Hz, 8 bits per pixel palettised, one palette of 256 entries and a blend table, and a sprite budget counted per scanline.

A game is written once and runs in two places: the simulator, in the browser, and the board. Both expose the same API, gfx, pad, sys, phy and require, at the same cost model: a line too busy shows stale, a sprite not yet in the pool misses a frame, in one exactly as in the other. A game that runs in the simulator runs on the board.

Where to start

  • Your first game: a game is a folder, a skeleton of two functions, a sprite that follows the D-pad, a platformer in 75 lines.
  • The rules: the five rules that govern the whole API, the sandbox, integers and floats.
  • The App: where projects, art bundles and published games live.

The design of the hardware and the firmware is documented on www.papydeck.eu.

Determinism

A game must replay bit for bit: a score is a trace, the sequence of the inputs of a game, and the leaderboard server does not take a score on trust, it replays the trace and must find the same number. That is why the logical frame is the call to _update() rather than the clock, why the engine works in integers, and why the transcendental functions are not there.

Licence

Firmware and software are under MIT, the hardware under CERN-OHL-P.