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. Вредный

    Вредный

    Регистрация:
    25 дек 2013
    Сообщения:
    1.242
    Bato-San'a мне не переплюнуть.
     
    Bato-San нравится это.
  4. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Bato-San, звучит всего четыре слога. :-(
     
  5. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    Рыжий Тигра, где четыре слога ? да в любом языковом варианте их больше. Ты ваще про что ?
     
  6. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Вот про это:
    Любой неинтересен - звуковая дорожка аглицкая, остальные две строчки это только субтитровые переводы. Вот в английском и сосчитай.
     
    Последнее редактирование: 22 янв 2014
  7. Вредный

    Вредный

    Регистрация:
    25 дек 2013
    Сообщения:
    1.242
    Ма-зи-ла на мы-ло - у тебя уже шесть получается.
    Но ладно, суть ясна: надо кратко.
    Например, "Что упало - то пропало" - для тех, кто понимает.
     
  8. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    Рыжий Тигра, Вот тебе краткий вариант дразнилки: "сам дурак". Три слога. К переводу не имеет и не может иметь отношения, зато кратко. Но минус в том, что ты как всегда неточно поставил задачу... а проще говоря самого тя на варенье.
     
  9. pct

    pct

    Регистрация:
    25 окт 2009
    Сообщения:
    3.357
    "Из таких пилотов я делаю компоты."
     
    Val07og и Рыжий Тигра нравится это.
  10. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Для летавшего в хотя бы заставку WC4 - задача поставлена точно. Для летавшего дальше заставки (хотя бы до мордобоя Маньяк-Деккер) - ещё и исчерпывающе. Ссылки на всю гейму есть в заглавном посте раздачи. В чём проблема?

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

    Короче пока не получается. И послушай как оно выглядит и звучит в бою. Если аккуратно прикрутить дубляж - никто ничего не заметит. :-) А я свой перевод затачиваю ещё и под перспективу дубляжа.

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

    pct, неплохо! Но проблема в том, что французский перевод игры сам по себе... слишком детсадовский, что ли. В данном случае оно сгодилось, чтобы догадаться - вопли Маньяка это дразнилка, а не серьёзное пожелание сопернику сдохнуть... :-)
     
    Последнее редактирование: 22 янв 2014
  11. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Очередная бета:

    [​IMG]

    • слегка изменён шрифт меню коммуникатора - вроде бы стал чуть читабельнее;
    • новый перевод названий ракет;
    • перевод радиотрёпа в бою - пока только в "заставочном" вылете (A1 - перелёт с Нефелы, учебный бой с Маньяком, стычка с пиратами, первая встреча с Козырем у станции "Орландо", разговоры с Мастером и Шахтёром, посадка на станцию "Блупойнт").
    При запуске в каталоге с игрой создаётся подкаталог XLAT-DMP и в него игра складирует ещё не переведённые кусочки текстовок.
    Прочие особенности и порядок установки/использования унаследованы от предыдущей беты.
     

    Вложения:

    • wc4dvd-rus-beta4.7z
      Размер файла:
      141,2 КБ
      Просмотров:
      33
    • xlat-b4.png
      xlat-b4.png
      Размер файла:
      23 КБ
      Просмотров:
      928
    Последнее редактирование: 26 янв 2014
    Val07og, Sherhan007 и kirik-82 нравится это.
  12. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    УРААА!!! Я вскрыл формат хранения звуков радиообмена:
     

    Вложения:

    Val07og, Sherhan007 и kirik-82 нравится это.
  13. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Итак, излагаю подробности.
    Для более качественного перевода субтитров к сеансам радиосвязи понадобился их звук. Где лежит - ХЗ (во всяком случае, не вместе с видео - это я уже выяснил экспериментально).
    Дальше просто: скачал французское шестикомпактовое издание, своим trextra расхреначил все .tre-файлы на IFF'ы и сравнил с аналогичными потрохами от английского "канонического". В отличающихся IFF'ах обнаружил войсовые звуковые дорожки. Всё!
    Сейчас допиливаю две утильки: декомпилятор IFF'ов, чтобы выделял звукозаписи (а также шрифты, картинки, видеоролики и прочую бинарь, буде́ таковая обнаружится) из IFF'ов в отдельные файлы, и компилятор - чтобы, соответственно, собирал это всё обратно в IFF'ы.

    Upd. Допилил:
     

    Вложения:

    • iffutils.7z
      Размер файла:
      35,4 КБ
      Просмотров:
      35
    Последнее редактирование: 4 фев 2014
    Val07og, Sherhan007 и kirik-82 нравится это.
  14. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Временно забил болт на субтитры, копаю клавиатурный ввод - достала блокировка ввода русских букв (надписи на savegame'ах, позывной в диалоге с UNITERM'ом, "Y/N" на переспрос о прекращении игры...).
     
    Val07og нравится это.
  15. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Есть от немецких товарищей интересный подарочек: DVD-версия, в которой заменён звук не только в фильмах, но и в радиопереговорах. Кому интересен способ перевода именно войсом - wэлкам!

    http://mygully.com/thread/350-wing-commander-iv-dvd-komplett-deutsch-absolute-raritaet-1085467-2/
     
    Последнее редактирование: 11 фев 2014
    Val07og нравится это.
  16. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Сменил кодировку - вместо хитронавороченной и "щадящей" "европейские" буквы лучше пусть будет привычная 1251, и фиг с ними с умляутами (затёртые позиции отмечены фиолетовым фоном):

    [​IMG]

    Заодно упрощается ввод русских букв в позывные, savegame'ы итд.
     

    Вложения:

    Последнее редактирование: 14 фев 2014
    Sherhan007, Val07og и kirik-82 нравится это.
  17. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
  18. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
  19. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Сделал русский клавиатурный ввод:

    [​IMG]

    [​IMG]

    [​IMG]
     

    Вложения:

    • kbdrus01.png
      kbdrus01.png
      Размер файла:
      42,1 КБ
      Просмотров:
      657
    • kbdrus02.png
      kbdrus02.png
      Размер файла:
      40,7 КБ
      Просмотров:
      480
    • kbdrus03.png
      kbdrus03.png
      Размер файла:
      39 КБ
      Просмотров:
      668
    kirik-82, Sherhan007, Val07og и 4 другим нравится это.
  20. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    Рыжий Тигра, пиши как сделал.
     
  21. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Да в общем-то через тухес. :-) Давно допёр, что буквы при вводе где-то фильтруются. В попытке отследить сначала прикрутил в dxmci.dll перехватчик к вызову ReadConsoleInput() - убедился, что функция не вызывается; потом перехватил приём message'й, натыкал в перехватчики кучу отладочной печати и breakpoint'ов, трахнул wc4dvd.exe v3.02 дизассемблером (PE Explorer), прошагал пару вечеров отладчиком и таки засёк, кто запрашивает клаву и потом фильтрует ейный базар.
    Таких мест оказалось два: ввод позывного в заставке регистрации в UNITERM'е и ввод описания savegame'а. Примерный эквивалент на Си где-то вот такой:
    Код:
    while ( strchr( допустимые_буквы, tolower( буква_с_клавы ) ) == NULL ) ;
    Хорошо, что в обоих вызовах массив дозволенных букв один и тот же; плохо, что при добавлении недостающей кириллицы хвост массива наползает на ещё какие-то важные данные. И toupper() / tolower(), ясен перец, тоже с кириллицей не дружат. :-(
    Дальше просто:
    • раз новые данные и код не влазят в .exe'шник - можно разместить их и в dxmci'е;
    • dxmci не гарантирует постоянство адреса загрузки => нужен механизм трансляции перемещаемых адресов, в т.ч. и в относительные смещения (для jump'ов и call'ов);
    • нужен также механизм выборочной подстановки вышеперечисленного без перекомпиляции dxmci'я;
    • такой механизм сам просится на добавление возможности задавать подставляемые данные - как минимум строки - не только в теле dxmci'я, но и в тексте перевода...
    Вот так за каких-то пару недель зимних вечеров и собралось полтыщи строк сишных сырцов хакового движка.
    А вот собственно пример реализации на нём русификатора клавиатурного ввода:
    Код:
    ; === замена таблицы проверки символов при вводе
    
    ; старая таблица "проверки на букву":
    @ KEYT x30102 x4088  x30202 x4088
    
    ; новая таблица:
    @ RUST " abcdefghijklmnopqrstuvwxyz1234567890!@#$%^&*(),`'-=_+.?/<>|абвг\gдеё\эжзи\ы\ёйклмнопрсту\uфхцчшщъыьэюя
    
    ; замена адреса старой таблицы на адрес новой:
    { ADDR @KEYT @RUST
      = x30100 x521E5  x30100 x5ADFE  x30200 x521E5  x30200 x5ADFE
    } ADDR
    
    ; === переделка ф-ций tolower(), toupper() под кириллицу
    
    ; старые адреса переходов
    ; фрагмент ф-ции toupper():
    ; 004A2931  83 F8 61             cmp  eax,61h
    ; 004A2934  0F 8C DD 00 00 00    jl   L004A2A17
    . TUPR xDD
    
    ; фрагмент ф-ции tolower():
    ; 004A26D1  83 F8 41             cmp  eax,41h
    ; 004A26D4  0F 8C DD 00 00 00    jl   L004A27B7
    . TLWR xDD
    
    ; новые адреса: @RUPR, @RLWR - уже прошиты в dxmci
    
    ; собственно замена смещений в командах условного перехода:
    { OFFS .TUPR @RUPR
      = x30100 xA18A6  x30200 xA1936
    } OFFS
    { OFFS .TLWR @RLWR
      = x30100 xA1646  x30200 xA16D6
    } OFFS
    (формат адресов такой же, как при замене строк).

    А вот так выглядят вышеупомянутые @RUPR, @RLWR в dxmci.dll:
    Код:
    const uint8_t upper_table[ 0x40 ] = {
      0x80, 0x81, 0x82, 0x83,  0x84, 0x86, 0x86, 0x87,  0x88, 0x89, 0x8A, 0x8B,  0x8C, 0x8D, 0x8E, 0x8F,
      0x90, 0x91, 0x92, 0x93,  0x94, 0x95, 0x96, 0x97,  0x98, 0x99, 0x9A, 0x9B,  0x9C, 0x9D, 0x9E, 0x9F,
      0xA0, 0xA1, 'Ў',  0xA3,  0xA4, 0xA5, 0xA6, 0xA7,  0xA8, 0xA9, 0xAA, 0xAB,  0xAC, 0xAD, 0xAE, 0xAF,
      0xB0, 0xB1, 0xB2, 'І',   'Ґ',  0xB5, 0xB6, 0xB7,  'Ё',  0xB9, 'Є',  0xBB,  0xBC, 0xBD, 0xBE, 'Ї'
    };
    
    const uint8_t lower_table[ 0x40 ] = {
      0x80, 0x81, 0x82, 0x83,  0x84, 0x86, 0x86, 0x87,  0x88, 0x89, 0x8A, 0x8B,  0x8C, 0x8D, 0x8E, 0x8F,
      0x90, 0x91, 0x92, 0x93,  0x94, 0x95, 0x96, 0x97,  0x98, 0x99, 0x9A, 0x9B,  0x9C, 0x9D, 0x9E, 0x9F,
      0xA0, 'ў',  0xA2, 0xA3,  0xA4, 'ґ',  0xA6, 0xA7,  'ё',  0xA9, 'є',  0xAB,  0xAC, 0xAD, 0xAE, 'ї',
      0xB0, 0xB1, 'і',  0xB3,  0xB4, 0xB5, 0xB6, 0xB7,  0xB8, 0xB9, 0xBA, 0xBB,  0xBC, 0xBD, 0xBE, 0xBF
    };
    
    __declspec( naked ) int wc4_toupper( void ) { // 4A2934  DD000000
      __asm {
        cmp eax, 0
        jge noprocess
        cmp eax, 'Б' - 1
        jl single
        cmp eax, 'б' - 1
        jl noprocess
        sub eax, 'б' - 'Б'
        jmp noprocess
    single:
        mov al, upper_table[ eax + 80h ]
    noprocess:
        pop ebx
        add esp, 8
        retn
      }
    }
    
    __declspec( naked ) void wc4_tolower( void ) { // 4A26D6  DD000000
      __asm {
        cmp eax, 0
        jge noprocess
        cmp eax, 'Б' - 1
        jl single
        cmp eax, 'Я'
        jg noprocess
        add eax, 'б' - 'Б'
        jmp noprocess
    single:
        mov al, lower_table[ eax + 80h ]
    noprocess:
        pop ebx
        add esp, 8
        retn
      }
    }
    
    typedef struct {
      uint32_t name;
      /* void * */ uint32_t addr;
    } addr_tabl_t;
    
    #define ADDR_TABL( name, addr ) \
    { #@name, (uint32_t) (void *) (addr) }
    
    addr_tabl_t xlat_addr_tabl[ ADDR_TABL_SIZE ] = {
      ADDR_TABL( RUPR, wc4_toupper ),
      ADDR_TABL( RLWR, wc4_tolower ),
      ADDR_TABL( \0, NULL )
    };
    На очереди - переделка на этот же движок механизмов перехвата функций файлового ввода (на них построен перевод игры) и строкового вывода (перевод менюшек внутри видеороликов).
    Ну, и для WC3 этот же движок тоже более чем годится.
     
    Последнее редактирование: 28 фев 2014
  22. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    Рыжий Тигра, опять твой хукер ((
    Сабж ddraw использует? Запускается под виндой напрямую или через досбокс?
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление