xrHook

Материал из xrWiki
Версия от 22:29, 21 мая 2020; RedPython (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Каждый билдоман знает, как раздражает выброс на рабочий стол во время процесса наслаждения билдовыми изысками. Ловкое решение xrHook блокирует некоторые assert'ы.

Суть работы[править]

Программа подменяет dinput.dll и инициализируется во время инициализации xr_3DA.exe.
Программа перехватывает все обращения к xrDebug::fail и проверяет, заблокирован ли вызов xrDebug::backend для конкретной строки конкретного файла.
Информацию обо всех перехваченных ошибках программа пишет в лог с префиксом ! [error]
Изначально разработана для билда 2205.

Конфигурация[править]

Файл конфигурации xrHook.ini должен лежать в папке с xr_3DA.exe
Программа сама создаст этот файл, если он не будет найден.

Формат файла (синтаксис Microsoft INI):

[assert]
путь/к/файлу(строка) = enable|disable

Пример:

[assert]
P:\xr_3da\xrGame\ai_stalker_alife.cpp(488) = disable

Регистр пути учитывается. Скобки пробелом не отделяются ни от пути, ни от номера линии.

Возможности[править]

В INI нужно выключить менеджер памяти:

; Slow memory debug stuff
[MemoryManager]
Enabled = true
AutoCheck = 0

Этот хук косвенно позволяет избежать невнятных вылетов, связанных с порчей кучи.
В игровой консоли можно мониторить состояние памяти командой xh_mem_info [full] и проверять целостность командой xh_mem_check [full]

Есть возможность патчить список разрешений видеокарты, таким образом можно нативно в менюшке или в user.ltx выбрать 16:9.

; Video Resolution Hook
[Resolution]
Enabled  = true

Ещё по мелочи: есть timestamp в логах и скриншотах, переключение шифрования (актуально для финалки - позволяет запускать WW-EXE с RU-ресурсами и наоборот).

Assert'ы всё так же работают, но это пока промежуточная версия, которую было бы хорошо ещё протестировать.


Обсуждение[править]

На форуме Gameinator: https://www.gameru.net/forum/index.php?act=findpost&hl=&pid=1675213