VOGONS


Reply 780 of 834, by André 2-3

User metadata
Rank Newbie
Rank
Newbie

Hello!
two weeks ago completed board version 1.1 with IC-set of 1.2 ver (74ahc14 and 74lvc244).
works generally fine in my 386dx40 and pentium-133 systems, playing some games incl. Doom 1.666 ver.

one problem - some midi-s (not all, two or three) from Ultrasound\midi directory doesn't play in Ultrasound midi player correctly - playing few notes and stops, playing one note continuously, only ESC-key helps.
Same problem in two systems...

Is it common problem, or it is my fault?

Attachments

  • IMG_20240315_163512.jpg
    Filename
    IMG_20240315_163512.jpg
    File size
    919.63 KiB
    Views
    1260 views
    File comment
    my board
    File license
    Public domain

Reply 781 of 834, by pan069

User metadata
Rank Oldbie
Rank
Oldbie
André 2-3 wrote on 2024-03-15, 10:37:

one problem - some midi-s (not all, two or three) from Ultrasound\midi directory doesn't play in Ultrasound midi player correctly - playing few notes and stops, playing one note continuously, only ESC-key helps.

Hi and welcome.

It might be useful to at least say "which ones" don't play correctly. 😀

Reply 782 of 834, by polpo

User metadata
Rank Member
Rank
Member

In a nutshell, Gravis's PLAYMIDI doesn't work reliably. It's marked as "not working" in the compatibility list: https://github.com/polpo/picogus/wiki/Compati … t#music-players

Reply 783 of 834, by polpo

User metadata
Rank Member
Rank
Member

PicoGUS firmware v1.1.0 is released and is available at https://github.com/polpo/picogus/releases/tag/v1.1.0.

Changelog:

  • GUS emulation:
    • Works around a hardware bug in the PCM510xA DAC that results in ~10% of chips to be silent at 22.05kHz sampling rate. This is the rate produced by the GUS at 28 channels, and is used by Doom and the demo "Dope". The workaround is to run the DAC at 44.1kHz, linearly interpolating the 22.05kHz output.
    • Increased fractional precision of wave addresses to 10 bits from 9.
    • New EXPERIMENTAL fixed 44.1kHz output. Normally the GF1 varies its output sample rate from 44.1kHz at 14 voices to 19.2kHz at 32 voices. Using this option enables 44.1kHz output for all numbers of voices, similar to the Interwave. This gives much higher quality output when playing lots of channels. This will result in stuttering in most games that use streaming DMA for sound effects like Doom, hence it is EXPERIMENTAL. It can be enabled with the /4 switch in pgusinit. Thanks to wbcbz7 for contributing this support along with the increased wave address precision.
    • Known issue: Impulse Tracker constantly re-inits the GUS to get the best sampling rate and if it passes through 28 channels rapidly, audio artifacts can be heard. To work around, run PicoGUS in fixed 44.1kHz output mode.
  • pgusinit
    • New /4 switch when in GUS mode to enable fixed 44.1kHz output.
Last edited by polpo on 2024-03-19, 18:53. Edited 1 time in total.

Reply 785 of 834, by appiah4

User metadata
Rank l33t++
Rank
l33t++
polpo wrote on 2024-03-19, 05:32:
PicoGUS firmware v1.1.0 is released and is avaiable at https://github.com/polpo/picogus/releases/tag/v1.1.0. […]
Show full quote

PicoGUS firmware v1.1.0 is released and is avaiable at https://github.com/polpo/picogus/releases/tag/v1.1.0.

Changelog:

  • GUS emulation:
    • Works around a hardware bug in the PCM510xA DAC that results in ~10% of chips to be silent at 22.05kHz sampling rate. This is the rate produced by the GUS at 28 channels, and is used by Doom and the demo "Dope". The workaround is to run the DAC at 44.1kHz, linearly interpolating the 22.05kHz output.
    • Increased fractional precision of wave addresses to 10 bits from 9.
    • New EXPERIMENTAL fixed 44.1kHz output. Normally the GF1 varies its output sample rate from 44.1kHz at 14 voices to 19.2kHz at 32 voices. Using this option enables 44.1kHz output for all numbers of voices, similar to the Interwave. This gives much higher quality output when playing lots of channels. This will result in stuttering in most games that use streaming DMA for sound effects like Doom, hence it is EXPERIMENTAL. It can be enabled with the /4 switch in pgusinit. Thanks to wbcbz7 for contributing this support along with the increased wave address precision.
    • Known issue: Impulse Tracker constantly re-inits the GUS to get the best sampling rate and if it passes through 28 channels rapidly, audio artifacts can be heard. To work around, run PicoGUS in fixed 44.1kHz output mode.
  • pgusinit
    • New /4 switch when in GUS mode to enable fixed 44.1kHz output.

Much appreciated polpo!

Retronautics: A digital gallery of my retro computers, hardware and projects.

Reply 786 of 834, by zuldan

User metadata
Rank Member
Rank
Member
polpo wrote on 2024-03-05, 17:09:

Glad to hear it works without running pgusinit. When pgusinit runs in MPU-401 mode, the card re-inits the MPU-401 emulation with the sysex delay and fake-all-notes-off settings (neither of which you'd need with a SC-55MK2). There's a chance there's some kind possible hang when re-initing, I'll take a look at it!

Just checking to see if there were any changes to the pgusinit or should I wait for another version?

Reply 787 of 834, by polpo

User metadata
Rank Member
Rank
Member
zuldan wrote on 2024-03-19, 08:50:
polpo wrote on 2024-03-05, 17:09:

Glad to hear it works without running pgusinit. When pgusinit runs in MPU-401 mode, the card re-inits the MPU-401 emulation with the sysex delay and fake-all-notes-off settings (neither of which you'd need with a SC-55MK2). There's a chance there's some kind possible hang when re-initing, I'll take a look at it!

Just checking to see if there were any changes to the pgusinit or should I wait for another version?

No, sorry, the only changes in this release are what's in the changelog. I've been busy with work so haven't had much time to look into much else (in fact most of the fixes in this firmware are from almost a month ago... 😅)

Reply 788 of 834, by zuldan

User metadata
Rank Member
Rank
Member
polpo wrote on 2024-03-19, 18:52:

No, sorry, the only changes in this release are what's in the changelog. I've been busy with work so haven't had much time to look into much else (in fact most of the fixes in this firmware are from almost a month ago... 😅)

No problem at all 😀

Reply 789 of 834, by swisstoni

User metadata
Rank Newbie
Rank
Newbie

Thanks for uploading the new firmware. Unfortunately for me the Dope demo crashes back to the desktop half way through it worked fine on the last firmware. Anyone else had the same issue?

polpo wrote on 2024-03-19, 05:32:
PicoGUS firmware v1.1.0 is released and is available at https://github.com/polpo/picogus/releases/tag/v1.1.0. […]
Show full quote

PicoGUS firmware v1.1.0 is released and is available at https://github.com/polpo/picogus/releases/tag/v1.1.0.

Changelog:

  • GUS emulation:
    • Works around a hardware bug in the PCM510xA DAC that results in ~10% of chips to be silent at 22.05kHz sampling rate. This is the rate produced by the GUS at 28 channels, and is used by Doom and the demo "Dope". The workaround is to run the DAC at 44.1kHz, linearly interpolating the 22.05kHz output.
    • Increased fractional precision of wave addresses to 10 bits from 9.
    • New EXPERIMENTAL fixed 44.1kHz output. Normally the GF1 varies its output sample rate from 44.1kHz at 14 voices to 19.2kHz at 32 voices. Using this option enables 44.1kHz output for all numbers of voices, similar to the Interwave. This gives much higher quality output when playing lots of channels. This will result in stuttering in most games that use streaming DMA for sound effects like Doom, hence it is EXPERIMENTAL. It can be enabled with the /4 switch in pgusinit. Thanks to wbcbz7 for contributing this support along with the increased wave address precision.
    • Known issue: Impulse Tracker constantly re-inits the GUS to get the best sampling rate and if it passes through 28 channels rapidly, audio artifacts can be heard. To work around, run PicoGUS in fixed 44.1kHz output mode.
  • pgusinit
    • New /4 switch when in GUS mode to enable fixed 44.1kHz output.

Reply 790 of 834, by polpo

User metadata
Rank Member
Rank
Member
swisstoni wrote on 2024-03-20, 12:19:

Thanks for uploading the new firmware. Unfortunately for me the Dope demo crashes back to the desktop half way through it worked fine on the last firmware. Anyone else had the same issue?

Interesting, I haven't seen Dope actually crash, just have music playback hang. Since Dope is being forced to 2x sample rate in this firmware, could you see if using the /a 8 option in pgusinit helps? Also does it behave any differently when using the /4 option to use fixed 44.1kHz output? That has worked really well in Dope with my testing – it sounds a lot better.

Reply 791 of 834, by polpo

User metadata
Rank Member
Rank
Member

I've just released PicoGUS firmware v1.2.0 and with it brings Sound Blaster 2.0 emulation. https://github.com/polpo/picogus/releases/tag/v1.2.0

Changelog:

Sound Blaster 2.0 emulation:

The AdLib mode (pg-adlib.uf2) has been replaced with a new Sound Blaster 2.0 mode (pg-sb.uf2)! Code to emulate the Sound Blaster DSP was contributed by Kevin Moonlight (yyzkevin) - huge thanks to him.

  • Sound Blaster 2.0 DSP support is pretty well tested but you may run into issues. Please consult the Compatibility List for titles with known issues, and feel free to file an issue on GitHub to report any problems.
  • AdLib/OPL2 emulation has been improved, fixing issues with missing/wrong notes.
  • The SB base port can be set with pgusinit with the /p option, and the OPL/AdLib base port with the new /o option.
  • Some older titles supporting AdLib are "speed sensitive" and have weird playback on fast systems (even with a genuine OPL2/OPL3). A new /w option in pgusinit can work around these issues in most circumstances.

MPU-401 emulation:

  • Fixes an issue reported by zuldan on Vogons where running pgusinit in MPU-401 mode wouldn't work on certain systems. Fixed by initing the MPU-401 and sending the reset MIDI data asynchronously, preventing IOCHRDY from being held low for too long.
  • Sysex delay handled without busy wait. Shouldn't have much effect presently, but may allow MPU-401 to be emulated simultaneously with other modes in the future.

General:

  • Allows the volume of the wavetable header to be set with the /v option in pgusinit in all modes. This is useful if you want to use the wavetable header to mix in other external audio sources like a CD-ROM drive (connection guide coming to the Wiki).
Last edited by polpo on 2024-03-28, 02:21. Edited 1 time in total.

Reply 792 of 834, by Delphius

User metadata
Rank Newbie
Rank
Newbie
polpo wrote on 2024-03-28, 01:14:
I've just released PicoGUS firmware v1.2.0 and with it brings Sound Blaster 2.0 emulation. https://github.com/polpo/picogus/rele […]
Show full quote

I've just released PicoGUS firmware v1.2.0 and with it brings Sound Blaster 2.0 emulation. https://github.com/polpo/picogus/releases/tag/v1.2.0

Changelog:

Sound Blaster 2.0 emulation:

The AdLib mode (pg-adlib.uf2) has been replaced with a new Sound Blaster 2.0 mode (pg-sb.uf2)! Code to emulate the Sound Blaster DSP was contributed by Kevin Moonlight - huge thanks to him.

  • Sound Blaster 2.0 DSP support is pretty well tested but you may run into issues. Please consult the Compatibility List for titles with known issues, and feel free to file an issue on GitHub to report any problems.
  • AdLib/OPL2 emulation has been improved, fixing issues with missing/wrong notes.
  • The SB base port can be set with pgusinit with the /p option, and the OPL/AdLib base port with the new /o option.
  • Some older titles supporting AdLib are "speed sensitive" and have weird playback on fast systems (even with a genuine OPL2/OPL3). A new /w option in pgusinit can work around these issues in most circumstances.

MPU-401 emulation:

  • Fixes an issue reported by zuldan on Vogons where running pgusinit in MPU-401 mode wouldn't work on certain systems. Fixed by initing the MPU-401 and sending the reset MIDI data asynchronously, preventing IOCHRDY from being held low for too long.
  • Sysex delay handled without busy wait. Shouldn't have much effect presently, but may allow MPU-401 to be emulated simultaneously with other modes in the future.

General:

  • Allows the volume of the wavetable header to be set with the /v option in pgusinit in all modes. This is useful if you want to use the wavetable header to mix in other external audio sources like a CD-ROM drive (connection guide coming to the Wiki).

I did some testing with pg-sb.uf2. Works perfectly so far! War2, Doom, Duke3d, Sierra games all work as expected. Super cool! Thank's Kevin!

Any idea if normal soundblaster 2 volume tools will work to balance out sb and adlib, or will there need to be an option in pgusinit for something like that?

Reply 793 of 834, by polpo

User metadata
Rank Member
Rank
Member
Delphius wrote on 2024-03-28, 02:03:

I did some testing with pg-sb.uf2. Works perfectly so far! War2, Doom, Duke3d, Sierra games all work as expected. Super cool! Thank's Kevin!

Any idea if normal soundblaster 2 volume tools will work to balance out sb and adlib, or will there need to be an option in pgusinit for something like that?

Getting a good volume balance between SB and Adlib has been challenging and is something I'll need to tweak in the future so it better matches a real SB 2.0. A lot of games do let you change music vs. SFX volume which is good but not everything does, so being able to control it via pgusinit is a good idea. Kevin already has done some work on emulating the SBPro mixer so that could be leveraged to use the SB tools instead of pgusinit...

Reply 794 of 834, by Delphius

User metadata
Rank Newbie
Rank
Newbie
polpo wrote on 2024-03-28, 02:20:
Delphius wrote on 2024-03-28, 02:03:

I did some testing with pg-sb.uf2. Works perfectly so far! War2, Doom, Duke3d, Sierra games all work as expected. Super cool! Thank's Kevin!

Any idea if normal soundblaster 2 volume tools will work to balance out sb and adlib, or will there need to be an option in pgusinit for something like that?

Getting a good volume balance between SB and Adlib has been challenging and is something I'll need to tweak in the future so it better matches a real SB 2.0. A lot of games do let you change music vs. SFX volume which is good but not everything does, so being able to control it via pgusinit is a good idea. Kevin already has done some work on emulating the SBPro mixer so that could be leveraged to use the SB tools instead of pgusinit...

Overall the balance is pretty great actually. It seems to work with in game controls that support it as well which is good. Excited to see what is coming up next for picogus and also the SB firmware. Looks like you might also be trying to get MPU running next to these / with other firmwares as well?

Reply 795 of 834, by digistorm

User metadata
Rank Member
Rank
Member

@polpo: Do you know how often you can flash a different firmware until the chip wears out? Would it be harmful to for example make batch files that change the picogus firmware before launching a game?

Reply 797 of 834, by swisstoni

User metadata
Rank Newbie
Rank
Newbie

Ive just tried the Dope demo on the new firmware v1.2.0 and it works perfectly now 😀

polpo wrote on 2024-03-28, 01:11:
swisstoni wrote on 2024-03-20, 12:19:

Thanks for uploading the new firmware. Unfortunately for me the Dope demo crashes back to the desktop half way through it worked fine on the last firmware. Anyone else had the same issue?

Interesting, I haven't seen Dope actually crash, just have music playback hang. Since Dope is being forced to 2x sample rate in this firmware, could you see if using the /a 8 option in pgusinit helps? Also does it behave any differently when using the /4 option to use fixed 44.1kHz output? That has worked really well in Dope with my testing – it sounds a lot better.

Reply 798 of 834, by polpo

User metadata
Rank Member
Rank
Member
Delphius wrote on 2024-03-28, 03:23:

Overall the balance is pretty great actually. It seems to work with in game controls that support it as well which is good. Excited to see what is coming up next for picogus and also the SB firmware. Looks like you might also be trying to get MPU running next to these / with other firmwares as well?

Next is to integrate USB mouse support (emulating serial mouse, but high speed so no lag like on a real serial mouse) that wbcbz7 contributed. Also yyzkevin is working on SBPro stereo DSP support. I don't have the skills to optimize Nuked-OPL3 enough to get OPL3 support, but emulating dual OPL2s is within the realm of possibility. This would allow SBPro 1.0 emulation. I also want to overhaul the USB joystick support to be able to expand the number of USB joysticks supported by PicoGUS. And of course there is the never ending quest to get GUS support working better on more chipsets. Thanks to someone here on Vogons I recently received a board with a problem chipset that I want to dive into.

digistorm wrote on 2024-03-28, 08:09:

@polpo: Do you know how often you can flash a different firmware until the chip wears out? Would it be harmful to for example make batch files that change the picogus firmware before launching a game?

The Winbond flash chip used on both the Pico and PicoGUS 2.0 is rated for "minimum 100K Program-Erase cycles" so that's a lot of times you can program it. And if it does ever wear out, anyone with SMT rework skills can put on a new one.

jcarvalho wrote on 2024-03-28, 12:45:
Hi all!!! Would the pg-sb.uf2 work on "old" picoGus versions for emulating adlib or the "old" pcb version will lose the adlib ca […]
Show full quote

Hi all!!!
Would the pg-sb.uf2 work on "old" picoGus versions for emulating adlib or the "old" pcb version will lose the adlib capability?

Thanks!
Jorge

Yes, it works great on the PicoGUS 1.x boards. Only change in this firmware that doesn't apply to those boards is the wavetable header volume.

swisstoni wrote on 2024-03-28, 12:59:

Ive just tried the Dope demo on the new firmware v1.2.0 and it works perfectly now 😀

That's great to hear! I did make my timer code more accurate to avoid periodic clicks on the SB DSP, which would also make the GUS timers more accurate. It's a good chance that it solved that problem.