форум группы Chief-Net » » Базовый хакинг » Dragon Warrior 2 [NES]

Страниц (1): [1]
 

1. alex_231 - 15 Января, 2016 - 10:49:23 - перейти к сообщению
Вот, скрин того места, где находится запакованный текст Dragon Warrior 2, по крайней мере первый текст, который мы можем увидеть (There one day...).
Немного поэкспериментировав с кодами, смею предположить, что таблица MTE кодируется полуторами байтами, в смысле 12-ю битами, не 8 и не 16, а именно 12, причем код h760 (в выделенном фрагменте) - как-то связан с самим сообщением полностью, а последующие уже кодируют текст:
hEA3 - 'T'
hED7 - 'here'
(эти два я точно определил).
Но за неимением времени я не могу продолжить изучение (может только немного погодя), а пока оставляю данную находку в помощь Archisai, надеюсь ты сможешь во всем разобраться.
2. Archisai - 15 Января, 2016 - 11:12:18 - перейти к сообщению
Archisai
Благодарю!!! Я не совсем тупой и кое-что понял, но мне понадобится много времени на эксперименты и изучение, так что на меня пока не отвлекайся и занимайся своими делами, ибо у тебя их и так по горло!!!
3. alex_231 - 15 Января, 2016 - 11:12:51 - перейти к сообщению
alex_231
Упс, я несколько ошибся, кодировка там не 12-ти битная, а динамичная, то есть битовая ширина может меняться, выше указанные коды - неверны, возможные ширины (найденные - 5 бит и 10 бит)
4. alex_231 - 15 Января, 2016 - 11:13:31 - перейти к сообщению
alex_231
Всё, вчера вечером я разобрался в алгоритме кодировки текста.
В роме используются две таблицы:
первая - 32 элемента, кодируются 5-ю битами,
вторая - 128 элементов, кодируются 10-ю битам.
Причем ширина элементов задается таблицей ширины по адресу &hB44B (4 бита на элемент, максимальная длина - 15 символов), в таблице ширины 80 байт, а сразу за ними идут таблицы элементов (сначала первая, а потом вторая).
Так же есть таблица поинтеров на начала блоков текста, адрес &hB762 (только я не знаю сколько там поинтеров), первый элемент - 0080 -> 8000, указывает на адрес в роме - &h14010 (адрес первого блока текста).
Алгоритм распаковки(запаковки):
Байты переводятся в биты и выстраиваются в двоичную цепочку, затем смотрим на ПЕРВЫЕ ТРИ бита, если они ВСЕ равны 1, то элемент кодируется 10-ю битами, которые ВКЛЮЧАЮТ ТРИ вышеописанных, поэтому следующие СЕМЬ бит переводятся в десятичную систему (получается число от 0 до 127), полученное число есть номер элемента во второй таблице элементов, этот элемент записывается в память и выводится на экран, затем от начала цепочки отбрасывается 10 бит (уже раскодированные) и процесс повторяется сначала. Если же ПЕРВЫЕ ТРИ бита (или хотя бы один из них) не равны 1, то элемент кодируется 5-ю битами, которые также ВКЛЮЧАЮТ ТРИ вышеописанных, эти ПЯТЬ бит переводятся в десятичную систему (число от 0 до 31), полученное число есть номер элемента в первой таблице элементов, этот элемент записывается в память и выводится на экран, затем от начала цепочки отбрасывается 5 бит (уже раскодированные) и процесс повторяется сначала.
Хочу заметить, что коды &b11100 (28), &b11101 (29), &b1110 (30) и &b11111 (31) удовлетворяют условию 10-ти битового кодирования, поэтому в тексте они не используются, а в таблице элементов на их местах стоят непечатаемые символы &hC0, &hC1, &hC2 и &hC3.
Управляющие коды:
&hF8 - имя героя,
&hFC - конец сообщения, остальные я пока еще не опознал.
А также я набросал программу, которая вынимает текст по этому алгоритму (откуда еще я бы узнал об управляющих кодах), так что в ближайшем будущем (как только приведу её в божеский вид) появится возможность перевести эту сложную (по уровню хакинга) игру.
5. kupo - 15 Января, 2016 - 11:14:19 - перейти к сообщению
kupo

Alex_231, тебе за такую работу памятник при жизни надо ставить.
6. Archisai - 15 Января, 2016 - 11:17:43 - перейти к сообщению
Archisai
Да что там памятник...Аллею славыУлыбка
7. alex_231 - 15 Января, 2016 - 11:18:10 - перейти к сообщению
alex_231
Ну вы меня прям засмущали.
Арч, получил ЛС?
8. Archisai - 15 Января, 2016 - 11:18:39 - перейти к сообщению
Archisai
ЛС??? Э...Скрипт получал...ЛС...Н-не получал...
9. alex_231 - 15 Января, 2016 - 11:19:28 - перейти к сообщению
alex_231
ЛС - Личное сообщение Улыбка
10. alex_231 - 15 Января, 2016 - 11:19:57 - перейти к сообщению
alex_231
Как уже повелось: вчера вечером Улыбка, написал алгоритм вставки текста обратно в ром, доработаю интерфейс и можно будет с ней работать.
11. alex_231 - 15 Января, 2016 - 11:20:30 - перейти к сообщению
alex_231
Archisai, ты сам хочешь закончить этот проект или просто займёшься переводом текста?
Если второе, то я могу предложить помощь в возвращении текста и перерисовке графики, хотя некоторые элементы лучше отдать художникам.

Позже: В игре 141 печатный символ (включая рамки и спецсимволы: месяц, сердечко и т.п.), так что разместить русский шрифт не составит особого труда.
12. GD - 15 Января, 2016 - 11:21:02 - перейти к сообщению
GD
Голливудская улыбка Мисьё... художник прибыл.
Если кому понадоблюсь я в мастерской Улыбка
13. Archisai - 15 Января, 2016 - 11:21:31 - перейти к сообщению
Archisai
Alex, переводом я займусь сам, мне только понадобится художник (респект мастеру кисти GD) и помощь во вставке текста в РОМ!!!
14. alex_231 - 15 Января, 2016 - 11:21:58 - перейти к сообщению
alex_231
Я про вставку и спрашивал, так как на перевод текста времени катастрофически не хватает (да как и на все остальное)
15. alex_231 - 15 Января, 2016 - 11:22:31 - перейти к сообщению
alex_231
Archisai, ты там как по переводу движешься, или не очень?
16. alex_231 - 15 Января, 2016 - 11:41:15 - перейти к сообщению
alex_231
Ну-ка, в кого патчем кинуть для тестирования?
17. alex_231 - 15 Января, 2016 - 11:44:02 - перейти к сообщению
alex_231
Что?
Желающих нету?
Странно... тогда сам займусь тестингом, надо же игру хоть раз пройти Улыбка
18. Archisai - 15 Января, 2016 - 11:44:53 - перейти к сообщению
Archisai
У нас есть официальный бета-тестер...
19. alex_231 - 15 Января, 2016 - 11:45:43 - перейти к сообщению
alex_231
Да, что-то он несколько скромничает...
А ты не хочешь приложить руку к переводу?
20. Archisai - 15 Января, 2016 - 11:46:27 - перейти к сообщению
Archisai
Тут и без меня справились с переводом, значит, справятся и с тестированием...
21. GD - 15 Января, 2016 - 11:47:00 - перейти к сообщению
GDgt;
ЭЙ!!!!:huh:
Голливудская улыбка Давай!!! А ты сможешь взломать ее и сделать макисмальный уровень? просто влом уровень набирать)))
22. alex_231 - 15 Января, 2016 - 11:47:25 - перейти к сообщению
alex_231
Могу сделать патч, с которым один уровень набирается за одну единицу опыта (хак таблицы опыта).
Сейчас сделаю и отправлю вместе с бетой перевода.
23. alex_231 - 15 Января, 2016 - 11:48:13 - перейти к сообщению
alex_231
Я закончил карту мира, правда один материк остался закрытым, потому как он окружен горами.
Вопрос: где разместить карту?
Я сделал четыре варианта разного масштаба:
100% - 4096x4096 - 857 kb
50% - 2048x2048 - 1228 kb
25% - 1024x1024 - 332 kb
12,5% - 512x512 - 145 kb
Все ли карты размещать?
24. GD - 15 Января, 2016 - 11:48:50 - перейти к сообщению
GDgt;
Исправь отображаемые имена в игре)))) а то их звут например "прве" )))))
25. alex_231 - 15 Января, 2016 - 11:49:29 - перейти к сообщению
alex_231
Это вряд ли, в меню отображаются только 4 первых символа полного имени (сокращенно), хотя в теории это и возможно, но меню в бою не позволяет расширить надписи - оно будет затираться окном имен монстров Недовольство, огорчение, почему думаешь я написал "Деру" вместо "Бежать"?
26. GD - 15 Января, 2016 - 11:52:29 - перейти к сообщению
GD
Это глюк... это глюк... это глюк... Голливудская улыбка

Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®