darthcloud / BlueRetro

Multiplayer Bluetooth controllers adapter for retro video game consoles
https://blueretro.io
Apache License 2.0
1.23k stars 103 forks source link

PS2 rumble speed control on Dualshock 4 #20

Open ttyborg opened 3 years ago

ttyborg commented 3 years ago

Hi!

I have built an adapter out of a devkitv1 using the 0.14 release, and it works perfectly with my DS4. I managed to turn on the rumble through the web interface, and it works, but it seems the rumble motors don't work independently of each other, and they only work at a set value, and don't have speed control. I tested this on a PS2 with the "Pad test" homebrew app (https://www.ps2-home.com/forum/viewtopic.php?t=5483). I also have a Brook PS2 Super Converter, with it the rumble motors can work independently, and have speed control. I don't know if I am missing a config or something.

Thanks for your help.

darthcloud commented 3 years ago

You are correct, dual motor and speed control are not yet implemented. It something that will require redesign later.

I will eventually fix it but not in the short term.

BTW, thanks alot for the github sponsorship, I really appreciate it!!

ttyborg commented 3 years ago

I see, thanks for the quick reply.

For the sponsorship, it's the least I can do. Keep up the good work.

patters-match commented 2 years ago

I use a PSUnoRetro device (from willsconsolemodifications.co.uk) running BlueRetro, with a PlayStation 2 console and a DualShock 4 controller. I have enabled BlueRetro rumble via the web config, and it works for PS2 games.

I have noticed that there's no rumble at all for Porsche Challenge - a PS1 game working on the PS2's backwards compatibility. Using a wired DualShock 2 pad rumble does indeed work, so it might logically be expected to work with BlueRetro.

However it does feel as if only the right-hand vibration motor is used when using a real DualShock 2 pad. From memory of owning this game back in the day, and the PS1 Dual Analog controller, I believe this game was one of the first to support that type of controller.

In a somewhat strange decision by Sony, the Dual Analog controller had its rumble motor removed for the US and European markets before it launched, but it did have a single rumble motor in Japan (https://en.m.wikipedia.org/wiki/Dual_Analog_Controller). So it would make sense that this game supports only one vibration motor, even if the feature only worked with the Japanese Dual Analog pad, and later with the DualShock and DualShock 2 controllers, themselves enhancements of that original design which remain backwards compatible with it.

Supporting this theory, Porsche Challenge is described here as being a game which indeed included support for the single vibration motor of the Dual Analog controller: https://en.m.wikipedia.org/wiki/DualShock

So... is it the case that the current BlueRetro rumble implementation only activates a DualShock 4 controller's vibration motors when output for the left-hand DualShock 2 motor is requested, and perhaps ignores requests for the right-hand motor only? Or is there some other problem breaking vibration support for Porsche Challenge specifically?

patters-match commented 2 years ago

I have just tested with Gran Turismo using the PS2's backwards compatibility for PS1, and it's the same issue there. No rumble at all using BlueRetro, but working using a real DualShock 2 pad.

darthcloud commented 2 years ago

@patters-syno While only one motor from the PSs BT ctrls is used both motor command on the PSX/PS2 side should activate it. I will need to take a look. Sorry I missed you report in november.

patters-match commented 2 years ago

Thanks for the confirmation that it should work. I wasn't sure, that's why I hadn't raised it as a distinct issue. I can do this now if you would prefer, for tracking purposes. Let me know. My PS2 is a model SCPH-90003 super slim (with built-in PSU), and I'm running BlueRetro 1.2.2. PS2 rumble is fine via BlueRetro, but it does not work when playing PS1 games (have only tested Porsche Challenge, and Gran Turismo so far). Both are rumbling with a real DualShock 2.

darthcloud commented 2 years ago

@patters-syno yes please open a different issue, I'll keep this one to track the BT side. Just copy paste your first post.

mario-64 commented 1 year ago

You are correct, dual motor and speed control are not yet implemented. It something that will require redesign later.

I will eventually fix it but not in the short term.

Hi darthcloud. I was wondering if this feature is on your roadmap now or still no current plans to add it?

mario-64 commented 1 year ago

You are correct, dual motor and speed control are not yet implemented. It something that will require redesign later.

I will eventually fix it but not in the short term.

BTW, thanks alot for the github sponsorship, I really appreciate it!!

You are correct, dual motor and speed control are not yet implemented. It something that will require redesign later.

I will eventually fix it but not in the short term.

BTW, thanks alot for the github sponsorship, I really appreciate it!!

@darthcloud This post was nearly two years ago. Do you still plan on implementing proper DualShock rumble support? It’s the only thing holding me back from using BlueRetro with PlayStation consoles. Thanks

ButtonBasher92 commented 5 months ago

Hoping this gets implemented in the next major update, ps2 support would then be complete and perfected.

darthcloud commented 5 months ago

Locked since 100% of the comment adds nothing useful.

I'm aware of it, but on my priority list this is simply low.

This will be done when I feel like working on it or someone else send a PR.

darthcloud commented 1 month ago

Can someone test this beta, this add dual motor and variable force support for Playstation and Dreamcast

https://github.com/darthcloud/BlueRetro/actions/runs/9286878322

ButtonBasher92 commented 1 month ago

Can someone test this beta, this add dual motor and variable force support for Playstation and Dreamcast

https://github.com/darthcloud/BlueRetro/actions/runs/9286878322

So far working great in a few games that I have tested. I am using PS3 controllers I have noticed my PS3 controller with model number CECHZC2U has a delay with the vibrations though CECHZC2E works fine, no delay.

DJm00n commented 1 month ago

@darthcloud Did a test pass with the PadTest tool on PS2 Fat with HW1 BlueRetro from Aliexpress:

To test vibration, hold 'triangle', then move the left joystick down for the strong motor (that seems to have 96 positions), or press up and down on the directional pad for the weak motor (that has 2 positions).

Tested with two DualShock4's connected at the same time, two DualSense's connected at the same time, one DualShock4 and a second DualSense.

Works as it should, but with a bug - the vibration is only there when two controllers are connected to the BlueRetro.

Also, did test with Stadia Controller - no vibration feedback.

darthcloud commented 1 month ago

@DJm00n I did all my test with the PadTest on fat PS2 too and I had only one controller connected.

I also tested the stadia controller too and it worked fine.

TBH those adapter look poorly build (in addition of them violating the license by using the project name to name themself.)

darthcloud commented 1 month ago

@DJm00n I reproduced your issue. Something is wrong when rumble is enable on both output 1 & 2 and you got only one controller.

Disabling rumble on output 2 make output 1 work fine.

I will look into it.

darthcloud commented 1 month ago

@DJm00n That should fix it: https://github.com/darthcloud/BlueRetro/actions/runs/9292253020

DJm00n commented 1 month ago

@darthcloud works like a charm! thank you!

PS: Still no vibration on Stadia Controller at all.

mario-64 commented 1 month ago

@darthcloud Just want to say a huge THANK YOU for implementing this! Due to work, I can't test right now but can this weekend.

darthcloud commented 1 month ago

@DJm00n do you any more detail on how you use the Stadia? I always connect mine with a fresh connection via Y+Stadia button.

darthcloud commented 1 month ago

This one should fix RE4: https://github.com/darthcloud/BlueRetro/actions/runs/9304053152