xrHook — различия между версиями

Материал из xrWiki
Перейти к: навигация, поиск
(Новая страница: «Каждый билдоман знает, как раздражает выброс на рабочий стол во время процесса наслажде…»)
 
 
Строка 1: Строка 1:
Каждый билдоман знает, как раздражает выброс на рабочий стол во время процесса наслаждения билдовыми изысками. Ловкое решение [https://stalker.nick7.com/programs/xrhook/ rHook] блокирует некоторые assert'ы.
+
Каждый билдоман знает, как раздражает выброс на рабочий стол во время процесса наслаждения билдовыми изысками. Ловкое решение [https://stalker.nick7.com/programs/xrhook/ xrHook] блокирует некоторые assert'ы.
  
 
==Суть работы==
 
==Суть работы==
Строка 12: Строка 12:
  
 
Формат файла (синтаксис Microsoft INI):
 
Формат файла (синтаксис Microsoft INI):
<syntaxhighlight lang="text">[assert]
+
<syntaxhighlight lang="ini">[assert]
 
путь/к/файлу(строка) = enable|disable</syntaxhighlight>
 
путь/к/файлу(строка) = enable|disable</syntaxhighlight>
  
 
Пример:
 
Пример:
<syntaxhighlight lang="text">[assert]
+
<syntaxhighlight lang="ini">[assert]
 
P:\xr_3da\xrGame\ai_stalker_alife.cpp(488) = disable</syntaxhighlight>
 
P:\xr_3da\xrGame\ai_stalker_alife.cpp(488) = disable</syntaxhighlight>
  
 
Регистр пути учитывается. Скобки пробелом не отделяются ни от пути, ни от номера линии.
 
Регистр пути учитывается. Скобки пробелом не отделяются ни от пути, ни от номера линии.
 +
 +
==Возможности ==
 +
В INI нужно выключить менеджер памяти:
 +
<syntaxhighlight lang="ini">; Slow memory debug stuff
 +
[MemoryManager]
 +
Enabled = true
 +
AutoCheck = 0</syntaxhighlight>
 +
Этот хук косвенно позволяет избежать невнятных вылетов, связанных с порчей кучи.<br />
 +
В игровой консоли можно мониторить состояние памяти командой <code>xh_mem_info [full]</code> и проверять целостность командой <code>xh_mem_check [full]</code>
 +
 +
Есть возможность патчить список разрешений видеокарты, таким образом можно нативно в менюшке или в [[user.ltx]] выбрать 16:9.
 +
<syntaxhighlight lang="ini">; Video Resolution Hook
 +
[Resolution]
 +
Enabled  = true</syntaxhighlight>
 +
 +
Ещё по мелочи: есть timestamp в логах и скриншотах, переключение шифрования (актуально для финалки - позволяет запускать WW-EXE с RU-ресурсами и наоборот).
 +
 +
Assert'ы всё так же работают, но это пока промежуточная версия, которую было бы хорошо ещё протестировать.
 +
 +
 +
==Обсуждение==
 +
На форуме Gameinator: https://www.gameru.net/forum/index.php?act=findpost&hl=&pid=1675213
  
 
[[Категория:Движок]]
 
[[Категория:Движок]]

Текущая версия на 22:29, 21 мая 2020

Каждый билдоман знает, как раздражает выброс на рабочий стол во время процесса наслаждения билдовыми изысками. Ловкое решение 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