ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
23.34k stars 1.02k forks source link

Hatsune Miku: Project DIVA Mega Mix+ (1761390) #5982

Open MukiEX opened 1 year ago

MukiEX commented 1 year ago

Compatibility Report

System Information

Steam Deck 7/9/2022 Delivery

I confirm:

Symptoms

First off, the game itself loads and runs correctly. This is a device input issue.

A. Context

Project Diva Mega Mix + on Steam can automatically detect two controllers from Hori: HORI NSW-230 - Hatsune Miku Project DIVA MEGA39's for Nintendo Switch HORI PS4-161 - Hatsune Miku Project DIVA Future Tone DX Those product numbers should show the devices in question is searched for online.

Both controllers feature an "arcade mode", where the 32 touch points on the LED touch slider are converted into analog stick output.

The game has a special setting for those controllers here:

  1. Rhythm Game => Customize (button) => Game/Control Config => Arcade Controller Settings
  2. Set "Arcade Controller" to "Enable"

Once that is set, and if the game detects either of the above Hori controllers, the slider input behaves, in-game, nearly identical to how the slider behaves on a Project Diva Future Tone arcade machine, by effectively decoding the information coming out of the left and right analog sticks, and converting them into basically a multi-touch position on a slider panel.

A quick video about this can be found here - https://www.youtube.com/watch?v=pCkugZNxIxM A more in-depth breakdown for the Slider behavior can be found in the "Notes" section of this README: https://gist.github.com/dogtopus/48ad10409aa4ad5c408e31287623e167

However, detection of those controllers is a hard requirement for this feature to work. If you set the above option, but the controllers are not detected, the game will refuse to accept any joystick input and convert it into slider information.

My guess, and this is primarily a guess (as there are other devices that can fool the game by spoofing these values and behaving as a Switch or PS4 controller, respectively), the game likely uses VID/PID and/or Vendor String information to confirm a given controller is plugged in. For what it's worth, here's the information on both of those:

The Hori PS4-161 Hatsune Miku Project DIVA Future Tone DX controller: Device Name - HORI HATSUNE MIKU 39S CONTROLLER VID / VendorID - 0F0D PID / ProductID - 013C

The Hori NSW-230 - Hatsune Miku Project DIVA MEGA39's for Nintendo Switch controller: Device Name - HORI HATSUNE MIKU 39S CONTROLLER VID / VendorID - 0F0D PID / ProductID - 00FB

B. The Problem:

On the Steam Deck, the Hori Arcade controllers are not detected by the game when plugged in, either before or after the game is started. As such, the slider feature on the controllers, as-is, will not function in the game. They also are not mapped correctly; this is another thing the game does if the controllers are detected in Windows. Without that detection, the game basically maps them like generic game joysticks, resulting in (assuming for a Playstation button layout) the Square button being mapped to where the Circle button should be, among other things.

C: The Solution?

Whether that's because Wine doesn't pass that USB device info directly to software by default, that isn't a feature, or the game is using something else entirely to detect the controllers in question, I'm not sure. If there's a way to spoof this info to a running game process for testing, I would be more than happy to try it out.

If there's any kind of "usb device dump" that would help further narrow down the issue, I would also be happy to provide that. I've got a Linux server at home that I can plug the controller into if that's helpful as well.

Raklodder commented 1 year ago

00011

I'm not sure where to file my bug, but here goes (please help to point me in the right direction):

When I go outside of the game (either by using my "windows" key or alt+tab) it becomes unresponsive.

I also noticed that all of my steam notifications now are shown in my top left corner (?) instead of the lower right.

Proton logfile: https://gist.github.com/a109bbaff6da3d3d5727efd8b76f9223 Full system configuration: https://gist.github.com/acd890d8d6ca7ac91116bba213b2d206

Steps

Result

MukiEX commented 6 months ago

As an update, I did try the WinUSB workaround, but it didn't seem to have any effect. Sadly, as far as I can tell, there's no way to verify if the game is properly detecting the controller without actually starting up a song and checking if the slider noises are made.

Yasito commented 6 months ago

From someone who owns the HORI NSW-230, while the buttons seem to work with some manual mapping and the Steam Deck detects it as "HORI HATSUNE MIKU 39S CONTROLLER", the game itself indeed doesn't recognise the controller as intended with my Steam Deck. The whole slider input (Arcade Mode) doesn't work at all unfortunately.

I hope as well this issue will be sorted out.