PsxNewLib icon indicating copy to clipboard operation
PsxNewLib copied to clipboard

Analog Dualshock controller (SCPH-1200) gives type "Guitar Hero".

Open mcgurk opened this issue 4 years ago • 4 comments

With DumpButtonsBitBang and DumpButtonsHwSpi examples my SCPH-1200 controller gives controller type "Guitar Hero" to Serial Monitor. Other than that, controller works fully with PsxNewLib, so this doesn't matter much. (I got library from Arduino IDE library manager. It is version 0.4.0)

mcgurk avatar Nov 06 '21 11:11 mcgurk

Yeah, this is a known issue, it's even noted in the function header. That function is a carryover from the PS2X library, but it's undocumented and based on data reported by controllers that nobody really knows how to interpret.

I think I will just remove that function in the devel branch, sooner or later.

There's another similar function that is much more reliable, as it will report what protocol the library is actually using to talk to the controller. Please see getProtocol().

SukkoPera avatar Nov 07 '21 18:11 SukkoPera

@SukkoPera I've got an original guitar to try. It sends DPAD LEFT as always pressed and reports as dualshock.

Holding the dpad left was also a trick to use a dualshock to play the games on ps2. Hold it when booting the game so it detects it as a guitar.

I will do more tests and see if there's any other way to identify it. But checking for the dapd state might be a good fallback.

sonik-br avatar Mar 11 '23 15:03 sonik-br

So I guess this function really has to go! :)

SukkoPera avatar Mar 11 '23 16:03 SukkoPera

Noooooooo. Please don't kill it :)

Function is really useful to detect the presence of a jogcon. We can't rely only on the reported protocol. Jogcon reports as digital protocol and this function can identify if it's a jogcon connected in digital mode.

Some findings on the guitar hero device. Can be useful if anyone need to identify if a guitar deice is connected:

  • Dpad left is always ON.
  • It boots up as DS1 in digital mode. (same behavior as a DS1)
  • It supports the commands to enable Analog Sticks and Buttons. After those commands, it will report as a DS1 with DS2 protocol. (not the same behavior as a DS1)
  • Guitar needs a longer polling interval. I've got it working with at least 8ms interval.

This was tested with a wireless guitar and the original Kramer Striker Wireless Receiver.

sonik-br avatar Mar 11 '23 17:03 sonik-br