PicoGUS: For All Your ISA Sound Card Needs

Sound cards used to be a big part of gaming machines in the 90s and 2000s but have largely gone extinct in the wake of powerful CPUs doing the sound themselves. Sound cards were expensive back then and, because the good ones weren’t very common, are expensive still for the retro gamer. But if you don’t need the real thing, [polpo] has you covered with his RP2040-based ISA sound card.

The PicoGUS, as he calls it, primarily serves to replace the Gravis UltraSound with modern components at a low cost. It uses the RP2040’s PIO to attach to an ISA bus and the RP2040’s dual-core power to synthesize the audio for its primary target, but also the AdLib (OPL2), CMS/Game Blaster and Tandy 3-Voice. [polpo] sells the PicoGUS on his Tindie store, but since it’s open source, you can of course just make your own.

Although “work-in-progress”, the PicoGUS is very useful to the right person and a perfect demonstration of how the RP2040’s PIO can be used to interface with almost any type of protocol.

Of couse, that’s not the only way to use the PIO, you can also create a CAN bus or even add another USB port.

23 thoughts on “PicoGUS: For All Your ISA Sound Card Needs

  1. What I need for a sound widget these days is something that talks USB and has the physical interfaces for landline phones, including caller ID. (A fax modem would do – my main goal is to answer telemarketers with something to make them go away.)

    The other audio thing I’d like would be an equalizer for Windows so I can crank up the high frequencies on whatever it’s playing (I’m old, and would rather use small light headphones instead of wearing big ones over my hearing aids.) That basically means that at 4-8kHz I need 35-45dB of boost compared to 1kHz.

    1. You still have an actual real POTS line?
      I’d try using some SIP/VoIP software. Maybe the StarTrinity SIP Tester -> http://startrinity.com/VoIP/SipTester/SipTester.aspx is free for home use I think and has a lot of scripting capabilities.

      You could even use basically any older FritzBox with a POTS input to let it convert it into SIP/VoIP.

      Re “Equlizer”: https://voicemeeter.com/ the standard version should be enough.
      Oh and LMddgTFY: https://duckduckgo.com/?q=free+software+equalizer+for+windows

    1. IIrc, the AWE64, gold or otherwise, was just an AWE32 + software mixing for the other voices. The AWE32 in turn, was a wavetable card, but I don’t think it ever had much DOS support, so why would you want to emulate it? Modern discrete sound cards are more than capable enough to do what the AWE32/64 could do.

    1. The original GUS works fine in an 8 bit ISA slot – it’s just limited to the lower IRQs and 8-bit DMA channels. 16-bit IO is automatically split into two 8-bit operations by the chipset when directed to an 8-bit card, and 8-bit ISA DMA is actually fast enough for 16-bit 44.1kHz stereo audio.

        1. The GUS can use DMA for streaming audio playback. It’s a bit of a hack (two channels playing a looping buffer at double speed, one offset by one sample) but many games use that method. Getting that to work well simultaneously with normal wavetable playback was one of the hardest parts of developing PicoGUS (I’m the developer).

          1. Right, I didn’t know there were many games treating the GUS like a Sound Blaster, but it kinda makes sense if you already have SB mixing code + DMA handling I guess. I only know the GUS from a demo scene perspective, and we just uploaded all samples from a MOD/XM/IT/STM and used them as intended.

            Btw, if you’re the developer, any idea when they’re in stock again? :)

  2. Great project and use of the pico but also a terrible waste of a good pun opportunity. ArGUS was used but ANGUS (A New GUS) or MinGUS (Minimal GUS) or even FunGUS were right there. Clearly too much time was wasted on making sure the product works and not on the important stuff.

  3. I got a femto edition. It is fun. Old demos work great on my Hand386 with it.
    Tried mine. First effect was OK but then unknown instruction exception. Well, it looks like I used 486 instructions. But I give myself bonus point for a nice exception handler in my DOS extender.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.