27 августа русскоязычному разделу «Touhou Wiki» исполнилось 15 лет! Кроме того, опубликована новая игра «Unfinished Dream of All Living Ghost»
|
Для редактирования страниц необходимо зарегистрироваться в проекте.
|
Запуск Touhou в Linux

Почти все части 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
Под Linux, BSD и другие UNIX-подобные семейства, использующие X-сервер, а также macOS, много лет существует свободный порт эмулятора Neko Project II, xnp2. Он позволяет эмулировать PC-98 непосредственно на Linux/BSD, без wine, избегая ситуации «эмулирования» эмулятора.
xnp2 не предоставляет готовые к запуску бинарники или пакеты[1], но имеет мало зависимостей и легко собирается из исходников на машинах любого возраста.
Приводимая ниже инструкция актуальна для Ubuntu 18.04.
Подготовка к сборке
Для сборки xnp2 необходимы следующие компоненты:
- gcc
- GTK+ 2.6 или выше
- libsdl
- libsdl-mixer
- libusb
- libxxf86vm
- nasm
Установите их с помощью пакетного менеджера своей системы. Для Ubuntu установить все зависимости можно с помощью следующей команды:
sudo apt install build-essential nasm checkinstall libsdl1.2-dev libsdl-mixer1.2-dev libgtk2.0-dev libxxf86vm-dev
Установка
xnp2 имеет GitHub-репозиторий и сайт со стабильными релизами; однако, на момент написания статьи, последний стабильный релиз может не работать с gcc6.1+ на новых системах, поэтому рекомендуется скачать код с GitHub:
git clone https://github.com/nonakap/xnp2.git
после чего перейти в каталог x11 и запустить конфигуратор с флагом --enable-ia32 (это строго обязательно для Touhou-конфигурации):
cd xnp2/x11
./autogen.sh
./configure --enable-ia32
Конфигуратор проверит, всё ли готово для сборки, укажет, каких программ или библиотек в системе не хватает. Если он закончил работу без ошибок, введите в том же каталоге:
make
после чего эмулятор будет установлен в систему и доступен по команде xnp2
Конфигурация
Обратите внимание, что для применения настроек нужно перегружать эмулятор через меню Emulator>Reset
При первом запуске нужно установить шрифт через меню Emulator>Font.... Подойдёт BMP-шрифт от эмулятора Anex86, вкладываемый во многие сборники игр Touhou, в крайнем случае можно получить его здесь.
Загрузить образ жёсткого диска можно через меню HardDisk>IDE0-0>Open...
Набор настроек для эмулятора во многом зависит от особенностей Вашего компьютера, и наиболее подходящию конфигурацию нужно подобрать.
Наиболее универсальное решение (меню Emulator>Configure):
- увеличить количество ядер CPU хотя бы до 10 (лучше 20, если у вас не слабая машина)
- увеличить частоту дискредитации до 44 кГц
- установить буфер в 1000 мс
- оставить галочку на Disable MMX
Полезные приёмы
Переназначение клавиш
Если игра не позволяет переназначить кнопки, это можно сделать и средствами системы. Самый простой способ — воспользоваться командой 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
AutoFire
Во многих играх серии клавиша «огонь» является кнопкой, а не переключателем, поэтому приходится зажимать её всё время. С помощью xdotool можно сделать это и программно.
Поставьте утилиту средствами вашего дистрибутива. На всякий случай проверим её командой
xdotool keydown z
Эта команда должна послать событие «KeyPress z», т.е. напечатать в терминале бесконечную строчку из букв «z». Нажмите любую клавишу, чтобы остановить вывод.
Теперь надо повесить вызов этой команды на какую-нибудь клавишу.
Самый быстрый способ — через настройку клавиатурных сочетаний вашего DE. Такая настройка находится, обычно, в Settings -> Keyboard -> Shortcuts. Точный способ настройки должен быть описан в документации по вашему DE.
Но можно воспользоваться и универсальной утилитой xbindkeys. Установите её, создайте конфигурационный файл и запишите туда:
"xdotool keydown z" a
после чего скажите
xbindkeys -f <конфигурационный файл>
Теперь в игре достаточно один раз нажать кнопку «a», и огонь будет постоянным.
После игры не забудьте прибить xbindkeys командой
killall xbindkeys
|