Автор Тема: [NES] Учебник по ромхакингу  (Прочитано 26258 раз)

0 Пользователей и 3 Гостей просматривают эту тему.

Оффлайн krocki

  • Пользователь
  • Сообщений: 1250
  • Пол: Мужской
  • ...:::Hacking_Craft:::...
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #30 : 21 Сентябрь 2016, 04:13:07 »
лучше напиши как менять кнопки А и В местами, это пока единственное что мне нужно от хакинга
Да это вроде как не сложно сделать...хотя с некоторыми ромами приходится иногда мудохаться.
К примеру ищем адрес зажатой кнопки "А", дальше дебажим и ищем инструкцию которая отвечает за нажатие ну или по коду делаем анализ дальше если сразу путного ничего не нашли...находим инструкцию типа сравнения ну и меняем дальше её сравнение на значение "В"...ну так же находим "В" и меняем на "А" вроде усё.
;)

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4256
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #31 : 21 Сентябрь 2016, 06:00:45 »
Так "подробно" всё объяснил. Прям не придерёсси... :lol:

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4256
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #32 : 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. Но об этом мы узнаем в следующем уроке.
Благодарю за внимание! :)

Оффлайн Крылатый Кот

  • Пользователь
  • Сообщений: 82
  • Пол: Мужской
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #33 : 21 Сентябрь 2016, 19:57:30 »
http://pscd.ru/forum/index.php?/forum/27-uroki-dokumentatciia/ - сюда ещё можно продублировать эту тему, может там найдутся помощники

Оффлайн neoborg

  • Пользователь
  • Сообщений: 128
  • Пол: Мужской
  • Самый лысый ромхакер BZK
    • ВКонтакте
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #34 : 21 Сентябрь 2016, 22:43:59 »
Крылатый Кот, там уже паутиной все покрылось, ну их нафиг.

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4256
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #35 : 21 Сентябрь 2016, 23:17:34 »
Я бы так не сказал. Просто там людей толковых мало. Как и здесь, впрочем. :)

Оффлайн krocki

  • Пользователь
  • Сообщений: 1250
  • Пол: Мужской
  • ...:::Hacking_Craft:::...
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #36 : 22 Сентябрь 2016, 00:40:12 »
Так "подробно" всё объяснил. Прям не придерёсси... :lol:
Ну не буду же я подробно всё описывать...много времени уйдёт...да и грамотно надо описывать, что бы понятно было. <_<
Будет много времени...возможно свой учебник накалякую по гейхакингу...хотя ща много видео обзоров есть по этому делу!
^_^

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4256
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #37 : 22 Сентябрь 2016, 01:13:33 »
Например? По перемене кнопок есть?

Оффлайн neoborg

  • Пользователь
  • Сообщений: 128
  • Пол: Мужской
  • Самый лысый ромхакер BZK
    • ВКонтакте
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #38 : 22 Сентябрь 2016, 01:49:38 »
уровень ромхакинга "новичок" уже готов примерно на 20%

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4256
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #39 : 22 Сентябрь 2016, 08:13:28 »
neoborg, про граф.редактор статью выкладывать?

Оффлайн neoborg

  • Пользователь
  • Сообщений: 128
  • Пол: Мужской
  • Самый лысый ромхакер BZK
    • ВКонтакте
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #40 : 22 Сентябрь 2016, 09:33:48 »
lancuster, кидай все что есть, может что подчерпну

Оффлайн Томахомэ

  • Пользователь
  • Сообщений: 761
  • Пол: Мужской
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #41 : 22 Сентябрь 2016, 10:02:42 »
Урок № 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

  • Пользователь
  • Сообщений: 4256
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #42 : 22 Сентябрь 2016, 10:08:09 »
Прикольно, однако!

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

Оффлайн DendyJunior3

  • Пользователь
  • Сообщений: 282
  • Пол: Мужской
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #43 : 22 Сентябрь 2016, 13:40:05 »
Ну не буду же я подробно всё описывать...много времени уйдёт...да и грамотно надо описывать, что бы понятно было.
А давай ты возьмешь игру, например Battletoads и поменяешь кнопки местами, а то мне кажется ты этого не умеешь делать

Оффлайн Yoti

  • Пользователь
  • Сообщений: 4403
  • Пол: Мужской
  • Не тро-гай ме-ня
    • Steam
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #44 : 22 Сентябрь 2016, 13:55:33 »
DendyJunior3,
тебе правда нужен
учебник накалякую по гейхакингу...
???

Оффлайн DendyJunior3

  • Пользователь
  • Сообщений: 282
  • Пол: Мужской
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #45 : 22 Сентябрь 2016, 13:58:45 »
Yoti, так я не учебник у него спрашивал а игру

Оффлайн M3tro ™

  • Пользователь
  • Сообщений: 698
  • Пол: Мужской
  • I’m not afraid, and yall don’t be afraid either…
    • Facebook
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #46 : 22 Сентябрь 2016, 14:55:40 »
Yoti, походу никто кроме нас не заметил этой ужасной очепятки :lol: :lol: :lol:

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4256
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #47 : 22 Сентябрь 2016, 15:00:53 »
Я тоже заметил. Но меня больше интересует, знает ли он, как поменять местами кнопки, или просто так сказал. :)

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9359
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #48 : 22 Сентябрь 2016, 15:27:33 »
дык человек грамотно рассказал как искать код опрашивающий нажатия, и как их менять, вроде всё понятно. я б искал так же.

А давай ты возьмешь игру, например Battletoads и поменяешь кнопки местами, а то мне кажется ты этого не умеешь делать
подругу на минет так разводи, ага  :lol:

Оффлайн DendyJunior3

  • Пользователь
  • Сообщений: 282
  • Пол: Мужской
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #49 : 22 Сентябрь 2016, 15:32:15 »
дык человек грамотно рассказал как искать
подругу так ищи, ага  :lol:

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4256
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #50 : 22 Сентябрь 2016, 15:32:24 »
Ого, куда оффтоп зашел! Скоро, глядишь, "у кого длиннее и толще" начнут писать... :lol:

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9359
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #51 : 22 Сентябрь 2016, 15:33:54 »
подругу так ищи, ага
эмм, а нахрен оно мне нужно ?

Оффлайн DendyJunior3

  • Пользователь
  • Сообщений: 282
  • Пол: Мужской
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #52 : 22 Сентябрь 2016, 15:38:08 »
эмм, а нахрен оно мне нужно ?
а, ну да
учебник накалякую по гейхакингу

Оффлайн Kinbeas

  • Пользователь
  • Сообщений: 3620
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #53 : 22 Сентябрь 2016, 15:57:24 »
Вопрос по теме. Интересует, как искать данные спрайта, а именно где задаётся палитра. Просто находить в роме палитру и менять не вариант. Надо на спрайт отдельную палитру. На примере Биккури от Технос. Есть команда из пяти персов - все используют одинаковую палитру. Как для отдельного перса задать другую палитру?

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4256
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #54 : 22 Сентябрь 2016, 16:03:15 »
Ну, если бы Xerox подсказал. :)
Мы с ним Чип и Дейл 4 делали, много объектов приходилось пересаживать на другой набор цветов.

Оффлайн NakL3

  • Пользователь
  • Сообщений: 475
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #55 : 22 Сентябрь 2016, 16:43:11 »
лучше напиши как менять кнопки А и В местами, это пока единственное что мне нужно от хакинга
А давай ты возьмешь игру, например Battletoads и поменяешь кнопки местами, а то мне кажется ты этого не умеешь делать

И чуть ранее в другой теме))))
Кто может поменять местами кнопки А и В в battletoads на NES?

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

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

Оффлайн M3tro ™

  • Пользователь
  • Сообщений: 698
  • Пол: Мужской
  • I’m not afraid, and yall don’t be afraid either…
    • Facebook
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #56 : 22 Сентябрь 2016, 17:46:02 »
Ну, если бы Xerox подсказал. :)
Хм, я не уверен. Ломакс щас только стримы мутит (по всей видимости своих) хаков :lol:.

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

Оффлайн Xerox

  • Ушел с форума
  • Сообщений: 1360
  • Стримы ретро каждый день
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #57 : 22 Сентябрь 2016, 18:00:24 »
Хм, я не уверен. Ломакс щас только стримы мутит (по всей видимости своих) хаков :lol:.

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

Оффлайн DendyJunior3

  • Пользователь
  • Сообщений: 282
  • Пол: Мужской
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #58 : 22 Сентябрь 2016, 18:13:15 »
уровень ромхакинга "новичок" уже готов примерно на 20%
не забудь включить описания команд ассемблера, без их понимания хакинг не хакинг

И чуть ранее в другой теме))))
уже не нужно для жаб, чуть позже в другой теме есть причина.

Неужели это второе пришествие Нестопиямана?
ну а ты будешь третьим кого я сегодня послал.

Оффлайн Skay

  • Пользователь
  • Сообщений: 4114
  • Пол: Мужской
    • Просмотр профиля
[NES] Учебник по ромхакингу
« Ответ #59 : 22 Сентябрь 2016, 18:23:53 »
не забудь включить описания команд ассемблера, без их понимания хакинг не хакинг
асемблера чего именно?)
имхо но команды и то что такое hex и с чем его едят, уж сами должны найти.