LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Games (https://www.linuxquestions.org/questions/linux-games-33/)
-   -   Wine ignoring keyboard (https://www.linuxquestions.org/questions/linux-games-33/wine-ignoring-keyboard-223195/)

elvee 08-27-2004 02:49 PM

Wine ignoring keyboard
 
I'm running Wine 20040813. I've had trouble with several games with the keyboard. It seems wine is completely ignoring it.
The output after running one of the games (NiM-2) is this:
Quote:

fixme:ddraw:Main_DirectDraw_SetCooperativeLevel (0x403ad578)->(00000000,00000008)
fixme:ddraw:Main_DirectDraw_SetCooperativeLevel (0x403d0620)->(00010022,00000008)
fixme:ddraw:Main_DirectDraw_SetCooperativeLevel (0x403d0620)->(00010022,00000011)
fixme:x11drv:X11DRV_desktop_SetCurrentMode Cannot change screen BPP from 32 to 16
fixme:x11drv:X11DRV_desktop_SetCurrentMode Cannot change screen BPP from 32 to 16
fixme:ddraw:Main_DirectDraw_GetMonitorFrequency (0x403d0620)->(0x406cfc1c) returns 60 Hz always
fixme:ddraw:DIB_DirectDrawSurface_Blt dwFlags DDBLT_WAIT and/or DDBLT_ASYNC: can't handle right now.
fixme:dsound:IDirectSoundImpl_SetCooperativeLevel level=DSSCL_PRIORITY not fully supported
fixme:wave:DSD_CreateSecondaryBuffer (0x403d2098,0x406cfdfc,180a8,0,0x403e55c4,0x4a2a6a3c,0x403e55a0): stub
I don't see any keyboard related messages. Does anyone know how to fix this?

So far I've noticed it with these games:
NiM-2 (zaphire.ca)
NiM-X (Zaphire.ca)
Icy Tower (can be found on megagames.com under freeware)

My wine config is:

Quote:

WINE REGISTRY Version 2
;; All keys relative to \\Machine\\Software\\Wine\\Wine\\Config

;; If you think it is necessary to show others your complete config for a
;; bug report, filter out empty lines and comments with
;; grep -v "^;" ~/.wine/config | grep '.'
;;
;; MS-DOS drives configuration
;;
;; Each section has the following format:
;; [Drive X]
;; "Path"="xxx" (Unix path for drive root)
;; "Type"="xxx" (supported types are 'floppy', 'hd', 'cdrom' and 'network')
;; "Label"="xxx" (drive label, at most 11 characters)
;; "Serial"="xxx" (serial number, 8 characters hexadecimal number)
;; "Filesystem"="xxx" (supported types are 'msdos'/'dos'/'fat', 'win95'/'vfat', 'unix')
;; This is the FS Wine is supposed to emulate on a certain
;; directory structure.
;; Recommended:
;; - "win95" for ext2fs, VFAT and FAT32
;; - "msdos" for FAT16 (ugly, upgrading to VFAT driver strongly recommended)
;; DON'T use "unix" unless you intend to port programs using Winelib !
;; "Device"="/dev/xx" (only if you want to allow raw device access)
;;
[Drive A]
"Path" = "/mnt/fd0"
"Type" = "floppy"
"Label" = "Floppy"
"Serial" = "87654321"
"Device" = "/dev/fd0"

[Drive C]
"Path" = "%HOME%/.wine/fake_windows"
"Type" = "hd"
"Label" = "MS-DOS"

[Drive D]
"Path" = "/mnt/cdrom"
"Type" = "cdrom"
"Label" = "CD-Rom"
; make sure that device is correct and has proper permissions !
"Device" = "/dev/hdc"

[Drive E]
"Path" = "/tmp"
"Type" = "hd"
"Label" = "Tmp Drive"

[Drive F]
"Path" = "%HOME%"
"Type" = "network"
"Label" = "Home"

[Drive Z]
"Path" = "/"
"Type" = "hd"
"Label" = "Root"

[wine]
"Windows" = "c:\\windows"
"System" = "c:\\windows\\system"
"Temp" = "e:\\"
"Path" = "c:\\windows;c:\\windows\\system;e:\\;e:\\test;f:\\"
"Profile" = "c:\\windows\\Profiles\\Administrator"
"GraphicsDriver" = "x11drv"
;"ShowDirSymlinks" = "1"
;"ShowDotFiles" = "1"
"ShellLinker" = "wineshelllink"

# [wineconf]

[Version]
; Windows version to imitate (win95,win98,winme,nt351,nt40,win2k,winxp,win2k3,win20,win30,win31)
"Windows" = "win98"
; DOS version to imitate
;"DOS" = "6.22"

; Be careful here, wrong DllOverrides settings have the potential
; to pretty much kill your setup.
[DllOverrides]
; some dlls you may want to change
"oleaut32" = "native, builtin"
"ole32" = "native, builtin"
"rpcrt4" = "native, builtin"
"comdlg32" = "builtin, native"
"shell32" = "builtin, native"
"shfolder" = "builtin, native"
"shlwapi" = "native, builtin"
"shdocvw" = "native, builtin"
"advapi32" = "builtin, native"
"msvcrt" = "native, builtin"
"mciavi.drv" = "native, builtin"
"mcianim.drv" = "native, builtin"
"msi" = "native, builtin"
"uxtheme" = ""
; you can specify applications too
; this one will apply for all notepad.exe
;"*notepad.exe" = "native, builtin"
; this one will apply only for a particular file
;"C:\\windows\\regedit.exe" = "native, builtin"
; default for all other dlls
"*" = "builtin, native"

[x11drv]
; Number of colors to allocate from the system palette
"AllocSystemColors" = "100"
; Use a private color map
"PrivateColorMap" = "N"
; Favor correctness over speed in some graphics operations
"PerfectGraphics" = "N"
; Color depth to use on multi-depth screens
;;"ScreenDepth" = "16"
; Allow the window manager to manage created windows
"Managed" = "Y"
; Use a desktop window of 640x480 for Wine
"Desktop" = "800x600"
; Use XFree86 DGA extension if present
; (make sure /dev/mem is accessible by you !)
"UseDGA" = "Y"
; Use XVidMode extension if present
"UseXVidMode" = "Y"
; Use XRandR extension if present
"UseXRandR" = "Y"
; Use the take focus protocol
"UseTakeFocus" = "Y"
; Enable DirectX mouse grab
"DXGrab" = "Y"
; Create the desktop window with a double-buffered visual
; (useful to play OpenGL games)
"DesktopDoubleBuffered" = "Y"
; Run in synchronous mode (useful for debugging X11 problems)
;;"Synchronous" = "Y"
;
; Use the Render extension to render client side fonts (default "Y")
;;"ClientSideWithRender" = "Y"
; Fallback on X core requests to render client side fonts (default "Y")
;;"ClientSideWithCore" = "Y"
; Set both of the previous two to "N" in order to force X11 server side fonts
;
; Anti-alias fonts if using the Render extension (default "Y")
;;"ClientSideAntiAliasWithRender" = "Y"
; Anti-alias fonts if using core requests fallback (default "Y")
;;"ClientSideAntiAliasWithCore" = "Y"
;

[fonts]
;Read the Fonts topic in the Wine User Guide before adding aliases
;See a couple of examples for russian users below
"Resolution" = "96"
"Default" = "-adobe-helvetica-"
"DefaultFixed" = "fixed"
"DefaultSerif" = "-adobe-times-"
"DefaultSansSerif" = "-adobe-helvetica-"

;; default TrueType fonts with russian koi8-r encoding
;"Default" = "-monotype-arial-*-*-*--*-*-*-*-*-*-koi8-r"
;"DefaultFixed" = "-monotype-courier new-*-*-*--*-*-*-*-*-*-koi8-r"
;"DefaultSerif" = "-monotype-times new roman-*-*-*--*-*-*-*-*-*-koi8-r"
;"DefaultSansSerif" = "-monotype-arial-*-*-*--*-*-*-*-*-*-koi8-r"
;; default cyrillic bitmap X fonts
;"Default" = "-cronyx-helvetica-"
;"DefaultFixed" = "fixed"
;"DefaultSerif" = "-cronyx-times-"
;"DefaultSansSerif" = "-cronyx-helvetica-"

; the TrueType font dirs you want to make accessible to wine
[FontDirs]
;"dir1" = "/usr/X11R6/lib/X11/fonts/TrueType"
;"dir2" = "/usr/share/fonts/truetype"
;"dir3" = "/usr/X11R6/lib/X11/fonts/TT"
;"dir4" = "/usr/share/fonts/TT"

[serialports]
"Com1" = "/dev/ttyS0"
"Com2" = "/dev/ttyS1"
"Com3" = "/dev/ttyS2"
"Com4" = "/dev/modem"

[parallelports]
"Lpt1" = "/dev/lp0"

[ppdev]
;; key: io-base of the emulated port
;; value : parport-device{,timeout}
;; timeout for auto closing an open device ( not yet implemented)
;"378" = "/dev/parport0"
;"278" = "/dev/parport1"
;"3bc" = "/dev/parport2"

[spooler]
"FILE:" = "tmp.ps"
"LPT1:" = "|lpr"
"LPT2:" = "|gs -sDEVICE=bj200 -sOutputFile=/tmp/fred -q -"
"LPT3:" = "/dev/lp3"

[ports]
;"read" = "0x779,0x379,0x280-0x2a0"
;"write" = "0x779,0x379,0x280-0x2a0"

[Debug]
;"RelayExclude" = "RtlEnterCriticalSection;RtlLeaveCriticalSection"
;"RelayInclude" = "user32.CreateWindowA"
;"RelayFromExclude" = "user32;x11drv"
;"RelayFromInclude" = "sol.exe"
;"SnoopExclude" = "RtlEnterCriticalSection;RtlLeaveCriticalSection"
;"SpyExclude" = "WM_SIZE;WM_TIMER;"

[registry]
;These are all booleans. Y/y/T/t/1 are true, N/n/F/f/0 are false.
;Defaults are read all, write to Home
; Where to find the global registries
;"GlobalRegistryDir" = "/etc";
; Global registries (stored in /etc)
"LoadGlobalRegistryFiles" = "Y"
; Home registries (stored in ~user/.wine/)
"LoadHomeRegistryFiles" = "Y"
; Load Windows registries from the Windows directory
"LoadWindowsRegistryFiles" = "Y"
; TRY to write all changes to home registries
"WritetoHomeRegistryFiles" = "Y"
; Registry periodic save timeout in seconds
; "PeriodicSave" = "600"
; Save only modified keys
"SaveOnlyUpdatedKeys" = "Y"

[Tweak.Layout]
;; supported styles are 'Win31'(default), 'Win95', 'Win98'
;; this has *nothing* to do with the windows version Wine returns:
;; set the "Windows" value in the [Version] section if you want that.
"WineLook" = "Win95"

[Clipboard]
"ClearAllSelections" = "0"
"PersistentSelection" = "1"
"UsePrimary" = "0"

; List of all directories directly contain .AFM files
[afmdirs]
"1" = "/usr/share/ghostscript/fonts"
"2" = "/usr/share/a2ps/afm"
"3" = "/usr/share/enscript"
"4" = "/usr/X11R6/lib/X11/fonts/Type1"

[WinMM]
; Uncomment the "Drivers" line matching your sound setting.

"Drivers" = "wineoss.drv" ; default for most common configurations
;"Drivers" = "winearts.drv" ; for KDE
;"Drivers" = "winealsa.drv" ; for ALSA users
;"Drivers" = "winejack.drv" ; for Jack sound server
;"Drivers" = "winenas.drv" ; for NAS sound system
;"Drivers" = "wineaudioio.drv" ; for Solaris machines
;"Drivers" = "" ; to disable sound
"WaveMapper" = "msacm.drv"
"MidiMapper" = "midimap.drv"

[dsound]
;; HEL only: Number of waveOut fragments ahead to mix in new buffers.
;"HELmargin" = "5"
;; HEL only: Number of waveOut fragments ahead to queue to driver.
;"HELqueue" = "5"
;; Max number of fragments to prebuffer
;"SndQueueMax" = "28"
;; Min number of fragments to prebuffer
;"SndQueueMin" = "12"
;; Forces emulation mode (using wave api)
;"HardwareAcceleration" = "Emulation"
;; Sets default playback device (0 - number of devices - 1)
;"DefaultPlayback" = "0" ; use first device (/dev/dsp)
;"DefaultPlayback" = "1" ; use second device (/dev/dsp1)
;"DefaultPlayback" = "2" ; use third device (/dev/dsp2)
;; Sets default capture device (0 - number of devices - 1)
;"DefaultCapture" = "0" ; use first device (/dev/dsp)
;"DefaultCapture" = "1" ; use second device (/dev/dsp1)
;"DefaultCapture" = "2" ; use third device (/dev/dsp2)

[Network]
;; Use the DNS (Unix) host name always as NetBIOS "ComputerName" (boolean, default "Y").
;; Set to N if you need a persistent NetBIOS ComputerName that possibly differs
;; from the Unix host name. You'll need to set ComputerName in
;; HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName, too.
;"UseDnsComputerName" = "N"

[AppDefaults\\\\ie6setup.exe\\\\DllOverrides]
# our setupapi is nowhere near complete
"setupapi" = "native, builtin"
"setupx" = "native, builtin"
# Parts of the actual IE code are in wininet, we don't currently attempt to implement IE so use native here
"wininet" = "native, builtin"
"advapi" = "builtin"

[AppDefaults\\\\acmsetup.exe\\\\DllOverrides]
"*comctl32" = "builtin, native"
"*commctrl" = "builtin, native"

[AppDefaults\\\\rundll32.exe\\\\DllOverrides]
"*comctl32" = "builtin, native"
"*commctrl" = "builtin, native"




;; sample AppDefaults entries

; 3 InstallShield versions who like to put their full screen window in front,
; without any chance to switch to another X11 application.
; So just catch them in a desktop window.

[AppDefaults\\_INS0432._MP\\x11drv]
"Desktop" = "800x600"

[AppDefaults\\_INS0466._MP\\x11drv]
"Desktop" = "800x600"

[AppDefaults\\_INS0576._MP\\x11drv]
"Desktop" = "800x600"

[AppDefaults\\_INS5176._MP\\x11drv]
"Desktop" = "800x600"

[AppDefaults\\_INS5576._MP\\x11drv]
"Desktop" = "800x600"

[AppDefaults\\iexplore.exe\\DllOverrides]
"ole32" = "native"
"oleaut32" = "native"
"rpcrt4" = "native"
"urlmon" = "native"
"comctl32" = "builtin"
"wininet" = "native"
"shdocvw" = "native"
"shlwapi" = "native"
"crypt32" = "native"
"mshtml" = "native";

[AppDefaults\\paltalk.exe\\DllOverrides]
"commctrl" = "native"
"comctl32" = "native"
"riched20" = "native"
"riched32" = "native"

[AppDefaults\\xnews.exe\\DllOverrides]
"riched32" = "native"

;[AppDefaults\\setup.exe\\Version]
;"Windows" = "win98"

;[AppDefaults\\setup.exe\\x11drv]
;"Desktop" = "800x600"

;
;[AppDefaults\\sol.exe\\Version]
;"Windows" = "nt40"
;
;; Some games (Quake 2, UT) refuse to accept emulated dsound devices.
;; You can add an AppDefault entry like this for such cases.
;[AppDefaults\\pickygame.exe\\dsound]
;"EmulDriver" = "N"

# [/wineconf]

RHLinuxGUY 08-27-2004 08:13 PM

I had a problem similar to this, and the way I fixed it was to MINIMIZE ur console where u put the command in. Or just make a desktop shortcut with the command in it. Reason was because whenever u type in ur game (or think u are) the actual keystrokes are going to the console.(in certain WINE releases) This happend to me in different wine release, majority of them were after the 20031212 release. (which in my opinion is the best of them all, just not the fastest) Try minimizing the console, and check the results, if it doesnt work then try another version of wine, namely 20031212. Old but it still comes through when I need it.

elvee 08-28-2004 12:26 AM

minimizing the terminal doesnt do anytihing. usign kde's run command, it doesnt even launch the game (makes the window and sizes it, but thats it). closing the terminal has no effect either.

I'll try a different version of wine... how do i check out a different version with cvs?

elvee 08-28-2004 08:55 PM

I just noticed the game left a log file... the only thing related to keyboard was this (i have no idea what it means)
Quote:

Keyboard is in polling mode!
@edit: I tried 2 other versions, including the one you mentioned. It did the exact same thing.

mhearn 09-01-2004 10:44 AM

It still ignores the keyboard even when in desktop mode?

elvee 09-01-2004 09:44 PM

Yes. With desktop or without, the keyboard doesn't work in either.

mhearn 09-02-2004 04:34 AM

Could you report this to wine-devel please

elvee 09-02-2004 11:42 PM

k. ill report it when i wake up.

Evert 09-04-2004 06:40 AM

Hmm... just happened to drop in here and see this by coincidence.

Quote:

I just noticed the game left a log file... the only thing related to keyboard was this (i have no idea what it means)
Is this from Icy Tower? If so, this message is actually helpful to me. Icy Tower uses the Allegro library, which doesn't work too well with wine (I can never get mouse or keyboard input from Allegro programs in wine). I may be able to figure out why and fix that now... on the other hand, if it's a problem with wine rather than Allegro, there's little I can do...

elvee 09-04-2004 05:16 PM

The same thing happened with icy tower, although that log file was from NiM-2. I'm fairly sure NiM-2 was made with allegro, so it very well may be a problem with allegro-wine compatability.

deimios666 09-13-2004 06:03 AM

I had the same problem with X-Com:Collector's edition but solved it.
The relevant part of my conf file:


; Number of colors to allocate from the system palette
"AllocSystemColors" = "100"
; Use a private color map
"PrivateColorMap" = "Y"
; Favor correctness over speed in some graphics operations
"PerfectGraphics" = "Y"
; Color depth to use on multi-depth screens
;;"ScreenDepth" = "16"
; Allow the window manager to manage created windows
;;"Managed" = "Y"
; Use a desktop window of 640x480 for Wine
;;"Desktop" = "640x480"
; Use XFree86 DGA extension if present
; (make sure /dev/mem is accessible by you !)
"UseDGA" = "Y"
; Use XVidMode extension if present
"UseXVidMode" = "Y"
; Use XRandR extension if present
"UseXRandR" = "Y"
; Use the take focus protocol
"UseTakeFocus" = "Y"
; Enable DirectX mouse grab
"DXGrab" = "Y"
; Create the desktop window with a double-buffered visual
; (useful to play OpenGL games)
"DesktopDoubleBuffered" = "N"
; Run in synchronous mode (useful for debugging X11 problems)
;;"Synchronous" = "Y"
;
; Use the Render extension to render client side fonts (default "Y")
;;"ClientSideWithRender" = "Y"
; Fallback on X core requests to render client side fonts (default "Y")
;;"ClientSideWithCore" = "Y"
; Set both of the previous two to "N" in order to force X11 server side fonts
;
; Anti-alias fonts if using the Render extension (default "Y")
;;"ClientSideAntiAliasWithRender" = "Y"
; Anti-alias fonts if using core requests fallback (default "Y")
;;"ClientSideAntiAliasWithCore" = "Y"
;

I run it as root (I know I'm stupid), and haven't touched the other part of the file. The solution is within this codeblock.

A sidenote : Wine runs the game perfectly while in windows it needs a patch to run correctly :D

After testing I found that setting it to window mode disables the keyboard.. But it does work with the above config.


All times are GMT -5. The time now is 11:38 AM.