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. Ogr 2 лол

    Ogr 2

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

    Регистрация:
    25 мар 2008
    Сообщения:
    6.492
    nop, ты попробуй найди плавный градиент в 256 цветных играх. там итак цветов в обрез.
     
  4. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Как раз 32 в WC'шные 5:5:5 впишутся. (подумав) А хотя нет: надо стрелку курсора, надо рамку, ещё что-то...
    Считаешь, что надо выводить в 24/32-битном? Мне, признаться, влом переписывать приличный кусок (плюс дописывать аналогичный вместо WC'шного 16-битного преобразования). Впрочем, если покажешь где 16-битность серьёзно корёжит картинку (навскидку - может быть в статичных сценах, где нужен диалог с персонажем) и где в .exe'шнике лежит пересчёт внутреннего 8-битного представления в 16-битное directdraw'ное - так уж и быть, переделаю.
    Ну и, конечно, переделаю в случае, если 16-битка где-то даёт "психоделическую палитру", - таких радостей нам не надо. :-(

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

    А в 5:5:5 никаких "более" не будет, а будут только 32.
    Навскидку в WC4 - фотосфера звёзд и край атмосферы планет. Но тут авторы игры обошли граблю - вкраплениями пикселов контрастного цвета с переменной плотностью, как в полиграфии допотопных фотореалистичных 16-цветных .pcx'ах.
     
  5. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

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

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Блин. Вопрос наконец дошёл до адресата. :-) Речь про вот такие http://www.old-games.ru/forum/attachment.php?attachmentid=23159 шрифтовые раскладки, как из поста # 1396? Это чисто для удобства шрифт-дизайнера: раскладка отлично редактируется либо GBS'ом,либо им же экспортируется в .bmp, правится хоть mspaint'ом и импортируется обратно. А окончательно компилируется в родной для WC4 формат уже компилятором переводов (iffmake), конкретно за шрифт отвечает директива "#FONT <кол-во-глифов> <макс-ширина> <высота> <код-фона> <имя-исходного-файла>" (примеры см. в последней бете в файле src\xlat.7z:xlat\fnt\fonts.trans.txt; там же лежат GBS-совместимые .fnt-файлы).
     
  7. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Перенёс из ветки "FIX для Wing Commander IV DVD версии (Для Windows 98)":
    Непонятно. Изложи проблему подробнее: .exe-файл называется как? его версия (выясняется нажатием alt-V во время вылета) какая? ставился из пакета какого - официального CD- или DVD-издания, GOG'овского пака, скачанного на рутрекере образа с переведёнными роликами, из иных источников? ставился как - родным Origin'ским установщиком, иным установщиком, копировался вручную? патчился ли, а есл да, то чем? не работает что именно? выскакивают message box'ы какие именно? на роликах звук идёт? видео идёт? меню внутри роликов показываются?
    В идеале - ещё и приаттачь к ответу архив со всеми .exe'шками и .dll'ками, которые лежат в каталоге игры.
    Не только. Он ещё и содержит взаимно соотвествующие (а следовательно, не страдающие от разнобоя версий и синдрома "с-миру-по-нитке") wc4dvd.exe, mpeg2.dll и dxmci.dll. Не рекомендуется для ремонта GOG-пака, для всех остальных рекомендуется.
     
    Последнее редактирование: 4 янв 2015
  8. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Случайно расколол механизм кэширования звуков. Оказывается, они хранятся в объектах класса IDirectSoundBuffer. После первом считывании .wav'ки она записывается в буфер, потом ему командуется Play(), но отзвучавший объект не удаляется сразу и при случае активируется повторно. Вот и весь секрет. :-)
    Это существенно облегчает задачу привязки доп-субтитра к звуку: фактически надо только привязать IDirectSoundBuffer::Unlock() к считыванию уже привязанной к доп-субтитру .wav'ки - и золотая рыбка у нас в кармане. :-)

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

    Иллюстрация к процессу - фрагменты лога перехватчиков чтения и звука:
    Код:
    [COLOR="Sienna"]; звучат какие-то звуковые объекты:[/COLOR]
    19:33:41.921 (+   283) 00000090           HOOKDSB from 00409657: 00E24C68->SetVolume() RET(+    84) =0 (00000000); 
    19:33:41.921 (+   165) 00000090           HOOKDSB from 0040966C: 00E24C68->SetCurrentPosition() RET(+    78) =0 (00000000); 
    19:33:41.921 (+   155) 00000090           HOOKDSB from 00409682: 00E24C68->Play() RET(+  2250) =0 (00000000); 
    19:33:41.937 (+  5281) 00000090           HOOKDSB from 00409392: 00E24C68->GetStatus() RET(+   115) =0 (00000000); 
    19:33:41.937 (+   204) 00000090           HOOKDSB from 00409392: 00E24C68->GetStatus() RET(+  5145) =0 (00000000); 
    [COLOR="Sienna"]; начинается считывание сжатой .wav'ки с фразой:[/COLOR]
    19:33:41.937 (+  5265) 00000090           xlat_seek( 7fff0005("Q:GAMEFLOW.TRE"), 7958956 (01c0:310b3c) (from FILE_BEGIN) ): OK RET(+   287) =7958956 (007971AC); 
    19:33:41.937 (+   363) 00000090           xlat_read( 7fff0005("Q:GAMEFLOW.TRE"), 0012f87c, 4 ): from file: 4 bytes (4 read); RET(+   245) =4 (00000004); 
    19:33:41.937 (+   373) 00000090           xlat_read( 7fff0005("Q:GAMEFLOW.TRE"), 0a230000, 16384 ): from file: 16384 bytes (16384 read); 
    [COLOR="Sienna"]; удалось засечь чтение субтитрованной .wav'ки и выяснить её длину:[/COLOR]
    19:33:41.937 (+   309) 00000090           XSDS: read 121260 bytes
    19:33:41.937 (+   250) 00000090           xlat_read( 7fff0005("Q:GAMEFLOW.TRE"), 0a230005, 16379 ): from file: 16379 bytes (16379 read); RET(+   472) =16379 (00003FFB); 
    19:33:41.937 (+   815) 00000090           xlat_read( 7fff0005("Q:GAMEFLOW.TRE"), 0a230005, 16379 ): from file: 16379 bytes (16379 read); RET(+   276) =16379 (00003FFB); 
    19:33:41.937 (+   604) 00000090           xlat_read( 7fff0005("Q:GAMEFLOW.TRE"), 0a230000, 16384 ): from file: 16384 bytes (16384 read); RET(+   322) =16384 (00004000); 
    19:33:41.937 (+   462) 00000090           xlat_read( 7fff0005("Q:GAMEFLOW.TRE"), 0a230000, 16384 ): from file: 16384 bytes (16384 read); RET(+   265) =16384 (00004000); 
    19:33:41.937 (+   425) 00000090           xlat_read( 7fff0005("Q:GAMEFLOW.TRE"), 0a230001, 16383 ): from file: 16383 bytes (16383 read); RET(+   405) =16383 (00003FFF); 
    19:33:41.937 (+   796) 00000090           xlat_read( 7fff0005("Q:GAMEFLOW.TRE"), 0a230000, 9942 ): from file: 9942 bytes (9942 read); RET(+ 31250) =9942 (000026D6); 
    [COLOR="Sienna"]; .wav'ка дочитана до конца и готова к распаковке:[/COLOR]
    19:33:41.968 (+ 31407) 00000090           HOOKDSB from 00409392: 00E24C68->GetStatus() RET(+  8165) =0 (00000000); 
    19:33:41.984 (+  9177) 00000090           HOOKDSB from 00409392: 00E24C68->GetStatus() RET(+   101) =0 (00000000); 
    [COLOR="Sienna"]; .wav'ка распакована, под неё создаётся объект типа IDirectSoundBuffer:[/COLOR]
    19:33:41.984 (+   197) 00000090           HOOKDS from 0040954F: 00A02820->CreateSoundBuffer() 
    19:33:41.984 (+  5095) 00000090           HOOKDSB from CCCCCCCC: 00F81608->hookdsbuf_c() RET(+   108) =0 (00000000); 
    [COLOR="Sienna"]; тело .wav'ки (без 44-байтного заголовка) записывается в буфер:[/COLOR]
    19:33:41.984 (+   186) 00000090           HOOKDSB from 00409591: 00F81608->Lock() RET(+    93) =0 (00000000); 
    19:33:41.984 (+   424) 00000090           HOOKDSB from 004095D6: 00F81608->Unlock() 
    [COLOR="Sienna"]; удалось засечь заполнение буфера и вычислить длину данных - совпала с ожидаемой:[/COLOR]
    19:33:41.984 (+   119) 00000090           XSDS: output 121216 + 0 = 121216 bytesRET(+    94) =0 (00000000); 
    [COLOR="Sienna"]; объект готовится к воспроизведению, идёт настройка:[/COLOR]
    19:33:41.984 (+   168) 00000090           HOOKDSB from 0040962F: 00F81608->Stop() RET(+   108) =0 (00000000); 
    19:33:41.984 (+   179) 00000090           HOOKDSB from 00409640: 00F81608->SetPan() RET(+    85) =0 (00000000); 
    19:33:41.984 (+   154) 00000090           HOOKDSB from 00409657: 00F81608->SetVolume() RET(+   138) =0 (00000000); 
    19:33:41.984 (+   377) 00000090           HOOKDSB from 0040966C: 00F81608->SetCurrentPosition() RET(+    96) =0 (00000000); 
    [COLOR="Sienna"]; воспроизведение - тут можно начинать вывод субтитра:[/COLOR]
    19:33:41.984 (+   167) 00000090           HOOKDSB from 00409682: 00F81608->Play() RET(+   366) =0 (00000000); 
    19:33:46.296 (+++++++) 00000090           HOOKDSB from 00409392: 00F81608->GetStatus() RET(+   123) =0 (00000000); 
    [COLOR="Sienna"]; объект отзвучал, но никуда не девается.
    ; тем временем звучат всякие другие звуки...[/COLOR]
    19:33:46.296 (+   197) 00000090           HOOKDSB from 00409392: 00E24C68->GetStatus() RET(+    88) =0 (00000000); 
    19:33:46.296 (+   570) 00000090           HOOKDSB from 00409392: 00E24C68->GetStatus() RET(+    97) =0 (00000000); 
    19:33:46.296 (+   170) 00000090           HOOKDSB from 00409392: 00E24C68->GetStatus() RET(+    87) =0 (00000000); 
    19:33:46.296 (+   158) 00000090           HOOKDSB from 0040962F: 00F1F798->Stop() RET(+    88) =0 (00000000); 
    19:33:46.296 (+   155) 00000090           HOOKDSB from 00409640: 00F1F798->SetPan() RET(+    84) =0 (00000000); 
    [COLOR="Sienna"].......................................................[/COLOR]
    19:33:47.703 (+   156) 00000090           HOOKDSB from 0040966C: 00E24C68->SetCurrentPosition() RET(+    79) =0 (00000000); 
    19:33:47.703 (+   202) 00000090           HOOKDSB from 00409682: 00E24C68->Play() RET(+  2205) =0 (00000000); 
    19:33:47.703 (+  5212) 00000090           HOOKDSB from 00409392: 00E24C68->GetStatus() RET(+   118) =0 (00000000); 
    19:33:47.703 (+   279) 00000090           HOOKDSB from 00409392: 00E24C68->GetStatus() RET(+    94) =0 (00000000); 
    19:33:47.703 (+   169) 00000090           HOOKDSB from 00409392: 00E24C68->GetStatus() RET(+    86) =0 (00000000); 
    19:33:47.703 (+  4503) 00000090           HOOKDSB from 00409392: 00E24C68->GetStatus() RET(+    88) =0 (00000000); 
    [COLOR="Sienna"]; ё-пс, опять понадобилось воспроизвести ту же фразу.
    ; настройка:[/COLOR]
    19:33:47.703 (+   168) 00000090           HOOKDSB from 0040962F: 00F81608->Stop() RET(+    88) =0 (00000000); 
    19:33:47.703 (+   173) 00000090           HOOKDSB from 00409640: 00F81608->SetPan() RET(+    78) =0 (00000000); 
    19:33:47.703 (+   319) 00000090           HOOKDSB from 00409657: 00F81608->SetVolume() RET(+    99) =0 (00000000); 
    19:33:47.703 (+   422) 00000090           HOOKDSB from 0040966C: 00F81608->SetCurrentPosition() RET(+   101) =0 (00000000); 
    [COLOR="Sienna"]; воспроизведение - опять можно выводить субтитр:[/COLOR]
    19:33:47.703 (+   170) 00000090           HOOKDSB from 00409682: 00F81608->Play() RET(+   166) =0 (00000000); 
    19:33:52.234 (+++++++) 00000090           HOOKDSB from 00409392: 00F81608->GetStatus() RET(+   121) =0 (00000000); 
    [COLOR="Sienna"]; отзвучал, хранится. тем временем продолжают звучать другие звуки:[/COLOR]
    19:33:52.234 (+  1342) 00000090           HOOKDSB from 00409392: 00E24C68->GetStatus() RET(+   117) =0 (00000000); 
    19:33:52.234 (+   197) 00000090           HOOKDSB from 00409392: 00E24C68->GetStatus() RET(+    80) =0 (00000000); 
    [COLOR="Sienna"]......................................................[/COLOR]
    19:33:53.875 (+++++++) 00000090           HOOKDSB from 00409392: 00F1F650->GetStatus() RET(+   123) =0 (00000000); 
    19:33:53.875 (+   198) 00000090           HOOKDSB from 004093F4: 00F1F650->Stop() RET(+ 10046) =0 (00000000); 
    [COLOR="Sienna"]; выход из игры, файлы закрываются:[/COLOR]
    19:33:53.890 (+ 11084) 00000090           xlat_close_tre_( 7fff0002("Q:\MOVIES2.TRE") ) h1l_count=153 RET(+   305) =0 (00000000); 
    19:33:53.890 (+   388) 00000090           xlat_close_tre_( 7fff0003("WC4MISC.TRE") ) h1l_count=6 RET(+   221) =0 (00000000); 
    19:33:53.890 (+   312) 00000090           xlat_close_tre_( 7fff0004("Q:SPECIAL2.TRE") ) h1l_count=388 RET(+  1927) =0 (00000000); 
    19:33:53.890 (+  2120) 00000090           xlat_close_tre_( 7fff0005("Q:GAMEFLOW.TRE") ) h1l_count=55 RET(+   219) =0 (00000000); 
    19:33:53.890 (+   312) 00000090           xlat_close_tre_( 7fff0006("LANGUAGE.TRE") ) h1l_count=2023 RET(+   271) =0 (00000000); 
    19:33:53.890 (+   406) 00000090           xlat_close_tre_( 7fff0007("MISSIONS.TRE") ) h1l_count=233 RET(+   762) =0 (00000000); 
    19:33:53.890 (+   898) 00000090           xlat_close_tre_( 7fff0000("Q:OBJECTS.TRE") ) h1l_count=667 RET(+   294) =0 (00000000); 
    [COLOR="Sienna"]; наш объект удаляется:[/COLOR]
    19:33:53.890 (+  2662) 00000090           HOOKDSB from 00409312: 00F81608->Stop() RET(+   122) =0 (00000000); 
    19:33:53.890 (+   192) 00000090           HOOKDSB from 0040931B: 00F81608->Release() 
    19:33:53.890 (+   312) 00000090           HOOKDSB from CCCCCCCC: 00F81608->~hookdsbuf_c() RET(+   114) =0 (00000000); 
    [COLOR="Sienna"]; удаляются многие другие звуковые объекты:[/COLOR]
    19:33:53.890 (+   191) 00000090           HOOKDSB from 00409312: 00E24DB0->Stop() RET(+   250) =0 (00000000); 
    19:33:53.890 (+   328) 00000090           HOOKDSB from 0040931B: 00E24DB0->Release() 
    19:33:53.890 (+   417) 00000090           HOOKDSB from CCCCCCCC: 00E24DB0->~hookdsbuf_c() RET(+   112) =0 (00000000); 
    19:33:53.890 (+   197) 00000090           HOOKDSB from 00409312: 00E24C68->Stop() RET(+    86) =0 (00000000); 
    19:33:53.890 (+   162) 00000090           HOOKDSB from 0040931B: 00E24C68->Release() 
    19:33:53.890 (+   277) 00000090           HOOKDSB from CCCCCCCC: 00E24C68->~hookdsbuf_c() RET(+   105) =0 (00000000); 
    [COLOR="Sienna"].....................................................
    ; перед самым завершением процесса отстыковывается .dll'ка с перехватчиком:[/COLOR]
    19:33:54.421 (+ 28019) 00000090           DllMain( DLL_PROCESS_DETACH ) 
    Первая колонка - время с 15-ms шагом, вторая - плюс в микросекундах к предыдущей записи, третья - id thread'а, после "from" - адрес возврата из перехватчика в сегменте кода игры, перед "->" - указатель на объект. Как видим, всё происходит ещё и в одном thread'е, это создаёт нам некоторое дополнительное удобство. :-)
     
    Последнее редактирование: 6 янв 2015
    Bato-San нравится это.
  9. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Переделал вывод доп-субтитров (некрологи, Папаша в оружейке) - привязал к выводу звука. Работает - просто загляденье. :-) Заодно резко упростилась дострочная отсечка - просто по IDirectSoundBuffer::Stop()'у (а раньше надо было анализировать саму картинку).
    Но есть накладка: в случае, если ГГ гибнет вместе со своим авианосцем, посмертное меню выводится раньше чем умолкает радионекролог - и на широком экране размер шрифта субтитра скачком уменьшается на четверть:

    [​IMG]

    [​IMG]

    [​IMG]

    [​IMG]

    Несколько раздражает, но в целом, как на мой вкус, потянет, тем более что событие довольно редкое. А сделать чтобы размер не прыгал - это надо писать не по оригинальному экрану перед обрезкой и ресайзом, а по уже ресайзенному, а это трахоёмко плюс грабли с хинтингом, ореолами и прочими радостями вывода текста. Мне влом. :-( А делать отсечку при выводе посмертного меню - ИМХО невежливо.
    В общем, оставляю так.

    PS. Само собой, это происходит только в режиме "hicolor, hires, widescreen"; при выводе широкоформатной картинки через dwrap-opengl сцена с некрологом не растягивается и размер шрифта при переходе к посмертному меню не меняется.
     

    Вложения:

    • obituary1.png
      obituary1.png
      Размер файла:
      66,6 КБ
      Просмотров:
      521
    • obituary2a.png
      obituary2a.png
      Размер файла:
      31,4 КБ
      Просмотров:
      543
    • obituary2b.png
      obituary2b.png
      Размер файла:
      89,2 КБ
      Просмотров:
      511
    • obituary3.png
      obituary3.png
      Размер файла:
      82,1 КБ
      Просмотров:
      515
    Последнее редактирование: 21 янв 2015
    Sherhan007, kirik-82, nop и 2 другим нравится это.
  10. Darth Winter

    Darth Winter

    Регистрация:
    23 янв 2006
    Сообщения:
    58
    У меня DVD версия. Оригинальные образы записаны на DVD болванки. Все файлы соответственно с неё. Устанавливал без всяких дополнительных средств нормальным способов.
    Роликов вообще не было выводило сообщение, о том, что файл не найден. Однако после того как я всё снёс и переустановил то ролики стали запускаться притормаживая и без звука.
     
  11. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

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

    [​IMG]

    - обрати внимание, путь правильный и файл киноролика по этому пути таки есть.
    (уточняет) И ничем не патчил? mpeg2.dll не заменял, dxmci.dll не добавлял? Странно. Проверь внимательно - файлы mpeg2.dll на DVD и в каталоге с игрой должны различаться. Запусти в командной строке
    Код:
    fc /b <буква-dvd>:\mpeg2.dll <путь-к-каталогу-игры>\mpeg2.dll
    - должно получиться примерно такое:
    Код:
    Comparing files Q:\MPEG2.DLL and E:\GAMES\WC4DVD\MPEG2.DLL
    00006E24: 41 44
    00006E36: 41 44
    00006E38: 57 44
    00006E39: 49 58
    00006E3A: 4E 4D
    00006E3B: 4D 43
    00006E3C: 4D 49
    Насчёт притормаживания - трудно сказать: тормозуху на MPEG2-видео наблюдал не раз, обычно это бывает если на машине бардак с т.н. "кодек-паками", установлено сразу много декодеров на каждый формат и они непрерывно между собой грызутся за приоритет.
    То же самое насчёт "без звука": если бы звукового декодера не было - ты бы получил что-то вроде "missing movie"; наиболее вероятно, что среди декодеров для Dolby Digital затесался какой-то, который о себе заявляет, что декодировать его умеет, а на самом деле шиш. :-(

    В общем, имею подозрение, что DVD, с которого ты ставил игру в последний раз, "не настоящий" - уже кем-то патченный.
    Проделай следующее:
    • выложи архив (предпочтительно .7z и лучше не на файлообменник, а вложением к посту) со всеми .exe'шками и .dll'ками, которые лежат в каталоге игры;
    • аналогично сделай и выложи архив всего содержимого корневого каталога первого DVD, кроме .tre-файлов (они здоровенные как сарай и на проблему не влияют), - хочу проверить DVD на аутентичность (а кроме того - ходят слухи, что существует в природе ещё и какая-то "не такая" официальная версия DVD, это мне тоже интересно);
    • срисуй filtergraph вывода видеоролика:
      • если есть в каталоге игры - сохрани файлы dxmci.dll и dxmci.ini;
      • распакуй туда же архив dxmci-test-darthwinter.7z (см. вложения) - это dxmci со специальной тестовой конфигурацией плюс пускач для неё;
      • где-то отдельно распакуй graphedit.zip (тоже см. вложения) и запусти graphedt.exe;
      • запусти игру через wc4dvd-test-darthwinter.bat и загрузи savegame, в котором есть достаточно длинный (с минуту хотя бы) ролик со звуком;
      • запусти ролик (картинка будет изгажена, но для наших целей годится);
      • пока идёт ролик - переключись на запущенный graphedit (ctrl-esc'ом и/или alt-tab'ом) и в нём сделай File - Connect to remote graph - выбери строчку в списке - OK, и сразу сделай принтскрин полученного графа. Должно быть что-то наподобие вот этого:

        [​IMG]
      • закрой graphedit, переключись на игру и закрой её (Esc, alt-F4);
      • подмети в каталоге игры - удали содержимое dxmci-test-darthwinter.7z и восстанови файлы, сохранённые на шаге (a);
      и выложи мне получившуюся картинку с filtergraph'ом - закрути её в PNG для компактности, не в JPEG;
    • в каталоге игры найди файл с именем вида "dxmci-wc4dvd-ггггммдд-ччммсс.log" (если будет несколько - бери самый свежий), тоже заархивируй его и выложи.
    С этим всем добром мне будет проще разобраться в происходящем, разберусь - поделюсь.

    PS. Не надо цитировать мне в ответ весь мой пост - достаточно будет процитировать те несколько слов, на которые собственно отвечаешь.
     

    Вложения:

    Последнее редактирование: 10 янв 2015
    nop и Bato-San нравится это.
  12. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    2 All:
    Народ, есть проблема. Я до сих пор не знаю, как последняя бета себя ведёт под семеркой и дальше в плане "психоделической палитры". Кому не трудно - скачайте, попробуйте без "режима совместимости" и черкните сюда пару строк: какой .exe'шник запускался, какие настройки в dxmcicfg пробовались, чем кончилось.
    А то непорядок: я выложил, 40 человек скачало и тишина. :-( И я до сих пор не знаю, в какую сторону дальше имеет смысл развивать и какие грабли латать.

    Upd. По многочисленным вопросам трудящихся циферной нивы - инструкция по сборке более-менее работающего экземпляра игры:Вот где-то так.
     
    Последнее редактирование: 11 янв 2015
  13. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Фигушки: если в оконном режиме выходить из экрана выбора/конфигурации самолёта после того как отзвучала "лекция", но до того как убрался последний субтитр - он "приклеивается" над линейкой кнопок, уходит под мышиный курсор (т.е. эта область экрана не регенерируется игрой, где-то полгода назад что-то такое обсуждалось) и убирается только при выборе следующего экрана. Раздражает.
    (В полноэкранном режиме проблема не возникает, т.к. вывод строки субтитра идёт не по видеобуферу, в который игра рисует, а по его (каждый раз новой) копии.)
    Пришлось вернуть отсечку по анализу картинки: пока активен экран конфигурации машины - субтитры к лекции идут, при выходе - отсечка независимо от закончился / не закончился звук/текст.
     
  14. Grongy зе мост бэдэсс мазафака он зе плэнет

    Grongy

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

    Регистрация:
    21 мар 2014
    Сообщения:
    3.729
    sc_0490.rus
    Убрать точку после "сделано".
    sc_0650.rus
    Тире после "корабли".
    sc_1310.rus
    "фортуну" - с большой буквы?
     
  15. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    "Ни! За! Что!" (L) :-) Уже обсуждалось. Да и повтор 16-м и 17-м субтитрами 8-го и 9-го должен был бы тебя насторожить, что не всё тут так просто / что-то тут не то...
    Не выйдет - два тире подряд в одной фразе некузяво, да и интонация не позволяет.
    Не богохульствуй! Боги на то и боги, что их никому нельзя исследовать, проверять, измерять, взвешивать, капать на них кислотой или испытывать иными способами. И среди них Фортуна не последний человек. :-)
    Хотя... случилось мне недавно видеть высказывание об упущенной возможности - "ну и Бог с ней". Кошмар! :-(
     
    Последнее редактирование: 11 янв 2015
  16. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    Рыжий Тигра, Ну, собсно протестил, как ты и просил на Win7 x64. Результат странный.

    В режиме совместимости с W2K и XP SP3 запустились следующие файлы:

    wc4dvd-dvd.exe
    wc4dvd-dvdupgrade.exe
    wc4dvd-gog.exe

    Видео играется нормально, субтитры идут нормально. Ровно до момента, когда в баре бродяга представляется, что он со "Свободы". В этот момент игра аккуратно виснет, выводя над и под кадром "надо помочь парню" и "гнать в шею". Тот же фокус происходит, если нажать клавишу ESC в любой момент видео. Всё. Финал. Символично для теста. :D Шутка. Просто нет никакой подсказки, что надо мышой пошевелить выбирая ответ !

    Ладно. Пошевелил, выбрал, ещё раз и полетел. Ну во время полёта трёп Маньяка субтитрами не обеспечен. Поэтому нафиг непонятно об чём он там треплется с повышенной скоростью. Ну то есть если ждёшь сабов и не слушаешь внимательно. И тут прилетают дрозды и начинают давать ..."леща"... Так как никаких сетапов и прочего не видно, кнопок я ясен пень не помню - пострелять не вышло. Врубил движки вроде бы и тут же получил пробоину в стекле с направления где ни одной скотины не летало (вот кстати забавно - пулевая пробоина при стрельбе из лучемётов !). А, ну и фиг бы с ним ! Ан нет ! Мне проиграли ролик про гибель героя конфедерации бла-бла-бла и... всё. Висяк с чёрным экраном. :cry:

    На всё время написания этого поста. Отвисло наконец и выложило меню. Ан нет ! Оказывается если ждать в игре - бесполезняк. Так и будешь любоваться чернотой. Надо нажать alt-tab и вернуться в игру. Увидишь меню. Баг однако.

    Ну долетался до второго задания.

    Покопался в настройках - галочки сабы и мини окно никакого влияния ни на что не оказали. Про скоростную распаковку не знаю. Джойстик так и не заработал. Сабов полётных разговоров нет.

    Кстати, при нажатии ESC и выборе варианта ответа следующий ролик может играться вообще от балды совершенно не продолжая ситуацию в том же баре например.
     
    Последнее редактирование: 11 янв 2015
  17. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    :-) Ага, прикольно. Ещё один способ отворотить от игры тех, кто решил поразвлечься "возлежа и отрыгивая" (L). :-)
    Мышом, джойстиком, курсорными клавишами.
    Я пробовал поставить обе надписи друг над другом сверху - получается в общем-то то же самое: не воспринимается как меню, хоть тресни. :-(
    Кстати, вопрос: нарисуй как должно на твой вкус выглядеть, чтобы было видно что это именно меню. Можешь даже сделать функцию: на входе HDC, RECT, цвет (серый или белый) и текст, на выходе void, я её вставлю в перехватчик.
    Ё! Это существенно. Я, помнится, специально делал обход автовыключения субтитров, надо копнуть отладчиком поглубже.
    Табло про переключение из учебного режима в боевой - было? Это секунд с 15, и только потом пушки и ракеты активируются, это сопровождается характерным звуком проворота барабана.
    Хуже - ты поймал ракету. Вернее, она тебя. :-( Причём если это был НАР, то лампочка "LOCK" могла и не мигать. Но НАРом палить имеет смысл только по цели либо совсем неподвижной, либо летящей строго по прямой. Мораль: удираешь - маневрируй!
    Это не киноролик, это мультяшка силами игры - через тот же самый directdraw, что и последующее посмертное меню.
    Ага, странно. И тоже полезно. Колись подробностями - на каком .exe'шнике, при каких graphic enhancement'ах (или просто кидай сюда dxmci.ini, на котором это произошло). Лог (файл с именем dxmci-имяexeшника-ггггммдд-ччммсс.log) тоже кидай.
    И попробуй этот же момент (некролог и посмертное меню) пройти при разных graphic enhancement'ах - хотя бы на hicolor+hires и dwrap+opengl, под разной "совместимостью" и без неё.
    (О, кстати! Надо в лог выводить ещё и версию ОС, факт работы под "совместимостью" и подробности о ней; можешь копнуть на предмет как выяснить - включена совместимость с чем именно? Просто засечь факт наличия aclayers.dll я могу, а как узнать подробности - не знаю. :-( )
    На стационарном терминале? Они влияют только на вывод кинороликов в CD-версиях игры, на DVD-версию не действуют. А для настроить субы в бою и джойстик-мышь-клаву надо вызывать настройки в полёте - по alt-O, либо переключать клавишами - ctrl-K/M/J клава/мышь/джойстик.
    Ага. Вывод кинороликов тоже капает в лог, кидай его сюда.

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

    Хм. А wcv4dvd-win2k (специально патченный против грабли с VirtualProtect'ом) не взлетел? Как это выглядело - message-box, gpf, попытка вызвать отладчик, просто молчаливое падение? А без "совместимости" как они себя вели?
    Попробуй при случае запустить под отладчиком - мне нужны подробности об адресах, кодах залёта, весьма нелишним будет содержимое регистров. В конфигурациях с dwrap'ом (wc4dvd-gog.exe при любых graphic enhancement'ах, остальные только при dwrap'овых) могут создаваться (хотя могут и не) ещё и файлы debug.txt и dwrap_debug.txt - они тоже полезны, ими тоже делись.

    Upd.
    Насчёт включения субтитров радиосвязи в бою по умолчанию в начале игры: готово. Вот этот кусок
    Код:
    [COLOR="Sienna"]; 004561AE 8B 0D 86 C1 4B 00    mov         ecx,dword ptr ds:[4BC186h]
    ; 004561B4 A1 A4 26 4C 00       mov         eax,[004C26A4]
    ; 004561B9 89 0D D8 47 4B 00    mov         dword ptr ds:[4B47D8h],ecx
    ; 004561BF B9 01 00 00 00       mov         ecx,1
    ; 004561C4 3B C3                cmp         eax,ebx
    ; 004561C6 89 4C 24 34          mov         dword ptr [esp+34h],ecx
    ; 004561CA 89 0D 54 52 4C 00    mov         dword ptr ds:[4C5254h],ecx
    ; --------
    ; 004561D0 75 06                jne         004561D8
    ; -------- заменить на
    ; 004561D0 90                   nop
    ; 004561D1 90                   nop
    ; --------
    ; 004561D2 89 0D D8 47 4B 00    mov         dword ptr ds:[4B47D8h],ecx
    ; 004561D8 A0 94 77 4B 00       mov         al,[004B7794]
    ; 004561DD A8 01                test        al,1
    ; 004561DF 74 04                je          004561E5[/COLOR]
    
    { REPL 2  $ x75 x06  x90 x90  ; jne -> nop, nop
    } REPL  @ CORE  x301000 x551D0  x302000 x551D0  ; 004561D0
    надо добавить в src\xlat\iffaddr\settings.txt и перекомпилировать (запустить src\xlat\iffmake.bat).

    upd2. Изменения в src\xlat\iff\0030.trans.txt:
    Код:
    ? RUSS    { CRED "Бета-тестирование
    ? RUSS    } CRED "angelica_k
    ? RUSS    { CRED "
    ? RUSS    } CRED "Sherhan007
    ? RUSS    { CRED "
    ? RUSS    } CRED "Darth House
    ? RUSS    { CRED "
    ? RUSS    } CRED "olek2010
    [COLOR="blue"][B]? RUSS    { CRED "
    ? RUSS    } CRED "Bato-San[/COLOR][/B]
    ? RUSS    { CRED "Консультант по бета-тестированию
    ? RUSS    } CRED "Рыжий Тигра
    ? RUSS    @ TEXT "
     
    Последнее редактирование: 12 янв 2015
  18. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Нарыл приблизительно подходящий способ - взять значение set-переменной __COMPAT_LAYER; при отключенной "совместимости" там пусто (getenv( "__COMPAT_LAYER" ) возвращает NULL), при включенной - перечисление запрошенных "совместимостей", примерно так:
    Код:
    Win95 256Color DisableThemes
    Для вывода в лог вполне годится.
     
    Последнее редактирование: 12 янв 2015
  19. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Есть идея: по той же технологии, как доп-субтитры в некрологах и оружейке, выводить ещё и реплики Блэйра в бою по радио. Звукозаписи есть, выяснить - какая именно .wav'ка звучит - в принципе можно, тексты реплик тоже есть - но движком игры не выводятся. Нужна фигня:
    • привязать .wav'ку к тексту субтитра не по позиции в .tre-файле (игра в начале вылета считывает за один заход большой IFF, в котором этих .wav'ок несколько десятков), а по содержимому;
    • сдизайнировать шрифт и размещение этого субтитра на HUD'е:

      [​IMG]

      Для примера - текст реплики Блэйра, который надо наложить:
      "Это ты называешь «летать»? Да тебе пора на пенсию!"
      Предпочтительный фонт - Verdana, способ вывода - через DrawText(), как для доп-субтитров.
    Предлагайте варианты!
     

    Вложения:

    • cantfly.png
      cantfly.png
      Размер файла:
      20,7 КБ
      Просмотров:
      476
  20. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    Рыжий Тигра, у игры оказался неучтённый баг - в результате попадания ракеты трещинами идёт таки же не стекло кабины, а экран реального монитора.
    Исправь ! :D

    В общем в ходе тестовых полётов погиб мой старый добрый ЭЛТ... Пришлось искать качественную замену с нормальным соотношением сторон и возможностями.

    Так что включи в титры следующее:"Погибшие тестеры: монитор LiteON, бортовой номер: E1786FNST, дата рождения: Октябрь 2003 года. Погиб при исполнении во время боевого вылета 11.01.2015 точно в момент попадания ракеты. Останки переданы бортинженерам "Лексингтона" "

    Версия W2K ругалась что не может найти чего то в библиотеке mpeg2 и после чего умирала в муках с толпой табличек. Это до того, как были сделаны сохранения.
    Теперь же она сперва нормально входит в режим загрузки сейва. При нажатии начать сначала упала со следующим воплем:
    Ну, чего и следовало ожидать.

    логи Посмотреть вложение wc4log.zip
     
  21. Рыжий Тигра Сам себе «пират»

    Рыжий Тигра

    Регистрация:
    3 май 2012
    Сообщения:
    1.823
    Bato-San, thnx! Но притормози на денёк, я доделываю версию с фиксацией в лог "режимов совместимости" и настроек dxmci'я.
    И это... либо сохраняй что-ньдь от "толпы табличек", или мне надо ещё придумать как сделать перехват MessageBox()'а.
     
  22. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    да так же как директвраппер эт делает. Ну по сути пишешь свою user33.dll в которой есть только нужные тебе функции, а остальное импортируется из нормальной user32.dll
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление