Автор Тема: [SMD] Неполноценный хак FIFA 96  (Прочитано 6544 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн Rexi

  • Пользователь
  • Сообщений: 13
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #90 : 29 Февраль 2024, 22:53:15 »
Редактирование составов команд и лиг
тут мои полномочия... всё... это довольно трудно, на первых парах.

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1171
    • ВКонтакте
    • Steam
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #91 : 29 Февраль 2024, 23:22:19 »
Вот, словил
Спасибо, но уже не надо :thumbup: У меня тоже нет эмулятора, понимающего такой формат сохранений.

Новая попытка исправить баг с вбрасыванием мяча, ушло 72 попытки в программе.
По пути менялось поведение игроков. Например, все начинали принимать мяч на голову или постоянно делали друг другу подкаты. Или одна сторона начала пинать мяч в прыжке через себя в зрителей, что оказалось очень полезным, т.к. мяч постоянно уходил за линию и я быстро набрал 10 сохранений нужного нам бага.
Вроде бы находилось исправление, но некоторые из этих сохранений показывали, что баг не исправлен. Решил продолжать поиск в надежде на универсальное решение, чтобы не пришлось применять все найденные инструкции, исправляющие частично. Был интересный момент, когда этот баг был только у одной стороны.
В итоге таки нашёл инструкцию, не дающую случиться багу во всех сохранениях (до этого находил такую, но с ней игра тормозила):
0x7b414 - 0x67 надо поменять на 0x66
Но похоже, теперь вбрасывает только в одном направлении.
Зато моя программа снова показала, что годится для хакинга.
« Последнее редактирование: 01 Март 2024, 01:38:19 от perfect_genius »

Оффлайн Razuka

  • Пользователь
  • Сообщений: 90
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #92 : 29 Февраль 2024, 23:27:01 »
А как быть с таким: создание лиги 4,8,16,24 команды, а можно как-то это отладить к примеру сделать 5,6,12,18,20 команд в лиге? Где это можно найти?
По информации Je$TeR`а в области, которую я выделил на скрине.
Чтобы регулировать кол-во команд в Лигах, тебе нужно знать номер команды и номер Лиги.
Например, я в качестве теста взял 2 первые английские команды и присвоил им Американскую Лигу (вместо "02" поставил им номер "00").

Добавлено позже:
0x7b414 - 0x67 надо поменять на 0x66
Похоже, теперь вбрасывает только в одном направлении.

Это невероятно! Я завтра обязательно должен найти время для теста!
Если это сработает, то, perfect_genius, однозначно достоин награды.
Твои усилия внушают мне оптимизм :) Я реально это ценю.

Добавлено позже:
0x7b414 - 0x67 надо поменять на 0x66
Это похоже сработало!
Я внес данное исправление в ROM и загрузил тот сэйв, который скидывал ранее с фиксацией ошибки. И... ошибка не проявилась - игрок сделал корректное вбрасывание!
Надеюсь, что мы победили еще один баг!
Приз за исправление данной ошибки достается несравненному perfect_genius  :hi:
« Последнее редактирование: 01 Март 2024, 01:25:26 от Razuka »

Оффлайн Vurzum

  • Пользователь
  • Сообщений: 55
  • Пол: Мужской
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #93 : 01 Март 2024, 01:43:01 »
Во всех тест матчах ошибка сохранилась. Совпадение, или нет, но все разы баг проявлялся во время вбрасывания с дальней стороны поля.

Оффлайн Razuka

  • Пользователь
  • Сообщений: 90
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #94 : 01 Март 2024, 10:32:31 »
Во всех тест матчах ошибка сохранилась. Совпадение, или нет, но все разы баг проявлялся во время вбрасывания с дальней стороны поля.
Ох... попробую на выходных потестировать ещё... Но, вероятно, решение где-то совсем рядом.

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1171
    • ВКонтакте
    • Steam
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #95 : 01 Март 2024, 12:33:21 »
Vurzum, кстати да, почти все мои сохранения этого бага были с ближней стороны поля. Так что не совпадение.
Как проявлялся у меня баг только для одной команды, так и это исправление может быть только для одной стороны поля.
Т.е. теперь надо бы накопить несколько сохранений со сбросом мяча с верхней стороны экрана. Баг исправлен только наполовину.

Оффлайн Razuka

  • Пользователь
  • Сообщений: 90
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #96 : 01 Март 2024, 13:03:59 »
Либо разнообразить удары. Боты, как минимум, вообще не используют подкрутку
Я думаю, что со временем и этот аспект улучшим. Всё постепенно :)
А пока, вот вроде бы симпатичный удар от бота из сборной Германии.

Оффлайн Je$TeR

  • Пользователь
  • Сообщений: 39
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #97 : 01 Март 2024, 19:05:17 »
Зато моя программа снова показала, что годится для хакинга.
Было бы здорово, если бы твоя программа помогла бы мне блоки увеличить и спрайты стран заменить.

Оффлайн Razuka

  • Пользователь
  • Сообщений: 90
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #98 : 01 Март 2024, 21:41:59 »
моя программа снова показала, что годится для хакинга.
У нее очень большой потенциал.
Особенно радует, что ей может пользоваться практически любой человек, даже без знания ассемблера )

Оффлайн Rexi

  • Пользователь
  • Сообщений: 13
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #99 : 02 Март 2024, 00:04:37 »
Вполне может быть, что разрабы придумали 2 номера игрока в тех случаях, когда игрок помимо Клуба заявлен еще и в Сборной.
Но, видимо, до конца не смогли реализовать этот механизм.

В реальной жизни все так и есть: за статусными игроками закрепляется конкретный номер и в Клубе и в Сборной. Они могут как совпадать, так и различаться.
Но в плане игры - это лишь мое предположение.
Вопрос а этот редактор он как приватный? Не для всех?

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1171
    • ВКонтакте
    • Steam
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #100 : 02 Март 2024, 00:21:41 »
блоки увеличить и спрайты стран заменить
Сейчас идея следующей функции - менять элементы местами или повторять. Т.е. работа с указателями.
Условный пример - в меню есть Start game и Options. Глитчер даст поменять их местами. Или поменять их указатели, т.е. зайдя в первое попадёшь во второе. Или флаги в игре поменять местами, или размножить. И т.д.
Тебе же надо создать новые флаги? С этим программа пока сможет помочь лишь частично - найдёт указатель нужного флага и можешь переуказать его на конец рома, где должен будешь вставить свой флаг. Формат флага может тебе разобрать хакер. Или, может быть, в конце года буду учить Глитчер разбирать структуры - это даст разобраться в формате флагов и блоков.

Razuka, жаль, что я пока не могу никого уговорить им пользоваться :lol:
Уже неделю или две тэстирую новую версию, которая находит нужное ещё быстрее - всего за полчаса. Думаю, когда покажу, что сделал в каких играх и за какое время, то интерес к программе повысится.
Например, в Streets of Rage нельзя выбирать двух одинаковых персонажей. Глитчер дал снять этот блок за минут 10.

Оффлайн Razuka

  • Пользователь
  • Сообщений: 90
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #101 : 02 Март 2024, 00:46:21 »
жаль, что я пока не могу никого уговорить им пользоваться
Уже неделю или две тэстирую новую версию, которая находит нужное ещё быстрее - всего за полчаса. Думаю, когда покажу, что сделал в каких играх и за какое время, то интерес к программе повысится.

Я уверен, что всё получится, так как думаю, что в этом аспекте ром-хакинга ты скорее всего первопроходец.
У меня совсем мало опыта и знаний в этой области, но я реально пока не сталкивался и не слышал о программах такого рода для Sega.
Не знаю, можно ли Глитчер считать частью процесса реверс-инжиниринга, но то, что он делает - это фактически ноу-хау.
Он позволяет в этом слепом пространстве машинного кода среди всех этих массивов данных найти методом проб и ошибок нужные адреса и тут же протестировать все изменения с ними.
Реально, если освоить до автоматизма твою программу, то, вероятно, многое можно изменить в различных механиках большинства игр.
Для меня это очень волнительный момент, так как позволяет прикоснуться к неведомым мне знаниям  :wow:

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

Добавлено позже:
Вопрос а этот редактор он как приватный? Не для всех?
Какой редактор?
Который я уже дважды выкладывал в этой теме? )
Если про редактор для редактирования хар-к игроков, то мне его делали на заказ для Fifa 96 (для других версий он может быть немного несовместим из за разности расположения требуемых адресов с данными).

Оффлайн Razuka

  • Пользователь
  • Сообщений: 90
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #102 : 02 Март 2024, 01:44:10 »
Забавно, конечно!
Я смог с помощью Глитчера сделать такую ситуацию как на скрине: игрок повернулся спиной к полю (лицом к зрителям).
И он таки стал теперь кидать корректно  :lol:
Правда у игроков его команды теперь странные удары по мячу, как будто бы бьют обратно ходу своего движения.

А в другом случае игрок нормально стоял по отношению к линии поля и кинул мячик тоже хорошо, но на экране присутствовали граф. артефакты.

Буду продолжать эксперименты )

Оффлайн Razuka

  • Пользователь
  • Сообщений: 90
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #103 : 02 Март 2024, 01:58:47 »
Опаньки!
Где-то примерно на 98-м проходе спустя примерно минут 80 после начала опытов я смог заставить игрока кинуть мячик четко в поле  :gamer:

Но возник главный вопрос!!!
perfect_genius, как мне найти теперь нужную инструкцию, которая была изменена Глитчером? :lol:
Где эта информация хранится?

P.S. На меня уже жена странно смотрит.

Оффлайн Razuka

  • Пользователь
  • Сообщений: 90
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #104 : 02 Март 2024, 11:57:36 »
Баг исправлен только наполовину.
Данный баг со вбросом мяча из за боковой линии оказался более устойчив, чем мы предполагали.
Сегодня поймал его вновь на ближней линии, но со вбросом мяча направо.
Т.е., после патча я перестал наблюдать баг на ближней линии со вбросом мяча на левую сторону, а вот на правую сторону игрок раз пять подряд метал, пока не сменил направление вброса. :wall:
К сожалению, не сделал сэйв, но записывал видео - выложу чуть позже.

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1171
    • ВКонтакте
    • Steam
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #105 : 02 Март 2024, 14:26:24 »
Какой кошмар! :ohmy:
Я думал, что ты попробовал и уже удалил эту старую версию. Я даже убрал её в теме, чтобы не скачивали. В ней мелкие баги и алгоритм поиска надёжный, но медленный. Новая версия быстрее в 2-3 раза, так что лучше не используй старую.
как мне найти теперь нужную инструкцию, которая была изменена Глитчером?
Пункт 3 (нужное изменение получено) начинает локализовывать нужную инструкцию. Т.е. надо просто продолжать, это закончится очень быстро, баги начнут исчезать. В конце и выдаст адрес инструкции и ром останется изменённым. Т.е. даже если не сохранил адрес, то можно будет сравнить с оригиналом и увидеть различие.

думаю, что в этом аспекте ром-хакинга ты скорее всего первопроходец
Если только для Сеги. Есть Поганка, Visual Poganka и Пакостник, но они универсальные и не подходят обычным людям.
Особенность Сеги (код и адреса только по чётным адресам) даёт возможность сильно сузить область поиска, это и есть "ноу-хау" :)

Да, баги бывают очень весёлыми и даже могут стать фичами. Чего только я не видел в процэсе, можно добиться всего. Все ходили задом наперёд, телепортировались за спину, главгерой убивал всех криком, в футболе все делали подкаты и т.д. Достаточно сохраниться перед моментом, который надо изменить, и далее начинаешь менять игру в Глитчере. Опыт с ФИФА показал, что так можно повлиять и на поведение.

Сегодня поймал его вновь
Тогда баг делится уже на 4 части, я исправил только одну :D
Привыкай сохраняться перед вбрасыванием, чтобы накопить несколько сохранений для всех вариантов: ближняя линия вправо, дальняя линия влево и вправо.
Вот тогда и будем исправлять каждую.
Далее я добавлю в Глитчер изменение чисел в роме, с ним попробую изменить область/угол сброса.

Оффлайн Razuka

  • Пользователь
  • Сообщений: 90
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #106 : 02 Март 2024, 15:40:12 »
Новая версия быстрее в 2-3 раза
perfect_genius, подскажи, пожалуйста, а где можно скачать новую версию? В твоей теме вроде бы не видно ее...  :neznayu:

Добавлено позже:
Пункт 3 (нужное изменение получено) начинает локализовывать нужную инструкцию. Т.е. надо просто продолжать, это закончится очень быстро, баги начнут исчезать. В конце и выдаст адрес инструкции и ром останется изменённым.
А... вот оно что. Надо просто дойти до конца.
Понял, спасибо!

Добавлено позже:
Далее я добавлю в Глитчер изменение чисел в роме, с ним попробую изменить область/угол сброса.
Ух... кажется, высшие силы услышали наши молитвы. :thumbup:

Добавлено позже:
Вот если бы фифой увлекся настоящий хакер, тогда бы нам с вами повезло.
Я про это  :lol:

Оффлайн Марат

  • Пользователь
  • Сообщений: 556
  • Пол: Мужской
    • Просмотр профиля
Re: [SMD] Неполноценный хак FIFA 96
« Ответ #107 : 02 Март 2024, 16:50:59 »
Привыкай сохраняться перед вбрасыванием, чтобы накопить несколько сохранений для всех вариантов: ближняя линия вправо, дальняя линия влево и вправо.
Я вам открою один секрет, есть некоторые параметры и они используются и для ближней и для дальней стороны. Так что если вы исправите этот параметр и он будет правильно работать на ближней стороне, то тогда он начнет глючит на дальней стороне.
Таким образом вам нужно искать другой какой то параметр.

Оффлайн Je$TeR

  • Пользователь
  • Сообщений: 39
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #108 : 02 Март 2024, 18:53:16 »
Тебе же надо создать новые флаги?
Там примерно такая ситуация:
Для графики используется сжатие RefPack, которое использует EA, только они понаделали разных вариантов, ещё нужно найти правильную программу. Например, графика для флага Малайзии при выборе лиги в роме с позиции 12CB68: байты 30 FB, где FB - магический байт всегда, а в байте 30 хранится формат сжатия, вместо него в этой игре может быть 10/11, 46/47, 30/31/32/33/34/35, 7A/7B, 72/73, всего 5 алгоритмов, код распаковки с 0xADD60.
Мне, короче говоря, нужно сначала научить читать конкретную графику без сжатия. Потом добавить спрайт в конец рома (через yychr, как я понял) и заставить ром читать нужный мне спрайт.
Формат флага может тебе разобрать хакер.
О чем речь? Я знаю, что спрайт 64х64 максимум, Sharpnull говорил мне еще карта тайлов нужна. Но я бы предпочел сам разобраться, чем постоянно просить за каждый спрайт. А спрайт, допустим, есть у меня.

Оффлайн Razuka

  • Пользователь
  • Сообщений: 90
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #109 : 02 Март 2024, 18:58:16 »
Я вам открою один секрет, есть некоторые параметры и они используются и для ближней и для дальней стороны. Так что если вы исправите этот параметр и он будет правильно работать на ближней стороне, то тогда он начнет глючит на дальней стороне.
Таким образом вам нужно искать другой какой то параметр.

Да, будем искать и тестировать :)
Я уверен, что всё можно поправить - это лишь вопрос времени.

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1171
    • ВКонтакте
    • Steam
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #110 : 03 Март 2024, 00:04:06 »
еще карта тайлов нужна
Это усложняет дело, забыл про карту тайлов. Т.е. надо будет найти уже минимум два указателя, т.е. понадобится два поиска, раз поиск структур только в будущем.
Ничего, алгоритм Глитчера находил комбинацию из двух инструкций, находящихся в разных концах рома. Так что и эти указатели должен найти, посмотрим ^_^

Оффлайн Razuka

  • Пользователь
  • Сообщений: 90
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #111 : 03 Март 2024, 00:09:08 »
Вот, что проявилось!
Номера игроков-ботов. Это, конечно, все пока предварительно, но... получается, что можно номера игроков в теории отображать не только на реальных игроках, управляемых человеком, но и компьютером!
Я действительно думал об этом, почему разрабы не реализовали эту фичу? Было бы удобно, конечно, фамилии игроков видеть, чтобы понимать кто там чего делает.

Оффлайн Je$TeR

  • Пользователь
  • Сообщений: 39
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #112 : 03 Март 2024, 08:15:12 »
Это усложняет дело, забыл про карту тайлов. Т.е. надо будет найти уже минимум два указателя
Забыл сказать, что там надо достать 2 спрайта одновременно. Один - спрайт страны, другой - мигающая иконка, у каждой страны своя. Если методом перебора всё делать, то можно наткнуться на оба сразу.

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1171
    • ВКонтакте
    • Steam
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #113 : 03 Март 2024, 13:16:48 »
Razuka, у меня такое тоже появлялось. Думал, или стандартная функция включилась, или это от дебага. Потому что игра меня очень удивила своими сообщениями об ошибках: что-то типа "Ошибка выделения памяти. Требуется выделить 14000, имеется 0", "Неизвестный формат упаковки данных" и т.д.
Т.е. в играх Сеги бывают динамические выделения памяти?! :ohmy:

Je$TeR, я имел в виду про один элемент. Т.е. и у мигающей иконки тоже два указателя, скорее всего - на набор тайлов и на карту тайлов. И оба могут быть сжаты, и у каждого свой формат. А ещё вспомнил, что должна быть ещё палитра :lol: Вот тебе уже три указателя на элемент. Поиск палитры в роме должен быть простым, тоже придётся делать отдельной функцией Глитчера.
Мне осталось протестировать её ещё на нескольких играх и потом начну эксперименты с указателями.

Оффлайн Razuka

  • Пользователь
  • Сообщений: 90
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #114 : 03 Март 2024, 13:34:56 »
Как жаль, что у нас нет полной карты адресов и описания того, что и как в них зашито.
Интересно даже, чисто гипотетически, сохранились ли какие либо документы или инструкции у разработчиков?
Глупый вопрос, конечно. Лежит, где-нибудь пылится дизайн-документ или как там это еще называется... исходники, блок-схемы и т.д. без дела, покрытые коммерческой тайной правообладателя.
А мы тут как слепые котята тыркаемся во тьме машинных кодов.
Реально не хватает местного аналога G.E.C.K. - звучит, конечно, дико  0_0

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1171
    • ВКонтакте
    • Steam
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #115 : 03 Март 2024, 13:49:03 »
Вот я когда-то ковырял UMK3 в отладчике. Нашёл функцию распаковки графики и подсматривал, по каким адресам она обращается, собирал их:
По идее, достаточно найти список этих адресов. Глитчер будет искать такие структуры в будущем. А пока вариант - найти с ним один такой указатель и уже самому найти весь список в роме с хекс-редактором.

Оффлайн Марат

  • Пользователь
  • Сообщений: 556
  • Пол: Мужской
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #116 : 03 Март 2024, 14:13:59 »
По идее, достаточно найти список этих адресов. Глитчер будет искать такие структуры в будущем. А пока вариант - найти с ним один такой указатель и уже самому найти весь список в роме с хекс-редактором.

Вот тебе таблица со списком адресов:
$15AEF0 - $15E0E3 - таблица с 4 байтными относительными поинтерами (3196 поинтеров). Поинтер вычисляется относительно адреса таблицы. Т.е. берём $15AEF0 и прибавляем к нему значение из таблицы. Например, поинтер с индексом 1 (поинтер с индексом 0 не используется) в таблице - 00006428. 15AEF0 + 6428 =  $161318. По этому адрес находится какая-то структура размером $116 байт. Размер структуры я определил вычтя адрес следующего поинтера от текущего, т.е. 653E - 6428 = $116.

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1171
    • ВКонтакте
    • Steam
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #117 : 03 Март 2024, 16:08:12 »
Спасибо, проспойлерил мне всё :lol:
Я сейчас пока не ищу указатели, у меня вообще нет цэли разбирать конкретно эту игру. Я хочу сделать общее решение для всех игр, чтобы фанаты могли делать всё сами. Так что эта информация для Razuka и Je$TeR - вы теперь в хекс-редакторе пробуйте менять эти адреса в списке местами или копировать один в другой, чтобы узнать за что они отвечают, что меняется в игре. Т.е. вручную то, что будет пытаться делать Глитчер на следующей неделе :)

Марат, а как ты это нашёл? Просто так прошёлся в хекс-редакторе глазами и зацепился? Таких списков указателей в роме несколько же?

Оффлайн Razuka

  • Пользователь
  • Сообщений: 90
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #118 : 03 Март 2024, 17:01:40 »
ChatGPT Understands Assembly
https://swedishembedded.com/gpt-translate-assembly/

На полном серьёзе верю в возможности ChatGPT в относительно скором будущем в плане "чтения" и понимания кода ассемблера.
Хотелось бы на его основе получить всю расшифровку кода, а также инструменты и редакторы для простой и доступной модификации Рома.
Ох, сложно представить, какие тогда откроются возможности для творчества и полета фантазии.  :lol:

P.S.
Теперь можно кидаться помидорами :facepalm:

Оффлайн Марат

  • Пользователь
  • Сообщений: 556
  • Пол: Мужской
    • Просмотр профиля
[SMD] Неполноценный хак FIFA 96
« Ответ #119 : 03 Март 2024, 18:31:00 »
Марат, а как ты это нашёл? Просто так прошёлся в хекс-редакторе глазами и зацепился? Таких списков указателей в роме несколько же?

Ida + Дебаг конечно же.