Подскажите, пожалуйста, как найти карты уровней в игре JP Ronny. Поиск по микроблокам ничего не дал, а в самом коде ничего похожего на уровни нет.
Ром: lancuster / Файлы / JP_Ronny_(Asder)_(Unl).nes (http://spaces.ru/files/view/?Li=331022&Lii=61999337&Link_id=1757949&Lt=1&Read=61999337&Sn=2&name=lancuster&sid=::sid::)
Цитата: lancuster от 14 марта 2016, 14:31а в самом коде ничего похожего на уровни нет.
И как вы узнали, что похожего нечего нет? Вы знаете как они должны выглядеть? Да и что вообще за код, исходный?
Цитата: lancuster от 14 марта 2016, 14:31Подскажите, пожалуйста, как найти карты уровней в игре JP Ronny.
Можно взять и начать поганить ром сужая поиск. Где-то уровень точно должен проскочить.
Эх, молодёжь.
Рассказываю и показываю как нужно искать данные очень простым и доступным способом.
Запускаем FCEUX 2.2.2, если у вас нет, то скачиваем отсюда http://www.fceux.com/web/
1)Запустили. Теперь открываем нужный ром.
(http://pscd.ru/forum/uploads/monthly_03_2016/post-1-0-48141300-1457976598.png)
2)В меню выбираем Debug->Code/Data Logger...
(http://pscd.ru/forum/uploads/monthly_03_2016/post-1-0-18833900-1457976598.png)
3)Далее переходим в окно FCEUX и нажимаем Start, чтоб начать игру.
Выбираем 1 Player (не принципиально) и жмём Start.
Как только появился экран STAGE 1 - 1, быстро переходим в окно CODE/Data Logger и жмём в окне на кнопку Start.
Это нужно сделать до того, как исчезнет надпись на экране STAGE 1 - 1. Можно поставить эмулятор на паузу и потом запустить CODE/Data Logger.
(http://pscd.ru/forum/uploads/monthly_03_2016/post-1-0-63437600-1457976598.png)
4) Далее после того как игра началась, переходим в окно CODE/Data Logger и ставим его на паузу, нажав кнопку Pause.
(http://pscd.ru/forum/uploads/monthly_03_2016/post-1-0-83896700-1457976598.png)
5) Теперь открываем hex editor. В меню выбираем Debug->Hex Editor.
(http://pscd.ru/forum/uploads/monthly_03_2016/post-1-0-83702100-1457977053.png)
6)В окне Hex Editor'a в меню выбираем View->ROM File.
В окне сразу же станет видно, что байты имеют разную окраску.
Информацию о том, какой цвет что означает можно почитать в Help'e.
Нам же нужно искать байты окрашенные в синий цвет. Синим цветом окрашены байты данных.
Это касается области PRG-ROM. Она-то нам и нужна. Учитывая, что не запакованная карта тайлов занимает 1024 байта,
нам надо найти достаточно большую область окрашенную в синий цвет. Листаем вниз и натыкаемся на вот такую картину:
(http://pscd.ru/forum/uploads/monthly_03_2016/post-1-0-12636700-1457977054.png)
Теперь можно просто попробовать изменить один байт. Например 91 на 00. (забегая вперед скажу, что здесь используется сжатие RLE Опытные ромхакеры могут это сразу заметить).
(http://pscd.ru/forum/uploads/monthly_03_2016/post-1-0-42789500-1457977308.png)
Теперь переходим в окно FCEUX и пытаемся начать игру. Кхм, не получается.
(http://pscd.ru/forum/uploads/monthly_03_2016/post-1-0-39256600-1457977054.png)
Пробуем поменять следующий байт, предварительно вернув начальное значение предыдущего байта.
(http://pscd.ru/forum/uploads/monthly_03_2016/post-1-0-71082400-1457977308.png)
Снова пытаемся начать игру. Теперь всё нормально, но почему-то нет никаких изменений. Давайте заглянем Name Table Viewer. Ага, оказывается верхняя строка не отображается на экране из-за этого не удалось увидеть изменений, но они есть.
(http://pscd.ru/forum/uploads/monthly_03_2016/post-1-0-90062700-1457977308.png)
А значит мы нашли то, что искали. Т.е. задача выполнена. Подобным способом можно искать и другие данные: поинтеры, запакованные ресурсы, запакованный текст, не запакованный текст и т.д
Я так и думал, что там сжатие используется.
Про Code/Data Logger не слыхал ранее. Попробую. :)
Ну так я же показал, как находить данные. Палитра это тоже данные ищи маленькую область окрашенную синим цветом. Меняй байты, смотри что происходит. Палитра занимает размер 32 байта. Значит, можно искать область окрашенную синим цветом размером в 32 байта. Либо просто в ppu в палитре наведи курсор на цвет и узнай какие там номера. Затем в Hex Editor в ROM file ищи эту последовательность.
Ясно. Сейчас попробую. ;)
Последние 2 подуровня отредактировал, убрал нечестные места и лишние шипы. Но увы - переделать игру до неузнаваемости, видимо, не удастся. :( Ну и ладно. В конце-концов, фикс-хак - тоже хак, верно? :)
JP Ronny (Asder) (Fix Hack by LANCUSTER). Упрощены нечестные места на нескольких уровнях. Взломана на 9 жизней. Если не устраивает количество жизней - вы можете внести любое другое значение по адресу 7a и 1b3 для первого и второго игрока соответственно:
lancuster / Файлы / JP_Ronny_(Asder)_(Fix_Hack_by_LANCUSTER).nes (http://spaces.ru/files/view/?Li=331022&Lii=62030289&Link_id=1613504&Lt=1&Read=62030289&Sn=2&name=lancuster&sid=::sid::)
А вот версия фикс-хака с бесконечными жизнями:
lancuster / Файлы / JP_Ronny_(Asder)_(Fix_Hack_by_LANCUSTER)_[t1].nes (http://spaces.ru/files/view/?Read=62030420&irb526786=1&name=lancuster&sid=::sid::)
P. S.: ещё хотел спросить по поводу Karnov. Как там найти расположение бонусов и врагов? В FatCamp можно только твёрдые блоки и фоны менять, и ещё палитру.