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

от автора

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?

25.58% Через Wine11
53.49% Через Proton в Steam23
9.3% Через Proton без Steam4
2.33% Через Bottles1
6.98% Через Виртуальную Машину3
2.33% Через эмуляцию версий для консолей1

Проголосовали 43 пользователя. Воздержались 19 пользователей.

ссылка на оригинал статьи https://habr.com/ru/articles/854114/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *