PCSX2 / pcsx2

PCSX2 - The Playstation 2 Emulator
https://pcsx2.net
Other
10.62k stars 1.54k forks source link

[BUG]: Buzz Controllers not properly working #4990

Open Sebihunter opened 2 years ago

Sebihunter commented 2 years ago

Describe the Bug

The Buzz controllers are not working reliably (not getting detected with passthrough and DInput makes buttons stuck)

Reproduction Steps

well I tried it 3 different ways: First just plugging the controllers in. This resulted in the game telling me that I had no buzz controller plugged in.

The second thing I tried was going into USB Settings and selecting "Buzz Device" at port one. For device API of Port 1 I chose Raw Input and used "Buzz" as FF / Pass-through-devices. This resulted in the game thinking I had a controller connected, but the controller not working.

The third thing I did was changing the API of port 1 to DInput and assigning the controller buttons manually (e.g. Red -> Button 2/10) - This worked but the button seems to be pressed at all times ingame, like when I join the game it sometimes detects the blue button pressed at any given time (yesterday it worked for 4 minutes or so but as soon as I was at the second question the same issue)


Switching the plugin worked in older versions (where I tried it one year ago - I used either the USBqemu or BuzzMultiBuzzersPlugin back then and one of them worked, the other had the exact same issue)

Expected Behavior

Well, they should either get detected properly by passthrough or atleast DInput should work reliably

PCSX2 Revision

1.7.2019 (nightly 2021-11-06)

Operating System

Windows 10 (64bit)

If Linux - Specify Distro

No response

CPU

i5 6500

GPU

RTX 3060

GS Settings

No response

Emulation Settings

No response

GS Window Screenshots

No response

Logs & Dumps

No response

Sebihunter commented 2 years ago

I tried the old 1.6.0 Release together with an plugin: https://github.com/Alby1987/BuzzMultiBuzzersPlugin - it also works with blinking lights

josearr commented 2 years ago

Same problem here.

Describe the Bug

In my case, I've only tested with DInput configuration with only 2 players and these games so far:

I don't know if the games that seem to be OK would work properly if the 4 controllers were used (as I said we only use 2 of them).

I want to test more games so I'll update this list. I also want to test 1.6 with plugins to check if they work properly there.

I've only been using the emulator for this games since last week.

As a side note, the red light in the controllers is not working.

Reproduction Steps

In USB settinsg select DInput API for port 1 and assign the buttons manually.

Start one of the problematic games and the issue should arise pretty easily.

PCSX2 Revision

1.7.2054 (nightly)

Operating System

Windows 10 (64bit)

CPU

i5 3570 (overclocked)

GPU

GTX 1060 6GB

GS Settings

OpenGL 6x (4K)

Emulation Settings

No response

GS Window Screenshots

No response

Logs & Dumps

No response

josearr commented 2 years ago

I tried the old 1.6.0 Release together with an plugin: https://github.com/Alby1987/BuzzMultiBuzzersPlugin - it also works with blinking lights

Do the buzzers work properly with that version+plugin?

I'm asking this because you said that one of the plugins worked and the other had the same issue described here so I guess this BuzzMultiBuzzersPlugin is the one that's working OK.

josearr commented 2 years ago

I tried the old 1.6.0 Release together with an plugin: https://github.com/Alby1987/BuzzMultiBuzzersPlugin - it also works with blinking lights

Do the buzzers work properly with that version+plugin?

I'm asking this because you said that one of the plugins worked and the other had the same issue described here so I guess this BuzzMultiBuzzersPlugin is the one that's working OK.

I've been testing different plugins with 1.6.0 with "The Mega Quizz" and "The Big Quizz" which are the ones where I have issues with the buzzers on 1.7.X

DandelionSprout commented 1 year ago

I can confirm that this is still a problem in various ways. Testing on Windows 11, PCSX2 stock settings, and with the "Wbuzz" wireless controllers that were included with Buzz! Quiz TV (PS3) but which do work for the PS2 as well:

—————————

For v1.7.3497-vxWidgets-SSE4, with Raw Input chosen in the USB settings, and passthrough for player 1 set to "Wbuzz": The game will press Blue on its own for the first 1-2sec after it detects the controls (or after loading a savestate), after which all buttons become unresponsive. This can be most easily measured by first using DInput keyboard bindings to get to the main menu of any mainline Buzz! game, and then switch to Raw Input.

When choosing DInput, the binding menu does not accept any listened-for button presses from the controllers.

SimpleHIDWrite seemed to rule out that my controllers had emptied their batteries or that they'd be unsynced with the USB dongle; while the sticky and possibly rusty Power/Lock sliders after 15 years seemed to be fixed with CRC 5-56 spray.

—————————

v1.7.3497-Qt-AVX2 fail to detect Buzz! controllers at all when the game reaches its first menu, be they physical or emulated, and even when Settings → Global settings → "Enable DInput Input Source" makes "Detected devices" show DInput-0: Wbuzz:

Screenshot from «Buzz! The School Quiz» (SCES-54941) ![image](https://user-images.githubusercontent.com/22780683/198899511-433e3cb9-8cf3-443a-8440-e73998f0f568.png)

This result seems to be consistent among the 4 Buzz! games I've tried.

Mrlinkwii commented 1 year ago

@DandelionSprout QT dosent have USB support yet

DandelionSprout commented 1 year ago

Good to know. Though it's odd to me that the vxWidgets version of 1.7 seems to fail to properly detect the controller buttons as well.

Mrlinkwii commented 1 year ago

Is this still an issue on latest 1.7 ?

Simonxdd commented 1 year ago

Is this still an issue on latest 1.7 ?

Haven't tested it extensively, but it still only works with the wired PS2 buzzers (wireless PS3 buzzers aren't recognized at all) and the red buzzer doesn't light up. Kinda the same as previous 1.7 wx builds in that sense, so I still keep a 1.6.0 build with the Buzz plugin that solves both issues.

DandelionSprout commented 1 year ago

I'll see if I have time to test the newest nightlies on my end sometime before Christmas Eve.

DandelionSprout commented 1 year ago

Testing with v1.7.3762 AVX2 Qt, it appears that the new settings at "Controller Settings → USB Port 1 → Buzz Controller" accepts keyboard bindings, but seemingly does not appear to accept presses from "SDL-0: Wbuzz", while Automatic Mapping with it results in the error message "No generic bindings were generated for device 'SDL-0'. The controller/source may not support automatic mapping". I was not able to find any "Raw input" choices either.

Qt screenshot: ![image](https://user-images.githubusercontent.com/22780683/209335682-8552bdd1-7fa4-4ae1-bbae-ca186ea102d1.png)

Testing with v1.7.3762 AVX2 wxWidgets, nothing happens when clicking on Config → USB Settings, and the settings don't show up. And it doesn't seem like Buzz! The Sports Quiz detects the wireless Buzzers in-game as a result of that, despite the logger showing that Buzzer drivers are loaded.

Mrlinkwii commented 1 year ago

Testing with v1.7.3762 AVX2 wxWidgets,

we dont care about WX , it will be deleted soon :smile:

in terms of Qt i think you have to manually add them

DandelionSprout commented 1 year ago

In regards to manual addition, it doesn't seem like any wireless Buzzer button presses are registered during "Push Button/Axis…", sadly.

DandelionSprout commented 1 year ago

Okay, so I've found a reasonably good workaround: Based on http://www.decsoftware.com/wireless_buzzers.htm (but which didn't work in earlier PCSX2 builds), the part about SimpleHIDWrite and "Enter 00 into all of the boxes" does apparently indeed tell Windows to tell the Buzzers that they should be turned on, which makes Buzzer keybinds work pretty well in PCSX2 v1.7.3762 QT's settings.

Screenshot: ![image](https://user-images.githubusercontent.com/22780683/209341438-daa1d393-6b55-40f9-8207-5d1d07803d17.png)
leotheleopard commented 1 year ago

I did some digging, it looks like for Windows, you can tell Windows to stop treating the Buzzers as a USB HUB like it thinks it is into a standard input device, (Which does the same thing as above and makes it into a valid SDL controller) However, from experience, this doesn't fix the issue, just make it a valid controller. I did some testing myself with the copies of the games that I have from many yonks ago, and all the Junior games work, same with the specialty games (Sports, Pop, Music and Hollywood) so this issue, to my knowledge, just affects Big Quiz and Mega Quiz

Tawmy commented 1 year ago

Using release 1.7.4350, this issue still exists. Playing Buzz is impossible as the buttons, particularly the blue one, get stuck for various lengths of time constantly. Since plugins have been removed, I'm not even aware of a workaround. Have there been any developments on this issue?

dmandrone commented 1 year ago

+1 Would definitely love to see/hear developments if there have been any.

Would really love to use the Wireless PS3 Buzz Controllers on PCSX2.

Currently have 0 luck with any of the Buzz Games

DandelionSprout commented 1 year ago

From how I remember the way I found a workaround for it last December, PCSX2 does have full binding support for wireless Buzzers now, but the problem is that there's nothing in PCSX2 that tells (told?) the Buzzers to stay turned on.

dmandrone commented 1 year ago

From how I remember the way I found a workaround for it last December, PCSX2 does have full binding support for wireless Buzzers now, but the problem is that there's nothing in PCSX2 that tells (told?) the Buzzers to stay turned on.

Gotcha.

To clarify, how does this play out within the games? The buzzers just randomly disconnect at times?

DandelionSprout commented 1 year ago

After being synced to the PC/USB receiver and turned on, the Buzzers will think "The system isn't sending out the signal that tells us that we can be used, so we can safely shut down again and/or not register any button presses." Essentially making the Buzzers impossible to use in any meaningful way.

SimpleHIDWrite can with some relatively easy trial and error be used to send the signal the Buzzers are looking for.

dmandrone commented 1 year ago

UPDATE: Thank you, it does seem to work as expected, except for the issue with PS3 Buzz games, but this is a PCSX2 forum so doesn't need to be addressed. If you possibly had a solution for that aspect, I would love to hear it.

Unfortunately, the SimpleHIDWrite app is not recognizing/listing the Wbuzz device

Got it to recognize the device after deleting the special driver installed needed to get these to work on RPCS3 as well.

Seems can't get them to work on both platforms due to this

MrDemocracy commented 7 months ago

Both the PS2 and PS3 Buzz controllers work for me on the latest version of PCSX2-Qt v1.7.522. The only issues I have now are the red LEDs doesn't blink and there's maybe some lost inputs with PS3 controllers when the framerate drops. For the LEDs I was able to confirm that blinking does in fact work outside of PCSX2 by using this script. I also tried with the BuzzMultiBuzzersPlugin on version 1.6.0 and captured the differences between that and the latest nightly in Wireshark. buzz ps2 usb.pcapng.zip The capture was done with the PS2 buzzers. There seems to be a correlation between when the SET_REPORT requests are being made and when the blinking happens. I found one mention of that in the usb-pad code. However, I also found a mention in the DJ Hero turntable code where the LED appears to be fully implemented, but I don't have the turntable controller so I can't test.

annonscot commented 6 months ago

Both the PS2 and PS3 Buzz controllers work for me on the latest version of PCSX2-Qt v1.7.522. The only issues I have now are the red LEDs doesn't blink and there's maybe some lost inputs with PS3 controllers when the framerate drops. For the LEDs I was able to confirm that blinking does in fact work outside of PCSX2 by using this script. I also tried with the BuzzMultiBuzzersPlugin on version 1.6.0 and captured the differences between that and the latest nightly in Wireshark. buzz ps2 usb.pcapng.zip The capture was done with the PS2 buzzers. There seems to be a correlation between when the SET_REPORT requests are being made and when the blinking happens. I found one mention of that in the usb-pad code. However, I also found a mention in the DJ Hero turntable code where the LED appears to be fully implemented, but I don't have the turntable controller so I can't test.

Seconding this, would submitting any debug logs from running these games be useful ? I would like to help (if possible). We love playing these games at Christmas / New Year, would be excellent to run the latest PCSX2 build along with the Buzzers working correctly with the red LED blinking.