Placa FPGA Sipeed Tang Console 60K, la base del MSX2+ MSXimus

FPGA and MSX: from the WonderTANG to MSXimus and MSX Asgard


A technical history of the main modern FPGA projects for MSX published on GitHub: from the first experiments with VDPs and Tang cartridges to complete MSX2+ machines living inside an FPGA.

Part 1 · History and evolution
New to FPGAs? If you are not sure what an FPGA is or why it is changing the MSX world, start with What is an FPGA? and carry on with Goa’uld for MSX, how to use it (both in Spanish).

An important note: not every project in this history is a direct fork. Where an explicit derivation exists it is described as such; where there is only reuse of ideas, modules or concepts, we speak of influence or convergence.

The overall family tree

CARTRIDGE / WONDER BRANCH WonderTANG └── tnCart └── tnCartWonder ├── Wonder9968 → video / V9968 └── mangOPL4 → audio / OPL4 GOA’ULD BRANCH MSX Goa’uld └── MSX Goa’uld SD ├── Goa’uld SD + USB ├── MSXnano │ └── MSXimus └── MSX Asgard → convergence with the cartridge format PARALLEL BRANCHES tn_vdp └── V9958-Super TangCartMSX MSX1 on Tang Nano 20K

Before the cartridges: the FPGA as a VDP replacement

One of the important threads for understanding everything that followed is tn_vdp, by Luis Felipe Antoniosi. The project uses Tang FPGAs to recreate the video chips used in MSX computers.

tn_vdp

Tang Nano 9KTang Nano 20KTMS99xxV9958

The FPGA takes the place of the computer’s physical VDP. The rest of the MSX carries on being real hardware while the video side can be repaired, modernised or used as an experimentation platform.

Benefit: tackling one of the system’s most important chips head-on without turning the whole computer into an FPGA.

GitHub: tn_vdp ↗

V9958-Super

V9958-Super derives from tn_vdp and explores graphics extensions that go beyond the traditional behaviour of the V9958. It is a branch aimed squarely at experimentation.

GitHub: V9958-Super ↗

WonderTANG: a Tang Nano 20K inside an MSX cartridge

WonderTANG

Tang Nano 20KcartridgemicroSDNextorSCC+OPLL

WonderTANG turns a Tang Nano 20K into a multifunction expansion for a real MSX. The host computer remains the main machine, but the cartridge brings storage, memory, sound and several extra functions inside the FPGA.

Among its capabilities you will find microSD with Nextor, Memory Mapper, MegaRAM, SCC+ and OPLL.

Main use: modernising a real MSX without replacing it.

Benefit: concentrating in a single expansion the functions that would traditionally need several cartridges.

GitHub: WonderTANG ↗

WonderTANG → tnCart

This is one of the points most easily misread: WonderTANG comes before tnCart. The tnCart project itself states that its circuit takes revisions of the WonderTANG hardware as a reference.

tnCart

V9990NextorSCCOPLLPACMegaROM

tnCart develops its own platform on top of the Tang cartridge concept and adds a very wide combination of functions. One of the most striking is its V9990 implementation, alongside Memory Mapper, Nextor, SCC/SCC-I, OPLL, PAC and various cartridge emulation options.

Main use: a multifunction expansion and an experimentation platform, especially around the V9990.

GitHub: tnCart ↗
WonderTANG → tnCart

tnCart → tnCartWonder

tnCartWonder

tnCartWonder is a fork of tnCart adapted back to the WonderTANG hardware. It is the direct bridge between both lines.

Benefit: running the tnCart development on WonderTANG-compatible hardware.

GitHub: tnCartWonder ↗
WonderTANG → tnCart → tnCartWonder

Wonder9968: the video branch

Wonder9968

Wonder9968 explores integrating a V9968 into the WonderTANG/tnCart ecosystem. This branch connects the FPGA cartridge world with the evolution of the classic MSX2+ VDPs.

Use: experimenting with higher graphics capabilities while staying on a platform compatible with the Tang ecosystem.

GitHub: Wonder9968 ↗

mangOPL4: the sound branch

mangOPL4

mangOPL4 uses tnCartWonder and WonderTANG as a base to move towards an FPGA implementation of the OPL4 / MoonSound.

MoonSound, built around the Yamaha YMF278B, is one of the most advanced audio expansions in the MSX ecosystem.

Use: developing and validating advanced audio on FPGA.

Status: it should be considered a work in progress.

GitHub: mangOPL4 ↗

Another route: MSX Goa’uld

While WonderTANG and tnCart were evolving around the expansion cartridge concept, MSX Goa’uld took a radically different approach.

MSX Goa’uld

A Tang Nano 20K is fitted in the place of a real MSX’s Z80. But the FPGA does not stop at replacing the CPU: little by little it takes in the CPU, the VDP, the BIOS and other fundamental parts of the computer.

The physical MSX still contributes valuable things: keyboard, joysticks, slots, case and part of the electronics.

GitHub: MSX Goa’uld ↗
Goa'uld FPGA board (Tang Nano 20K) fitted into the Z80 socket of a Sony HB-F1
A Goa’uld inside a Sony HB-F1: the FPGA takes the place of the original CPU and the rest of the computer stays as it always was.

MSX Goa’uld SD

Z80 FPGAV9958HDMINextorSCCOPLLKanji

Goa’uld SD takes the idea much closer to containing a complete MSX2+. It brings together CPU, V9958 with HDMI, MSX2+ BIOS, SD storage with Nextor, mapper, MegaRAM SCC, PSG, OPLL, RTC, Kanji and experimental connectivity features.

Main use: turning an old MSX into a very advanced MSX2+ machine while keeping the physical experience of the computer.

We wrote a full article about it: Goauld SD, an out-of-this-world upgrade (in Spanish).

GitHub: MSX Goa’uld SD ↗

Goa’uld SD with USB keyboard and gamepad

The MSXgoauldSD_usbkb branch adds a modern input layer using an RP2040 as a USB host.

RP2040USB HIDUSB keyboardUSB gamepadoptional ESP-01S

One of its advantages is that the MSX’s original keyboard and joysticks can keep being used at the same time as the USB peripherals.

Wi-Fi can lean on an ESP8266-based ESP-01S; worth telling it apart from the ESP32-C6 that shows up later in MSXimus.

GitHub: Goa’uld SD + USB ↗

Guardian Angel

MSX Goa’uld Guardian Angel is an auxiliary project related to RP2040 integration and USB support. It is not a complete MSX FPGA core, but it is part of the technical evolution of this branch.

GitHub: Guardian Angel ↗

From Goa’uld to a fully standalone MSX

Once the FPGA already holds CPU, VDP, memory, BIOS, storage and sound, the logical next step is to do without the host MSX altogether. MSXnano was born out of that evolution.

MSXnano

MSXnano turns a Tang Nano 20K into a standalone MSX2+. It no longer needs to be installed inside a real MSX computer.

Tang Nano 20KstandaloneV9958HDMINextorSCCOPLL

Main use: having a compact, modern MSX2+ FPGA without needing an original MSX.

Benefit: a very good balance of size, cost and features.

We covered the latest version in MSXnano v1.8 (in Spanish).

RetroSilicon/MSXnano ↗
Papipapito/MSXnano ↗
Inside an MSXnano v1.8 with the Tang Nano 20K, the HDMI adapter and the ESP-01 WiFi module
Inside an MSXnano: no host MSX here, just the FPGA, HDMI, the SD card and Wi-Fi.

MSXimus: the big brother

MSXimus

Tang Console 60KV9968V9958OPL4Y8950dual SCCUSBESP32-C6

MSXimus takes the MSXnano philosophy to a considerably larger FPGA. The extra resources make room for V9968/V9958, 720p HDMI, OPL4/MoonSound, Y8950-based MSX-Audio, OPLL, dual stereo SCC, built-in USB, DDR3 and optional connectivity through an ESP32-C6.

Main use: a far more ambitious standalone MSX FPGA, especially in video, audio and modern peripherals.

We cover it in depth in MSXimus: a complete MSX2+ inside an FPGA (in Spanish).

GitHub: MSXimus ↗
V9968 VDP demo running on an MSXimus, with multicolour sprites impossible on a real MSX2+
The V9968 demo on an MSXimus: 15-colour sprites defined pixel by pixel, well beyond what a real MSX2+ can do.

MSX Asgard: Goa’uld goes back to the cartridge

MSX Asgard

Asgard brings back together two concepts that seemed to have evolved down different roads: a complete MSX2+ inside an FPGA, and the cartridge format.

It integrates Z80, V9958 with HDMI, MSX2+ BIOS, SD and Nextor, mapper, MegaRAM SCC, PSG, OPLL, RTC and Kanji, but it uses the cartridge slot instead of the Z80 socket.

Benefit: taking the Goa’uld philosophy to a format that is potentially more convenient and more reversible.

To be cautious, Asgard is better described as a conceptual convergence between Goa’uld and the cartridge line, rather than a direct fork of tnCart, as long as no documented code genealogy exists.

GitHub: MSX Asgard ↗

TangCartMSX: another line of experimentation

TangCartMSX

HRA1129’s repository gathers a great many experiments around FPGA cartridges, VDPs, Tang Nano 9K/20K and approaches to MSX1 and MSX2+.

It is best not treated as a single finished product: it makes more sense to see it as a research lab around the MSX bus, cartridges and video.

GitHub: TangCartMSX ↗

Independent implementations

MSX1 on Tang Nano 20K

Not every MSX implementation on Tang derives from WonderTANG or Goa’uld. This project implements a standalone MSX1 with Z80, TMS9918A, AY-3-8910, HDMI, PS/2 keyboard and storage support.

Benefit: a simpler architecture, which makes it especially interesting for study and experimentation.

GitHub: MSX1 Tang Nano 20K ↗

A tree that keeps growing

One of the most interesting things about these projects is that we are not looking at a single closed implementation of the MSX standard. Each development has served as a platform, an inspiration or a starting point for others.

An FPGA VDP leads to experimenting with new video modes. A cartridge ends up hosting storage, memory, sound and new VDPs. An FPGA sitting in the Z80 socket ends up becoming practically the whole computer. And that same computer ends up running without needing a host MSX at all.

WonderTANG → tnCart → tnCartWonder → Wonder9968 / mangOPL4
MSX Goa’uld → Goa’uld SD → Goa’uld USB → MSXnano → MSXimus

And MSX Asgard closes the circle by taking a complete MSX2+ FPGA back into the cartridge format.

Article based on the public documentation of the repositories, reviewed in August 2026. Projects evolve, and some features may be experimental or depend on specific hardware revisions. Is a project missing, or is something wrong? Write to info@msx.barcelona and we will update it.

What each MSX FPGA carries, what it is for and what it gives you

A practical comparison of the main branches: what each project includes, what it needs in order to run, what it is especially good for, and what it offers over the other options.

Part 2 · Comparison
Expanding an existing MSXWonderTANG, tnCart and tnCartWonder add storage, memory, sound and/or video.
Turning an MSX into an MSX2+Goa’uld SD and Asgard bring CPU, VDP, BIOS and much of the system.
Having a standalone MSXMSXnano, MSXimus and MSX1 Tang Nano need no original MSX.
Experimenting with videotn_vdp, V9958-Super and TangCartMSX are aimed squarely at video and the bus.

Expansion cartridges

WonderTANG

Tang Nano 20K in an MSX cartridge
EXPANSION
CPUuses the MSX’s
SDNextor
MemoryMapper + MegaRAM
AudioSCC+ + OPLL
FPGATang Nano 20K
Formatcartridge

Ideal use

A real MSX you want to give modern storage, RAM and sound.

Benefit

Concentrates many expansions into a single cartridge.

What it keeps

CPU, keyboard, slots and the character of the original MSX.

Limitation

It is not a complete standalone MSX.

GitHub ↗

tnCart

Multifunction cartridge with V9990
EXPANSION
VideoV9990
SDNextor
AudioSCC / OPLL
OthersPAC / MegaROM
Hostreal MSX
Formatcartridge

Ideal use

Experimenting with a highly configurable FPGA expansion, and with the V9990 in particular.

Benefit

Combines advanced video with classic expansion functions.

GitHub ↗

tnCartWonder

tnCart adapted to WonderTANG
ADAPTATION
BasetnCart
HardwareWonderTANG
VideoV9990
SDNextor
AudioSCC / OPLL
PurposeHW compatibility

Ideal use

Running the tnCart line on WonderTANG hardware.

Benefit

Brings two hardware and RTL ecosystems together.

GitHub ↗

mangOPL4

OPL4 / MoonSound
AUDIO / WIP
BasetnCartWonder
GoalOPL4
Hostreal MSX
FPGATang Nano 20K
FocusMoonSound
Statusin development

Ideal use

Testing and developing OPL4/MoonSound on FPGA.

Benefit

Adds a far more advanced audio line.

GitHub ↗

The Goa’uld family

MSX Goa’uld SD

MSX2+ from the Z80 socket
Z80 SOCKET
CPUZ80 FPGA
VDPV9958 HDMI
BIOSMSX2+
SDNextor
RAMMapper + MegaRAM
AudioPSG + SCC + OPLL

Ideal use

Radically upgrading an old MSX while keeping keyboard, joysticks and slots.

Benefit

Turns the host into an MSX2+ machine with HDMI and SD.

Extra

RTC, Kanji and experimental connectivity.

Limitation

Requires fitting it into the Z80 socket.

GitHub ↗

Goa’uld SD + USB

USB keyboard and gamepad
USB
BaseGoa’uld SD
USB HostRP2040
KeyboardUSB + original
GamepadUSB + original
Wi-Fioptional ESP-01S
Inputmixed

Ideal use

Using modern USB peripherals without losing the original controls.

Benefit

Modern and classic input working side by side.

GitHub ↗

MSX Asgard

MSX2+ inside a cartridge
MSX2+ CARTRIDGE
CPUZ80 FPGA
VDPV9958 HDMI
SDNextor
RAMMapper + MegaRAM
AudioPSG + SCC + OPLL
Formatcartridge

Ideal use

Turning an MSX into an MSX2+ from the cartridge slot.

Benefit

The Goa’uld philosophy in a more reversible format.

GitHub ↗

Standalone MSX FPGAs

MSXnano

Complete MSX2+ on a Tang Nano 20K
STANDALONE
FPGATang Nano 20K
CPUZ80 FPGA
VDPV9958 HDMI
SDNextor
AudioPSG + SCC + OPLL
Wi-Fioptional ESP

Ideal use

Having a small MSX2+ FPGA without owning an original MSX.

Benefit

A great balance of size, cost and features.

GitHub ↗

MSXimus

The advanced branch
ADVANCED STANDALONE
FPGATang Console 60K
VDPV9968 / V9958
Video720p HDMI
AudioOPL4 + Y8950 + OPLL
SCCdual stereo
USBbuilt in

Ideal use

Looking for a very complete MSX FPGA, especially in video and sound.

Benefit

More resources make room for features that will not fit comfortably in a 20K.

GitHub ↗

MSX1 Tang Nano 20K

Independent implementation
MSX1 STANDALONE
CPUZ80
VDPTMS9918A
AudioAY-3-8910
VideoHDMI
InputPS/2
ProfileMSX1

Ideal use

Anyone after a simple, educational MSX1 implementation.

Benefit

A simpler architecture, easier to study.

GitHub ↗

Video-focused projects

tn_vdp

FPGA replacement for the VDP
VDP

Ideal use

Replacing or experimenting with TMS99xx/V9958 inside a real MSX.

Benefit

Modernises only the video and keeps the rest of the hardware.

GitHub ↗

V9958-Super

Experimental graphics extensions
EXPERIMENTAL VDP

Ideal use

Exploring graphics modes beyond the standard V9958.

Benefit

A laboratory for new video possibilities.

GitHub ↗

Quick comparison table

ProjectTypeReal MSXStandaloneFPGA CPUVDPSD / NextorSCCOPLLOPL4USBWi-FiMain use
WonderTANGCartridgeYesNoNoVideo functionsYesYesYesNoNoNoExpanding a real MSX
tnCartCartridgeYesNoNoV9990YesYesYesNoNoNoMultifunction expansion
tnCartWonderAdaptationYesNoNoV9990YesYesYesNoNoNotnCart on WonderTANG
mangOPL4AudioYesNoNoInherits baseYesYesYesIn developmentNoNoOPL4 / MoonSound
Goa’uld SDZ80 socketYesNoYesV9958YesYesYesNoNoExperimentalTurning an MSX into an MSX2+
Goa’uld SD + USBZ80 socketYesNoYesV9958YesYesYesNoYesOptionalAdding USB to the Goa’uld
MSX AsgardMSX2+ cartridgeYesNoYesV9958YesYesYesNoNoNoComplete MSX2+ from the slot
MSXnanoStandaloneNoYesYesV9958YesYesYesNoBranch-dependentOptionalCompact MSX2+ FPGA
MSXimusStandaloneNoYesYesV9968 / V9958YesYesYesYesYesOptional ESP32-C6Advanced MSX FPGA
tn_vdpVDPYesNoNoTMS99xx / V9958NoNoNoNoNoNoReplacing / experimenting with the VDP

Which one should you pick?

I have a real MSX and want SD, RAM and sound

WonderTANG is a straightforward option. tnCart/tnCartWonder are especially interesting if the V9990 appeals to you too.

I want to turn my MSX into an MSX2+

Goa’uld SD from the Z80 socket. MSX Asgard from the cartridge slot.

I want a USB keyboard and gamepad

Goa’uld SD + USB for a physical MSX. MSXnano/MSXimus for a standalone FPGA machine.

I have no MSX and want an FPGA one

MSXnano for a compact solution. MSXimus when the V9968, advanced audio and built-in USB matter most.

I only care about video

tn_vdp to replace a VDP; V9958-Super for advanced graphics experimentation.

I want to study how an MSX works

MSX1 Tang Nano 20K is especially interesting thanks to its simpler architecture.

Not sure which one fits you?

At MSX Barcelona we work with these boards every day: we repair them, we build them and we develop some of the projects covered in this article. Tell us which MSX you own and what you want to achieve, and we will tell you which route makes the most sense for you.

Write to info@msx.barcelona
An indicative comparison based on the public documentation of each project. Features may change with new RTL or hardware revisions.