Автор Тема: Вопрос к ромхакерам и переводчикам. Подмена символов.  (Прочитано 1772 раз)

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

Оффлайн free.gen

  • Пользователь
  • Сообщений: 294
  • Пол: Мужской
    • Просмотр профиля
Решил внести в уже существующий перевод некоторые исправления.
Подготовил такую таблицу - какая буква соответствует символу в игре:
Теперь чтобы в игре вывести какой либо текст, его необходимо напечатать в таком виде.
Вопрос заключается вот в чем - как вы это упрощаете/автоматизируете?
Возможно ли как-то сделать простую подмену символов при помощи какого-нибудь Notepad++ или Sublime Text?
На данный момент я ввожу исправления вручную, и хотелось бы немного упростить этот процесс...
В идеале хотелось бы иметь некую софтину, в которой можно "переводить" текст по заданному шаблону в обе стороны.

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2536
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
хы... у меня как раз такое творится :) я запилил массив, где русская буква, соответствующая ей английская, а так-же сграбливание символа из картинки-шрифта по нужным координатам, а после демонстрационный вывод в окошке, чтобы юзверь видел как оно будет выглядеть в итоге.

Оффлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2399
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля

Оффлайн free.gen

  • Пользователь
  • Сообщений: 294
  • Пол: Мужской
    • Просмотр профиля
Guyver(X.B.M.), Рассматривал ее в самом начале, но показалась сложной и неудобной. Мне нужно просто поменять символы.
Извлеченные кракозябры в русский. И обратно русский в кракозябры.))

Оффлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2399
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
А чем неудобная? Можно создать хоть текстовые файлы и подключить их, и там будет появляться нужный тебе текст по таблице. Удобнее некуда:



Ничего не надо особо делать. Написал текст в правом окне, сохранил его в файл - и всё... Сразу он переконвертировался...

Оффлайн free.gen

  • Пользователь
  • Сообщений: 294
  • Пол: Мужской
    • Просмотр профиля
Guyver(X.B.M.), ну во первых при создании проекта она просит указать ромы. у меня psx игра и перевод вносится в отдельные уже распакованные файлы. да и это я буду делать лишь местами, исправляя ошибки. так и не понял как тут поступить.
во вторых, чтобы текст интерпретировался, нужно как-то создать таблицу для этой проги, в которой будут символы. как это сделать я так и не понял.
ну и в третьих - много в ней сбивающих с толку настроек про смещение, адреса и пр...   

Оффлайн Cyneprepou4uk

  • Пользователь
  • Сообщений: 206
  • Пол: Мужской
  • Самый лысый ромхакер
    • ВКонтакте
    • Просмотр профиля
Можно делать через эмулятор fceux свежей сборки. Открываешь любой ром, открываешь хекс редактор, переходишь в rom file, вставляешь текст справа, подгружаешь свой файл с кодировкой, копируешь сконвертированный текст

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5088
    • Просмотр профиля
при помощи какого-нибудь Notepad++
Вот ответ. В замене (Ctrl+H) включаете "Регулярные выражения", в поиск (нужно продолжить таблицу):
(А)|(Б)|(В)|(Г)В замену:
(?1A)(?2А)(?3B)(?4б)"Заменить все"
--------
Ну и на Python 3 легко пишется. Предполагается, что входной 1.txt в кодировке utf-8, как код скрипта. Здесь AБВГ меняется на 5678.
--------
Забыл, что в Python есть специальные методы maketrans и translate. Что упрощает код:
« Последнее редактирование: 02 Февраль 2020, 20:11:51 от Sharpnull »

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8109
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
free.gen,
Формат таблицы ты можешь видеть на скришоте круптара слева. Если Круптар для тебя слишком сложен и запутан, то бери какой-нить WindHex или Translhextion. Для них нужна только таблица, но указатели придётся считать вручную. Но, по мне, так это прошлый век. Изучай лучше Круптар - удобнее и функциональнее пока ничего не придумали.

Оффлайн lupus

  • Пользователь
  • Сообщений: 3827
  • Пол: Мужской
  • man with no face
    • ВКонтакте
    • Просмотр профиля
У меня есть для этого программа, которая по созданной таблицу парсит текст, на выходе получаем текстовый файл.
Как этот текст вставлять - это уже другая история.
Могу подкинуть завтра. Осталось не забыть ;)

Оффлайн free.gen

  • Пользователь
  • Сообщений: 294
  • Пол: Мужской
    • Просмотр профиля
Sharpnull, регулярные выражения отмел сразу, а вот по ссылочке прошел и там обнаружил wReplace - подошла идеально. 2 минуты на создание шаблона и готово.
paul_met, был бы рад в этом разобраться, но он похоже не может просто менять символы (или может?), так же я не смог разобраться - как создать рабочую таблицу. нужны ей поинтеры или нет (так и не понял что это). программа заточена под замену текста непосредственно внутри рома, умеет работать с этими ромами учитывая специфику хранения текста в оных.
у меня же более тривиальная задача. просто поменять символы, без заморочек на тему какой там адрес и тд, ведь отредаченный текст я буду ставить сам в hex редакторе.
« Последнее редактирование: 03 Февраль 2020, 03:34:42 от free.gen »

Оффлайн lupus

  • Пользователь
  • Сообщений: 3827
  • Пол: Мужской
  • man with no face
    • ВКонтакте
    • Просмотр профиля
У меня есть для этого программа, которая по созданной таблицу парсит текст, на выходе получаем текстовый файл.
Как этот текст вставлять - это уже другая история.
Могу подкинуть завтра. Осталось не забыть ;)
Парсер в приложенном архиве.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5088
    • Просмотр профиля
lupus, программа ничем не отличается от моего скрипта на Python выше, кроме способа задания таблицы, что легко исправляется. У вас кодировку (cp1251 - плохой выбор) уже не поменять в отличие от скрипта.

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2536
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
а разве эти ромы всякие понимают кодировки? там кажись одна... анси как она там. от 0 до 255 и крутись как хочешь как говорится.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5088
    • Просмотр профиля
SeregaZ, вопрос был про текстовые файлы.

Парсер в приложенном архиве.
Вот аналогично работающее на Python https://gist.github.com/infval/60c1bdd2c69f38cc81d2b175133dd07d, только по умолчанию кодировка utf-8, чтобы сменить параметр -e (cp1251 в данном случае):
translate.py readme.txt RU_tbl.txt 1.txt -e cp1251--------
Скрипт проще расширить и изменить, решил показать примером.
--------
Kruptar
Видел, что программу забросили и исходники выложили, вы даже что-то правили в коде, есть развивающийся форк? Было бы неплохо привести в порядок, заменить иконки из win-98, улучшить внешний вид как минимум. Хотя мне лично не нужно, просто страшно смотреть на многие программы для ром хакинга (как CrystalTile2).
« Последнее редактирование: 03 Февраль 2020, 20:38:48 от Sharpnull »

Оффлайн lupus

  • Пользователь
  • Сообщений: 3827
  • Пол: Мужской
  • man with no face
    • ВКонтакте
    • Просмотр профиля
lupus, программа ничем не отличается от моего скрипта на Python выше, кроме способа задания таблицы, что легко исправляется. У вас кодировку (cp1251 - плохой выбор) уже не поменять в отличие от скрипта.
Софтинку под мои нужды кто-то из друзей написал, не помню уже кто :(
Есть похожая, но уже под utf-8 и таблица иначе создаётся.
Уверен, что топикстартеру и этой с головой хватит.

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8109
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Видел, что программу забросили и исходники выложили, вы даже что-то правили в коде, есть развивающийся форк? Было бы неплохо привести в порядок, заменить иконки из win-98, улучшить внешний вид как минимум. Хотя мне лично не нужно, просто страшно смотреть на многие программы для ром хакинга (как CrystalTile2).
Для этого не нужны исходники по большому счёту. Можно хакнуть через какой-нить Restorator - добавить новую иконку и XP манифест.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5088
    • Просмотр профиля
XP манифест
Значит манифест для "Visual Styles" можно вставить без исходного кода, спасибо. Вопрос такой пробегал в голове.

Уверен, что топикстартеру и этой с головой хватит.
ТС уже нашёл решение в лице wReplace. cp1251 - плохой выбор в смысле идентификации кодировки в текстовом редакторе, но можно представить, что файлы двоичные, тогда программа будет по замене байт (в однобайтовой кодировке вроде нет приколов со специальными байтами) и кодировка не важна.

а разве эти ромы всякие понимают кодировки?
Сейчас подумал, что можно было сделать отображение "символ -> байт или несколько байт". В специальных программах как Kruptar это всё наверно учтено. ТС, наверно, вставляет из буфера обмена в HEX-редактор и там уже вставляется верно в зависимости от выбранной кодировки.