Господа, хотел бы поделиться некоторыми наработками по адаптации Нокса под высокие разрешения.
Начну с того, что интерфейс игры великолепно масштабируется. А вот с основным игровым экраном пришлось повозиться. Все тесты проводились на моем ноутбуке со встройкой и разрешением 1280х800. Отлично работает на трёх экзешниках (оригинал, mix'a и unimod'a). Но обо всем по порядку.
1. Касательно вышеуказанного лимита (5000) на выводимые объекты. Neo hex напрочь отказывался дизассемблировать участок кода, который, как мне казалось, отвечает именно за него. Прозанимавшись сексом с экзешником пару часов, я это дело бросил. И не зря. В конце концов выяснилось, что до лимита, даже на повышенных разрешениях, очень далеко.
2. В экзешнике есть место отвечающее за проверку разрешения в конфиге и сбросе на default.cfg, если разрешение не соответствует стандартным (640-800-1024). Это место было послано подальше безусловным переходом на ветку соответствия.
3. Также был найден aspect ratio (4:3 по стандарту), который может принимать нужное вам значение (у меня 16:10, можно 16:9, ffff:ffff и т. д.). Выставляем разрешение в конфиге, запускаем ии.......
4. Вроде бы все отлично, загрузились. Пуляемся заклинаниями, смотрим симпатишные модельки, но как только персонаж делает шаг - memory access violation или вылет без всяких объяснений. Ладно..
5. Добрался до конфига. Тогда я еще думал, что мешает лимит. Выставил VideoSize = 60. Завелось. Интерфейс в моем разрешении, а игровой экран меньше. Все супер, пробуем дальше. 80 - полет нормальный. 95 - вылет. Минимальное рабочее значение у меня было 93.
6. Заметил странность: если я нахожусь, например в Иксе, и ставлю из ком. строки window 100, то вылетаю сразу же. А если выставляешь максимум в Manamines(я решил прогуляться по синглу пока размышлял, заодно протестировать), то все окей. Стабильно можно играть на протяжении пары минут, хотя потом, при смене локации, всё равно вылет.
7. Дальше я проводил тесты в debug mode на количество оъектов при смене разрешения. В Иксе при 1024х768 было 1750 объектов. Там же при 1280х800 - 1800. До 5000 в обоих случаях как до луны. Собирался кидать дурное, шёл уже 2 час ночи, но черт меня дернул снова поковырять конфиг. Отключил все эффекты, выставил VideoSize 100, запускаю. Работает))
Включаю по одному эффекту за раз... виновник найден - строка "TexturedFloors = 1", всё остальное отключать не нужно. Широкоэкранка, никакого стретчинга, красота-ляпота. Только пол галимый.
P.S. Прошу прощения за многабукаф и ни одной картинки)). Могу скриншотов настрелять, если уж очень нужно). Понимаю, до завершения ещё далеко, и ещё понимаю, что не знаю, в какую сторону копать. У меня просьба к активным моддерам, авторам и пользователям Unimod'a. Ребята, вы знаете больше меня о том, как в Ноксе натягиваются текстуры, взаимодействуют объекты. Помогите найти, каким образом TexturedFloors приводит к вылетам?
К сожалению, прикрепить экзешники не получится из-за размера. Посему напишу смещения в hex редакторе для редактирования:
Оригинальный Game.exe:
0x00033150 - 3col - значение 75 поменять на eb
0x00198f50 - оба значения 0004 и 0003 поменять на ffff.
В остальных двух экзешниках разница только в оффсетах: 0x000317e0 и 0x0019abd4 соответственно.
Вышеописанный способ увеличения разрешения работает пока только в сингле и на мультиплеер и главное меню пока не распространяется.
Спасибо за внимание.