
Chief-Net
Покинул форум
Сообщений всего: 10323
Дата рег-ции: Окт. 2014
Откуда: Магадан

|
Тема, созданная для помощи в переводе.
Задача - изменить цвет первой буквы в заставке игры Tetra Star - Fighter (J).nes не зная асма, программирования и прочей лабуды.
1. Открываем ром в ДжиннТайлМэппере и смотрим что там внутри
Как правило, карта тайлов палитры (не сами цвета, а указания на то, в каком месте какой цвет использовать), находятся сразу до/после картинки. Мне чаще встречается что после. Смотрим где кончается картинка заставки - это адрес 34A0 ( буква А в "Тексте, коде и прочем мусоре" ) и дальше, на первый взгляд.
2. Открываем пакостник и задаём этот адрес в начале. Менять будем по 1 байту и каждый раз запускать игру, чтобы проверить что получилось. Менять будем все байты, увеличивая их, к примеру, на 1:
3. Поменяли (Перепакостить) - запускаем файл (перед этим в программе подключили эмулятор для быстрого запуска)
Видим, что палитра изменилась, т.е. мы попали в карту тайлов палитры, но изменили не нашу букву, а что-то другое, до неё.
4. Поэтому двигаемся на 1 шаг вперёд - диапазон адресов 34A1 - 34A2 и опять перепакостим ром. Запускаем. Смотрим что получилось и т.д. и т.п.
5. Рано или поздно находим место, где задана палитра буквы, вот где она:
Палитра буквы находится по адресу 34AD. По умолчанию там стоит байт AE. А следующий байт - это AF. Это цвета следующих букв, третьей и четвёртой, и двух тайлов под ними.
Т.е. в этом месте задаётся цвет сразу 4-ёх тайлов одним байтом. По алгоритму, который используется в очень многих играх.
На скрине выше видно, что при изменениях по адресу 34AE меняется цвет 4 тайлов.
Поменяв 1 байт по адресу 34AD на AF мы справимся с задачей (можно подбором увидеть, как 1 байт меняет цвета. Но мы знаем, что у следующих букв байт этот AF (буквы ЖМ), поэтому тут даже подбирать не нужно, просто меняем буквам НА такой же байт AF).
Вот и всё. Для нахождения цвета первой (и, как мы поняли, второй тоже) буквы нам понадобилось 14 шагов при движении вперёд по 1 байту, минимум знаний и очень мало затраченного времени.
----- Я не волшебник - я только учусь... |