A boutique, ground-up 2D console that marries the zero-emulation, deterministic architecture of the 8-bit era with the pixel-pushing muscle of early-90s arcade silicon — designed around factory-fresh components and one custom chip.
re8 sits deliberately between two eras: the lean, fully-understood bus architecture of the NES and PC Engine, and the raw pixel-pushing muscle of a 1990s arcade PCB. Its design rule is a factory-fresh bill of materials rather than dwindling New Old Stock. Exact ordering codes and lifecycle evidence are still open qualification work for part of that bill of materials.
A bare-metal 6502-family core and discrete custom silicon — no soft-cores, no interpretation layer between your code and the hardware.
The console is specified around newly manufactured parts rather than vintage stock. The specification tracks the remaining orderability and lifecycle evidence instead of treating it as settled.
Text, the mouse pointer, hit-testing, controller protocols, keyboard decoding — all handled by the chip, so the CPU stays free for your game.
The planned prog8 library, hardware debug probe and WASM emulator bring 2020s ergonomics to an 8-bit bus once their published validation gates close.
A quick look at what re8 puts on your screen, through your speakers, and in your hands — no engineering degree required.
One CPU, one custom chip, and memory you can count on your fingers. The point of re8 isn't scale — it's that a single developer can understand every cycle, every byte and every wire, and still ship something that looks and sounds like an arcade board.
A fully-static CMOS 6502-family CPU clocked at exactly one third of the master clock, so every scanline is an exact 455 CPU cycles. Deterministic timing you can actually plan against.
Fast asynchronous SRAM on the CPU bus. Small on purpose: the planned SDK build enforces the declared budget at compile time.
On a private bus straight into oito, so graphics fetches never fight the CPU for the main bus.
Games live on parallel NOR flash and execute in place — there is no mandatory preload or decompression stage before code can run. A console-side mapper gives you a fixed 16 KB window for your engine and a switchable window for everything else, up to 1 MB per cartridge.
Because the mapper lives in the console rather than the cartridge, a plain retail board needs only the NOR flash and one small inverter. Saving cartridges add FRAM.
Saving cartridges carry FRAM — nonvolatile, effectively unlimited write cycles, and no battery. The classic retro failure, where a dead coin cell takes a childhood save file with it, simply cannot happen here.
Digital titles on the SD cartridge write their saves to the card instead, so both distribution routes behave the same way to the player.
Every distinctive thing about re8 lives in one custom ASIC targeted to an open 130 nm process. oito is the graphics processor, the sound chip, the cartridge mapper, the input controller and the system glue — and it deliberately takes on jobs that other machines leave to the CPU.
Two independently scrolling 512×256 playfields with per-tile priority and flipping, plus 128 hardware sprites in sizes from 8×8 to 64×64. A line admits up to 32 sprites within a mode-and-scroll-dependent pattern budget of at most 512 bytes. Sprites carry their own priority, so foreground detail can pass in front of one plane and behind another.
oito compares opaque sprite pixels as it draws the line and reports the exact pair that touched — no bounding boxes, no per-frame CPU sweeps, no false positives on transparent pixels.
A dedicated character layer composites above everything else, with its own font in the chip. Menus, dialogue boxes, subtitles and debug overlays cost zero sprites and zero tile budget — and a game can load its own typeface. 40 columns, or 80 in condensed mode.
Give oito a cursor graphic once and it owns the rest: reading the mouse, moving the pointer, clamping it to the screen and compositing it above every layer. Your game just receives move and click events.
Hardware hit-testing reports which sprite and which background tile sit beneath the cursor. What would be a per-click search loop on other machines is a register read here — the difference between a sluggish strategy game and a responsive one.
PSG, wavetable and sampled voices on one die, mixed internally at 47,940.3 Hz. Samples stream directly from the cartridge, so speech and real drums do not consume system RAM; conversion to nominal 48 kHz belongs only to the digital output path.
A VRAM-to-VRAM engine for copies, fills and masked draws that runs alongside the display, enabling destructible terrain and procedural graphics without hand-rolled CPU loops.
The Sega 6-button handshake and the PS/2 keyboard and mouse protocols are all implemented in hardware. Game code reads buttons, characters and pointer coordinates — never wire protocols.
oito is specified for an open-source flow against the SkyWater 130 nm PDK and a custom-pad-ring LQFP-176 package. It has not been fabricated. Full register map, data formats and timing →
The design fans one video pipeline out to every output simultaneously. No mode switch or re-plugging is intended: an analog display and a compatible 1080p60 digital display can be connected at once.
| Output | Connector | Best for |
|---|---|---|
| Digital A/V | 19-pin Type-A | A compatible 1080p60 TV or monitor — fixed 1080p60 nearest-neighbour video, targeting licensed HDMI 1.4b with 48 kHz stereo sound on the same cable once the open gates above close. |
| RGB SCART | Euro-SCART | European CRTs, PVMs and premium upscalers — the enthusiast's choice. |
| Analog RGBHV | DE-15 | 15 kHz-capable monitors and upscalers such as the OSSC or RetroTINK. Not standard VGA timing. |
| S-Video | 4-pin mini-DIN | A noticeably sharper picture on any classic set that supports it. |
| Composite | RCA | Plugs into essentially any television ever made. |
| Analog audio | 3.5 mm + RCA + SCART | 1 Vrms line-out through a 3rd-order active reconstruction filter, on a 3.5 mm line-output connector, an RCA pair and the SCART audio pins. It is not a headphone output. |
re8 runs at 60Hz worldwide. There is no PAL slowdown, no region-locked timing, and no 50Hz version of a game that plays 17% slower than the developer intended.
The digital-output requirement is nearest-neighbour with no interpolation. Integer factors are preferred, but a non-integer nearest-neighbour scale is permitted if the selected scaler needs it.
Progressive 240p — never interlaced — so scrolling stays rock-solid on a CRT and clean through a modern upscaler.
re8 is designed for ordinary Sega Genesis controllers, and the same two ports accept a PS/2 keyboard or mouse through a passive adaptor — no powered dongle, no USB stack, no firmware to flash. It's what turns a console into a machine that can also run strategy games, simulations and text adventures.
3-button and 6-button pads, vintage or modern reproductions. The console performs the full 6-button handshake itself and tells the game which pad it found.
The console maps arrow keys and letters onto the joypad registers below the game — so titles written years earlier become keyboard-playable with no patch and no cooperation from the developer.
The pointer is composited by oito above every layer. Games get coordinates and clicks; nobody spends sprites or CPU time drawing a cursor.
Three imagined re8 editions based on 8BitDo accessories, finished in the re8 palette. Each concept includes a 2.4G wireless receiver shaped as a Genesis-style plug — it drops into either controller port, and for the keyboard and mouse it speaks the console's native PS/2 protocol, so oito handles the device directly in hardware.
The dongle is a Genesis-shaped plug, so it goes into the same DB9 port a pad would use. No adaptor, no console-side setting beyond choosing the port's mode.
The receiver presents the keyboard or mouse to the console exactly as a wired PS/2 device would — so oito decodes scancodes and moves the pointer in hardware, with no device-protocol driver in game code.
Cream shells with brand-teal accents, matched to the console. The pixel-eight mark sits above Start on the pad, and on the shell of every receiver.
Genres that never fitted an 8-bit console — 4X and grand strategy, city and colony builders, point-and-click adventures, tycoon and management games, even a BASIC-style prompt — need a pointer and a text field far more than they need sprites.
re8 provides both in hardware, so those games are natural to write rather than heroic.
There are two ports, so a keyboard or mouse occupies one of them: joystick + keyboard, joystick + mouse, or keyboard + mouse — not all three at once.
Devices are PS/2, not USB. The adaptor is passive wiring, and a port is set to keyboard or mouse mode from the console's own settings screen.
An unpopulated 42-pin header on the planned board exposes the entire CPU bus and the chip's JTAG interface. With the connector fitted, the re8 debug probe is designed to turn a console with no operating system into something you can single-step.
The probe watches the address bus and halts the CPU on the instruction you named — no debug code in your ROM, no performance cost, and the game runs at full speed right up to the moment it stops.
Because the 65C02 is fully static, the clock can be stopped entirely and advanced one cycle at a time with the machine's state perfectly preserved.
A writable dev cartridge is filled directly by the probe over the header; tiny test programs can instead run from system RAM. Neither path requires burning a production cartridge.
The planned re8 SDK uses prog8 — a structured, Python-flavoured language for the 6502 family that compiles to assembly with static allocation and no garbage collector. The planned library above it is event-driven, while the hardware underneath it removes much of the protocol and rendering work that makes 8-bit development tedious.
No heap, no dynamic arrays, no garbage collector. Every variable has a fixed address at compile time, and the build fails if you exceed the RAM budget — you learn at build time, not at 3am.
Arguments live in static cells rather than on a stack, so a call often compiles to a single STA. Ordinary subroutines are non-reentrant as a result — an honest reflection of what the silicon does.
Unused library routines never reach the ROM. Link only the input handlers and you pay only for the input handlers.
Three things that normally consume weeks of an 8-bit project are handled by oito, and reach your code as ordinary events.
Print to a character layer that floats above the game. No font blitting, no tile allocation, no sprite budget — and dialogue boxes are a rectangle of opaque cells, drawn by the chip.
Set the pointer graphic once. oito reads the mouse, moves the pointer, clamps it and composites it. You handle on_move and on_button — nothing else.
Hardware hit-testing tells you which sprite and which map tile are under the pointer. No coordinate maths, no scroll compensation, no per-object loop.
Address $4FFF is a write-only "ghost port" with no backing memory. Writing to it costs 4 cycles and does nothing unless a probe or the emulator is listening — so debug logging can ship in production builds while streaming live text to your editor during development.
The planned toolchain turns listing and symbol data into the information VS Code needs for breakpoints and stepping against original prog8 source lines; its exact debug-info path remains a validation gate.
The planned inspector presents a scrollable grid of loaded tiles, palette overlays, sprite state and active-scanline highlighting through the emulator or physical probe.
The planned hot-reloading WASM emulator runs inside a VS Code panel and shares debug hooks with the physical probe; an immediate console can inspect or change a halted machine.
This page is backed by a detailed normative architecture specification — the document intended to guide hardware and emulator implementations. It carries the register map, data formats, raster and bus timing, candidate bill of materials, file and tool ABI, conformance contract, and an explicit staged register of work that is not closed yet.
Every register with its reset value, bit fields, read/write side effects and unmapped behaviour — plus pseudocode for the blitter, the compositor and all sixteen audio voices.
Named component candidates with voltage domains and margins; exact clocks, raster structure and bus arbitration. Open orderability and lifecycle evidence is tracked explicitly.
The specification assigns remaining work to SDK, schematic, tapeout, prototype and production-release gates rather than implying it is all settled.
re8 is a manufacturability-driven console design, not manufactured hardware. It combines a factory-fresh BOM target, an open-process custom chip and a planned toolchain so an 8-bit machine need not feel like 1985 to develop for.