VOGONS


Reply 1780 of 1794, by polpo

User metadata
Rank Member
Rank
Member

PicoGUS firmware v4.0.0 is released!
Download it at: https://github.com/polpo/picogus/releases/tag/v4.0.0

New features/changes

Sound Blaster 16

SB mode now emulates a Sound Blaster 16. I had a somewhat-working implementation of the SB16 DSP in late 2024 but was discouraged by poor compatibility in Windows. Recently the ISA analyzer firmware (see below) gave me an easier way to compare PicoGUS to how a real SB16 behaves when detected by Windows and fix the long-standing bugs. Massive thanks to [Artem Vasilev (wbcbz7)](https://github.com/wbcbz7) who implemented proper mixer support and implemented a ton of additional fixes, including support for DMA controller demand mode, all of which made SB16 and SBPro support truly usable.

OPL3 support is provided by the dbopl OPL3 emulator (this was the default OPL3 emulator in DOSbox until somewhat recently). The previous emu8950 OPL2 emulator is still available in Adlib mode, and has some improvements thanks to [Daniel Arnold (Delphius)](https://github.com/RetroLoom): fixes to timer 2 and disabling of some of the optimizations made to emu8950 for rp2040-doom that affect sound quality. Delphius also experimented with Aaron Giles's [ymfm](https://github.com/aaronsgiles/ymfm) for OPL2/OPL3 emulation but it has some issues with RAM and CPU usage so it's not used for now.

Because PicoGUS is an 8-bit card, it does not support high DMA. This is actually a mostly-supported configuration for SB16: several versions could be jumpered to disable high DMA, and the Creative Vibra 16X/16XV does not support high DMA at all. Almost all SB16-supporting software is fine working without high DMA, or configuring the same DMA channel for both low and high DMA.

SB mode also supports Sound Blaster Pro stereo properly and still supports SB 2.0. `pgusinit` can be used to set the DSP version reported by PicoGUS. The Line In channel in the SB mixer also controls the volume of the wavetable header.

ISA analyzer firmware

PicoGUS now has an ISA analyzer firmware that captures and logs ISA bus activity. This was inspired by the IDE analyzer firmware I wrote for PicoIDE. Having a tool like this brings a ton of insight into what's going on in the bus. Note that this firmware is made for the PicoGUS 1.x board with the RP2350-based Pico 2 or Pimoroni Pico Plus 2.

Fixes/improvements

CD-ROM support

  • The stock Win9x MKEPanasonic driver can now be used with PicoGUS. This driver does not peg the CPU like the Creative driver, which should give much more acceptable performance. Credit to 86Box as a reference for this fix.
  • CD-ROM speed in SB mode is even faster again - I've gotten speeds between 3.75X and 4.75X in DOS.
  • Lots of general fixes & improvements to CD-ROM support, thanks to [Daniel Arnold (Delphius)](https://github.com/RetroLoom): protocol correctness fixes, pgusinit /cdlist stability, CUE parsing, and larger CD audio buffer.

GUS mode

  • The audio rendering in GUS mode is now interrupt-driven like SB mode. This allows for finer grained handling of IRQs which should help random freezes in GUS titles, and frees up CPU to allow more titles to work with forced 44.1kHz sampling rate.
  • Fixes volume ramp rate calculation in force 44.1kHz mode.
  • Fixes a race condition when updating volume ramp, again helping random freezes.

General

  • Reverted back to the pre-v3.2.0 method of overclocking the RP2040. This should hopefully fix the "doesn't come back after changing modes" issue reported by some people.

Looking to the future

We are very much at our RAM limit. Delphius was working on a major overhaul of joystick code (see some of the posts above by him) but I ran into issues with running out of RAM in some modes with those changes. I'm confident we can solve those issues, so look forward to that in the next major firmware release!

creator of PicoGUS and PicoIDE

Reply 1781 of 1794, by appiah4

User metadata
Rank l33t++
Rank
l33t++

Thank you polpo!

Would it be possible to also add an SB Pro mode for the card? I am asking because the SB16 mode is great and all but not all games support that, and if you run SB Pro audio into SB16 some games reverse the stereo..

Reply 1782 of 1794, by Yoghoo

User metadata
Rank Oldbie
Rank
Oldbie
appiah4 wrote on 2026-04-06, 17:10:

Thank you polpo!

Would it be possible to also add an SB Pro mode for the card? I am asking because the SB16 mode is great and all but not all games support that, and if you run SB Pro audio into SB16 some games reverse the stereo..

It says: "SB mode also supports Sound Blaster Pro stereo properly and still supports SB 2.0". So it is supported. Or am I missing something?

Reply 1783 of 1794, by polpo

User metadata
Rank Member
Rank
Member
appiah4 wrote on 2026-04-06, 17:10:

Thank you polpo!

Would it be possible to also add an SB Pro mode for the card? I am asking because the SB16 mode is great and all but not all games support that, and if you run SB Pro audio into SB16 some games reverse the stereo..

The way DMA is set up with regards to SB stereo on PicoGUS is much more stateful than the L/R flip flop on the SB Pro, so reversed stereo shouldn't be an issue. There's a commonly used "ritual" on the SBPro to properly get the L/R flip flop in the right state when starting stereo, and the PicoGUS handles that. But if you do find any titles that do have reversed stereo please let me know.

creator of PicoGUS and PicoIDE

Reply 1784 of 1794, by appiah4

User metadata
Rank l33t++
Rank
l33t++
polpo wrote on 2026-04-06, 17:36:
appiah4 wrote on 2026-04-06, 17:10:

Thank you polpo!

Would it be possible to also add an SB Pro mode for the card? I am asking because the SB16 mode is great and all but not all games support that, and if you run SB Pro audio into SB16 some games reverse the stereo..

The way DMA is set up with regards to SB stereo on PicoGUS is much more stateful than the L/R flip flop on the SB Pro, so reversed stereo shouldn't be an issue. There's a commonly used "ritual" on the SBPro to properly get the L/R flip flop in the right state when starting stereo, and the PicoGUS handles that. But if you do find any titles that do have reversed stereo please let me know.

Great to know, thank you!

Reply 1785 of 1794, by NeoG_

User metadata
Rank Oldbie
Rank
Oldbie

When you said the new firmware was coming soon you weren't kidding! Can't wait to try this firmware tonight.

My system has random GUS freezing in OMF2097 and ROTT which hopefully is improved and it also would occasionally die when changing modes (although always when switching to USB mode?). Also my CD speed has taken a dive the more over 100 images I have on the USB stick so hopefully the CD speed improvements make up for it a bit as well. On top of that if the SB16 works well I can take the dedicated SB16 out of the system and free up a slot.

A lot for me to chew on.

98/DOS Rig: BabyAT AladdinV, K6-2+/550, V3 2000, 128MB PC100, 20GB HDD, 128GB SD2IDE, SB Live!, SB16-SCSI, PicoGUS, WP32 McCake, iNFRA CD, ZIP100
XP Rig: Lian Li PC-10 ATX, Gigabyte X38-DQ6, Core2Duo E6850, ATi HD5870, 2GB DDR2, 2TB HDD, X-Fi XtremeGamer

Reply 1786 of 1794, by NeoG_

User metadata
Rank Oldbie
Rank
Oldbie
polpo wrote on 2026-04-06, 16:22:

PicoGUS firmware v4.0.0 is released!
Download it at: https://github.com/polpo/picogus/releases/tag/v4.0.0

My initial testing

- CD list issues are fixed
- Doom, Tyrian, Fuzzy's World, Whacky Wheels OPL2 music runs at full speed no issues
- SB16 FX in Duke3D works perfectly, first set HDMA5 in setup then edit the HDMA in DUKE3D.CFG to be the same as LDMA
- OMF2097 GUS crash was game speed related, for some reason the game will randomly freeze with GUS if the game speed is set to over ~50% in the game menu. Since I like fast gameplay I increased the CPU speed for this game to compensate.
- CD Audio and SB16 FX working well in Quake

- OPL2 in descent and duke3d plays slightly slower than expected
- OPL3 in descent much slower than expected, stuttery gameplay.

- OPL2 slowdown in duke3d and descent is gone with the ISA bus tweaks mentioned below. OPL3 in descent is much faster but still experiences a bit more slowdown compared to hardware YMF262 in game but no stutter at least. Menu music is full speed.
- Rise of the Triad Dark War still freezes randomly, but now also has sound FX clicking in GUS mode with the new firmware. SB16 works perfectly. OPL2 audio is full speed.
- Using the MKEPanasonic driver in win98 is much better than the creative driver but seems unable to read ISO files. BIN/CUE files work fine.

The virtual CD slowdown I was getting (read speed 1.64x) was unrelated to the amount of images on the USB drive, it was because the IO recovery period in the BIOS was set to a high value causing slow ISA bus transfers. With some ISA bus tweaks the speed is now 3.51x for BIN/CUE mixed mode and 4.52x for ISO data only files. even with 200 files/130 images on the USB stick. No more slowdowns with the Mech 2 intro.

In general the new OPL engine sounds a tad crunchy but I expect that is because using modern DAC/analog path lets through more high frequency than a vintage card (I was previously using an SB16 with YMF262 for OPL).

Also I like that the SB16 firmware initializes itself into a working state right off the bat, unlike a real SB16 that is silent until you run diagnose/mixerset - Less stuff in Autoexec.

Last edited by NeoG_ on 2026-04-08, 03:19. Edited 3 times in total.

98/DOS Rig: BabyAT AladdinV, K6-2+/550, V3 2000, 128MB PC100, 20GB HDD, 128GB SD2IDE, SB Live!, SB16-SCSI, PicoGUS, WP32 McCake, iNFRA CD, ZIP100
XP Rig: Lian Li PC-10 ATX, Gigabyte X38-DQ6, Core2Duo E6850, ATi HD5870, 2GB DDR2, 2TB HDD, X-Fi XtremeGamer

Reply 1787 of 1794, by 919guy

User metadata
Rank Newbie
Rank
Newbie
polpo wrote on 2026-04-02, 15:39:

I didn't have much issue with simultaneous mouse and USB flash drive on a hub myself, but Delphius's fixes should help that for those who are having problems. It'll be out in a new firmware very soon, in addition to Sound Blaster 16 and OPL3 support.

In my case, it seems the USB flash drive was the reason it wasn't working with the USB hub. I'm having no issues now with a different USB drive. 😀

Thanks for the new firmware release. It's just fantastic how the PicoGUS has evolved.

Reply 1788 of 1794, by Duffman

User metadata
Rank Oldbie
Rank
Oldbie

@polpo

Since you're at the limits of the RP2040 will you be looking at making an improved RP2350 (or some other micro-controller?) version of the PicoGUS?

MB: ASRock B550 Steel Legend
CPU: Ryzen 9 5950X
RAM: Corsair 64GB Kit (4x16GB) DDR4 Veng LPX C18 4000MHz
SSDs: 2x Crucial MX500 1TB SATA + 1x Samsung 980 (non-pro) 1TB NVMe SSD
OSs: Win 11 Pro (NVMe) + WinXP Pro SP3 (SATA)
GPU: RTX2070 (11) GT730 (XP)

Reply 1789 of 1794, by myne

User metadata
Rank l33t
Rank
l33t

Is it not impossible to use a standard pi for the task?
(wiring aside)

Is there some fundamental difference between a pi microcontoller and a std pi?

I'm pretty ignorant on microcontollers.

I built:
Convert old ASUS ASC boardviews to KICAD PCB!
Re: A comprehensive guide to install and play MechWarrior 2 on new versions on Windows.
Dos+Windows 3.11+tcp+vbe_svga auto-install iso template
Script to backup Win9x\ME drivers from a working install
Re: The thing no one asked for: KICAD 440bx reference schematic

Reply 1790 of 1794, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie
myne wrote on Today, 01:19:
Is it not impossible to use a standard pi for the task? (wiring aside) […]
Show full quote

Is it not impossible to use a standard pi for the task?
(wiring aside)

Is there some fundamental difference between a pi microcontoller and a std pi?

I'm pretty ignorant on microcontollers.

The project originally started with a regular RPi but switched to Pico later on. You can read more in the Original Post (PiGUS) section in the OP.

I think it's the PIO that Pico (RP2040) has, which enabled better performance in some aspects compared to standard RPi.

Reply 1791 of 1794, by polpo

User metadata
Rank Member
Rank
Member

I don't plan on designing new hardware for PicoGUS until I'm "done" with PicoIDE. It'll probably be a while. Maybe I'll luck out and the follow-up to RP2350 will be out by then!

Like LSS10999 said, I started this project on a full Raspberry Pi 3 but ran into pandemic-era Pi shortages. I have to say it's been a lot more fun fitting everything onto the RP2040, and it definitely makes the PicoGUS quite a bit cheaper to buy.

creator of PicoGUS and PicoIDE

Reply 1792 of 1794, by myne

User metadata
Rank l33t
Rank
l33t

I wasn't suggesting you should. Just that it might be an option for tinkerers who don't mind running jump wires.

Are you able to comment on potential lpc bus support?
I figure in some ways it might free resources for more modern boards and allow real 16bit.
The lpc bus looks relatively simple to "bit bang" compared to Isa given its only 7or8 real pins and 4 bit bus, but I know basically nothing.

I built:
Convert old ASUS ASC boardviews to KICAD PCB!
Re: A comprehensive guide to install and play MechWarrior 2 on new versions on Windows.
Dos+Windows 3.11+tcp+vbe_svga auto-install iso template
Script to backup Win9x\ME drivers from a working install
Re: The thing no one asked for: KICAD 440bx reference schematic

Reply 1793 of 1794, by polpo

User metadata
Rank Member
Rank
Member
myne wrote on Today, 02:28:
I wasn't suggesting you should. Just that it might be an option for tinkerers who don't mind running jump wires. […]
Show full quote

I wasn't suggesting you should. Just that it might be an option for tinkerers who don't mind running jump wires.

Are you able to comment on potential lpc bus support?
I figure in some ways it might free resources for more modern boards and allow real 16bit.
The lpc bus looks relatively simple to "bit bang" compared to Isa given its only 7or8 real pins and 4 bit bus, but I know basically nothing.

It would be really cool to support LPC but it's not something I'd tackle myself. A few people here and there have brought it up but nobody has taken up the task yet... I'd love to see it!

creator of PicoGUS and PicoIDE

Reply 1794 of 1794, by Feallan

User metadata
Rank Newbie
Rank
Newbie

Thank you to everyone working on this project. This update looks amazing