Ретрогейминг на Linux — Hitman: Agent 47

в 13:01, , рубрики: hitman, linux, ruvds_статьи, Steam, wine, гейминг, игры, ретро-гейминг

Ретрогейминг на Linux — Hitman: Agent 47 - 1

Hitman: Agent 47 в библиотеке Steam

Посвящается моему другу Михаилу — геофизику и большому фанату серии игр Hitman. Если бы не его периодические призывы к тому, чтобы наконец-то обратить внимание на серию, я бы и дальше обходил её стороной, так как считал её всё это время скучной.

Проходить её я захотел в хронологическом порядке и начать решил с самого начала — c Hitman: Agent 47, вышедшего исключительно на ПК 21 ноября 2000 года, почти четверть века назад. В ходе экспериментов выяснилось, что под Windows 10 он до сих пор запускается без проблем, а под Linux… что ж, тут не обошлось без проблем.

Моя система — ноутбук HP Victus 16, ОС — EndeavourOS(Arch Linux), ядро — 6.11.5-arch1-1, окружение рабочего стола — Plasma 6.2.2(Wayland), процессор — Ryzen 5 5600H, видеокарта — NVIDIA GeForce RTX 3050 Ti Mobile.

Игра была скачана в стиме, поначалу был выбран Proton Experimental для запуска.

Ретрогейминг на Linux — Hitman: Agent 47 - 2

Характеристики моей системы

Запускаем, ииии… Ничего. Игра отказывается запускаться, быстрый поиск в гугле находит другого такого же линуксоида, который советует ставить сразу Proton 5.0-10. И ура, наконец-то всё запустилось! Из интереса проверил, более ранние версии Proton также будут работать, а вот Proton 8 и выше, которые минимально требуются для protontricks, работать наотрез не хотят, но об этом позже.

▍ Настройка игры

Про запуск Hitman: Codename 47 Configuration советую забыть, для нас он бесполезен, мы будем напрямую менять конфиги игры, а заодно установим один мод для увеличения дистанции прорисовки объектов.

Ретрогейминг на Linux — Hitman: Agent 47 - 3

Варианты запуска игры

Начнём с мода из репозитория HitmanUnlocker, нам нужно просто скачать находящийся в latest release файл DSOUND.dll, его перемещаем в папку, куда стим установил нашу игру.

Ретрогейминг на Linux — Hitman: Agent 47 - 4

Установка мода

▍ Редактирование конфигурационных файлов

Далее подредактируем конфиги, для начала hitman.ini, чтобы игра нормально запускалась в FullHD.

hitman.ini

Include SetupLocale.zip
//DrawDll Render3DFX.dll
//DrawDll renderd3d.dll
DrawDll RenderOpenGL.dll
SoundDll Sound.dll
ScriptDll GSC.dll
LocaleDLL Locale.dll
Resolution 1920x1080
//enableconsole
ColorDepth 32
Anisotropy 2
AntiAlias
DisableLight
ShadowDetail 2
TextureResolution 0
Window
//DisableDXT
//DisablePAL
StartUpperPos 0,0

▍ Настройка управления

Уже опционально, так как раскладку клавиш вы можете спокойно поменять в игре, но вот уже готовая, которую вставим в Hitman.cfg. Как можно заметить, в моём случае раскладка сделана под кириллические символы, по непонятной мне причине Hitman вне зависимости от языка раскладки распознавал мои нажатия именно в кириллических символах, хотя как системный язык у меня выбран английский, а на уровне железа раскладка клавиатуры вообще испанская.

Hitman.cfg

<Settings>
<Controls>
<Mapping Action="FireWeapon">
<Key SCode="356"/>
</Mapping>
<Mapping Action="DropItemInHand">
<Key SCode="74"/>
</Mapping>
<Mapping Action="ShowLaptop">
<Key SCode="59"/>
</Mapping>
<Mapping Action="ShowStatus">
<Key SCode="60"/>
</Mapping>
<Mapping Action="ToggleMouseControl">
<Key SCode="4"/>
</Mapping>
<Mapping Action="DoAction">
<Key SCode="57"/>
</Mapping>
<Mapping Action="Binoculars">
<Key SCode="3"/>
</Mapping>
<Mapping Action="WalkForward">
<Key SCode="97"/>
</Mapping>
<Mapping Action="Run">
<Key SCode="42"/>
</Mapping>
<Mapping Action="WalkLeft">
<Key SCode="108"/>
</Mapping>
<Mapping Action="WalkRight">
<Key SCode="110"/>
</Mapping>
<Mapping Action="WalkBackWard">
<Key SCode="109"/>
</Mapping>
<Mapping Action="TurnLeft">
<Key SCode="96"/>
</Mapping>
<Mapping Action="TurnRight">
<Key SCode="98"/>
</Mapping>
<Mapping Action="LeanOutLeft">
<Key SCode="120"/>
</Mapping>
<Mapping Action="LeanOutRight">
<Key SCode="121"/>
</Mapping>
<Mapping Action="ShowMap">
<Key SCode="126"/>
</Mapping>
<Mapping Action="ToggleWeaponMode">
<Key SCode="15"/>
</Mapping>
<Mapping Action="SelectNext2">
<Key SCode="358"/>
</Mapping>
<Mapping Action="SelectPrev2">
<Key SCode="119"/>
</Mapping>
<Mapping Action="EmptyHands">
<Key SCode="78"/>
</Mapping>
<Mapping Action="Sneak">
<Key SCode="56"/>
</Mapping>
<Mapping Action="ReloadWeapon">
<Key SCode="99"/>
</Mapping>
<Mapping Action="IncreaseDrawDistance">
<Key SCode="107"/>
</Mapping>
<Mapping Action="DecreaseDrawDistance">
<Key SCode="106"/>
</Mapping>
<Mouse Speed="13" Invert="0"/>
</Controls>
<Sound SfxVol="80" MusicVol="80" SpeechVol="90" UseEAX="0" UseHW="0" UseStreaming="1" MusicQuality="1" NumBuffers="8"/>
</Settings>

В самом низу конфига можно заметить два действия — Mapping Action="IncreaseDrawDistance" и Mapping Action="DecreaseDrawDistance", их добавляет скачанный нами мод на увеличение дистанции прорисовки объектов, и как можно догадаться из названия, регулируется она уже в самой игре, когда она запущена, в большую либо меньшую сторону.

▍ Запуск игры и решение проблем

Давайте теперь наконец-то запустим игру.

Ретрогейминг на Linux — Hitman: Agent 47 - 5

Первый запуск

Для вас это просто скриншот, а вот для меня при первом запуске кое-чего не хватало — того, что было у других, судя по видео на YouTube, — музыки. Задавшись вопросом, где она, я, конечно же, обратился к поиску в Google.

▍ Установка DirectMusic

Ретрогейминг на Linux — Hitman: Agent 47 - 6

Поиск решения

Как оказалось, для работы музыки в Hitman: Agent 47 не хватает ещё одного DLL-файла — dmusic32.dll, он же DirectMusic. Но в Steam возможности скачивать дополнительные .dll для Proton нет, так что нам потребуется ещё один инструмент — protontricks.

Чтобы его установить, для начала скачаем все его зависимости:

sudo pacman -S python-pip python-pipx python-setuptools python-virtualenv winetricks

А дальше с помощью pipx и protontricks:

pipx install protontricks

Добавим protontricks в PATH, чтобы не указывать каждый раз путь до его бинарника:

pipx ensurepath

Закроем этот терминал и откроем новый, далее введём туда protontricks:

protontricks

На Wayland сессии вероятно, что открывшийся графический интерфейс будет сыпать на вас одной ошибкой за другой, просто пропускаем их, нажимая OK.

Ретрогейминг на Linux — Hitman: Agent 47 - 7

Интерфейс protontricks

Выбираем Select the defaul wineprefix.

Ретрогейминг на Linux — Hitman: Agent 47 - 8

Выбор wineprefix

Далее выбираем Install a Windows DLL or component.

Ретрогейминг на Linux — Hitman: Agent 47 - 9

Установка DLL

И начинаем вводить на клавиатуре directmusic, выбираем и нажимаем ОК, а дальше ждём, и ждать придётся, по непонятным для меня причинам, весьма долго. К сожалению, не засекал в первый раз, но по ощущениям — минут 5.

Ретрогейминг на Linux — Hitman: Agent 47 - 10

Установка DirectMusic

Вместо всех этих манипуляций в графическом интерфейсе можно также воспользоваться одной-единственной командой — protontricks 6900 directmusic, где 6900 — это ID игры. Плюс, в отличие от графического способа, в моём случае protontricks справился куда быстрее — где-то за минуту.

Далее я советую полностью закрыть и перезапустить Steam и уже после запустить игру.

Ретрогейминг на Linux — Hitman: Agent 47 - 11

Успешный запуск

И наконец-то, после стольких стараний, на экране мы видим лучезарную лысину нашего агента 47, а в наушниках, помимо просто звуков, теперь ещё слышна и фоновая музыка. Ура! На удивление, ко всему прочему, Hitman ещё достаточно спокойно относится к alt+Tab, чем не всегда могут похвастаться даже современные, а также нативные, запускаемые не через Wine/Proton, игры.

▍ Дополнительная оптимизация

Ещё небольшое дополнение: пусть игре уже через месяц будет 25 лет, и, скорее всего, современные процессоры смогут её осилить даже в режиме программной отрисовки, без использования интегрированной графики, хотелось бы всё-таки запустить игру на дискретке. А сейчас, судя по nvtop, она запущена на интегрированной. Заодно проверим, нормально ли всё будет работать на современных карточках Nvidia.

Ретрогейминг на Linux — Hitman: Agent 47 - 12

Мониторинг GPU

Для этого запустим весь Steam целиком с помощью prime-run, и все его дочерние процессы также будут принудительно работать на дискретке.

prime-run steam

Ретрогейминг на Linux — Hitman: Agent 47 - 13

Запуск на дискретной видеокарте

Дискретная графика в отличие от интегрированной не напрягается даже на 1%, настолько лёгок для неё Хитман, из разницы разве что изменилась заполненность видеопамяти с 305Мб, до 704. В целом же, всё работает по ощущениям также стабильно.

И на этом в общем-то всё, дальше можно спокойно играть. Если у кого-то есть что-то дополнить или хотите поделиться, как мечту свою лелея подключались к Галилео запускали упорно отказывающуюся работать игру — приглашаю в комментарии.

Автор: OrkBiotechnologist

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js