#26 14-01-2007 11:30

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: [EXE|Patch] San Andreas Mission Packs

все отлично работает (на пропатченном), правда при первом запуске текстура капюшона не убралась, но это уже глюк мода наверно, больше не повторялось (перезапускал игру, проверял)

мультимод лежит здесь: http://capushon.sannybuilder.com

ссылку на патч убрал, чтобы не ушел раньше времени, не против?

Last edited by Seemann (14-01-2007 11:32)

Offline

#27 14-01-2007 11:38

Sanchez
Registered: 18-08-2006
Posts: 280

Re: [EXE|Patch] San Andreas Mission Packs

ссылку на патч убрал, чтобы не ушел раньше времени, не против?

Да нет cool

Last edited by Sanchez (14-01-2007 11:38)

Offline

#28 14-01-2007 11:43

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: [EXE|Patch] San Andreas Mission Packs

Работает и на оригинальной игре, но вот в мультимоде поначалу опять текстура не убиралась и скрипты не шли. Но это вряд ли относится к делу.
Назови патч более конкретно, плиз, что-нибудь вроде SA Mission Packs Fix, а то просто патч ни о чем не говорит. Хотя конечно - твое право

Last edited by Seemann (14-01-2007 11:44)

Offline

#29 14-01-2007 11:52

Sanchez
Registered: 18-08-2006
Posts: 280

Re: [EXE|Patch] San Andreas Mission Packs

Работает и на оригинальной игре, но вот в мультимоде поначалу опять текстура не убиралась и скрипты не шли. Но это вряд ли относится к делу.

Это при первом старте?

Назови патч более конкретно, плиз, что-нибудь вроде SA Mission Packs Fix, а то просто патч ни о чем не говорит. Хотя конечно - твое право

Торопиться некуда это тестовя версия.  Когда с загрузкой разберусь посмотрим.

Offline

#30 14-01-2007 12:02

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: [EXE|Patch] San Andreas Mission Packs

Ты не учел важную деталь! В 03ad нужно добавить xor al, al перед end чтобы опкод считался нопом а не unsupported
игра вылетает когда на этот опкод приходит

Это при первом старте?

ну когда я новый ехе пропатчил и запустил игру в первый раз. странный баг

Last edited by Seemann (14-01-2007 12:07)

Offline

#31 14-01-2007 12:06

Sanchez
Registered: 18-08-2006
Posts: 280

Re: [EXE|Patch] San Andreas Mission Packs

Ты не учел важную деталь! В 03ad нужно добавить xor al, al перед end чтобы опкод считался нопом а не unsupported игра вылетает когда на этот опкод приходит

Спасибо за информацию обнулим.

Offline

#32 14-01-2007 12:07

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: [EXE|Patch] San Andreas Mission Packs

Sanchez wrote:

Торопиться некуда это тестовя версия.  Когда с загрузкой разберусь посмотрим

хе, а я уже релизить готов smile)

Offline

#33 14-01-2007 12:14

Sanchez
Registered: 18-08-2006
Posts: 280

Re: [EXE|Patch] San Andreas Mission Packs

хе, а я уже релизить готов )

Лучше сначало все баги отловить. Если я успею что нибудь до завтра раскопать можно и релизить. Если нет то выложу как есть.

Seemann
на сессии...

А уменя с завтрашнего дня. smile:):)

Offline

#34 14-01-2007 12:22

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: [EXE|Patch] San Andreas Mission Packs

Насчет загрузки имга. Скрипты загружаются динамически по мере необходимости, игра читает указатель в некой структуре и через LoadIMG загружает нужно кол-во байтов из файла (примерно так). Полученный указатель записывается в структуру eScriptsInfoPool (я писал ее в комментах выше). Можно покопать здесь, посмотреть как они выгружаются. Заставить игру перечитывать gta.dat возможно проблематичнее. Хотя наверняка есть какие-то флаги, указывающие на необходимость/ненужность загрузки этого файла.

у меня тоже завтра первая консультация

Last edited by Seemann (14-01-2007 12:23)

Offline

#35 14-01-2007 21:29

Capushon
Registered: 13-08-2006
Posts: 352
Website

Re: [EXE|Patch] San Andreas Mission Packs

2Seemann:
2Sanchez:

в мультимоде поначалу опять текстура не убиралась и скрипты не шли.

При первом запуске действительно так происходит - текстура и первые 2 буквы, почему???
Чем отличает второй запуск от первого?
Изменения в .set ???

ps: скрипты начинают работать только после завершения заставки.


Сначала ты надежда и гордость,
Потом о спину ломают аршин. (c)БГ

Offline

#36 15-01-2007 06:06

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: [EXE|Patch] San Andreas Mission Packs

Capushon wrote:

При первом запуске действительно так происходит - текстура и первые 2 буквы, почему???
Чем отличает второй запуск от первого?
Изменения в .set ???

Я и сам не понимаю. То исчезает, то нет. Set файл здесь может и не при чем, возможно проблема в спидометре, там же тоже текстура выводится, возможно они конфликтуют (капюшон появляется когда на мотоцикле садишься же).

Offline

#37 15-01-2007 06:53

Capushon
Registered: 13-08-2006
Posts: 352
Website

Re: [EXE|Patch] San Andreas Mission Packs

2Seemann:

капюшон появляется когда на мотоцикле садишься же

Не-а, это происходит когда удаляешься от старта на определённое расстояние (заканчивается стандартный INTRO поток), можно пешком.


Сначала ты надежда и гордость,
Потом о спину ломают аршин. (c)БГ

Offline

#38 15-01-2007 11:22

Sanchez
Registered: 18-08-2006
Posts: 280

Re: [EXE|Patch] San Andreas Mission Packs

При первом запуске действительно так происходит - текстура и первые 2 буквы, почему???

У меня все нормально. Хотя поле детально я не тестил.

Ты не учел важную деталь! В 03ad нужно добавить xor al, al перед end чтобы опкод считался нопом а не unsupported игра вылетает когда на этот опкод приходит

Исправил.

http://slil.ru/23747965

2Seemann:
2Capushon:
Смотрити в приват.

Offline

#39 15-01-2007 11:30

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: [EXE|Patch] San Andreas Mission Packs

а ты только xor al, al добавил больше ничего?

Offline

#40 15-01-2007 11:42

Sanchez
Registered: 18-08-2006
Posts: 280

Re: [EXE|Patch] San Andreas Mission Packs

Нет, все равно висло. Не стал разбтраться почему, написал так

PUSH 1
MOV ECX,ESI
CALL 00464080
XOR AL,AL
JMP end

Пришлось убрать одну проверку.
Насчет сравнивания строк: обе строки должны оканчиваться нулом?

зы
mov ecx,esi можно не писать

Last edited by Sanchez (15-01-2007 11:43)

Offline

#41 15-01-2007 11:43

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: [EXE|Patch] San Andreas Mission Packs

Усе кажется работает smile 03ad нопится, скрипты грузятся, сейвы работают. Релизим?

Насчет сравнивания строк: обе строки должны оканчиваться нулом?

да обе, все строки хранятся как null-terminated

Last edited by Seemann (15-01-2007 11:45)

Offline

#42 15-01-2007 11:43

Sanchez
Registered: 18-08-2006
Posts: 280

Re: [EXE|Patch] San Andreas Mission Packs

сейвы работают

Точно? Я их не проверял.

Если все нормально, то можно, потом если что изменить недолго.

Last edited by Sanchez (15-01-2007 11:47)

Offline

#43 15-01-2007 11:48

Sanchez
Registered: 18-08-2006
Posts: 280

Re: [EXE|Patch] San Andreas Mission Packs

да обе, все строки хранятся как null-terminated

Я так и знал. Мне кажется это только увеличит код.

Offline

#44 15-01-2007 11:50

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: [EXE|Patch] San Andreas Mission Packs

Не стал разбтраться почему, написал так

погоди, т.е. если я пишу в скрипте 03ad он пойдет на загрузку имга?

Offline

#45 15-01-2007 11:54

Sanchez
Registered: 18-08-2006
Posts: 280

Re: [EXE|Patch] San Andreas Mission Packs

погоди, т.е. если я пишу в скрипте 03ad он пойдет на загрузку имга?

Нет. Не должен. Это опкод 3ad так выглядит. А код имг идет после джампа.

Offline

#46 15-01-2007 12:01

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: [EXE|Patch] San Andreas Mission Packs

Да, все понял. Это же опкод с параметром, там надо CollectNumberParams(1) вызвать, все правильно.

блин, без перезагрузки имга плохо, по сути функциональности не много прибавилось. Будет работать только для скм-ов с одинаковыми скриптами sad

Last edited by Seemann (15-01-2007 12:04)

Offline

#47 15-01-2007 12:10

Sanchez
Registered: 18-08-2006
Posts: 280

Re: [EXE|Patch] San Andreas Mission Packs

блин, без перезагрузки имга плохо, по сути функциональности не много прибавилось. Будет работать только для скм-ов с одинаковыми скриптами

Это да. Сейчас вообще времени мало, разбирать придется в свободное время. А свободного времени совсем мало.

Offline

#48 15-01-2007 12:15

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: [EXE|Patch] San Andreas Mission Packs

Не говори, та же проблема sad в принципе можно и опубликовать, если сделать оговорку, что скрипты не перегружаются

Сегодня 19:10:00

прикольная дата, три нуля

Last edited by Seemann (15-01-2007 12:16)

Offline

#49 15-01-2007 12:21

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: [EXE|Patch] San Andreas Mission Packs

кстати, а ты как ищешь места для добавления кода? Просто пишешь по фиксированным адресам, или еще читаешь их для проверки корректности? Просто на других версиях может не работать.

На версии 1.01 US не работает, пишет pattern not found, хотя адреса несложно найти.

Last edited by Seemann (15-01-2007 12:25)

Offline

#50 19-01-2007 08:29

listener
From: Vice City
Registered: 09-11-2006
Posts: 616
Website

Re: [EXE|Patch] San Andreas Mission Packs

Seemann wrote:

Для IMG файлов процедура StoreIMGName

Вообще, назвать эту функцию так - не совсем корректно. Она не просто сохраняет имя файла, а создает для него stream reader.
Все внутриигровое чтение файлов (не при начальной загрузке, а во время игры), делается stream reader-ами - объектами для асинхронного чтения файлов.
По идее, правильнее было бы назвать ее CreateImgStream или CreateImgReader.

Имг хранится в динамической памяти, процедура загрузки в


Code:
.text:005B6170 ; int __cdecl LoadIMG(char *FileName,int IntImgIndex)
IntImgIndex - это индекс имг, для script.img он равен 3.

Вот пока не знаю, как обновить имг. Заставить игру перечитывать gta.dat?

И с этой функцией не все так гладко. IMG в память целиком не грузятся. (GTA, изначально делался под PS2, с ее 32M памяти, поэтому память экономят)
Эта функция считывает из IMG каталог (у меня она называется gta_read_img_header, хотя, окончательным названием будет что-то вроде CImgFile::readDirectory). При этом, IntImgIndex - это, на самом деле, хэндл ридера, созданного для этого файла.

Вообще, насколько я пока разобрался, GTA абсолютно пофигу, в каком из описанных в gta.dat IMG хранятся .scm. На них строится каталог, в котором указывается из какого стрима и из какого места этот .scm читается. Есть подозрение, что просто так перечитать gta.dat не получится - надо будет предварительно закрыть все созданные стримы (количество открытых стримов ограничено) и очистить все считанные заголовки, texture dictionary и т.д.

Если в выходные будет свободный часик - попробую разобраться со всем этим подробнее.

Offline

Board footer

Powered by FluxBB