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
    В смысле - совсем задавил? Проверь, кто теперь вместо него занимается матрёшками.
    Проверь по
    Точно работает?

    ---------- Сообщение добавлено в 02:26 ---------- Предыдущее сообщение размещено в 02:23 ----------

    Кстати, по слухам, разработчики пакета LAV - толковые ребята. Подкинь им (если не влом, конечно) почитать эту ёпопею, пусть сделают выводы и прикрутят поддержку ordered chapter'ов. Человечеству позарез нужен опен-сорсный сплиттер для матрёшки, т.к. мацневский (Haali splitter) таковым, увы, не является. :-(

    ---------- Сообщение добавлено в 02:42 ---------- Предыдущее сообщение размещено в 02:26 ----------

    http://forum.doom9.org/showthread.php?t=170572
     
  4. Darth House

    Darth House

    Регистрация:
    5 сен 2014
    Сообщения:
    20
    Переключил на Haali.
    Точно.

    Я в таких вещах ни бум-бум, ты им, думаю, объяснишь лучше.
     
    Рыжий Тигра нравится это.
  5. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    ОК. Буду обновлять раздачу - специально добавлю, что Gabest и LAV не годятся. :-(
     
  6. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    С dwrap.dll проблемы: отключить её силами dxmci'я (технически: перенаправить вызовы к dwrap'у на изначальный ddraw.dll), чтобы вообще под ногами не путалась, могу; выяснить, используется в данном запуске или нет, могу; а переконфигурировать (задать тип рендера) - нет. :-(
    Проблема номер два: dwrap патчит .exe'шник, причём "знает" только версию 3.01, а версию не проверяет - поэтому v3.02 подвешивает. А патчить dwrap силами dxmci'я - нуегона́, он опен-сорсный и все модификации фиг учтёшь. :-(
    Поэтому предлагаю финт ушами: имплантировать dwrap в dxmci, имеющийся dwrap.dll отключать, а вызовы к нему переадресовывать либо на имплант, либо на ddraw.
     
  7. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Дело на мази: dxmci под GOG'ом уже работает, навожу предпоследнюю полировку - вылизываю расположение и размеры субтитров и киноменюшек на экранах 16*9. Maybe завтра поделюсь бетой.
    Основная пока не решённая проблема - dwrap упорно "не желает" сотрудничать с wc4dvd.exe v3.02. :-(
     
  8. reader2

    reader2

    Регистрация:
    2 сен 2014
    Сообщения:
    23
    Ну вы и накрутили делов... В моё время подгоны под сабы [синхронизацию] я намного проще делал, правда на аниме...
    Этим, GOG и ручками (всё вручную короче). Кому надо KMplayer (и производный PotPlayer в помощь)
    Кстати, Тигра, если ещё актуально -
    But you can’t unring the bell (eng)
    Но мосты уже сожжены (rus)
    Так пойдёт?
     
    Последнее редактирование: 26 сен 2014
    Рыжий Тигра и kirik-82 нравится это.
  9. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Про dxmci под GOG'ом: вылезла проблема - не отображаются некрологи. Как это - не пойму: функция, которая врисовывает буковки в картинку, железно выполняется, буковки ложатся по правильным местам... а на экран поступает картинка без буковок. Причём в режиме "legacy" (renderer.cfg) некролог выводится, а в "ddraw", "direct3d" и "opengl" - фигушки. :-(

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

    Ай, это не самая трахоёмкая задача - вылизывание двухминутного ролика занимает, ну, полвечера.
    Сенькс!
    Посмотрел. Хм. Пока не уловил, где он особо хорош. Сравниваю с Urusoft'овским subtitle workshop'ом (см. раздел "благодарности за" в финальных титрах) - по ролику ходит удобнее; позволяет работать в utf8; не размазывает выделенное курсивом/жирностью слово на весь субтитр; как редактировать субтитр не вылезая из просмотра видео - не нашёл (нужны лишние телодвижения?); автоподстройка длительности фраз дико косячит - половина правленых фраз то и дело вылазит концом за смену сцены или упирается в начало следующей фразы (настройку минимального интервала опять же не нашёл), причём автомат даже не спрашивает и не показывает насколько ужал/растянул - надо держать включенным что-то вроде compareit!'а и постоянно сличать с оригиналом...
    В общем, "хай будэ". :-)
    А что это?
    Не, мне "колокол прозвонил и не отменить" больше нравится. :-)
     
  10. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Разобрался: оказывается, в полноэкранном режиме pitch (смещение начала строки картинки относительно предыдущей) больше длины строки и не константа, как я думал, а вычисляется игрой по ХЗ какому алгоритму.
    Чтобы это выяснить, пришлось вспомнить молодость с двухмашинной отладкой (к счастью, оказалось, что встроенный в микро$офт-визуал-студию-6 отладчик эту фишку поддерживает, а у меня дома как раз случайно завалялись :-) два компа). Нашёл, где игра хранит значение pitch'а, и поправил субтитровыводилку, чтобы брала оттуда.
    Ещё осталось подхимичить координаты и размеры шрифтов в киноменюшках (это быстро) и разобраться, почему непорядки с игрой версии 3.02 (тут по идее тоже просто, но пока не знаю с чего начать). А в остальном GOG'овский dwrap отлично подружился с моей русификацией - вот образцы картинок в режиме opengl при разных разрешениях:
     

    Вложения:

  11. reader2

    reader2

    Регистрация:
    2 сен 2014
    Сообщения:
    23
    GOG?
    Ну это я так GOM Media Player oбозвал. Забыл просто как называется.
     
    Последнее редактирование: 28 сен 2014
    Рыжий Тигра нравится это.
  12. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

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

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

    Имею проблему, тсзать, организационного характера.
    Специфика dwrap'ового способа вывода кинороликов на широкий (16*9) экран: выводится кино формата 4:3 в окно рендерера такой же формы, которое торчит сверху и снизу на пару сотен пикселов за пределы экрана - так, что поля кинокартинки отрезаются. Всё бы хорошо бы, но если модуль вывода субтитров (DirectVobSub, ffdshow или что ещё) настроен выводить субтитры внизу картинки, то они срезаются вместе с полями. В результате игрок-зритель фиг догадается, что в роликах есть ещё и какие-то субтитры. :-(
    Не, ну можно расписать в доке, но честно: многие из нас читают доку перед запуском игры? :-(
     
    Sherhan007 нравится это.
  13. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Готово - имплантированый dwrap фурычит в полном объёме.
    В запасе осталось немножко Дури и просится потратиться на пакет "англификации" игры - со шрифтами, субтитрами некрологов и всеми патчами к коду, но без русского перевода. Вечером выложу всё вместе.
     
    Sherhan007 нравится это.
  14. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Третий день воюю с загадочной граблей.
    Под win2000 всё работает как часы. А под winXP в первом же вылете в системе Геллеспонт (вылет B1, сопровождение транспорта) наблюдаю странное явление: как только в первом бою с пиратами удаётся завалить второго не больше чем через десяток секунд после первого (при этом звучит маленький торжественный кусочек музыки - без разницы, кого сбил я, а кого мой ведомый или зенитчики транспорта) и при этом я оказываюсь меньше чем в 1500 кликах от транспорта (он тут же радостно сообщает "автопилотная связка установлена") - фоновая музыка прекращается, и включить её обратно методом "выключил и снова включил" не удаётся.
    Но и это ещё полбеды. Этот эффект давно известен и средство борьбы с ним тоже - "режим совместимости с win95" (закладка "совместимость" на свойствах .exe-файла). Но вот тут и начинается самое интересное: при подключенном dwrap'е в "режиме совместимости" игра подвисает при выходе. А как бороться с этой напастью - похоже, никто не знает. :-(
    В общем, очередную бету я сегодня выложу, но с этой граблей. А когда её поборю - выложу ещё раз.
     
    Последнее редактирование: 30 сен 2014
  15. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Обещанная восьмая бета: wc4dvd-rus-beta8.7z

    078f7e2b3c9fc72fb9c20ee16651f9b9.png

    Устанавливается примерно как и предыдущие беты - распаковкой в каталог с игрой и доработкой savegame'ов.
    Основные изменения:
    • самые свежие финальные титры;
    • процесс конфигурирования dxmci.dll на win64 теперь трошечки удобнее;
    • к русификации игры добавил "англификацию", на любителя (файл xlateng.dll;
    • прикрутил поддержку dwrap.dll (и, следовательно, возможность русифицировать GOG-версию игры);
    • специально для тех, у кого есть только GOG-версия, добавил .exe'шники - оригинальный DVD'шный (версии 3.01, патченный под win2000) и из DVD upgrade patch'а (версии 3.02), вместе с сопутствующими .dll'ами;
    • добавил .fb2.zip с самой последней версией пьесово-сценарного перевода.
    Уфф. Ещё в планах имею микроликбез по настройке всего этого хозяйства, но тут, наверно, лучше построить в форме "вопрос-ответ", так что спрашивайте.

    Ну, и это... пробуйте, критикуйте и хайте! Жду! :-)
     

    Вложения:

    Последнее редактирование: 4 окт 2014
    Sherhan007 нравится это.
  16. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Разбираюсь с загадочной граблей в "режиме совместимости с win95". Обнаружил, что грабля моя и появилась между седьмой и восьмой бетой, т.е. в принципе излечима. Но есть сложнячок: я ненароком бахнул архивы исходников от последней раздачи (декабрь прошлого года) и до конца июля с.г., а из уцелевших есть только инкрементные архивы и ни одного полного. Т.е. изменения между 7-й (12 сентября) и 8-й (30 сентября) бетами можно легко отследить в, тсзать, статике (сличением исходников), а вот в динамике (отладкой) - фигушки. :-(
    Практический вывод на будущее: хрен с ней с экономией места, надо делать только полные архивы. :-(
     
  17. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Ура! Раскопал-таки причину "загадочной грабли". FeyFre подсказал - это не у меня, это у микро$офта: opengl32.dll из состава winxp, подключенная к .exe'шнику в состоянии "совместимости к '95", при завершении процесса (precisely, при выполнении ф-ции DllMain() с параметром DLL_PROCESS_DETACH) подвисает нахрен. :-(
    Причём это свинство свойственно не только Wing Commander'у: точно таким же манером в "режиме совместимости с '95" ведут себя mcitest.exe (окно программы не закрывается) и dxmcicfg.exe (форма закрывается, но процесс продолжает висеть и снимается только диспечером задач через закладку "Процессы") - обе программы подключают dxmci.dll, которая содержит вызовы функций из opengl32.dll.
    Тест номер два: если микро$офтовскую opengl32.dll заменить на чужую, то зависания на выходе прекращаются. Я брал вот эту, из опен-сорсного пакета Mesa; она, правда, тормозная как чёрт знает что и игра с ней выдаёт всего 5-10 кадров в секунду, но для иллюстрации принципа вполне годится.

    Mario "HCl" Brito в своей dwrap.dll применил свой способ обхода этой грабли: в обработчике отключения (а DllMain( DLL_PROCESS_DETACH ) обычно вызывается перед самым завершением процесса) он внаглую вызывает TerminateProcess(). Но на мой вкус - это жлобство, западло и ненадёжно:
    • во-первых, не позволяет использовать .dll'ку динамически (ну кому нафиг нужна .dll, убивающая процесс при вызове FreeLibrary()?);
    • во-вторых, не даёт обработать отключение .dll'ам, которым не повезло вызваться после dwrap'а, и нарушает обычный порядок закрытия используемых файлов, соединений итд;
    • в-третьих, сильно зависит от порядка вызова DllMain()'ов при завершении: стоит обработчику отключения opengl32'шного сработать раньше dwrap'ового, как все эти ухищрения станут что роботу трусы. :-(
    Короче, нужен более другой способ. "Будем искать..." (L) С.С.Горбунков :-)

    ---------- Сообщение добавлено в 04:23 ---------- Предыдущее сообщение размещено в 03:09 ----------

    Агааа! :-) Этих opengl32.dll'ов в мире, оказывается, как собак нерезаных:
    http://nvworld.ru/files/old/docs/glide.html
    http://www.unrealadmin.org/forums/showthread.php?t=11947
    http://www.mesa3d.org/install.html
    http://qt-project.org/wiki/Cross-compiling-Mesa-for-Windows
    http://blenderartists.org/forum/showthread.php?40471-OpenGL-for-Windows-9x
    И вообще. На любые вкусы. :-)
     
    Последнее редактирование: 4 окт 2014
  18. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    К описанию восьмой беты добавил картинку с "англификации".

    ---------- Сообщение добавлено в 18:15 ---------- Предыдущее сообщение размещено в 17:36 ----------

    Свежий прикол - нам с Origin'ом выставили предъяву:
    :-)))))))))))))
     
  19. iunnamed

    iunnamed

    Хелпер

    Регистрация:
    15 янв 2007
    Сообщения:
    1.235
    Если opengl32.dll загружается динамически через LoadLibrary(), то ничего не висит - главное, чтобы этой библиотеки в импорте не было.

    Ещё можно извратиться: поковырял чуток и получился вот такой грязный, но рабочий хак.
    hackacls.dpr
     
    AxXxB нравится это.
  20. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    В эскадрилье бета-тестеров пополнение.

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

    Ага. И FreeLibrary() не подвисает? (открыл MSDN в соседнем окне и лихорадочно листает, чтобы при случае сделать вид будто с LoadLibrary() давно на ты) Сенькс за идею, ща опробую.
    Ё. :-( Я на паскале читаю слабовато. Расскажи подробнее, что и как оно делает и как его применить.
     
  21. iunnamed

    iunnamed

    Хелпер

    Регистрация:
    15 янв 2007
    Сообщения:
    1.235
    Инструкция по применению:
    1) Представляем, что это не паскаль, а псевдокод.
    2) Читаем код программы и комментарии - там всё расписано.
    А функции WinAPI, из которых пример состоит чуть менее, чем полностью, вообще, на любом языке одинаково работают.
    В частности, всё что идёт после "// finalization" и ниже и есть хак, который нужно вызывать при завершении работы или выгрузке свой библиотеки - убивается Event Handle библиотеки AcLayers.dll, из-за которого в Windows XP и происходит зависание.
     
  22. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    • Какое отношение aclayers.dll имеет до opengl32.dll?

      0009039d1f78f617aff85def0a0a6a1d.png

      (На розовенький не обращай внимания - просто снимок делался не под winxp, а под win2k.)
    • 0x71680145 и 0x5DC68, я так понял, получены "агентурным путём" (L) в процессе взлома; как эти адреса изменялись в прошлых версиях aclayers.dll и как намерены изменяться в будущих?
    • Зачем ReadProcessMemory(), не проще ли обратиться через (уже известный) указатель?
    • Кто такой d?
    • Какие возможны нехорошести от досрочного обламывания WaitForSingleObject()'а на NS_EmulateDirectDrawSync::g_hDoneEvent'е, чем это лучше аккуратного SetEvent()'а?


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

    Функции-то да, но пока вспомнил что "@" это получение указателя... :-

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

    Гы. Прикольно. :-) Делаю
    Код:
      HINSTANCE opengl_h = NULL, dxmci_h = NULL;
    //  opengl_h = LoadLibrary( "opengl32.dll" );
      dxmci_h = LoadLibrary( "dxmcid.dll" ); // собрана с opengl32.dll
      opengl_h = GetModuleHandle( "opengl32.dll" ); // возвращает не NULL
      FreeLibrary( opengl_h ); // возвращает 1, т.е. сработала
      return ( 0 );
    - всё работает, ничего не подвисает!
    Ща опробую тот же трюк в перехватчике ExitProcess()'а в самой dxmci.dll.

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

    О-ши-зеть!!! Работает и не подвисает:
    Код:
    // перехватчик ExitProcess()'а:
    DECLSPEC_NORETURN VOID WINAPI wc4_exit_process( IN UINT uExitCode ) {
      HINSTANCE opengl_h = NULL;
      opengl_h = GetModuleHandle( "opengl32.dll" );
      FreeLibrary( opengl_h );
      ExitProcess( uExitCode );
    }
    iunnamed, ну ты и жулик!!! :-))))))))))))

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

    Ё-пс, отставить восторги. На "собачнике" работает, а на живом wc4dvd.exe - хренушки. :-((((((
    Ухожу в глубокие раздумья на тему "как выяснить чего ещё в супе не хватает" (L).
     
    Последнее редактирование: 4 окт 2014
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление