Патч Unknown error для игры Дневной дозор (Day Watch)

По аналогии с патчем для Ночного Дозора был написан патч и для Дневного. Логика та же, просто место оказалось другим. Все проблемы предыдущего патча (а вернее, игры), к сожалению, остались. Зато, в ходе изучения, был переработан алгоритм патча, благодаря чему был обновлён и патч для Ночного дозора...





Вкратце: если у Вас возникает следующая ошибка:
Это значит, что игра неверно определила параметры видеокарты (чаще всего - объем памяти, доступной под текстуры), эта ошибка преследует движок Silent Storm, на котором написаны обе игры Дозоров аж с 2003 года (для Silent Storm зарубежным сообществом тоже был написан патч, который потом разработчики включили в Gold Edition, выпущенный в Steam). Собственно проблема в паре инструкций, которые при проверке объёма доступной видеопамяти, учитывают знак числа, и из-за этого, при больших объемах проверка завершается неудачей, в следствии рассмотрения значения как отрицательного.
Для решения данной проблемы был написан патч, который изменяет инструкции таким образом, что знак перестаёт учитываться (предполагая, что отрицательный объём памяти, доступной под текстуры, невозможен).

Скачать патч: yadi.sk MediaFire

Проверив патч для Ночного дозора в среде, где игра изначально запускается (старая машинка с Windows XP) - выяснилось, что он катастрофически снижает производительность на высоких настройках графики при любом разрешении.

Оказалось, что функция проверки возможностей видеокарты вызывается 3 раза, 1-й раз - чтобы проверить возможность запуска хотя бы в программном режиме, 2-й - чтобы проверить аппаратные возможности и 3-й (опционально, если включены максимальные настройки) - чтобы проверить ресурсы для шейдеров и т.п.
Патч же делал так, что до 2-го и 3-го раза даже не доходило, 1-й раз завершался успехом и сразу же перенаправлялся в код игры. В общем поправил это недоразумение проверкой значения в одном из регистров (для каждого запуска оно свое) и теперь игра как и положено, проходит все 3 проверки последовательно (а стало быть, если компьютер слишком древний (ну или возможности у виртуалки по эмуляции видеокарты слишком ограничены) - чуда не произойдет, игра вылетит со всё той же Unknown error по причине нехватки видеопамяти или чего-то другого, касающегося видео-подсистемы).

Более подробное описание исследования смотрите в посте патча для Ночного Дозора.

Использованные утилиты:

x32dbg
dUP 2


Ссылки для Ночного дозора тоже обновлены (в оригинальном посте), патч v1.2, тормозов теперь нет.

P.S. Удалось вытащить ресурсы дозоров из контейнера старфорса. Теперь игры можно полностью отвязать от (образов) дисков. Конечно полный функционал таким образом не восстановить, т.к., например, английский экзешник НД не позволяет выбирать уровень сложности. По хорошему - надо отвязать третий старфорс от специальной версии, или пятый от изданий, которые можно загрузить с сайта Нового Диска. Займусь ли я этим - посмотрим. А пока - я занят решением проблем с NVIDIA. Если очень хотите ускорить процесс - прошу на страницу Donate.

Комментарии

  1. Реально сработало, неужели хоть кто-то это сделал!
    Патч закинул в папку с игрой и пропатчил игру, стала запускаться без проблем.
    Огромное спасибо!

    ОтветитьУдалить

Отправить комментарий

Популярные сообщения