diff --git a/pgusinit/README.md b/pgusinit/README.md index f405645..cc37e73 100644 --- a/pgusinit/README.md +++ b/pgusinit/README.md @@ -39,6 +39,7 @@ settings. Options may be given for other settings: * `/wtvol x` - sets wavetable header volume to x percent (PicoGUS 2.0 boards only). Available in all modes in case you want to use the wavetable header as an aux input (for example for an internal CD-ROM drive). +* `/mainvol x` - sets main volume level for all outputs. * `/mode x` - changes the card to mode specified by x. Options: - `gus`: Gravis Ultrasound - `sb`: Sound Blaster 2.0 & AdLib. Supports CD-rom emulation. @@ -77,6 +78,7 @@ port specified in ULTRASND. voices. Using this option enables 44.1kHz output for all numbers of voices, similar to the Interwave. This will result in stuttering in most games that use streaming DMA for sound effects like Doom, hence it is EXPERIMENTAL. +* `/gusvol x` - sets the volume of the GUS output to x percent. See the Compatibility List wiki for notes on programs that require special settings for the above options: @@ -88,6 +90,7 @@ https://github.com/polpo/picogus/wiki/Compatibility-list * `/oplport x` - sets the base port of the OPL/AdLib. Defaults to 388. * `/oplwait` - wait on OPL2 data write. Can fix speed-sensitive early AdLib games on fast systems (example: 688 Attack Sub). +* `/oplvol x` - sets the volume of the OPL2 output to x percent. ### MPU-401 options @@ -99,10 +102,12 @@ https://github.com/polpo/picogus/wiki/Compatibility-list ### Tandy options * `/tandyport x` - sets the base port of the Tandy 3-voice. Defaults to 2c0. +* `/psgvol x` - sets the volume of the PSG output to x percent. ### CMS options * `/cmsport x` - sets the base port of the CMS. Defaults to 220. +* `/psgvol x` - sets the volume of the PSG output to x percent. ### Serial mouse settings @@ -124,6 +129,7 @@ that do not require an IRQ: AdLib, CMS, Tandy, and USB. * `/cdload n` - load image n in the list given by /cdlist. 0 to unload image * `/cdloadname x` - load CD image by name. Names with spaces can be quoted * `/cdauto 1|0` - auto-advance loaded image when same USB drive is reinserted +* `/cdvol x` - sets the volume of the CD audio output to x percent. ## Compiling diff --git a/pgusinit/pgusinit.c b/pgusinit/pgusinit.c index 778d835..2864a9e 100755 --- a/pgusinit/pgusinit.c +++ b/pgusinit/pgusinit.c @@ -70,7 +70,7 @@ static void pageprintf(char *format, ...) static void banner(void) { - printf("PicoGUSinit v3.6.0 (c) 2025 Ian Scott - licensed under the GNU GPL v2\n"); + printf("PicoGUSinit v3.7.0 (c) 2025 Ian Scott - licensed under the GNU GPL v2\n"); } diff --git a/sw/CHANGELOG.md b/sw/CHANGELOG.md index e5e1880..3eb4f16 100644 --- a/sw/CHANGELOG.md +++ b/sw/CHANGELOG.md @@ -1,3 +1,33 @@ +# v3.2.0 + +## Fixes/improvements + +### General + +- Settings saved in flash with `pgusinit /save` are now preserved when upgrading to a firmware version that introduces new settings +- Volume control is now available for all sources. For example, in SB mode, the SB DSP, OPL2, and CD-ROM audio volumes can be independently controlled. Thanks to [Daniel Arnold (Delphius)](https://github.com/RetroLoom) for contributing this! +- DualShock 4 gamepad support has been fixed + +### SB mode + +Sound Blaster playback has been almost completely rewritten, removing a major bottleneck and freeing up way more CPU time. + +- Crashing on titles with simultaneous SB DSP & OPL2 fixed +- High-quality assembly optimized FIR polyphase resampler for much better sounding OPL2 output. Huge thanks to [korneliuszo](https://github.com/korneliuszo/) for contributing this and other optimizations! +- Direct DAC mode is back after being dropped in firmware v3.0.0 +- Too-slow MPU-401 output in SB mode fixed (main symptom was long delay until music starts in Sierra titles) +- CD-ROM speed now faster in SB mode - improved from 2x to 3x + +### pgusinit + +pgusinit has been almost completely refactored, thanks again to [Daniel Arnold (Delphius)](https://github.com/RetroLoom). It not only helps future maintainability but brings new quality of life features: + +- Long output like CD image listing and extended help text now pauses instead of scrolling off the screen +- Progress bar when flashing firmware instead of filling the screen with dots +- More helpful text if there are missing arguments +- Values can be set back to their default values with a `default` argument. Example: `pgusinit /cdport default` +- Added support for volume control via commands like /sbvol, /cdvol, etc. + # v3.1.0 ## Fixes diff --git a/sw/CMakeLists.txt b/sw/CMakeLists.txt index c15d288..27dcd10 100644 --- a/sw/CMakeLists.txt +++ b/sw/CMakeLists.txt @@ -19,7 +19,7 @@ set(PICO_COPY_TO_RAM 1) include(pico_sdk_import.cmake) project(picogus - VERSION "3.1.0" + VERSION "3.2.0" LANGUAGES C CXX ASM )