| Разработка и ромхакинг > Ромхакинг и программирование |
| [SMD] Запрос на взлом игры Toejam & Earl 2 за вознаграждение. |
| << < (3/7) > >> |
| MetalliC:
--- Цитата: ankxiteatr от 26 Декабрь 2019, 15:32:00 ---а не хочешь попробовать найти обращение к тексту за денюжку? Даже если окажется, что этих ворот нет. А то тайна игры детства повисла в воздухе) --- Конец цитаты --- денюжки мало что решают, тут больше вопрос в том что не особо интересно ковыряться в чём-то, если вероятность успеха совсем невелика. а потраченое время таки бесценно. а там вообще как долго нужно играть чтоб добраться хотя бы до первых ворот ? --- Цитата: paul_met от 30 Декабрь 2019, 10:32:13 ---Забавно, что некоторые отладчики ведут такую статистику. В 1-й раз вижу подобное. --- Конец цитаты --- да, прикольно. типа прошел игру на 78% :) --- Цитата: SUPER_ROBOT от 30 Декабрь 2019, 11:08:41 ---Т.е. так они выискивают недоступный контент в прототипах. --- Конец цитаты --- ну и как это поможет в данном случае ? а никак |
| MetalliC:
--- Цитата: krocki от 30 Декабрь 2019, 11:14:16 ---Проходить игру и не раз, что бы задебажить, всё подряд и потом типа лога в ней искать...жееесть. --- Конец цитаты --- а что тебя удивляет ? именно так и делается анализ игр при поиске всяких секреток и неиспользованного контента - сперва гоняется игра (вручную или лучше записью прохождения) и создаётся карта использованного кода и данных, затем импортируется специальным скриптом в IDA, затем ищутся не исполнявшиеся ветки кода, анализируется чо они делают, при каких условиях код туда попадёт, итд итп. да долго и нудно, да всё делается вручную, вернее собственными мозгами, но других способов (пока) нет. и ничо, народ развлекается, вот Санчез таким макаром прошерстил десятки (если не сотни) игр для NES. |
| ankxiteatr:
SUPER_ROBOT, не пробовал, так как даже не знал об этом) Спасибо за совет! Правильно ли я понимаю, что таким способом можно сузить область поисков? То есть тот оставшийся процент (если он будет) должен содержать информацию о не найденных мною воротах. Попробую пройти за праздники с открытием всех известных мне секретов и локаций. MetalliC, если говорить в общем о воротах, то первые (а точнее их двое) на первом же этапе. Но если ты имеешь в виду именно ту область, где русалка, то на 3 этапе в первом и втором подэтапах. Что интересно, несколько ворот с русалкой не особо спрятаны в игре, наверно для того, чтобы тот кто в первый раз их найдёт, задался поиском остальных. То есть ты считаешь, что прохождение всей игры заново ничего не даст? |
| krocki:
Ну что же...как говорится - флаг в руки... ;) я таким путём тернистым, как то делал кое что. <_< |
| SeregaZ:
по всей видимости нужно еще все мелодии до конца прослушать, чтобы они полностью в память загрузились. и все спецэффекты :) |
| ankxiteatr:
--- Цитата: SeregaZ от 30 Декабрь 2019, 14:39:21 ---по всей видимости нужно еще все мелодии до конца прослушать, чтобы они полностью в память загрузились. и все спецэффекты :) --- Конец цитаты --- А вы можете вариант лучше предложить? |
| perfect_genius:
ankxiteatr, да, должно сузить. Тебе надо сначала проверить не тормозит ли эмулятор с логгированием, комфортно ли проходить. Если нет, то придётся проходить на запись, не видя повышающийся процент (это может подсказывать направление поисков). Лог можно всегда очищать, сохранять и дополнять в любое время, игру можно запускать заново. Читал про проблему, что некоторые игры проверяют целостность себя через контрольную сумму, т.е. начинают считывать ром от начала и до конца. Логгирование в таком случае отметит весь ром как данные на 100% или близко. Т.е. если в твоей игре окажется такая проверка, то логгирование надо включать после этого процесса. Может случиться ситуация, что это будет не при запуске игры, ты пройдёшь всю на запись, а игра похерит все труды в середине. Так что запускай TAS-запись с логгированием и поглядывай процент. Ну или оставь и в конце глянешь. Если резко вырос в какой-то момент до предела, значит проверка есть и надо запомнить момент игры, когда это происходит, и запускать лог после него. Смотрю, вроде как есть и 100% TAS-прохождение? Тогда можно сначала запустить его, прогонять до конца, потом запускать заново, прерывая воспроизведение, чтобы заглядывать в другие места. Насчёт мелодий - да, придётся и в Sound Test зайти всё прослушать до конца (я в МК3 в опциях даже настройки кнопок менял). Все известные читы надо применить и т.д.. Я одну свою любимую игру на ПК разбираю, знаю уже баги и мёртвые куски кода. Когда что-то сильно любишь, то хочешь разобрать это на атомы, поглотить его полностью. Такой хардкор только для истинных фанатов :) |
| ankxiteatr:
SUPER_ROBOT, проблема в том, что эти ворота русалки, которые мне нужны, ведут в одну и ту же область, что и все остальные ворота русалки, которые я знаю. То есть игрой используется одно и тоже место, лишь меняются ништяки, что даёт русалка. |
| perfect_genius:
ankxiteatr, можешь на видеопрохождении на Ютюбе показать момент нахождения таких ворот? |
| ankxiteatr:
--- Цитата: SUPER_ROBOT от 30 Декабрь 2019, 15:17:33 ---ankxiteatr, можешь на видеопрохождении на Ютюбе показать момент нахождения таких ворот? --- Конец цитаты --- https://youtu.be/xa4CGVsUsRU 05:38. Видео не моё :lol: |
| perfect_genius:
Похоже, надо разбирать формат уровней. Если никто не возьмётся - поковыряюсь потом. А тебе на первое время надо лишь запустить 100%ый TAS с логгированием и ускорением эмуляции. |
| ankxiteatr:
--- Цитата: SUPER_ROBOT от 30 Декабрь 2019, 16:22:53 ---Похоже, надо разбирать формат уровней. Если никто не возьмётся - поковыряюсь потом. А тебе на первое время надо лишь запустить 100%ый TAS с логгированием и ускорением эмуляции. --- Конец цитаты --- Тот что есть в интернете? http://tasvideos.org/4279S.html А почему он 100%, ведь там и четверти секретов не показано? Добавлено позже: Кстати, только сейчас обратил внимание o_0 при прохождении был использован код или модификация игры, чтобы не нужно было общаться с персонажами для активации ворот. Наподобие того, что нашёл krocki. |
| perfect_genius:
--- Цитата ---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:
--- Цитата: krocki от 19 Декабрь 2019, 15:15:32 ---Точнее я это и хотел сказать что нет x64 и уже против неё сделали защиту на некоторые игры-проги для ПК что бы нельзя было юзать код в ней. --- Конец цитаты --- антиотладчики всегда были, при желании и понимании как работет - обходится. А в СЕ вот достаточно посредственный отладчик. А по описываемым хотелкам, больше похоже что надо не в отладчик, а в гидру/ида идти. Добавлено позже: --- Цитата: paul_met от 30 Декабрь 2019, 10:32:13 ---В 1-й раз вижу подобное. --- Конец цитаты --- трассировку частенько используют. Но тоже раньше как то не обращал внимания, а вот после того как увидел у Санчеза на примере черного плаща, глаз стал цепляться. |
| MetalliC:
--- Цитата: SUPER_ROBOT от 30 Декабрь 2019, 21:16:12 ---Значит, таки придётся тебе всё проходить. --- Конец цитаты --- но зачем ? подобные трейслоги используются для поиска неизвестных секреток, когда неизвестно какие они там есть в игре, и есть ли вообще. в данном случае известно что нужно искать - есть текст секреток, и какая процедура может их выводить, но нужно выяснить при каких условиях это может произойти и может ли вообще. чем тут поможет карта использования кода/данных ? да ничем. |
| ankxiteatr:
--- Цитата: MetalliC от 31 Декабрь 2019, 07:28:21 ---но зачем ? подобные трейслоги используются для поиска неизвестных секреток, когда неизвестно какие они там есть в игре, и есть ли вообще. в данном случае известно что нужно искать - есть текст секреток, и какая процедура может их выводить, но нужно выяснить при каких условиях это может произойти и может ли вообще. чем тут поможет карта использования кода/данных ? да ничем. --- Конец цитаты --- По идее определённые условия только у одних ворот, судя по тексту: " You don't miss a thing. This is one of my ultra secret spots.. You must have looked very hard for this!". По остальным бы понять в каком этапе и подэтапе они... |
| perfect_genius:
Тогда надо бы хакнуть камеру, чтобы рассмотреть все уровни и найти места, где не был. |
| ankxiteatr:
--- Цитата: SUPER_ROBOT от 31 Декабрь 2019, 09:50:45 ---Тогда надо бы хакнуть камеру, чтобы рассмотреть все уровни и найти места, где не был. --- Конец цитаты --- Я умею только в gg искать. Находил параметр отвечающий за перемещение по координате x. Но это не везде работает, так как в игре много стен через которые нельзя пройти. С кодом ты просто упираешься в такую и дальше не проходишь. |
| ankxiteatr:
MetalliC, а нельзя найти код для процедуры смены ништяков в комнате русалки? Ведь после того, как ты получил от неё определённую возможность, она телепортирует тебя в то место, где ворота. |
| Sharpnull:
--- Цитата: ankxiteatr от 31 Декабрь 2019, 12:12:01 ---Находил параметр отвечающий за перемещение по координате 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 --- Конец кода --- Копия скрипта на всякий случай: --- Код: ---local player1_x = 0x8DDC local player1_y = 0x8DE4 local player2_x = 0x8E5C local player2_y = 0x8E64 local player_x = player1_x local player_y = player1_y local step = 1 local prev_keys = nil while true do local x = mainmemory.read_u16_be(player_x) local y = mainmemory.read_u16_be(player_y) local keys = input.get() if keys["Delete"] then mainmemory.write_u16_be(player_x, x - step) elseif keys["PageDown"] then mainmemory.write_u16_be(player_x, x + step) end if keys["Home"] then mainmemory.write_u16_be(player_y, y - step) elseif keys["End"] then mainmemory.write_u16_be(player_y, y + step) end if keys["Insert"] and prev_keys["Insert"] == nil then if step > 1 then step = step - 1 end elseif keys["PageUp"] and prev_keys["PageUp"] == nil then if step < 32 then step = step + 1 end end prev_keys = keys emu.frameadvance(); end --- Конец кода --- -------- Не знаю специфику игры, надеюсь поможет. Добавил видео с демонстрацией: |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |