Для редактирования страниц необходимо зарегистрироваться в проекте.
|
Запуск Touhou в Linux: различия между версиями
Foobar (обсуждение | вклад) м (PCB: кривое управление) |
Foobar (обсуждение | вклад) м (переназначение кнопок) |
||
Строка 105: | Строка 105: | ||
Нативного эмулятора PC-98 для Линукса ещё пока нет (и не факт что будет), но не стоит расстраиваться, [http://www.geocities.jp/t98next/ T98-Next] отлично работает под вайном. | Нативного эмулятора PC-98 для Линукса ещё пока нет (и не факт что будет), но не стоит расстраиваться, [http://www.geocities.jp/t98next/ T98-Next] отлично работает под вайном. | ||
== Полезные приёмы == | |||
=== Переназначение клавиш === | |||
Если игра не позволяет переназначить кнопки, это можно сделать и средствами системы. Самый простой способ — воспользоваться командой ''xmodmap'' (эта утилита уже не является стандартной, но её всегда можно поставить отдельно). | |||
Переназначение делается простой командой | |||
xmodmap -e "keycode {код_кнопки} = {новое_значение}" | |||
или | |||
xmodmap -e "keysym {название_кнопки} = {новое_значение}" | |||
Например, чтобы подменить кнопку «x» кнопкой «a», достаточно сказать: | |||
xmodmap -e "keysym a = x" | |||
Код и название любой кнопки можно узнать с помощью утилиты ''xev'': запустите её и в появившимся окне нажмите интересующую вас клавишу. Подробная информация о клавише печатается в терминале, например, для левого Alt'а будет выведено: | |||
KeyPress event, serial 34, synthetic NO, window 0x3a00001, | |||
root 0x26e, subw 0x0, time 12483658, (-491,-225), root:(60,188), | |||
state 0x0, '''keycode 64''' ('''keysym''' 0xffe9, '''Alt_L'''), same_screen YES, | |||
XLookupString gives 0 bytes: | |||
XmbLookupString gives 0 bytes: | |||
XFilterEvent returns: False | |||
Т.е. у левого Alt'а keycode равен 64, а keysym — «Alt_L». Чтобы подменить его, введите команду | |||
xmodmap -e "keysym Alt_L = x" | |||
или | |||
xmodmap -e "keycode 64 = x" | |||
Теперь в игре можно активировать бомбу левой кнопкой Alt. | |||
Обратите внимание, что подмена действует на все приложения в текущей сессии. Сбросить подмену можно утилитой ''setxkbmap'' (может быть, придётся её ставить отдельно): | |||
$ xmodmap -e "<ваша подмена>" | |||
$ <запуск игры> | |||
$ setxkbmap | |||
или просто восстанавливать конфигурацию по выходу из игры: | |||
$ temp_file=`mktemp` | |||
$ xmodmap -pke > $temp_file | |||
$ xmodmap -e "<ваша подмена>" | |||
$ <запуск игры> | |||
$ xmodmap $temp_file | |||
$ rm $temp_file | |||
[[Категория:Вспомогательные сведения]] | [[Категория:Вспомогательные сведения]] |
Версия от 00:31, 23 июля 2015
Почти все части Touhou достаточно неплохо идут под знаменитым «неэмулятором» wine, начиная с версии 1.0.1.
Обязательная часть
Как запускать Touhou
Сперва необходимо войти в каталог, где находится исполняемый файл. В отличии от wine, в ОС Windows этот пункт выполнялся по умолчанию. Что-то вроде:
% cd ~/.wine/drive_c/thXX
Ну и потом запускаем саму игру.
% LANG=ja_JP.UTF-8 WINEDEBUG=-all wine thXX.exe
- LANG ставить не обязательно, просто на всякий случай что бы не было проблем с локалью, кодировкой и т. д. Так же советуем поставить японские шрифты.
- WINEDEBUG — управляет выводом дебаггера. В нашем случае «=-all» отключает дебаггер, но если у вас что-то пошло не так (не запускается игра, не работает звук, etc.), советуем не упоминать о дебаггере при запуске, возможно у вас будет шанс найти нечто полезное в логе, что приведёт к решению возникшей проблемы.
Звук
Wave-звуки в Touhou звучат и без "танцев с бубном", а вот с MIDI не все так гладко. Приведенный рецепт основан на информации с winehq.org и был опробован под Ubuntu 10.10 и wine 1.2 для игры EoSD.
Необходимо поставить пакет fluidsynth. С ним вместе ставится графический фронтенд Qsynth (если не поставился автоматически, ничто не мешает сделать это вручную), с помощью которого следует настроить fluidsynth на взаимодействие с alsa вместо jack:
- во вкладке MIDI в опции «Драйвер MIDI» выбираете «alsa_seq»;
- во вкладке «Звук» в пункте «Звуковой драйвер» ставите «alsa»;
- во вкладке «Файлы SF2» жмете «Открыть…» и выбираете файл /usr/share/sounds/sf2/FluidR3_GM.sf2 (поиск начинается сразу с этой папки, так что не промахнетесь).
Всё, жмете «Ок», дожидаетесь, пока запустится движок и можно запускать игру.
У данного способа есть один минус - он довольно требователен к железу. Можно попробовать вместо fluidsynth поставить движок timidity. К сожалению, штука эта малость устаревшая (что не мешает ей справляться с возложенными задачами), поэтому запускать придется в консоли (из-под рута), командой timidity -iA -B2,8 -Os, а после выхода из игры - убивать через всё ту же консоль или диспетчер процессов.
Видео
- Возможны проблемы с прозрачностью/отображением текстур. Автор статьи в английской Touhou Wiki советует почитать bug 10408
- Могут возникнуть проблемы с полноэкранным режимом. Это зависит от вашего оконного менеджера, DE, настроек wine, настроек видео-драйвера и его версии.
Проблемы с конкретными частями
Следует отметить, что все части нередко страдают как из-за ошибок самого эмулятора, так и от «особенностей» драйвера видеоадаптера.
Прежде чем применять данные рекомендации, обновите Wine и видеодрайвер до самой свежей версии: скорее всего ваша проблема там уже исправлена.
Immaterial and Missing Power
Нерабочий config.exe, который впринципе и под ОС windows не работает как надо. Советуем взять эту версию конфига. Кроме того, автор английской статьи советует проследовать по следующей ссылке: bug 13554
В полноэкранном режиме изображение «мигает», а сама игра работает крайне медленно. Проблема может быть исправлена в конфигураторе (config_e.exe):
- либо используйте оконный режим, т.е. выключите опцию Fullscreen,
- или включите опцию 16bit color.
The Embodiment of Scarlet Devil
В полноэкранном режиме не достигается или игнорируется лимит в 60 FPS (bug 13085). Проблема решается за счёт изменения разрешения рабочего пространства до 640х480 и запуска игры в оконном режиме. Советуем пользоваться xrandr -s 640x480, а после выхода из игры xrandr -s <ваше стандартное разрешение>.
Как вариант, если вы пользуетесь проприетарным драйвером от nvidia, то можно попробовать установить для __GL_SYNC_TO_VBLANK значение 1.
Если же используется драйвер ATI fglrx, в Catalyst Control Center жмём в 3D — More Settings и у параметра «Wait for vertical refresh» перемещаем ползунок в право до конца, тем самым применяя значение «Always On».
Perfect Cherry Blossom
- Во время паузы изображение на экране портится.
- Также в начале каждого уровня при полноэкранном режиме лазеры МарисыБ при движении «разрываются», и точка «разрыва» передвигается вверх экрана. Если это сильно мешает, можно включить вертикальную синхронизацию, как указано выше.
- Управление либо не работает совсем, или залипает на какой-то из кнопок (wine 1.7.x).
- В конфигураторе (custome.exe) включите опцию Don't use DirectInput for pad input.
- Если доступен только японский конфигуратор (custom.exe), отметьте там опцию со словами DirectInput (она должна быть 4-ой сверху в левой колонке).
Mountain of Faith, Subterranean Animism
Для запуска в стабильной версии wine вам потребуется родная виндовая библиотека d3dx9_36.dll. Найти её можно в Гугле или у себя в ОС Windows, если имеется. Для дополнительных сведений см. bug 13297. Текущая нестабильная версия wine (на момент написания статьи — 1.1.10) позволяет запускать MoF и SA без установки дополнительных библиотек.
Scarlet Weather Rhapsody
Так же как Mountain of Faith и Subterranean Animism, Scarlet Weather Rhapsody ранее падала при запуске без d3dx9_36.dll. Но даже не смотря на наличие этой библиотеки, жила не на много дольше чем без неё. Поподробней можно почитать здесь bug 13490
Однако на данный момент уже существует патч для SWR и Hisotensoku, исправляющий эту ошибку: http://hisouten.koumakan.jp/wiki/Linux_support
С английским патчем (SWREnglishTranslation-v1_1.exe) игра вылетает при запуске с ошибкой
Could not hook into th105.exe
Do you have GameGuard or something running?
Текст ошибки в консоле:
err:module:import_dll Loading library d3dx9_33.dll (which is needed by L"Z:\\home\\games\\th\\th105\\th105.exe") failed (error c000007b).
err:module:LdrInitializeThunk Main exe initialization for L"Z:\\home\\games\\th\\th105\\th105.exe" failed, status c0000135
Как и намекает консоль, бинарник падает из-за библиотеки d3dx9_33.dll. По-умолчанию Wine использует свою собственную реализацию DirectX, которая явно не дружит с патчем. Проблему можно решить с помощью аналогичной библиотеки из оригинального DirectX. Для этого достаточно скачать установщик с официального сайта, распаковать его, вытащить d3dx9_33.dll из архива APR2007_d3dx9_33_x86.cab и скопировать файл в каталог с игрой.
Phantasmagoria of Flower View
- испорченное изображение в концовке или
- вылет с ошибкой после финального уровня.
Проблема наблюдается с проприетарным драйвером NVidia и Wine 1.6.x/1.7.x.
К сожалению, окончательное решение неизвестно, однако вероятность вылета можно значительно уменьшить, включив в конфигураторе (custome.exe) опцию Load BGM into memory. Однако с этой опцией выбор композиции в Музыкальной комнате (Music Room) становится невозможным.
PC-98
Нативного эмулятора PC-98 для Линукса ещё пока нет (и не факт что будет), но не стоит расстраиваться, T98-Next отлично работает под вайном.
Полезные приёмы
Переназначение клавиш
Если игра не позволяет переназначить кнопки, это можно сделать и средствами системы. Самый простой способ — воспользоваться командой xmodmap (эта утилита уже не является стандартной, но её всегда можно поставить отдельно).
Переназначение делается простой командой
xmodmap -e "keycode {код_кнопки} = {новое_значение}"
или
xmodmap -e "keysym {название_кнопки} = {новое_значение}"
Например, чтобы подменить кнопку «x» кнопкой «a», достаточно сказать:
xmodmap -e "keysym a = x"
Код и название любой кнопки можно узнать с помощью утилиты xev: запустите её и в появившимся окне нажмите интересующую вас клавишу. Подробная информация о клавише печатается в терминале, например, для левого Alt'а будет выведено:
KeyPress event, serial 34, synthetic NO, window 0x3a00001, root 0x26e, subw 0x0, time 12483658, (-491,-225), root:(60,188), state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False
Т.е. у левого Alt'а keycode равен 64, а keysym — «Alt_L». Чтобы подменить его, введите команду
xmodmap -e "keysym Alt_L = x"
или
xmodmap -e "keycode 64 = x"
Теперь в игре можно активировать бомбу левой кнопкой Alt.
Обратите внимание, что подмена действует на все приложения в текущей сессии. Сбросить подмену можно утилитой setxkbmap (может быть, придётся её ставить отдельно):
$ xmodmap -e "<ваша подмена>" $ <запуск игры> $ setxkbmap
или просто восстанавливать конфигурацию по выходу из игры:
$ temp_file=`mktemp` $ xmodmap -pke > $temp_file $ xmodmap -e "<ваша подмена>" $ <запуск игры> $ xmodmap $temp_file $ rm $temp_file