ISA sound card emulation on the Raspberry Pi Pico's RP2040 microcontroller. PicoGUS can emulate:
- Gravis Ultrasound (GUS) - the primary focus of PicoGUS, hence the name
- AdLib (OPL2)
- MPU-401 (with intelligent mode) - outputs MIDI data on 3.5mm MIDI TRS connector
- Tandy 3-voice
- CMS/Game Blaster
- Game port joystick
Current status: perpetual beta! See the main wiki page for current status and the compatibility list for support status of various DOS programs and other system compatibility notes. This project has a heavy demoscene focus due to the GUS's history so that's what I've concentrated on, but GUS support in games is very good to excellent.
Want to make your own PicoGUS? See the build guide. Note that the more DIY friendly v1.1.1 hardware has some documented issues with reset – a forthcoming v1.2 revision will fix these issues. Important caveat: due to the specs of the Pico, assumptions made by programs written to use the GUS, the imprecise nature of emulation, and the varying specs of retro DOS PC hardware, some things will likely never be perfect. This is still a work in progress.
Have a PicoGUS and want to use it? See the configuring and using your PicoGUS guide.
Want to support PicoGUS? I have a limited number of machines to test PicoGUS in and donating either money or motherboards would be greatly appreciated and help increase the compatibility of PicoGUS.
You can donate via PayPal or Ko-Fi:
PicoGUS 2.0 boards are available for sale on Tindie.
Looking for the original project, using Raspberry Pi 3/4? See the pigus repo.
See/hear PicoGUS in action on YouTube:
- Raspberry Pi Pico C/C++ SDK
pico_audio_i2s
from pico-extrasstdio_async_uart
from PicoCart64gus-x.cpp
adapted from DOSBox-X- OPL/AdLib emulation from rp2040-doom (based on emu8950)
- MPU-401 emulation adapted from HardMPU and DOSBox-X
- Tandy 3-voice emulation based on code contributed by Aaron Giles, adapted from DREAMM
- CMS emulation based on code contributed by Aaron Giles, adapted from DREAMM
The hardware portions of this repository (hw/ directory) are licensed under the CERN OHL version 2, permissive.
The software portions of this repository (sw/, pgusinit/ directories) are licensed under the GNU GPL version 2.