Автор Тема: [SMD] Запрос на взлом игры Toejam & Earl 2 за вознаграждение.  (Прочитано 10375 раз)

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

Оффлайн ankxiteatr

  • Пользователь
  • Сообщений: 111
  • Пол: Мужской
    • Просмотр профиля
Искал, искал... И ничего не нашёл  :neznayu:
Неужели вырезано разработчиками? Но я хочу быть точно уверен в этом.

В общем, возвращаемся к первому моему сообщению. Кто нибудь готов найти обращение рома к тексту и за какую сумму вы готовы это сделать?  :cool:
Без каких то жёстких временных рамок, ну, в пределах разумного.

Оффлайн krocki

  • Пользователь
  • Сообщений: 1250
  • Пол: Мужской
  • ...:::Hacking_Craft:::...
    • Просмотр профиля
Искал, искал... И ничего не нашёл  :neznayu:
Неужели вырезано разработчиками? Но я хочу быть точно уверен в этом.
Такое возможно...скажи что сам смог проделать?

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9376
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
он там ничего не проделает.
см. мое сообщение на прошлой странице, оно не из пальца высосано - код который может обращаться к искомому тексту я нашел, но там одна процедура для всех этих ворот, и в зависимости от аргументов показывает 1 из 3х "заголовков" и 1 из 13 описаний ништяка.
напрямую эта процедурка не вызывается, а чёрти-как через коллбеки, так что искать от чего оно там пляшет можно долго и нудно.
также, вполне возможно что и нет вызовов с искомыми типами ворот.

Оффлайн krocki

  • Пользователь
  • Сообщений: 1250
  • Пол: Мужской
  • ...:::Hacking_Craft:::...
    • Просмотр профиля
а чёрти-как через коллбеки
Вот я хотел об этом сказать, что нет одной из функций в отладке, как не просто искать по прыжкам или call'ам, что нет функционала для отладки по call'ам для трассировки кода, базового адреса для мегадрайва...и то не факт, если разрабы это не предусмотрели...так чтоооооо!!!

Оффлайн ankxiteatr

  • Пользователь
  • Сообщений: 111
  • Пол: Мужской
    • Просмотр профиля
Такое возможно...скажи что сам смог проделать?

Искал с твоим кодом в игре  :) я же не ромхакер. Максимум, что я пробовал это найти gg код смены этапов, точнее даже подэтапов (так как для первых он есть на gamehacking.org, меняя их и подставляя другие значение я смог лишь обнаружить два новых кода - на continue и на the end). Так как были мысли, вдруг можно перемещаться между комнатами с кодом, меняя его значение.

Значение я находил, но сбросив игру, чтобы попасть на нужный уровень, ты попадаешь на "совмещённый" этап. Это сложно объяснить... Появляется текст нужного тебе уровня, ты находишься на нужной координате "игрек", но призы и всё остальное из первого уровня совмещается с тем, что должно быть на нужном тебе уровне. В общем идёт наслоение друг на друга.

Так же искал значение gg смены "ништяков" в комнате русалки, ведь по сути локация одна. Была мысль, что если я смогу это сделать, то получив нужную мне возможность русалка же отправит меня обратно в тот этап, где я бы входил ворота для этого. Но... Безрезультатно.

Добавлено позже:
он там ничего не проделает.
см. мое сообщение на прошлой странице, оно не из пальца высосано - код который может обращаться к искомому тексту я нашел, но там одна процедура для всех этих ворот, и в зависимости от аргументов показывает 1 из 3х "заголовков" и 1 из 13 описаний ништяка.
напрямую эта процедурка не вызывается, а чёрти-как через коллбеки, так что искать от чего оно там пляшет можно долго и нудно.
также, вполне возможно что и нет вызовов с искомыми типами ворот.

Спасибо, что пытались найти искомое! В Америке народ уже так же, как и я сдался <_< найти "честно" через игру не удалось. Но остались места, которые до сих пор вызывают вопросы, то есть минисекреты не все раскрыты.

Для них было удивительно, что ещё остались игры из прошлого с нераскрытыми тайнами :)

Оффлайн ankxiteatr

  • Пользователь
  • Сообщений: 111
  • Пол: Мужской
    • Просмотр профиля
krocki, а ты не мог бы найти значение выбора уровня?  :blush: Вдруг у тебя получится.

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

В общем, наглость второе я   :lol:

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1145
    • ВКонтакте
    • Steam
    • Просмотр профиля
ankxiteatr, пробовал логгировать объём используемости рома? Есть эмуляторы (например Exodus и BizHawk), которые помечают использованные внутренности рома. Придётся пройти всю игру, зайдя во все возможные места и используя всё что есть в игре - эмулятор в реальном времени будет наращивать процент используемости рома.
Попробовал немного погонять в МК3 в BizHawk, и как видно, использовано 13% рома. Если пройду игру полностью за всех персонажей, использую все их приёмы и добивания, все режимы и т.д., то мог бы набрать более 90%.
Если пройдёшь свою игру от и до, и будет использовано лишь 70-80%, то там явно что-то пропускается и будем это искать.


Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8077
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Есть эмуляторы (например Exodus и BizHawk), которые помечают использованные внутренности рома. Придётся пройти всю игру, зайдя во все возможные места и используя всё что есть в игре - эмулятор в реальном времени будет наращивать процент используемости рома.
Забавно, что некоторые отладчики ведут такую статистику. В 1-й раз вижу подобное.

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1145
    • ВКонтакте
    • Steam
    • Просмотр профиля
Code data logger помогает при дизасме точно определять где код, а где данные.
Эмуляторы не ведут лог сами, надо включать, т.к. нагружает эмулятор. У меня BizHawk подтормаживает, некомфортно играть, поэтому можно сначала записать прохождение и уже потом воспроизвести с включением логгирования.
Встречал эту функцию ещё в FCEUX лет 10 назад. Про другие эмуляторы не знал и решил поискать сейчас после появления на днях альфы Акира для Мегадрайва, когда на её странице в Hidden Place увидел факт:
Цитата
Approximately 65% of the ROMs contents can be accessed within the game itself according to a code/data log analysis. The other 35% is non-null data containing unused sprites and other data.
Т.е. так они выискивают недоступный контент в прототипах.

Оффлайн krocki

  • Пользователь
  • Сообщений: 1250
  • Пол: Мужской
  • ...:::Hacking_Craft:::...
    • Просмотр профиля
Проходить игру и не раз, что бы задебажить, всё подряд и потом  типа лога в ней искать...жееесть. :hang:

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9376
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
а не хочешь попробовать найти обращение к тексту за денюжку? Даже если окажется, что этих ворот нет. А то тайна игры детства повисла в воздухе)
денюжки мало что решают, тут больше вопрос в том что не особо интересно ковыряться в чём-то, если вероятность успеха совсем невелика. а потраченое время таки бесценно.

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

Забавно, что некоторые отладчики ведут такую статистику. В 1-й раз вижу подобное.
да, прикольно. типа прошел игру на 78% :)

Т.е. так они выискивают недоступный контент в прототипах.
ну и как это поможет в данном случае ? а никак

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9376
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Проходить игру и не раз, что бы задебажить, всё подряд и потом  типа лога в ней искать...жееесть.
а что тебя удивляет ? именно так и делается анализ игр при поиске всяких секреток и неиспользованного контента - сперва гоняется игра (вручную или лучше записью прохождения) и создаётся карта использованного кода и данных, затем импортируется специальным скриптом в IDA, затем ищутся не исполнявшиеся ветки кода, анализируется чо они делают, при каких условиях код туда попадёт, итд итп.
да долго и нудно, да всё делается вручную, вернее собственными мозгами, но других способов (пока) нет.
и ничо, народ развлекается, вот Санчез таким макаром прошерстил десятки (если не сотни) игр для NES.

Оффлайн ankxiteatr

  • Пользователь
  • Сообщений: 111
  • Пол: Мужской
    • Просмотр профиля
SUPER_ROBOT, не пробовал, так как даже не знал об этом) Спасибо за совет! Правильно ли я понимаю, что таким способом можно сузить область поисков? То есть тот оставшийся процент (если он будет) должен содержать информацию о не найденных мною воротах.
Попробую пройти за праздники с открытием всех известных мне секретов и локаций.

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

То есть ты считаешь, что прохождение всей игры заново ничего не даст?

Оффлайн krocki

  • Пользователь
  • Сообщений: 1250
  • Пол: Мужской
  • ...:::Hacking_Craft:::...
    • Просмотр профиля
Ну что же...как говорится - флаг в руки... ;) я таким путём тернистым, как то делал кое что. <_<

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2511
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
по всей видимости нужно еще все мелодии до конца прослушать, чтобы они полностью в память загрузились. и все спецэффекты :)

Оффлайн ankxiteatr

  • Пользователь
  • Сообщений: 111
  • Пол: Мужской
    • Просмотр профиля
по всей видимости нужно еще все мелодии до конца прослушать, чтобы они полностью в память загрузились. и все спецэффекты :)

А вы можете вариант лучше предложить?

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1145
    • ВКонтакте
    • Steam
    • Просмотр профиля
ankxiteatr, да, должно сузить.
Тебе надо сначала проверить не тормозит ли эмулятор с логгированием, комфортно ли проходить. Если нет, то придётся проходить на запись, не видя повышающийся процент (это может подсказывать направление поисков). Лог можно всегда очищать, сохранять и дополнять в любое время, игру можно запускать заново.

Читал про проблему, что некоторые игры проверяют целостность себя через контрольную сумму, т.е. начинают считывать ром от начала и до конца. Логгирование в таком случае отметит весь ром как данные на 100% или близко. Т.е. если в твоей игре окажется такая проверка, то логгирование надо включать после этого процесса. Может случиться ситуация, что это будет не при запуске игры, ты пройдёшь всю на запись, а игра похерит все труды в середине.
Так что запускай TAS-запись с логгированием и поглядывай процент. Ну или оставь и в конце глянешь. Если резко вырос в какой-то момент до предела, значит проверка есть и надо запомнить момент игры, когда это происходит, и запускать лог после него.
Смотрю, вроде как есть и 100% TAS-прохождение? Тогда можно сначала запустить его, прогонять до конца, потом запускать заново, прерывая воспроизведение, чтобы заглядывать в другие места.

Насчёт мелодий - да, придётся и в Sound Test зайти всё прослушать до конца (я в МК3 в опциях даже настройки кнопок менял). Все известные читы надо применить и т.д..
Я одну свою любимую игру на ПК разбираю, знаю уже баги и мёртвые куски кода. Когда что-то сильно любишь, то хочешь разобрать это на атомы, поглотить его полностью. Такой хардкор только для истинных фанатов :)
« Последнее редактирование: 30 Декабрь 2019, 15:13:08 от SUPER_ROBOT »

Оффлайн ankxiteatr

  • Пользователь
  • Сообщений: 111
  • Пол: Мужской
    • Просмотр профиля
SUPER_ROBOT, проблема в том, что эти ворота русалки, которые мне нужны, ведут в одну и ту же область, что и все остальные ворота  русалки, которые я знаю. То есть игрой используется одно и тоже место, лишь меняются ништяки, что даёт русалка.

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1145
    • ВКонтакте
    • Steam
    • Просмотр профиля
ankxiteatr, можешь на видеопрохождении на Ютюбе показать момент нахождения таких ворот?

Оффлайн ankxiteatr

  • Пользователь
  • Сообщений: 111
  • Пол: Мужской
    • Просмотр профиля
ankxiteatr, можешь на видеопрохождении на Ютюбе показать момент нахождения таких ворот?

https://youtu.be/xa4CGVsUsRU
05:38. Видео не моё  :lol:

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1145
    • ВКонтакте
    • Steam
    • Просмотр профиля
Похоже, надо разбирать формат уровней. Если никто не возьмётся - поковыряюсь потом.
А тебе на первое время надо лишь запустить 100%ый TAS с логгированием и ускорением эмуляции.

Оффлайн ankxiteatr

  • Пользователь
  • Сообщений: 111
  • Пол: Мужской
    • Просмотр профиля
Похоже, надо разбирать формат уровней. Если никто не возьмётся - поковыряюсь потом.
А тебе на первое время надо лишь запустить 100%ый TAS с логгированием и ускорением эмуляции.

Тот что есть в интернете?
http://tasvideos.org/4279S.html А почему он 100%, ведь там и четверти секретов не показано?

Добавлено позже:
Кстати, только сейчас обратил внимание  o_0 при прохождении был использован код или модификация игры, чтобы не нужно было общаться с персонажами для активации ворот. Наподобие того, что нашёл  krocki.
« Последнее редактирование: 30 Декабрь 2019, 17:04:37 от ankxiteatr »

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1145
    • ВКонтакте
    • Steam
    • Просмотр профиля
Цитата
This run gets the good ending by finding the 10 favorite items of Lamont, the Great Funkapotamus. All of the items are needed to get Lamont out of the Funk Dimension at the end of the game. The objects themselves are hidden in secret doors, most of which don't even exist until you've officially asked your friends for directions, but a few can be entered early without the need to trigger the dialogue.

Значит, таки придётся тебе всё проходить. Ну, или подождать хакера.

Оффлайн Skay

  • Пользователь
  • Сообщений: 4115
  • Пол: Мужской
    • Просмотр профиля
Точнее я это и хотел сказать что нет x64 и уже против неё сделали защиту на некоторые игры-проги для ПК что бы нельзя было юзать код в ней.
антиотладчики всегда были, при желании и понимании как работет - обходится. А в СЕ вот достаточно посредственный отладчик. А по описываемым хотелкам, больше похоже что надо не в отладчик, а в гидру/ида идти.

Добавлено позже:
В 1-й раз вижу подобное.
трассировку частенько используют. Но тоже раньше как то не обращал внимания, а вот после того как  увидел у Санчеза на примере черного плаща, глаз стал цепляться.

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9376
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Значит, таки придётся тебе всё проходить.
но зачем ?
подобные трейслоги используются для поиска неизвестных секреток, когда неизвестно какие они там есть в игре, и есть ли вообще. в данном случае известно что нужно искать - есть текст секреток, и какая процедура может их выводить, но нужно выяснить при каких условиях это может произойти и может ли вообще. чем тут поможет карта использования кода/данных ? да ничем.

Оффлайн ankxiteatr

  • Пользователь
  • Сообщений: 111
  • Пол: Мужской
    • Просмотр профиля
но зачем ?
подобные трейслоги используются для поиска неизвестных секреток, когда неизвестно какие они там есть в игре, и есть ли вообще. в данном случае известно что нужно искать - есть текст секреток, и какая процедура может их выводить, но нужно выяснить при каких условиях это может произойти и может ли вообще. чем тут поможет карта использования кода/данных ? да ничем.

По идее определённые условия только у одних ворот, судя по тексту: " You don't miss a thing. This is one of my ultra secret spots.. You must have looked very hard for this!".
По остальным бы понять в каком этапе и подэтапе они...

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1145
    • ВКонтакте
    • Steam
    • Просмотр профиля
Тогда надо бы хакнуть камеру, чтобы рассмотреть все уровни и найти места, где не был.

Оффлайн ankxiteatr

  • Пользователь
  • Сообщений: 111
  • Пол: Мужской
    • Просмотр профиля
Тогда надо бы хакнуть камеру, чтобы рассмотреть все уровни и найти места, где не был.

Я умею только в gg искать. Находил параметр отвечающий за перемещение по координате x.  Но это не везде работает, так как в игре много стен через которые нельзя пройти. С кодом ты просто упираешься в такую и дальше не проходишь.

Оффлайн ankxiteatr

  • Пользователь
  • Сообщений: 111
  • Пол: Мужской
    • Просмотр профиля
MetalliC, а нельзя найти код для процедуры смены ништяков в комнате русалки? Ведь после того, как ты получил от неё определённую возможность, она телепортирует тебя в то место, где ворота.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5005
    • Просмотр профиля
Находил параметр отвечающий за перемещение по координате x.  Но это не везде работает, так как в игре много стен через которые нельзя пройти.
Координаты персонажей можно менять вне зависимости от препятствий. В RAM адреса:
Toejam: X - 8DDC, Y - 8DE4
Earl  : X - 8E5C, Y - 8E64
Размер u16, нули - верхний левый угол уровня.

Написал скрипт на Lua для BizHawk (используйте стабильную по ссылке), чтобы перемещать персонажей: https://gist.github.com/infval/8b6898c1c703ebf764aa7854e3d8e8f4 (ПКМ на Raw -> Сохранить объект). Добавить в Tools -> Lua Console.
Delete - влево, PageDown - вправо, Home - вверх, End - вниз, Insert - уменьшить шаг перемещения, PageUp - увеличить шаг (макс. 32). Такие горячие клавиши уже есть для TAStudio, но вроде не мешают, если не включено.
Чтобы упасть на землю, просто сдвиньте персонажа в сторону через обычное управление.
Не стал делать переключение между персонажами, просто измените в скрипте адреса в памяти:
local player_x = player2_x
local player_y = player2_y

Копия скрипта на всякий случай:
--------
Не знаю специфику игры, надеюсь поможет. Добавил видео с демонстрацией:
« Последнее редактирование: 03 Январь 2020, 20:06:45 от Sharpnull »