Разработка и ромхакинг > Ромхакинг

[SMD] Неполноценный хак FIFA 96

<< < (9/13) > >>

Je$TeR:

--- Цитата: Марат от 08 Март 2024, 10:23:44 ---Их надо все 4 менять. Это всё связанно. Потому что созданные игроки через меню Create player  получают нумерацию начиная с def. Если их не менять, то возможно, вместо этих игроков у тебя будут игроки, которых ты добавил через хекс эдитор

--- Конец цитаты ---
Ты имеешь ввиду Custom Players? Я менял эти параметры поочередно, изменения почти незаметные были. Я так понял, что кастомные игроки получают айдишники вслед за обычными.
С командами та же самая фигня, количество команд - 239 т.е. EF (и вот это уже точно хрен найдешь, но возможно там и 00 EF), и у кастомных команд тоже айди EF, F0, F1, F2
Блоки с составами тоже, по идее, должны быть EF

upd: у составов лиг должно быть EF, а что у составов команд - черт его знает.

Беларус учит русский:

--- Цитата: Je$TeR от 08 Март 2024, 04:29:55 ---найти инструкцию, отвечающую за формат чтения именно этого блока
--- Конец цитаты ---
Сложно сказать определённо, тут надо думать как учёный, изучающий чёрный ящик :)
Надо определиться какую инструкцию нам надо искать. Глитчер умеет пока только в "да/нет", а не "больше/меньше".
Допустим, ищем инструкцию, которая должна проверять количество команд (239). Инвертируем её и что мы должны увидеть в игре? Какой эффект?
В игре же можно промотать все эти 239 команд в меню? Курсор/выделение доходит до последней и далее прыгает на первую команду/остаётся на месте? Надо сохраниться перед нажатием и поработать в Глитчере. Если при очередном нажатии курсор/выделение уйдёт за край, в несуществующую команду, в глюк-зависание, то значит угадали - такая инструкция есть :lol:
Далее можно в роме попробовать вставить в конец списка одну из команд и убедиться - выбирается ли она.

Je$TeR:

--- Цитата: perfect_genius от 08 Март 2024, 13:59:06 ---Инвертируем её и что мы должны увидеть в игре? Какой эффект?
--- Конец цитаты ---
Скорее мы должны увидеть, что все команды исчезли, (кроме кастомных). Да, за это могут отвечать другие инструкции, но в данном случае остается только перебирать их все.

--- Цитата: perfect_genius от 08 Март 2024, 13:59:06 ---В игре же можно промотать все эти 239 команд в меню?
--- Конец цитаты ---
Нет.
1. Они разбросаны по лигам и проматываются по кругу, но допустим, их всех в одну лигу засунули.
2. Видно только те команды, которые прописаны в таблицу составов (к какой лиге приписана команда)
3. В оригинале есть невидимые лиги (трансферы, кастомные команды), трансферы просто служат массивом для игроков, их нельзя проматывать. (но их можно в обычные превратить)

Чтобы новая команда читалась, она:
1. Должна быть в списке команд (у которого фиксированный размер)
2. Должна быть в таблице лиг, чтобы ее высветить (у которой фиксированный размер)
3. Иметь игроков в таблице составов,(у которой фиксированный размер) но я не уверен
Если же речь идет о том, чтобы просто отключить проверку на размер блока, то кракозябры из команды получатся только в том случае, если отключить проверку у команд и у лиг одновременно.

Добавлено позже:
Небольшое уточнение: лиги могут в себе содержать ид одной и той же команды хоть тысячу раз, если вместимость позволяет. Поэтому, если убрать проверку на размер у составов лиг, то получим кучу существующих команд повторяющихся много раз в случайном порядке.
Короче говоря, глитчером следовало бы сначала проверку на составы лиг отключить, а следом можно и остальное.

Марат:
Ну, допустим, я перенес из FIFA 98 составы команд в конец рома и подправил код. Дальше я могу перенести самих игроков из FIFA 98. Это не проблема. Но вот с составами лиг уже посложнее. Началась проблема с нехваткой памяти. Я не знаю почему она появляется, возможно надо перенести ещё названия команд.

Je$TeR:

--- Цитата: Марат от 08 Март 2024, 16:46:44 ---Ну, допустим, я перенес из FIFA 98 составы команд в конец рома и подправил код.
--- Конец цитаты ---
Что все это значит?  o_0
Ты перенес блок с командами, или блок с составами команд?
Ты все это перенес из 98 в 96 или просто в конец рома?


--- Цитата: Марат от 08 Март 2024, 16:46:44 ---Но вот с составами лиг уже посложнее.
--- Конец цитаты ---
Если все таки речь о переносе из 98 в 96, то лиг в 98 больше и они больше размера занимают. Но я, все таки, пока не до конца понимаю о чем речь. Ты именно 98 разбираешь?

Марат:
Я перенес составы команд из 98 в 99(96).

Je$TeR:

--- Цитата: Марат от 08 Март 2024, 17:42:23 ---Я перенес составы команд из 98 в 99(96).


--- Конец цитаты ---
Если я правильно понял, то ты взял блок составов из 98, перенес в 96 и там поменял формат записи для ид команд т.е. вместо 86 00 у команды стало 00 86. Но команд в 98 больше, чем в 96, там и 0101 ид есть.
И если переносить еще и составы лиг - а именно там расположение команд указано... да, игра может ругаться на недостающие команды, но и на лиги тоже - лиг тоже больше. А формат у составов лиг менял? В 96 они 0X YY, а в 98 XX 00 YYYY. Еще попробуй лишние лиги удалить из списка. В 96 0B - максимум. Ну и\или команды перенести можно, да.

Беларус учит русский:
Я таки доделал Глитчер до пользовательского состояния и теперь берусь за указатели. Найти так структуры не обещаю, но надеюсь поменять флаги местами или размножить.

Je$TeR:
Попытался найти глитчером формации, больше сотни попыток перебрал. В некоторых попытках с поля пропадали игроки, но тут же гас экран. Но даже если бы и нашел, все равно не понятно, как результат в виде нужного адреса получить.

Беларус учит русский:

--- Цитата: Je$TeR от 11 Март 2024, 14:26:52 ---Попытался найти глитчером формации
--- Конец цитаты ---
Формации - это расстановка игроков? Если их несколько, то это уже не "да/нет", "включено/выключено". Ты ожидал получить другое расположение?

--- Цитата: Je$TeR от 11 Март 2024, 14:26:52 ---не понятно, как результат в виде нужного адреса получить
--- Конец цитаты ---
Пункт 3 же.

Искал, как отключить часть интэрфэйса в некоторых играх. Он исчезал только полностью, отдельно так и не нашөл. Только потом дошло, что раз в игре еө части никогда не появляются и не исчезают отдельно, то такого кода в игре с большой вероятностью нет.

Сейчас становится ясно, что сложность поиска я увөл от интэрфэйса программы в сторону ищущего. Он должен ясно понимать, что он хочет найти.
Поэтому сейчас стратегия такая: пусть ищущий сначала спросит в теме что надо искать, чтобы получить желаемое, и эксперты Эмулэнда подскажут :)

Je$TeR:

--- Цитата: perfect_genius от 11 Март 2024, 15:31:54 ---Ты ожидал получить другое расположение?
--- Конец цитаты ---
Если в свойствах команды ввести номер несуществующей формации, то все игроки, кроме вратаря, исчезнут.
Я надеялся сломать чтение нужной мне формации, надеясь на похожий эффект. Получил только эффект с вратарем и игроком в одной точке, в центре поля, затем экран гас.

--- Цитата: perfect_genius от 11 Март 2024, 15:31:54 ---Пункт 3 же.
--- Конец цитаты ---
Он фильтрацию начинает. Если уже нашел нужное, нужно бесконечно 3, что ли, жать?

Беларус учит русский:
Нет, надо просто продолжать выбирать пункты. При нажатии 3 появилось сообщение "Продолжайте до полной локализации инструкции"?

Беларус учит русский:
Есть некоторые успехи с указателями. Новый алгоритм ищет группы байтов, похожие на указатели/смещения, и сдвигает их на одну позицию. В итоге в игре меняются местами то спрайты персонажей, то звуки, то ещё что. Т.е., как и писал ранее, можно будет объект/звук поменять на другой или размножить.
Примеры того, что получил буквально за первые пробы порчи рома:

   UMK3
1 - поменялось управление - подножка теперь апперкот, например. Файребол Сони замораживает противника, ракета Сектора тянет противника как сетка Сайракса...
4 - У Сони не работает захват ногами. У Страйкера пистолет наносит урон только вблизи. Надо разобраться что это за группа.

   Streets of Rage 2
1 - спрайты героев
2 - звуки в меню, падения
3 - координаты разрушаемых предметов
4 - ? (выпрыгивающие из люка сбивают других!)
7 - сила откидывания

   Contra Hard Corps
7 - указатели уровней. Можно выбирать любой уровень теперь
11 - кадры анимации смены портретов
14 - спрайты состояний персонажей

Ром надо переименовать в rom.gen, он будет повреждаться и восстанавливаться при каждом нажатии. При этом серьёзных багов новый способ хака не вызывает :ohmy:
Это только проба идеи, так что текущий неудобный интэрфэйс - временный.

Хотел проверить и вашу игру, но не знаю там ничего. Решил оставить удовольствие от открытий вам самим :)
Могут меняться, например, флаги, команды, униформа, звуки.

Razuka:

--- Цитата: perfect_genius от 15 Март 2024, 02:57:10 ---Хотел проверить и вашу игру, но не знаю там ничего. Решил оставить удовольствие от открытий вам самим
--- Конец цитаты ---
Это новая версия Глитчера или что-то иное?  :)

Беларус учит русский:
Типа "Глитчер 3.0", но новая область поисков, другая логика. Т.е. предыдущий поиск остаётся ("инвертер - вкл/выкл"), а это дополнение к нему ("поменять местами/размножить"). Или же разделю на две отдельные программы и будет набор инструментов с одним общим названием.

Этот тестовый код уже может изменить и поведение игроков, по идее. Поменять G и D, оставив буквы на своих местах - один из твоих пунктов.
А для Je$TeR может помочь лучше разобраться в формате команд, найти дополнительные списки указателей/смещений, переуказать нужные на конец рома, где разместит свои вещи.

А у тебя как дела с сохранениями бага? Сколько уже набрал?
Я проигрывал игру в перемотке эмулятора и ловил моменты уходы мяча за линию. И это долго. Как уже писал, помог баг/фича из-за Глитчера, когда игроки начали умышленно пинать мяч за линию. Но делали это только в одну сторону. Сейчас подумал, что надо было мне просто попробовать поменять управление командой или пересохраниться при уходе мяча уже на другую линию, чтобы игроки начали пинать уже туда.
Также есть вариант сделать хак, чтобы при вбрасывании мяча игра просто зависала или ждала игрока (это происходило при глитчинге). Это для варианта "оставить игру в перемотке и периодически подходить и проверять".

Razuka:

--- Цитата: perfect_genius от 15 Март 2024, 13:03:15 ---А у тебя как дела с сохранениями бага? Сколько уже набрал?
--- Конец цитаты ---
Ох, если честно, то я пока взял паузу на отлове багов. В сутках примерно пары часов не хватает, чтобы все успевать.
Но, я обязательно вернусь к этим тестам в ближайшее время, так как хочется с помощью твоей программы найти адреса, которые влияют на логику поведения игроков:
 - подкорректировать игру в пас,
 - улучшить реализацию штрафных моментов,
 - улучшить дриблинг и т.д..

Конечно, не факт, что все это вообще возможно сделать, так как мы не знаем об инструкциях AI во время игры вообще ничего.
Но, просто попробовать ничто не мешает.

Кстати, после того решения, найденного тобой, с корректировкой вброса мяча из за линии, уже намного меньше случаев повторения бага.  :drinks:

Вообще, оглядываясь назад, уже можно констатировать то, как много мы все сообща сделали в этом непростом деле:
- исправлен главный баг с выбиванием мяча на угловой выигрывающей командой (на левой половине поля),
- частично исправлен баг с зацикленным вбрасыванием мяча из за боковой линии,
- создан редактор для редактирования параметров, амплуа и имен игроков (для удобства),
- созданы инструкции для редактирования цветов команд и формы игроков,
- созданы инструкции для редактирования лиг (кол-ва команд, их названий), тактики и стратегии, рейтинга и пр.,
- создан Глитчер!, который может специальным образом ломать Ром, чтобы найти нужную нам инструкцию и т.д.

И это не конец, конечно же!

Je$TeR:

--- Цитата: perfect_genius от 15 Март 2024, 13:03:15 ---Этот тестовый код уже может изменить и поведение игроков, по идее.
--- Конец цитаты ---
Ну уж действительно :lol:
Если бы он мог плотно редактировать формации, я уверен, у меня игроки с поля по одному исчезали бы, и я бы даже не заметил, что нужное изменение произошло.
Я, конечно, находил какие-то адреса, но это не те, что мне нужны. И я думаю, что формации устроены намного сложнее, чем я предполагал. В том же меню еще графику искать. Короче говоря, искать кучу адресов в разных местах.
Ну и слом формации поведения в одном моменте позабавил  :biggrin:
А в другом наткнулся на неиспользованную часть графики.



Добавлено позже:

--- Цитата: Razuka от 15 Март 2024, 18:09:12 ---Вообще, оглядываясь назад, уже можно констатировать то, как много мы все сообща сделали в этом непростом деле:
--- Конец цитаты ---
Я картинки со странами всё никак не заменю

--- Цитата: Razuka от 15 Март 2024, 18:09:12 ---- создан редактор для редактирования параметров, амплуа и имен игроков
--- Конец цитаты ---
тебе его делали за деньги и он для твоего личного пользования.

--- Цитата: Razuka от 15 Март 2024, 18:09:12 ---созданы инструкции для редактирования цветов команд и формы игроков
--- Конец цитаты ---
Они в открытом виде были, их, разве что, редактировать не очень удобно, а так...

Самый главный прорыв - это перенос форматов команд и лиг из 98 в 96, которые Марат пытался осуществить. Пытался, но, видимо, не получилось. При этом, какие адреса за размеры отвечают, он не говорит. Жаль, я бы сейчас больше сборных добавил.

Марат:

--- Цитата: Je$TeR от 16 Март 2024, 00:10:09 ---Самый главный прорыв - это перенос форматов команд и лиг из 98 в 96, которые Марат пытался осуществить. Пытался, но, видимо, не получилось. При этом, какие адреса за размеры отвечают, он не говорит. Жаль, я бы сейчас больше сборных добавил.

--- Конец цитаты ---
Слишком геморно, я потратил достаточно много времени и мне удалось лишь осуществить возможность выбора команд во Friendly режиме. Но при этом почему-то сломалась система чтения игроков. Хотя до этого было всё нормально.
Также во время игры неправильно отображается название второй команды. Т .е. тут проблемы будут тянуться одна за другой и их надо постоянно исправлять. Честно говоря, надоело всё это.
Адреса я особо никуда не записывал, вот приложил ром, можете скачать и посмотреть, какие изменения внесены.
Игра работает во Friendly режиме. Я не переносил названия лиг, поэтому названия лиг не соответствуют командам.

Razuka:

--- Цитата: Je$TeR от 16 Март 2024, 00:10:09 ---А в другом наткнулся на неиспользованную часть графики.
--- Конец цитаты ---
Хм... а вот это интересно. Выглядит очень прикольно.

Добавлено позже:

--- Цитата: Je$TeR от 16 Март 2024, 00:10:09 ---тебе его делали за деньги и он для твоего личного пользования.
--- Конец цитаты ---
Однако, это не мешает им пользоваться кому-то еще.
Или в этом контексте есть какой-то ограничивающий фактор?  o_0

Добавлено позже:

--- Цитата: Марат от 16 Март 2024, 10:33:28 ---Слишком геморно, я потратил достаточно много времени и мне удалось лишь осуществить возможность выбора команд во Friendly режиме.
--- Конец цитаты ---
Все в порядке, Марат!
Конечно, это сложная задача. Тут, вероятно, нужно весь код шлифовать и долго тестировать, чтобы не вылезли где-то косяки.

С картинками должно быть попроще, наверное. Если найдешь время и возможности для помощи Je$TeR в замене спрайтов стран или что он там хочет изменить, то будем рады.
Если необходимо, то я могу этот кейс материально поддержать.

Je$TeR:
Начнем, с того, что у тебя ром весит 8192  0_0
Я не знаю, может ли это быть причиной неисправностей, я лишь знаю что так делать нежелательно.


--- Цитата: Марат от 16 Март 2024, 10:33:28 ---Также во время игры неправильно отображается название второй команды.
--- Конец цитаты ---
Там не вторая команда сломана. Все команды, после PSV Eindhoven перестают читаться, т.е. они читаются в списках, но не отображаются во время матча. Начиная с Pahang идут кастомные команды, что как бы намекает. Возможно еще где-то размер не указан. С игроками, подозреваю, такая же ерунда, но это я сам сейчас посмотрю.
Посчитал количество команд, которые читаются правильно. EE, о чем я и говорил.
А с игроками сложнее. Видимо они читаются не по порядку. Но багованные игроки выглядят так, когда игра пытается читать несуществующие ид игроков.


--- Цитата: Марат от 16 Март 2024, 10:33:28 ---Игра работает во Friendly режиме.
--- Конец цитаты ---
Я даже знаю почему. У тебя запись в sram не работает. Сейчас не работают кастомные команды и трансферы сломаны. Кастомные игроки не запоминаются. Все чемпионаты, когда только формируются, уже пишутся в sram. Формат команд поменялся и ,скорее всего, поэтому режимы лиг не работают.


--- Цитата: Марат от 16 Март 2024, 10:33:28 ---Я не переносил названия лиг, поэтому названия лиг не соответствуют командам.
--- Конец цитаты ---
Я знаю, где это править, но там тоже головняк. Потом надо будет про это отдельно расписать.


--- Цитата: Razuka от 16 Март 2024, 15:19:15 ---Однако, это не мешает им пользоваться кому-то еще.
Или в этом контексте есть какой-то ограничивающий фактор?  o_0
--- Конец цитаты ---
Ты её в публичный доступ не выкладывал. Но так-то она все равно бесполезна станет, как только блок с игроками перенести.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

[*] Предыдущая страница

Перейти к полной версии