retro-silicon

retro-silicon

retro-silicon rebuilds classic consoles and computers chip by chip, in FPGA logic, as an open library of parts that can be reused from one system to the next: a 6502 here becomes the 6502 there. Every part is checked in simulation against a reference emulator and then on real FPGA boards, and the results on this site come straight from those runs. The work starts with the Nintendo Entertainment System and moves forward from there.

Roadmap

Phase 1

Nintendo Entertainment System

Nintendo, 1983 · Tang Nano 20K, Tang Console 138K, PYNQ-Z2
In progress
15 of 20 parts

Atari 2600

Atari, 1977 · Tang Nano 20K, Tang Console 138K
Not started

Apple IIe

Apple, 1983 · Tang Nano 20K, Tang Console 138K
Not started

Commodore 64

Commodore, 1982 · Tang Nano 20K, Tang Console 138K
Not started

Game Boy / Game Boy Color

Nintendo, 1989 · Tang Nano 20K, Tang Console 138K
Not started

Master System / Game Gear

Sega, 1985 · Tang Nano 20K, Tang Console 138K
Not started

Phase 2

Super Nintendo Entertainment System

Nintendo, 1990 · Tang Nano 20K, Tang Console 138K
Not started

Apple IIgs

Apple, 1986 · Tang Console 138K
Not started

Sega Genesis / Mega Drive

Sega, 1988 · Tang Console 138K
Not started

Amiga 500

Commodore, 1987 · Tang Console 138K
Not started

Phase 3

Game Boy Advance

Nintendo, 2001 · Tang Console 138K
Not started

PlayStation

Sony, 1994 · Tang Console 138K, Kria KV260
Not started

Phase 4

Nintendo 64

Nintendo, 1996 · Kria KV260
Not started

Sega Saturn

Sega, 1994 · Kria KV260
Not started

Side quests

Smaller systems taken on along the way, each after the main system it builds on.

ZX Spectrum

Sinclair Research, 1982
After Master System
Not started

ColecoVision

Coleco, 1982
After Master System
Not started

MSX

Microsoft and ASCII (a standard), 1983
After Master System
Not started

Classic arcade: Pac-Man, Galaga, Donkey Kong

Namco and Nintendo, 1980
After Master System
Not started

Atari 7800

Atari, 1986
After 2600
Not started

Atari Lynx

Atari, 1989
After 2600
Not started

Atari 8-bit (400/800/XL)

Atari, 1979
After C64
Not started

BBC Micro

Acorn Computers, 1981
After C64
Not started

Amstrad CPC

Amstrad, 1984
After MSX
Not started

IBM PC/XT

IBM, 1983
After BBC Micro
Not started

Vectrex

General Consumer Electronics, 1982
After MSX
Not started

Williams arcade: Defender, Robotron

Williams Electronics, 1981
After Vectrex
Not started

PC Engine / TurboGrafx-16

NEC and Hudson Soft, 1987
After SNES
Not started

Atari ST

Atari Corporation, 1985
After Amiga
Not started

Macintosh Plus

Apple, 1986
After Amiga
Not started

Neo Geo

SNK, 1990
After Genesis
Not started

Sega CD and 32X

Sega, 1991
After Genesis
Not started

Atari Jaguar

Atari Corporation, 1993
After Genesis
Not started

3DO

The 3DO Company, 1993
After GBA
Not started

486 PC

IBM PC compatibles, 1989
After PlayStation
Not started

486 PC with Voodoo

IBM PC compatibles and 3dfx, 1996
After N64
Not started

Namco System 11, ST-V, CPS-3

Namco, Sega and Capcom, 1994
After Saturn
Not started

Nintendo DS

Nintendo, 2004
After N64
Not started

Latest from the build log

A second FPGA family: the PYNQ-Z2

· Nintendo Entertainment System

The NES runs on an AMD Zynq-7020, on a TUL PYNQ-Z2, built entirely with the open-source openXC7 toolchain, and every test gives the Tang boards’ CRCs: nestest, the save-state round trip, all 42 PPU test ROMs, and …

The picture on HDMI

· Nintendo Entertainment System

The NES’s picture now goes out over HDMI at 720p: three times its size, centred, with the console kept in step with the display so each display frame shows one NES frame whole. On the Tang Nano 20K a checksum of …

Save states that move between boards

· Nintendo Entertainment System

The NES now runs on a second board, the Sipeed Tang Console 138K, with its memory in block RAM, and every test gives the same CRCs as on the Tang Nano 20K: nestest 0xebba51ce, and all 42 PPU test ROMs with …

First frames: 42 PPU test ROMs match MesenCE

· Nintendo Entertainment System

The picture processor, video/ppu-2c02, draws its first frames on the board, and they match the reference emulator exactly. Its timing follows MesenCE’s, so a frame from the core and a frame from MesenCE can be …

The 6502, cycle for cycle

· Nintendo Entertainment System

The NES’s CPU core, cpu/6502, matches the original chip on every bus access. In simulation it ran in lockstep with perfect6502, a transistor-level model of the real 6502, over two million cycles of random code with …