Bioshock 2 No Keyboard

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
cbamber85
Level 1
Level 1
Posts: 8
Joined: Thu May 03, 2012 4:31 pm

Bioshock 2 No Keyboard

Post by cbamber85 »

Hi all,

Having followed the directions on the appdb page for Bioshock 2, the games loads fine and with sound. But I have the keyboard problem as mentioned in the link, which is at the start of each level you have to hit the spacebar to proceed, but for some reason it flatly ignores you. Note that the keyboard works fine, as I can use it to navigate the menu system in game and set keybindings.

The link provides 2 solutions:
1. Prepend env XMODIFIERS="" before the call to Bioshock. This has no effect for me.
2. Add -nointro to the game args, and change the Application Data/Bioshock2/User.ini file by replacing every instance of Space= with Space=AcceptOrSelect. Neither of these things have any effect for me. The advice for this option also includes renaming some bink video files to avoid the tedious developer studio videos on startup, but doing this bizarrely causes divide by zero exceptions to be thrown by Bioshock2.exe.

I have got this game through Steam, but the behaviour is identical whether starting it through Steam or the commandline. I am using Wine 1.5.3. I should note that there is a bug that has been reopened about this, but the last few entries have said that one of the above worked for them, and judging by the timestamp on them, it was for a previous version of Wine.

I have signed up to the bug tracker, but have yet to receive an email about being granted access to it, otherwise I would have added this there first. So if anyone had Bioshock 2 working on a prior version of Wine, but have yet to try for the latest, I'd really appreciate if do did and reply with your findings. Or if anyone found an alternate way of getting keyboard input going, sharing it would be great.

Thank you,
Cam
cbamber85
Level 1
Level 1
Posts: 8
Joined: Thu May 03, 2012 4:31 pm

Post by cbamber85 »

I've managed to skip the intro video by commenting out the entry in Bioshock2SP.ini. I also tried setting the Space=AcceptOrSelect entry in the default DefUser.ini, but it had no effect.

By looking at the wine debug output for keyboard and key, I've also noticed that X definitely receives the keypress and knows what it is:

Code: Select all

trace:key:TranslateMessage Translating key VK_SPACE (0020), scancode 0039
trace:key:X11DRV_ToUnicodeEx NumLockMask = 0010
trace:key:X11DRV_ToUnicodeEx AltGrMask = 0010
trace:key:X11DRV_ToUnicodeEx (0020, 0039) : faked state = 0x0010
trace:key:EVENT_event_to_vkey e->keycode = 65
trace:key:X11DRV_ToUnicodeEx Found keycode 65
trace:key:X11DRV_ToUnicodeEx type 2, window 3a0000e, state 0x0010, keycode 65
trace:key:X11DRV_ToUnicodeEx XmbLookupString needs 1 byte(s)
trace:key:X11DRV_ToUnicodeEx nbyte = 1, status 0x4
trace:key:X11DRV_ToUnicodeEx KeyPress : keysym=20 (space), # of chars=1 / " "
trace:key:X11DRV_ToUnicodeEx Translating char 0x20 to unicode
trace:key:X11DRV_ToUnicodeEx returning 1 with L" "
trace:key:TranslateMessage 1 -> PostMessageW(0x1009c,WM_CHAR,0020,00390001)
trace:key:X11DRV_KeyEvent type 3, window 3a0000e, state 0x0010, keycode 65
trace:key:X11DRV_KeyEvent nbyte = 1, status 0
trace:key:X11DRV_KeyEvent KeyRelease : keysym=20 (space), # of chars=1 / " "
trace:key:EVENT_event_to_vkey e->keycode = 65
trace:key:X11DRV_KeyEvent keycode 65 converted to vkey 0x20
trace:key:X11DRV_KeyEvent bScan = 0x39.
trace:key:X11DRV_send_keyboard_input hwnd 0x1009c vkey=0020 scan=0039 flags=0002
I still can't figure out why the keyboard works fine inside the menu system, but is ignored in the loading screen...
Bully Bull
Newbie
Newbie
Posts: 3
Joined: Sat May 12, 2012 7:47 am

Post by Bully Bull »

>> I also tried setting the Space=AcceptOrSelect entry in the default DefUser.ini, but it had no effect.

DefUser.ini is the wrong file :!:

try

.wine/drive_c/users/username/Application Data/Bioshock2/User.ini

(change .wine and username to your settings)
cbamber85
Level 1
Level 1
Posts: 8
Joined: Thu May 03, 2012 4:31 pm

Post by cbamber85 »

As noted in the OP, I tried that. I changed DefUser.ini just in case "my" ini file wasn't being read.
cbamber85
Level 1
Level 1
Posts: 8
Joined: Thu May 03, 2012 4:31 pm

Post by cbamber85 »

Same behaviour in 1.5.4.
cbamber85
Level 1
Level 1
Posts: 8
Joined: Thu May 03, 2012 4:31 pm

Post by cbamber85 »

Don't know how I didn't notice this before (although I have had a couple of WINE updates since the last post), but WINE is now printing this a couple of times:

Code: Select all

fixme:xinput:XInputSetState (0 0x26b41d0) Stub!
I'm guessing this is telling me that XInput is being switched off just as the loading screen appears, can anybody tell me what would cause this?
Locked