GTA Builder Форум

GTA Vice City => Программирование => Тема начата: Sektor от Март 21, 2014, 09:52:01 pm

Название: Проверить бы TXD Pool.
Отправлено: Sektor от Март 21, 2014, 09:52:01 pm
Интересно бы проверить бы этот пул:

Код: ASM
  1. .text:0058102C 004 68 69 05 00 00                                                  push    1385
  2. .text:00581031 008 E8 1A 01 00 00                                                  call    CPool_CTexDictionary__constructor

Возможно это лимиты на максимальное кол-во TXD файлов. Для этого нужно по играть с push  1385... На сколько я помню, у многих наверное была проблема при добавлении новых TXD файлов в IMG, был тупо вылет. Так что возможно это значение и будет всему решение, но пока точно я не уверен. Но имейте введу, значение вы должны подменить заранее, пока еще функция не выполнилась, таким образом будет размер для TXD, такой какой вам нужен.
Название: Re: Проверить бы TXD Pool.
Отправлено: xanser от Март 24, 2014, 09:07:34 am
В минус работает замечательно, стабильный вылет.
В плюс видно что пытается, но игра вылетает дальше на загрузке на адресе 0x640D0B.
Добавлял копированием generic.txd (в generic1.txd, generic2.txd...), прописыванием их в default.dat и заменой в generic.ide, у меня 1370 txd, соответственно 15 добавляются, 16 уже нет, увеличение лимита не помогает.

P.S. Лимит менял в момент, когда меняю папку сохранения, параметры Limit Adjuster'а, отключаю видео и т.д. Там еще есть места, где попадается 1385 (69 05 00 00), надо везде попробовать заменить
Название: Re: Проверить бы TXD Pool.
Отправлено: Sektor от Март 24, 2014, 01:19:20 pm
Патчинг делал обычным ASI плагином?
Название: Re: Проверить бы TXD Pool.
Отправлено: xanser от Март 24, 2014, 01:20:46 pm
d3d8.dll. Заменил уже все вхождения 1385, не помогло.
Название: Re: Проверить бы TXD Pool.
Отправлено: Sektor от Март 24, 2014, 01:23:56 pm
Вылет именно, и за патчинга?

Вчера делал патчинг:
Код: C++
  1.        
  2.  DWORD _old;
  3.  VirtualProtect((LPVOID)(0x058102C + 1), 5,  PAGE_READWRITE, &_old);
  4.   *(DWORD*)(0x058102C + 1) = 9000;
  5.  VirtualProtect((LPVOID)(0x058102C + 1), 5, _old, &_old);

Fast ASI Loader-ом, загружал, вылета не было но и результата тоже, для обычных текстур, а для IMG, не знаю.
Название: Re: Проверить бы TXD Pool.
Отправлено: xanser от Март 24, 2014, 01:43:44 pm
А ты txd привязываешь к объектам в IDE или просто добавляешь?
Ну вот так выглядит вылет без патчинга и с патчингом с одной лишней txd, именно привязанной к объекту.
(http://s6.postimg.org/yn3a1ript/scr002.jpg) (http://s6.postimg.org/3rm3amb9d/scr001.jpg)
Название: Re: Проверить бы TXD Pool.
Отправлено: Sektor от Март 24, 2014, 02:34:50 pm
Нет, я тут просто патчинг сделал... Но надо бы решить этот весь вопрос, снять все эти лимиты как-то, это необходимо все для моддинга...
Название: Re: Проверить бы TXD Pool.
Отправлено: xanser от Март 24, 2014, 02:37:50 pm
У меня само по себе увеличение лимита вылет не вызывает, только когда начинаешь эти лимиты использовать, оказывается что не так все просто.
Через IMG то же самое, как и с подключаемыми TXD
Название: Re: Проверить бы TXD Pool.
Отправлено: Sektor от Март 24, 2014, 03:13:06 pm
Да, одного пула это мало. Я даже эти места патчил, и толку конечно ноль, не чего не дает...


Код: C++
  1.           WriteInt(0x041065D + 2, 9000);
  2.           WriteInt(0x0580FD4 + 2, 9000);
  3.           WriteInt(0x061D98B + 1, 9000);
  4.           WriteInt(0x061D9E5 + 1, 9000);
  5.           WriteInt(0x061DAA5 + 1, 9000);
  6.           WriteInt(0x061DBA5 + 1, 9000);
  7.           WriteInt(0x061DCFA + 2, 9000);
  8.           WriteInt(0x061DD39 + 1, 9000);
Название: Re: Проверить бы TXD Pool.
Отправлено: xanser от Март 24, 2014, 03:28:06 pm
Ага, то же самое. Еще раз все проверил, лимит хранимых файлов в img-архиве, либо подключаемых внешних, это все же увеличивает, игры позволяет запуститься, только пока нельзя использовать больше стандартного.
Название: Re: Проверить бы TXD Pool.
Отправлено: Sektor от Март 24, 2014, 06:14:11 pm
Цитировать
лимит хранимых файлов в img-архиве
Т.е это увеличило лимит в IMG, для хранения TXD?
Название: Re: Проверить бы TXD Pool.
Отправлено: xanser от Март 25, 2014, 04:16:47 am
Да увеличило, если добавить лишние в архив и не патчить, игра выдаст первую ошибку, а так нормально запускается, проблема только при обращении. Кстати в Limit Adjuster 2 beta 6 этот лимит присутствует, не знаю насколько работает.
Название: Re: Проверить бы TXD Pool.
Отправлено: Sektor от Март 25, 2014, 04:31:56 am
Хорошо, дело сделано, хотя-бы уже с лимитами для IMG. Теперь бы найти бы, лимиты внешних TXD, т.е которые находятся вне IMG архива.
Название: Re: Проверить бы TXD Pool.
Отправлено: xanser от Март 25, 2014, 06:09:15 am
Для внешних вообще нет лимита, можно добавлять в default.dat хоть сколько, игра запускается, но также нельзя использовать лишние. Их можно вообще не рассматривать, они в игре появляются с большой задержкой.