Specifications
Video
| |
| Resolution | 640 × 480 at 60 Hz (4:3), 18.4 Mpx/s active |
| Output | HDMI / DVI |
| Depth | 8 bits per pixel, palettised: index → CLUT → RGB565 → RGB888 on the wire |
| Palette | 256 entries per bank, 4 banks, bank selected per sprite — up to 1 024 simultaneous colours |
| Sprites | 2 500 to 3 900 sprite-pixels per scanline, i.e. 80 to 120 sprites of 32 px width per line |
| Sizes | arbitrary and animated; no fixed tile grid |
| Resident art | 450 KB in SRAM, allocated in 256-byte blocks |
| Planes | sprite overlay over background, front/behind priority per pixel |
For comparison, a Neo Geo manages 1 536 sprite-pixels per line — about half.
Compute
| |
| Processors | 3 × RP2350B, dual Cortex-M33 each, six cores total |
| Clock | 252 MHz on all three |
| Synchronisation | genlock from a shared 12 MHz MEMS oscillator on the XIN pins |
| SRAM | 520 KB per chip, 1.5 MB total |
Storage
| |
| NOR | 3 × 16 MB, one per chip on its dedicated XIP port — sprite atlas, background, code |
| Measured throughput | 33 MB/s, i.e. 550 KB reloadable per frame |
| Removable | micro-SD on RP1, with card detect |
Installing a 12 MB game takes about 32 seconds, after which startup is instant. This is
a cartridge model, not a loading-screen model.
Audio
| |
| Digital | HDMI data islands generated by RP3 — no extra components |
| Analogue | I2S DAC on RP1: 4-pole jack and a 2.5 W class-D amplifier into 4 Ω |
| Sample rate | 48 kHz, from an exact PIO divider off 252 MHz |
Both paths exist because many PC monitors have neither speakers nor a headphone output.
Connectivity
| |
| Wireless | Wi-Fi, Bluetooth Classic (BR/EDR) and BLE |
| Gamepads | DualShock 4, DualSense, Switch Pro, 8BitDo… through Bluepad32 |
| Wired | USB-C 2.0 on RP1, the only chip carrying USB for firmwares update |
| Debug | three SWD connectors, one per chip |
Bluetooth Classic is not a bonus feature: it is what living-room gamepads speak.
BLE-only modules will not do.