1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление
    1. Если вы сделали перевод или русификацию игры, то вы можете поделиться своим творением здесь.
    2. О правилах вступления в группу переводчиков можно прочитать здесь.
    3. Русификации следует искать там.

Перевод игры Wrath of Earth

Тема в разделе "Переводы своими руками", создана пользователем WERTA, 4 авг 2013.

  1. WERTA ФанатЪ O-G

    WERTA

    Хелпер Переводчик

    Регистрация:
    12 ноя 2006
    Сообщения:
    8.512
    Сегодня 04.08.2013 мы начинаем перевод замечательной игры Wrath of Earth. Более месяца мы разбирали ресурсы игры вплоть до битов в этой теме Анализ ресурсов игры Wrath of Earth. Результаты таковы, что сегодня я решился выполнить пробную перекодировку и перерисовку шрифтов. Результат оказался положительным. Вот скриншоты большого и малого перерисованного шрифта.
    Screens
    Приходилось расширять символы малого шрифта 5х4 за счёт чередования соседних. Так например буква Ф получилась только благодаря стильному изменению формы буквы Й.

    Проблема перекодировки упёрлась в непреодолимую преграду. Дело в том, что в шрифте использованы всего 44 возможных символа по формуле (26+10+8).
    26 латинских букв: ABCDEFGHIJKLMNOPQRSTUVWXYZ
    10 десятичных разрядов: 0123456789
    8 знаки: ! ( ) ? - , . `
    Не хватило мест таким, можно сказать, самым русским буквам Ё и Ъ. Хотя, для всеми любимой буквы Ё место, в принципе можно найти. Это «!» – он редко используется, а его отсутствие в списке символов для грамматики не так критично как отсутствие его сутулого вопросительного собрата. Поэтому начать перевод хотелось бы сразу же с конкурса красоты. Сегодня у нас три участницы в номинации «Самая красивая и обаятельная буква Ё в разрешении 5х4». Вот они.
    [​IMG]
    Мне лично нравится №3.

    Теперь по поводу буквы ЕрЪ (Ъ). В разрешении 5х4 разница между ними в один пиксел. В большом шрифте я намеренно сделал буку Ь (ее роль выполняет 6) неоднозначной, то ли это Ъ, то ли это Ь. К сожалению, варианты исчерпаны. Но есть запасной вариант - проблему можно было бы решить, сделав составной букву Ы=6+1. Но во-первых, при вводе имени сейва это вызовет у пользователя недоумение, поскольку технически маловероятно будет правкой кода woe.exe реализовать сразу ввод 2-х символов, а во-вторых перерисованные русские буквы по известным причинам отличаются от английских большей шириной по горизонтали, а место на экране осталось прежнее. Поэтому придётся ужиматься с длиной строк, а буква Ы достаточно часто используется в словах, особенно в окончаниях. Поэтому делать букву Ы составной – это нагрузить длину строк лишним символом. Прошу решить вопрос по поводу графической идентичности букв Ъ и Ь для этой игры. А вообще Ъ применяется очень редко.

    Сегодня, впервые глядя на перерисованные символы в игре, я понял: «Переводу - быть! Ведь когда впервые видишь это беспорядочное нагромождение русских букв, то сразу осознаёшь, что это работает, и что никто и ничто тебя уже не остановит в этой замечательной и интересной работе…»

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

    Я выбрал за основу для переводa следующую версию игры (последнюю) Она протестирована мною и другими пользователями путём полного прохождения.


    woe.exe, 86 624 Bt, 26/03/1995
    woe.rsc, 17 386 700 Bt, 24/07/1995

    Эта версия выложена на нашем сайте.

    Вот измененный woe.rsc с перерисованными шрифтами (буквы Ё пока нет).
    http://rusfolder.ru/37487415
     
    Последнее редактирование модератором: 19 июл 2015
    Stasok8, Neresar, Porphyric и 9 другим нравится это.
  2.  
  3. A.P.$lasH

    A.P.$lasH

    Legacy

    Регистрация:
    27 фев 2010
    Сообщения:
    4.667
    Формат сжатия карт разгадал, код из дизассемблерного исходника переписал на С. Написание упаковщика оставляю вам.

    Свой исходник распаковщика с подробными комментариями и содержимое всех распакованных карт отправляю WERTA.

    В титрах можно упомянуть, если редактировать соберётесь :blush:
     
    SAS, Чёрный Думер, kirik-82 и 5 другим нравится это.
  4. WERTA ФанатЪ O-G

    WERTA

    Хелпер Переводчик

    Регистрация:
    12 ноя 2006
    Сообщения:
    8.512
    В переводе игры произошли серьёзные подвижки.
    Не могу более это держать "при себе", и предоставляю прямую ссылку на распакованные карты с разрешения Автора, ибо поздно и мне уже пора спать.
    http://www.ex.ua/885139423131
    Не забываем упоминать об авторе этого кода распаковки - A.P.$lasH.

    Карты идут в несколько слоёв 128х128 (самый первый распакованный файл). Текст найден. Используйте декодировщик либо HEX редактор с прибавлением 41h ( в грубом варианте декодирования). Файл 999 вроде представлен несжатой графикой - текстов там нет. Буду пока вникать в алгоритм распаковки.
     
  5. WERTA ФанатЪ O-G

    WERTA

    Хелпер Переводчик

    Регистрация:
    12 ноя 2006
    Сообщения:
    8.512
    Сегодня я сумел конвертировать С++ код от A.P.$lasH на Delphi. Все работает 1:1. Несмотря на то, что портированный Pascal-код мне существенно «роднее», окончательно ясного понимания алгоритма это не прибавило. Видимо, просто некогда было, из-за отладки кода. Потом разберусь с этим алгоритмом. Запаковка в любом случае нужна будет для сжатия файла графики - 999. Вообще. Возникает вопрос: почему автор игры использовал что-то наподобие LZ, когда удобней было бы использовать RLE? Все карты представляют собой (по крайней мере, основные файлы распаковки, все по 201 Кб) цепочки повторяющихся значений.

    Сейчас при работе над переводом я наметил несколько базовых направлений по созданию пакета программных приложений:
    1) Работа со строками woe.exe. Подгружаемая текстовка проекта на входе: таблица смещений, длин и обычных русских строк, и плюс простой патчер, который по ней будет менять (кодировать) строки.
    2) Создание удобного для любого пользователя распаковщика (растры текстур – в *.bmp, звуки – в *.wav)
    3) Создание просмотрщика распакованных карт. Мне, лично, очень интересно понять, как все было организовано. Это, без сомнения, поможет в искоренении бага с лифтом 7-го уровня.
    4) Создание запаковщика карт (если все получится с искоренением бага 7-го уровня)
    5) Создание запаковщика ресурсов woe.rsc (аналогично из bmp, wav…) .
    6) Создание патчера для правки строк в картах без распаковки-запаковки.

    Пока я сосредоточусь на вспомогательных приложениях. А затем будет активная фаза перевода Wrath of Earth.
     
  6. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    WERTA, как бы там ни было, но теперь можно не париться "какие символы оставить, а какие выбросить", а просто сделать нормальные ресурсы и шрифты нужного типа. И внести нужные изменения в программный код.
     
    WERTA нравится это.
  7. WERTA ФанатЪ O-G

    WERTA

    Хелпер Переводчик

    Регистрация:
    12 ноя 2006
    Сообщения:
    8.512
    С проблемой символов разобрались. Ни одна русская буква не будет "обижена".
    Шрифты перерисованы. Делать "свои" ресурсы это рискованно. Пока не до конца мною понят алгоритм сжатия-разжатия.
    Это в принципе вообще не нужно. Обойдемся правками только строк и ресурсов игры.
     
  8. WERTA ФанатЪ O-G

    WERTA

    Хелпер Переводчик

    Регистрация:
    12 ноя 2006
    Сообщения:
    8.512
    Сегодня сделал распаковщик на Delphi. Алгоритм понят. Он специально "заточен" именно на повторяющиеся последовательности. Но RLE все же был бы лучше. Теперь как в том анекдоте про программиста, буду работать над алгоритмом упаковки. Возможно, кто-то удивится, но мне это видится проще, чем распаковка (хотя могу ошибаться). A.P.$lasH, я так понял из логов, что наиболее оптимальным будет использование максимального размера окна чтения до 14 бит. Более длинных выборок чтения я не видел, хотя можно и до 16 бит и еще больше доводить. Поэтому у меня вопрос, сброс словаря при сжатии лучше будет делать по мере приближения к объему чтения битовой выборки более 14 битов?

    Распаковщик с картами во вложении. Я еще немного не понял насчет графики в файле 999. Никто не анализировал, что там за формат графического сжатия?
     

    Вложения:

    • WOE_MAPS.rar
      Размер файла:
      3,2 МБ
      Просмотров:
      35
    Vladimir 777, kreol, kirik-82 и 3 другим нравится это.
  9. A.P.$lasH

    A.P.$lasH

    Legacy

    Регистрация:
    27 фев 2010
    Сообщения:
    4.667
    Максимальное количество битов для чтения определяет размер ссылки на словарь. Ну как же можно предугадать заранее это значение? Если понадобятся сноски на дальние участки словаря, придётся увеличивать битность.

    Но можно и словарь принудительно сбросить, а с ним и wNumBits. Эта метода максимальный контроль над сжатием даёт. Сбросом словаря и количеством битов для чтения управляет тот, кто сжимает данные. Порядка нет. Можно хоть через байт словарь сбрасывать, можно не сжимать, а ровно 9-битовыми пакетами ВЕСЬ файл в архив затолкать :)

    Желательно делать красиво, но никто не запретит трамбовать в ресурсы любой изврат. Соблюдая теги, игра поймёт и прочтёт данные.
     
    Vladimir 777, kreol, WERTA и 2 другим нравится это.
  10. WERTA ФанатЪ O-G

    WERTA

    Хелпер Переводчик

    Регистрация:
    12 ноя 2006
    Сообщения:
    8.512
    Аналогичная мысль приходит в голову. Я при "черновом" анализе запаковки вижу два типа данных:
    1) Неповторяющиеся последовательности (даже два одинаковых байта подряд алгоритму неохота ждать)
    2) Длинные цепочки повторяющихся байтов.

    Так вот я хотел бы попробовать: встретили длинную цепочку байтов, набрали в словаре нужную последовательность а затем ...сброс. Например встретили мы 33 повторяющихся значения байта ХХh. Зажимаем цепочку так...
    Код:
    [B]9BIT  N  LENGTH[/B]
    0ХХh  1  1
    103h  2  3
    104h  3  6
    105h  4  10
    106h  5  15
    107h  6  21
    108h  7  28
    106h  5  33
    102h  RESET
    
    А на "неповторяющихся" последовательностях - не "думать", и пропускать поток без операций словаря. Тут хотелось бы узнать насчет EMS этой игры. Какой размер примерно у самодельной ЕМS. Любая разжатая карта + графика 999 это уже около 1 МБт, скорее всего EMS в игре реализована до 2 МБт.
     
    Последнее редактирование: 8 авг 2013
  11. WERTA ФанатЪ O-G

    WERTA

    Хелпер Переводчик

    Регистрация:
    12 ноя 2006
    Сообщения:
    8.512
    Не очень хорошие первые новости по эффективности простого алгоритма запаковки карт.

    При эмуляции сжатия (пока вывод значений текстом) для первой секции карты 000 (несжатый размер 201 762 Bt) я получил 88 831 9-битовое значение, т.е. это около 99 935 Бт. Исходный размер секции был 33 662 Бт. Т.е. сжатый файл получился в три раза больше, чем сжат был с применением "родного" алгоритма сжатия. Но не стоит расстраиваться. Мне не надо было спрашивать про EMS в предыдущем посте. Все равно все грузится в EMS, и разжатый размер одинаков для обоих вариантов применения алгоритма сжатия. Т.е. памяти должно хватить. Для распаковки нужен совсем небольшой буфер данных в EMS при чтении карты напрямую из файла. Для чего вообще авторы сжимали карты, - я не знаю, но предполагаю, что это было связано с дискеточным распространением игры. Буду благодарен, если кто-то подтвердит моё предположение.
    КОД
    Прошу прощения, что код получился немного "китайским", поскольку тороплюсь...
     
    Чёрный Думер нравится это.
  12. Чёрный Думер и все виды материала

    Чёрный Думер

    Регистрация:
    17 мар 2010
    Сообщения:
    2.434
    WERTA, так ты запаковку дорабатывать будешь?
     
    WERTA нравится это.
  13. WERTA ФанатЪ O-G

    WERTA

    Хелпер Переводчик

    Регистрация:
    12 ноя 2006
    Сообщения:
    8.512
    Речь сегодня идет о запаковке карт, а вот запаковка woe.rsc мне, конечно же, остро понадобится как только я получу сжатый по новому алгоритму файл 000, чтобы его подставить и проверить в действии. Это будет великий момент в переводе, если все получится. Поэтому надеюсь пока временно на твои наработки. Свой запаковщик woe.rsc я планирую сложным, и поэтому категорически не успеваю.

    ---------- Сообщение добавлено в 20:31 ---------- Предыдущее сообщение размещено в 20:16 ----------

    Интегрально подсчитал сжатие карты 000 новым алгоритмом.
    Общий размер всей карты 738 481 Бт
    Сжатие новым алгоритмом до 72 % от исходного (компрессия 1,39)
    Сжатие "родным" алгоритмом 39 % от исходного (компрессия 2,56)
    Негусто...
     
  14. Чёрный Думер и все виды материала

    Чёрный Думер

    Регистрация:
    17 мар 2010
    Сообщения:
    2.434
    WERTA, я имел в виду алгоритм запаковки карт. Тем не менее, зачем тебе альтернативный запаковщик RSC? Оно и сейчас прекрасно работает и радует глаз.
     
  15. WERTA ФанатЪ O-G

    WERTA

    Хелпер Переводчик

    Регистрация:
    12 ноя 2006
    Сообщения:
    8.512
    В общем, пошел простецкий алгоритм запаковки, который я задумал вчера. Но сказать, что он зажимает, это значит, сказать в кавычках. Пришлось «опуститься» до несжатого потока в 9 бит. Но тут был один нюанс. Буфер словаря распаковщика, судя по тому, что я не встречал чтений битов длиною более 13, рассчитан на 8192 значения. Поэтому я для гарантии не переполнения словаря распаковщика в woe.exe сделал вставки через каждые 4096 несжатых значений слова – 102h (сброс словаря), иначе бы каждое значение <100h заносилось бы в словарь. А размер «запакованной» алгоритмом без сжатия карты 000 равен 830 кБт – EMS может не выдержать такого (а мы и не знаем какой размер буфера у woe.exe при распаковке). Карта разжимается байт в байт с первыми разжатыми вариантами от оригинального алгоритма. Точно, как в аптеке!

    Итак Чёрный Думер, я не успеваю сделать свой запаковщик woe.rsc, поэтому это важное задание поручается тебе. В приложенном архиве лежит «сжато-несжатая» карта 000.bin, ее нужно подставить в коллекцию woe.rsc, и запаковать в том же порядке, в каком были все файлы в коллекции. Об этом Дэйв Фоллер говорил на абандонии, чтобы порядок файлов был соблюден. Ну и после, нужно будет торжественно запустить игру (000 – это начало игры, NEW GAME…). Желательно запускать в DOSBox-сборке, вдруг проблемы с памятью начнутся, тогда перевод можно будет ориентировать только на формат DOSBox-сборки, и убрать проблемы с нехваткой памяти путем настроек параметров запуска в DOSBox.

    А я скрещу пальцы, гадая «проглотит – не проглотит?»
     

    Вложения:

    • 000.rar
      Размер файла:
      315 КБ
      Просмотров:
      49
    kreol и Чёрный Думер нравится это.
  16. Чёрный Думер и все виды материала

    Чёрный Думер

    Регистрация:
    17 мар 2010
    Сообщения:
    2.434
    WERTA, wait a sec. Я пробовал запаковывать RSC без соблюдения порядка файлов - всё работало. Ты точно уверен, что его надо соблюдать?
    Мне-то переписать упаковщик несложно, чтобы он читал порядок файлов из дополнительного текстовика, а вот составить такой текстовик будет уже слегка сложнее. :)
     
    WERTA нравится это.
  17. WERTA ФанатЪ O-G

    WERTA

    Хелпер Переводчик

    Регистрация:
    12 ноя 2006
    Сообщения:
    8.512
    Нет, только помню подобное упоминание в теме на абандонии. Давай пока не по порядку.
     
    Чёрный Думер нравится это.
  18. Чёрный Думер и все виды материала

    Чёрный Думер

    Регистрация:
    17 мар 2010
    Сообщения:
    2.434
    WERTA, увы:

    500e94e882bfc656d25f2a87a78bb024.png
     
    WERTA и Bato-San нравится это.
  19. WERTA ФанатЪ O-G

    WERTA

    Хелпер Переводчик

    Регистрация:
    12 ноя 2006
    Сообщения:
    8.512
    Похоже жать надо сильно. А я не могу понять как сделать алгоритм сжатия более эффективным. А вообще до этого зажатие woe.rsc проверялось? Ладно сам попробую запаковщик woe.rsc сделать, чтобы быстрее наблюдать результат.
     
    Чёрный Думер нравится это.
  20. Чёрный Думер и все виды материала

    Чёрный Думер

    Регистрация:
    17 мар 2010
    Сообщения:
    2.434
    WERTA, да, проверялось. Причём не раз. На оригинальных ресурсах всё упаковывается 1:1 и игра отлично с новым ресурсником работает. И я повторюсь: зачем делать ещё один запаковщик? Это же изобретение велосипеда. А свой я выкладывал в открытый доступ на первой странице темы по разбору ресурсов игры. Вместе с инструкцией по использованию.

    ---------- Сообщение добавлено в 19:34 ---------- Предыдущее сообщение размещено в 19:30 ----------

    Кстати, у меня почему-то в игре наблюдаются такие вот графические артефакты:

    5932b732e900ecf7af2bbe9f67a45c0a.gif

    Можно ли с этим что-нибудь сделать?
     
  21. WERTA ФанатЪ O-G

    WERTA

    Хелпер Переводчик

    Регистрация:
    12 ноя 2006
    Сообщения:
    8.512
    ЕСТЬ!!!!

    Чёрный Думер, тот файл был не вполне правильным. Разобрался я с твоим запаковщиком - "чоткая" вещь и главное очень удобно. Я сформировал несжатый файл, запаковал, и... заиграло. Мне нужно подтверждение от тебя. Файл прилагаю.

    Да, на них жаловались многие на абандонии. Я не знаю как это искоренить.
     

    Вложения:

    • 000.rar
      Размер файла:
      312,8 КБ
      Просмотров:
      41
    kreol и Чёрный Думер нравится это.
  22. Чёрный Думер и все виды материала

    Чёрный Думер

    Регистрация:
    17 мар 2010
    Сообщения:
    2.434
    WERTA, ты меня застал в дверях уже, мне надо свалить кое-куда на несколько часов. Приеду - сразу же проверю.
    А вещь не "чоткая", самая что ни на есть обычная. Но спасибо. :)

    Кстати, у тебя эти артефакты тоже есть?
     
    WERTA нравится это.
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление