RetroPlug-focused FPGA port for ModRetro Chromatic: multi-channel audio, MIDI, and LSDj/Ableton Link sync.
  • Verilog 80.2%
  • VHDL 13.2%
  • SystemVerilog 4.8%
  • Assembly 1.3%
  • Tcl 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Peter Swimm 909ddd3347
Some checks failed
rtl-checks / iverilog testbenches (push) Failing after 4s
rtl-checks / verilator lint (advisory) (push) Failing after 5s
Merge pull request 'gitignore: local .code-workspace files' (#7) from docs/retroplug-readme into main
Reviewed-on: #7
2026-10-05 15:33:54 +00:00
.github/workflows ci: add RTL checks (iverilog testbenches + verilator lint) 2026-08-01 16:34:06 +00:00
docs/retroplug-port docs: describe the repo as the RetroPlug FPGA port; ignore .DS_Store and Gowin .lic keys 2026-10-04 18:00:45 -07:00
esp32t rtl: add MIDI-out capture (linkcapture) + device->host TX channel 2026-07-31 18:32:55 +00:00
.gitignore Ignore local .code-workspace files 2026-10-05 08:31:47 -07:00
.gitmodules Publish v17.0 2024-12-09 18:08:30 -08:00
CHANGELOG.md docs: add v19.0 changelog entry for RetroPlug port 2026-07-31 18:33:18 +00:00
CODE_OF_CONDUCT.md Publish v17.0 2024-12-09 18:08:30 -08:00
CONTRIBUTING.md Publish v17.0 2024-12-09 18:08:30 -08:00
LICENSE Initial commit 2024-12-09 15:14:15 -08:00
README.md docs: describe the repo as the RetroPlug FPGA port; ignore .DS_Store and Gowin .lic keys 2026-10-04 18:00:45 -07:00

RetroPlug FPGA Port

This repository houses the RetroPlug-focused port of the ModRetro Chromatic FPGA design.

It is a working fork of the upstream Chromatic FPGA tree, narrowed to the proof-of-concept work for multi-channel audio, MIDI, and LSDj sync described in docs/retroplug-port/.

For more information about the ModRetro Chromatic hardware, please visit ModRetro.com.

Setup

Repository

This project builds upon the open source work provided by the Game Boy MiSTer project. When checking out this repository, make sure to run the following command as this repository submodules the Game Boy MiSTer project.

git submodule update --init --recursive

Gowin Development Environment

The Gowin FPGA Designer v1.9.9.03 must be used. Using Gowin IDE v1.9.10.X or newer is currently not supported by this build.

You will also need to apply for a local license with Gowin through their website: https://www.gowinsemi.com/en/support/license

The license expires after one year and will require reactivation.

You will receive an email within a few minutes with a .lic file attached. Run the Gowin IDE and install the license when it prompts you. You'll need to close and re-open the GOWIN IDE if everything was successful.

Building

Once in the IDE, load evt1_x2.gprj project and click on the green recycle-like button icon to run synthesis and PnR. This will take about 5-10 minutes to complete.

Flashing

Flashing can be performed using the official Gowin Programmer software or the openFPGALoader utility through the Chromatic's USB interface. The Gowin Programmer requires the installation of the GWU2X device driver.

Note:

  1. The Chromatic must be powered on for either tool to detect the FPGA. This means the power switch is in the ON position.
  2. If using openFPGALoader, the tool must be compiled with support for the Gowin GWU2X cable.

Example Using openFPGALoader

Detect the Chromatic FPGA While Powered On

openFPGALoader --detect --cable gwu2x

You will see an output similar to:

empty
User requested: 6000000 real frequency is 6000000
index 0:
        idcode 0x1281b
        manufacturer Gowin
        family GW5A
        model  GW5A-25
        irlength 8

Flashing the Chromatic

openFPGALoader --write-flash --cable gwu2x --reset <file>

Here, <file> refers to the generated bitstream file. This file can be found at esp32t/impl/pnr/evt1_x2.fs.

Custom Modifications

When modifying the RTL design, please also update the 14-bit FPGA version within [esp32t/src/rtl/BSP/system_monitor.sv] around line 384 (see version).

This will ensure you can always using the ModRetro Update Tool to restore your Chromatic to the latest official release.

Issues

Please submit all issues and bug reports through our Contact Form.

Attributions

Special Thanks

  • [rayjt9] For their palette improvements to the BootROM.