Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - ReeDeR

Страницы: [1] 2 Далее
1
Переводы игр / Перевод Digimon World PSX (PAL)
« : 24 Апрель 2016, 20:10:30 »
А как вместить столько букв?  :lol: Дигимонами проще называть. Да и вообще во всех фан сайтах люди дигимонами называют. Даже в вики так.
http://ru.digimon.wikia.com/wiki/%D0%94%D0%B8%D0%B3%D0%B8%D0%BC%D0%BE%D0%BD

2
Переводы игр / Перевод Digimon World PSX (PAL)
« : 24 Апрель 2016, 20:03:52 »
Ого а тему то подняли! Выложу русифицированную титлу. ^_^

3
Ромхакинг / Tim2View by [Lab 313]
« : 24 Апрель 2016, 19:57:00 »
Если не переводить в ргб то и слои не станут доступны. Эффекты как делать? Я рисую в ргб режиме, готовые с картинки цвета использую. А потом как обратно перейти в режим индексированных цветов и подставить палитру оригинала.  И фотошоп подменит цвета. Поом сохранаешь в png и png вставляешь в tim.

4
Ромхакинг / Tim2View by [Lab 313]
« : 24 Апрель 2016, 19:42:57 »
Если бы он был нормальным, не было бы Tim2View.
Если нужно, именно в том формате, в котором оно хранится в тиме, или отдельном .clt, я могу сделать. Только цель? Всё равно фотошоп .clt не понимает.
Да clt не нужно наверно. Вот фотошоп act. понимает. Я просто с этими палитрами намучился. Не мог понять почему у меня картинки не отображаются или цвета кривятся. Потом понял что нужно при редактировании использовать ту палитру цветов те что идут в оригинальной картинке.  Может для разных игр по разному.

5
Ромхакинг / Tim2View by [Lab 313]
« : 24 Апрель 2016, 19:24:45 »
Ну да я фотошопом выдираю палитру из оригинала png. Можно и так конечно.

6
Ромхакинг / Tim2View by [Lab 313]
« : 24 Апрель 2016, 19:06:03 »
Сделайте позязя функцию выдирания палитры CLUT в отдельный файл. Вроде .clt или .alt. Чтобы можно было выдирать цвета из тим и вставлять эту палитру в фотошоп например.

7
Чтобы делать нормальный вывод текста нужно разбираться со скриптом.
Так это и есть скрипт.

Поинтеры на скрипт грузятся инструкцией I>800ee004 в регистр v0 из адреса в s0+2:
Затем поинтер v0 складывается с базовым адресом s1 инструкцией I>800ee00c, и в регистре v0 мы получаем реальный адрес скрипта.
Пример:
$8015abf4 базовый адрес для диалогов двух покемонов с которыми можно поговорить в начале игры:
Yuraman "OK, I'll explain to you the surrounding of this city."
Tanemon "Wold you like some Meat?"

Скрипт диалога Yuraman индексируется двумя байтами из адреса $8015ac20  =0x1620
Скрипт диалога Tanemon индексируется двумя байтами из адреса $8015ac1c  =0x0b68

Базовый адрес $8015abf4+0x1620  =реальный адрес скрипта $8015c214 Yuraman "OK, I'll explain to you the surrounding of this city."
Базовый адрес $8015abf4+0x0b68  =реальный адрес скрипта $8015b75c Tanemon "Wold you like some Meat?"

Чтобы отслеживать код загрузки поинтера, в дебаггере напротив "PC" впиши 800ee004 и нажми кнопку "set".

Сами поинтеры находятся в файле со скриптом.
Yuraman  $8015ac20 f$7782c  =0x1620
Tanemon  $8015ac1c f$77828  =0x0b68
$ - адрес поинтера на скрипт в оперативной памяти
f$ - адрес поинтера на скрипт в файле DG0.SCN.

Для проверки в файле DG0.SCN поменял поинтеры на скрипт местами.
Yuraman f$7782c =0x0b68
Tanemon f$77828 =0x1620
И покемоны поменялись диалогами.

Mr2,
В пух и прах :thumbup:

8

Пираты практически никогда не заморачивались и не копали глубоко. Если места для переведённого текста недостаточно было, то они либо впихивали как есть, либо урезали текст так,чтобы он влез в отведённое для него пространство (при этом теряя смысл и т.д.). Кудос так вообще ложил на всё. Ни палитра, ни форматирование текста, ни тем более поинтеры его не заботили.

А касаемо отсутствия поинтеров на определённые диалоги, то вспоминается ситуация с Vandal Hearts I, где диалоги сидели в отдельных файлах. Там реплики персонажей разделялись управляющими байтами, а сама игра ориентировалась лишь на их количество - то есть считала количество управляемых байтов и исходя из этого выводила нужный диалог. По мне, так очень толковый и удобный способ.

В дигимонах вроде всё сюжетные диалоги в одном файле. Но в этом файле не только диалоги. А даже некоторые действия, переходы между локациями  ,  движения персонажей. Т.е там все сценические действия которые проиходят в сюжете игры. Ну не зря у файла расширение SCN - SCENE.

9
Покопал я код, похоже нет в игре никаких поинтеров(в игровых диалогах), всё работает по скрипту.
Далее нужно изучать скрипт и эксперементировать. ReeDeR, в каком редакторе нормально отображается игровой текст?

Что значит нормально? В принципе в любом. Если в нем можно кодировку shift jis ставить. Или возьми редактор и вставь таблицу которую я кидал. Я вот использую редактор в CrystalTile2 , там и кодировка есть такая и таблицу можно вставить если надо.
Цитата
Покопал я код, похоже нет в игре никаких поинтеров(в игровых диалогах), всё работает по скрипту.
Мне на одном испанском форуме тоже так сказали. Текст имеет вид компилированного скрипта и поинтеры не легко найти. Перед каждым блоком теста идёт скрипт его видно.
Таблицу прикрепил если надо.

10
Поверь, есть много других интересных дел. :facepalm:
Я тебя не заставляю отрываться от любимых интересных дел. Отказал помощь ,спасибо. Просто я подумал что дойдём до конечного результата. :-\

11
Если тут почитаешь - будешь знать всё.
Вот тут кое что по русски.
А оно нам надо? :lol:
Мне его быстрей самому найти, чем писать 10 страниц на форуме. :cool:

Люди совсем обленились. Уже нажимать на кнопочки, лень. :lol:

12
Не имеет смыла дебажить код, если ты не знаешь инструкций R3000A.
Вся тема превратится в Санта Барбару. ;)
Да. Но тебе нужна не она, а инструкции перед ней, чтобы понять  как в v0 получился адрес 8015C104.
Ну вот теперь несколько знаю. В будущем может кому пригодится эта тема. ^_^

Добавлено позже:
Не имеет смыла дебажить код, если ты не знаешь инструкций R3000A.
Вся тема превратится в Санта Барбару. ;)
Да. Но тебе нужна не она, а инструкции перед ней, чтобы понять  как в v0 получился адрес 8015C104.

В общем суть поиска поинтеров через дебаггер я разжевал, а дальше эксперементы и подъём скила на новый уровень, удачи. :debile:
Погоди мы поитер то нашли? :blush:

13
Да, поинтер строки $8015C104 = "Have you heard?".
Ну вот.Поставил я бряк на V0=8015C104.  Теперь тут сработало на новой инструкции. Я такой еще не видел ^_^ 800ee5f0 ADDI v0,v0 0002 Я так понял она складывает 8015C104 +0002? и записывает это в 8013bf54. Да теперь по этому адресу адрес 80 15 C1 02.

14
А он не сработал. 80142bf4 это gp , v0 же не будет равен gp. :neznayu: V0  может равен 8015с104?

15

Указатель это полный адрес 0x8015c104, просто в дампе он перевёрнут. Читай про порядок байт.
А-а-а, вон оно чё. Тогда указатель строки будет 0x8015c104 а не 0x8015c108, как ты писал ранее " [1ba0] [1a00] Текст диалога",
перед строкой 4 командных байта. Теперь тебе нужно узнать кто пишет указатель в адрес $8013BF54, для этого ставим бряк:
write $адрес  =0x значение
write $8013BF54  =0x8015c104
Бряк сработает когда в наш адрес впишется поинтер строки, далее по коду отслеживаем откуда грузится поинтер перед записью.
В дампе что ты мне дал поинтер $8015c104 только один, скорее всего он создаётся а не копируется.

Тю блин точно. Это же адрес начала строки получился :wacko: Короче поставил я запись на чтение значения в адресе 8013BF54. Сработало на инструкции 800ee5f0 SW v0, 9360 (gp) .Инструкция Store word как работает?

Если поинтер создаётся значит его не существует в постоянном виде? И игра его создаёт сама находу? Это же капец :'(

16

Там то что ты искал. 0x04c11580 переворачиваем и получаем указатель который вызвал бряк 0x8015c104.(только у тебя там был $8015C108)
В любом случае, в дампе вобще нет строчки "Have you heard?".
По адресу $8015C108 какието другие данные.(.g.......@.......@)

Получается указатель в файле с диалогами указатель будет как с1 04? Ладно я завтра попроверяю всё это. А насчет строчки, ты таблицу то примени которую я вложил. Или поставь кодировку shift-jis , если есть в редакторе такая. И всё увидишь.

17
Посмотри по адресу $8013BF54, если там тоже нет поинтера выкладывай дамп "ram.bin".(делай его во время срабатывания бряка)
Перед дампом сделай папку "dump" в папке эмулятора.


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

https://yadi.sk/d/mPwFmsdzhLQzz

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

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

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

19
Хотя это не то. Твои указатели идут в самом начале файла. Посмотри, явно видна арифметическая прогрессия старших частей пойнтеров.
Очень рад что ты тоже взял лопату со мной копать :lol: Может ты видел что каждый диалоговой блок персонажей разделен в хексе кодом типо FE00 1900 0100 5000 1800 8A16 1900 1C00 5000. Так вот! В самом диске файлов DG несколько. Потому что игра мультиязыковая. Там еще французкий и испанский язык есть. Я сравнил эти байты с фр. версией и всё было одинаково кроме байтов 8A16. Я менял эти байты на другие с аналогичных блоков сверху и игра мне выдавала диалог другого перса! Но всеравно не понятно как игра выбирает какой именно диалог выдавать. Потому что эти диалоги выводятся в разное игровое время.

Ну и как их искать? Нулями корруптить?

20
Заставил я работать это дебаггер.  :) Шиндовс дофига защищается. Вот окно после брейка диалога.

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

21

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

22
Только с Digimon World PSX или с другими играми тоже?
В любом случае эмулятор модульный, пробуй другие плагины. Смени Internal HLE Bios на любой другой.По коду смотри откуда читается адрес первого символа строки.
Пример:
Бряк срабатывает на этой строчке кода.
LB v0, 0000(v1) ; v0 =первый символ строки, v1 =адрес первого символа строки.
Далее тебе нужно отлавливать загрузку поинтера в v1, она естественно идёт раньше загрузки самого символа строки.

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

23

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

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


24
ReeDer, прикрепи файл с диалогами и английскую таблицу.
Вот посмотри. https://yadi.sk/d/SCqOmMj2hGkBB

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

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

25
Есть у кого идеи как может работать игровой скрипт в диалогах? Какие указатели выводят текст. Нужно изменить диалоговое пространство. Но изменяя длину слов увеличится длина диалога и стартовые коды диалогов сместятся и не будут работать.  Скрипт диалога выглядит так

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

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



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



26
ReeDeR,
большие буквы - соседи "Ы" - местами перепутаны.
да :lol: И шрифт надо подправить. Но то всё фигня, надо разобраться с диалогами.

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


Ты можешь подробнее о бряках?Какой дебаггер использовать?Вот у уменя эмуль Psx 1.13 там есть отладчик вроде.

27
Отличная игра. когда был еще сопляком, проходил ее вместе с друзьями, фана было хоть отбавляй. Афтар, оч прошу, переводи лучше USA версию. Все-таки 50fps не тру.
Так же могу дать наводку на хакера, который разберет тебе игру под ключ. Только он за спасибо не работает. Обойдется в районе 4к. :)
Нет юса не катит.Там символов мало.В идеале вообще нужно японку переводить.

28
Он еще тут однажды засветился, кошмарище.
http://www.emu-land.net/forum/index.php/topic,65832.msg1044803.html#msg1044803
Да не надо мне показывать :) Я этот перевод знаю и проходил эту игру с этим переводом. Весьма забавный перевод на самом деле. Много улыбок доставили корявые словечки. Игра казалась сложная и я часто не знал куда идти и что делать.А всё потому что я просто не мог понять что мне говорят персонажи.Когда персонаж говорит чтото типо "ИД В К С ТАМ ТЫ НАЙД ЦВ " :lol: Вот я и решил исправить ситуацию.И как видишь менюшки я уже подправил.Так же переведены названия локаций ,Вещи ,дигимоны,техники.Дальше нужно браться за основное,диалоги то бишь.И тут проблемс.

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


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




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


30
HoRRoR Нужна твоя помощь. Как найти и рассчитать поинтеры в играх для гба (в именно в этой игре)? И еще у меня не получилось вместить в шрифт  все русские заглавные и строчные буквы . В шрифте вроде место есть, там нарисованы неиспользуемые символы , им присвоен код . Но видимо они как бы пустые , в игре при замене кода какой нибудь буквы на код этих символов они просто не отображаются. Зачем тогда они незнаю.

Страницы: [1] 2 Далее