games
January 20

Linux -> Wine -> DxWnd -> Capitalism 2

Захотелось поиграть в шикарную старую игрулину моего детства Capitalism 2. Захотеть то я захотел, а вот чтоб её запустить пришлось вспомнить свои старые навыки - ведь я Core/Kernel Linux Developer (хоть и в прошлом). Получилось инетресно и позновательно - рекомендую для ознакомления.

Шаг первый - установка

Игра очень крутая - используется в универах для обучения экономике, однако выпущена в 2001 под Windows и это большая проблема.

Находим пыльный диск или качаем с торрентов, ставим себе wine и устанавливаем игру. Ей потребуются зависимости, которые проще всего поставить с помощью winetricks - они очень помогают. Зависимости:

  • mfc42.dll
  • шрифты (я ставлю все)
  • DirectPlay (без этого сетевая игра по локалочке с друганом не заработает)

Игра достаточно сложная и я предпочитаю играть в неё с хорошей локализацией, для этого мало поставить русскую версию, надо еще накатить 2 (два) патча с исправлением локализации - ищите их на торрентах.

Для запуска надо будет задать локаль:

LC_ALL=ru_RU.UTF-8 LANG=ru_RU.UTF-8 wine cap2.exe

Эмуляция CDROM

Всё запустится, но не будет работать одиночная игра. Дело в том что если у вас не похаченная версия, то ей нeжен будет CDROM. Его эмуляция делается через winecfg - выбираем Диски, указывам путь к файлам инсталятора, тип ставим CDROM:

Запускаем еще раз и оно работает! На первый взгляд. Но если запустить саму игру то окажется что у неё не перерисовывается экран :(

Это ввергло меня в уныние... Я много и долго тыкал в настройки wine, режимы совместимости, поставил всякие древние версии DirectX и пр. и ничего. Но не зря же я разработчик с 20ти летним стажем?!? Дай, думаю, запущу в оконном режиме. Таких настроек в игре нет, но это не может меня остановить - я перлопатил все файлы игры в поисках конфигов, но не нашел.

После этого я пошел гуглить как заставить игру под виндой работать в оконном режиме и нашел!

Шаг второй - DxWnd

DxWnd
Window hooker to run fullscreen programs in window and much more...

Windows hooker - intercepts system calls to make Win32 programs run in a window, to enhance application compatibility, to enhance video modes, to stretch timing and emulate CD disk data and audio tracks. It is typically very useful to run old Windows games.

Это такая дич которая перехватывает системные вызовы и вызовы к библиотеке DirectX и позволяет надругиваться над ними.

Ставим эту волшебную прогу также под wine, запускам и настраиваем запуск Capitalism 2. Мне подошло 1440x900 Desktop center, но вы можете указать там что хотите.

Шаг третий - пора играть!

И вот, наконец, после прочтения тонны логов и выхлопов из wine, плясок с версиями библиотек, шрифтами, локалями и DirectX, можно наконец.... Лечь спать. Играть буду в другой день :)

Мои ссылочки