| Разработка и ромхакинг > Ромхакинг и программирование |
| Портирование игры SEGA на другой язык |
| << < (2/2) |
| MetalliC:
--- Цитата: kadet.89 ---пошаговый мануал с картинками и примером --- Конец цитаты --- по реверс-инжинирингу ? спасибо, посмеялся. самое главное - мало знать что делают всякие комманды проца, нужно понимать что делают те или иные конструкции из них, без этого ты логику фиг поймешь и соответсвенно на более высокоуровневый язык ее фиг переложишь. r57shell, имхо Ti_ как раз прав на все 100 - стоит искать и найти главный цикл, отрубать в нем вызов подпрограмм и смотреть что отвалилось, и идти потом вниз по ним, так будет быстрее и проще. |
| Ti_:
--- Цитата: MetalliC от 11 Сентябрь 2012, 22:47:26 ---r57shell, имхо Ti_ как раз прав на все 100 - стоит искать и найти главный цикл, отрубать в нем вызов подпрограмм и смотреть что отвалилось, и идти потом вниз по ним, так будет быстрее и проще. --- Конец цитаты --- Вообще-то я от r57shell и научился, в те времена только с данных начинал :) |
| r57shell:
--- Цитата: MetalliC от 11 Сентябрь 2012, 22:47:26 ---r57shell, имхо Ti_ как раз прав на все 100 - стоит искать и найти главный цикл, отрубать в нем вызов подпрограмм и смотреть что отвалилось, и идти потом вниз по ним, так будет быстрее и проще. --- Конец цитаты --- Окей, ты остановился где-то. 1) не факт что ты в цикле, может ты в прирывании? можешь убить на этом попыток несколько (пока Callstack перероешь, пока осознаешь что не там). 2) не факт что этот цикл вообще есть :wow:. Внезапно?) Пример UMK3. Окей, допустим ты нашел цикл, но человек сказал "мне не нужно всё". Если цикл весь перебирать - пока все подсистемы потестишь. Одну отключил - вроде работает, другую отрубил снова. А потом опа, всё повисло. Ладно врубил обратно, отрубил ещё одну, снова повисло. Они могут иметь сложные зависимости, и "вешать" или в BSOD загонять в разных совокупностях. Это конечно путь, но очень долгий. Ты только прикинь сколько ты сделаешь: 1) Hard Reset-ов 2) Введешь Game-Genie или пропатчишь по нужному ром. 3) Save/Load 4) Переберёшь функций. Я выберу этот путь только если, ну что-то не уловимое где-то прячется, тогда надо искать во всех углах. Или если мне нужна вся система, как было с RRR. Всё на много проще, Ячейка RAM - это как комната, ты в неё камеру поставил, и ловишь всех кто чего-то в ней меняет. Обычно, чтобы отсечь "а, этих я уже видел" просто забиваешь их nop-ами, чтобы не обращать на них внимания. А в крайних случаях, я просто юзаю Lua, там есть хуки на M68k, так что, иногда можно весёлые вещи вытворять, например я на Lua вытащил ВСЕ найденные мной архивы из UMK3, не ЗНАЯ как работает распаковщик, это потом я уже его написал, и запаковщик который максимально(могу доказать) сжимает под unpacker UMK3. |
| Mr2:
--- Цитата: kadet.89 от 11 Сентябрь 2012, 22:36:53 ---Вот вам бы то что тут написали всё отшлифовать и сделать пошаговый мануал с картинками и примером на одной игре. Указать что откуда скачивать, как устанваливать и как ковыряться в исходниках. Тогдаб и ту тему не раздули на 9 страниц. --- Конец цитаты --- Тут рядом тема есть, там люди собирают n-ную сумму чтобы им сделали новую часть игры. Так чудо мануал в этом плане интересен. :) А если учесть желающих ломануть UMK3, это золотое дно. Особенно если ещё и инструмент приложить к рому. :debile: Кано MK3 в роли Нуб сэйбота, апперкот стоя, 3 Шао кана, женщина киборг.... И любой ваш бред собственными руками, теперь это реальнасть! Fatal Manual!!! Мануал по взлому UMK3(SMD). Спонсируем релиз!!! |
| r57shell:
--- Цитата: Mr2 от 11 Сентябрь 2012, 23:32:49 ---Особенно если ещё и инструмент приложить к рому. --- Конец цитаты --- Сколько инструментов не прикладывай, не хотят ничего делать. |
| Mr2:
--- Цитата: r57shell от 12 Сентябрь 2012, 00:20:47 ---Сколько инструментов не прикладывай, не хотят ничего делать. --- Конец цитаты --- Ну твоё дело сбагрить инструмент и мануал, а там уж дело хозяйское. :lol: |
| AKuHAK:
Странно что Ti_ про это не написал. |
| Ti_:
--- Цитата: AKuHAK от 12 Сентябрь 2012, 00:27:26 ---Странно что Ti_ про это не написал. --- Конец цитаты --- Ну да пробовал писать мануал. Но доработать его сил не хватило. А сейчас не советую ибо есть там недоработки, да и много чего кривовато написано, уж лучше вкратце на словах объяснить (тут почему-то не лень). Думал и в виде видео сделать, типа такого: http://www.youtube.com/watch?v=KZC_s0fGzoQ |
| MetalliC:
r57shell, окей да, согласен, в мегадрайве лучше от РАМ плясать, ее всего-то 64Кб, а кода много и он неизменен в роме. я больше как-то сталкиваюсь с ситуациями когда кода много и он еще и в раме, со всякими своими локальными данными, тут такой метод не катит, или сверху-вниз или наоборот снизу-вверх надо искать или и то и другое :) |
| DrMefistO:
За ссылку спасибо! Очень труЪ) |
| kadet.89:
Почитал мануал от Ti, вроде понятно как менять значения в роме, чёто добавлять туда... но вот как портировать я так и не смог понять. Допустим игра начинается с меню, и в первую очередь надо его сделать, пробовал разобраться что к чему, но пока ничего не получается. Тут был бы полезен видео-урок с демонстрацие портирования небольшой части кода от любой игры (допустим меню игры с выделением пунктов). Пробовал через Search GG codes искать нужный код...но попадаю не на код, а непонятно куда. Может есть способ как то сделать так чтобы как в борланд си - выполнилась строчка кода - она выделилась и вывелись результаты, потом жму enter - выполнилась следующая строчка... так былоб можно легко сопоставить код с тем что вижу на картинке и не надоб было всё искать и разбирать. Да, кстати не подскажете где в GensKMOD найти в меню пункт Trace, в мануале от Ti сказано что он там есть, но на деле я его не могу найти. |
| Ti_:
--- Цитата: kadet.89 от 14 Сентябрь 2012, 01:37:01 ---Да, кстати не подскажете где в GensKMOD найти в меню пункт Trace, в мануале от Ti сказано что он там есть, но на деле я его не могу найти. --- Конец цитаты --- И я не могу - странно может не во всех версиях был. В Gens11a или сделанном из него же GensR57shellmod он точно есть. Добавлено позже: --- Цитата: MetalliC от 11 Сентябрь 2012, 22:47:26 ---по реверс-инжинирингу ? спасибо, посмеялся. --- Конец цитаты --- Ну а чо есть такие мануалы - пример Крис Касперски - только там сложные моменты. --- Цитата ---Показывает приемы эффективного использования IDA Pro для исследования зашифрованного кода, p-кода, самомодифицирующегося кода и кода, защищенного антиотладочными приемами. --- Конец цитаты --- |
| r57shell:
--- Цитата: kadet.89 от 14 Сентябрь 2012, 01:37:01 ---но вот как портировать я так и не смог понять. --- Конец цитаты --- Как портировать - ты должен придумать сам. Ты же портируешь. Нет одного везде рабочего алгоритма. --- Цитата: kadet.89 от 14 Сентябрь 2012, 01:37:01 ---Допустим игра начинается с меню, и в первую очередь надо его сделать, --- Конец цитаты --- Ну никто не говорит, что его нужно делать в первую очередь. Видел мой порт? Там только основной геймплей. --- Цитата: kadet.89 от 14 Сентябрь 2012, 01:37:01 ---пробовал разобраться что к чему, но пока ничего не получается. --- Конец цитаты --- Ну чтож поделать, не всё получается с первого раза. --- Цитата: kadet.89 от 14 Сентябрь 2012, 01:37:01 ---Тут был бы полезен видео-урок с демонстрацие портирования небольшой части кода от любой игры (допустим меню игры с выделением пунктов). --- Конец цитаты --- Небольшой урок?) Ыыыы это типо, меню за день видео?) (часов этак 10-20). --- Цитата: kadet.89 от 14 Сентябрь 2012, 01:37:01 ---Пробовал через Search GG codes искать нужный код...но попадаю не на код, а непонятно куда. --- Конец цитаты --- наверно плохо ищешь. --- Цитата: kadet.89 от 14 Сентябрь 2012, 01:37:01 ---Может есть способ как то сделать так чтобы как в борланд си - выполнилась строчка кода - она выделилась и вывелись результаты, потом жму enter - выполнилась следующая строчка... --- Конец цитаты --- Для начала нужно понять, что есть результаты. Результаты - изменения регистров, и памяти. Грубо говоря, изменение "состояния" приставки. Регистры - показываются в отладчике, и остальное тоже можно посмотреть. (RAM, VRAM) За исключением некоторых вещей. --- Цитата: kadet.89 от 14 Сентябрь 2012, 01:37:01 ---так былоб можно легко сопоставить код с тем что вижу на картинке и не надоб было всё искать и разбирать. --- Конец цитаты --- Надо всё искать, и разбирать. Именно так, и никак иначе. Тебе может быть ещё всплывающих подсказок, что на что влияет, и названия переменных?))) не смеши. Добавлено позже: Ах да, забыл сказать, на счёт графики и звука - ты сам должен уметь в "своей среде" работать с графикой и звуком. Так как на приставке другое железо, команды. |
| kadet.89:
Я не совсем это имел ввиду. Графический интерфейс и звуки я могу сам создать. Меня больше интересуют технические моменты. Хотя... возможно меню не самый подходящий пример. --- Цитата: r57shell от 14 Сентябрь 2012, 02:09:00 ---Надо всё искать, и разбирать. Именно так, и никак иначе. Тебе может быть ещё всплывающих подсказок, что на что влияет, и названия переменных?))) не смеши. --- Конец цитаты --- Ну ведь команды выполняются в определенном порядке который теоретически можно отследить ( в пример - трассировка) Другое дело что не существует инструмента который бы после выполнения команды указывал на нее в коде по соответсвующему адресу и ставил бы процесс на паузу до нажатия enter,. Получить измененное значение теоретически тоже можно. так всё былоб ясно по результатам работы эмулятора. К примеру - переместил указатель в меню игры - сработала команда и отобразилась соответствующая строка по адресу в коде-> сразу видно что откуда и куда. Gens11a, спасибо, завтра попробую. |
| r57shell:
--- Цитата: kadet.89 от 14 Сентябрь 2012, 03:22:36 ---Ну ведь команды выполняются в определенном порядке который теоретически можно отследить ( в пример - трассировка) --- Конец цитаты --- Что за бардак в голове? "теоретически", и сразу пример в практике. --- Цитата: kadet.89 от 14 Сентябрь 2012, 03:22:36 ---Другое дело что не существует инструмента который бы после выполнения команды указывал на нее в коде по соответсвующему адресу и ставил бы процесс на паузу до нажатия enter,. --- Конец цитаты --- Это называется Breakpoint. Сильное заявление "не существует", тем более, что есть. GensVKNTrace, Gens_11b r57shell mod --- Цитата: kadet.89 от 14 Сентябрь 2012, 03:22:36 ---Получить измененное значение теоретически тоже можно. так всё былоб ясно по результатам работы эмулятора. К примеру - переместил указатель в меню игры - сработала команда и отобразилась соответствующая строка по адресу в коде-> сразу видно что откуда и куда. --- Конец цитаты --- Полёт мысли неуловим, не понятно ничего ВООБЩЕ. Какое "измененное значение"? "Указатель"? "В меню игры"? "После чего вдруг сработала команда"? О_о. И внезапно стало всё видно откуда и куда. |
| Навигация |
| Главная страница сообщений |
| Предыдущая страница |