Пока Razuka брутфорсит багофикс на сброс мяча, у меня возникли задачи поинтереснее.
Это в первую очередь вопросы к вам,
Марат, и
perfect_genius, раз уж вы сюда заглядываете да и хрен, кроме вас, мне кто объяснит
Мне известно, где в роме находятся
команды (1314DA),
игроки (133854),
составы команд (146ADE), и
составы лиг (14A69E). Все идут блоки прямо друг за другом.
Мне также известно откуда эти блоки читаются: D0D22 -
адрес блока игроков относительно
CFD7A т.е. CFD7A + 63ADA = 133854 (CFD7A - начало списка указателей?)
Замена адреса необходима для того, если добавлять новых игроков, расширив список и перенеся его в конец рома.
Итак, что же я сделал? Перед самым списком игроков я прописал еще одного (сломав последнюю команду, но это не важно) и заставил читать блоки игроков с 63AC4. Это сбило ID всем игрокам, но они читались. Вместе с моим игроком. Не читался только последний игрок. Его ID в оригинале был DEE, в итоге я поменял DEE на DEF и вместо последнего игрока я получил буквально пустоту. (игрок без имени, все параметры 0).
Предположим, у блока фиксированный размер.
Тот факт, что айдишники сместились, а последний игрок перестал читаться говорит, что нет указателя на непосредственное окончание блока.
Количество ID у игроков DEE+1 (0 ид) т.е. DEF
Количество байт, которые занимает блок с игроками 146ADE - 133854 =
1328AЯ искал 01328A и не нашел во всем роме.
Почему?
С размерами других блоков та же фигня.
Добавлено позже:Еще, я заглянул как устроены составы в FIFA 98, там более 300 команд т.е. лимит на 256 преодолен. Я посмотрел, что из себя представляют блоки - они те же самые, с одним отличием:
В 96 формат записи XX 00 YYYY - где X - ид команды, Y - ид игрока, зачем нули - не знаю.
В 98 формат - XXXX YYYY, без нулей.
Вопрос: может ли кто из вас перенести формат чтения из 98 фифа в 96? Нули я сам перепишу (да, тяжело будет), имеется ввиду сам адрес отвечающий за формат.
perfect_genius, можно ли будет это глитчером найти?