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.
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
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
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
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
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 ↗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 ↗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 ↗
MSX Goa’uld SD
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.
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.
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 ↗

MSXimus: the big brother
MSXimus
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 ↗
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.
And MSX Asgard closes the circle by taking a complete MSX2+ FPGA back into the cartridge format.
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.
Expansion cartridges
WonderTANG
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.
tnCart
Ideal use
Experimenting with a highly configurable FPGA expansion, and with the V9990 in particular.
Benefit
Combines advanced video with classic expansion functions.
tnCartWonder
Ideal use
Running the tnCart line on WonderTANG hardware.
Benefit
Brings two hardware and RTL ecosystems together.
mangOPL4
Ideal use
Testing and developing OPL4/MoonSound on FPGA.
Benefit
Adds a far more advanced audio line.
The Goa’uld family
MSX Goa’uld SD
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.
Goa’uld SD + USB
Ideal use
Using modern USB peripherals without losing the original controls.
Benefit
Modern and classic input working side by side.
MSX Asgard
Ideal use
Turning an MSX into an MSX2+ from the cartridge slot.
Benefit
The Goa’uld philosophy in a more reversible format.
Standalone MSX FPGAs
MSXnano
Ideal use
Having a small MSX2+ FPGA without owning an original MSX.
Benefit
A great balance of size, cost and features.
MSXimus
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.
MSX1 Tang Nano 20K
Ideal use
Anyone after a simple, educational MSX1 implementation.
Benefit
A simpler architecture, easier to study.
Video-focused projects
tn_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.
V9958-Super
Ideal use
Exploring graphics modes beyond the standard V9958.
Benefit
A laboratory for new video possibilities.
Quick comparison table
| Project | Type | Real MSX | Standalone | FPGA CPU | VDP | SD / Nextor | SCC | OPLL | OPL4 | USB | Wi-Fi | Main use |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| WonderTANG | Cartridge | Yes | No | No | Video functions | Yes | Yes | Yes | No | No | No | Expanding a real MSX |
| tnCart | Cartridge | Yes | No | No | V9990 | Yes | Yes | Yes | No | No | No | Multifunction expansion |
| tnCartWonder | Adaptation | Yes | No | No | V9990 | Yes | Yes | Yes | No | No | No | tnCart on WonderTANG |
| mangOPL4 | Audio | Yes | No | No | Inherits base | Yes | Yes | Yes | In development | No | No | OPL4 / MoonSound |
| Goa’uld SD | Z80 socket | Yes | No | Yes | V9958 | Yes | Yes | Yes | No | No | Experimental | Turning an MSX into an MSX2+ |
| Goa’uld SD + USB | Z80 socket | Yes | No | Yes | V9958 | Yes | Yes | Yes | No | Yes | Optional | Adding USB to the Goa’uld |
| MSX Asgard | MSX2+ cartridge | Yes | No | Yes | V9958 | Yes | Yes | Yes | No | No | No | Complete MSX2+ from the slot |
| MSXnano | Standalone | No | Yes | Yes | V9958 | Yes | Yes | Yes | No | Branch-dependent | Optional | Compact MSX2+ FPGA |
| MSXimus | Standalone | No | Yes | Yes | V9968 / V9958 | Yes | Yes | Yes | Yes | Yes | Optional ESP32-C6 | Advanced MSX FPGA |
| tn_vdp | VDP | Yes | No | No | TMS99xx / V9958 | No | No | No | No | No | No | Replacing / experimenting with the VDP |
Which one should you pick?
WonderTANG is a straightforward option. tnCart/tnCartWonder are especially interesting if the V9990 appeals to you too.
Goa’uld SD from the Z80 socket. MSX Asgard from the cartridge slot.
Goa’uld SD + USB for a physical MSX. MSXnano/MSXimus for a standalone FPGA machine.
MSXnano for a compact solution. MSXimus when the V9968, advanced audio and built-in USB matter most.
tn_vdp to replace a VDP; V9958-Super for advanced graphics experimentation.
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