Автор Тема: Перевод Digimon World PSX (PAL)  (Прочитано 20155 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ReeDeR

  • Пользователь
  • Сообщений: 42
  • Пол: Мужской
    • Просмотр профиля
Перевод Digimon World PSX (PAL)
« : 10 Июнь 2015, 21:20:58 »
Давно люблю эту игру.Но на неё нет нормального русского перевода. Тот что есть он от Кудос с кривыми шрифтами и абсолютным наплевательством на длину слов. Буквально там русские слова были написаны английскими буквами плюс умещали всё это в длину оригинального текста. Т.е пираты на поинтеры вообще забили.


 Дело в том что игры я никогда не переводил,но как то интересовался этим. Вообщем взялся за эту игру и кое что уже получается. Я узнал таблицу символов.Кодировка текста в игре использует Shift JIS японскую кодировку. Нашел и перерисовал шрифты под русский алфавит. И начал перевод с системных сообщений. И вот успехи.




 Узнал про смещения поинтеров. Гдето используются смещение A0000 гдето 90000. Например в названии техник 90000 а в названии локаций а0000. Я дампил память и вычитал разницу между файлом и памятью и легко находил поинтеры. Таблицы поинтеров во многих случаях видны не вооруженным глазом в хексе. Чтото типо 1234 FFFF 1234 FFFF 3455 FFFF и тд. Использовал Круптар для перевода.Устанавливал там область с поитерами и устанавливал смещения и Круптар легко выдирал тест из файла по поитером.Но тут я взялся за игровые диалоги персонажей. И тут возникли проблемы. Я знаю что диалоги лежал в одном файле DG0.SCN. Но у меня возникли проблемы с поиском поинтеров. Способ с вычитание разницы не сработал. Вот вижу эти диалоги в хексе по буквенно но поинтеры на него найти не могу. Хотя и есть чтото похожее на таблицу поинтеров,но смещения не работают.Вернее для одного диалога получилось правильное смещение и он отображается верно а другой диалог отображается не с начала,такое ощущение что разные смещения. Есть тут спецы которые могут описать процесс поиска поинтеров с помощью дебаггера например? А то не хотелось бы запнуться на диалогах и забрасывать игру. :neznayu:


Оффлайн SILENT_Pavel

  • Пользователь
  • Сообщений: 2734
    • Youtube
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #1 : 11 Июнь 2015, 00:22:58 »
Тот что есть он от Кудос
Он еще тут однажды засветился, кошмарище.
http://www.emu-land.net/forum/index.php/topic,65832.msg1044803.html#msg1044803

Оффлайн ReeDeR

  • Пользователь
  • Сообщений: 42
  • Пол: Мужской
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #2 : 11 Июнь 2015, 00:37:42 »
Он еще тут однажды засветился, кошмарище.
http://www.emu-land.net/forum/index.php/topic,65832.msg1044803.html#msg1044803
Да не надо мне показывать :) Я этот перевод знаю и проходил эту игру с этим переводом. Весьма забавный перевод на самом деле. Много улыбок доставили корявые словечки. Игра казалась сложная и я часто не знал куда идти и что делать.А всё потому что я просто не мог понять что мне говорят персонажи.Когда персонаж говорит чтото типо "ИД В К С ТАМ ТЫ НАЙД ЦВ " :lol: Вот я и решил исправить ситуацию.И как видишь менюшки я уже подправил.Так же переведены названия локаций ,Вещи ,дигимоны,техники.Дальше нужно браться за основное,диалоги то бишь.И тут проблемс.

Оффлайн Mr2

  • Пользователь
  • Сообщений: 1592
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #3 : 11 Июнь 2015, 08:22:57 »
Есть тут спецы которые могут описать процесс поиска поинтеров с помощью дебаггера например? А то не хотелось бы запнуться на диалогах и забрасывать игру. :neznayu:
Ставь бряк на чтение поинтера "only if read" =0x80046855.
Или анализируй код чтения строки, тогда поймёшь откуда берутся поинтеры. Код отлавливай по чтению первого символа строки "MemRead" =0x80046855.

Оффлайн mrtest

  • Пользователь
  • Сообщений: 63
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #4 : 11 Июнь 2015, 09:06:10 »
Отличная игра. когда был еще сопляком, проходил ее вместе с друзьями, фана было хоть отбавляй. Афтар, оч прошу, переводи лучше USA версию. Все-таки 50fps не тру.
Так же могу дать наводку на хакера, который разберет тебе игру под ключ. Только он за спасибо не работает. Обойдется в районе 4к. :)

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8076
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #5 : 11 Июнь 2015, 10:48:15 »
Текст может начинаться со служебных символов. По сему, можно ошибиться, определяя точное начало строки. К тому же, поинтеры могут быть относительными. Первая строка считается нулевой, а все последующие (если они отделены стоп-байтом) отсчитываются от её начала. Допустим, что 2-я строка относительно 1-й смещена на 0х4A байт. Значит, поинтер для неё будет 4A00h (учитывая обратный порядок байт).
Ещё можно воспользоваться дизассеблером (ps2dis). Там иногда удаётся отследить поинтеры парой действий. Подсветить адрес начала строки, нажать пробел, а затем F3 для автоматического поиска ссылок на выделенный адрес.
« Последнее редактирование: 11 Июнь 2015, 10:55:56 от paul_met »

Оффлайн Dizzy

  • Пользователь
  • Сообщений: 6018
  • Пол: Мужской
  • Флейм
    • Twitter
    • Steam
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #6 : 11 Июнь 2015, 10:58:24 »
Поголовье больших букв снизь сразу - "Новая игра, Боевой клич, Режим битвы" и так далее.

Оффлайн ReeDeR

  • Пользователь
  • Сообщений: 42
  • Пол: Мужской
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #7 : 11 Июнь 2015, 11:30:55 »
Отличная игра. когда был еще сопляком, проходил ее вместе с друзьями, фана было хоть отбавляй. Афтар, оч прошу, переводи лучше USA версию. Все-таки 50fps не тру.
Так же могу дать наводку на хакера, который разберет тебе игру под ключ. Только он за спасибо не работает. Обойдется в районе 4к. :)
Нет юса не катит.Там символов мало.В идеале вообще нужно японку переводить.

Оффлайн Yoti

  • Пользователь
  • Сообщений: 4420
  • Пол: Мужской
  • Не тро-гай ме-ня
    • Steam
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #8 : 11 Июнь 2015, 12:56:16 »
ReeDeR,
большие буквы - соседи "Ы" - местами перепутаны.

Оффлайн ReeDeR

  • Пользователь
  • Сообщений: 42
  • Пол: Мужской
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #9 : 11 Июнь 2015, 13:17:35 »
ReeDeR,
большие буквы - соседи "Ы" - местами перепутаны.
да :lol: И шрифт надо подправить. Но то всё фигня, надо разобраться с диалогами.

Добавлено позже:
Ставь бряк на чтение поинтера "only if read" =0x80046855.
Или анализируй код чтения строки, тогда поймёшь откуда берутся поинтеры. Код отлавливай по чтению первого символа строки "MemRead" =0x80046855.


Ты можешь подробнее о бряках?Какой дебаггер использовать?Вот у уменя эмуль Psx 1.13 там есть отладчик вроде.
« Последнее редактирование: 11 Июнь 2015, 13:28:47 от ReeDeR »

Оффлайн ReeDeR

  • Пользователь
  • Сообщений: 42
  • Пол: Мужской
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #10 : 15 Июнь 2015, 22:17:04 »
Есть у кого идеи как может работать игровой скрипт в диалогах? Какие указатели выводят текст. Нужно изменить диалоговое пространство. Но изменяя длину слов увеличится длина диалога и стартовые коды диалогов сместятся и не будут работать.  Скрипт диалога выглядит так

 [1ba0] [1a00] Текст диалога [0d00] Текст в новой строке [0d00] [0000]

1ba0 - это код названия диалога. В игре это выглядит как имя того кто говорит
1a00 - Это код СТАРТА диалога
0d00 - Это код переноса строки в диалоговом окне
0000 - Это код КОНЦА диалога.



Мне нужно найти указатель который даёт команду старту диалога. Например если я изменяю адрес расположения 1ba0 , то диалог просто не стартует. Т.е Диалог похоже начиннается именно с Названия персонажа диалога 1da0. С дебаггером много провозился но понял мало. :neznayu:



Оффлайн Mr2

  • Пользователь
  • Сообщений: 1592
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #11 : 16 Июнь 2015, 00:14:23 »
Ты можешь подробнее о бряках?
Тут можно немножко почитать.
Какой дебаггер использовать?
pcsx 1.5 with debugger

Оффлайн Mefistotel

  • Emu-Land Team
  • Сообщений: 1509
  • Пол: Мужской
  • Генерал армии Хаоса
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #12 : 16 Июнь 2015, 00:27:50 »
ReeDer, прикрепи файл с диалогами и английскую таблицу.

Оффлайн ReeDeR

  • Пользователь
  • Сообщений: 42
  • Пол: Мужской
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #13 : 16 Июнь 2015, 00:58:02 »
ReeDer, прикрепи файл с диалогами и английскую таблицу.
Вот посмотри. https://yadi.sk/d/SCqOmMj2hGkBB

Добавлено позже:
Тут можно немножко почитать.pcsx 1.5 with debugger

Кстати не могу заставить его работать. Все плагины засунул в него ,настроил.Вылетает сразу при загрузке диска. Я нашел pSX 1.13 с r3000 деббагером. Этот вроде пашет.

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8076
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #14 : 16 Июнь 2015, 07:11:24 »
Цитата: ReeDeR
Т.е Диалог похоже начиннается именно с Названия персонажа диалога 1da0.

А чего гадать то? Берёшь и проверяешь - ставишь брейк на чтение по предполагаемым адресам. Вариантов не много, так что быстро найдёшь с какого адреса стартует диалог.

Оффлайн ReeDeR

  • Пользователь
  • Сообщений: 42
  • Пол: Мужской
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #15 : 16 Июнь 2015, 10:24:46 »

А чего гадать то? Берёшь и проверяешь - ставишь брейк на чтение по предполагаемым адресам. Вариантов не много, так что быстро найдёшь с какого адреса стартует диалог.

Надо же всё так просто :lol: Делал такое. Пытался найти какието связи и чтото не получилось. Вот поставил бряк на чтение первого байта в диалоге.
Куда копать.


Оффлайн Mr2

  • Пользователь
  • Сообщений: 1592
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #16 : 16 Июнь 2015, 15:24:23 »
Кстати не могу заставить его работать. Все плагины засунул в него ,настроил.Вылетает сразу при загрузке диска.
Только с Digimon World PSX или с другими играми тоже?
В любом случае эмулятор модульный, пробуй другие плагины. Смени Internal HLE Bios на любой другой.
Вот поставил бряк на чтение первого байта в диалоге.
Куда копать.
По коду смотри откуда читается адрес первого символа строки.
Пример:
Бряк срабатывает на этой строчке кода.
LB v0, 0000(v1) ; v0 =первый символ строки, v1 =адрес первого символа строки.
Далее тебе нужно отлавливать загрузку поинтера в v1, она естественно идёт раньше загрузки самого символа строки.

Оффлайн ReeDeR

  • Пользователь
  • Сообщений: 42
  • Пол: Мужской
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #17 : 16 Июнь 2015, 16:41:59 »
Только с Digimon World PSX или с другими играми тоже?
В любом случае эмулятор модульный, пробуй другие плагины. Смени Internal HLE Bios на любой другой.По коду смотри откуда читается адрес первого символа строки.
Пример:
Бряк срабатывает на этой строчке кода.
LB v0, 0000(v1) ; v0 =первый символ строки, v1 =адрес первого символа строки.
Далее тебе нужно отлавливать загрузку поинтера в v1, она естественно идёт раньше загрузки самого символа строки.

Эмуль не работает. Видимо староват он. Может несовместимость, у меня w7x64. Биос сразу ставил нормальный а не хле.  С другими играми не пробывал. Другие то мне не нужны. Буду использвать pSX там есть дебаг хоть и не такой навороченный чтоли. Я помню что первая же интрукция у меня вылетает на NOP т.е там ничего.

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8076
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #18 : 16 Июнь 2015, 17:27:36 »
Цитата: ReeDeR
Эмуль не работает. Видимо староват он. Может несовместимость, у меня w7x64.

Работает он спокойно и на win 8.1 x64. Что-то у тебя там с системой. А дебаггер в PSX жутко неудобный и менее продвинутый.

Оффлайн ReeDeR

  • Пользователь
  • Сообщений: 42
  • Пол: Мужской
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #19 : 16 Июнь 2015, 20:56:35 »

Работает он спокойно и на win 8.1 x64. Что-то у тебя там с системой. А дебаггер в PSX жутко неудобный и менее продвинутый.
У тебя он есть? Может скинешь архивчик?

Оффлайн Leprikon

  • Пользователь
  • Сообщений: 844
  • Пол: Мужской
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #20 : 16 Июнь 2015, 22:44:44 »
Вот, у меня на вин7х64 все работает. биос сам кидай.

Оффлайн ReeDeR

  • Пользователь
  • Сообщений: 42
  • Пол: Мужской
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #21 : 18 Июнь 2015, 15:46:19 »
Заставил я работать это дебаггер.  :) Шиндовс дофига защищается. Вот окно после брейка диалога.

8015с108 - это адрес первого символа в диалоге на диске. В окне регистров v0 80158408 - это адрес куда записывается в память отображаемый диалог, точнее это заголовок диалога, имя того кто говорит.  A0 80133a2b адрес хранения на диске имени того кто говорит. А еще в регистрах s0 80158458 - Это адрес записи самих слов диалога в памяти во время отображения его. КУда копать дальше? Если я введу в окне дизасамблера адрес первого символа строки 8015с108 то там высвечивается иструкция LB v0 8267 (t4). 8267 в иструкции я смотрю это сам код первого символа,в игре это буква H.  Что это может значить? :neznayu:

Оффлайн Mefistotel

  • Emu-Land Team
  • Сообщений: 1509
  • Пол: Мужской
  • Генерал армии Хаоса
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #22 : 18 Июнь 2015, 15:47:36 »
Попробуй поменять байты в диапазоне h76090-7610F и посмотри, как это скажется на строке.
Похоже, на массив относительных указателей, но пока не ясен порядок вычисления.
Игры у меня нет и скачать не получится в ближайшее время.  :(

Оффлайн Mefistotel

  • Emu-Land Team
  • Сообщений: 1509
  • Пол: Мужской
  • Генерал армии Хаоса
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #23 : 18 Июнь 2015, 15:58:11 »
Хотя это не то. Твои указатели идут в самом начале файла. Посмотри, явно видна арифметическая прогрессия старших частей пойнтеров.

Оффлайн ReeDeR

  • Пользователь
  • Сообщений: 42
  • Пол: Мужской
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #24 : 18 Июнь 2015, 16:01:20 »
Хотя это не то. Твои указатели идут в самом начале файла. Посмотри, явно видна арифметическая прогрессия старших частей пойнтеров.
Очень рад что ты тоже взял лопату со мной копать :lol: Может ты видел что каждый диалоговой блок персонажей разделен в хексе кодом типо FE00 1900 0100 5000 1800 8A16 1900 1C00 5000. Так вот! В самом диске файлов DG несколько. Потому что игра мультиязыковая. Там еще французкий и испанский язык есть. Я сравнил эти байты с фр. версией и всё было одинаково кроме байтов 8A16. Я менял эти байты на другие с аналогичных блоков сверху и игра мне выдавала диалог другого перса! Но всеравно не понятно как игра выбирает какой именно диалог выдавать. Потому что эти диалоги выводятся в разное игровое время.

Ну и как их искать? Нулями корруптить?
« Последнее редактирование: 18 Июнь 2015, 16:10:29 от ReeDeR »

Оффлайн Mefistotel

  • Emu-Land Team
  • Сообщений: 1509
  • Пол: Мужской
  • Генерал армии Хаоса
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #25 : 18 Июнь 2015, 16:12:35 »
Надо бы спросить у кого-нибудь типо Vit-а или Lis-a/ Они на соньки хоть что-то переводят.
Я, честно говоря, только разбирал Ogre Battle, но там всё на поверхности лежит.

Оффлайн Mr2

  • Пользователь
  • Сообщений: 1592
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #26 : 18 Июнь 2015, 17:05:49 »
8015с108 - это адрес первого символа в диалоге на диске.
Тебе нужен адрес первого байта строки в оперативной памяти. Бряк должен сработать в момент вывода диалога в игре.

Судя по скрину бряк сработал на инструкции I>8000f19d0.(адрес инструкции написан под колонкой CP0)
$8000f19d0 = LW v1, 9360(gp) ; инструкция грузит поинтер из адреса $8014BF54
$80142bf4+9360 = $8014BF54 ;адрес поинтера строки диалога в оперативной памяти.

Оффлайн ReeDeR

  • Пользователь
  • Сообщений: 42
  • Пол: Мужской
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #27 : 18 Июнь 2015, 18:36:36 »
Тебе нужен адрес первого байта строки в оперативной памяти. Бряк должен сработать в момент вывода диалога в игре.

Судя по скрину бряк сработал на инструкции I>8000f19d0.(адрес инструкции написан под колонкой CP0)
$8000f19d0 = LW v1, 9360(gp) ; инструкция грузит поинтер из адреса $8014BF54
$80142bf4+9360 = $8014BF54 ;адрес поинтера строки диалога в оперативной памяти.

По этому адресу в памяти 00 ff 00 00 07 и тд :-\

Оффлайн Mr2

  • Пользователь
  • Сообщений: 1592
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #28 : 18 Июнь 2015, 20:30:05 »
По этому адресу в памяти 00 ff 00 00 07 и тд :-\
Посмотри по адресу $8013BF54, если там тоже нет поинтера выкладывай дамп "ram.bin".(делай его во время срабатывания бряка)
Перед дампом сделай папку "dump" в папке эмулятора.
« Последнее редактирование: 18 Июнь 2015, 20:37:08 от Mr2 »

Оффлайн ReeDeR

  • Пользователь
  • Сообщений: 42
  • Пол: Мужской
    • Просмотр профиля
Re: Перевод Digimon World PSX (PAL)
« Ответ #29 : 18 Июнь 2015, 23:22:27 »
Посмотри по адресу $8013BF54, если там тоже нет поинтера выкладывай дамп "ram.bin".(делай его во время срабатывания бряка)
Перед дампом сделай папку "dump" в папке эмулятора.


По 8013BF54 чтото есть. Там значения меняются даже в зависимости от диалога но изменения их никак не отобразились в игре. :wall: Хотя может не то менял. Вот дамп

https://yadi.sk/d/mPwFmsdzhLQzz