PicoGUS
Die PicoGUS ist eine ISA-Erweiterungskarte für Retro-PCs, die auf einem Raspberry Pi Pico (RP2040-Mikrocontroller) basiert. Sie emuliert auf Hardware-Ebene klassische Audio-Hardware wie die Gravis Ultrasound, Sound Blaster, OPL3 und MPU-401 sowie einen analogen PC-Gameport und ein Panasonic-CD-ROM-Laufwerk.
Über ihren USB-Anschluss können moderne USB-Gamepads oder USB-Sticks mit CD-ISOs direkt unter DOS und Windows 9x genutzt werden, ohne dass dafür konventioneller Arbeitsspeicher für Treiber verbraucht wird.
Links:
- Offizielle Webseite: Link
- Wiki mit "Getting Started": Link
- Software: GitHub Link
PicoGUS einrichten¶
Wesentliches:
- FAT32 Dateisystem für CD-ROM Emulation
- Alles, die gesamte Konfiguration etc. läuft über eine Datei:
PGUSINIT
Software installieren¶
PicoGUS Software:
- PicoGUS Treiber v4.1.1 -> Quelle - picogus-v4.1.1.zip
- Ultrasound Software -> Quelle - ultrasnd.zip
Konfiguration der Karte siehe auch -> GitHub Dokumentation
Für die Treiber habe ich C:\PICOGUS angelegt, die Ultrasound Software kommt in den Ordner C:\ULTRASND.
In der AUTOEXEC.BAT füge ich den Pfad C:\PICOGUS hinzu, Beispiel: PATH=%PATH%;C:\PICOGUS
Weiterhin:
SET ULTRASND=240,1,1,5,5
SET ULTRADIR=C:\ULTRASND
Firmware flashen¶

Bei dieser Meldung muss man also neue Firmware flashen. Das geschieht sehr komfortabel in DOS selbst. Der o.g. PicoGUS Treiber hat die Firmware im .uf2 mit dabei.
Ich begebe mich in das Verzeichnis der Software CD C:\PICOGUS und starte den Flash mit: pgusinit /flash picogus.uf2:

Das war erfolgreich!
Bei erneutem Aufruf von PGUSINIT wird die Karte erkannt und entsprechende (Standard) Parameter aufgelistet:

Sound Blaster 16 Modus¶
Um die Karte jetzt im Sound Blaster 16 Modus nutzen zu können muss die BLASTER Umgebungsvariable gesetzt werden:
SET BLASTER=A220 I5 D1 H1 T6
Technisch bedingt soll Low-DMA (D1) = High-DMA (H1) sein.
Weiterhin die Übertragung der Umgebungsvariablen in die Karte:
PGUSINIT /SBENV
Damit wird auch der Sound Blaster 16 Modus initialisiert und die Karte ist betriebsbereit.
Das kann und sollte eventuell auch in der AUTOEXEC.BAT passieren.
Der Wechsel des Modus bzw. der Soundkarten funktioniert übrigens ohne Reboot!
Windows 3.x mit (ehemaliger) Original Sound Blaster 16 Software¶
Zunächst mal gibt es beim Start eine Fehlermeldung: ERROR - Incorrect MIDIPORT setting in the SYSTEM.INI file.
Ich habe mal probeweise den High DMA auf DMA gesetzt und wie gefordert neu gestartet. Der o.g. Fehler bleibt.
Im Internet ist zu lesen, dass in Windows 3.x - zumindest momentan - "nur" der Gravis Ultrasound Modus funktioniert.
Man kann die Treiber für Windows 3.x aus dem C:\ULTRASND\WINDOWS Verzeichnis beziehen heisst es.
GUS Modus¶
Die Umgebungsvariablen ULTRADIR und ULTRASND müssen vorher gesetzt werden, im Optimalfall auch schon durch die AUTOEXEC.BAT:
SET ULTRASND=240,1,1,5,5
SET ULTRADIR=C:\ULTRASND
Um die Karte dann in den GUS Modus zu versetzen:
PGUSINIT /MODE GUS
Der Wechsel des Modus bzw. der Soundkarten funktioniert übrigens ohne Reboot!
CD-ROM Emulation¶
Hierfür wird ein USB-Laufwerk benötigt, FAT32 formatiert. Dort packt man bin/cue oder ISO Dateien drauf.
Die pgusinit Befehle zur CD-ROM Steuerung:
| Befehl | Beschreibung |
|---|---|
pgusinit /cdauto 0 |
Automatisch weitere Images laden 0: nein, 1: ja |
pgusinit /cdlist |
Auflisten der vorhandenen Images |
pgusinit /cdload n |
Laden von Image Nummer n aus Liste |
pgusinit /cdport xxx |
Interface Port auf xxx setzen (Standard 250h) |
Um das CD-Laufwerk für DOS einzubinden in der config.sys eintragen:
DEVICE=C:\CDROM\CDMKE.SYS /P:250 /Q /D:GSCD000
Port und Device-Name sind änderbar.
In der autoexec.bat:
C:\DOS\MSCDEX /D:GSCD000
Device-Name entsprechend dem der config.sys.
ACHTUNG! Werden mehrere CD-Laufwerke in der config.sys geladen, so müssen diese beim MSCDEX Befehl mit aufgeführt werden: C:\DOS\MSCDEX /D:MSCD000 /D:GSCD000
