Code Monkey home page Code Monkey logo

picogus's Introduction

PicoGUS

PicoGUS Logo

Build Status

ISA sound card emulation on the Raspberry Pi Pico's RP2040 microcontroller. PicoGUS can emulate:

Current status: perpetual beta! See the main wiki page for current status and the compatibility list for support status of various DOS programs and other system compatibility notes. This project has a heavy demoscene focus due to the GUS's history so that's what I've concentrated on, but GUS support in games is very good to excellent.

Want to buy a PicoGUS? Fully assembled PicoGUS 2.0 sound cards are available from these sources:

Want to make your own PicoGUS? See the build guide. Note that the more DIY friendly v1.1.1 hardware has some documented issues with reset – a forthcoming v1.2 revision will fix these issues. Important caveat: due to the specs of the Pico, assumptions made by programs written to use the GUS, the imprecise nature of emulation, and the varying specs of retro DOS PC hardware, some things will likely never be perfect. This is still a work in progress.

Have a PicoGUS and want to use it? See the configuring and using your PicoGUS guide.

Want to support PicoGUS? I have a limited number of machines to test PicoGUS in and donating either money or motherboards would be greatly appreciated and help increase the compatibility of PicoGUS.

You can donate via PayPal or Ko-Fi: ko-fi

PicoGUS 2.0 PCB

PicoGUS v1.1 beta PCB

Looking for the original project, using Raspberry Pi 3/4? See the pigus repo.

See/hear PicoGUS in action on YouTube:

Videos by others:

My videos:

September 2022 update October 2022 update December 2022 update January 2023 update March 2023 update

Open Source Credits

License

The hardware portions of this repository (hw/ directory) are licensed under the CERN OHL version 2, permissive.

The software portions of this repository (sw/, pgusinit/ directories) are licensed under the GNU GPL version 2.

picogus's People

Contributors

maxgerhardt avatar polpo avatar wbcbz7 avatar yyzkevin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

picogus's Issues

Troubleshooting PicoGUS Star Control 2 issues

Greeting from Adrian's Digital Basement!

I noticed on his recent video that you have a "compatibility" issue with Star Control 2.

I very distinctly remember having a weirdo bizarro random sounds constantly playing issue with Star Control 2 on my Ultrasound back when I first installed the game back in the day. There was a fix or patch that cleared that up, but I have no recollection of where I got that, or exactly what form it took.

Can I ask for details on the testing you've done? Are you testing with the initial floppy-disc release of the game, and have you verified this misbehavior only occurs only on PicoGUS and not on real original hardware?

Compatibility report: Slot-A AMD 750 (Irongate)

Chipset: AMD 750 (Irongate)
Motherboard: MSI MS-6167

Running Athlon 600 + 384 MB RAM
Tested firmware: 1.0.2
OS: DOS 7 (Windows 98)
Settings used on PicoGUS: port 240, IRQ 7, DMA 3

As far as I can tell, all demo's, games and trackers I tried work (that includes most demo's on the list). Dope works without workarounds, Impulse Tracker didn't seem to glitch when changing the number of allocated channels etc., Cubic Player works just fine too. So to me it seems compatibility is pretty much 100%.
Only note (but maybe it is a known thing) is that Tyrian doesn't seem to work with ULTRAMID when I load UMBPCI.SYS and/or XMGR.SYS (they are alternative memory managers and work together; the benefit being that it doesn't put the CPU in protected mode which demo's sometimes don't like but still offers a lot of conventional memory). DOOM works fine with those memory managers and ULTRAMID.

GUS Emulation - Sound Effects in some games, but no Music. Other games crash

So I ordered a couple of the 2.0 models, and put one in a 486, with another in a Pentium 2. They're both giving me similar interesting results, in that I can't get any GUS music to work. I'm pretty sure the hardware is fine, as MPU-401 worked great for Day of the Tentacle, X-Com, and Loom on my old 486. The ultimate talkie edition of monkey island 1 had some problematic music, but since that isn't really official, I don't think its as big a deal as GUS Music for me.

For GUS, I've tried Rise of the Triad (Shareware and Dark War), Raptor, Tyrian, and Jazz Jackrabbit (+ both Holiday Hare 94 and 95).

For Rise of the Triad:

  • Choosing Ultrasound for SFX appears to work, although I get no audio
  • Choosing Ultrasound for Music crashes

For Raptor (full and shareware):

  • Running setup causes no issues. On the Pentium 2, running the full game crashes on Music initialization, while on the 486 it launches, with no music or SFX.

For Tyrian:

  • Running ultramid prior to, launching setup, and then choosing Gravis-MIDI causes a runtime error (I can get a screenshot if it's helpful)

For Jazz Jackrabbit (HH94/HH95/CD):

  • Setup indicates it picks up the ULTRASND settings ('set ultrasnd=240,1,1,5,5' used, but I've also tried 3 for DMA on both systems).
  • Launching the game gives no errors, and sound effects play, but music will not.

I don't know the chipset of the 486 off-hand, but the Pentium 2 is a a socket 1 / ASUS P2L97 (intel 440lx chipset).

Anything else I should try/you'd like to know? I'm pretty new to GUS, so I'm not sure if I missed a step. I did run on both with the latest picogus release and the ultrasnd drivers/patches from the wiki.

I know this was tested heavily with demos, not sure where to go about getting one, but I'd be happy to try/post results. I can stream from either system with a little work, so video/audio capture is possible, too.

New good chipsets tested

Hi, Ian!
Thank you so much for your amazing project! Just assembled and tested PicoGUS. I would like to share my results:

  1. KM-S4-1 motherboard (aka U6923, Rectron RT-4s3) SiS 85C496/497 chipset, am486DX4-100
    https://www.elhvb.com/webhq/models/486pci/km-s4-1.htm

  2. Asus CUV4X motherboard based on VIA Apollo Pro133A chipset, PIII-733
    http://hw-museum.cz/mb/46/asus-cuv4x
    excellent results but we have to setup a couple of settings in BIOS before:
    'Advanced'->'PCI/PNP ISA IRQ Resource Exclusion'->'IRQ 5 Used by ISA' set to 'Yes'
    'Advanced'->'PCI/PNP ISA DMA Resource Exclusion'->'DMA 1 Used by ISA' set to 'Yes'

Hope you will find some solution for SBOS and NMI issue someday somehow for all of us! )) Thanks again!!! Cheers!

Cannot compile project

On Windows (from installer) or Linux it's the same thing: When I download

  • Pico SDK latest stable 1.5.1
  • Pico-Extras matching branch 1.5.1
  • Arm-none-eabi-gcc 10.3.1
  • CMake 3.25.1
  • Ninja 1.11.1

And compile the project, it fails to find a bunch of implementation for linker-wrapped functions at the end, specifically STDIO and Math ones

  • __wrap_puts
  • __wrap_printf
  • __wrap_remainder
  • some more..

Full log in https://github.com/maxgerhardt/picogus/actions/runs/6447661204

[ 96%] Building ASM object CMakeFiles/picogus.dir/home/runner/work/picogus/picogus/pico/pico-extras/src/common/pico_audio/audio_utils.S.obj
[ 97%] Building C object CMakeFiles/picogus.dir/home/runner/work/picogus/picogus/pico/pico-extras/src/common/pico_util_buffer/buffer.c.obj
[ 98%] Building C object CMakeFiles/picogus.dir/home/runner/work/picogus/picogus/pico/pico-sdk/src/rp2_common/hardware_flash/flash.c.obj
[100%] Linking CXX executable picogus.elf
/home/runner/gcc-arm-none-eabi-10.2020.4-linux/gcc-arm-none-eabi-10-2020-q4-major/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld: /tmp/picogus.elf.RtR3fl.ltrans0.ltrans.o: in function `_out_char':
<artificial>:(.text+0x1f90): undefined reference to `__wrap_putchar'
/home/runner/gcc-arm-none-eabi-10.2020.4-linux/gcc-arm-none-eabi-10-2020-q4-major/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld: /tmp/picogus.elf.RtR3fl.ltrans0.ltrans.o: in function `panic':
<artificial>:(.text+0x2150): undefined reference to `__wrap_puts'
/home/runner/gcc-arm-none-eabi-10.2020.4-linux/gcc-arm-none-eabi-10-2020-q4-major/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld: <artificial>:(.text+0x2158): undefined reference to `__wrap_puts'
/home/runner/gcc-arm-none-eabi-10.2020.4-linux/gcc-arm-none-eabi-10-2020-q4-major/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld: <artificial>:(.text+0x215e): undefined reference to `__wrap_puts'
/home/runner/gcc-arm-none-eabi-10.2020.4-linux/gcc-arm-none-eabi-10-2020-q4-major/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld: /tmp/picogus.elf.RtR3fl.ltrans0.ltrans.o: in function `play_gus()':
<artificial>:(.text+0x2b40): undefined reference to `__wrap_puts'
/home/runner/gcc-arm-none-eabi-10.2020.4-linux/gcc-arm-none-eabi-10-2020-q4-major/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld: <artificial>:(.text+0x2bfc): undefined reference to `__wrap_puts'
/home/runner/gcc-arm-none-eabi-10.2020.4-linux/gcc-arm-none-eabi-10-2020-q4-major/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld: /tmp/picogus.elf.RtR3fl.ltrans0.ltrans.o:<artificial>:(.text+0x2f84): more undefined references to `__wrap_puts' follow
/home/runner/gcc-arm-none-eabi-10.2020.4-linux/gcc-arm-none-eabi-10-2020-q4-major/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld: /tmp/picogus.elf.RtR3fl.ltrans0.ltrans.o: in function `play_gus()':
<artificial>:(.text+0x2ff8): undefined reference to `__wrap_printf'
/home/runner/gcc-arm-none-eabi-10.2020.4-linux/gcc-arm-none-eabi-10-2020-q4-major/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld: <artificial>:(.text+0x39aa): undefined reference to `__wrap_printf'
/home/runner/gcc-arm-none-eabi-10.2020.4-linux/gcc-arm-none-eabi-10-2020-q4-major/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld: /tmp/picogus.elf.RtR3fl.ltrans0.ltrans.o: in function `__wrap_remainder':
<artificial>:(.text+0x3bb8): undefined reference to `__wrap_remquo'
/home/runner/gcc-arm-none-eabi-10.2020.4-linux/gcc-arm-none-eabi-10-2020-q4-major/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld: /tmp/picogus.elf.RtR3fl.ltrans0.ltrans.o: in function `__wrap_remainderf':
<artificial>:(.text+0x3c34): undefined reference to `__wrap_remquof'
/home/runner/gcc-arm-none-eabi-10.2020.4-linux/gcc-arm-none-eabi-10-2020-q4-major/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld: /tmp/picogus.elf.RtR3fl.ltrans0.ltrans.o: in function `main':
<artificial>:(.text.startup+0x19a): undefined reference to `__wrap_puts'
/home/runner/gcc-arm-none-eabi-10.2020.4-linux/gcc-arm-none-eabi-10-2020-q4-major/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld: <artificial>:(.text.startup+0x200): undefined reference to `__wrap_puts'

Which version of the SDK and compiler etc. are you using to build this project? The Wiki and README does not mention it.

Maybe update Impulse Tracker and Cubic Player compatibility?

In the compatibility list it states that both Impulse Tracker and Cubic Player have issues. I think with the latest firmware, at least with my systems and also when I saw video's online using Cubic Player, they seem to work just fine. With the latest firmware (1.2.0) I don't hear glitches with the changing of sample rate, and Cubic Player also just works. Cubic Player is a complex topic however, because there are many versions circulating online and they all have their issues off their own, not related to the PicoGUS. Maybe you could suggest using the latest version (Open Cubic Player 2.6.0 pre 6) to have a common testing environment. That one is most compatible in my experience, some other beta version may have stability issues.
So, maybe you could update those entries, it might put people off to use the PicoGUS if it states that is it not compatible, because they are (were) very popular pieces of software that people might want to use with the PicoGUS.

Psuedocode for doing fast cubic spline interpolation (for better resampling quality)

So I saw the talk about a possible cubic spline interpolator mode for PicoGUS, which would result in crisper audio with less treble being cut off from linear interpolation.

Here's some code I wrote that should work: https://pastebin.com/raw/Yvyh63VP

The only problem is that you need to input the correct sample points for the s0..s3 function parameters. This is slightly tricker than having to deal with just one extra sample (like with linear interpolation).

Here's what s0..s3 should be based on a few conditions (could be off, but something like this anyway).

Some notes first:

  • Pos is the current integer sampling position
  • End is the end point for a non-looping sample
  • s is a pointer to the sample data (either 8-bit or 16-bit samples)
  • HasLooped is a flag for having reached the end of a loop on a looping sample. Set it to false when a voice is starting to play a sample (sample trigger), and set it to true when you have looped at least once (sample is looping its loop now). I'm sure it has to be set to false in other situations as well.

Non-looping sample:

  • s0 = if (Pos == 0) s[0] else s[Pos-1];
  • s1 = s[Pos]
  • s2 = if (Pos+1 >= End) s[End-1] else s[Pos+1]; (yes, End-1. As in the last sample point)
  • s3 = if (Pos+2 >= End) s[End-1] else s[Pos+2];

Forward-looping sample:

  • s0 = if (HasLooped) { if (Pos == LoopStart) s[LoopEnd-1] else s[Pos-1]; } else if (Pos == 0) s[0] else s[Pos-1]; }
  • s1 = s[Pos]
  • s2 = if (Pos+1 >= LoopEnd) s[LoopStart+((Pos+1)-LoopEnd)] else s[Pos+1];
  • s3 = if (Pos+2 >= LoopEnd) s[LoopStart+((Pos+2)-LoopEnd)] else s[Pos+2];

Bidirectional-looping sample:

  • s0 = if (HasLooped) { if (Pos == LoopStart) s[LoopStart+1] else s[Pos-1]; } else if (Pos == 0) s[0] else s[Pos-1]; }
  • s1 = s[Pos]
  • s2 = if (Pos+1 >= LoopEnd) s[LoopEnd-((Pos+2)-LoopEnd)] else s[Pos+1]; (do Pos+2/Pos+3 for an extra -1)
  • s3 = if (Pos+2 >= LoopEnd) s[LoopEnd-((Pos+3)-LoopEnd)] else s[Pos+2];

There could be some off-by-one (or bigger) errors here, so do experiment with it. If it's possible to sample backwards in "forward loop" mode, then it would also need more logic.

PS: I totally understand if this is too bothersome to implement, and that's fine. :-)

2508051027Y1 (L1/L2) substitute?

I have serious trouble finding 2508051027Y1 ferrite beads where I live, and I have no option of ordering from Mouser. Can I use BLM21SP102SN1D instead? It has maximum DC Resistance of 120 mOhms instead of 300 mOhms. Will it do?

Digital s/pdif out options

I am loving this project at the moment, and plan to build a board and do some of my own testing. Awesome work! I am wondering if there were any thoughts or plans to implement a digital output option? It seems it would be pretty easy to replace the PCM5102 with an I2C to spdif converter. But I am wondering if there were any thoughts for either building a dedicated option for spdif coax, or at least a pinout to allow connection to a PCI breakout board. The PCM5102 does a great job in my experience, but I try to use spdif out as much as possible to help reduce ground noise generated from the computer internally.

Can't program the PicoGUS using Amiga Bridgeboard PC

I'm using the PicoGUS in an Amiga 2000 using the A2286 bridgeboard (which is a full IBM AT class PC on a card, an 80286 at 8 MHz), I also have an XTIDE, and a VGA card on the ISA bus, but nothing else.

Prior to 1.0.2 the GUS sound didn't work, but I think fixing the timings for the 5170 has also fixed it for this. GUS sound seems to work perfectly now, as does adlib (I've tried Dune 2: The battle for Arrakis and Planet X-3 for adlib, and I've tried the Legend demo and The Good, Bad, and Ugly demos for GUS sound).

However programming the Gus with pgusinit /f <file> doesn't work. It prints a lot of garbled characters. I don't have a way to copy and paste them but you can see in the screenshot attached the garbled errors.

Even after the output in the screenshot the GUS still works, so I don't think it's actually managing to program it at all.

Screenshot 2024-03-18 at 11 06 57

If there's anything I can do to help debug this let me know and I will do my very best. It's absolutely incredible to me that this works at all in the Amiga, and thank you for such a brilliant project!

Tested a few more demos

I've tested a few unverified demos.

Seem perfect:

  • Stash by The Black Lotus
  • Fluid Motion by Valhalla
  • Heartquake by Iguana
  • DX Project by RealTech
  • My Summer Demo by Byterapers
  • Solstice by Valhalla
  • Caero by Plant and EMF
  • Aquaphobia by RealTech
  • Contrast by Oxygene
  • Machines of Madness by Cubic Team
  • Lasse Reinbøng by Cubic Team & $eeN
  • Genocyd by GMF
  • Mindtrap by Trauma
  • Jizz by The Black Lotus
  • Robotnik by Rage
  • Boost by Doomsday

Imperfect:

  • Disgust by Camorra (credits at the end have strange timing)

Possibly problematic (I did not try very hard to run them):

  • Sunflower by Pulse (hangs at the beginning)
  • Pump by Iguana (hangs in the middle)

FW 070

Removed picoGus from slot and programmed directly from usb port, card inserted in isa slot and using the provided pgusinit it reports good, picogus initialized with success but no sound on cmod or second reality.
reflashing it on isa slot using pgusinit with /f option I can ear a beep for each dot on screen while flashing FW
CPU Via c3@800
256MB RAM
Board MSI MS-6153 Ver 2.1

Was working good with FW 0.6.1

Any chance to bring MIDI Input support?

Hi, great work and an amazing project!
Is there any chance to bring MPU-401 MIDI Input support in firmware?
Hopefully you have an extra pin for that. I can use an external optocoupler. Just wondering if it's possible at all in the current design. Thank you!

Combine all different firmwares in FLASH

Hi! I like your project! I noticed you have multiple firmware's which need to be reflashed to select the functionality. I have done some coding on the Pi Pico myself, and I made a tool to combine multiple firmware .bin files into one .uf2 file. A small "bootloader" will jump to the requested firmware. This way reprogramming to change functionality isn't needed anymore. If you are interested I can share some code parts with you.

AC97 or HD Audio header?

I would appreciate the addition of AC97 or HDA headers in the latest PC cases to fully utilize the functionality of this card.

SCK Short to Ground - I2S DAC Questions

I am having issues with my PicoGUS detection whenever I insert the 3.5mm line into the I2S DAC module. This is consistent so I have been looking for problems in that area. The SCK line seems to be shorting to ground. All of the joints look clean, but it makes me wonder if I should have left out soldering certain pins that were undefined in the build guide. I will continue to troubleshoot and will probably pull the I2S DAC out to get a better look at things.

I question whether it was incorrect of me to solder in these extra pads along the length of the module? I had an extra pin header to that length and thought it wouldn't hurt to solder them down for extra support, but maybe I should have only soldered LGRG or finished soldering the whole row down?

signal-2023-11-03-080840

adding instructions for other DMA configurations to the wiki

Hi, it seems like a basic thing that I cant find anywhere, but can you add instructions on how to set the jumpers to other DMA settings. This is useful when trying to get it setup in a system that also has another soundcard in it.

Thanks

Instruments bug with Doom-based games

Hi,

This isn't a bug with PicoGUS but it's something you might want to add to your compatibility list wiki page (I don't have permission to edit it). Doom uses the DMX sound library which has a bug that causes it to play the wrong patches for some instruments. There's a PWAD I made that fixes the bug.

A demo video is here that shows the difference it makes. The same WAD should also work for other Doom engine games: Heretic, Hexen, Strife, Chex Quest.

I have no knowledge of electronic circuits, but I would like to make your project.

Firstly, thanks for sharing your awesome project.

I have no knowledge of electronic circuits, but I enjoy soldering.

I would like to give your project as a gift for my homemade retro PC, but some IC chips are hard to find in my country.

74CB3T3257PWR
74CB3T3245PWR

Is there a replacement for the above two chips?

If there are compatible chips, please advise.

Thank you.

PGUSINIT Usage is wrong

The usage specifies "/b" as option to set the base address, the option parsing uses "/p" to scanf() port_override

Chipset Compatibility

Tested with the same image on each motherboard with the same PicoGUS setting.
[OS]

  • DOS 6.22

[PicoGUS]

  • FW v0.6.1
  • IRQ 5
  • DMA 1
  • PCB v1.1.1

[Test Games]
DOOM/DUKE3D/DECENT/HERETIC/COMMAND AND CONQUER

[Socket | Chipset | Motherboard | Notes]
[Perfect]

[Works With Issues]

[Does Not Work]

  • Socket 5 - PCISet SB82371FB - UNKNOWN - PGUSINIT causes hang

RGB LED issue for YD-RP2040 VCC-GND Studio Board

Hi! I apologize in advance if this is a repeat question.
There is a cheap chinese RP2040 board developed by VCC-GND Studio known as "YD-RP2040":
e.g.: https://makerselectronics.com/product/yd-rp2040-vcc-gnd-studio-microcontroller-board
This board contains the RGB WS2812 LED controlled by GP23. When using this board with picogus firmware, this RGB LED is always on after the first sound output:
gQ4Ac80
Is there any way to fix this issue in future firmware? Thank you in advance!

Comparison of PicoGUS vs. a real GUS "May be a little higher pitch on picoGus"

@JorgeCarvalho_web_dev left "May be a little higher pitch on picoGus" message under https://www.youtube.com/watch?v=UJcPF2gYWE4 and I think I also heard this difference. I wrote a comment:

"spectrogram would be ideal for quick glance testing, Linux Baudline produces spectacular results and is free. Audacity can also genereate them, so does Jaaa, sox, etc etc. Pretty much what people doing software defined radio are using."

but then I found something absolutely perfect for the job: https://junkerhq.net/MDFourier/ "MDFourier is an open source software solution created to compare audio signatures and generate a series of graphs that show how they differ."

Compatibility list

New entries:

  • HardBall 5 // Fully compatible
  • Star Wars Rebel Assault // No sound
  • HardBall 4 // Fully compatible (slowdowns)
  • Asterix & Obelix // Fully compatible

Weird stuff:

  • ROTT // crashes after 5 minutes when using PicoGus for both music and sfx. Music alone works no problem.
  • Wacky Wheels // same as ROTT where the game crashes when using PicoGus for both music and sfx. Just like ROTT that is also an Apogee game, PicoGus works great for music alone.
  • Doom // I had to download the packages from Vogons to have Ultrinit working (v2.31). It was the only way to get music working.

Specs:
P1 233 MMX
430TX Mobo
PicoGus P240, D3, I7
SB32 P220,D1,H5, I5

When flashing from PG-GUS.UF2 0.6.1, I get: ERROR: Card is not in firmware writing mode?

Hi, thank you for this very cool project!

When I try to flash from PG-GUS.UF2 0.6.1 to any different firmware in DOS, I get "Programming........ ERROR: Card is not in firmware writing mode?" and after that the card is "bricked". If I run pgusinit again, I get: "ERROR: no PicoGUS detected!"

If I copy a firmware from USB that is not PG-GUS 0.6.1, flashing from firmware to firmware works from DOS without any problems, unless it is PG-GUS.UF2 0.6.1...

Can you please take a look? Thanks.

Compatibility Report: PicoPower Redwood2 (PT86C718A2-B) Chipset

This chipset is used on some 486 SBCs. Not sure if anyone is working on or has considered working on a PC/104 version of the PicoGUS, but this info could be useful if so.

Fully compatible with everything i tried from the compatible software list (1 demo in GUS mode, 2 games in GUS mode, 1 game in adlib mode, 2 games in CMS mode). Don't have any MIDI devices to test. Only issue to report is notes will hang upon reboot (GUS, adlib, and CMS mode). Did not have this issue on 430VX chipset MB.

Let me know if you want me to test anything specific on this chipset.

-Chris

LSI/Headland HTK340 support

Not an issue, but you can add the LSI/Headland HTK340 chipset to the list of compatible chipsets. This is a socket 3 486 chipset.

The FX sound is not coming out.

Hello!
I have finally completed your wonderful project by myself.
Although there was a minor issue during production, I was able to resolve it successfully.
Instead of using the 74CB3T3245PWR, I used the 74LVC244, and the card booted up well.

The card is recognized well in pgusinit and sounds great in adlib mode.
However, when I run Duke Nukem or Doom in GUS mode, the music plays well, but the FX sound doesn't come out.

Do you have any advice?
I've tried various jumper settings and experimented with different computers, but the symptoms are the same.
I also tried different settings such as "set ultrast=240,3,3,7" after using "set ultrast=240,1,1,5,5" (and, of course, I set the jumper on the board accordingly)."

Compatibility Report: Intel i430NX, Intergraph TD-30 (Dual Socket 5)

This board is very much an edge case, given that it has dual CPU mode, limited IRQs (due to the sheer number of onboard devices, this was not a cheap system), and an onboard Sound Blaster Vibra 16 competing with the classic IRQ 5/DMA 1 combo. This took a while, but once I gave the sound card DMA 3 properly everything began to work. Unfortunately "two jumpers for DMA 3" wasn't explained too well as I was thinking it worked like SCSI "add the number up" jumpers.

Anyways Duke Nukem 3d, Crystal Dream 2, Doom 1/2, and Xaos and Xaos 2 work just fine. The Windows 95 drivers reported an IRQ conflict with the onboard Vibra 16, but I will try to mess with that later to see if I can give it the right IRQ/DMA combo.

Screen tearing using GUS music in Tyrian 2000

When using GUS music mode in Tyrian 2000 (which requires loading Ultramid) I encounter screen tearing that is not present in any other playback mode. Can anyone verify if this occurs on a real GUS?

486DX4/100 16MB RAM, using SB16 for digital audio. CLGD5428 integrated 1MB video. MS-DOS 6.22 as well as PC-DOS 2000. PicoGUS on latest (as of today) firmware.

The game is still perfectly playable.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.