PCem USB support

Support and general discussion.
Post Reply
User avatar
HamoodZX
Posts: 3
Joined: Fri 06 Sep, 2019 6:01 am

PCem USB support

Post by HamoodZX »

to allow controllers and network adapters including WiFi on windows 2000 and beyond
grommit2007
Posts: 43
Joined: Sat 22 Apr, 2017 3:26 pm

Re: PCem USB support

Post by grommit2007 »

There is USB support in PCem, however it does not extend to adding interfacing with actual host ports of the same type (the same thing applies to the parallel and serial ports as well). The USB support is present in the FIC VA-503+ motherboard and its VIA VT82C586B southbridge chipset, after installing Windows 95 OSR 2.5 for testing, in addition to the VIA 4-in-1 chipset drivers, as well as the official Microsoft USB Supplement for Windows 95 OSR2, the USB controller is detected and installed by Windows 95 (I haven't tested it in Windows 98 or later versions of Windows 9x, but I may test it in those operating systems at a later date)

I have been attempting to port over the USB code from the VIA southbridge (which to the best of my knowledge, was the first VIA southbridge to support USB, using the same standard as the Intel PIIX3 southbridge, which used UHCI 1.x) with modifications, to an emulation of the competing Intel PIIX3 southbridge (which I have been attempting to add to PCem) that is meant to be paired with the 430HX, 430VX and 440FX northbridges. (This was the first Intel southbridge to support USB).

I have attached several screenshots of the Windows 95 Device Manager showing the USB controller of the FIC VA-503+ motherboard as installed and working after the chipset drivers and the USB Supplement were installed, as well as a screeenshot of the BIOS settings menu showing that the USB controller was enabled.

In addition, I have also attached screenshots of the results of my attempt to add the PIIX3 emulation (which is basically a reworking of the already existing PIIX code with different PnP device identifiers, as well as some new, and changed register values in other aspects of the existing code).

The attempted addition of the PIIX3 southbridge was tested using the Shuttle HOT-557, the ASUS P/I P55T2P4, the ASUS P/I P55TVP4, and the EPoX P55-VA.

This means that in theory, it could be possible to add USB support (within the interfacing limits mentioned above) to all of the motherboards which use the 430HX and 430VX chipsets (PCem currently emulates the ASUS P/I P55T2P4, ASUS P/I P55TVP4, EPoX P55-VA and Shuttle HOT-557).
Attachments
PIIX3 implementation attempt on ASUS P/I P55TVP4 (Note the PIIX3 "7010" device ID of the IDE controller instead of the PIIX "1230" device ID).
PIIX3 implementation attempt on ASUS P/I P55TVP4 (Note the PIIX3 "7010" device ID of the IDE controller instead of the PIIX "1230" device ID).
Screenshot from 2020-07-18 02-34-40.png (10.34 KiB) Viewed 12337 times
PIIX3 implementation attempt on Shuttle HOT-557 (Note the PIIX3 "7010" device ID of the IDE controller instead of the PIIX "1230" device ID).
PIIX3 implementation attempt on Shuttle HOT-557 (Note the PIIX3 "7010" device ID of the IDE controller instead of the PIIX "1230" device ID).
Screenshot from 2020-07-18 02-18-07.png (10.34 KiB) Viewed 12337 times
FIC VA-503+ BIOS showing USB controller as enabled
FIC VA-503+ BIOS showing USB controller as enabled
Screenshot from 2020-07-18 02-06-40.png (14.17 KiB) Viewed 12337 times
Windows 95 on FIC VA-503+ showing USB controller as installed and working (IRQ assignments listing)
Windows 95 on FIC VA-503+ showing USB controller as installed and working (IRQ assignments listing)
Screenshot from 2020-07-16 13-26-05.png (12.08 KiB) Viewed 12337 times
Windows 95 on FIC VA-503+ showing USB controller as installed and working (Devices in system listing)
Windows 95 on FIC VA-503+ showing USB controller as installed and working (Devices in system listing)
Screenshot from 2020-07-16 13-25-24.png (11.35 KiB) Viewed 12337 times
PIIX3 implementation attempt on ASUS P/I P55T2P4 (Note the PIIX3 "7010" device ID of the IDE controller instead of the PIIX "1230" device ID).
PIIX3 implementation attempt on ASUS P/I P55T2P4 (Note the PIIX3 "7010" device ID of the IDE controller instead of the PIIX "1230" device ID).
Screenshot from 2020-07-18 01-59-24.png (10.3 KiB) Viewed 12337 times
Last edited by grommit2007 on Sat 18 Jul, 2020 6:29 pm, edited 1 time in total.
grommit2007
Posts: 43
Joined: Sat 22 Apr, 2017 3:26 pm

PCem USB support

Post by grommit2007 »

Additional screenshots:
Attachments
Current PIIX emulation on EPoX P55-VA (Note the PIIX "1230" device ID of the IDE controller instead of the PIIX3 "7010" device ID).
Current PIIX emulation on EPoX P55-VA (Note the PIIX "1230" device ID of the IDE controller instead of the PIIX3 "7010" device ID).
Screenshot from 2020-07-18 03-16-30.png (10.14 KiB) Viewed 12337 times
Current PIIX emulation on Shuttle HOT-557 (Note the PIIX "1230" device ID of the IDE controller instead of the PIIX3 "7010" device ID).
Current PIIX emulation on Shuttle HOT-557 (Note the PIIX "1230" device ID of the IDE controller instead of the PIIX3 "7010" device ID).
Screenshot from 2020-07-18 03-14-59.png (10.35 KiB) Viewed 12337 times
Current PIIX emulation on ASUS P/I P55TVP4 (Note the PIIX "1230" device ID of the IDE controller instead of the PIIX3 "7010" device ID).
Current PIIX emulation on ASUS P/I P55TVP4 (Note the PIIX "1230" device ID of the IDE controller instead of the PIIX3 "7010" device ID).
Screenshot from 2020-07-18 03-12-46.png (10.33 KiB) Viewed 12337 times
Current PIIX emulation on ASUS P/I P55T2P4 (Note the PIIX "1230" device ID of the IDE controller instead of the PIIX3 "7010" device ID).
Current PIIX emulation on ASUS P/I P55T2P4 (Note the PIIX "1230" device ID of the IDE controller instead of the PIIX3 "7010" device ID).
Screenshot from 2020-07-18 03-09-03.png (10.3 KiB) Viewed 12337 times
PIIX3 implementation attempt on EPoX P55-VA (Note the PIIX3 "7010" device ID of the IDE controller instead of the PIIX "1230" device ID).
PIIX3 implementation attempt on EPoX P55-VA (Note the PIIX3 "7010" device ID of the IDE controller instead of the PIIX "1230" device ID).
Screenshot from 2020-07-18 02-58-09.png (10.12 KiB) Viewed 12337 times
grommit2007
Posts: 43
Joined: Sat 22 Apr, 2017 3:26 pm

PCem USB support

Post by grommit2007 »

Additional screenshots:
Attachments
Windows 95 on Shuttle HOT-557 showing PIIX3 PCI to ISA bridge and IDE controller as installed and working
Windows 95 on Shuttle HOT-557 showing PIIX3 PCI to ISA bridge and IDE controller as installed and working
Screenshot from 2020-07-18 04-27-02.png (14.34 KiB) Viewed 12329 times
Windows 95 on Shuttle HOT-557 showing PIIX3 PCI to ISA bridge and IDE controller as installed and working
Windows 95 on Shuttle HOT-557 showing PIIX3 PCI to ISA bridge and IDE controller as installed and working
Screenshot from 2020-07-18 04-26-22.png (13.62 KiB) Viewed 12329 times
Windows 95 on ASUS P/I P55TVP4 showing PIIX3 PCI to ISA bridge and IDE controller as installed and working
Windows 95 on ASUS P/I P55TVP4 showing PIIX3 PCI to ISA bridge and IDE controller as installed and working
Screenshot from 2020-07-18 04-12-50.png (20.25 KiB) Viewed 12329 times
Windows 95 on ASUS P/I P55TVP4 showing PIIX3 PCI to ISA bridge and IDE controller as installed and working
Windows 95 on ASUS P/I P55TVP4 showing PIIX3 PCI to ISA bridge and IDE controller as installed and working
Screenshot from 2020-07-18 04-12-21.png (19.47 KiB) Viewed 12329 times
Windows 95 on ASUS P/I P55T2P4 showing PIIX3 PCI to ISA bridge and IDE controller as installed and working
Windows 95 on ASUS P/I P55T2P4 showing PIIX3 PCI to ISA bridge and IDE controller as installed and working
Screenshot from 2020-07-18 03-42-44.png (20.26 KiB) Viewed 12329 times
Windows 95 on ASUS P/I P55T2P4 showing PIIX3 PCI to ISA bridge and IDE controller as installed and working
Windows 95 on ASUS P/I P55T2P4 showing PIIX3 PCI to ISA bridge and IDE controller as installed and working
Screenshot from 2020-07-18 03-43-10.png (19.49 KiB) Viewed 12329 times
grommit2007
Posts: 43
Joined: Sat 22 Apr, 2017 3:26 pm

PCem USB support

Post by grommit2007 »

Additional screenshots:
Attachments
Windows 95 on EPoX P55-VA showing PIIX3 PCI to ISA bridge and IDE controller as installed and working
Windows 95 on EPoX P55-VA showing PIIX3 PCI to ISA bridge and IDE controller as installed and working
Screenshot from 2020-07-18 04-48-08.png (20.25 KiB) Viewed 12329 times
Windows 95 on EPoX P55-VA showing PIIX3 PCI to ISA bridge and IDE controller as installed and working
Windows 95 on EPoX P55-VA showing PIIX3 PCI to ISA bridge and IDE controller as installed and working
Screenshot from 2020-07-18 04-47-20.png (19.48 KiB) Viewed 12329 times
senileblue
Posts: 6
Joined: Tue 07 Jul, 2020 12:09 am

Re: PCem USB support

Post by senileblue »

Did the i430VX have USB support? I had one back in the day and the pads were on the PCB, but they never soldered a header on the board. I don't recall seeing USB picking up in usage until the P2/P3 eras.
User avatar
omarsis81
Posts: 945
Joined: Thu 17 Dec, 2015 6:20 pm

Re: PCem USB support

Post by omarsis81 »

senileblue wrote: Sun 19 Jul, 2020 12:16 pm Did the i430VX have USB support? I had one back in the day and the pads were on the PCB, but they never soldered a header on the board. I don't recall seeing USB picking up in usage until the P2/P3 eras.
Yes, it does, but technically USB is on the southbridge (PIIX3) and USB support indeed begand on the 430HX/VX era
senileblue
Posts: 6
Joined: Tue 07 Jul, 2020 12:09 am

Re: PCem USB support

Post by senileblue »

omarsis81 wrote: Sun 19 Jul, 2020 4:35 pm Yes, it does, but technically USB is on the southbridge (PIIX3) and USB support indeed begand on the 430HX/VX era
Interesting flashbacks indeed, looked around online for my motherboard (pc-chips m520) and it seems there was a revision that had the header soldered on, in addition to a ps2 port. I guess I got the short end of the stick in the mid 90s. :lol:
User avatar
gen_angry
Posts: 127
Joined: Sat 25 Feb, 2017 6:48 am

Re: PCem USB support

Post by gen_angry »

What would the USB 'connect' to? A host port?
vbdasc
Posts: 37
Joined: Tue 21 Mar, 2017 10:53 am

Re: PCem USB support

Post by vbdasc »

gen_angry wrote: Tue 21 Jul, 2020 7:37 am What would the USB 'connect' to? A host port?
If I'm reading properly what the person who started this thread wrote, to emulated USB devices. Who will write the emulation code for these devices? Now this is the real question :)

P.S. Another possibility is, of course, adding passthrough support for USB devices attached directly to the host, as in VirtualBox.
User avatar
leilei
Posts: 1039
Joined: Fri 25 Apr, 2014 4:47 pm

Re: PCem USB support

Post by leilei »

Passthrough USB would probably throw huge wrenches of complications into multiplatform and building. I'd think these patches were about getting some warning markings off some devices and prepping it for future potential USB device emulation (as in emulating Intellimouse and certain gamepads/joysticks, rather than a pass-through usb wifi fantasy)
Zup
Posts: 83
Joined: Mon 30 Nov, 2015 10:47 am

Re: PCem USB support

Post by Zup »

Maybe it could be interesting to create "virtual" USB HID or MSD devices. Something like getting keyboard/mouse/joystick input and feed it into that virtual HID device. It would be a way to overcome the axis/buttons limitations of traditional gameport.

MSD devices could be emulated using a disk image... not very useful (unless you connect them to a block device in Linux). Note that USB support is pretty useless on most OSs (because USB was not supported or there were almost no device drivers, like Windows 95).
Cheez
Posts: 86
Joined: Tue 19 Dec, 2017 4:08 am

Re: PCem USB support

Post by Cheez »

Yeah, but I would at least be interested in emulated USB as far as removable mass storage devices go, since that would end up being a simpler way (for me) to rapidly add or remove files from the system than I already use and probably gives me more flexibility while I'm at it.
grommit2007
Posts: 43
Joined: Sat 22 Apr, 2017 3:26 pm

PCem USB support

Post by grommit2007 »

After a few weeks of work, I have managed to implement USB support on the PIIX3 southbridge similar to the implementation on the VIA southbridge which this program emulates.

The tests were performed with the Shuttle HOT-557 (BIOS dated 08/15/96), Windows 95 OSR2.0, and the rare 1996 version of the USB Supplement for Windows 95 from the OEM Preinstallation Kit for OSR2.x (It works with OSR 2.1 and 2.5's versions of the USB supplement on the installation CD).

A patch to add this to the release branch is being worked on, and will be added to the Patches forum when it is fully ready.

This emulation was accomplished by completely reworking the VT82C586B emulation into an emulation of the Intel PIIX3 southbridge, however I have trouble with adding the reset registers for the PIIX3 to the new emulation, I would appreciate any help with this, once I get past this hurdle, I can submit the patch (I would like to basically make it 100% on par with the existing PIIX emulation, and to minimize any bugs which may show up).

(Edit: I have managed to add the reset registers for the PIIX3 to the code, and I can say that the new southbridge is now 100% on par with the existing PIIX emulation, apart from using the code structure of the VIA southbridge, and having a USB controller, which the PIIX southbridge lacks).
Attachments
Shuttle HOT-557 Award BIOS System Configuration screen showing USB controller under "PCI device listing"
Shuttle HOT-557 Award BIOS System Configuration screen showing USB controller under "PCI device listing"
Screenshot from 2020-08-01 00-20-58.png (10.41 KiB) Viewed 11602 times
Windows 95 on Shuttle HOT-557 showing USB controller as installed and working (Device properties listing)
Windows 95 on Shuttle HOT-557 showing USB controller as installed and working (Device properties listing)
Screenshot from 2020-08-01 00-13-30.png (15.64 KiB) Viewed 11602 times
Windows 95 on Shuttle HOT-557 showing USB controller as installed and working (Device properties listing)
Windows 95 on Shuttle HOT-557 showing USB controller as installed and working (Device properties listing)
Screenshot from 2020-08-01 00-13-14.png (17.82 KiB) Viewed 11602 times
Windows 95 on Shuttle HOT-557 showing USB controller as installed and working (Device properties listing)
Windows 95 on Shuttle HOT-557 showing USB controller as installed and working (Device properties listing)
Screenshot from 2020-08-01 00-13-01.png (16.32 KiB) Viewed 11602 times
Windows 95 on Shuttle HOT-557 showing USB controller as installed and working (IRQ assignments listing)
Windows 95 on Shuttle HOT-557 showing USB controller as installed and working (IRQ assignments listing)
Screenshot from 2020-08-01 00-09-41.png (20.16 KiB) Viewed 11602 times
Windows 95 on Shuttle HOT-557 showing USB controller as installed and working (Devices in system listing)
Windows 95 on Shuttle HOT-557 showing USB controller as installed and working (Devices in system listing)
Screenshot from 2020-08-01 00-03-02.png (20.52 KiB) Viewed 11602 times
Last edited by grommit2007 on Sun 02 Aug, 2020 5:09 am, edited 1 time in total.
grommit2007
Posts: 43
Joined: Sat 22 Apr, 2017 3:26 pm

PCem USB support

Post by grommit2007 »

Additional screenshots:

(Edit: Tests were performed on the ASUS P/I P55T2P4, ASUS P/I P55TVP4 and the EPoX P55-VA motherboards in addition to the Shuttle HOT-557)
Attachments
EPoX P55-VA BIOS showing USB controller as enabled
EPoX P55-VA BIOS showing USB controller as enabled
Screenshot from 2020-08-01 01-46-09.png (11.93 KiB) Viewed 11593 times
ASUS P/I P55TVP4 Award BIOS System Configuration screen showing USB controller under "PCI device listing"
ASUS P/I P55TVP4 Award BIOS System Configuration screen showing USB controller under "PCI device listing"
Screenshot from 2020-08-01 01-43-20.png (10.81 KiB) Viewed 11593 times
ASUS P/I P55TVP4 BIOS showing USB controller as enabled
ASUS P/I P55TVP4 BIOS showing USB controller as enabled
Screenshot from 2020-08-01 01-42-43.png (12.43 KiB) Viewed 11593 times
ASUS P/I P55T2P4 Award BIOS System Configuration screen showing USB controller under "PCI device listing"
ASUS P/I P55T2P4 Award BIOS System Configuration screen showing USB controller under "PCI device listing"
Screenshot from 2020-08-01 01-35-21.png (10.81 KiB) Viewed 11593 times
ASUS P/I P55T2P4 BIOS showing USB controller as enabled
ASUS P/I P55T2P4 BIOS showing USB controller as enabled
Screenshot from 2020-08-01 01-36-01.png (12.44 KiB) Viewed 11593 times
Shuttle HOT-557 BIOS showing USB controller as enabled
Shuttle HOT-557 BIOS showing USB controller as enabled
Screenshot from 2020-08-01 00-23-18.png (12.3 KiB) Viewed 11601 times
grommit2007
Posts: 43
Joined: Sat 22 Apr, 2017 3:26 pm

PCem USB support

Post by grommit2007 »

Additional screenshots:
Attachments
EPoX P55-VA Award BIOS System Configuration screen showing USB controller under "PCI device listing"
EPoX P55-VA Award BIOS System Configuration screen showing USB controller under "PCI device listing"
Screenshot from 2020-08-01 01-49-20.png (11.08 KiB) Viewed 11591 times
Post Reply