VOGONS


Reply 1020 of 1397, by badmojo

User metadata
Rank l33t
Rank
l33t
appiah4 wrote on 2024-07-04, 12:21:

Well, I still think it's the 75MHz that is causing the issue. Can you try the system at 66MHz?

I'll see if I can access the jumpers without pulling it all apart, it would be interesting to see what happens.

Shreddoc wrote:

What's the exact version of Ultima 7 you are using? Part 1? Floppy/CDROM/?

That's a good question! It's part 1, and it's a version that came with the 'Ultima compilation' CD pack I own, so I assume it's the CD version? But I have patched it with a couple of different patches, including the speed limiter that's available on these forums. I should probably try a non-patched version but again the McCake works fine with this version when mounted on my sound card, and it has also worked occasionally with the PicoGUS. But yes I'd be interested to hear if you had any trouble with it.

I need to get more scientific about my testing, I've been changing too many things at once and not taking notes.

Life? Don't talk to me about life.

Reply 1021 of 1397, by Shreddoc

User metadata
Rank Oldbie
Rank
Oldbie
badmojo wrote on 2024-07-04, 22:50:
I'll see if I can access the jumpers without pulling it all apart, it would be interesting to see what happens. […]
Show full quote
appiah4 wrote on 2024-07-04, 12:21:

Well, I still think it's the 75MHz that is causing the issue. Can you try the system at 66MHz?

I'll see if I can access the jumpers without pulling it all apart, it would be interesting to see what happens.

Shreddoc wrote:

What's the exact version of Ultima 7 you are using? Part 1? Floppy/CDROM/?

That's a good question! It's part 1, and it's a version that came with the 'Ultima compilation' CD pack I own, so I assume it's the CD version? But I have patched it with a couple of different patches, including the speed limiter that's available on these forums. I should probably try a non-patched version but again the McCake works fine with this version when mounted on my sound card, and it has also worked occasionally with the PicoGUS. But yes I'd be interested to hear if you had any trouble with it.

I need to get more scientific about my testing, I've been changing too many things at once and not taking notes.

Using my system which - as described earlier - has some similarities (and some differences) to yours, I did a test of the intro and title screen. Using the version the internet knows as "Ultima Collection 1998 EA Origin CD". Its version of U7 Part 1 is just under 20MB installed. For the record I did also try with the 'u7bg.hack' patches applied, however they made no difference to the music either way, here. I don't know the game or it's music well. So this is not an overly detailed analysis. But it sounded basically as I'd expect. Meaning, I didn't notice any weird notes or strange instruments majorly jumping out at me.

Pretty sure you know the following already, but just to tick off some trivial boxes, a couple minor points -

  • there are reports that 'old' MT-32 has issues with this game;
  • the game SYSEX's some custom instruments to the MT-32, e.g. right after you run the game, and somehow interrupting or messing with the unit while this was happening would definitely result in 'off' music;
  • by that same mechanism, with the MT-32 there is always a theoretical chance that prior-played games can affect the unit until next reset.

Interested to hear what your further testing reveals, and if the problem persists then a recording would be good data if one can be obtained.

Supporter of PicoGUS, PicoMEM, mt32-pi, WavetablePi, Throttle Blaster, Voltage Blaster, GBS-Control, GP2040-CE, RetroNAS.

Reply 1022 of 1397, by badmojo

User metadata
Rank l33t
Rank
l33t
Shreddoc wrote on 2024-07-05, 08:23:

Interested to hear what your further testing reveals, and if the problem persists then a recording would be good data if one can be obtained.

Thanks for taking the time to do some testing, much appreciated. I didn't know about the issue with the old MT-32, that's good to know.

I rushed home from work and did some more testing. Initially it was working perfectly and consistently, but then of course I decided to try a CM32L ROM (was previously using v1.07) and started having issues again. I noticed this time that 'exc checksum error' was being displayed on the McCake's screen, which apparently is speed related (according to the internets). Slowing the machine down made no difference, but when I put the McCake onto my sound card's MPU-401 I didn't see that error, and everything worked perfectly.

I grew weary of all the random missbehaviour with the McCake by this point so wondered if I could just leave the McCake on the sound card and use the PicoGUS as an MPU-401 for my X2GS - the original plan was to have both of these running. This seemed to work OK (using different ports for each obviously), but the other issue is that the wavetable output of the PicoGUS (or my one anyway) is very low despite being at 100% volume. This made mixing it all together at workable levels a challenge.

Life? Don't talk to me about life.

Reply 1023 of 1397, by badmojo

User metadata
Rank l33t
Rank
l33t

I think I have the McCake (great product, terrible name!) working consistently with the PicoGUS's MPU-401 implementation now, but the only thing I can point to as the fix was moving the PicoGUS to a different ISA slot. I've never subscribed to that as being a solution to anything so I'm not totally convinced, but I've tried a handful of games without issue, including of course Ultima 7.

I'm feeling a bit like the boy who cried wolf after all of that but there was definitely something going on. Thanks to all who replied.

@appiah4 I never investigated your FSB theory and I don't know if my "fix" indicates anything in relation to ISA clock issues.

Life? Don't talk to me about life.

Reply 1024 of 1397, by polpo

User metadata
Rank Member
Rank
Member
badmojo wrote on 2024-07-07, 23:17:

I think I have the McCake (great product, terrible name!) working consistently with the PicoGUS's MPU-401 implementation now, but the only thing I can point to as the fix was moving the PicoGUS to a different ISA slot. I've never subscribed to that as being a solution to anything so I'm not totally convinced, but I've tried a handful of games without issue, including of course Ultima 7.

I'm feeling a bit like the boy who cried wolf after all of that but there was definitely something going on. Thanks to all who replied.

@appiah4 I never investigated your FSB theory and I don't know if my "fix" indicates anything in relation to ISA clock issues.

Ok, so I almost mentioned this because I noticed this strange line in your board's manual and I thought it was odd: "FOR 5V CMOS ISA CARD, PLS insert in Slot5" with an illustration of the board the ISA slot on the edge of the board circled. I'm curious if your fixing it meant putting the PicoGUS in that slot, or taking it out of it, or if that slot wasn't involved at all!

Reply 1025 of 1397, by badmojo

User metadata
Rank l33t
Rank
l33t
polpo wrote on 2024-07-07, 23:59:

Ok, so I almost mentioned this because I noticed this strange line in your board's manual and I thought it was odd: "FOR 5V CMOS ISA CARD, PLS insert in Slot5" with an illustration of the board the ISA slot on the edge of the board circled. I'm curious if your fixing it meant putting the PicoGUS in that slot, or taking it out of it, or if that slot wasn't involved at all!

Ha yes I moved it into the slot on the outer edge (Slot5 in the manual) so that might be in the mix. What does that mean do you think? PicoGUS needs more juice than the other slots could give it?

Life? Don't talk to me about life.

Reply 1026 of 1397, by badmojo

User metadata
Rank l33t
Rank
l33t

Well I gave it a good old test last night and it was all working like a charm, several games over the course of a couple of hours. But then of course I put the lid back on the PC and tidied everything up - not working again. Diabolical!

This is what "not working" looks like: https://streamable.com/cj7t8q

- I pulled it all out and cleaned the hell out of the connectors: still not working.
- I reflashed the MPU-401 ROM: still not working.
- I tried with and without the /s 'sysex delay' option: still not working.
- I messed around with MT32-PI.exe, setting the McCake to MT-32 mode, resetting: working again, for now.

So I dunno, this setup seems flakey on my machine.

BTW @appiah4 I tried a 66MHz FSB, no difference sadly.

Life? Don't talk to me about life.

Reply 1027 of 1397, by appiah4

User metadata
Rank l33t++
Rank
l33t++

Sorry to hear man. Have you considered trying some other MT-32 firmwares in your McCake? Maybe the later MT-32 firmware or the CM-32 firmware instead?

Reply 1028 of 1397, by badmojo

User metadata
Rank l33t
Rank
l33t
appiah4 wrote on 2024-07-09, 06:09:

Sorry to hear man. Have you considered trying some other MT-32 firmwares in your McCake? Maybe the later MT-32 firmware or the CM-32 firmware instead?

Thanks mate but worry not, I've been having a great time playing with this 😁

Yes I've tried different Roland firmwares too, no difference. I've noticed that it has issues with my X2GS too so that's the last straw I think, time to accept that the PicoGUS isn't for me. I've had a beer for courage and ordered a PCMIDI card.

Thanks for all the help guys 👍

Life? Don't talk to me about life.

Reply 1029 of 1397, by polpo

User metadata
Rank Member
Rank
Member
badmojo wrote on 2024-07-09, 07:30:

Thanks mate but worry not, I've been having a great time playing with this 😁

Yes I've tried different Roland firmwares too, no difference. I've noticed that it has issues with my X2GS too so that's the last straw I think, time to accept that the PicoGUS isn't for me. I've had a beer for courage and ordered a PCMIDI card.

Thanks for all the help guys 👍

This is the first time I've seen MPU mode not working for someone, so that's unfortunate. Hopefully you can use it in another system at some point. That note in the motherboard manual about needing to use Slot 5 is interesting which makes me wonder if this board has some kind of weirdness with ISA voltages. If you purchased from me, I can send you a replacement card to see if that helps you out. I've DMed you.

Reply 1030 of 1397, by polpo

User metadata
Rank Member
Rank
Member

PicoGUS firmware v2.0.0 is released, available at https://github.com/polpo/picogus/releases/tag/v2.0.0. This is a pretty major overhaul of how the card works, so strap in...

New features/changes

Serial mouse emulation

Now you can use a USB mouse as a serial mouse on your PC. Features a configurable report rate defaulting to 60Hz so the emulated serial mouse is much smoother and more responsive than a real serial mouse. Also supports configurable sensitivity and protocol support, including Microsoft, Logitech, Mouse Systems, and Intellimouse with wheel support. Note that being a serial port, this does use an IRQ so the IRQ jumper on the PicoGUS must be set to IRQ 4 or 3 depending on which serial port is configured, or use a mouse driver like ctmouse that can use a custom IRQ. Serial mouse can be emulated simultaneously with sound card modes that do not require IRQ such as AdLib, CMS, and Tandy (MPU coming in future firmware for games that don't need MPU IRQ).

Thanks to Artem Vasilev (wbcbz7) for implementing mouse and 8250 UART emulation.

"Multifw" - all modes in one firmware

All emulation modes (GUS, SB, MPU, etc.) are now contained within the same firmware. This means switching between modes is much faster than before, taking 1-2 seconds on average. Switching also no longer involves writing new firmware to the card's flash, alleviating flash wear concerns (each sector on the flash is rated for at least 100,000 cycles, so there wasn't much to worry about, but it's still nice for peace of mind).

Many thanks to Jeroen Taverne for developing the original proof of concept and smymm for implementing it within the PicoGUS codebase.

Card settings can now be saved in flash

Once you're satisfied with your PicoGUS's settings, they can now be saved in the card's flash. Saved settings persist across reboots or power cycle without needing to run pgusinit each boot.

For example, when using serial mouse emulation, some BIOSes like MRBIOS need to see the emulated serial port right at boot. Also as a bonus if you want to use emulation modes outside of DOS, settings will apply in those other operating systems. Want to use GUS in OS/2 or Linux, or serial mouse when setting up NeXTStep? This will help!

Overhaul of pgusinit

To support the above new features, adding more options to pgusinit meant I ran out of single letters for its various switches that make mnemonic sense. I've moved to longer yet hopefully still fast to type names for each of the switches. For example, /f (flash firmware) is now /flash.

Also, each pgusinit option now persists between invocations of pgusinit. Previously, most but not all options had to be given in the same invocation of pgusinit. Each option that would enable a feature (e.g. joystick support) has been turned into an on/off option so it can be turned off as well as on.

Running pgusinit by itself will now show all the currently applied settings for the current firmware mode.

See the pgusinit README for more details on running pgusinit.

Fixes

Sound Blaster 2.0:

Added speaker on/off commands
Greatly increased quality of output in "Direct DAC" mode

OPL2 emulation

Fixed "missing notes" issue, most commonly heard in Prince of Persia. Thank you to TerryFi for discovering the issue and coming up with a preliminary fix, then incorporating the final fix from the upstream emu8950 repository.

Reply 1031 of 1397, by Delphius

User metadata
Rank Member
Rank
Member
polpo wrote on 2024-07-09, 16:02:
PicoGUS firmware v2.0.0 is released, available at https://github.com/polpo/picogus/releases/tag/v2.0.0. This is a pretty major o […]
Show full quote

PicoGUS firmware v2.0.0 is released, available at https://github.com/polpo/picogus/releases/tag/v2.0.0. This is a pretty major overhaul of how the card works, so strap in...

New features/changes

Serial mouse emulation

Now you can use a USB mouse as a serial mouse on your PC. Features a configurable report rate defaulting to 60Hz so the emulated serial mouse is much smoother and more responsive than a real serial mouse. Also supports configurable sensitivity and protocol support, including Microsoft, Logitech, Mouse Systems, and Intellimouse with wheel support. Note that being a serial port, this does use an IRQ so the IRQ jumper on the PicoGUS must be set to IRQ 4 or 3 depending on which serial port is configured, or use a mouse driver like ctmouse that can use a custom IRQ. Serial mouse can be emulated simultaneously with sound card modes that do not require IRQ such as AdLib, CMS, and Tandy (MPU coming in future firmware for games that don't need MPU IRQ).

Thanks to Artem Vasilev (wbcbz7) for implementing mouse and 8250 UART emulation.

"Multifw" - all modes in one firmware

All emulation modes (GUS, SB, MPU, etc.) are now contained within the same firmware. This means switching between modes is much faster than before, taking 1-2 seconds on average. Switching also no longer involves writing new firmware to the card's flash, alleviating flash wear concerns (each sector on the flash is rated for at least 100,000 cycles, so there wasn't much to worry about, but it's still nice for peace of mind).

Many thanks to Jeroen Taverne for developing the original proof of concept and smymm for implementing it within the PicoGUS codebase.

Card settings can now be saved in flash

Once you're satisfied with your PicoGUS's settings, they can now be saved in the card's flash. Saved settings persist across reboots or power cycle without needing to run pgusinit each boot.

For example, when using serial mouse emulation, some BIOSes like MRBIOS need to see the emulated serial port right at boot. Also as a bonus if you want to use emulation modes outside of DOS, settings will apply in those other operating systems. Want to use GUS in OS/2 or Linux, or serial mouse when setting up NeXTStep? This will help!

Overhaul of pgusinit

To support the above new features, adding more options to pgusinit meant I ran out of single letters for its various switches that make mnemonic sense. I've moved to longer yet hopefully still fast to type names for each of the switches. For example, /f (flash firmware) is now /flash.

Also, each pgusinit option now persists between invocations of pgusinit. Previously, most but not all options had to be given in the same invocation of pgusinit. Each option that would enable a feature (e.g. joystick support) has been turned into an on/off option so it can be turned off as well as on.

Running pgusinit by itself will now show all the currently applied settings for the current firmware mode.

See the pgusinit README for more details on running pgusinit.

Fixes

Sound Blaster 2.0:

Added speaker on/off commands
Greatly increased quality of output in "Direct DAC" mode

OPL2 emulation

Fixed "missing notes" issue, most commonly heard in Prince of Persia. Thank you to TerryFi for discovering the issue and coming up with a preliminary fix, then incorporating the final fix from the upstream emu8950 repository.

Played around with this firmware a bit last night. Awesome work from everyone involved! It is a little different to use but it is very nice having everything combined and the ability to save the settings! One thing that through me off at first was using GUS mode in a non standard address. I was using address 260h which is also how it was set in autoexec.bat. I don't remember having to set this port manually in pgusinit before, but with the new firmware I had to manually assign it when loading the mode to get GUS working again. Example `pgusinit /mode gus /gusport 260 /save` if I remember correctly. I think it gave me an error message at some point saying it wasn't defined in autoexec which through me off at first. Not a big deal, but just thought I would mention. Otherwise everything seems to be working as expected so far.

Reply 1032 of 1397, by Kekkula

User metadata
Rank Member
Rank
Member

Not actual picogus question but so insignificant that I don't want to start a new thread.
So I think that in my self made 1.2 board the dac is broken, while waiting for new to arrive from china, I tested mpu-401 part of the card.
Problem is I can't disable mpu interface on my ct2800 card and if i utilize it with unisound I get conflict and system hangs. I've tried removing P330 from autoexec.bat an running unisound with p0 option but always mpu gets initialized.
So question is what are good cards to use with picogus in mpu mode?

Reply 1033 of 1397, by MadMac_5

User metadata
Rank Member
Rank
Member
Kekkula wrote on 2024-07-10, 18:42:
Not actual picogus question but so insignificant that I don't want to start a new thread. So I think that in my self made 1.2 bo […]
Show full quote

Not actual picogus question but so insignificant that I don't want to start a new thread.
So I think that in my self made 1.2 board the dac is broken, while waiting for new to arrive from china, I tested mpu-401 part of the card.
Problem is I can't disable mpu interface on my ct2800 card and if i utilize it with unisound I get conflict and system hangs. I've tried removing P330 from autoexec.bat an running unisound with p0 option but always mpu gets initialized.
So question is what are good cards to use with picogus in mpu mode?

I use my PicoGUS as a MPU-401 with my AWE64, and I got around that issue by assigning port 320 to the PicoGUS. Then I set the game's General MIDI port to 320, and everything works just fine! For games that can't use 320, there's usually another free port address that I can set the PicoGUS to using pgusinit.

Reply 1035 of 1397, by appiah4

User metadata
Rank l33t++
Rank
l33t++

I installed the 2.0 firmware on my v1.1 card and it worked fine in GUS mode (2nd Reality) and SB2.0 mode (Doom), a big congrats to everyone involved in making it.

Reply 1037 of 1397, by polpo

User metadata
Rank Member
Rank
Member
Niphoria wrote on 2024-07-15, 00:20:

Does the PicoGUS support 2 Joysticks ? either through a usb hub or using 2 PicoGUS ?

Yes, you can use a USB hub to connect multiple joysticks, but the mapping will be the same on each controller (left analog stick and D-pad map to joystick 1, right analog stick maps to joystick 2). I want to support more custom mapping of joystick buttons and axes but that is a ways out if I am the one to do it.

Reply 1038 of 1397, by jasa1063

User metadata
Rank Oldbie
Rank
Oldbie

I just flashed the latest single image firmware. What a total breeze it is now to switch between different sound cards on the fly with no more need to reflash. I just love how things are progressing with this project. A year from now who knows what other innovations will be forthcoming. Keep up the great work!