Help - Search - Member List - Calendar
Full Version: Перевод Layton загадочный город
GBX.ru > Карманные игровые системы > Nintendo DS > NDS: Программирование
Pages: 1, 2, 3, 4, 5, 6
Radiovolt
[Обновление от 06.12.2021]
QUOTE
Обновил перевод. Исправил отрапортованные здесь опечатки и неточности перевода.
Патч версии 1.1 тут: https://mega.nz/folder/5h8SnazA#vVGa6Mhi1_7rSYvA4DUu9Q


Cсылка на первого переводчика
http://honyaku-subs.ru/forums/viewtopic.php?f=34&t=266
Привет форумчане, такое дело, решил заняться переводом сей игры(и в планах всю DS серию перевести, т.к моя любимая серия, на буржуйском трудно играть, задолбался в словарь заглядывать). с известного форума хоньяку скачал исходники и почти весь переведенный текст игры(автор того перевода в 2010 заморозил проект по причине проблем со шрифтами) Шрифт я перерисовал и получился полный верхний и нижний регистр(поверх латиницы и спецсимволов).
Цитата с вышеупомянутого форума:"Ну, самый простой способ - записать кириллицу поверх латиницы, либо (если в шрифте есть место) поверх спец знаков и расширенной латиницы. Пишется программа, которая меняет кодировку текстовиков в соответствии с перерисованным шрифтом. Вот и всё."

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

На форуме хоньяку есть подобные проги(выкладывал кто-то), но там таблица символов другая, и я не знаю как ее заменить(там только ехе и ват файлы)
Пример шрифта
[attachmentid=32078] [attachmentid=32079] [attachmentid=32080]
таблица символов(пытался сделать по клаве для возможности печатать вручную без конвертера, но спецсимволы геморно вводятся(зажать alt нажать + и цифры кода символа отпустить alt))
[attachmentid=32081]
Пользую прогу Tinke(99% файлов рома потдерживает) для ковыряния рома и еще пару прог. Пока не разобрался где в игре шрифт font18.NFTR используется.
Заранее спасибо.

СТАТУС ПЕРЕВОДА
Текст для перевода (по отдельным папкам):
etext - диалоги - 2223/2223 lol2.gif
qtext - загадки - 1139/1139 lol2.gif
otext - бонусы - 239/239 lol2.gif
storytext - краткое описание истории - 220/220 lol2.gif
room - комнаты - 108/108 lol2.gif
itext - интро - 29/29 lol2.gif
htext - вещи - 30/30 lol2.gif
stext - система - 18/18 lol2.gif
wi-fi - вай фай - 23/23 lol2.gif
Текстур переведено - 256

смежная тема на эмуленде(сори за ссыль на конкурирующий форум smile.gif ):
http://www.emu-land.net/forum/index.php/topic,73227.0.html


Ну что, народ!
Релиз! lol2.gif lol.gif
Версия не последняя, прошу если найдёте ошибку, выкладывайте скриншоты с ошибками, Как соберём достаточно ошибок, обновим ром.


А, да, вот ссылка:
Архив с патчем и ридми(для тех кому сложно много качать)
https://cloud.mail.ru/public/8t2L/khPw4mFuV

Вот список людей участвовавших в работе над переводом:
Radiovolt - перевод, шрифты, редактирование, тестирование
webdriver - перевод, текстуры, шрифты, редактирование, тестирование
lupus - шрифты, инструментарий
w8m - инструментарий
Павел Судаков - тестирование
Minna - родоначальник проекта.
Metlob - инструментарий
Нашёлся человек, пожелавший материально отблагодарить smile.gif . Если найдутся вдруг ещё желающие, то вот данные:

Яндекс деньги:
410014203943041

WebMoney:
R708930008243
Z996384900770
E292328307425

Спасибо cool.gif lol.gif
kitt
QUOTE (Radiovolt @ Friday, 12 June 2015, 11:03)
Привет форумчане, такое дело, решил заняться переводом сей игры(и в плагах всю DS серию перевести).
*

привет. не надо. все равно бросишь.
Radiovolt
Не спорю, но мне 27 и я нигде не учусь, на работе куча свободного времени, вот решил пустить его на перевод.
Для начала хотя-бы первую соберу до кучи из переводов людей того форума.
Жалко бросать тот проект, люди все-таки помогали до трех ночи сидели, переводили.
А там посмотрим, я говорил только в планах, но планы могут изменится.
Одно скажу, если начну одну из следующих трех переводить, то не брошу пока не переведу. Только о сроках ничего не могу сказать.
oji
Интересное начинание, учитывая, что вы не разбираетесь в языках программирования, думаю, стоит остановиться на скриптах, чтобы можно было быстро вносить правки. Если я правильно понял, что вам нужно, то вот пример на PowerShell (powershell.exe), который в Windows 7-8 встроен в систему:

CODE
Clear-Host
$file = [System.IO.File]::ReadAllBytes("C:\temp\old.file")
$table = @((0x61,0x65), (226,115), (224,151),
  (0x62,0x66))
 
for ($i=0;$i -lt $file.Length;$i++) {

for ($j=0; $j -lt $table.Count; $j++) {
 if ($file[$i] -eq $table[$j][0]) {
  $file[$i] = $table[$j][1]
 }
}
}

[System.IO.File]::WriteAllBytes("C:\temp\new.file", $file)



Сначала код считывает содержимое файла c:\temp\old.file (можете подставить свой.

Затем вы задаёте таблицу соответствия в виде двухмерного массива, что искать и на что заменять; указывать можно в десятичном виде (например, 151 — это код, который соответствует символу — в ANSI кодировке), так и в шестнадцатеричном (0x61 соответствует латинской букве "a", 0x65 букве "e"). Каждый элемент записывается в круглых скобках: (0x60,121). Если элементов много, то после каждого, кроме последнего, ставится запятая: (226,115), (224,151)

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

По окончании, изменённый файл сохраняется под другим именем.

Если кодировка юникод, то код будет выглядеть иначе, т.к. каждому символу соответствуют два (или даже четыре) байта.
Radiovolt
Не совсем то, вот что мне необходимо, цитата с форума:"В прикреплённом архиве новый шрифт и утилита + текстовик, где отмечены замены.

Для перекодировки достаточно положить !txt_process.bat и txt_encoder.exe в папку с текстами, и запустить !txt_process.bat. Результат кодирования окажется в папке out." архив с того поста ниже
[attachmentid=32082]
В папке out появляются перекодированные файлы с теми же именами, что и оригинальные тхт файлы.
По сути программа готова, только в ней надо замениь таблицу соответствий(этого я и не знаю как сделать) может декоипилировать ехешник как-нибудь. т.е надо заменить буквыы руские(юникод) на эти:
FÇDULTÀÁPBÂRKVYJGHCNEAÃWXM
OÄÈÉSQZ fçduötàápbqrkvyjgh
cneaëwxmoäòósôz
(это, если не ошибаюсь, кодировка ascll(шестн.)
lps
Radiovolt, выложи свой шрифт, оригинал и изменённый скрипт, в котором хранятся строки, что ты выложил на скринах. Посмотрю.
Radiovolt
на скринах примеры обоих шрифтов
мои шрифты+таблица соответствий в ексел
[attachmentid=32083]
оригинальный шрифт
[attachmentid=32084]
Текст в игре не в скриптах, а в текстовых файлах тхт
вот скрин
[attachmentid=32085]
некоторый текст графикой нарисован

Буду очень признателен, Спасибо.
Radiovolt
есть еще один шрифт(их там три всего см. на скрине)
[attachmentid=32086]
называется font18.NFTR [attachmentid=32087] я пока не разобрался где он используется.
fontevent.NFTR это шрифт диалогов, названий головоломок и прочего текста
fontq.NFTR это шрифт текста описания головломок.
lps
Какая разница, как хранится текст. Скрипт - это общее название файлов с текстом игры. Мне нужен именно оригинальный текстовик и тот, который использован для показа русского алфавита.
Radiovolt
Дело в том, что я ввожу текст путем ввода либо копирования в текстовый файл прямо внутри рома не распаковывая его полностью. Вот ссыль на видео чтобы был понятен принцип работы с Tinke: http://www.youtube.com/watch?v=AAbt_xnMQVw
Вот извлек для вас оригинальный текстовик
[attachmentid=32089]
А вот извлек переведенный текстовик и был удивлен открыв его.
[attachmentid=32090]
в нем спецсимволы в треугольных скобках двойными символами записаны, хотя копировал туда в таком виде:
FÇDULTÀÁPBÂRKVYJGHCNEAÃWXM
OÄÈÉSQZ fçduötàápbqrkvyjgh
cneaëwxmoäòósôz,.():;-"
и выглядит как на скрине
[attachmentid=32085]
я прям в проге скопировал в текстовый файл набор символов и сохранил ром, результат на скринах в первом посте.
lps
Вот, это именно то, что нужно. Теперь понятно, как выводить диакритические символы. Вместо них вполне можно отрисовать полную кирилицу, оставив латиницу на своём месте.
Radiovolt
диакритические символы я пробовал перерисовывать, но некоторые символы(проблема шрифта) не вводятся либо вводятся вместо них другие.
Латиница по большому счету не нужна в игре, разве что в описании некоторых головоломок где перечисляются варианты(A,B,C,D,E,F)? но их вполне можно заменить русскими буквами(А,Б,В,Г,Д,Е).
Лучше оставить тот шрифт , что я перерисовал.
Как было указано на форуме хоньяку где-то в шрифте(или еще где) запрятана таблица ширин символов и если символ I перерисовать например в букву Ш, на экране появляется кусок буквы Ш шириной с букву I, у моего шрифта проблем с шириной нет.
fedor2
просто добавьте кириллицу http://romxhack.esforos.com/how-add-a-new-...intendo-ds-t278
lps
Radiovolt, во вложении тестовый шрифт (из моего другого проекта) с полным набором кирилицы вместо диакритических символов (в оригинале, некоторые не выводились, т.к. их просто не было в шрифте), на скрине видно, как он выглядит.
Таблица начинается так:
CODE

А=<`A>
Б=<'A>

От тебя мне нужна полная таблица в таком формате. Теоретически, составить её очень просто, мог бы и сам, но у меня tinke не хочет сохранять правленные текстовики внутри рома.
Radiovolt
Два вопроса:
1-Шрифт будет работать в лейтоне? Там целых три разных шрифта! Хотелось бы оригинальные шрифты оставить(файлы, не буквы)
2-мне составить таблицу соответствий на основе твоего шрифта? тогда мне нужен твой шрифт в оригинале.
P.S. чтобы тинки сохранял текст, я делаю так: то что я распаковал чтоб до текста добраться запаковываю кнопкой pack в обратном порядке. либо как вариант попробовать кнобку Change file(сам я ей не пробовал), а потом обязательно save rom жмакаю.
lps
1. Да, шрифт работает в игре, я проверял, даже кирилицу выводит (правда в хексе подменял, руками). Он в моём предыдущем сообщении вложен в архив. Это шрифт, которым выводятся диалоги.
2. Да, на основе моего шрифта таблицу. Остальные шрифты будут тоже с этой таблицей.

Твои действия:
1. Подкидываешь шрифт в ром и смотришь, как он выглядит (мельче оригинального).
2. Берёшь любой диалог и по порядку в него вбиваешь диакритические символы.
3. Проверяешь, что выводится вся кирилица.
4. Составляешь таблицу на всю кирилицу, в формате, указаном выше.

После этого я попрошу знакомого программиста написать софтину, которая автоматизирует прогон по этой таблице текста, доделаю остальные шрифты и подредактирую этот.
Radiovolt
А как я составлю таблицу если не знаю на месте какого диакритического символа русская буква нарисована.
примечание:
диакритические символы проблематично набирать на клаве
И еще вопрос: А чем не устраивают мои шрифты? Буквы все ровные и красивые в чем проблема? и таблицу приложил выше в exel сделанну
Кстати в твоем шрифте уже есть русские символы, разве у тебя нет таблицы соответствий?
lps
В помощь картинка из вложения.
Позиция "C0" - это кирилическая "А", в таблице будет выглядеть, как <`A>.
Далее - всё по порядку, кроме "Ё" и "ё", их пропускаем (добавим позже, если надо).
У самого, к сожалению, времени на это нет.
Твои шрифты не устраивают тем, что в них не полный набор символов. Лучше с самого начала разобраться с выводом любого текста, чтобы потом не было подводных камней. Кроме того, сохранить латиницу, как минимум, удобно. Представь ситуацию: латиницу запороли, перевели часть текста, она выводится нормально, читается на русском, вдруг встречается непереведённая строка "Енмвглт оа лшавуал. Олнаику ановипро рава!" Добавив нормальные шрифты, вместо неё мы увидим английский текст.
Radiovolt
О! Я все понял ща все сделаю, А можно все-таки Ёшки оставить, Чтобы был полный алфавит? Всеж вдруг в текстах и ёшки будут попадаться.
вот итог работы твоего шрифта
[attachmentid=32097]
Две проблемы:разные диакриты выводятся игрой одним и тем же символом(поэтому я и остановился на своем варианте, я много экспериментировал) и слишком большое межбуквенное расстояние между большинством символов.
Итог: Что дальше? таблицу соответствий не вижу смысла составлять пока эти проблемы не устраним.
Ну на крайняк мой шрифт используем, а то что непереведенные куски кракозябрами будут это ерунда.
lps
Отличный скрин, вижу всё и сразу.
1. Таблицу формата, что я просил всё равно сделай.
2. Ширину поправим
3. Ё, ё - будут

Главное, мне нужен этот скрин и таблица.
Radiovolt
ОК
Вот таблица
[attachmentid=32098]
Судя по символам складывается впечатление , что некоторые символы не опознались, хоть и вводил их по данному вами примеру, хотя может и все в порядке.
lps
Хорошо, перелопачу шрифт и чуток поправлю таблицу.
Radiovolt
Спасибо.

Я тут поковырялся в роме(пока lps шрифт делает) и вот что обнаружил. В папке BG(бекграунды) есть куча файлов-архивов, внутри которых bmp изображения. Так вот
с помощью тинки эти bmp файлы легко извлекаются и их можно редактировать. Однако,
обратно в arc архив отредактированный рисунок не могу засунуть, кнопка import попросту неактивна(см скрин)
[attachmentid=32100]
Никто не знает как решить эту проблему? Может есть другой способ работы с arc архивами? Вчера до двух ночи просидел, перебрав тонну утилиток, но так ни одна и не распаковала arc архив.
P.S. Автор начавший перевод на форуме хоньяку выкладывал переведенную графику, но к сожалению ссылка уже не работает, а с автором пока нет связи(писал на емейл, пока нет ответа). Автор смог какими-то утилитами перевести графику, не указал какими пользовался, может кто знает подобные утилиты, подскажите плиз?
Я думал пока идет работа над шрифтом я переводом графики потихоньку начну заниматься, но столкнулся с такой вот проблемкой.
lps
Вынимать и редактировать прогой crystaltyle.
Radiovolt
QUOTE (lps @ Saturday, 13 June 2015, 20:07)
Вынимать и редактировать прогой crystaltyle.
*

А запаковать обратно она может?
Я пробовал crystaltile2, но видимо недоразобрался. Есть теперь чем заняться lol.gif
Radiovolt
Выяснилось, что crystaltile2 с .arc файлами лейтона не дружит sad.gif .
.arc это вроде формат Nintendo ARChive. Утилитку для данного формата пока не нашел.
Хотя tinkey определяет его тип как image с параметрами: 8bbp(256 цветов),tile size 8,image pattern horizontal,ofset 0,num palette 0.
ХМ странно.

Вообще распаковать и отредактировать не проблема, но запихнуть обратно проблема sad.gif Думаю, пока-что с помощью tinkey буду доставать изображения, редактировать, а вопрос запаковки потом решим.
Radiovolt
Есть идея по шрифту. Ковырял японскую версию игры, там в шрифте есть русские символы. Подредактировал один текстовик прямо русскими буквами ввел привет. На эмуле проверил и о чудо на экране вижу слово привет. Попробовал этот шрифт переселить в английскую версию игры и тут появилась проблема. Игра латиницу выводит, а вместо русских букв иероглифы(реально иероглифы). Может это как-то можно использовать?
Radiovolt
Вопрос с графикой из папки bg решен. jump.gif Однако теперь тот же вопрос по анимации(папка ANI). Формат вроде тоже .arc, но способ сжатия другой. Будем разбираться дальше.
lps
QUOTE (Radiovolt @ Tuesday, 16 June 2015, 11:26)
Есть идея по шрифту. Ковырял японскую версию игры, там в шрифте есть русские символы. Подредактировал один текстовик прямо русскими буквами ввел привет. На эмуле проверил и о чудо на экране вижу слово привет. Попробовал этот шрифт переселить в английскую версию игры и тут появилась проблема. Игра латиницу выводит, а вместо русских букв иероглифы(реально иероглифы).  Может это как-то можно использовать?
*

Как японская версия называется правильно?
Radiovolt
Я ее тупо для эксперимента скачал smile.gif
4764 - Layton Kyouju to Fushigi na Machi v1.2 (J)(BAHAMUT)
Если нужно, вот этот шрифт.
[attachmentid=32153]
lps
Никак не найду, откуда ширина символов берётся, но точно не из самого шрифта hmm.gif
Radiovolt
Так и есть. На форуме хоньяку об этом все писали. Я поэтому и пропускал в своем шрифте буквы i и l т.к. они шириной всего 3 пиксела, изза этого отображался только кусок буквы sad.gif .
Кстати у шрифта японской версии когда я попробовал в условии задачи слово привет написать. оно вывелось тоже, но некоторые расстояния между буквами соответствовали расстояниям стоящих ранее иероглифов. Так что да, где-то в скриптах запрятана информация о ширине символов.
Я уж подумал, что может всетаки остановимся на моем варианте шрифта, проблем с шириной нет. А то что латиницы нет, на мой взгляд, не сильно критично.
lps
Ещё покопаюсь ещё, если ничего не получится, то останоаимся на твоём.
Radiovolt
QUOTE (lps @ Tuesday, 16 June 2015, 22:36)
Ещё покопаюсь ещё, если ничего не получится, то останоаимся на твоём.
*

Ок smile.gif ежели чего, пиши.
Я перевожу доступную графику.
Radiovolt
Перевожу графику cool.gif . Сижу в ступоре. sleepy.gif Как максимально близко по смыслу и желательно коротко перевести слова:
PICARAT(s)-вообще перевода нет umnik2.gif , думаю так и оставить "пикарат"
GIZMO(s)- дословно штуковина(ы), вещица(ы), пока-что остановился на вещице, идей просто нет sad.gif .
hint-coin-- hint это подсказка(сократил до "подск."вроде коротко и понятно), hint coin- дословно, подсказочная монета(жетон), тут я пришел к выводу, что проще просто "жетон" или "монета" обозвать.
Есть у кого-нибудь какие-нибудь идеи по этому поводу?
Sodik
QUOTE (Radiovolt @ Friday, 12 June 2015, 11:17)
Не спорю, но мне 27 и ...
*

Мне 27 и я бородат! lol.gif
Radiovolt
Я сделал открытие lol.gif . Нашел еще три шрифта в нашей игре lol.gif может ихние таблицы ширин используются игрой?
Вот скрин:
[attachmentid=32160]
Уважаемый lps может это вам поможет?
Архивчик с этими шрифтами:
[attachmentid=32161]
Надеюсь здесь ширина сиволов спрятана. lol.gif
Кстати тут еще есть странный файлик fnt.bin, название подозрительно напоминает сокращение слова font. huh.gif как вариант тоже может быть?
скрин:
[attachmentid=32162]
и файлик на всяк пож.:
[attachmentid=32163]
Посмотрите, пожалуйста smile.gif

P.S. Доступную графику уже процентов 80 перевел lol.gif
Radiovolt
Ну вот доступная графика переведена lol.gif . На очереди текст...... blink.gif
Нихера се тут текстаblink.gif ! Ну да ладно, потихоньку переведу smile.gif в шею никто не гонит lol.gif думаю это дело займет от месяца до двух cool.gif
lps
С ширинами это не поможет, придётся использовать твой вариант шрифта.
Прога для перекодировки есть, пробовал - работает, но с ней много монотонной работы будет, нужно модифицировать, чтобы файлы пачками по таблице перегоняла, а не по одному.
Я через пару часов вылетаю в Питер, поэтому до вторника буду без инета.
Ты пока, свою таблицу из excell приведи в тот вид, который я просил раньше.
Radiovolt
Ок. Все сделаю, спасибо.
Вот сделал:
[attachmentid=32179]
Кстати, перерисовал шрифт, сделал его тёплым и консольным smile.gif .
скрин:
[attachmentid=32180]
lps
Вот прога. Пока через одно место, но конвертит.
https://dl.dropboxusercontent.com/u/5797555...ayton_parser.7z
инструкция в файле _readme!.txt
Батник написан под файлы в папке itext, при необходимости его можно подредактировать.
Надеюсь, вскоре, прогу получится допилить и она сама будет прогонять файлы пакетами.
Radiovolt
QUOTE (lps @ Wednesday, 24 June 2015, 11:27)
Вот прога. Пока через одно место, но конвертит.
https://dl.dropboxusercontent.com/u/5797555...ayton_parser.7z
инструкция в файле _readme!.txt
Батник написан под файлы в папке itext, при необходимости его можно подредактировать.
Надеюсь, вскоре, прогу получится допилить и она сама будет прогонять файлы пакетами.
*


lol2.gif Спасибо! wink.gif Думаю демка к концу недели будет готова. lol.gif
lps
Да, вторая пачка шрифтов, что ты нашёл, тоже нуждается в замене. По крайней мере, один из них, используется во вступительном тексте.
Ещё, я бы рекомендовал брать за основу USA версию, там текст лежит открыто и не зажат в контейнер, это существенно упростит работу.
Radiovolt
Чуть потестил, вот косяки:
вместо Е кодирует У (например, вместо "Естественно" , выводит "Устественно")
вместо э кодирует Э.
А так вроде норм. кстати файлы с itext пакетно конвертит.
Вот скрины:
[attachmentid=32210][attachmentid=32211]
Radiovolt
Вступительный текст не использует шрифт, это та самая анимация в формате .arc. Я в папке ani нашёл.
По поводу второй пачки шрифтов, путём экспериментов выяснил, что пока что они не используются.
tinke прекрасно меняет текстовики и пачками и по одному прям в архивах wink.gif
ещё скрины:
lps
Поправлю таблицу.
Radiovolt
QUOTE (lps @ Wednesday, 24 June 2015, 20:08)
Поправлю таблицу.
*

Таблица внутри exe файла? А на каком языке программируешь?
lps
Таблица в файле tab.txt, я же писал об этом в ридми.
Выглядит так:
CODE
c0 46
c1 3C2C433E
c2 44
c3 55
c4 4C

Первая колонка - это hex значения кириллицы, вторая - то, на что менять, тоже hex.
c1 - А
c2 - Б
и т.д.
a8, b8 в конце таблицы - это Ёё.

Как исправить:
Открой tab.txt в блокноте и замени строку
CODE
c5 45

на
CODE
c5 54

и
CODE
fd 53

на
CODE
fd 73


В шрифте что-то надо сделать с буквами "н", "я", они сливаются с другими символами. Скинь мне в личку тестовый ром со вставленным текстом и шрифтом.
Radiovolt
Вот держи
[url=упс тыж в личку просил smile.gif[/url]
Я сам ещё попробую поковыряться smile.gif
lps
Чем ты редактировал графику из папки bg?
Думаю, переделать клавиатуру ввода имени, сделать, как на компьютерной. Таблицу ширины латиницы я нашёл (вроде как). Таблицу для обработки текста тоже чуток поправим.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.