VOGONS


Reply 1480 of 1483, by swisstoni

User metadata
Rank Newbie
Rank
Newbie

Yes its an ESS 1688 IRQ is 2 DMA is 0 Port is 220 but I cant change the port in ESSCFG is there some way to disable the card in the config? I was previously on an old firmware that didnt have soundblaster support. The games ive bern trying to run are Doom and Duke 3D.

NeoG_ wrote on Yesterday, 22:56:
I have an ES1869 with a PicoGUS and can run it is SB mode next to the ESS card without lockups - You mentioned the port and IRQ […]
Show full quote
swisstoni wrote on Yesterday, 17:27:

Thanks for the new firmware update which flashed fine. My system has an ESS1688 integrated on the motherboard ive changed the port and IRQ in software so it doesnt clash with the Picogus.

I have an ES1869 with a PicoGUS and can run it is SB mode next to the ESS card without lockups - You mentioned the port and IRQ but what about the DMA? Can you list what resources each card is set to use?

Was it working with the older firmware, which game is it? I can test it on my system as well

swisstoni wrote on Yesterday, 17:27:

Also when mounting isos if you have a physical cd drive in your system what drive letter would the iso be?

Drive letters for CD-ROM drives in DOS are controlled by MSCDEX, you supply it multiple /D:<devicename> parameters and they are assigned letters in that order starting with the first free letter. You can also override the drive letter for each drive using /L:<letter> /D:<devicename>

Reply 1481 of 1483, by NeoG_

User metadata
Rank Newbie
Rank
Newbie
swisstoni wrote on Today, 09:33:

Yes its an ESS 1688 IRQ is 2 DMA is 0 Port is 220 but I cant change the port in ESSCFG is there some way to disable the card in the config? I was previously on an old firmware that didnt have soundblaster support. The games ive bern trying to run are Doom and Duke 3D.

A few things - Since you were on single firmware before things have changed slightly. The PicoGUS now has all the firmwares rolled into one package and the default mode is soundblaster+cdrom but you can change this any time using "PGUSINIT /mode something".

E.G. if you were using the MPU401 firmware before, you would use "PGUSINIT /mode mpu". If you want to have the card start in that mode automatically each start/reset, use pgusinit /save to save the current mode to flash and it will default to whatever mode is currently set when you save.

A full list of modes is available here:
https://github.com/polpo/picogus/wiki/Configu … ng-your-PicoGUS

The ES1688 is not a PnP (that I know of) card so it's either set through the BIOS settings if it's integrated onto the motherboard or set via jumpers on the card if it's an ISA card. But it sounds like you just want the PicoGUS to stop responding as a soundblaster on port 220 which you can do by swapping modes as mentioned to disable soundblaster emulation.

Reply 1482 of 1483, by swisstoni

User metadata
Rank Newbie
Rank
Newbie

Thanks for replying im going to have to look into disabling the ESS as its integrated on the motherboard. Im actually looking to disable the ESS and use the Soundblaster emulation on the Picogus.

NeoG_ wrote on Today, 10:40:
A few things - Since you were on single firmware before things have changed slightly. The PicoGUS now has all the firmwares roll […]
Show full quote
swisstoni wrote on Today, 09:33:

Yes its an ESS 1688 IRQ is 2 DMA is 0 Port is 220 but I cant change the port in ESSCFG is there some way to disable the card in the config? I was previously on an old firmware that didnt have soundblaster support. The games ive bern trying to run are Doom and Duke 3D.

A few things - Since you were on single firmware before things have changed slightly. The PicoGUS now has all the firmwares rolled into one package and the default mode is soundblaster+cdrom but you can change this any time using "PGUSINIT /mode something".

E.G. if you were using the MPU401 firmware before, you would use "PGUSINIT /mode mpu". If you want to have the card start in that mode automatically each start/reset, use pgusinit /save to save the current mode to flash and it will default to whatever mode is currently set when you save.

A full list of modes is available here:
https://github.com/polpo/picogus/wiki/Configu … ng-your-PicoGUS

The ES1688 is not a PnP (that I know of) card so it's either set through the BIOS settings if it's integrated onto the motherboard or set via jumpers on the card if it's an ISA card. But it sounds like you just want the PicoGUS to stop responding as a soundblaster on port 220 which you can do by swapping modes as mentioned to disable soundblaster emulation.

Reply 1483 of 1483, by Delphius

User metadata
Rank Member
Rank
Member
polpo wrote on 2025-06-23, 02:39:
Delphius wrote on 2025-06-22, 19:28:

I am curious if there is a guide or script provided for compiling and building a proper uf2 file for picogus? I think I have the main uf2 compiling properly, but it does not seem to be the entire package. Seems I am missing something with the multi firmware support or something. I would like to try my hand at contributing, but feeling a bit stuck just getting a stock firmware compiled.

If you have a build completing you're basically already there. Sorry there's no guide, but once you know what to set it's pretty straightforward. The type of build is controlled by the PROJECT_TYPE CMake variable. To build just a single mode, you can set it to GUS (the default), SB, USB, MPU, PSG, ADLIB, NE2K, or for the full mega multifirmware build set it to MULTIFW . Almost always when I'm developing I use one of the standalone mode builds because the MULTIFW build takes longer to compile and a lot longer to upload to the Pico. I also have a special program target so I can do make program to build and immediately push my code to the Pico that is connected via a Pico debug probe.

If you're curious how the releases are built, it's all done with GitHub actions and controlled by .github/workflows/build.yml. You can see how it calls cmake -DPROJECT_TYPE=MULTIFW to configure a multifw build.

I have compiling working now. The next step was to upgrade my cmake to 3.29.2 which had to be done manually.

I was able to create a simple volume control function for the CD-ROM audio which has fixed the distortion I was getting on some games. I will look for some time to implement this out some more, but I am also wondering if I should break the functions out so they can be used beyond just controlling volume for the CD-ROM audio?