Skip to content

Releases: polpo/picogus

v0.6.1

23 Feb 04:05
Compare
Choose a tag to compare

Another bugfix release! This release fixes a bug introduced in firmware v0.5.0 that caused Descent to freeze on the Loading... indicator when running setup and starting the game.

GUS emulation:

  • Fixes freeze when starting Descent. This patch release uses a smaller/simpler 4-byte DMA buffer that solves the freeze with Descent while also hopefully still preventing stuttering in Doom introduced by level changes (the reason for the DMA buffer in the first place).

For known issues, please see the Compatibility List wiki page.

v0.6.0

22 Feb 16:37
Compare
Choose a tag to compare

CMS emulation:

  • New emulation mode: CMS/Game Blaster.

For known issues, please see the Compatibility List wiki page.

v0.5.1

21 Feb 22:27
Compare
Choose a tag to compare

Bugfix release! All of the new features of v0.5.0 plus the following fixes:

Tandy emulation:

  • Fixed reporting of base port when running pgusinit when on Tandy firmware
  • Fixed firmware flashing from DOS when on Tandy firmware

v0.5.0

21 Feb 19:49
Compare
Choose a tag to compare

General:

  • More reliable firmware flashing from pgusinit by clocking down the Pico and disabling interrupts. Many thanks to JazeFox at Vogons for debugging this issue and suggesting a fix.

Tandy emulation:

  • New emulation mode: Tandy 3-Voice. This emulation is on port 2C0h by default, to avoid conflicts or masked IO on the default Tandy port of 0C0h in non-Tandy systems. This is the same alternate port that Matze79's "TNDY" card can use. Use the TNDY driver program to redirect port 0C0h to 2C0h. Also many games need to be patched to allow for Tandy sound on non-Tandy systems with CGA, EGA, or VGA graphics. Note that this mode has not received much optimization, so accuracy and compatibility can be improved.

GUS emulation:

  • Resets DMA status bit to 0 on completion of DMA handler. Fixes some Demoscene titles.
  • Buffers uploaded DMA samples instead of writing 1 byte at a time. Currently this buffer is 8 bytes, and may be configurable in future releases. Should help stuttering/slowdown issues in games that use streaming DMA audio like Doom.
  • Bails out on sound rendering when sample rate changes. This should eliminate any "warbling" sounds when Impulse Tracker resets the channel count on the fly.
  • Uses the RP2040 hardware interpolation unit to interpolate samples and clamp output to 16 bits.

For known issues, please see the Compatibility List wiki page.

v0.4.0

30 Jan 03:59
Compare
Choose a tag to compare

General:

  • New version (v1.0.1) of pgusinit.exe - DMA interval is in µs, not ms

GUS emulation:

  • Refactored DMA transfer completion handler: this results in much higher compatibility with titles that use streaming DMA. Overriding the DMA transfer interval is not necessary in most circumstances now.
    • Fixes games: Quake, Doom (and Doom engine games), Duke3D, Descent, Hocus Pocus (partially); Demo: Inside
  • Fixed bug where DMA control register was not properly reset between transfers. Fixes garbage samples when uploading mixed 16 & 8 bit samples.
    • Fixes music players/trackers: Open Cubic Player (with gusFastUpload=on), Fast Tracker 2

v0.3.0

21 Jan 19:44
Compare
Choose a tag to compare

General:

  • Firmware can now be programmed from DOS (requires FW v0.3.0 or above - upgrading from previous versions must be done by USB)
    • Emulation mode can be changed "on the fly" by uploading different firmwares
  • New version (v1.0.0) of pgusinit.exe - Firmware versions v0.3.0+ require this new version of pgusinit.exe!

GUS emulation:

  • Major DMA improvements!
    • DMA PIO state machine rewrite to solve sample glitches (fixes Star Control II)
    • Asynchronous writing to PSRAM of DMAed samples (fixes Doom)
    • Smarter sample cache (fixes Doom)
    • Adjustable DMA interval (fixes Doom)
  • One firmware for all ports - base port is now configured with ULTRASND environment variable and pgusinit.exe

MPU-401 emulation:

  • Intelligent mode emulation is now working in all but a few titles
  • Base port now configured with pgusinit.exe (defaults to 330)

AdLib emulation:

  • Base port now configured with pgusinit.exe (defaults to 388)

v0.2.0

15 Dec 03:24
Compare
Choose a tag to compare
  • Solved a regression where lots of channels playing 16-bit samples would cause audio stuttering (example: the demo Aeon Drift by Disaster Area). Added a super simple sample pair buffer per channel to solve this.
  • Super-unstable DMA support preview. Count on it to fail, but feel free to celebrate when it works! 😅
  • Fixed a small bug in pgusinit.exe that didn't set the audio buffer size to 16 if the /a option was not given on the command line.
  • Includes firmwares for GUS port 220, 240, and 260.
  • Built with a new automatic release script.

For firmware programming instructions, see the "Programming the Pico" part of the build guide.

v0.1.0

12 Dec 06:07
Compare
Choose a tag to compare
  • New release format: a ZIP file containing firmware UF2 files and PGUSINIT.EXE.
  • Features all IRQ fixes shown in the November 2022 update video and then some – regressions introduced by those fixes have now been fixed. 😅
  • New version of PicoGUSinit (PGUSINIT.EXE) to allow the audio buffer size on the PicoGUS to be configured via the /a n option, where n is the size of the buffer in samples. Some productions may still freeze, or have audio glitches, and configuring the buffer size can help. Please see the Compatibility List for the flag to use for any problematic programs.
  • Preview firmware for Adlib and MPU-401 emulation.

For firmware programming instructions, see the "Programming the Pico" part of the build guide.

v0.0.1

25 Oct 22:04
Compare
Choose a tag to compare

Contents:
picogus.uf2 - Firmware with Gravis Ultrasound emulation core, port 240
PGUSINIT.EXE - DOS executable to detect and initialize the PicoGUS