Разработка и ромхакинг > Ромхакинг и программирование
Портирование игры 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 ---Получить измененное значение теоретически тоже можно. так всё былоб ясно по результатам работы эмулятора. К примеру - переместил указатель в меню игры - сработала команда и отобразилась соответствующая строка по адресу в коде-> сразу видно что откуда и куда.

--- Конец цитаты ---
Полёт мысли неуловим, не понятно ничего ВООБЩЕ. Какое "измененное значение"? "Указатель"? "В меню игры"? "После чего вдруг сработала команда"? О_о. И внезапно стало всё видно откуда и куда.
Навигация
Главная страница сообщений
Предыдущая страница

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