Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to get working controller in Pinball FX2 #2

Closed
C0rn3j opened this issue Jul 29, 2017 · 17 comments
Closed

Unable to get working controller in Pinball FX2 #2

C0rn3j opened this issue Jul 29, 2017 · 17 comments

Comments

@C0rn3j
Copy link

C0rn3j commented Jul 29, 2017

http://store.steampowered.com/app/226980/

The game is F2P, so feel free to test it yourself, maybe I'm doing something stupid.

I was able to get the controller to work in Dark Souls 2 SotFS, but when I quit the game and started the pinball game instead, it didn't work. I did copy the dll to the game folder with the executable.

@kozec
Copy link
Owner

kozec commented Jul 29, 2017

Yeah, Microsoft Studios logo always promises "fun" :(

It appears to call some undocumented functions in that dll. I'll try to check if they are documented anywhere at least unofficially, because unless they are implemented, that one will just crash.

This should also give you answer on why I'm not linking this from SC-Controller. It's still kinda work in progress and I know very little about coding for Windows/Wine, so I can't guarantee it will not eat you while you sleep :)

@C0rn3j
Copy link
Author

C0rn3j commented Jul 30, 2017

because unless they are implemented, that one will just crash.

the 32 bit DLL crashes, the 64 bit DLL loads the game but does nothing.

This should also give you answer on why I'm not linking this from SC-Controller.

I'd take WIP 0-config DLL any day over an annoying .exe you have to configure, even though it may not work with everything. "Here be dragons but you may try this out" would be very welcome ^^

Yeah, Microsoft Studios logo always promises "fun" :(

The wonders of proprietary software and Microsoft's documentation :P
Even WINE project apparently had to fix their documentation sometimes.

@kozec
Copy link
Owner

kozec commented Jul 30, 2017

the 32 bit DLL crashes, the 64 bit DLL loads the game but does nothing.

Game is 32bit, so it will ignore 64bit dll.

I'd take WIP 0-config DLL any day over an annoying .exe you have to configure, even though it may not work with everything. "Here be dragons but you may try this out" would be very welcome ^^

I'm actually playing with this right now and have dll that doesn't crash with anything. It also does nothing, but that may be easy part now :)

@kozec kozec closed this as completed in f93c41e Jul 30, 2017
@C0rn3j
Copy link
Author

C0rn3j commented Jul 30, 2017

The controller now "works" but seems like if I try to select a table it moves by 2 tables instead of just one, and the table info is now endlessly opening and closing.

EDIT: Apart from that the game seems playable, but there is some glitching with some menus for sure.

EDIT2: After playing one table, the table selection fixed itself (at least for this instance) but the table info is still horribly broken and viewing a table guide just endlessly scrolls it on its own.

EDIT: That is with both 32-bit DLLs copied in the game folder

@kozec
Copy link
Owner

kozec commented Jul 30, 2017

The controller now "works" but seems like if I try to select a table it moves by 2 tables instead of just one

Wine duplicates every gamepad it finds, once for evdev and once for js input. Maybe that Pinball captures inputs from "both" gamepads?

// edit: Yep, that appears to be case.

@kozec
Copy link
Owner

kozec commented Jul 30, 2017

EDIT2: After playing one table, the table selection fixed itself (at least for this instance) but the table info is still horribly broken and viewing a table guide just endlessly scrolls it on its own.

I'm not sure what should I press to get table info :D

Anyway, with that anti-doubling fix above, there is good chance it will work as it should.

@C0rn3j
Copy link
Author

C0rn3j commented Jul 30, 2017

Could you please give me a list of your WINE overrides? I tried to fix it by removing all my overrides (about a 100 since I was testing stuff), but now I can't figure out which ones I actually need to make the controller work.

I tried adding the 2 xinput overrides as native, then builtin, but that doesn't work.

EDIT: Also perhaps add those to the README.MD, since it's only by chance I had them set correctly from before.

EDIT2: Nvm I'm an idiot, adding those 2 xinput overrides actually works, but one cannot accidentally select "xaoput1_3" or whatever else that was.

EDIT3: This actually fixed everything except the annoying descriptions. They still blink and make noise like crazy.

https://www.youtube.com/watch?v=wkzeUn_1QuM&feature=youtu.be

@kozec
Copy link
Owner

kozec commented Jul 30, 2017

mscoree (native)
msvcr100 (native, builtin)
xinput1_1 (native)
xinput1_2 (native)
xinput1_3 (native)
xinput9_1_0 (native)

But I don't think anything is actually needed, dll located next to exe should always take precedense.

@C0rn3j
Copy link
Author

C0rn3j commented Jul 30, 2017

Well the controller doesn't work for me on wine-staging 2.13 without the 2 overrides, I'd denote those in the README.MD.

xinput1_3 (native, then built in)
xinput9_1_0 (native, then built in)

Does it work for you if you remove your overrides?

Also, do you have the same issue as me on the video?

EDIT: Btw the readme has a typo
"if first one doesn't works", the s shouldn't be there.

@kozec
Copy link
Owner

kozec commented Jul 30, 2017

It shouldn't behave like that, but it appears you are right.

Also, do you have the same issue as me on the video?

Nope, I can select those, only with mouse, but without any blinking nor other isssue.

@C0rn3j
Copy link
Author

C0rn3j commented Jul 30, 2017

Urgh, time to track it down.

if you only use those 2 overrides, does the issue pop up?

What version of WINE are you using? Are you using staging or wine-devel? Any other configuration?(virtual desktop, CSMT on,...)

Any weird prefix you're using in sc-controller? I just use the "Xbox Controller" default one and otherwise don't touch the software.

32-bit or 64-bit WINE prefix?

WINE windows version?

EDIT: Also if I go to the controls options I get this constant switching to the left, seems like there's a constant input that gets spammed, any way I can track it down other than trying to replicate your env?

https://youtu.be/2tHIuAaUZFk

EDIT2: The issues keep happening even after turning the controller off or even when starting the game with controller turned off, seems it's the DLLs that break the game.

@kozec
Copy link
Owner

kozec commented Jul 31, 2017

if you only use those 2 overrides, does the issue pop up?

I'll check that later but I doubt it will be reason.

What version of WINE are you using? Are you using staging or wine-devel? Any other configuration?(virtual desktop, CSMT on,...)

32bit, staging 2.13 as well. I'm using PlayOnLinux, so build is from their repository. It's default install for Steam with .NET 4.5 installed on top, Windows version set to Win7.

Any weird prefix you're using in sc-controller? I just use the "Xbox Controller" default one and otherwise don't touch the software.

Default Xbox Controller and XBox with high precision camera works for me as well.

EDIT2: The issues keep happening even after turning the controller off or even when starting the game with controller turned off, seems it's the DLLs that break the game.

Turning controller off doesn't actually disables emulated one, so that's expected :)

Can you grab some XInput tester (for windows ofc) and check inputs in it? I'm using XInput test from x360ce package. Also, please make sure that you are running very last commit as that game had issues on my side before as well.

@C0rn3j
Copy link
Author

C0rn3j commented Jul 31, 2017

I'm unable to use xinputtest (found some 2010 version of XinputTest.exe), suggestions on how to get it to run or suggestions for some other tool? (tried winetricks dotnet45 and winetricks dotnet11)

Also the bug still happens on a clean 32 bit prefix.

@kozec
Copy link
Owner

kozec commented Jul 31, 2017

if you only use those 2 overrides, does the issue pop up?

So, I've tested, just those 2 overrides are enough to make it work on my side.

I'm unable to use xinputtest (found some 2010 version of XinputTest.exe), suggestions on how to get it to run or suggestions for some other tool? (tried winetricks dotnet45 and winetricks dotnet11)

Try this one, it seems to be based on QT and works as well.

@kozec
Copy link
Owner

kozec commented Jul 31, 2017

Apparently, I somehow managed to not copy right stick data in last three commits and it looks like right stick is what controls that blinking area.

So, I'm not saying that was reason for all your problems, but I really can't deny that possibility...

@C0rn3j
Copy link
Author

C0rn3j commented Jul 31, 2017

That fixed the blinking issues!!
It's very weird that you did not have the issue, did you not commit fixes you were using yourself by accident? O.o

Self-moving menus are still a thing though (it's as if you held the d-pad or the left joystick to the right), but it only happen sometimes. Also sometimes it only moves once to the right when entering some menu, and not as if being held.

I'm wondering if the cause is butterfingers touching the D-pad, because when I try to somehow reproduce it, I'm not able to.

@kozec
Copy link
Owner

kozec commented Jul 31, 2017

It's very weird that you did not have the issue, did you not commit fixes you were using yourself by accident? O.o

I'm guessing that by not setting those values, random uninitialized data ended up in there. So maybe I was just lucky to get numbers small enough for game to ignore them. Tester shown them zeroed.

I'm wondering if the cause is butterfingers touching the D-pad, because when I try to somehow reproduce it, I'm not able to.

That Pinball reacts weirdly to diagonal dpad inputs, so I'd guess butterfingers :D Frankly, reproducing anything in there doesn't look like good idea, that's why I asked about that testing application :)

If tester shows correct values while game doesn't, it's most likely problem in game itself.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants