Как найти текст, если тайлы “раскиданы”.

 

I. Введение

Этот документ создан в расчёте на то, что вы уже знаете, такие базовые понятия как тайл, Hex-редактор, тайловый редактор и др. Также вы должны знать, что такое шестнадцатеричная система счисления и как с ней работать.

II. Смотрим на шрифт.

Предположим, что вы уже нашли шрифт, но тайлы в нём расположены не в алфавитном порядке (частично или полностью). Вот два примера из игры DarkMan(NES):

1-й случай:

Когда хотя бы нескольких букв расположено в алфавитном порядке, главное чтобы можно было составить слово.
В данном конкретном случае всё довольно просто: одна из букв (буква Y) - находится отдельно от остальных букв.

2-й случай:

Когда раскиданы все или почти все буквы.
А в моём примере ещё и с разным фоном.

P.S.: Здесь буквы немного вылезают на соседние (справа) тайлы, но это не играет большой роли.Это важно только при перерисовке, а с кодировкой можно работать нормально.

III. К какому тексту относятся эти тайлы?

Вне зависимости от того, какой у вас случай - нужно узнать к какому тексту относятся эти тайлы.
Чтобы это сделать - достаточно изменить тайлы и посмотреть где изменился текст.
Если у вас первый случай, то переходим к пункту IV.
Если же - второй, то переходим к пункту V.

IV. Первый случай.

В этом случае можно использовать Relative Search, но искать нужно только те слова, которые состоят из букв стоящих в алфавитном порядке.
А коды букв, не стоящих в алфавитном порядке можно вычислить по расположению в тайловом редакторе.

V. Второй случай.

В этом случае есть два метода нахождения кодов символов:

Метод первый (для частных случаев):

Этот метод годится для текста без спецсимволов и без всевозможных кодировок: DTE, LZ и т.д. Его можно применять в текстах простеньких игр.(По крайней мере, в DarkMan'е этот метод сработал. )

1) Просто проверяем: при изменении каких тайлов - меняется изображение на экране с текстом. То есть: изменяем тайлы до тех пор пока не выясним: начиная с какого тайла изменяется картинка.
2)Этому тайлу присваиваем код 00, ну а остальным по порядку.

Метод второй (универсальный):

Этот метод годится для любых случаев. Он немного сложнее, чем первый метод, но зато - безотказный.

1) Нужно найти такое слово, чтобы составляющие его тайлы были недалеко друг от друга. В моём примере это может быть слово SCOR. Почему без E? А потому что E находится слишком далеко. Нужно уложиться в промежуток из 26 символов (английский алфавит), если Hex-редактор поддерживает Relative Search на русском языке, то тогда - в промежуток из 33 символов.
2) Если слово выбрано, то его можно "закодировать" :
В моё примере можно так: будем считать, что символ R - это A, тогда символ 1 - это B, H - это T, I - это U и т.д.
3) Итак мы получили закодированное слово. В данном случае - это слово: VWXA (так я "закодировал" SCOR).
4) Ищем его Relative Search'ем и узнаём коды букв: S, C, O и R. Остальные коды букв можно узнать по положению в тайловом редакторе.

VI. Результат.

Теперь когда найдены буквы, можно проверить остальные коды.

А вот, что получилось у меня во втором случае:

00=_
02=c
03=o
04=n
05=t
06=i
07=U
08=E
25=2
26=P
27=L
28=A
29=Y
2A=R
2B=1
3D=H
3E=I
3F=S
40=C
41=O
5E=N
5F=D
60=F
81=m
82=u
83=s

Пояснения:
_ - это пробел

Большие буквы - это буквы с тёмным фоном
Маленькие буквы - это буквы со светлым фоном.

VII. Послесловие.

Этот документ распространяется абсолютно бесплатно. Любое изменение текста или коммерческое распространение - нарушают мои авторские права. Если есть замечания и предложения, то пишите мне на мыло. Virtual_Killer@mail.ru
Для вас старался Virtual_Killer.