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

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

1. alex_231 - 31 Января, 2016 - 15:29:43 - перейти к сообщению
alex_231
Вот, скрин того места, где находится запакованный текст Dragon Warrior 2, по крайней мере первый текст, который мы можем увидеть (There one day...).
Немного поэкспериментировав с кодами, смею предположить, что таблица MTE кодируется полуторами байтами, в смысле 12-ю битами, не 8 и не 16, а именно 12, причем код h760 (в выделенном фрагменте) - как-то связан с самим сообщением полностью, а последующие уже кодируют текст:
hEA3 - 'T'
hED7 - 'here'
(эти два я точно определил).
Но за неимением времени я не могу продолжить изучение (может только немного погодя), а пока оставляю данную находку в помощь Archisai, надеюсь ты сможешь во всем разобраться.
2. Archisai - 02 Февраля, 2016 - 10:02:12 - перейти к сообщению
Archisai
Благодарю!!! Я не совсем тупой и кое-что понял, но мне понадобится много времени на эксперименты и изучение, так что на меня пока не отвлекайся и занимайся своими делами, ибо у тебя их и так по горло!!!
3. alex_231 - 02 Февраля, 2016 - 10:02:48 - перейти к сообщению
alex_231
Упс, я несколько ошибся, кодировка там не 12-ти битная, а динамичная, то есть битовая ширина может меняться, выше указанные коды - неверны, возможные ширины (найденные - 5 бит и 10 бит)
4. alex_231 - 02 Февраля, 2016 - 10:03:25 - перейти к сообщению
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 - 02 Февраля, 2016 - 10:05:36 - перейти к сообщению
kupo
Alex_231, тебе за такую работу памятник при жизни надо ставить.
6. Archisai - 02 Февраля, 2016 - 10:05:59 - перейти к сообщению
Archisai
Да что там памятник...Аллею славыУлыбка
7. alex_231 - 02 Февраля, 2016 - 10:06:27 - перейти к сообщению
alex_231
Ну вы меня прям засмущали.
Арч, получил ЛС?
8. Archisai - 02 Февраля, 2016 - 10:06:54 - перейти к сообщению
Archisai
ЛС??? Э...Скрипт получал...ЛС...Н-не получал...
9. alex_231 - 02 Февраля, 2016 - 10:07:25 - перейти к сообщению
alex_231
ЛС - Личное сообщение Улыбка
10. alex_231 - 02 Февраля, 2016 - 10:07:48 - перейти к сообщению
alex_231
Как уже повелось: вчера вечером Улыбка, написал алгоритм вставки текста обратно в ром, доработаю интерфейс и можно будет с ней работать.
11. alex_231 - 02 Февраля, 2016 - 10:08:08 - перейти к сообщению
alex_231
Archisai, ты сам хочешь закончить этот проект или просто займёшься переводом текста?
Если второе, то я могу предложить помощь в возвращении текста и перерисовке графики, хотя некоторые элементы лучше отдать художникам.

Позже: В игре 141 печатный символ (включая рамки и спецсимволы: месяц, сердечко и т.п.), так что разместить русский шрифт не составит особого труда.
12. GD - 02 Февраля, 2016 - 10:08:24 - перейти к сообщению
GDgt;
Голливудская улыбка Мисьё... художник прибыл.
Если кому понадоблюсь я в мастерской Улыбка
13. Archisai - 02 Февраля, 2016 - 10:09:28 - перейти к сообщению
Archisai
Alex, переводом я займусь сам, мне только понадобится художник (респект мастеру кисти GD) и помощь во вставке текста в РОМ!!!
14. alex_231 - 02 Февраля, 2016 - 10:09:45 - перейти к сообщению
alex_231
Я про вставку и спрашивал, так как на перевод текста времени катастрофически не хватает (да как и на все остальное)
15. alex_231 - 02 Февраля, 2016 - 10:10:09 - перейти к сообщению
alex_231
Archisai, ты там как по переводу движешься, или не очень?
16. alex_231 - 02 Февраля, 2016 - 10:10:32 - перейти к сообщению
alex_231
Ну-ка, в кого патчем кинуть для тестирования?
17. alex_231 - 02 Февраля, 2016 - 10:10:55 - перейти к сообщению
alex_231
Что?
Желающих нету?
Странно... тогда сам займусь тестингом, надо же игру хоть раз пройти Улыбка
18. Archisai - 02 Февраля, 2016 - 10:11:14 - перейти к сообщению
Archisai
У нас есть официальный бета-тестер...
19. alex_231 - 02 Февраля, 2016 - 10:11:37 - перейти к сообщению
alex_231
Да, что-то он несколько скромничает...
А ты не хочешь приложить руку к переводу?
20. Archisai - 02 Февраля, 2016 - 10:11:57 - перейти к сообщению
Archisai
Тут и без меня справились с переводом, значит, справятся и с тестированием...
21. GD - 02 Февраля, 2016 - 10:12:15 - перейти к сообщению
GDgt;
ЭЙ!!!!:huh:
Голливудская улыбка Давай!!! А ты сможешь взломать ее и сделать макисмальный уровень? просто влом уровень набирать)))
22. alex_231 - 02 Февраля, 2016 - 10:12:36 - перейти к сообщению
alex_231
Могу сделать патч, с которым один уровень набирается за одну единицу опыта (хак таблицы опыта).
Сейчас сделаю и отправлю вместе с бетой перевода.
23. alex_231 - 02 Февраля, 2016 - 10:13:05 - перейти к сообщению
alex_231
Я закончил карту мира, правда один материк остался закрытым, потому как он окружен горами.
Вопрос: где разместить карту?
Я сделал четыре варианта разного масштаба:
100% - 4096x4096 - 857 kb
50% - 2048x2048 - 1228 kb
25% - 1024x1024 - 332 kb
12,5% - 512x512 - 145 kb
Все ли карты размещать?
24. GD - 02 Февраля, 2016 - 10:13:24 - перейти к сообщению
GDgt;
Исправь отображаемые имена в игре)))) а то их звут например "прве" )))))
25. alex_231 - 02 Февраля, 2016 - 10:13:46 - перейти к сообщению
alex_231
Это вряд ли, в меню отображаются только 4 первых символа полного имени (сокращенно), хотя в теории это и возможно, но меню в бою не позволяет расширить надписи - оно будет затираться окном имен монстров Недовольство, огорчение, почему думаешь я написал "Деру" вместо "Бежать"?
26. GD - 02 Февраля, 2016 - 10:14:07 - перейти к сообщению
GDgt;
Это глюк... это глюк... это глюк... Голливудская улыбка
27. Mefistotel - 02 Февраля, 2016 - 10:14:27 - перейти к сообщению
Перевод можно скачать по ссылке:
http://chief-net.ru/index.php?op...33&Itemid=38

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