| Разработка и ромхакинг > Переводы игр |
| [NES] Haja no Fuuin - как перевести ром с японского? |
| (1/5) > >> |
| Ojisun:
Здравствуйте. Меня интересует игра Haja no Fuuin это RPG версия для Famicom. Хотелось бы для удобства игры перевести хотя бы меню во время битвы и меню продажи предметов и т.д. в городах. Сначала я переводил через гугл переводчик , но потом я нашёл сайт где все почти фразы из игры переведены на английский: https://docs.google.com/spreadsheets/d/1Qa-RjytH7HaTS1_W4-xDFdeqPSY3NjI4-HVF4iiZH7I/edit?pli=1#gid=0 Сначала я перерисовывал буквы чтобы выходили близкие по смыслу слова , но в итоге получились надписи страшные из пираток нулевых годов для дримкаста.))) Я решил разобраться как делают норм переводы и вот загвостка в HEX редакторах не отображается японский текст, я вижу кучу букв кирилицей что делать? :neznayu: На сайтах японские буквы и иероглифы читабельны и норм видны а в самих редакторах не понятка. Помогите, хотелось бы перевести хотя бы несколько меню. PS. Я научился перерисовывать шрифты и графику(спрайты) благо там всё в открытом виде. На третьем скрине перерисован замок и фишка игрока , вместо игры шлемом теперь по карте ходит человечек. :) Пример: |
| bugmenot:
Версия для Sega Master System выходила на английском https://www.emu-land.net/consoles/sms/roms?act=showonly&id=204 |
| Ojisun:
Это я знаю :) Они отличаются, на сеге покрасивее будет. У меня трабла с японскими буквами , они не отображаются в редакторах! :neznayu: |
| SeregaZ:
по идее они и недолжны. виндовс жеж русский :) японские шрифты здесь, я бы сказал, отсутствуют. а второе - наврядли они там прям буква к букве. думаю они там нарисованы в виде графики. то есть не тайл-буква, а несколько тайлов = какое-то слово. хотя если буква к букве - то класс :) в японском вроде как два раза по 46 букв, а значит не придется сидеть и плеваться, как с английским, выкручиваясь используя ноль как букву О, как Ч и 4, как 8 и В и так далее и тому подобное... |
| Ojisun:
Да, ну я же вижу японские надписи на сайтах и в названии видео на ютубе например. Вы правы , что было написано тайлами я перерисовал :lol: В игре использованы две азбуки , а это дофига букв и весь русский алфавит влезет 2 раза :wow: Чего же я и позарился переводить. :) Я могу читать и хирагану и катакану и переводить через гугл переводчик. Конечно перевод будет ещё тот но близкий по смыслу. Хотя бы меню перевести нормально! Как же переводят ромы с японского на инглиш тогда если не отображаются буквы в хексах? Ладно версия этой игры есть на мастер систем ну есть куча рпг и стратегий для фамиком в которых я хотел бы разобраться и перевести хоть что то :( |
| Sharpnull:
--- Цитата: Ojisun от 25 Июля 2023, 19:50:28 ---Я решил разобраться как делают норм переводы и вот загвостка в HEX редакторах не отображается японский текст, я вижу кучу букв кирилицей что делать? --- Конец цитаты --- Нужно смотреть код, переводчики используют Kruptar, но код всё равно нужно уметь разбирать, а скорее всего придётся изменять. В Mesen в PPU Viewer можно посмотреть индексы тайлов и поставить breakpoint (точку остановки, можно добавить условие value==$xx, где xx - индекс тайла) на запись конкретного индекса тайла, потом в коде видно откуда читается индекс и уже перехватывать запись туда. В данной игре, например, первый диалог, наверху индексы тайлов 60 83 70 69 36 98, в отладчики видим запись из RAM $3DC, туда запись из кода CPU $E853, выше вызов JSR $E9BC, где из изначального значения символа получился индекс тайла. Подпрограмма $E9BC вычитает 0x10 и использует замену по таблице с CPU $E9F0, там ещё какие-то специальные символы, но изначальные значения мы видим с RAM $3A0: 6D 90 7D 76 37 10, которые и превращаются в 60 83 70 69 36 98. В Memory Tools в Mesen можно найти 6D 90 7D 76 37 10 в роме, их несколько, но последние прочтённые байты подсвечиваются и значит этот текст хранится с PRG $9A28. Также находим для текста рядом с ножиком и бронёй: было 6A 1B 9E 76 > индексы тайлов 5D 58 62 69. Вставляем кириллицу в CHR ROM и меняем таблицу как удобно, избегая специальных символов. UPD: Исправил опечатки. UPD2: --- Цитата: Ojisun от 25 Июля 2023, 22:05:22 ---Как же переводят ромы с японского на инглиш тогда если не отображаются буквы в хексах? --- Конец цитаты --- Программы как Kruptar. Я бы написал скрипт на Python, который сохраняет текст в текстовый файл. |
| Rumata:
Там есть и графика и текст. А вот кодировка абсолютно своя. |
| Ojisun:
--- Цитата: Sharpnull от 25 Июля 2023, 22:09:03 --- В Mesen в PPU Viewer можно посмотреть индексы тайлов и поставить breakpoint UPD: Исправил опечатки. UPD2:Программы как Kruptar. Я бы написал скрипт на Python, который сохраняет текст в текстовый файл. --- Конец цитаты --- Я уже выписал все индексы букв. У меня эмуль fceux.Счас надо переварить всё что вы написали :lol: Хорошо бы конечно иметь читабельный текст и отыскивать по фразам, но увы видит хекс только инглишь. [/quote] --- Цитата: Rumata от 25 Июля 2023, 22:15:03 ---Там есть и графика и текст. (Ссылка на вложение) А вот кодировка абсолютно своя. --- Конец цитаты --- Да да я знаю. Первая фраза тайлами Тут что -то есть. вторая тут кто -то есть. Звучало скучно и я написал : Я кого-то вижу. |
| SeregaZ:
под кодировкой должно пониматся примерно такое: символ_из_хекса = номер_тайла и предположил бы поискать то место, где 0, 1, 2, 3, 4... полагаю там в хексе значения совпадают. |
| Ojisun:
--- Цитата: SeregaZ от 25 Июля 2023, 22:48:00 ---под кодировкой должно пониматся примерно такое: символ_из_хекса = номер_тайла и предположил бы поискать то место, где 0, 1, 2, 3, 4... полагаю там в хексе значения совпадают. --- Конец цитаты --- Но я не знаю в какой строке в хексе искать ЭТО слово. Например надпись возле ножика и брони это имя персонажа 5D 58 62 69 индексы букв. Но как мне это в хексе найти?В какой строке? Если игра на инглише вводишь слово в хексе и он находит его и в какой оно строке, а там потом колдуй переписывай эти цифры под стать перерисованному алфавиту. А вот как мне найти это имя я не понимаю , сори я не всё догнал из поста выше , что это за значения RAM $3DC CPU $E853, JSR $E9BC? :neznayu: |
| SeregaZ:
даааа не слушай их :) они из высшей касты... на своем каком-то языке разговаривают :))) по поводу индекса буквы - я бы сказал это не индекс, а номер в таблице. сейчас дай собразить... по поводу имени персонажа: 5D 58 62 69 а есть начертание японского из этих 4 букв? вобще 3 часа ночи... мне давно спать пора. но я попробую посмотреть. а стоять. не посмотрю. я думал речь про мегадрайв :) |
| Ojisun:
--- Цитата: SeregaZ от 26 Июля 2023, 00:06:51 ---даааа не слушай их :) они из высшей касты... на своем каком-то языке разговаривают :))) по поводу индекса буквы - я бы сказал это не индекс, а номер в таблице. сейчас дай собразить... по поводу имени персонажа: 5D 58 62 69 а есть начертание японского из этих 4 букв? вобще 3 часа ночи... мне давно спать пора. но я попробую посмотреть. а стоять. не посмотрю. я думал речь про мегадрайв :) --- Конец цитаты --- Да не всё правильно говорят, просто это я не сразу догоняю :lol: Всё это можно посмотреть через эмуль я понимаю индексы букв и значение в Tools т.д. Ну я не могу найти слово имя персонажа из кусков кракозябры то есть по цифрам в хексе открывает такие символы ] X d i но в какой строчке это слово поиск не находит такое ваще. :neznayu: 5D 58 62 69 это индексы букв в имени персонажа , это длинное тире не буква это для протяжного звука символ кароче правила джапы языка надо читать я учу по книжкам джапу :) . Кароче его зовут Агасу но надо 4 буквы делать на пять места нету))))) Можно просто назвать ВОИН. Его имя вот на скрине напротив ножика и доспехов написано. Дальше 200 переводиться слово вверху как выносливость можно написать жизнь рядом опыт так и оставить там 4 буквы. Что король трындит я не перевёл типо зло какое то зародилось в нашем королевстве бла бла бла!!! Феечка у героя над плечом говорит шагай шагай :lol: |
| SeregaZ:
пусть станет Агат делов то :) так. это кароче не то... так как нужна таблица, а не номер тайла. хотя подсказка может быть в порядке букв. они на этой картинке идут как в алфавите друг за другом? или все-же рандомно разбросаны? хотя меня смущает что 1,2,3... в два ряда написаны, вместо 1234567890... Добавлено позже: ахаха, чтобы запустить этот галимый эмулятор... надо скачать всякие нетфреймворки чуть ли не на 200 метров. увы. до эксперементальной части я не дошел. свалил спать кароче. кто афтор этого месена - гори в аду. каким это надо быть упоротым, чтоб лепить свои поделки на сраных фреймворках, которые скорей всего начнут матерится на всяких виндовс хп и прочих. Добавлено позже: замысел был в том, чтобы найти таблицу, загрузить её, после составляя нужное имя или слово, кликая мышкой, чтобы формировалась текстовая хекс строчка для поиска в роме. сейчас это номер тайла для примера. но ежели найдется таблица - это мы легко исправим. *старое вложение удалил |
| Sharpnull:
--- Цитата: Ojisun от 25 Июля 2023, 23:54:53 ---А вот как мне найти это имя я не понимаю , сори я не всё догнал из поста выше , что это за значения RAM $3DC CPU $E853, JSR $E9BC? --- Конец цитаты --- RAM - ОЗУ, CPU - пространство процессора (данные ROM обычно $8000-FFFF), JSR - инструкция вызова подпрограммы (функция), PRG - это код и данные без CHR (графики) и заголовка рома. --- Цитата: Ojisun от 25 Июля 2023, 23:54:53 ---Например надпись возле ножика и брони это имя персонажа 5D 58 62 69 индексы букв. Но как мне это в хексе найти? --- Конец цитаты --- Я это пытался объяснить, в роме есть изначальный байт символа, от него вычитается 0x10 (16), байт заменяется по таблице и получается индекс тайла, который у вас есть. Таблица в файле с 1EA00 (PRG $1E9F0) размером 174 байта: --- Код: ---98 0B 0C 0D 0E 0F 1B 1C 1D 1E 1F 58 5B 5C 9C 06 07 08 09 0A 16 17 18 19 1A 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 54 55 56 57 16 17 18 19 1A 24 25 26 27 28 29 2A 2B 2C 2D 37 38 39 3A 3B 37 38 39 3A 3B 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 80 81 82 83 84 85 86 87 90 91 92 93 94 95 96 8C 5F 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 76 77 78 7A 76 77 78 7A 97 BC AB AC 8D 9D 8A 9A 8B --- Конец кода --- Если в роме байт символа 0x10, то 0x10 - 0x10 = 0x00, значит по таблице = 0x98, у ножика "6A - 10 = 5A", находим порядковый байт 0x5A в таблице с нуля = 5D. Проблема в том, что таблица имеет повторы, значит обратное преобразование не всегда верно. Можно сделать так, открываете в Mesen Debugger, в списке Breakpoints > ПКМ > Add: CPU Memory, [v] Execution, Specific: E870. Теперь отладчик останавливается после декодирования символов, но до записи на экране (можете проматывать время назад для удобства), для продолжения F5, для отключения остановок снять галочку в списке Breakpoints. Когда будет остановка, смотрите в Debugger выше жёлтой строки CPX $AA, после = размер строки текста, например = $0A, в окне Memory Tools с выбранным CPU Memory смотрите байты с $3A0, например, 44 28 2A 3D 33 47 32 61 45 4B, это байты в роме, а индексы тайлов с $3DC, например, 47 1A 25 3C 2E 4A 2D 38 48 4E, т. е. то, что вы знаете и что вам нужно превратить в байты в роме (с $3A0) для поиска. UPD: Для некоторых экранов нужно ставить E83A вместо E870, как на статусе на Select, там например 6A 1B 9E 76, которые на самом деле превращаются в 5 символов на экране. Для поиска конкретно этих байтов, удобно в Memory Tools (PRG ROM) искать после остановки, байты будут синими (недавно прочитаны). UPD2: Можно ещё Lua-скрипт написать, который будет выводить все пары значений. Вам нужно найти ромхакера желающего переводить эту игру, если сами не хотите изучать код. |
| SeregaZ:
чот не получилось у меня это самое -$10... не находит :) и почему-то заячьи ушки не считает как символ. его нет в таблице получается. хотя в тексте он вроде как есть. точнее там видимо текст в две строки, то есть я бы предположил что там два или три пробела и потом заячьи ушки, потом опять пробелы... но этих ушек нет в таблице получается :) хотя тайл есть. ушки выше - есть в таблице. а вот ниже - нету... бред кароче :) |
| Ojisun:
--- Цитата: SeregaZ от 26 Июля 2023, 01:04:31 ---пусть станет Агат делов то :) так. это кароче не то... так как нужна таблица, а не номер тайла. хотя подсказка может быть в порядке букв. они на этой картинке идут как в алфавите друг за другом? или все-же рандомно разбросаны? хотя меня смущает что 1,2,3... в два ряда написаны, вместо 1234567890... --- Конец цитаты --- Rumata постом выше сделал скрин как идут буквы, они идут не друг за другом. Я использую эмулятор FCEUX . В эмуляторе заходим в замок говорим с Королём и в это время в эмуляторе вверху выбираю Debug>PPU Viewer открывается скрин с графикой и поочерёдно тыка на каждую букву мы видем индекс или как это назвать? Так и узнал цифры имени перса 5D 58 62 69 на скрине я выбрал букву А японскую внизу пишется 5D . Так я узнаю индексы букв что дальше то делать с хексом? Можно найти соответствующий символ краказябр этим цифрам индексам но я не могу найти само слово в хексе |
| Ojisun:
--- Цитата: SeregaZ от 26 Июля 2023, 10:56:28 ---чот не получилось у меня это самое -$10... не находит :) и почему-то заячьи ушки не считает как символ. его нет в таблице получается. хотя в тексте он вроде как есть. точнее там видимо текст в две строки, то есть я бы предположил что там два или три пробела и потом заячьи ушки, потом опять пробелы... но этих ушек нет в таблице получается :) хотя тайл есть. ушки выше - есть в таблице. а вот ниже - нету... бред кароче :) --- Конец цитаты --- Эти ушки ваще надо закрасить. нам нужна буква без ушек она под четвёртым человечком на скрине это буква КА если добавить ушки она читается как ГА . Ушки в редакторе закрашиваем и будет чёрный экран все ушки кружочки и запятые и т.д. рядом с буквами идут дополнительно нам нужны буквы в чистом виде. Перерисовать её в букву Г смотрите скрин я тупо перерисовал по смыслу буквы но поскольку буквы встечаются в других словах текст естественно будет как с багом я и сделал себе такой кривой перевод для удобства. Поэтому в слове Бой две Б))))Незнал как по другому сделать. Вы не те ушки кстате смотрите смотрите ушки ниже возле картинки счита то ушки к верхней азбуке а нам надо нижняя Катакана имя героя Катаканой диалоги написаны Хираганой |
| SeregaZ:
не правильно ты дядя Федор бутерброды ешь :) то что ты находишь - это номер тайла в памяти приставки, где изображена буква. по этому номеру надо обратиться к таблице, которую тебе скинули несколько постов выше. номер в таблице уже ближе к телу, но надо еще + $10 прибавить. и подобное надо сделать со всем словом - со всеми буквами в слове. и только потооооооом полученное значение искать в роме. нооооо у меня не получилось :) в роме чот не находит такое... где-то у меня ашипка :) может на единичку где-то я что-то напутал... |
| Ojisun:
Я про ушки выше написал может не находит потому что не те.))) |
| SeregaZ:
я не искал ушки, я возмущаюсь почему их нет в таблице :) чтобы понять о чем я говорю - смотри во вложении в том моем посте. первая строчка - там складываются номера тайлов. вторая графическое изображение слова, буквы которого ты выбрал из всего тайл-сета, третья строчка номера из таблицы + $10, четвертая - чистые номера из таблицы. угу. ошибку допустил. ща перезалью :) Добавлено позже: то есть искать в роме по идее надо 3 строчку, там где + $10 приписано. ноооо она не находится. хотя я может быть неверно слово составляю... по идее там Рубль, минус, Пэ, и Зю. но может начертания не те и поэтому ненаходит. или текст в игре запакован. |
| Навигация |
| Главная страница сообщений |
| Следующая страница |