V-Rally: Multiplayer Championship Edition won't detect the controller
Closed this issue · 8 comments
Furthermore, the game won't launch with Hookshot.
Xidi v4.0.0, Windows 10 21H1 x64, 8Bitdo SN30 Pro+
Xidi_DInput_VRdirectx.exe_7544.log
Xidi_WinMM__HookshotLauncher_VRdirectx.exe_8084.log
Xidi_HookModule__HookshotLauncher_VRdirectx.exe_8084.log
It doesn't look like this game needs Hookshot. What happens if you use the DInput (not DInput8 and not WinMM) form of Xidi by itself?
No detection.
Xidi_DInput_VRdirectx.exe_5672.log
Also without Xidi this game detects triggers as analogs (Throttle Up & Throttle Down).
In the log I see lines like this:
[06/12/2022 00:07:57] [I] Invoked function Xidi::VirtualDirectInputDevice<0>::SetProperty() on Xidi virtual controller 1, result = 0x80004001, property = DIPROP_AUTOCENTER, value = { dwData = 1 }.
Right after that the game bails on the specific virtual controller in question and moves to the next one. The game is trying to enable autocentering (DIPROP_AUTOCENTER
being set to a value of DIPROPAUTOCENTER_ON
, which maps to 1), and Xidi is rejecting it with code 0x80004001 (which maps to DIERR_UNSUPPORTED
).
I suspect that the fix for this, at least in part, is to make Xidi silently support these types properties even if Xidi doesn't actually use them for anything.
Please give this development version a try. It contains e14bd44 which should fix the issue, assuming its root cause is related to the autocenter property. If the problem is not resolved please post the log obtained from this development version.
Still nothing.
It certainly got further along this time now that the autocenter property is "supported" by Xidi. In any event, there were a few other game-specific issues (bugs in the game's code, even) that were preventing the Xidi virtual controller from working:
-
The game tries to poll virtual controllers, even though they don't require polling. Normally games should accept the documented return code
DI_NOEFFECT
as a way of indicating success, but this particular game insists onDI_OK
. Since polling is a no-op, 13523a2 changesDI_NOEFFECT
toDI_OK
for polling attempts. -
Even without Xidi, the game has issues getting in-game input from the correct controller when multiple controllers are plugged in. Since Xidi currently always presents 4 controllers to the game, naturally this presents a problem. This is an implementation issue with the game, not a bug in Xidi. Nevertheless, 8d3357c adds a workaround.
Please give this revised development version a try and use the following as your Xidi.ini
configuration file.
[Workarounds]
MaxVirtualControllerCount = 1
Fixed in v4.0.2 but please use this configuration file to invoke the workarounds needed to make Xidi work with this game.