Разработка и ромхакинг > Ромхакинг
[NES] Учебник по ромхакингу
<< < (3/13) > >>
neoborg:
lancuster, кидай все что есть, может что подчерпну
Томахомэ:

--- Цитата: lancuster от 21 Сентябрь 2016, 16:56:38 ---Урок № 2: Редактирование титульника
Итак, мы с вами научились находить переменные, отвечающие за жизни, менять их количество, а также делать бесконечными жизни и энергию. В данном уроке мы рассмотрим титульный экран ещё одной, не менее известной игры на NES - Ghosts'n Goblins.
Но перед тем, как приступить непосредственно к редактированию самого титульника, скажу пару слов о строении титульников в NES играх. Титульные экраны могу составляться либо микроблоками (тайлами 8х8 пикселей), так и макроблоками размерами 2х2 тайла. В некоторых играх используется оптимизация кода засчёт упрощения оформления повторяющихся строк (для примера: чтобы не писать "48 48 48 48 48 48 48 48 48 48", некоторые разработчики оформляют данную строку более кратко: "0A 48", что означает 10 байт одним тайлом). Подобные ухищрения проводятся в основном для экономии места в коде.
В данной же игре нам не придётся расшифровывать код титульника, ибо в ней титульник полностью открыт. Более того - он оформлен микротайлами, что удобно для его редактирования.
Открываем ром Ghosts'n Goblins (U) [!].nes на эмуляторе FCEUX 2.2.3, дожидаемся загрузки титульника, затем нажимаем на клавишу "\" (чуть выше Enter). Эмулятор перейдёт в режим паузы (будет виден значок в правом нижнем углу). Делается это для того, чтобы в процессе редактирования игра не проигрывалась сама собой и не отвлекала вас, а сам титульник был перед глазами. Отключить паузу эмулятора можно, зайдя в Debugger и нажав Run.
Теперь, когда титульник перед вами, вам нужно выяснить, как же он устроен. Для этого заходите в Debug->Name Table Viewer. Появится окно, в котором вы можете изучить строение титульника, наводя курсор на определённый тайл и узнавая его значение:

Также будет отображаться его положение на экране и адрес в PPU, но это нам не нужно, так как мы хотим постоянный результат. Так что снова лезем в Debug->Hex Editor и снова переключаемся в ROM File. Теперь разворачиваем окно Name Table Viewer и смотрим значение первого тайла титульника. Хекс редактор также должен быть включён (как на скрине). В хекс редакторе заходим в Edit->Find... и вписываем все значения с первого тайла в окно поиска:

Желательно написать больше значений, чтобы сразу найти нужное нам место. Только смотрите, пишите внимательно, не ошибайтесь - в Name Table Viewer нет сетки, показывающей границы тайлов, а потому съехать вниз или вверх и ввести значение с другой строки запросто можно.
Итак, вы ввели первую строку титульника и тут же её нашли. Жмём повторно на кнопку и убеждаемся, что больше совпадений нет. Это то, что мы искали. На скрине для удобства выделена вся первая строка. Теперь для наглядности мы попробуем затереть эту строку. Смотрим в Name Table Viewer, какое значение отвечает за пустоту. Это значение FF. Смело вводим это значение на всю строку.
Нажимаем Reset или Power, зажимаем "\" и дожидаемся титульника (можно ускорить это дело, зажав также кнопку Tab).
Мы видим, что у нас получилось затереть первую строку:

Таким образом мы может переделать весь титульник. Чтобы точно знать, на что будете заменять существующие значения, сверните или закройте Name Table, и откройте параллельно с хекс-редактором PPU Viewer (Debug->PPU Viewer):

И точно так же глядите значения тайлов и вбивайте их в хекс.
Но чтобы результат был более приемлемым - вам придётся придумать, как вам оформить новый титульник, а также предварительно перерисовать графику в тайловом редакторе типа YY-CHR или Tile Layer Pro. Но об этом мы узнаем в следующем уроке.
Благодарю за внимание! :)

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

Прикольно, однако!

Попробовал чисто прикола ради выложить из тайлов фразу "Google Rulit", только не очень получилось:
lancuster:

--- Цитата: Томахомэ от 22 Сентябрь 2016, 10:02:42 ---Прикольно, однако!

Попробовал чисто прикола ради выложить из тайлов фразу "Google Rulit", только не очень получилось:

--- Конец цитаты ---
Чтобы получилось "очень" - нужно тайлы перерисовать. А для этого нужно скачать один из вышеуказанных редакторов. Я рекомендую YY-CHR, поскольку считаю его самым удобным из всех.
DendyJunior3:

--- Цитата: krocki от 22 Сентябрь 2016, 00:40:12 ---Ну не буду же я подробно всё описывать...много времени уйдёт...да и грамотно надо описывать, что бы понятно было.
--- Конец цитаты ---
А давай ты возьмешь игру, например Battletoads и поменяешь кнопки местами, а то мне кажется ты этого не умеешь делать
Yoti:
DendyJunior3,
тебе правда нужен

--- Цитата: krocki от 22 Сентябрь 2016, 00:40:12 ---учебник накалякую по гейхакингу...
--- Конец цитаты ---
???
DendyJunior3:
Yoti, так я не учебник у него спрашивал а игру
M3tro ™:
Yoti, походу никто кроме нас не заметил этой ужасной очепятки :lol: :lol: :lol:‼
lancuster:
Я тоже заметил. Но меня больше интересует, знает ли он, как поменять местами кнопки, или просто так сказал. :)
MetalliC:
дык человек грамотно рассказал как искать код опрашивающий нажатия, и как их менять, вроде всё понятно. я б искал так же.


--- Цитата: DendyJunior3 от 22 Сентябрь 2016, 13:40:05 ---А давай ты возьмешь игру, например Battletoads и поменяешь кнопки местами, а то мне кажется ты этого не умеешь делать
--- Конец цитаты ---
подругу на минет так разводи, ага  :lol:
DendyJunior3:

--- Цитата: MetalliC от 22 Сентябрь 2016, 15:27:33 ---дык человек грамотно рассказал как искать
--- Конец цитаты ---
подругу так ищи, ага  :lol:
lancuster:
Ого, куда оффтоп зашел! Скоро, глядишь, "у кого длиннее и толще" начнут писать... :lol:
MetalliC:

--- Цитата: DendyJunior3 от 22 Сентябрь 2016, 15:32:15 ---подругу так ищи, ага
--- Конец цитаты ---
эмм, а нахрен оно мне нужно ?
DendyJunior3:

--- Цитата: MetalliC от 22 Сентябрь 2016, 15:33:54 ---эмм, а нахрен оно мне нужно ?
--- Конец цитаты ---
а, ну да

--- Цитата: krocki от 22 Сентябрь 2016, 00:40:12 ---учебник накалякую по гейхакингу
--- Конец цитаты ---
Kinbeas:
Вопрос по теме. Интересует, как искать данные спрайта, а именно где задаётся палитра. Просто находить в роме палитру и менять не вариант. Надо на спрайт отдельную палитру. На примере Биккури от Технос. Есть команда из пяти персов - все используют одинаковую палитру. Как для отдельного перса задать другую палитру?
lancuster:
Ну, если бы Xerox подсказал. :)
Мы с ним Чип и Дейл 4 делали, много объектов приходилось пересаживать на другой набор цветов.
NakL3:

--- Цитата: DendyJunior3 от 21 Сентябрь 2016, 00:18:20 ---лучше напиши как менять кнопки А и В местами, это пока единственное что мне нужно от хакинга

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

--- Цитата: DendyJunior3 от 22 Сентябрь 2016, 13:40:05 ---А давай ты возьмешь игру, например Battletoads и поменяешь кнопки местами, а то мне кажется ты этого не умеешь делать

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

И чуть ранее в другой теме))))

--- Цитата: DendyJunior3 от 06 Сентябрь 2016, 16:46:53 ---Кто может поменять местами кнопки А и В в battletoads на NES?

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

Неужели это второе пришествие Нестопиямана?

Ну, а по теме скажу, что neoborg, ты затеял действительно крутое дело. Ведь с подробным описанием всего и вся многие новички смогут вникнуть в эту замечательную сферу "Ромхакинг", тем более если это всё ещё и подаётся на Русском языке.
M3tro ™:

--- Цитата: lancuster от 22 Сентябрь 2016, 16:03:15 ---Ну, если бы Xerox подсказал. :)

--- Конец цитаты ---
Хм, я не уверен. Ломакс щас только стримы мутит (по всей видимости своих) хаков :lol:.

А по делу могу добавить, забыл сразу написать, можешь из этой группы РОМхакинг‼ / ROMhacking‼, neoborg, взять чего. Но там вроде больше по сеговским играм мануалов.
Xerox:

--- Цитата: M3tro ™ от 22 Сентябрь 2016, 17:46:02 ---Хм, я не уверен. Ломакс щас только стримы мутит (по всей видимости своих) хаков :lol:.

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

Не угадал) Стримы оригиналов, хочу пройтись по всем платформам и пройти большинство хитов. Начал с Геймбоя. Стримлю каждый день.
DendyJunior3:

--- Цитата: neoborg от 22 Сентябрь 2016, 01:49:38 ---уровень ромхакинга "новичок" уже готов примерно на 20%

--- Конец цитаты ---
не забудь включить описания команд ассемблера, без их понимания хакинг не хакинг


--- Цитата: NakL3 от 22 Сентябрь 2016, 16:43:11 ---И чуть ранее в другой теме))))
--- Конец цитаты ---
уже не нужно для жаб, чуть позже в другой теме есть причина.


--- Цитата: NakL3 от 22 Сентябрь 2016, 16:43:11 ---Неужели это второе пришествие Нестопиямана?
--- Конец цитаты ---
ну а ты будешь третьим кого я сегодня послал.
Skay:

--- Цитата: DendyJunior3 от 22 Сентябрь 2016, 18:13:15 ---не забудь включить описания команд ассемблера, без их понимания хакинг не хакинг
--- Конец цитаты ---
асемблера чего именно?)
имхо но команды и то что такое hex и с чем его едят, уж сами должны найти.
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

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