Разработка и ромхакинг > Ромхакинг
[SMD] Неполноценный хак FIFA 96
Razuka:
--- Цитата: perfect_genius от 14 Сентябрь 2025, 18:23:07 ---Где пропадал полтора года?
--- Конец цитаты ---
Я всегда был и есть где-то рядом :) Жду и надеюсь на дальнейшее развитие технологий, чтобы продолжить штурмовать ранее задуманное.
--- Цитата: perfect_genius от 14 Сентябрь 2025, 18:23:07 ---Переставлятель не развивается, лишь поправлен неприятный баг интэрфэйса.
--- Конец цитаты ---
Как так? А это что такое?
ROM Glitcher: Branch Inverter
версия 0.2.3 (12.09.2025) - совсем свежая.
--- Цитата: perfect_genius от 14 Сентябрь 2025, 18:23:07 ---А что там с тем багом выпинывания мяча, который удалось исправить Инвертером?
Не выявились баги из-за этого изменения?
Будем исправлять и для верхней части поля?
--- Конец цитаты ---
Багов не засек - вроде бы все хорошо :thumbup:
Продолжить исправления было бы здорово, но я действительно не хочу, чтобы ты тратил на это свое время. Там много требуется разных доработок: пасы, штрафные, комбинации, травмирования, турниры и т.д.
FIFA - затратная (с точки зрения времени) игра... сложная для поиска внутренней логики и т.п.
Подождем, пока нейросети научатся достойно реверсить.
StrikeDJU:
Razuka, подскажи пожалуйста какие байты надо поправить, чтобы исправить баг с выбиванием мяча в нижней части поля?
Беларус учит русский:
--- Цитата: Razuka от 14 Сентябрь 2025, 19:27:20 ---А это что такое?
ROM Glitcher: Branch Inverter
версия 0.2.3 (12.09.2025) - совсем свежая
--- Конец цитаты ---
Глянь, автор же pav13. Он встроил Инвертер в эмулятор, отчего тебе надо лишь выбирать какую из двух кнопок нажать.
Глитчер - это два инструмента же: Инвертер инвертирует логику кода (Да<--->Нет), а Переставлятель даёт переставить ресурсы игры местами или множить их.
--- Цитата: Razuka от 14 Сентябрь 2025, 19:27:20 ---я действительно не хочу, чтобы ты тратил на это свое время
--- Конец цитаты ---
Мы остановились на том, что исправили выбивание мяча в нижней части поля. А баги верхней части собирался собрать-сохранять ты, но пропал. Если не мешает, то ок.
--- Цитата: Razuka от 14 Сентябрь 2025, 19:27:20 ---Подождем, пока нейросети научатся достойно реверсить.
--- Конец цитаты ---
А если до пенсии не доживёшь? :)
Razuka:
--- Цитата: StrikeDJU от 14 Сентябрь 2025, 21:27:14 ---Razuka, подскажи пожалуйста какие байты надо поправить, чтобы исправить баг с выбиванием мяча в нижней части поля?
--- Конец цитаты ---
Если речь про баг с выбиванием мяча в сторону своих ворот при ведении в счёте команды на нижней стороне поля:
- "по адресу 0х72647 меняем 04 на 05. Или на любое число от 0 до 5, кроме 4. Так как на 4 происходит баг. 4 - это стратегия Атака"
Добавлено позже:
--- Цитата: perfect_genius от 14 Сентябрь 2025, 23:28:39 ---встроил Инвертер в эмулятор, отчего тебе надо лишь выбирать какую из двух кнопок нажать.
--- Конец цитаты ---
Это впечатляет! Обязательно найду время на тестирование. Спасибо за ваши труды :thumbup:
--- Цитата: perfect_genius от 14 Сентябрь 2025, 23:28:39 ---А если до пенсии не доживёшь?
--- Конец цитаты ---
Я смотрю на это философски, не тороплюсь никуда. Всему своё время :oldgamer:
Rexi:
Razuka, я ещё раз вставлю словечко "за" в игре не ставить командам тактику (оборона, атака и т.д.) от слова совсем. В моем случае играю с 97й фифа, защитники крайне редко выносят мяч на угловой. А вбрасывание "за линию" вообще не замечал. Я в основном не играю, а смотрю процесс игры компом в основном с увеличенной скоростью, (для чего? для того чтобы не пялиться в экан все 20 минут) для получения результата, а как бы "на перемотке посмотреть игру". Для меня результат важнее среди команды, нежели генератор непонятного счета. Сейчас работаю над лигой "Классика" Т.к. добавить новую лигу не могу, я просто вставил её в Малайскую,поменяв с нуля все команды и составы вместе с показателями игроков. Пока готова только высшая лига СССР, правда все игроки и показатели выдуманные. Не точ тобы я не чту историю, просто она уже прошла. В общем будет что-то по делу покажу наглядно в ролике.
Razuka:
--- Цитата: Rexi от 16 Сентябрь 2025, 14:28:45 ---Razuka, я ещё раз вставлю словечко "за" в игре не ставить командам тактику (оборона, атака и т.д.) от слова совсем. В моем случае играю с 97й фифа, защитники крайне редко выносят мяч на угловой
--- Конец цитаты ---
Я предпочитаю FIFA 96 - так как её механика игры более технична и менее хаотична по сравнению с FIFA 97.
Достаточно один раз внести изменение в ROM по адресу 0х72647 и про баг с выносом мяча можно забыть. А варианты тактик все же вносят определенные изменения в геймплей.
--- Цитата: Rexi от 16 Сентябрь 2025, 14:28:45 ---Я в основном не играю, а смотрю процесс игры компом
--- Конец цитаты ---
Аналогично, я не играю сам, а наблюдаю за процессом и фиксирую турнир.
Я взял под управление команду "Лестер Сити" в качестве менеджера - меняю тактику, формацию, тасую состав, делаю замены и пр. Сам не играю на поле.
Для остальных команд у меня есть правило: смена тактики и формации после 3-х подряд поражений через использование генератора случайных чисел. Если такое событие происходит, то прописываю новые значение в ROM для соответствующей команды, чтобы каждый раз потом заново не ставить требуемую тактику / формацию.
FIFA 96 отражает состав команд сезона 1994/1995
StrikeDJU:
Razuka, по адресу 72647 попробуй поставить значение 09. Вроде бы футболисты разнообразнее стали передвигаться. Если поставить 20, то вратари с рук от ворот выбивают мяч не только прямо-вперёд, но и по диагонали на бровку. И ещё игроки стали чаще травмироваться.
Razuka:
--- Цитата: StrikeDJU от 17 Сентябрь 2025, 22:01:37 ---по адресу 72647 попробуй поставить значение 09. Вроде бы футболисты разнообразнее стали передвигаться. Если поставить 20, то вратари с рук от ворот выбивают мяч не только прямо-вперёд, но и по диагонали на бровку. И ещё игроки стали чаще травмироваться.
--- Конец цитаты ---
Интересно... я поставил 29 (20 и 09) - понять бы еще, на что это конкретно в коде повлияло, но предварительно могу сказать, что игра стала более динамичной.
Боты при игре между собой не травмируются - это происходит только при участии "живого" игрока. Возможно, что травм стало больше из за более агрессивного поведения футболистов - стало больше подкатов. Либо это просто совпадение.
Я думал, что по адресу 72647 актуальны только значения тактик от 00 до 05 (None / Long Ball / Defend / All out defend / Attack / All out attack) - всего 6 значений. Что же тогда такое число "9"?
И что происходит при замене первого "0" на "2"? :wacko:
Нужны еще тесты, чтобы выявить закономерности.
StrikeDJU:
--- Цитата: Razuka от 18 Сентябрь 2025, 17:29:42 ---это происходит только при участии "живого" игрока.
--- Конец цитаты ---
Да. Я тестировал "живьём".
Я пробовал разные варианты до 99. Игра реагирует по разному: 1) сложнее футболистов компьютера поймать подкатом. 2) Судьи часто дают краcные 3) Футболисты передвигаются быстрее/медленнее.
Всё это проявляется случайно. Тут надо более детально изучать, наверное с десяток матчей нужно сыграть на каждом значении этого байта.
Прежним остаётся лишь несложный геймплей, компьютера обыгрывать слишком легко. К сожалению в FIFA 96 есть один "читерский" метод забивания голов. Это исправить пока не удалось.
Razuka:
--- Цитата: StrikeDJU от 18 Сентябрь 2025, 19:05:40 ---компьютера обыгрывать слишком легко
--- Конец цитаты ---
Мне не критично, так как я участвую в матче только в качестве наблюдателя :)
Razuka:
--- Цитата: StrikeDJU от 18 Сентябрь 2025, 19:05:40 ---Я пробовал разные варианты до 99
--- Конец цитаты ---
Тоже тестирую разные значения в адресе 72647.
Вот красивая комбинация с ножницами и завершением головой получилась.
StrikeDJU:
Сравнил код Ромов FIFA96 и FIFA97. На скрине часть кода выделена, как раз та часть которая скорее всего отвечает за игровой процесс. Уже можно пробовать перенести геймплей из одной версии игры в другую и обратно.
Вот бы найти ещё байты, которые отвечают за модели футболистов.
Razuka:
--- Цитата: StrikeDJU от 21 Сентябрь 2025, 19:49:11 ---как раз та часть которая скорее всего отвечает за игровой процесс
--- Конец цитаты ---
А какой именно игровой процесс?
Фрагмент не очень большой. По идее, код должен быть объемнее, чтобы учесть все нюансы поведения игроков на поле.
Беларус учит русский:
StrikeDJU, в BCompare удобно сравнивать файлы разного размера. Он сразу покажет вот так что где совпадает.
--- Цитата: StrikeDJU от 21 Сентябрь 2025, 19:49:11 ---Вот бы найти ещё байты, которые отвечают за модели футболистов.
--- Конец цитаты ---
Вот бы была простая программа специально для поиска ресурсов игры, да?
Что-то никто не предлагает такую в этой теме уже несколько раз... ::)
StrikeDJU:
--- Цитата: perfect_genius от 22 Сентябрь 2025, 01:17:26 ---BCompare удобно сравнивать файлы разного размера.
--- Конец цитаты ---
perfect_genius, спасибо. Попробую.
--- Цитата: perfect_genius от 22 Сентябрь 2025, 01:17:26 ---от бы была простая программа специально для поиска ресурсов игры, да?
--- Конец цитаты ---
Пробовал я переставлятелем повлиять на модели футболистов, ничего не получилось. Может я принцип работы программы не понял. Открыл ром, запустил матч, сохранился и начал прогонять переставлятелем, отвечая на вопрос: "повлияло ли изменение". После кажого прохода запускал новый ром, который автосоздавался в папке с программой.
Модели футболистов отложим. Хотелось бы решить задачу попроще. В теме я прочитал, что господа тренерА-менеджерА научились регулировать вбросы из аутов. Так вот, если играть "живьём", т.е. управляя командой с джойстика, то при вбросе аута можно кнопкой "B" выделить любого игрока своей команды, перебежать этим игроком на любое удобное место и спокойно вбросить ему мяч. Всё это описание касается FIFA96. А вот в FIFA 97 при вбросе аутов кнопка "B" не работает, выделить игрока не получится, а это несколько усложняет игровой процесс. Вопрос: Как при помощи "простой программы специально для поиска ресурсов игры" найти функцию , активируемую кнопкой "B" и отключить её в роме FIFA96 ? Как правильно поставить задачу программе и как эту программу потом гонять?
И ещё вопрос: Есть ли способ декомпилировать ромы? Сходные куски кода , о которых я писал в посте 231 по количеству байтов не идентичны. Было бы интересно вставить код из одной игры в другую и посмотреть на эффект, но побайтно в HEX-эдиторе это делать не удобно, и не помещается весь код из FIFA 97 в FIFA96.
Беларус учит русский:
--- Цитата: StrikeDJU от 23 Сентябрь 2025, 17:52:03 ---Открыл ром, запустил матч, сохранился и начал прогонять переставлятелем, отвечая на вопрос: "повлияло ли изменение". После кажого прохода запускал новый ром, который автосоздавался в папке с программой.
--- Конец цитаты ---
Т.е. ты сохранился прямо на экране, где модели уже видны? И каждый раз грузил это сохранение? Если так, то обычно игры распаковывают и грузят графику перед тем, как её показать. Т.е. игра во время матча уже не обращается к сделанным тобой изменениям, поэтому это было бесполезно, графика неизменно бралась из сохранения каждый раз.
Такое пользователям, далёким от программирования, никак не объяснить, конечно. Это недостаток такого способа поиска.
Попробуй сохраниться перед появлением экрана с футболистами или дай мне ссылку на игру и скажи куда заходить, как запускать. Вряд ли чем-то помогу, но вдруг.
--- Цитата: StrikeDJU от 23 Сентябрь 2025, 17:52:03 ---Как ... найти функцию , активируемую кнопкой "B" и отключить её в роме FIFA96 ?
--- Конец цитаты ---
Просто не нажимать B - не вариант? Или её нажатие обязательное? По идее, достаточно сохраниться перед нажатием и каждый раз после загрузки рома и сохранения пробовать нажимать. Именно отключить может и не выйти, но нажатие кнопки может начать делать что-то другое.
--- Цитата: StrikeDJU от 23 Сентябрь 2025, 17:52:03 ---Есть ли способ декомпилировать ромы?
--- Конец цитаты ---
Простого способа нет, я такой инструмент только ещё начинаю делать. Если дашь ссылки на обе игры, я сравню функции игр и покажу, если их возможно сравнить простым способом.
StrikeDJU:
--- Цитата: perfect_genius от 24 Сентябрь 2025, 00:10:18 ---Просто не нажимать B - не вариант?
--- Конец цитаты ---
Просто не нажимать не вариант. Палец так и тянется нажать. Дело в том, что разрабы , делая FIFA97, стремились усложнить игру, ничего лучше не придумали, как ограничить функцию вброса аута. И это сработало. Если разобраться, как именно они это осуществили, то 1) Можно это повторить в FIFA96 2) Наоборот включить эту функцию в FIFA97. Было бы интересно наверное фанатам версии 97. Я знаю, что есть в этой группе, те кому FIFA 97 интереснее.
Добавлено позже:
--- Цитата: perfect_genius от 24 Сентябрь 2025, 00:10:18 ---дай мне ссылку на игру и скажи куда заходить, как запускать
--- Конец цитаты ---
Для того чтобы увидеть футболистов достаточно после запуска игры в главном меню нажать "START", начнётся товарищеский матч по умолчанию. Это что касается моделей футболистов. И вообще эти же модели можно увидеть просто запустив игру, футболисты бегают в стартовом ролике.
Почему-то сохранки в формате .srm сюда не прикрепляются. По этому касательно выбросов из аута опишу словами: Котроллер должен быть установлен в лево или в право, т.е. одна из команд управляется пользователем. Мяч вышел в аут от соперника. Пользователь: Нажатие "B" - игрок выделился "звездой", теперь выделенного игрока можно стрелками креста переместить на любое удобное место, далее нажатие "A" - мяч из аута вбрасывается именно этому игроку.
Добавлено позже:
--- Цитата: perfect_genius от 24 Сентябрь 2025, 00:10:18 ---Если дашь ссылки на обе игры, я сравню функции игр и покажу, если их возможно сравнить простым способом.
--- Конец цитаты ---
Обе игры прикрепил.
Беларус учит русский:
--- Цитата: StrikeDJU от 24 Сентябрь 2025, 16:48:38 ---Почему-то сохранки в формате .srm сюда не прикрепляются.
--- Конец цитаты ---
Форум понимает только известные форматы, есть же список. Засунь в zip или rar.
Спортивные игры ЕА прям страшный кошмар для моей программы - в игре понаставлена куча проверок на всё и любые почти изменения приводят к ошибке. Больше не буду предлагать так искать их игры :lol:
В обоих играх большие массивы: 3196 элементов (FIFA 96, адрес 15aef4) и 3198 (FIFA 97, 16280a). Если копировать один элемент на другой, то в игре меняется кадр анимации или ракурс. Например, все начинают стоять спиной к экрану.
Если пройти по этим указателям, там на глаз что-то похожее на структуры, даже надписи. Т.е. просто взять и вставить один массив со всеми структурами по указателям не выйдет, надо в структурах искать указатель на саму графику.
Вроде бы это всё уже было известно?
В FIFA 96 нашёл массив с волосами - цвет и причёски. Вроде бы тоже мелькало в этой теме.
Сравнение в BCompare показывает, что игры очень похожи. Красное - несоответствие, розовое - частичные мелкие различия (обычно, тот же код, только смещения-адреса другие), а белое - полное соответствие:
StrikeDJU:
--- Цитата: perfect_genius от 25 Сентябрь 2025, 16:41:02 ---В FIFA 96 нашёл массив с волосами - цвет и причёски. Вроде бы тоже мелькало в этой теме.
--- Конец цитаты ---
Да. Цвет причесок, цвет кожи игроков, цвет маек и шорт - всё это описано в этой теме. Всё что можно я собрал в вордовский файлик. (см. вложение)
perfect_genius, Не ты ли автор этой замечательной программы? (см. скрин)
Нет ли планов расширить её возможности? Добавить редактирование команд: Имя, цвета плашек, цвета форм. Рейтинги, тактики, формации. Добавить возможность трансферов?
Беларус учит русский:
--- Цитата: StrikeDJU от 25 Сентябрь 2025, 20:31:33 ---всё это описано в этой теме
--- Конец цитаты ---
Т.е. столько найдено, а указатели на графику ускользнули? Очень уж сложная структура кода, получается. Наверно, надо искать её корраптерами типа Поганки.
--- Цитата: StrikeDJU от 25 Сентябрь 2025, 20:31:33 ---Не ты ли автор
--- Конец цитаты ---
Не.
Навигация
Перейти к полной версии