SmiGes |
|
Темы:
166
Сообщения:
836
Участник с: 04 августа 2009
|
вообщем поставил его, запускаю, но с мышью траблы. погуглил и нашёл тему на форуме убунты, там говорилось что в консоле сталкера надо ввести input_exclusive_mode 0, ввёл, в меню главном мышь робит нормально, но вот в игре повернуться на 360° не получается, там ещё в теме говорилось что можно решить эту проблему, но как то всё поверхностно. полную how-to не нашёл, так что прошу помощи вдруг кто-нибудь уже сталкивался с этой проблемой и решил её.в данный момент версия вайна: smiges@desktop:~$ wine --version wine-1.3.0 smiges@desktop:~$ |
pztrn |
|
Темы:
23
Сообщения:
1436
Участник с: 20 сентября 2009
|
Можно взять wine из моего репа (если у вас i686) - патчил на эту же тему, в ладве мышка не поворачивалась больше чем на 180 градов. По идее должно исправить также и многие другие игры. Если у вас x86_64, то вот: PKGBUILD: # Maintainer: Adam Eberlin < ae at intellitech dot org > pkgname=wine-la2camera pkgver=20100816 pkgrel=1 pkgdesc="Interpreter for the Windows 3.x and Win32 APIs. Patched for 180 degrees mouse fix." url="http://www.winehq.com/" arch=('i686' 'x86_64') license=('LGPL') depends=( 'alsa-lib' 'dbus' 'gcc-libs' 'fontconfig' 'freeglut' 'freetype2' 'gtk2' 'lcms' 'libcups' 'libgl' 'libice' 'libjpeg' 'libldap' 'libpng' 'libsasl' 'libsm' 'libusb' 'libx11' 'libxau' 'libxcomposite' 'libxcursor' 'libxdamage' 'libxext' 'libxi' 'libxinerama' 'libxml2' 'libxrandr' 'libxrender' 'libxslt' 'libxt' 'libxtst' 'libxv' 'libxxf86vm' 'mesa' 'ncurses' 'openssl' 'libxxf86dga' 'openldap' 'pkgconfig' 'sane' 'xproto' 'giflib' 'isdn4k-utils' 'flex' ) [[ "${CARCH}" == 'x86_64' ]] && depends=( 'lib32-alsa-lib' 'lib32-dbus' 'lib32-gcc-libs' 'lib32-fontconfig' 'lib32-freeglut' 'lib32-freetype2' 'lib32-gtk2' 'lib32-lcms' 'lib32-libcups' 'lib32-libgl' 'lib32-libice' 'lib32-libjpeg' 'lib32-libldap' 'lib32-libpng' 'lib32-libsasl' 'lib32-libsm' 'lib32-libusb' 'lib32-libx11' 'lib32-libxau' 'lib32-libxcomposite' 'lib32-libxcursor' 'lib32-libxdamage' 'lib32-libxext' 'lib32-libxi' 'lib32-libxinerama' 'lib32-libxml2' 'lib32-libxrandr' 'lib32-libxrender' 'lib32-libxslt' 'lib32-libxt' 'lib32-libxtst' 'lib32-libxv' 'lib32-libxxf86vm' 'lib32-mesa' 'lib32-ncurses' 'lib32-openssl' 'libxxf86dga' 'openldap' 'pkgconfig' 'sane' 'xproto' 'giflib' 'isdn4k-utils' ) makedepends=('git' 'fakeroot' 'make' 'pkgconfig') conflicts=('bin32-wine' 'bin32-wine-suse' 'bin32-wine-war' 'wine' 'wine-git') replaces=() provides=("wine-git=$pkgver" "wine") backup=() source=() md5sums=() _gitroot="git://source.winehq.org/git/wine.git" _gitname="wine" build() { cd ${srcdir} msg "Connecting to GIT server...." if [ -d ${srcdir}/$_gitname ] ; then cd $_gitname && git pull origin msg "Local repository updated." else git clone $_gitroot $_gitname fi # git clone git://source.winehq.org/git/wine.git wine msg "GIT checkout done or server timeout" msg "Removing old build directory..." rm -Irf ${srcdir}/$_gitname-build msg "Creating new build directory..." cp -r ${srcdir}/$_gitname ${srcdir}/$_gitname-build cd ${srcdir}/$_gitname-build # Patches: msg "Applying patches..." patch -p1 < ${startdir}/MouseWarpOnRmbDownHackV4.patch # CARCH="i686" CHOST="i686-pc-linux-gnu" CFLAGS="-march=i686 -mtune=generic -pipe" CXXFLAGS="-march=i686 -mtune=generic -pipe" LDFLAGS="-L/opt/lib32/usr/lib" ./configure --verbose --prefix=/usr --libdir=/opt/lib32/usr/lib msg "Starting make..." ./configure --verbose --prefix=/usr #make clean make || return 1 make DESTDIR=${pkgdir} install || return 1 find ${pkgdir} -type f -name '*.la' -exec rm {} \; } MouseWarpOnRmbDownHackV4.patch: --- wine-1.1.3/dlls/dinput/mouse.c 2008-08-24 03:13:36.924717247 +0600 +++ wine-1.1.3-rm/dlls/dinput/mouse.c 2008-08-24 03:19:25.240715877 +0600 @@ -49,12 +49,15 @@ static const IDirectInputDevice8AVtbl SysMouseAvt; static const IDirectInputDevice8WVtbl SysMouseWvt; +int rmb_down_since; + typedef struct SysMouseImpl SysMouseImpl; typedef enum { WARP_DEFAULT, WARP_DISABLE, + WARP_RMB, WARP_FORCE_ON } WARP_MOUSE; @@ -203,6 +206,8 @@ { if (!strcasecmp(buffer, "disable")) newDevice->warp_override = WARP_DISABLE; + else if (!strcasecmp(buffer, "rmb")) + newDevice->warp_override = WARP_RMB; else if (!strcasecmp(buffer, "force")) newDevice->warp_override = WARP_FORCE_ON; } @@ -329,9 +334,18 @@ wdata = pt1.y; } + if(This->warp_override == WARP_RMB) { + This->need_warp = 0; + if(This->m_state.rgbButtons[1]){ + if(GetCurrentTime()-rmb_down_since>100){ + This->need_warp = (pt.x || pt.y); + } + } + } else { This->need_warp = This->warp_override != WARP_DISABLE && (pt.x || pt.y) && (dwCoop & DISCL_EXCLUSIVE || This->warp_override == WARP_FORCE_ON); + } break; } case WM_MOUSEWHEEL: @@ -348,6 +362,7 @@ break; case WM_RBUTTONDOWN: inst_id = DIDFT_MAKEINSTANCE(WINE_MOUSE_BUTTONS_INSTANCE + 1) | DIDFT_PSHBUTTON; + if(This->warp_override == WARP_RMB) rmb_down_since = GetCurrentTime(); This->m_state.rgbButtons[1] = wdata = 0x80; break; case WM_RBUTTONUP: Также вам будет нужен этот reg-файл. За хинты благодарим rm_. ВОРНИНГ! Автор предупреждает о возможном падении 3D-производительности! |
wilful |
|
Темы:
23
Сообщения:
312
Участник с: 24 мая 2009
|
Как вариант, если не поможет, попробуй установи через winegame (есть в комьюнити репе!). Сам только вчера тулзу поставил, в списке видел Сталкера. Сам хочу через него Фолаут 3 попробовать поставить ^_^ |
SmiGes |
|
Темы:
166
Сообщения:
836
Участник с: 04 августа 2009
|
поставил я твой вайн, но чёто всеравно больше чем на 180 ° не поворачивается |
wilful |
|
Темы:
23
Сообщения:
312
Участник с: 24 мая 2009
|
SmiGesЭт не мой ^_^ |
SmiGes |
|
Темы:
166
Сообщения:
836
Участник с: 04 августа 2009
|
wilfulэто я PoZiTPoHу говорюSmiGesЭт не мой ^_^ |
SmiGes |
|
Темы:
166
Сообщения:
836
Участник с: 04 августа 2009
|
ну так как думаете что придумать, полюбому решается трабла |