Наконец-то и мне удалось запустить Trainz 2009 sp2 в Linux (Fedora 12) под wine. Работает - потрясающе, быстрее, чем под Windows.
Некоторые выводы:
1. Работоспособность сильно зависит от видеодрайвера. Пробовал с разными видеокартами (intel gma, ati radeon 9000, nvidia 6200 agp, nvidia gts 250). С драйверами, идущими в дистрибутиве linux (nouveau, radeon, intel gma) нормальной работы не получилось. Нужны propritery-драйвера. Для обоих карт nvidia они есть, для intel gma их нет, карточка ati radeon 9000 - слишком старая и не поддерживается свежими драйверами fxrgl. Возбожно, с более свежим radeon что-то бы получилось, но у меня такой карточки нет. Успешным был только опыт с nvidia.
2. Wine нужно устанавливать ПОСЛЕ установки видеодрайверов. Если к моменту установки propritery видеодрайверов wine уже была установлена, следует снести все пакеты, начинающиеся с wine, и установить wine заново.
3. Опытным путем выяснилось, что как под Linux, так и под Windows, не обязательно инсталлировать TS2009 с помощью. Вместо этого достаточно скопировать папку TS2009 вместе с подкаталонами (и дополнениями) из другого места, где она проинсталлирована ранее (или с другого компьютера, в этом случае, возможно, придется поменять видеоразрешение в настройках Trainz, если на другом компьютере - другой монитор). Это удобно для бэкапирования, или если нужно создать "чистую" копию trainz для проверки пака объектов к своим картам и сессиям. Таким образом, можно иметь несколько папок TS2009.full, TS2009.clean и т. д. и запускать trainz из нужной папки по мере необходимости. Ничего в реестре делать не нужно.
4. Под wine можно инсталлировать trainz, но установка sp2 падает с ошибкой. Поэтому самый простой способ - скопировать папку уже установленным и пропатченным TS2009 из windows. Другой способ - скачать Sun Virtual Box (бесплатный), установить Windows в виртуальную машину (это выглядит как windows, работающая в отдельном окне под linux), проинсталлировать trainz там, установить sp2 и скопировать папку в linux. Однако, для использовании Windows в VirtualBox'е требует лицензия на Windows. Я не вникал в юридические тонкости, можно ли по одной лицензии иметь две копии Windows на одной машине и использовать их по очереди (если windows запускается в виртуальной машине под другой windows, то точно нужны две лицензии). Разумеется, для установки самого trainz тоже требуется лицензия на него.
5. Content Manager не работает под Wine из-за отсутствия .net-framework. Я выходил из положения так: запускал Windows в виртуальной машине под VirtualBox, папку TS2009 помещал в VirtualBox Common Folders (тогда к ней доступ возможен и из Linux и из Windows в виртуальной машине), и запускал CMP из-под виртуального Windows, устанавливал дополнения там, а затем из этой же папки запускал trainz под linux. Другие возможные варианты: 1. для установки дополнений использовать утилиту командной строки trainzutil (не пробовал, но говорят, работает). 2. Попытаться установить .net-framework под wine с помощью winetricks (
http://wiki.winehq.org/winetricks). У меня - не получилось.
Итак, пошаговая инструкция для Fedora с видеокартой Nvidia:
1. Ставим последние обновления
# yum update
2. Устанавливаем видеодрайвер nvidia вместо nouveau. Для этого пользуемся инструкцией
http://rpmfusion.org/Howto/nVidia с примечаниями:
-- Ядро лучше не пересобирать, так как это помешает последующим обновлениям. Лучше воспользоваться rdblacklist=nouveau и стандартным ядром.
-- Если у Вас карточка GT* 2xx (например, GTS 250), то нужно ставить драйвера "GeForce 6 and newer" а не "GeForce 2 through GeForce 4", как может показаться по первой букве номера модели видеокарты.
3. Если у Вас 64-битная fedora, то ОБЯЗАТЕЛЬНО установить 32-битные библиотеки xorg-x11-drv-nvidia-libs для Вашей модели видеокарты, например, xorg-x11-drv-nvidia-libs.i686
# yum install xorg-x11-drv-nvidia-libs.i686
4. Теперь устанавливаем sun virtualbox:
http://www.virtualbox.org/wiki/Linux_Downloads. Лучше подключить их репозторий и устанавливать virtualbox через yum.
5. Запускаем VirtualBox, создаем виртуальную машину, устанавливаем в нее windows, затем - VirtualBox Guest Additions. При затруднениях обращаемся к User Manual (
http://download.virtualbox.org/virtualbox/3.1.4/UserManual.pdf), хотя и без мануала все интуитивно понятно.
6. Создаем папку, которая будет шариться между linux и windows. Например, /home/common. Объявляем ее "обшей папкой" в Virtual Box и присоединяем в Windows, например, как диск E:.
7. Кладем дистрибутив Trainz и SP2 в /home/common/distr (в виртуальной машине это видится как E:\distr) и запускаем инсталляцию trainz из-под Windows. В качестве папки для установки выбираем E:\TS2009. Затем туда же инсталлируем SP2. Последний шаг идет долго, впрочем, как и в обычном windows
8. Не нужно пытаться запускать саму игру в virtualbox'е: она там работает хреново.
9. Инсталлируем wine
# yum install wine
10. Теперь открываем терминал в linux'е и запускаем
$ wine /home/common/TS2009/Trainz.exe
Идем в options и делаем настройки: Обязательно DirectX. Желательно еще выключить полноэкранный режим и выбрать разрешение, меньшее разрешения Вашего экрана, чтобы запускалось в Linux-окне. Сохраняем настройки.
11. Теперь из launcher'а запускаем игру и проверяем, что она работает. Если не работает, то вот - те пробемы, с которыми я столкнулся:
-- Если рабоает, но все белое, значит, работают стандартные видеодрайвера Fedora вместо драйверов от производителя. Нужно правильно поставить видеодрайвер от Nvidia и добиться, чтобы он работал.
-- Если возникает ошибка, что не установлено DirectX, значит криво установили видеодрайверы: переинсталлируем, затем переинсталлируем wine.
-- Если игра запускается, но нет надписей, значит, Wine устанавливалась до видеодрайверов, а не после. Лечится переинсталляцией wine.
12. Теперь самое время сделать резервную копию папки TS2009. В Linux для этого удобно выбрать "сжать" из контекстного меню в обозреватели файлов: запустится менеджер архивов, и в нем создать TS2009.tar.gz
13. Для установки дополнений идем в виртуальную Windows, запускаем там Content Manager и устанавливаем необходимые дополнения (предварительно нужно скопировать файлы с дополнениями в общую папку). После этого trainz, запущенный в wine, будет видеть эти дополнения.