Посвящается моему другу Михаилу — геофизику и большому фанату серии игр 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.
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 вне зависимости от языка раскладки распознавал мои нажатия именно в кириллических символах, хотя как системный язык у меня выбран английский, а на уровне железа раскладка клавиатуры вообще испанская.
<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 💻
ссылка на оригинал статьи https://habr.com/ru/articles/854114/
Добавить комментарий