libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.07k stars 1.81k forks source link

Support strong and weak vibrations for cocoa input driver #15300

Closed DamianPereira closed 5 months ago

DamianPereira commented 1 year ago

Description

In games like Metal Gear Solid, there are 2 vibration strenghts, you can check it out on the options, where there is a vibration test with both strong and weak options.

Expected behavior

Weak and strong vibrations should feel different. Duckstation correctly has weak and strong vibrations, but libretro with swanstation core does not. I believe this is related to the libretro input driver, and not to the core. Duckstation uses SDL as the input driver, and maps large and small motors as SDL/LargeMotor and SDL/SmallMotor. But my retroarch-metal version uses cocoa input driver.

Actual behavior

Both vibrations are what in duckstation happen when you test strong vibration (or even more, I think it's spinning both motors at the same time)

Steps to reproduce the bug

  1. Open Metal Gear Solid USA ROM
  2. Go to options menu
  3. Go to vibration test, and test with both weak and strong vibrations

Bisect Results

I don't think it makes much sense to Bisect, this was probably never supported, but I can try any specific version if it might help.

Version/Commit

This is retroarch-metal on an m1 mac. Version in system information shows as GIT_VERSION, about retroarch shows 1.15, and brew shows version as 1.15 as well.

Environment information

Buzhanin commented 5 months ago

It's not a problem of cocoa input driver. This driver is responsible for mouse and keyboard input. The problem is in mfi controller driver.