Сейчас многие не очень новые игры с легкостью запускается под wine, но в трехмерных их представителях бывают проблемы с мышью, из-за которых играть становится невозможно.
Я это починил и делюсь как
Я пробовал это решение на двух играх: Aliens versus Predator(3D action) и Clusterball(аркадная леталка)
Проблема примерно в следующем: мышь перемещается только в пределах разрешения экрана, из-за этого нельзя развернуться больше чем на 180 градусов в AvP, а в леталке поворачивать можно только короткими рывками.
Ход действий таков:
Надо скачать архив с исходниками, например так:
wget http://downloads.sourceforge.net/project/wine/Source/wine-1.1.33.tar.bz2?use_mirror=sunet
Потом распаковываем их
tar xf wine-1.1.33.tar.bz2
Переходим в папку с нужном файлом
cd ./wine-1.1.33/dlls/dinput
Создаем здесь файл mouse.patch со следующим содержанием(взят отсюда, там много других еще есть, для определенных игр и т.д.)
--- dlls/dinput/mouse.c_old 2008-03-03 11:14:47.000000000 +0100
+++ dlls/dinput/mouse.c 2008-03-10 19:23:21.000000000 +0100
@@ -306,7 +306,7 @@
wdata = pt1.y;
}
- This->need_warp = (pt.x || pt.y) && dwCoop & DISCL_EXCLUSIVE;
+ This->need_warp = (hook->pt.x<2 || hook->pt.y<2 || hook->pt.x>((2 * This->win_centerX)-2) || hook->pt.y>((2 * This->win_centerY)-2) );
break;
}
case WM_MOUSEWHEEL:
и накладываем патч
patch -p1 mouse.c mouse.patch
Потом переходим в папку с исходниками, и командуем обычные:
./configure
make
sudo make install
Перед make install желательно убедиться, чтобы в системе не был установлен пакет родной wine, если установлен - удалить.
Должно собраться и поставиться без ошибок.
Потом идем в папку с игрой и запускаем как обычно
wine AvP.exe
У меня главное меню запускается в окне, но потом разворачивается на весь экран и работает нормально.
Решение конечно не лучшее, как минимум потому, что не рекомендуется ставить софт из исходников в пакетных дистрибутивах без сборки пакета. Но зато работает.
пятница, 11 декабря 2009 г.
Мышь в 3D приложениях под wine.
Подписаться на:
Комментарии к сообщению (Atom)
5 комментариев:
А если дебку собрать, checkinstall?
Идея хорошая, но я не пробовал никогда. Надо попробовать, если получится, то допишу.
Могу посоветовать вам перед запуском игр под wine заходить на appdb. Это уже давний глюк, лечится путём добавления в ветку реестра "HKCU/Software/Wine/DirectInput" ключа "MouseWarpOverride" со значением "force". Об этом написано здесь: http://appdb.winehq.org/objectManager.php?sClass=version&iId=1183&sAllBugs
MouseWarpOverride - force, не во всех играх помогает. Только патч на wine помогает.
Отправить комментарий