VOGONS


Reply 1240 of 1404, by polpo

User metadata
Rank Member
Rank
Member
digger wrote on 2024-12-02, 16:28:

If I'm not mistaken, multiple devices on the same ISA card could share an IRQ, but it would have to be handled properly both device-side and driver-side. Perhaps CuteMouse could be enhanced to support something like that on this card?

That's certainly possible – PicoMEM does it. Its pmmouse driver is an enhanced version of CuteMouse that supports multiplexed interrupts on a single IRQ.

Reply 1241 of 1404, by digger

User metadata
Rank Oldbie
Rank
Oldbie
polpo wrote on 2024-12-02, 17:29:
digger wrote on 2024-12-02, 16:28:

If I'm not mistaken, multiple devices on the same ISA card could share an IRQ, but it would have to be handled properly both device-side and driver-side. Perhaps CuteMouse could be enhanced to support something like that on this card?

That's certainly possible – PicoMEM does it. Its pmmouse driver is an enhanced version of CuteMouse that supports multiplexed interrupts on a single IRQ.

That's cool, and good to know! Thanks.

It would be nice to see such functionality upstreamed into CuteMouse. But then again, that project hasn't seen an official release in over a decade, has it? Any active general forks being maintained that pmmouse could be merged into?

Reply 1242 of 1404, by boggit

User metadata
Rank Newbie
Rank
Newbie

No matter what I do, I cannot get any of my joypads (including a brand name PS4 dualshock) to work with my picogus. I have disconnected everything else, including my serial mouse, but no luck.

Does the gamepad use the same IRQ as the soundcard?

EDIT: I am using a PicoGus 2.0, with pgusinit set to /joy 1. My system is a 286-16mhz with 4mb RAM. The only other ISA cards slotted in are a) an EGA graphics card and b) an FDC/IDE controller (with all COM/LPT ports turned off via jumpers).

Last edited by boggit on 2024-12-03, 08:28. Edited 1 time in total.

Reply 1243 of 1404, by Imperious

User metadata
Rank Oldbie
Rank
Oldbie

I posted some incorrect information previously. Apparently the joystick emulation is disabled by default. Only Version 2 Picogus supports these controllers without having to used a powered hub.

Atari 2600, TI994a, Vic20, c64, ZX Spectrum 128, Amstrad CPC464, Atari 65XE, Commodore Plus/4, Amiga 500
PC's from XT 8088, 486, Pentium MMX, K6, Athlon, P3, P4, 775, to current Ryzen 5600x.

Reply 1244 of 1404, by boggit

User metadata
Rank Newbie
Rank
Newbie
boggit wrote on 2024-12-02, 23:41:

No matter what I do, I cannot get any of my joypads (including a brand name PS4 dualshock) to work with my picogus. I have disconnected everything else, including my serial mouse, but no luck.

Does the gamepad use the same IRQ as the soundcard?

EDIT: I am using a PicoGus 2.0, with pgusinit set to /joy 1. My system is a 286-16mhz with 4mb RAM. The only other ISA cards slotted in are a) an EGA graphics card and b) an FDC/IDE controller (with all COM/LPT ports turned off via jumpers).

Also this might be a stupid question but can I use MPU 401 without a daughterboard connected to the PicoGUS card?

Also, when USB joystick is turned on, is it COM1 that is used for that? Would the joystick be detectable in programs like CheckIt Pro and Norton Sysinfo?

Reply 1245 of 1404, by weedeewee

User metadata
Rank l33t
Rank
l33t

just an FYI for all the joystick wonderers...

The pc gameport does not utilize any hardware interrupt. Only resource used is a small IO range, mostly 0x200,1-7,8 or something.

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port

Reply 1246 of 1404, by boggit

User metadata
Rank Newbie
Rank
Newbie
weedeewee wrote on 2024-12-03, 16:16:

just an FYI for all the joystick wonderers...

The pc gameport does not utilize any hardware interrupt. Only resource used is a small IO range, mostly 0x200,1-7,8 or something.

Yup, it shows up as GAME ADAPTER at 0x200 when looking through the I/O adresses in CheckIt. I just cannot get any game to work with any of my gamepads.

Reply 1247 of 1404, by polpo

User metadata
Rank Member
Rank
Member
boggit wrote on 2024-12-03, 17:54:
weedeewee wrote on 2024-12-03, 16:16:

just an FYI for all the joystick wonderers...

The pc gameport does not utilize any hardware interrupt. Only resource used is a small IO range, mostly 0x200,1-7,8 or something.

Yup, it shows up as GAME ADAPTER at 0x200 when looking through the I/O adresses in CheckIt. I just cannot get any game to work with any of my gamepads.

You mention having a sound card in the system - if it has its own game port you will need to disable it (on most cards it can be disabled). The PicoGUS game port emulation cannot coexist with another game port in the system.

Reply 1248 of 1404, by boggit

User metadata
Rank Newbie
Rank
Newbie
polpo wrote on 2024-12-03, 17:59:
boggit wrote on 2024-12-03, 17:54:
weedeewee wrote on 2024-12-03, 16:16:

just an FYI for all the joystick wonderers...

The pc gameport does not utilize any hardware interrupt. Only resource used is a small IO range, mostly 0x200,1-7,8 or something.

Yup, it shows up as GAME ADAPTER at 0x200 when looking through the I/O adresses in CheckIt. I just cannot get any game to work with any of my gamepads.

You mention having a sound card in the system - if it has its own game port you will need to disable it (on most cards it can be disabled). The PicoGUS game port emulation cannot coexist with another game port in the system.

No, the only sound card I'm using is PicoGUS. I had a sound card with game port previously, but replaced it with PicoGUS when the latter arrived in the mail.

Reply 1249 of 1404, by boggit

User metadata
Rank Newbie
Rank
Newbie

I am really at a loss as to what the joystick issue might be.

• I am certain that at least one of the joypads tested is fully compatible (a brand-name DualShock 4).

• I have set joy /1 and pgusinit lists USB Joystick as enabled.

• Not only are there no ”real” game ports connected to my motherboard – I have also disabled all other COM ports etc to ensure that there is no interference.

• I have disabled fast I/O bus operations in CMOS, as per the general recommendations for PicoGUS.

• In CheckIt Pro, GAME ADAPTER is listed at 0x200 in the I/O address list.

Any suggestions or hypotheses?

Reply 1250 of 1404, by weedeewee

User metadata
Rank l33t
Rank
l33t
polpo wrote on 2024-12-03, 17:59:
boggit wrote on 2024-12-03, 17:54:
weedeewee wrote on 2024-12-03, 16:16:

just an FYI for all the joystick wonderers...

The pc gameport does not utilize any hardware interrupt. Only resource used is a small IO range, mostly 0x200,1-7,8 or something.

Yup, it shows up as GAME ADAPTER at 0x200 when looking through the I/O adresses in CheckIt. I just cannot get any game to work with any of my gamepads.

You mention having a sound card in the system - if it has its own game port you will need to disable it (on most cards it can be disabled). The PicoGUS game port emulation cannot coexist with another game port in the system.

Is there some way to query the picogus about the status of attached usb devices ? like retrieve the usb device identification data of a joystick or mouse ?

edit: dangit

Last edited by weedeewee on 2024-12-04, 18:52. Edited 1 time in total.

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port

Reply 1251 of 1404, by boggit

User metadata
Rank Newbie
Rank
Newbie
weedeewee wrote on 2024-12-04, 16:21:
polpo wrote on 2024-12-03, 17:59:
boggit wrote on 2024-12-03, 17:54:

Yup, it shows up as GAME ADAPTER at 0x200 when looking through the I/O adresses in CheckIt. I just cannot get any game to work with any of my gamepads.

You mention having a sound card in the system - if it has its own game port you will need to disable it (on most cards it can be disabled). The PicoGUS game port emulation cannot coexist with another game port in the system.

Is there some way to query the picogus about the status of attached usb devices ? like retrieve the data of a joystick or mouse ?

Good question. If I run pgusinit it will say that USB Joystick mode is active. Apart from that 🤷🏻‍♂️

Reply 1252 of 1404, by polpo

User metadata
Rank Member
Rank
Member

It's on my very long list of things to do to add a list of detected USB devices that are usable, specifically to help troubleshoot in this situation.

Reply 1253 of 1404, by polpo

User metadata
Rank Member
Rank
Member

PicoGUS Firmware v2.2.0 is released: https://github.com/polpo/picogus/releases/tag/v2.2.0

New features/changes

NE2000 emulation/WiFi

Please note that this mode is not supported on PicoGUS 2.0! It needs a v1.1, v1.2, or Femto version of the PicoGUS that takes a Raspberry Pi Pico and requires a Pico W! I made this mode mainly just so I could use WiFi on my Pocket386 with a Femto card plugged into it. At least for now, NE2K mode comes in its own separate firmware file (pg-ne2k.uf2) and no other emulation is enabled when this firmware is loaded. Due to this limitation and the fact that the PCB design of the PicoGUS 1.x is not ideal for WiFI reception, consider this mode just a bit of a nice bonus. Config options have been added to pgusinit for NE2000 and WiFi SSID/password settings.

Fixes

Sound Blaster 2.0 emulation

  • Fixes detection in Windows 9x, allowing SB mode to work in Windows 9x. Thanks to Ian Hanschen (@furan) for contributing the fix.
  • Fixes detection in Tyrian and Dig-It! Thanks again to Ian Hanschen for the fix.
  • Fixes detection in STMIK-based demos (Mental Surgery by Future Crew, SX by Substance, Min Monitor Briner by Syntax Error, probably others)

GUS emulation

  • Fixes intelligent mode MIDI buffer overrun and slow MIDI output in GUS mode. Usually showed up as an "Exc. Checksum Error" on the MT-32 screen.

General

  • Fixes issue with setting port numbers less than 0x100 or ending in 00. This fixes common port settings like 0c0 for Tandy or 0x300 for NE2000
  • Refactors timers to be less jittery; shouldn't be noticeable in practice but may fix some GUS emulation edge cases.

Reply 1254 of 1404, by polpo

User metadata
Rank Member
Rank
Member

Future development plans in rough priority order:

  • USB refactor, adding USB device status in pgusinit and probably using https://github.com/RobertDaleSmith/USBRetro to support more joystick devices
  • SB16 "lite" mode (aka SB16 with OPL2 - since I've been unable to emulate OPL3 on the RP2040, the idea is that you use SB16 DSP for 16-bit stereo wave output and use MPU for MIDI output)
  • More system compatibility fixes - Compaq Portable is the one on top of mind

Reply 1255 of 1404, by zuldan

User metadata
Rank Oldbie
Rank
Oldbie
polpo wrote on 2024-12-09, 04:35:
Future development plans in rough priority order: […]
Show full quote

Future development plans in rough priority order:

  • USB refactor, adding USB device status in pgusinit and probably using https://github.com/RobertDaleSmith/USBRetro to support more joystick devices
  • SB16 "lite" mode (aka SB16 with OPL2 - since I've been unable to emulate OPL3 on the RP2040, the idea is that you use SB16 DSP for 16-bit stereo wave output and use MPU for MIDI output)
  • More system compatibility fixes - Compaq Portable is the one on top of mind

Sounds great! Just purchased my 5th PicoGUS from JCM. I’m getting them installed in all my machines. They are so useful.

My dream would be able to plug a KVM usb cable into the PicoGUS to use the KVMs keyboard and mouse but also for the MPU401 to function as well. I have 5 machines with din keyboards and serial mouses. It’s a nightmare having all the keyboard and mouses stacked on top of each other. One keyboard and mouse to manage 5 retro machines would be amazing (I’m sure many others would want this too). What’s the chance of PicoGUS supporting keyboard and mouse commands through the single usb port?

Last edited by zuldan on 2024-12-09, 08:07. Edited 1 time in total.

Reply 1256 of 1404, by appiah4

User metadata
Rank l33t++
Rank
l33t++
polpo wrote on 2024-12-09, 04:27:

NE2000 emulation/WiFi

Please note that this mode is not supported on PicoGUS 2.0! It needs a v1.1, v1.2, or Femto version of the PicoGUS that takes a Raspberry Pi Pico and requires a Pico W! I made this mode mainly just so I could use WiFi on my Pocket386 with a Femto card plugged into it. At least for now, NE2K mode comes in its own separate firmware file (pg-ne2k.uf2) and no other emulation is enabled when this firmware is loaded. Due to this limitation and the fact that the PCB design of the PicoGUS 1.x is not ideal for WiFI reception, consider this mode just a bit of a nice bonus. Config options have been added to pgusinit for NE2000 and WiFi SSID/password settings.

I have no idea how well WiFi reception from inside my 486 case would work but regardless I am very grateful for this solution, as it will free me from having to use a pci nic and wifi bridge to transfer files. I will order a pico w and test this out with my 1.1 and give feedback, hopefully soon. I really appreciate this.

Reply 1257 of 1404, by Delphius

User metadata
Rank Member
Rank
Member
polpo wrote on 2024-12-09, 04:27:
PicoGUS Firmware v2.2.0 is released: https://github.com/polpo/picogus/releases/tag/v2.2.0 […]
Show full quote

PicoGUS Firmware v2.2.0 is released: https://github.com/polpo/picogus/releases/tag/v2.2.0

New features/changes

NE2000 emulation/WiFi

Please note that this mode is not supported on PicoGUS 2.0! It needs a v1.1, v1.2, or Femto version of the PicoGUS that takes a Raspberry Pi Pico and requires a Pico W! I made this mode mainly just so I could use WiFi on my Pocket386 with a Femto card plugged into it. At least for now, NE2K mode comes in its own separate firmware file (pg-ne2k.uf2) and no other emulation is enabled when this firmware is loaded. Due to this limitation and the fact that the PCB design of the PicoGUS 1.x is not ideal for WiFI reception, consider this mode just a bit of a nice bonus. Config options have been added to pgusinit for NE2000 and WiFi SSID/password settings.

Fixes

Sound Blaster 2.0 emulation

  • Fixes detection in Windows 9x, allowing SB mode to work in Windows 9x. Thanks to Ian Hanschen (@furan) for contributing the fix.
  • Fixes detection in Tyrian and Dig-It! Thanks again to Ian Hanschen for the fix.
  • Fixes detection in STMIK-based demos (Mental Surgery by Future Crew, SX by Substance, Min Monitor Briner by Syntax Error, probably others)

GUS emulation

  • Fixes intelligent mode MIDI buffer overrun and slow MIDI output in GUS mode. Usually showed up as an "Exc. Checksum Error" on the MT-32 screen.

General

  • Fixes issue with setting port numbers less than 0x100 or ending in 00. This fixes common port settings like 0c0 for Tandy or 0x300 for NE2000
  • Refactors timers to be less jittery; shouldn't be noticeable in practice but may fix some GUS emulation edge cases.

I think the NE2000 idea is very cool idea, thanks! I am curious if you can set a picogus in the NE2000 mode firmware, while also allowing a second picogus to do all of the regular sound tasks? Maybe a separate card can be developed for full networking working tasks and even add ethernet capabilities?

Reply 1258 of 1404, by polpo

User metadata
Rank Member
Rank
Member
Delphius wrote on 2024-12-09, 14:15:

I think the NE2000 idea is very cool idea, thanks! I am curious if you can set a picogus in the NE2000 mode firmware, while also allowing a second picogus to do all of the regular sound tasks? Maybe a separate card can be developed for full networking working tasks and even add ethernet capabilities?

It'd require implementing a "ISA PnP-lite" type isolation protocol in pgusinit to configure multiple cards separately. I have some ideas and have bounced them back and forth with others like Kaede and wbcbz7 but we haven't solidified on anything. If you're going to buy another card anyway, maybe a PicoMEM would be better option and it'd work today since it has its own configuration method. Both it and PicoGUS share the same underlying NE2000 emulation code, written by yyzkevin.

Reply 1259 of 1404, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie
polpo wrote on 2024-12-09, 04:35:
Future development plans in rough priority order: […]
Show full quote

Future development plans in rough priority order:

  • USB refactor, adding USB device status in pgusinit and probably using https://github.com/RobertDaleSmith/USBRetro to support more joystick devices
  • SB16 "lite" mode (aka SB16 with OPL2 - since I've been unable to emulate OPL3 on the RP2040, the idea is that you use SB16 DSP for 16-bit stereo wave output and use MPU for MIDI output)
  • More system compatibility fixes - Compaq Portable is the one on top of mind

Congrats, what an awesome release! 👍
Seeing as DOS gaming is incredibly well served by the GUS mode already - the SB16 mode is most exciting for me personally for Win98 usage, and the lack of OPL3 there isn't a concern at all.
However, circling back to our chat about Win98 and the possibility of a WSS mode - how would WSS stack up against SB16 as you see it, both in terms of ease of implementation as well as capability, compatibility and sound quality? 😀 Thx!

TinyLlama 3
ITX-Llama motherboard
TinyLlama SBC