Описание: Поиск |
Поиск в теме | Версия для печати |
Ace Lightning |
Отправлено: 01 Апреля, 2016 - 15:03:23
|
VIP
Покинул форум
Сообщений всего: 480
Дата рег-ции: Июнь 2015
|
Да собственно, поиск тайловой карты в играх для GBA ничем не отличается от поиска тайловой карты в играх для других приставок и консолей.
1) Сначала нужно определить какие числовые значения у тайлов, которыми выводится надпись.
2) Затем нужно попробовать взять отдельный кусок этой надписи и поискать его в роме игры.
3) Если этот поиск не дает результатов, то значит, что либо карта тайлов пожата каким-либо алгоритмом, либо номера тайлов в ней записываются через какой-либо интервал.
4) Собственно, т.к. в роме сама надпись не пожата (тайлы, которыми она выводится), то скорее всего не пожата и карта.
5) Пробуем искать последовательность с интервалом.
6) Находим последовательность.
7) Пробуем заменить в ней какой-нибудь тайл на другой и смотрим изменилась ли надпись, если изменилась, то значит мы нашли карту верно, если нет, то продолжаем поиск.
Если алгоритм не очень понятен вам, то я могу расписать подробнее на примере этой игры что и как, но вечером. |
|
|
ZukoFL |
Отправлено: 01 Апреля, 2016 - 17:07:27
|
Покинул форум
Сообщений всего: 69
Дата рег-ции: Февр. 2016
|
Ace Lightning пишет:Да собственно, поиск тайловой карты в играх для GBA ничем не отличается от поиска тайловой карты в играх для других приставок и консолей.
1) Сначала нужно определить какие числовые значения у тайлов, которыми выводится надпись.
2) Затем нужно попробовать взять отдельный кусок этой надписи и поискать его в роме игры.
3) Если этот поиск не дает результатов, то значит, что либо карта тайлов пожата каким-либо алгоритмом, либо номера тайлов в ней записываются через какой-либо интервал.
4) Собственно, т.к. в роме сама надпись не пожата (тайлы, которыми она выводится), то скорее всего не пожата и карта.
5) Пробуем искать последовательность с интервалом.
6) Находим последовательность.
7) Пробуем заменить в ней какой-нибудь тайл на другой и смотрим изменилась ли надпись, если изменилась, то значит мы нашли карту верно, если нет, то продолжаем поиск.
Если алгоритм не очень понятен вам, то я могу расписать подробнее на примере этой игры что и как, но вечером. ОК, жду вечера) |
|
|
Ace Lightning |
Отправлено: 02 Апреля, 2016 - 06:24:00
|
VIP
Покинул форум
Сообщений всего: 480
Дата рег-ции: Июнь 2015
|
Итак, сначала определяем значения тайлов искомой надписи:
Первый тайл надписи: $601, шестерку отбрасываем, получается $01.
Тайл с номером $00 - это, по-видимому, бесцветный фон.
Тайлы в памяти расположены по порядку, сама надпись состоит из четырех рядов.
Видим, что в первой строке надписи сначала идут 5 тайлов $00, потом 18 тайлов надписи ($01-$13) и снова тайлы $00 в количестве 7 штук.
Теперь открываем ром в hex-радкторе и попытаемся найти последовательность. Практика подсказывает, что байты 00 искать нет смысла, потому что карта может быть пожата RLE, поэтому надо искать последовательность неповторяющихся тайлов. Так как надпись практически полностью состоит из неповторяющихся тайлов, то нам только проще.
Попытаемся найти последовательность:
01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10
Что-то находится, но это все не то. Остается предположить два варианта: либо карта пожата, либо значения в ней расположены через интервал. Воспользуемся поиском через интервал в hex-редакторе и вуаля.
Попробуем изменить какой-нибудь байт в этой карте и посмотреть что произойдет в игре.
Видим, что изображение изменилось, значит карта найдена верно. |
|
|
ZukoFL |
Отправлено: 02 Апреля, 2016 - 11:28:20
|
Покинул форум
Сообщений всего: 69
Дата рег-ции: Февр. 2016
|
Ace Lightning пишет:Спойлер (Отобразить)Итак, сначала определяем значения тайлов искомой надписи:
Первый тайл надписи: $601, шестерку отбрасываем, получается $01.
Тайл с номером $00 - это, по-видимому, бесцветный фон.
Тайлы в памяти расположены по порядку, сама надпись состоит из четырех рядов.
Видим, что в первой строке надписи сначала идут 5 тайлов $00, потом 18 тайлов надписи ($01-$13) и снова тайлы $00 в количестве 7 штук.
Теперь открываем ром в hex-радкторе и попытаемся найти последовательность. Практика подсказывает, что байты 00 искать нет смысла, потому что карта может быть пожата RLE, поэтому надо искать последовательность неповторяющихся тайлов. Так как надпись практически полностью состоит из неповторяющихся тайлов, то нам только проще.
Попытаемся найти последовательность:
01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10
Что-то находится, но это все не то. Остается предположить два варианта: либо карта пожата, либо значения в ней расположены через интервал. Воспользуемся поиском через интервал в hex-редакторе и вуаля.
Попробуем изменить какой-нибудь байт в этой карте и посмотреть что произойдет в игре.
Видим, что изображение изменилось, значит карта найдена верно. ну что ж, спасибо, теперь всё понятно) |
|
|
|
Поиск в теме | Версия для печати |
Страниц (1): [1] |
Сейчас эту тему просматривают: 3 (гостей: 3, зарегистрированных: 0) |
« Базовый хакинг » |
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
|
|
|