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

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

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

Wing Commander IV: Цена свободы

Тема в разделе "Переводы своими руками", создана пользователем Рыжий Тигра, 8 янв 2007.

  1. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Процесс перевода игры "Wing Commander IV: Цена свободы"- в разгаре. Желающие опробовать то, что получилось, могут добраться сразу до описания перевода и ссылок на его скачивание, щёлкнув по этой ссылке.

    Желающим посоучаствовать в переводе - рекомендую: полезные для переводчика ссылки - словари, книги, статьи и прочие материалы. Пополнение копилки приветствуется!

    См. также:
    Самая свежая тестовая сборка и инструкции по её установке
    Бета-тестеры, wэлкам!
    31 дек 2016

    Upd 1:
    В связи с участившимися постами здесь "чисто для поржать" - вынужден объясниться.
    6 янв 2014

    Upd 2:
    Приглашаю желающих поучаствовать в переводе. Отозвавшиеся будут увековечены в финальных титрах. (Никаких более материальных благ, к сожалению, обещать не могу. :( )
    27 мая 2014

    Upd 3:
    Наконец удалось пробить барьер несовместимости моего перевода с версией игры от GOG!!! Желающим опробовать - wэлкам!
    2 окт 2014
     
    Последнее редактирование: 21 апр 2017
    kirik-82 нравится это.
  2.  
  3. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Вот такие получились шрифты:
    gflg-401x433.png gflg-inst-529x649.png gfmd-289x313.png gfmd-inst-401x433.png gfsm-225x241.png gfsm-inst-225x241.png slrg-241x433.png ssml-193x217.png ssml-inst-193x217.png subs-241x433.png subv-193x313.png vsml-161x145.png

    Теперь осталось всё это программно обеспечить, т.е. налабать код, который при сборке перевода будет выбирать из каждого шрифта нужные страницы.
     
    jack7277, ZoRg, Neitan и 2 другим нравится это.
  4. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Засада! Детальный анализ текстов (в основном субтитров радиообмена, хотя и обычные надписи по всему авианосцу тоже внесли свою лепту) из испанского издания WC4 обнаружил несколько букв, которых не было в оригинальных шрифтах игры. Вот они:
    \xAB - ½
    \xD4 - È
    \xD5 - ı (i без точки)
    \xD6 - Í
    \xD8 - Ï
    \xD9 - ┘ (псевдографика)
    \xDA - ┌ (псевдографика)
    \xE7 - þ
    Собственно буквы взяты из ДОСовской западноевропейской кодировки, как её показывает winxp'шная charmap.exe.
     
    Neitan нравится это.
  5. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Кстати, 32-битную графику имеет смысл таки сделать. Для простоты можно самой игре заблокировать выбор между 8 и 16 битами - изначально игровой движок рожает картинку только 8-битную, значит, только этот режим ему и оставить, - а уже его конвертировать в 32 и на экран.
     
    Bato-San нравится это.
  6. nop

    nop

    Регистрация:
    5 дек 2014
    Сообщения:
    2.297
    @Рыжий Тигра, Ну, могу что-то закодить для этой цели. Желательно копировать картинку на экран параллельно с ее преобразованием 8->32/24, чтобы не терять время. А до того весь DDraw гонять в offscreen surface в системной памяти.
     
  7. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Пока рано - сначала покопаюсь в сырцах, чтобы хоть сориентироваться, где и что править.
    Не уверен, что прокатит, - надо ж ещё выводить свои субтитры (некрологи, Папашины мини-лекции в оружейке), а их лучше рисовать поверх 640*480*32 - чтобы сглаживало и размеры букв были постоянными.
     
  8. nop

    nop

    Регистрация:
    5 дек 2014
    Сообщения:
    2.297
    Можно выводить в отдельный Surface, можно даже другого разрешения и потом смержить при генерации финальной картинки. Субтитры обновляются сравнительно редко ведь, поэтому их surface не будет меняться на каждом кадре. Лишь бы был альфаканал, чтобы заблендить хорошо.
     
  9. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Э... Хм. Ага.
    Нет, всё равно не понял. Да и подзабыл уже многое. :-( Накидай алгоритм на пальцах, если тебе не трудно.
    На входе:
    • 640*480*8 - сгенерированная игрой цветная (палитровая) картинка;
    • 640*480*? - surface (256 серых) с текстом субтитра;
    • 640*480*? - ещё один 256-серый surface с текстом субтитра, но с буковками пошире, - для альфа-канала.
    Кто из них должен быть в системной памяти, а кто в видеопамяти? Как сделать 256-серый surface? Как сделать вывод текста в этот surface со сглаживанием? Как потом собрать?
     
  10. nop

    nop

    Регистрация:
    5 дек 2014
    Сообщения:
    2.297
    @Рыжий Тигра, все surface, куда рисуем - в системной памяти. surface с субтитрами любого цветового формата. Можно не ddraw surface, а, например, GDI DIB, если в него удобнее рисовать. А потом я накропаю код копирования всего этого в обычный экранный PRIMARY SURFACE. Если надо что-то дополнительное сделать, например, подблурить тень - можно и это.
     
  11. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Ага. А как сделать, чтобы в картинке и в альфа-канале текстовые строки были разными?

    (чуть позже) Ага, кажется, нашёл: DDPF_ALPHA для маски и DDPF_LUMINANCE для картинки, так?
    Но тут проблема: я не умею создавать surface'ы from scratch. :-( Заполнить с нуля здоровенную кучу полей в нескольких структурах и при этом не сильно наврать, да ещё и практически вслепую (второго компа нет и применить двухмашинную отладку негде)... Страшно. :-)
     
  12. nop

    nop

    Регистрация:
    5 дек 2014
    Сообщения:
    2.297
    Я сделал предварительные эксперименты, но ответа на сообщения в привате пока не получил :(
    Создавать Alpha/luminance не получится. Виндовс не умеет рисовать в такие штуки текст, как я понимаю. Нужно делать что угодно, куда сабы рисоваться будут.
     
  13. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Сорри за длительное отмалчивание: на работе третью неделю перманентный аврал, прихожу домой поздно, пожрать приготовить ещё успеваю, а вот в инете посидеть хоть 15 минут - уже далеко не каждый вечер. :-(
    А сегодня наконец отоспался, продрал глаза где-то к обеду, для размять мозги залез в исходники dxmci и... за полчаса допёр, как сделать 32-битную картинку, и таки сделал! Оказалось до смешного просто:
    • в перехваченном IDirectDraw::SetDisplayMode() внаглую заменил третий параметр (кол-во бит на пиксел) на 32;
    • в перехваченном IDirectDrawSurface::Unlock() доработал маленькую функцийку, которая разворачивала 8-битную палитровую картинку в 16-битную, так чтобы развёртывала в 32-битную;
    • скомпилировал - запустил - заработало.
    Сам удивляюсь. :-) Но по всем симптомам - картинка настоящая 32-битная: и текст по ней выводится почти втрое быстрее, чем по прежней 16-битной, и главное - переключается с рабочего стола на полноэкранную картинку и обратно за пару десятков миллисекунд, а не за треть тире половину секунды, как раньше.
     
    Последнее редактирование: 5 ноя 2016
    Sherhan007, jack7277, Dimouse и 4 другим нравится это.
  14. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Наконец дошли руки и пытаюсь сделать это по-человечески, совместимо со сменой языка перевода: в .wsg-файлах пусть эти надписи лежат по-английски, а подменять их переводом буду только при загрузке savegame'а (а при сохранении, соответственно, менять обратно).
    Уже примерно придумал, как и что делать при перехвате чтения и записи .wsg'ов; осталось придумать, как провернуть это через мой хак-движок (команда REPL не проходит, т.к. порядок следования переводимых строк в .wsg-файлах меняется), и собственно реализовать.
     
    Последнее редактирование: 13 ноя 2016
    kirik-82 нравится это.
  15. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Сделал. Но с каким-то косяком: уже нашёл последовательность действий, при которой вторая загрузка одного и того же .wsg crash'ает игру. :-( Если за сегодня не расколю в чём дело - выложу как есть. :-(
    Upd. Нашёл уже. Это я сам тупанул. :-(
     
    Последнее редактирование: 19 ноя 2016
  16. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Нашёл и исправил ещё одну бяку: в 32-битном режиме, в отличие от 16-битного, не работает автовосстановление картинки после слёта с полного экрана - переключаюсь с игры на, скажем, текстовый редактор, потом обратно в игру - а фиг, чёрный экран. :-(
    Пришлось чинить вручную: на каждом круге цикла StretchDIBits() - FlipToGDISurface() проверяю связь surface'ов с экраном (через их метод IsLost()), и если где-то слетело - для слетевших вызываю метод Restore().
    В 16-битке игра это делает сама, но если гора не идёт к Магомету... :-)
     
  17. nop

    nop

    Регистрация:
    5 дек 2014
    Сообщения:
    2.297
    Я таки предлагал попытаться эту схему переделать радикальнее.
     
  18. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    @nop, её не я придумал - игра так вызывает, я только перехватываю эти функции. Искать этот цикл в самом wc4dvd.exe (а его ещё и две версии), придумывать на что заменить, а потом отлавливать ещё и косяки новой реализации плюс эмулировать всякую полезную (с т.з. .exe'шника) побочку старой - откровенно влом. Тем более что у этого цикла есть ещё и побочка полезная для меня - с полдесятка точек, которые я перехватываю и там выясняю номер вылета, чем закончился предыдущий, ещё что-то...
     
  19. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    @Рыжий Тигра, бабахни по какому-нибудь участку, чтобы охватить сразу процентов 80 текста, а потом уже хардкор по допиливанию.
    Просто ты если бросишь это вот всё ну 1.5 человека же смогут продолжить и еще 100500 лет нипаиграть, этот процесс он бесконечен.
     
  20. fantasyrpg

    fantasyrpg

    Регистрация:
    19 дек 2016
    Сообщения:
    2
    Рыжий Тигра
    Давно слежу за данной темой.

    Рыжий Тигра, подскажи какой процент готовности вцелом перевода?

    И еще вопрос, возможно Ваш перевод наложить по вверх лицензионной копии игры купленной в Origin?
    У меня просто купленная версия от Origin, в папке корне с игрой есть папка vob где лежат ролики. Пробовал делать как указанно вашей инструкции, удалил папку vob и скинул папку проиндексированных роликов mkv и другие файлы, игра не запускается, он ищет папку vob и чёрный экран. Подскажите что я не так сделал?

    Если есть репак данной игры киньте ссылку, где уже интегрирован ваш перевод, чтобы установил и забыл про необходимые дополнительные манипуляции, чтобы игра побежала на русском?

    Заранее спасибо.
     
  21. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Ура! Я наконец допёр, в чём разница! В 32-битности, ясен перец. Перехватчик метода IDirectDraw::CreateSurface() создаёт surface с глубиной цвета как у видеорежима, а потом игра IDirectDrawSurface::GetSurfaceDesc()'ом выясняет глубину цвета surface'а и... во-во, обнаружив что-то с её точки зрения несуразное (32 бита!), решает от греха подальше лишний раз его не трогать. :-) :-(
    Вылечил элементарно: критичный surface делаю таки 16-битным, а в 32 перевожу уже потом, вместе с растяжкой от 640*480 до реального разрешения. Автовосстановление заработало. :-)
    Не могу: аврал на работе продолжается, на перевод остаётся ну аж по 15-20 минут в день - переводить такими кусочками один фиг невозможно; а грабли править ещё кое-как получается.
    Трудно сказать. Фильмов перевёл половину, собственно вылетов - только группу A и B (перед появлением Полсена), статичную часть игры (на борту авианосцев) - "Лексингтон" полностью и "Неустрашимый" где-то процентов 80... в общем, в целом до половины пока не дотягивает.
    Э... http://samlib.ru/r/ryzhij_tigra/about.shtml (и аж покраснел от собственной наглости).
    Понятия не имею, никогда его в руках не держал. Если подскажешь где скачать не за деньги - посмотрю, что с ним можно сделать. Поверх версии от GOG, во всяком случае, запустить удалось.
    Тут увы - такой сборки у меня нету. :-( Вот допилю войну с глюками до более-менее стабильного состояния, чтобы можно было поиграть не ныряя поминутно в отладчик, и поделюсь. (мечтательно) Может, нам хоть рождественские каникулы устроят на работе...
     
    Последнее редактирование: 26 дек 2016
  22. fantasyrpg

    fantasyrpg

    Регистрация:
    19 дек 2016
    Сообщения:
    2
    А не сложно тебе сделать экзешник, например для GOG версии (я бы мог купить GOG версию данной игры благо не так дорого), запустил его, указал путь к папке с игрой и в конце после установки закинул проиндексированные ролики?

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

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