| Разработка и ромхакинг > Ромхакинг |
| [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 и с чем его едят, уж сами должны найти. |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |