Something I noticed, I think some applications do recognize all 4 ports separately as their own devices. This is only one obscure example but I was using your driver to let me use a GameCube controller on an N64 emulator, Project64K. Its a Windows N64 emulator that supports netplay, and I run it on my Mac using wine, which is another application that lets you run .exe files easily. Anyway, when I configure the controller plugin .dll file it appears that it recognizes all 4 ports, 1-4 all appear on the devices list. I even tested it, selecting 2 means I must plug my GameCube controller into port 2 for it to receive inputs. This controller plugin is called N-Rage`s Direct-Input8 V2 1.83:... it looks like the way he's getting around the problems I encountered is by setting each port up as its own HID controller, which makes sense. If his version works for all ports though, I may well just stop developing mine.
So maybe it is Dolphin that's the problem? I'm 100% not sure if this is actually meaningful but I thought I would tell you about it anyway just in case.
That means I wouldn't have to do the Terminal commands every time anymore? That would be nice. For his driver you need to have Xcode open at all times I think though.I think you should be able to install mine permanently following the same instructions as his (i.e. the sudo chown commands).
One more thing about the terminal commands. Some users on reddit are asking me how to install the driver, and some other friends are too. They notice that their computer gives them the white text on black background when it starts up and shuts down after using the driver. Its booting in verbose mode and I know you can turn it off with "sudo nvram boot-args=" but I was wondering if the -v verbose tags are necessary parts of the terminal commands to running the driver?
Well, I'm going to keep using yours anyway. Less lag, even in theory, is better. I wonder what his approach is to the triggers slightly pressed thing.The one possible advantage to mine is that my driver may have less lag than his, as he is sleeping for 5ms between polls (which will randomly introduce one frame of lag sometimes), whereas my driver updates whenever the data from the controller updates. I don't have a setup to confirm that, however, and the understanding I have of the code I've adapted isn't solid enough to whole-heartedly believe it either. I assume this other developer actually knows what they're doing!