форум группы Chief-Net форум группы Chief-Net
Перевод приставочных игр и не только!
drako site Перейти на сайт группы     Наш чат      Помощь      Поиск      Пользователи


 Страниц (2): [1] 2 »   

> Без описания
lupus Пользователь
Отправлено: 20 Апреля, 2016 - 19:34:09
Post Id





Покинул форум
Сообщений всего: 1056
Дата рег-ции: Июнь 2015  
Откуда: Simferopol





Всем привет, давно здесь не появлялся и, наверное, столько же ничего не хакал и не переводил.
Ещё в 2011 году я выложил перевод RE Gaiden, но он далёк от идеала, т.к. выполнен без пересчёта поинтеров, а сжатая графика осталась нетронутой. С тех пор в хакинге gbc я не продвинулся ни капли Недовольство, огорчение но желание сделать нормальный перевод этой игры меня не оставляет. К тому же, я не прочь поупражняться в переводе, поскольку понимаю, что мои знания английского без практики сдают позиции.
Основную сложность представляет не только тот факт, что я не нашёл поинтеры (хотя, Меф мне как-то помогал с этим), но и странная система хранения текста, описываю по памяти:
В тексте каждые 8 байт (или каждый восьмой байт) присутствует какой-то служебный байт, замена которого приводит к некорректному выводу текста. Долго и муторно я переводил и вставлял текст частями, отлавливая баги с повреждением этих системных байт, вмещая русский скрипт в длину оригинала. Пытался двигать символ "перевода каретки" в пределах строки, но и это ни к чему хорошему не приводило.
Относительно графики: недостающие кириллические символы в шрифте я отрисовал поверх европейских "зяблов" поэтому удалось иметь оба набора символов для заглавной и строчной латиницы/кириллицы. Поправил непожатую графику в инвентаре и прочих местах.

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

Наработки прилеплю, надо отыскать на одном из переносных винтов.
 
 Top
Mefistotel Администратор
Отправлено: 21 Апреля, 2016 - 01:30:19
Post Id



Chief-Net


Покинул форум
Сообщений всего: 7127
Дата рег-ции: Окт. 2014  
Откуда: МАГАДАН





Здесь тема:
http://chief-net.ru/forum/topic....m=3&topic=45
lupus, для хакинга графики желательно сейвы на неё для эмулятора NO$GBA или BGB.
Ace Lightning уже поднаторел с тех пор и возможно сможет помочь с ней)
По тексту посмотрим у кого будет свободное время, где-то у меня проект был к Круптару.

-----
"Перевод старых игр - отличная возможность понять, как устроены программы, подучить иностранный язык и поднять уровень владения родным. Ну и конечно, это просто возможность "общения" со своей любимой игрой детства." © Dimouse
 
 Top
Mefistotel Администратор
Отправлено: 21 Апреля, 2016 - 01:35:19
Post Id



Chief-Net


Покинул форум
Сообщений всего: 7127
Дата рег-ции: Окт. 2014  
Откуда: МАГАДАН





Вот и он.
Скачать файл: Resident_Evil_gbc.7z
Скачан раз: 200


-----
"Перевод старых игр - отличная возможность понять, как устроены программы, подучить иностранный язык и поднять уровень владения родным. Ну и конечно, это просто возможность "общения" со своей любимой игрой детства." © Dimouse
 
 Top
Ace Lightning Пользователь
Отправлено: 21 Апреля, 2016 - 09:07:59
Post Id



VIP


Покинул форум
Сообщений всего: 480
Дата рег-ции: Июнь 2015  





Если игра на Game Boy Color, то лучше эмулятор BGB, когда я хакал Castlevania: Legends на нем, было очень удобно.
Надо будет глянуть, что там за система. В ближайшие дни посмотрю.
 
 Top
lupus Пользователь
Отправлено: 22 Апреля, 2016 - 20:11:37
Post Id





Покинул форум
Сообщений всего: 1056
Дата рег-ции: Июнь 2015  
Откуда: Simferopol





Отлично, буду ждать ответа. В первую очередь хотелось бы разобраться с текстом, чтобы можно было начать перевод, а следом копать в сторону графики.
 
 Top
Mefistotel Администратор
Отправлено: 23 Апреля, 2016 - 10:26:40
Post Id



Chief-Net


Покинул форум
Сообщений всего: 7127
Дата рег-ции: Окт. 2014  
Откуда: МАГАДАН





Проект посмотри, что я выложил. Он даже с плагином.
Не помню просто, на чём мы остановились.


-----
"Перевод старых игр - отличная возможность понять, как устроены программы, подучить иностранный язык и поднять уровень владения родным. Ну и конечно, это просто возможность "общения" со своей любимой игрой детства." © Dimouse
 
 Top
Ace Lightning Пользователь
Отправлено: 23 Апреля, 2016 - 16:22:02
Post Id



VIP


Покинул форум
Сообщений всего: 480
Дата рег-ции: Июнь 2015  





Ковыряю игру, и смотрю, что в роме очень много незанятого места с байтами $FF.

Длина указателей: 2 байта. Расположены над текстовыми блоками. Есть практически одинаковый текстовый блок, который начинается с текста в начале игры. Не знаю зачем это нужно.
Сжатие текста похоже на разновидность LZ, с которым я встречался я встречался в Castlevania: Legends, только там была графика пожата.

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


Плохо, что нет для GB такого отладчика, который бы трассировал программу в файл, как это умеет, например, FCEUX для NES.
 
 Top
Марат Супермодератор
Отправлено: 23 Апреля, 2016 - 17:20:48
Post Id



Chief-Net


Покинул форум
Сообщений всего: 2183
Дата рег-ции: Окт. 2014  
Откуда: Казахстан





Ace Lightning пишет:
И еще при просмотре тайлов нет никакого шрифта. Просто тупо текст, я первый раз с таким сталкиваюсь. И в коде игры все так запутано, пока не могу разобраться точно что там и как.

Обычно, такой метод вывода текста используется для немоноширинных шрифтов. Хотя здесь он явно моноширинный. Сам шрифт надо искать в роме, там-то он, наверняка, есть.
 
 Top
Ace Lightning Пользователь
Отправлено: 24 Апреля, 2016 - 12:01:20
Post Id



VIP


Покинул форум
Сообщений всего: 480
Дата рег-ции: Июнь 2015  





Итак, я наконец-то все понял.
Давайте по-порядку.

Система хранения текста:
CODE:
XX 01 02 03 04 05 06 07 08

где, XX - давайте назовем флаговым байтом. 01-08 - байты текста или служебных символов.

Флаговый байт нужен для того, чтобы игра отличала служебные байты от текста. Какие есть служебные байты или их совокупность:
    F9 - перенос строки;
    F9 FC - стоп-"байт";
    F9 F7 - ожидание некоторого количества времени перед чтением последующих байтов;
    F8 - очистка области вывода текста.
    FB - координаты вывода текста, после этого байта идут еще два.


Давайте рассмотрим, например, строчку из меню игры, которая выводится при выборе пункта Continue.
CODE:
09 FB 00 00 F8 03 29 28 2E 10 23 28 2F 1F F9 2A 2C 1F 00 30 23 29 2F 2D 00 21 1B 0C 27 1F F9 FC

Первый байт 09 - флаговый. Вот он же в двоичном виде: 00001001. Начинаем его анализировать со старшего бита.
Он равен единице, значит на этом месте будет служебный байт. Смотрим на строку, там действительно находится байт FB, который отвечает за координаты вывода текста.
После этого байта должны идти еще два байта, собственно с этими самыми координатами. Во флаговом байте они отмечаются нулевыми битами. После них снова идет служебный байт F8. Так уж устроена игра, что сочетание байтов FB XX XX F8 - это стандартный метод задания координат. Хотя я пробовал убирать с F8 метку из флагового байта, что он служебный и ничего в принципе не менялось. Но лучше наверное делать так, как сделано разработчиками)
Далее идет 4 байта текста, затем опять флаговый байт 10. В двоичном коде он: 00010000. Видим, что пятый байт в этой последовательности будет служебным. Итак, после байта 10 идет 4 байта текста и затем байт переноса строки F9 и после него еще 3 байта текста.
Затем идет флаговый байт 00, означающий, что служебных байт не будет. Поэтому после него идет 8 байт текста.
И, наконец, последний флаговый байт 0C - 00001100. После двух байт текста идут два служебных байта F9 FC - эта пара байт означает конец вывода текста.

(Отредактировано автором: 24 Апреля, 2016 - 12:01:49)

 
 Top
Mefistotel Администратор
Отправлено: 24 Апреля, 2016 - 12:25:08
Post Id



Chief-Net


Покинул форум
Сообщений всего: 7127
Дата рег-ции: Окт. 2014  
Откуда: МАГАДАН





Красавчик. Круто
Не знаю правда, в том плагине с проектом, что я дал, учтено ли это или нет. Скриптёр для текста сможешь написать?


-----
"Перевод старых игр - отличная возможность понять, как устроены программы, подучить иностранный язык и поднять уровень владения родным. Ну и конечно, это просто возможность "общения" со своей любимой игрой детства." © Dimouse
 
 Top
Ace Lightning Пользователь
Отправлено: 24 Апреля, 2016 - 13:49:35
Post Id



VIP


Покинул форум
Сообщений всего: 480
Дата рег-ции: Июнь 2015  





Да могу, смотря в каком виде его надо. Как плагин к круптару? Я не очень знаком с круптаром, не умею к нему плагины писать.
 
 Top
Mefistotel Администратор
Отправлено: 24 Апреля, 2016 - 13:54:23
Post Id



Chief-Net


Покинул форум
Сообщений всего: 7127
Дата рег-ции: Окт. 2014  
Откуда: МАГАДАН





Можно и не в формате плагина, а отдельной утилитой. Подмигивание

-----
"Перевод старых игр - отличная возможность понять, как устроены программы, подучить иностранный язык и поднять уровень владения родным. Ну и конечно, это просто возможность "общения" со своей любимой игрой детства." © Dimouse
 
 Top
Ace Lightning Пользователь
Отправлено: 24 Апреля, 2016 - 15:37:30
Post Id



VIP


Покинул форум
Сообщений всего: 480
Дата рег-ции: Июнь 2015  





Mefistotel пишет:
Можно и не в формате плагина, а отдельной утилитой.

Это можно Улыбка

Посидел, сделал черновой вариант, вроде бы работает.


(Отредактировано автором: 24 Апреля, 2016 - 17:30:10)

 
 Top
Ace Lightning Пользователь
Отправлено: 25 Апреля, 2016 - 18:46:40
Post Id



VIP


Покинул форум
Сообщений всего: 480
Дата рег-ции: Июнь 2015  





Вот только непонятно почему там текстовые блоки дублируются.
 
 Top
lupus Пользователь
Отправлено: 25 Апреля, 2016 - 23:19:06
Post Id





Покинул форум
Сообщений всего: 1056
Дата рег-ции: Июнь 2015  
Откуда: Simferopol





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

Что касается продублированного текста - пока ничего не скажу, но можно проверить, использовав русский скрипт, который я вставлял покепереводом, там все адреса строк есть.

(Отредактировано автором: 25 Апреля, 2016 - 23:23:23)

 
 Top
Mefistotel Администратор
Отправлено: 26 Апреля, 2016 - 01:48:51
Post Id



Chief-Net


Покинул форум
Сообщений всего: 7127
Дата рег-ции: Окт. 2014  
Откуда: МАГАДАН





lupus, ты бы заранее всё подготовил, раз подымаешь старые темы с просьбой помочь.

-----
"Перевод старых игр - отличная возможность понять, как устроены программы, подучить иностранный язык и поднять уровень владения родным. Ну и конечно, это просто возможность "общения" со своей любимой игрой детства." © Dimouse
 
 Top
Ace Lightning Пользователь
Отправлено: 26 Апреля, 2016 - 07:34:09
Post Id



VIP


Покинул форум
Сообщений всего: 480
Дата рег-ции: Июнь 2015  





Ладно, будет свободное время на работе - займусь тулзой, надо еще разобраться с графикой пожатой будет.
 
 Top
lupus Пользователь
Отправлено: 26 Апреля, 2016 - 08:27:11
Post Id





Покинул форум
Сообщений всего: 1056
Дата рег-ции: Июнь 2015  
Откуда: Simferopol





Держите архив, в нём:
- ром с перерисованной непожатой графикой (шрифт, имена в инвентаре, надпись PDA)
- русский и оригинальный скрипт, которые я вынимал/вставлял покепереодом. Символом @ заменял служебные байты
- английская и русская таблицы
- gfx.txt - вписал адреса перерисованной графики
Скачать файл: re_gaiden_2016-04-26.7z
Скачан раз: 223

(Отредактировано автором: 26 Апреля, 2016 - 08:27:37)

 
 Top
Ace Lightning Пользователь
Отправлено: 27 Апреля, 2016 - 14:07:10
Post Id



VIP


Покинул форум
Сообщений всего: 480
Дата рег-ции: Июнь 2015  





Разбираюсь с алгоритмом сжатия графики и пребываю в легком шоке от алгоритма. На днях распаковщик выложу.
 
 Top
lupus Пользователь
Отправлено: 27 Апреля, 2016 - 16:10:49
Post Id





Покинул форум
Сообщений всего: 1056
Дата рег-ции: Июнь 2015  
Откуда: Simferopol





а что с софтинкой доя работы с текстом? Или ты делаешь утилиту all-in-one?
 
 Top
Ace Lightning Пользователь
Отправлено: 27 Апреля, 2016 - 17:46:04
Post Id



VIP


Покинул форум
Сообщений всего: 480
Дата рег-ции: Июнь 2015  





И её пишу, просто решил с графикой разобраться, вдохновение нашло.
 
 Top
lupus Пользователь
Отправлено: 27 Апреля, 2016 - 18:11:23
Post Id





Покинул форум
Сообщений всего: 1056
Дата рег-ции: Июнь 2015  
Откуда: Simferopol





Понял, жду. Вдохновение - штука не постояная...
 
 Top
AlecsandroTores Пользователь
Отправлено: 28 Апреля, 2016 - 20:50:29
Post Id





Покинул форум
Сообщений всего: 138
Дата рег-ции: Июнь 2015  





lupus, надеюсь ты не забыл, что я взял текст на доработку? В общем, забрал я оригинальный скрипт и потихоньку приведу текст в порядок. Если не понравится, переделаем, но надеюсь, я не напрасно работал над ним. Впрочем, нет предела совершенству. Язычок
 
 Top
lupus Пользователь
Отправлено: 28 Апреля, 2016 - 21:36:38
Post Id





Покинул форум
Сообщений всего: 1056
Дата рег-ции: Июнь 2015  
Откуда: Simferopol





Не переживай, всё помню. Можешь, для затравки, выложить, что уже напереводил?
 
 Top
AlecsandroTores Пользователь
Отправлено: 29 Апреля, 2016 - 00:40:24
Post Id





Покинул форум
Сообщений всего: 138
Дата рег-ции: Июнь 2015  





Я бы ещё чуток поработал.
 
 Top
Ace Lightning Пользователь
Отправлено: 01 Мая, 2016 - 22:09:01
Post Id



VIP


Покинул форум
Сообщений всего: 480
Дата рег-ции: Июнь 2015  





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




P.S. Над софтинкой для текста работаю, не переживайте. Все будет.

А есть еще какая-нибудь графика, кроме этих имен, которую нужно переводить?

(Отредактировано автором: 01 Мая, 2016 - 22:15:23)

 
 Top
lupus Пользователь
Отправлено: 03 Мая, 2016 - 10:03:59
Post Id





Покинул форум
Сообщений всего: 1056
Дата рег-ции: Июнь 2015  
Откуда: Simferopol





Вроде, титульник ещё. Там надпись "press start". Больше ничего не припоминаю.
P.S. Отличные новости. Капком постоянно что-то мутит непонятное. Особенно в резидентах.
 
 Top
Ace Lightning Пользователь
Отправлено: 05 Мая, 2016 - 08:54:20
Post Id



VIP


Покинул форум
Сообщений всего: 480
Дата рег-ции: Июнь 2015  





Значит, что пока реализовал:
- Извлечение текста с заданного адреса до стоп-байта.
- Отрисовка текста игровым шрифтом в игровом окне (шрифт берется прямо из рома).
- Отображение в статус-баре количества выделенных символов.
- Все изменения, сделанные в поле, мгновенно отрисовываются в игровом окне.
- Если текст не помещается в игровом окне, появляются полосы прокрутки.


В планах еще сделать обратное преобразование с возможностью сохранения в файл для вставки в ром.
 
 Top
Mefistotel Администратор
Отправлено: 05 Мая, 2016 - 13:28:01
Post Id



Chief-Net


Покинул форум
Сообщений всего: 7127
Дата рег-ции: Окт. 2014  
Откуда: МАГАДАН





Отлично! Круто
Продолжай в том же духе.

-----
"Перевод старых игр - отличная возможность понять, как устроены программы, подучить иностранный язык и поднять уровень владения родным. Ну и конечно, это просто возможность "общения" со своей любимой игрой детства." © Dimouse
 
 Top
Ace Lightning Пользователь
Отправлено: 06 Мая, 2016 - 16:58:15
Post Id



VIP


Покинул форум
Сообщений всего: 480
Дата рег-ции: Июнь 2015  





Ну вот предварительная, но вполне себе рабочая версия программы. Потестируйте. В архиве набросал небольшой Help и все необходимые файлы для ромов с английским и русским шрифтом.

P.S. Вот сейчас я подумал. И понял, что с русского языка она некорректно будет работать, возможно ошибку выдавать или неправильные байты выдавать в тех местах, в которых русские буквы взяты из английского шрифта. Дело в том, что программа этих букв в таблице не найдет, потому что там они записаны английскими буквами. Короче надо будет подумать об этом. Может быть при сохранении скрипта, использовать другую таблицу, где уже будут все необходимые русские буквы записаны именно русскими буквами.
Скачать файл: Script Extractor v.0.4.7z
Скачан раз: 238

(Отредактировано автором: 06 Мая, 2016 - 17:02:01)

 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Экстрим хакинг »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



> Похожие темы: RE Gaiden (gbc)
Темы Форум Информация о теме Обновление
Несколько вопросов по Resident Evil [NDS]
...
Трудные фразы... Ответов: 0
Автор темы: lupus
27 Июля, 2015 - 04:58:00
Автор: lupus
Помогите красиво перевести
...
Трудные фразы... Ответов: 3
Автор темы: lupus
05 Мая, 2016 - 05:47:00
Автор: Ace Lightning
SonicN
...
Трудные фразы... Ответов: 0
Автор темы: lupus
27 Июля, 2015 - 04:53:49
Автор: lupus
Подскажите в чём лучше переводить
...
Программирование Ответов: 0
Автор темы: lupus
24 Июля, 2015 - 10:27:18
Автор: lupus
Подсобите с простой софтинкой
...
Программирование Ответов: 0
Автор темы: lupus
24 Июля, 2015 - 10:27:43
Автор: lupus
 

Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®