So, tell me what this patch is doing :
1. replacing Wii controller drivers with gamecube controller's driver ? (if it's a generic patcher, it should work only on games using the exact same controller driver version, and located at the exact same address, unless it's a "search&replace" patch)
or
2. replacing Wii controller driver with HID support writing HID value to memory like nintendont does?
If it's doing the first one, then you can only use your Wii and a real gamecube controller port.
if it's doing the second one, then you (might) need cIOS r53 to enable USB Port1 ! if you use cIOS it's limiting the available USB Port.
Not exactly either, but 2. is closer:
It replaces the
gamecube controller (SI) driver with a "HID" driver.
I put that in quotes because it's tailored specifically to the official Wii U Gamecube Controller Adapter. (Slight differences)
Another important distinction to be made is that it doesn't just "write controller values to memory."
Rather, it redirects calls to gamecube controller related functions (SI, PAD) to functions that
accomplish the same goal, but with the adapter.
Basically, it redirects all traffic going to/from the gamecube ports (which are only in the original wii) to the adapter.
As for the IOS:
My code doesn't use the IOS module USB_HID.
It uses OH0/1, the USB 1.1 module, communicating with raw interrupt transfers.
This module is in all versions of IOS, to my knowledge.
At the very least, I know it's in IOS36, which Brawl uses.
Ok so what's the issue? connecting other things.... Having a usb HDD in the rear top port of the wiiu with the gc adapter hooked up in the front causes no inputs to be registered until the HDD is unplugged. After that happens the gc adapter will work even if the HDD is plugged back in. Having both my Wiiu drive hooked up in the front and my wii hdd in the back on game load causes the game to get to the endless loop of the 'Now Loading...' screen. Having just the adapter plugged in on game load will allow it to work no matter if both HDDs are plugged in afterwards from my short tests.
Basically it seems like the patch has huge issues with other USB devices connected at the same time. This is most likely the reason behind it not working so well with USB Loader, so it might not be an issue with USBloader gx's patching function at all.
Do you think these exception cases/error handling could be looked into
@wilm0x42 ?
It looks like the wii u has some wierd ways of handling the USB ports.
The original wii only has 2 USB ports, both in the back, so it's up to the wii u to determine how the vWii sees it's 4 ports.
Based on what you said, I'm guessing it handles this by either...
1. It exposes the extra ports as a USB hub.
2. It only shows the vWii either the front or the back ports at any given time. (Your guess is as good as mine as to how it decides which ports should take priority.)
If it's 1., then it could be caused by the fact that my code only scans for 2 USB devices, since that's all there can normally be on a wii. Fixing this should be fairly trivial.
If it's 2, which I find more likely, try plugging in both a hard drive and the adapter in either front/back. (Keep in mind, the grey cable on the adapter doesn't matter.)