Introduction to Excellent Open Source Verilog/FPGA Projects – Making FPGA Fun
Hello, everyone, previously I shared about a hundred open source projects related to FPGA, covering PCIe, networking, RISC-V, video encoding, etc. This time, I bring you some fun entertainment projects, mainly focusing on using FPGA for hardware decoding of old game cores, with countless cores involved, aiming for high implementability and reproducibility.
As these are entertainment projects, there will be many GIFs in this article, so let’s get started.
1. zxuno

Project address:
https://github.com/zxdos/zxuno
Official website:
https://zxuno.speccy.org/faq.shtml

First, zx-uno, this is a project that uses the Xilinx Spartan XC6SLX9 FPGA to implement the entire ZX Spectrum computer series (the ZX Spectrum was one of the first household computers in the UK, similar to the American Commodore 64. However, due to its simplicity, versatility, and great design, software companies quickly jumped on the trend of writing various software for it) as well as systems like ULAPlus and TurboSound, with a size similar to Raspberry Pi.
Supported soft cores:
ZX Spectrum ZX81 SAM Coupé MSX1 C64 Atari 800XL
Jupiter ACE Oric Atmos BBC Micro VIC-20 Acorn Electron ZX Spectrum TBBlue Apple II
Acorn Atom Amstrad CPC 6128 (no SD support) ZX Spectrum Kyp C16 / C116 / Plus4
Sharp MZ-700 PC/XT 512k PC/XT 2Mb PET ZX Spectrum 128 Kyp Multicomp CP/M
Galaksija Amstrad CPC 6128 (SD support) Amstrad CPC 464
Spectrum with PZX ZX Spectrum Kyp+VGA+TSound+SAA1099 Flappy Bird
TRS-80 ZX Spectrum (ESP26 UART support) Jupiter ACE (AY-3-8910, SD support)
Apple I Oric Atmos (with SD support) ZX Spectrum Kyp (native VGA output)
It also supports many arcade cores, but I won’t go into detail, just check out the project homepage!
After making the hardware according to the open source address (including source files and Gerber, can be directly sampled), the BOM is as follows:

Hardware display:
Then comes the boot:
Next is the testing:
Finally, enjoy:
This project is a crowdfunding project, and the shell is also a must. Below are several shell products:


2. sidewinder

https://github.com/ManuFerHi/SidewinderFPGA
Main Parameters:
FPGA BOARD EP4CE22
SDRAM 256Mbit
The project provides hardware schematics (PDF), Gerber (can be directly manufactured)
Hardware Display
Boot
Computer Boot
Game Selection
Game Demonstration
mister
https://github.com/MiSTer-devel/Main_MiSTer
The last one is mister; in fact, there are many other similar projects, but with this project, other projects pale in comparison. This project can be seen as a collection of several projects, and the power of mister is unlikely to be surpassed in the coming years.
Let’s first look at the introduction of this project:
MiSTer is an open source project aimed at recreating various classic computers (50+ systems), game consoles (25+ game consoles), and arcade machines (10+ common arcade cores) using modern hardware. It allows software and game images to run as if on the original hardware (hardware decoding), using peripherals such as mouse, keyboard, joystick, and other game controllers.
Hardware Features
Using the DE10-NANO development board (easily purchasable) + SDRAM expansion board (not necessary, but increases compatibility with many cores) + low-resolution board (not necessary) + USB HUB (not necessary)
All required hardware is open source (AD source files) and can be directly manufactured.
Features of DE10-NANO:
-
Altera Cyclone V SE FPGA with 110,000LE (41,500ALM) and 5,570Kbit of Block RAM. -
ARM Cortex A9 dual-core CPU at 800MHz. -
HDMI video and audio allowing connection to any modern monitor/TV. -
DDR3 1GB available for both ARM and FPGA. -
High-speed ARM<->FPGA interconnect due to both being in the same chip.
Hardware display:
Hardware assembly completed:
Creating the System on SD Card
The project provides source files for various cores, which can be ported according to your needs. If you use the board provided by the project, you can use the official SD card image provided. The image location:
https://github.com/MiSTer-devel/mr-fusion/releases
The production process is as follows:
Boot
Updating Games
Since it runs a Linux system, you can use tools such as SSH and TCP to import games into the SD card from a PC.
Computer Boot Demonstration
Of course, running Windows 95 is also not a problem:
Game Demonstration
Summary
That’s all for today’s project. If you are interested or have any questions, feel free to contact me. If you want to find friends who share childhood memories, you can try the last project. If you feel that the funds are insufficient, the first and second projects are also worth trying (I will port the second project later).
Finally, I would like to thank all the great open source projects that have benefited us immensely. If there are any projects in areas of interest in the future, you can leave a message in the background or add me on WeChat to leave a message. That’s all for today, I am the hardworking writer, looking forward to seeing you in the next article.
What Projects Do Foreign College Students Use FPGA For (Part II)

Saving Childhood Series – GameBoy Introduction and FPGA Implementation

Childhood Restoration Series – PC Engine/TurboGrafx-16 Introduction and FPGA Implementation

Childhood Restoration Series – SNES Chipset Introduction and FPGA Implementation

[Open Source] The Distance Between Us and Childhood is Just a Game Console – DIY an NES Game Console with FPGA

A CPU That Brought Joy to Countless People in Their Youth, Don’t Say You Haven’t Used It