Разработка и ромхакинг > Ромхакинг и программирование
[SMD] Запрос на взлом игры Toejam & Earl 2 за вознаграждение.
<< < (4/7) > >>
MetalliC:

--- Цитата: ankxiteatr от 03 Январь 2020, 14:54:52 ---а нельзя найти код для процедуры смены ништяков в комнате русалки?
--- Конец цитаты ---
можно, но нужен сейвстейт(ы) перед воротами, только не для генса а эмулятора с более вменяемым отладчиком, типа МАМЕ.
perfect_genius:
Не забудь всё-же включить логгирование при таком обыскивании уровней.
ankxiteatr:

--- Цитата: SUPER_ROBOT от 03 Январь 2020, 22:10:35 ---Не забудь всё-же включить логгирование при таком обыскивании уровней.

--- Конец цитаты ---

Спасибо большое!  :wow: Буду играть. Потом отпишусь.

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

--- Цитата: MetalliC от 03 Январь 2020, 19:59:56 ---можно, но нужен сейвстейт(ы) перед воротами, только не для генса а эмулятора с более вменяемым отладчиком, типа МАМЕ.

--- Конец цитаты ---

Именно перед воротами или уже внутри комнаты? А какой посоветуете эмулятор?Про MAME слышал, но не играл на нём, он же для мультиплатформенных аркадных игр.
ankxiteatr:

--- Цитата: Sharpnull от 03 Январь 2020, 19:35:08 ---Координаты персонажей можно менять вне зависимости от препятствий. В 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

--- Конец кода ---
--------
Не знаю специфику игры, надеюсь поможет. Добавил видео с демонстрацией:

--- Конец цитаты ---

А вы не в курсе, почему коды gg и raw не работают на этом эмуляторе? Брал отсюда: https://gamehacking.org/game/16117
Пробовал вводить через Cheats вручную вводя raw с параметрами M68K 2 byte HEX , не работают. Затем через Cheat code converter и Game Genie Encoder/Decoder так же не работают  :(
MetalliC:

--- Цитата: ankxiteatr от 04 Январь 2020, 01:02:51 ---Именно перед воротами или уже внутри комнаты?
--- Конец цитаты ---
перед воротами, так чтоб нажал и зашел (у меня нет времени да и желания проходить игру аж до них)


--- Цитата: ankxiteatr от 04 Январь 2020, 01:02:51 ---А какой посоветуете эмулятор?Про MAME слышал, но не играл на нём, он же для мультиплатформенных аркадных игр.
--- Конец цитаты ---
там всё, это универсальный комбайн.
идёшь на официальный сайт https://www.mamedev.org/release.html и качаешь оттуда дистрибутив эмулятора (лучше 64бит версию).
скачанный exe запускаешь и указываешь куда распаковать.
в ту же папку распаковываешь архив из аттача
запускаешь start_toejam2_64.cmd

сохранения записываются по Shift+F7 и затем цифра номера слота, загрузка по F7 и номер слота
управление можно перенастроить во время игры по Tab - Input (this machine)
ankxiteatr:

--- Цитата: MetalliC от 04 Январь 2020, 09:26:21 ---перед воротами, так чтоб нажал и зашел (у меня нет времени да и желания проходить игру аж до них)
там всё, это универсальный комбайн.
идёшь на https://www.mamedev.org/release.html и качаешь оттуда дистрибутив эмулятора (лучше 64бит версию).
скачанный exe запускаешь и указываешь куда распаковать.
в ту же папку распаковываешь архив из аттача
запускаешь start_toejam2_64.cmd

сохранения записываются по Shift+F7 и затем цифра номера слота, загрузка по F7 и номер слота
управление можно перенастроить во время игры по Tab - Input (this machine)

--- Конец цитаты ---

Понял, спасибо! Про ворота я имел в виду, что может нужны сейвы именно внутри ворот, когда ты уже в комнате с русалкой... Но потом понял какой я "бака гадзин"  :lol: ведь с сохранениями до входа в ворота, всегда можно войти и сделать внутри)
Sharpnull:

--- Цитата: ankxiteatr от 04 Январь 2020, 08:31:03 ---А вы не в курсе, почему коды gg и raw не работают на этом эмуляторе?
--- Конец цитаты ---
Вы делаете правильно, для кодов с сайта (как для старых эмуляторов) настройки: M68K BUS, 2 Byte, Hex, [v] Big Endian. В RAM пишет, а ROM не хочет изменять, хотя в HEX-редакторе отображается правильно. Я пробовал два кода:

--- Цитата ---Infinite time under water by Galoob AJ4A-GA2G (033406:6002)
Infinite Time Underwater by Kamisamavx FFA92E:0063
--- Конец цитаты ---
Первый в ROM и можно через внешний HEX-редактор изменить (по этому адресу 0x033406 изменить 1-й байт - 0x60, потом 0x02). Второй работает, FFA92E запись в RAM 0xA92E.
В сборках разработки стало интереснее, теперь опция Big Endian в HEX-редакторе значит обратное и байты отображаются не как в ROM (кажется баг), а изменённые значения ROM только выделяются без нового значения, теперь хотя бы видно, что они не изменились.

Об этом баге известно давно Sega Genesis Game Genie Codes don't work. #1188 - 1 May 2018, Imported cheatcodes which "modify" read-only domains are silently blocked #1350 - 13 Oct 2018. В последней теме даже CaH4e3 отметился, хотя он и писал там, что не работает Converter GG и читы можно ввести как Raw, для Mega Drive это похоже не вариант.

Чтобы не лезть в другой редактор, можно изменять ром с диска во встроенном HEX-редакторе, если выбрать Options -> Memory Domains -> File оn Disk. Переход на адрес Ctrl+G, Poke Address (Ctrl+P) и ввести значение с обратными байтами (если в было 0x6002 как выше, то 0260), потому что для файла всегда Little Endian (в последних dev сборках можно выбрать Big Endian в Options, но отображение в самом редакторе будет обратное).
--------
Забыл сказать, что после модификации рома через встроенный HEX-редактор всё равно нужно перезапускать игру.
ankxiteatr:

--- Цитата: Sharpnull от 04 Январь 2020, 19:59:43 ---Вы делаете правильно, для кодов с сайта (как для старых эмуляторов) настройки: M68K BUS, 2 Byte, Hex, [v] Big Endian. В RAM пишет, а ROM не хочет изменять, хотя в HEX-редакторе отображается правильно. Я пробовал два кода:Первый в ROM и можно через внешний HEX-редактор изменить (по этому адресу 0x033406 изменить 1-й байт - 0x60, потом 0x02). Второй работает, FFA92E запись в RAM 0xA92E.
В сборках разработки стало интереснее, теперь опция Big Endian в HEX-редакторе значит обратное и байты отображаются не как в ROM (кажется баг), а изменённые значения ROM только выделяются без нового значения, теперь хотя бы видно, что они не изменились.

Об этом баге известно давно Sega Genesis Game Genie Codes don't work. #1188 - 1 May 2018, Imported cheatcodes which "modify" read-only domains are silently blocked #1350 - 13 Oct 2018. В последней теме даже CaH4e3 отметился, хотя он и писал там, что не работает Converter GG и читы можно ввести как Raw, для Mega Drive это похоже не вариант.

Чтобы не лезть в другой редактор, можно изменять ром с диска во встроенном HEX-редакторе, если выбрать Options -> Memory Domains -> File оn Disk. Переход на адрес Ctrl+G, Poke Address (Ctrl+P) и ввести значение с обратными байтами (если в было 0x6002 как выше, то 0260), потому что для файла всегда Little Endian (в последних dev сборках можно выбрать Big Endian в Options, но отображение в самом редакторе будет обратное).
--------
Забыл сказать, что после модификации рома через встроенный HEX-редактор всё равно нужно перезапускать игру.

--- Конец цитаты ---

Чтобы не заморачиваться, пропатчил игру на другом эмуле.

Проверил все этапы...все стены... Ничего нового. Либо действительно нужно выполнить какие-то условия, чтобы попасть к нужной русалке, либо это вырезали из игры.

Остаётся последний способ, сделаю сейвы для MetalliC, вдруг получится взломать смену ништяков в комнате русалки.
perfect_genius:
Ещё вернёмся к изучению формата уровней - Круптаром попорти игру и поищи на уровнях глитчи.
ankxiteatr:

--- Цитата: perfect_genius от 11 Январь 2020, 17:34:22 ---Ещё вернёмся к изучению формата уровней - Круптаром попорти игру и поищи на уровнях глитчи.

--- Конец цитаты ---

А можно расшифровать) Я не ромхакер.

Да, забыл написать, если это конечно что-то значит. Многие секретные ворота, скрытые призы, рычаги появляются при определённых действиях или касании к скрытому активатору-триггеру (в виде фейерверка). Krocki, нашёл код делающий их сразу активированными. Но на одном из этапов - 11 "The Big Slide", если вы заберетесь на платформу в верхней части уровня, то найдете маленький "туннель", который ведет к небольшой скале с кнопкой, нажав которую появляется пузырь. При сканировании области фанк сканом обнаруживается невидимый активатор, который почему-то не активируется ничем и никак.
ankxiteatr:

--- Цитата: MetalliC от 04 Январь 2020, 09:26:21 ---перед воротами, так чтоб нажал и зашел (у меня нет времени да и желания проходить игру аж до них)
там всё, это универсальный комбайн.
идёшь на официальный сайт https://www.mamedev.org/release.html и качаешь оттуда дистрибутив эмулятора (лучше 64бит версию).
скачанный exe запускаешь и указываешь куда распаковать.
в ту же папку распаковываешь архив из аттача
запускаешь start_toejam2_64.cmd

сохранения записываются по Shift+F7 и затем цифра номера слота, загрузка по F7 и номер слота
управление можно перенастроить во время игры по Tab - Input (this machine)

--- Конец цитаты ---

Готово. Седьмое сохранение (слот) - там можно перепрыгнуть "жезл" русалки и высоко подпрыгнуть зажав кнопку "вниз" попасть слева в стену, оттуда если прыгнуть вправо, то попадёшь на скрытую платформу. С неё вверх и влево. Там призы и левая часть комнаты с ещё одной русалкой, дающей бесконечную панику.

Во все ворота заходить нажав кнопку "вверх". Чтобы их увидеть, то нужно нажать кнопку "x".

Добавлено позже:
Интересно... На сайте https://gamehacking.org/?game=16117&hacker=&format=genie
есть коды gg и raw, соответствующие тому что даёт русалка. В том числе и к тем двум ништякам, ворота к которым я ищу: бесконечные жизни до конца уровня и замедление таймеррв в два раза.

Значит ли это, что в игре есть такое?
perfect_genius:
Интересно, что твой предыдущий коммент 12го числа, а новый 20го. Форум их всё равно слил в один и не отметил, что в теме есть новое сообщение. Я вот случайно зашёл.

По теме - видимо, таки есть. Хакеру теперь ещё легче должно быть найти откуда запускаются эти функции.
ankxiteatr:

--- Цитата: perfect_genius от 22 Январь 2020, 21:58:40 ---Интересно, что твой предыдущий коммент 12го числа, а новый 20го. Форум их всё равно слил в один и не отметил, что в теме есть новое сообщение. Я вот случайно зашёл.

По теме - видимо, таки есть. Хакеру теперь ещё легче должно быть найти откуда запускаются эти функции.

--- Конец цитаты ---

Да, странно....  0_0

Добавлено позже:
На всякий случай напишу здесь.

1) Максимальный отскок от розовой подушки, не падаешь с пузырей, таймеры в два раза медленнее, еда и очки за подарки увеличиваются в два раза.
Gg: ACYA-B8EJ
Raw: 00A888:1F00

2) Бесконечные засасывалки, паника, монеты, фанки и супербаночки.
Gg: SWYA-AAEJ
Raw: 00A888:007C

3) Бессмертие, не кончается воздух под водой, бесконечные жизни.
Gg: TRYA-AAEJ
Raw: 00A888:0083

4) Комбинация всех этих возможностей.
Gg: 98YA-B8EJ
Raw: 00A888:1FFF

Надеюсь они помогут найти обращение к воротам русалки...
ankxiteatr:
Эх... Так никто и не захотел или не смог помочь за деньги  :'( Эта тайна же мучить меня будет до самого конца  :lol:
Ogr:

--- Цитата: ankxiteatr от 13 Июнь 2020, 13:40:38 ---Эх... Так никто и не захотел или не смог помочь за деньги
--- Конец цитаты ---
за копейки ни кто не работает. :lol:
ankxiteatr:
А я где-то цену писал?  :neznayu:
Что-то не припомню...
Ogr:
ankxiteatr, ну а ты попробуй написать. для затравочки начни, скажем ,с десяти тысяч рублей, ну а там готовься закончить на нескольких тысяч баксов. :lol:
ankxiteatr:
Ogr, вы потроллить пришли?
SeregaZ:
не не... он же Огр, а не Троль. поОгрить!
perfect_genius:
ankxiteatr, я сейчас ковыряю МК3, потом возьмусь за твою игру. Не теряй надежду :)
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

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