Как стать автором
Обновить
3439.98
RUVDS.com
VDS/VPS-хостинг. Скидка 15% по коду HABR15

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

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров3.9K
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 для запуска.

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

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

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


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

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

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

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

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


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

hitman.ini
Include Setup\Locale.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", их добавляет скачанный нами мод на увеличение дистанции прорисовки объектов, и как можно догадаться из названия, регулируется она уже в самой игре, когда она запущена, в большую либо меньшую сторону.

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


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

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

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

▍ Установка DirectMusic


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

Как оказалось, для работы музыки в 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.

Интерфейс protontricks

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

Выбор wineprefix

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

Установка DLL

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

Установка DirectMusic

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

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

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

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

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


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

Мониторинг GPU

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

prime-run steam

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

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

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

Telegram-канал со скидками, розыгрышами призов и новостями IT 💻
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Как предпочитаете запускать ретро-игры на Linux?
21.82% Через Wine12
56.36% Через Proton в Steam31
9.09% Через Proton без Steam5
3.64% Через Bottles2
5.45% Через Виртуальную Машину3
3.64% Через эмуляцию версий для консолей2
Проголосовали 55 пользователей. Воздержались 24 пользователя.
Теги:
Хабы:
Всего голосов 22: ↑22 и ↓0+34
Комментарии17

Публикации

Информация

Сайт
ruvds.com
Дата регистрации
Дата основания
Численность
11–30 человек
Местоположение
Россия
Представитель
ruvds