Блогер Nathan Baggs разработал специальную модификацию Wardite, которая устраняет давнюю проблему с вылетами в ПК-версии экшена Way of the Samurai 3. Сбой происходил при попытке ввести имя персонажа во время создания нового героя.
Проблема с прекращением работы игры при вводе имени беспокоила пользователей на протяжении долгого времени. Сбой стабильно воспроизводился в тех случаях, когда игроки пытались начать новую сессию сразу после завершения предыдущего прохождения или после возвращения в главное меню. В процессе анализа технической составляющей автор исправления обнаружил, что вылет связан с ошибкой обращения к нулевому указателю.
Дополнительное исследование показало, что некорректная работа кода вызвана ошибкой класса use-after-free, возникающей при обработке строк. Игра неверно управляла выделением памяти при переключении между верхним и нижним регистром букв на виртуальной клавиатуре, а также при нажатии кнопки подтверждения ввода. В результате программа пыталась прочитать данные из очищенной области памяти, что приводило к аварийному закрытию приложения.
Для устранения неполадки была создана библиотека под названием Wardite. Программа модифицирует код игры в оперативной памяти, предотвращая возникновение критической ошибки. Модификация успешно справляется со сбоями не только при выборе имени главного героя, но и при наименовании выкованного оружия.
Установка исправления не требует изменения оригинальных ресурсов. Пользователям необходимо загрузить файл библиотеки dinput8.dll из репозитория проекта на GitHub и поместить его в корневую папку игры. При необходимости модификацию можно легко удалить, стерев добавленный файл.
