Форум Magic Team


 

Новости:

01.01.2017: Релиз испанской версии Naruto - Ninja Council (GBA)
02.12.2016: Добавлена документация по Kruptar 7
09.10.2015: Обновление перевода игры Battletoads (NES) [версия 1.3]
22.01.2015: Kruptar Open Source
18.10.2014: Релиз обновлённой русской версии Castlevania - Dawn of Sorrow (GBA) от Owls Group
01.05.2014: Релиз русской версии Taiyou no Yuusha Firebird (NES)
24.06.2012: Добавлена доработанная документация и инструкция
26.05.2012: Обновление ORITON [версия 2.050]
11.05.2012: Обновление ORITON [версия 2.048]
11.03.2012: Обновление Kruptar 7 [версия 7.1.1.17]
29.01.2012: Обновление LZ77Restructor 2 [версия 1.02]
01.01.2012: Релиз русской версии Drill Dozer (GBA)

Подробнее на страничке новостей.
Ознакомьтесь с правилами нашего форума.


  • Форум
  • Поиск
  • Вход
  • Регистрация

  • Форум Magic Team »
  • Переводы, переводы, переводы... »
  • Ромхакинг и перевод »
  • Shining Force Gaiden: Final Conflict
« предыдущая тема следующая тема »
  • Печать
Страницы: 1 2 3 [4]   Вниз

Автор Тема: Shining Force Gaiden: Final Conflict  (Прочитано 55488 раз)

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

Оффлайн Hatsuyuki

  • Magic Team
  • Сообщений: 1261
  • Репутация: +19/-5
    • Просмотр профиля
Shining Force Gaiden: Final Conflict
« Ответ #75 : 26 Декабрь 2010, 13:07:10 »
Они под английский заточены. Например, там при сжатии используется тот факт, что в английском нет развитой системы окончаний и многие слова просто повторяются (часть 'word_count'). И эта часть придумана не для красоты, а из-за необходимости, как я понял.

Добавлено позже:
Ещё цитаты (tech9c.txt):

Цитировать (выделенное)
 First comes the font. Do note that you are restricted to the visible tiles
  and a few extra. A total of $00-$56.

  Find 'sf3_font.bin' for the data. When done, copy it to 'Tools\rom_insert'.

  If you need more than $57 tiles, a modification of the script6-1 overage check
  in 'script_inserter', 'huffman.cpp' is needed. You will have to manually update
  the starting locations of the empty space in the font table.

  Edit: Because the script compresses better, the limit is now redirected to $60.
        So this step is not required. If you need more space, then you can lower
        the # tiles used.

  If you need more than $60 tiles, then this will take some more work. You
  will have to delve into Chapter 3 and modify any substring ranges. There's
  plenty of code here to change (t7a.asm, t3d_2.asm, substring_formatter, and others).

Сколько понадобится для русского? :)

Цитировать (выделенное)
  If you run of out script space, then you'll need to expand the # pages from 12 to (*).
  Again, finding the space may prove difficult as the ROM doesn't allow much more
  without a serious recompression of the graphics.

Если бы всё было так просто, я бы и без вас всё сделал, уж поверьте :)
Otium sine litteris mors est et hominis vivi sepultura.

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Shining Force Gaiden: Final Conflict
« Ответ #76 : 26 Декабрь 2010, 13:35:29 »
Цитата: Hatsuyuki от 26 Декабрь 2010, 20:07:10
Они под английский заточены. Например, там при сжатии используется тот факт, что в английском нет развитой системы окончаний и многие слова просто повторяются (часть 'word_count'). И эта часть придумана не для красоты, а из-за необходимости, как я понял.
Это называется МТЕ. И используется для сжатия текста. Русский текст тоже поддаётся сжатию таким образом.

$57 - это 87 символов. То есть должно хватить. Английские можно только заглавные оставить. И не делать копии похожих (например, таких как кириллическая А и латинская A).

Оффлайн TrickZter

  • Magic Team
  • Сообщений: 1324
  • Репутация: +15/-5
  • The cake is a lie.
    • Просмотр профиля
Shining Force Gaiden: Final Conflict
« Ответ #77 : 26 Декабрь 2010, 13:40:13 »
Да и в русском шрифте можно повыкидывать лишние буквы. В большинстве случаев буквы ЪЫЬ не нужны.

Добавлено позже:
В итоге получается:
весь набор A-Z - 26 букв
БГДЁЖЗИЙЛПУФЦЧШЩЭЮЯ - 19 букв
весь набор а-я - 33 буквы
. , ! ? : ; ( ) " - 9 символов
Итого: 87

Не влез только апостроф, но без него можно обойтись. Или же можно выкинуть точку с запятой (не самый нужный символ) и оставить апостроф. Ещё, как вариант, можно унифицировать У и Y.

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Shining Force Gaiden: Final Conflict
« Ответ #78 : 26 Декабрь 2010, 13:51:34 »
Дефиса/тире не хватает. Скобки редко используются в диалогах. Если вообще используются

Оффлайн TrickZter

  • Magic Team
  • Сообщений: 1324
  • Репутация: +15/-5
  • The cake is a lie.
    • Просмотр профиля
Shining Force Gaiden: Final Conflict
« Ответ #79 : 26 Декабрь 2010, 13:52:46 »
Да, забыл.  %) Тогда или скобки убрать, или отказаться от точки с запятой и апострофа.

Оффлайн Hatsuyuki

  • Magic Team
  • Сообщений: 1261
  • Репутация: +19/-5
    • Просмотр профиля
Shining Force Gaiden: Final Conflict
« Ответ #80 : 26 Декабрь 2010, 15:31:40 »
Цитата: Джинни от 26 Декабрь 2010, 13:35:29
Это называется МТЕ. И используется для сжатия текста. Русский текст тоже поддаётся сжатию таким образом.
Результаты исследований по эффективности ты тоже, конечно, предъявишь? Я и не говорил, что принципиально нельзя это использовать. Я говорил про эффективность применения данного метода для русских текстов и для английских :)

Видео и звук в распространённых форматах тоже можно дополнительно пожать обычным архиватором (поубивал бы) LOL
Otium sine litteris mors est et hominis vivi sepultura.

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Shining Force Gaiden: Final Conflict
« Ответ #81 : 26 Декабрь 2010, 15:40:12 »
Цитата: Hatsuyuki от 26 Декабрь 2010, 22:31:40
Результаты исследований по эффективности ты тоже, конечно, предъявишь? Я и не говорил, что принципиально нельзя это использовать. Я говорил про эффективность применения данного метода для русских текстов и для английских Улыбка
Эффективность нормальная. Не намного хуже, чем с английским текстом. Просто слова в таблицу следует записывать без окончаний.

Оффлайн TrickZter

  • Magic Team
  • Сообщений: 1324
  • Репутация: +15/-5
  • The cake is a lie.
    • Просмотр профиля
Shining Force Gaiden: Final Conflict
« Ответ #82 : 26 Декабрь 2010, 15:42:46 »
Насколько я понял, словарь там генерится автоматом. Правда, не уверен, умеет ли прога генерить словарь из частей слова. Куски с апострофами там есть, но это ещё не показатель.

Добавлено позже:
Хе, у них в словаре два одно-буквенных слова. Это говорит о том, что словарь оптимизирован далеко не лучшим образом.
Если переделать процедуру на поиск произвольных текстовых фрагментов, включая пробелы и знаки препинания, то сжатие может получиться даже лучше, чем у англов.
Сразу говорю: я в си не шарю, так что вопрос не ко мне  :)

Оффлайн JurasskPark

  • Администратор
  • Сообщений: 1304
  • Репутация: +37/-666
    • Просмотр профиля
    • JurasskPark
Shining Force Gaiden: Final Conflict
« Ответ #83 : 26 Декабрь 2010, 18:29:28 »
И я не шарю.
Качай архив.

Оффлайн TrickZter

  • Magic Team
  • Сообщений: 1324
  • Репутация: +15/-5
  • The cake is a lie.
    • Просмотр профиля
Shining Force Gaiden: Final Conflict
« Ответ #84 : 26 Декабрь 2010, 18:32:50 »
Вообще так-то написать такую прогу с нуля - дело получаса. Когда я делал подобную штуку для FF6, у меня примерно столько времени и ушло :) Правда, там не MTE, а DTE был, но смысл тот же.

Оффлайн Hatsuyuki

  • Magic Team
  • Сообщений: 1261
  • Репутация: +19/-5
    • Просмотр профиля
Shining Force Gaiden: Final Conflict
« Ответ #85 : 26 Декабрь 2010, 19:20:42 »
Там дальше ещё сжатие по Хаффману идёт. Вы уверены, что вот эта ваша модификация действительно улучшит процесс в целом? :)

Цитата: tech3c.txt
The unused font numbers will be assigned to the most common words. So let's say

$C0 = "to". $C1 = "you". $C2 = "the".

That also means that

$B0 = " to", $C1 = " you", $C2 = " the"

are very likely to occur. But we have to be considerate of how Huffman works.
Going from [A-Z,a-z] -> [A-Z,a-z,{codes}] will cause our tree sizes to expand
sharply. But if we do

$D0B0 = " to", $D0C1 = " you", $C2 = " the"

then we only go [A-Z,a-z] -> [A-Z,a-z,$D0] which will curb the symbol population.
[$D0] -> [{codes}] which will result in decently sized codewords.


While the first approach will generate a smaller file, our tree space will be
absorbed. The second method uses the clean memory more efficiently. Why should
we do this?

Admittedly the first one would suit us fine if we had large volumes of space.
We're tight on it. But we can defrag the unused tree area and copy over some
of our binary data.


Based on the 16 most common substrings:

(1)
$48B free bytes

Total size: 26.64 KB
WARNING: Overage of 0.64 KB

$1FF free bytes after defrag


(2)
$6F2 free bytes [tree area]

Total size: 27.05 KB
WARNING: Overage of 1.05 KB

$2BA free bytes after defrag

Я уже давно забыл, как работает Хаффман, но тут вроде обосновывается их подход :)
Otium sine litteris mors est et hominis vivi sepultura.

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Shining Force Gaiden: Final Conflict
« Ответ #86 : 26 Декабрь 2010, 19:30:37 »
Сжатие хаффман+мте - тоже хорошо.

Оффлайн TrickZter

  • Magic Team
  • Сообщений: 1324
  • Репутация: +15/-5
  • The cake is a lie.
    • Просмотр профиля
Shining Force Gaiden: Final Conflict
« Ответ #87 : 26 Декабрь 2010, 19:46:26 »
Цитата: Hatsuyuki от 26 Декабрь 2010, 21:20:42
Вы уверены, что вот эта ваша модификация действительно улучшит процесс в целом?
Абсолютно.
MTE - это запись нескольких байт при помощи одного байта (бывает и больше, но обычно используется один). Чем длиннее слово и чем чаще оно встречается, тем больше эффект от сжатия. Тот, кто переводил на английский, очевидно рассчитывал только из частоты повторения, совершенно не учитывая длину слова.
Какой смысл заносить слово, состоящее из одного символа в словарь? Никакого. Как оно раньше занимало 1 байт, так оно его и занимает - 0% сжатия, при этом расходуется одно место в словаре.

Ценность слова посчитать довольно просто: нужно вычесть из длины слова размер MTE и умножить результат на количество повторений слова.
Допустим, имеем слово, состоящее из 5 букв и встречающееся 100 раз, MTE будем считать однобайтовым, получаем:
(5-1)*100 = 400 (экономим 400 байт)
А теперь посчитаем ценность 1-символьного слова, которое, допустим, встречается 1000000 раз:
(1-1)*1000000 = 0 (экономим 0 байт)

Хорошо оптимизированный MTE в любом случае лучше будет сжиматься, чем плохо оптимизированный.

Добавлено позже:
Цитата: Джинни от 26 Декабрь 2010, 21:30:37
Сжатие хаффман+мте - тоже хорошо.
Именно. В GBAшных игрушках часто используются сразу два метода хаффман+LZ77, вместе они дают большее сжатие, чем просто хаффман или просто LZ77.

Оффлайн Hatsuyuki

  • Magic Team
  • Сообщений: 1261
  • Репутация: +19/-5
    • Просмотр профиля
Shining Force Gaiden: Final Conflict
« Ответ #88 : 26 Декабрь 2010, 20:09:54 »
В любом случае замеры интересно будет посмотреть :)
Otium sine litteris mors est et hominis vivi sepultura.

Оффлайн JurasskPark

  • Администратор
  • Сообщений: 1304
  • Репутация: +37/-666
    • Просмотр профиля
    • JurasskPark
Shining Force Gaiden: Final Conflict
« Ответ #89 : 13 Февраль 2011, 14:48:58 »
Где новости о переводе?

Оффлайн Hatsuyuki

  • Magic Team
  • Сообщений: 1261
  • Репутация: +19/-5
    • Просмотр профиля
Shining Force Gaiden: Final Conflict
« Ответ #90 : 13 Февраль 2011, 16:21:00 »
Там же, где шрифты и прочее, видимо :)
Otium sine litteris mors est et hominis vivi sepultura.

Оффлайн JurasskPark

  • Администратор
  • Сообщений: 1304
  • Репутация: +37/-666
    • Просмотр профиля
    • JurasskPark
Shining Force Gaiden: Final Conflict
« Ответ #91 : 13 Февраль 2011, 17:38:54 »
Не понял...  *SCRATCH*

Оффлайн TrickZter

  • Magic Team
  • Сообщений: 1324
  • Репутация: +15/-5
  • The cake is a lie.
    • Просмотр профиля
Shining Force Gaiden: Final Conflict
« Ответ #92 : 13 Февраль 2011, 17:45:23 »
Цитата: JurasskPark от 13 Февраль 2011, 17:38:54
Не понял...  *SCRATCH*
Думаю, можно читать так: "За перевод даже не брался."

Оффлайн Hatsuyuki

  • Magic Team
  • Сообщений: 1261
  • Репутация: +19/-5
    • Просмотр профиля
Shining Force Gaiden: Final Conflict
« Ответ #93 : 13 Февраль 2011, 18:06:33 »
Началась старая песня :)
Otium sine litteris mors est et hominis vivi sepultura.

  • Печать
Страницы: 1 2 3 [4]   Вверх
« предыдущая тема следующая тема »
  • Форум Magic Team »
  • Переводы, переводы, переводы... »
  • Ромхакинг и перевод »
  • Shining Force Gaiden: Final Conflict
 

  • SMF 2.0.12 | SMF © 2011, Simple Machines
  • XHTML
  • RSS
  • Мобильная версия

  • GreenUP by Neekiinh0.

Размер занимаемой памяти: 2.25 мегабайта.
Страница сгенерирована за 0.19 секунд. Запросов: 66.