NewDark - Субтитры в видеороликах

Автор ViLE, 09 ноября 2012 12:49:33

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

ViLE

Цитата: DJ Riff от 16 ноября 2012 13:41:41
Цитата: ViLE от 16 ноября 2012 10:45:31Cоздаём свою библиотеку, которая имеет такое же название как и ситемная (в данном случае d3d9.dll).
И пишем свои варианты функций (так называемые "заглушки)", в которых будут вызываться оригинальные функции.
А как себя поведёт игра, если своя библиотека есть, а системная отсутствует? А то у людей это распространённая ошибка, если DX9 старый или отсутствует. Будет ли нормальное сообщение об ошибке dll или чёрный экран или просто вылет?

Движок проверяет возможность загрузки двух библиотек: d3d9.dll и d3dx9_43.dll.
d3dx9_43.dll есть только в составе дистрибутива DirectX за июнь 2010.
В случае ошибки выводится сообщение "Unable to locate or load xxx.dll".

S.Siamsky

Потестил, всё работает отлично.  :up:
При установленном в системе шрифте CarletonRus сабы, сделанные им, смотрятся отлично.
Опять же, цвет можно задавать... пусть даже общий, для всего текста.
Короче, хорошо получилось.
Szybko, szybko, geht der ab!

DonSleza4e

Цитата: ViLE от 15 ноября 2012 16:51:25
Обновил lgvidsubs (ссылка).
Поменял метод вывода текста на Direct3D.
Добавил новые параметры для "cam_ext.cfg".
Список и описание новых параметров находятся в разделе «Настройка "cam_ext.cfg"» (файл readme_sub_rus.txt).

идет какой-то сбой при начитке subs_shadow_offset_x
сначала не понимал почему не считываются все настройки, потом методом проб и ошибок выяснил, что при удалении строчки subs_shadow_offset_x все становится нормально

текущие пробные настройки

subs_font_family Carleton Rus
subs_font_size 7%
subs_font_weight 0
subs_font_color 1.0 1.0 1.0 1.0
subs_shadow_color 0.0 0.0 0.0 0.7
subs_shadow_offset_x 0.42%
subs_shadow_offset_y 0.42%
subs_space_after 3.5%

пробывал и нолик без %, все-равно

DonSleza4e

можно ли дополнительно завернуть в try-catch)

смотрел исходники, но не вижу проблему, вроде все идентично с Y координатой

ViLE

С Новым Годом, тафферы! :)

Цитата: DonSleza4e от 29 декабря 2012 15:11:47
можно ли дополнительно завернуть в try-catch)

смотрел исходники, но не вижу проблему, вроде все идентично с Y координатой
DonSleza4e

Проблема специфическая. Пробовал твои настройки - полёт нормальный.
Без отладки на твоей машине трудно понять где ошибка. Поэтому попробую расписать
как ловить жучков :)

Первым делом надо скачать инструменты отладки.
Ссылка на страницу: http://msdn.microsoft.com/en-US/windows/hardware/hh852363.
Нас интересует sdksetup.exe. Скачиваем, запускаем, выбираем только "Debugging Tools for Windows" (~200 МБ) и
устанавливаем.

По этой ссылке скачиваем модули с отладочной информацией.
Содержимое архива распаковать в папку с игрой, перезаписывая существующие файлы.

В файле cam_ext.cfg раскомментировать force_windowed или добавить если таковой отсутствует.
Это нужно, чтобы игра запускалась в оконном режиме.

Далее запускаем игру через отладчик с помощью команды:
"c:\Program Files (x86)\Windows Kits\8.0\Debuggers\x86\windbg.exe" -g thief2_119.exe
(Кавычки обязательно сохранить!)
Запускать надо в папке с игрой. Путь к отладчику и название основного модуля игры при необходимости
откорректировать.

При возникновении ошибки в окне отладчика появится текст исходника и будет подсвечена строка.
Скриншот окна отладчика кидайте на почту.

DonSleza4e

#20
запускаю через ярлык
"C:\Program Files\Debugging Tools for Windows (x64)\windbg.exe" -g THIEF.EXE
рабочая папка ярлыка
D:\THIEF\ThiefGOLD_eng_original_tfix

модули с отладочной инфой лежа в папке с игрой

ничего странного не видно...


Microsoft (R) Windows Debugger Version 6.12.0002.633 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.

CommandLine: THIEF.EXE
Symbol search path is: D:\THIEF\ThiefGOLD_eng_original_tfix
Executable search path is:
ModLoad: 00000000`00dc0000 00000000`0161c000   dark.exe
ModLoad: 00000000`772c0000 00000000`77469000   ntdll.dll
ModLoad: 00000000`774a0000 00000000`77620000   ntdll32.dll
ModLoad: 00000000`74180000 00000000`741bf000   C:\Windows\SYSTEM32\wow64.dll
ModLoad: 00000000`740e0000 00000000`7413c000   C:\Windows\SYSTEM32\wow64win.dll
ModLoad: 00000000`740d0000 00000000`740d8000   C:\Windows\SYSTEM32\wow64cpu.dll
ModLoad: 00000000`771a0000 00000000`772bf000   WOW64_IMAGE_SECTION
ModLoad: 00000000`75f10000 00000000`76020000   WOW64_IMAGE_SECTION
ModLoad: 00000000`771a0000 00000000`772bf000   NOT_AN_IMAGE
ModLoad: 00000000`770a0000 00000000`7719a000   NOT_AN_IMAGE
ModLoad: 00000000`75f10000 00000000`76020000   C:\Windows\syswow64\kernel32.dll
ModLoad: 00000000`766e0000 00000000`76727000   C:\Windows\syswow64\KERNELBASE.dll
ModLoad: 00000000`73810000 00000000`73842000   C:\Windows\SysWOW64\WINMM.dll
ModLoad: 00000000`76020000 00000000`760cc000   C:\Windows\syswow64\msvcrt.dll
ModLoad: 00000000`75120000 00000000`75220000   C:\Windows\syswow64\USER32.dll
ModLoad: 00000000`76650000 00000000`766e0000   C:\Windows\syswow64\GDI32.dll
ModLoad: 00000000`77470000 00000000`7747a000   C:\Windows\syswow64\LPK.dll
ModLoad: 00000000`76b40000 00000000`76bdd000   C:\Windows\syswow64\USP10.dll
ModLoad: 00000000`768a0000 00000000`76940000   C:\Windows\syswow64\ADVAPI32.dll
ModLoad: 00000000`74be0000 00000000`74bf9000   C:\Windows\SysWOW64\sechost.dll
ModLoad: 00000000`763a0000 00000000`76490000   C:\Windows\syswow64\RPCRT4.dll
ModLoad: 00000000`74b80000 00000000`74be0000   C:\Windows\syswow64\SspiCli.dll
ModLoad: 00000000`74b70000 00000000`74b7c000   C:\Windows\syswow64\CRYPTBASE.dll
ModLoad: 00000000`752c0000 00000000`75f0a000   C:\Windows\syswow64\SHELL32.dll
ModLoad: 00000000`760e0000 00000000`76137000   C:\Windows\syswow64\SHLWAPI.dll
ModLoad: 00000000`74de0000 00000000`74f3c000   C:\Windows\syswow64\ole32.dll
ModLoad: 00000000`6f2f0000 00000000`6f37e000   C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_50934f2ebcb7eb57\MSVCP90.dll
ModLoad: 00000000`74020000 00000000`740c3000   C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_50934f2ebcb7eb57\MSVCR90.dll
ModLoad: 74c50000 74cb0000   C:\Windows\SysWOW64\IMM32.DLL
ModLoad: 769e0000 76aac000   C:\Windows\syswow64\MSCTF.dll
ModLoad: 70570000 705f0000   C:\Windows\SysWOW64\uxtheme.dll
ModLoad: 67930000 67983000   D:\THIEF\ThiefGOLD_eng_original_tfix\lgvid.dll
ModLoad: 70550000 70563000   C:\Windows\SysWOW64\dwmapi.dll
ModLoad: 00ab0000 00c0c000   C:\Windows\SysWOW64\ole32.dll
ModLoad: 00000000`6e2d0000 00000000`6e2f5000   C:\Windows\SysWOW64\dinput.dll
ModLoad: 00000000`6f7c0000 00000000`6f7c9000   C:\Windows\SysWOW64\HID.DLL
ModLoad: 00000000`76200000 00000000`7639d000   C:\Windows\syswow64\SETUPAPI.DLL
ModLoad: 00000000`74fd0000 00000000`74ff7000   C:\Windows\syswow64\CFGMGR32.dll
ModLoad: 00000000`74f40000 00000000`74fcf000   C:\Windows\syswow64\OLEAUT32.dll
ModLoad: 00000000`74c00000 00000000`74c12000   C:\Windows\syswow64\DEVOBJ.dll
ModLoad: 00000000`74c20000 00000000`74c4d000   C:\Windows\syswow64\WINTRUST.dll
ModLoad: 00000000`76780000 00000000`7689e000   C:\Windows\syswow64\CRYPT32.dll
ModLoad: 00000000`76140000 00000000`7614c000   C:\Windows\syswow64\MSASN1.dll
ModLoad: 00000000`6e530000 00000000`6e547000   D:\THIEF\ThiefGOLD_eng_original_tfix\d3d9.dll
ModLoad: 00000000`5d470000 00000000`5d66f000   C:\Windows\SysWOW64\d3dx9_43.dll
ModLoad: 00000000`65260000 00000000`65423000   C:\Windows\SysWOW64\d3d9.dll
ModLoad: 00000000`73bb0000 00000000`73bb9000   C:\Windows\SysWOW64\VERSION.dll
ModLoad: 00000000`65250000 00000000`65256000   C:\Windows\SysWOW64\d3d8thk.dll
ModLoad: 00000000`60cb0000 00000000`61b60000   C:\Windows\SysWOW64\nvd3dum.dll
ModLoad: 00000000`760d0000 00000000`760d5000   C:\Windows\syswow64\PSAPI.DLL
ModLoad: 00000000`63490000 00000000`63502000   C:\Windows\SysWOW64\dsound.dll
ModLoad: 00000000`68180000 00000000`681a5000   C:\Windows\SysWOW64\POWRPROF.dll
ModLoad: 00000000`75220000 00000000`752a3000   C:\Windows\syswow64\CLBCatQ.DLL
ModLoad: 00000000`70510000 00000000`70549000   C:\Windows\SysWOW64\MMDevApi.dll
ModLoad: 00000000`6ff80000 00000000`70075000   C:\Windows\SysWOW64\PROPSYS.dll
ModLoad: 00000000`704d0000 00000000`70506000   C:\Windows\SysWOW64\AUDIOSES.DLL
ModLoad: 00000000`65260000 00000000`65423000   C:\Windows\SysWOW64\d3d9.dll
ModLoad: 00000000`73bb0000 00000000`73bb9000   C:\Windows\SysWOW64\VERSION.dll
ModLoad: 00000000`65250000 00000000`65256000   C:\Windows\SysWOW64\d3d8thk.dll
ModLoad: 00000000`60cb0000 00000000`61b60000   C:\Windows\SysWOW64\nvd3dum.dll
ModLoad: 00000000`760d0000 00000000`760d5000   C:\Windows\syswow64\PSAPI.DLL
ModLoad: 00000000`65220000 00000000`65227000   C:\Windows\SysWOW64\avrt.dll



содержимое user.cfg:

language russian+english
resname_base .\_RUS\RUS_PATCH+.\_RUS\RUS_LOGO+.\_RUS\RUS+.\mods+.\mods\EP\Thief1+.\mods\EP+.\patches+.\res


содержимое install.cfg

;cd_path .\
install_path .\
language english
resname_base .\mods+.\mods\EP\Thief1+.\mods\EP+.\patches+.\res
load_path .\
script_module_path .\
movie_path .\movies




в конце cam_ext.cfg
dark1
subs_font_family Carleton Rus
subs_font_size 7%
subs_font_weight 0
subs_font_color 1.0 1.0 1.0 1.0
subs_shadow_color 0.0 0.0 0.0 0.7
subs_space_after 3.5%

запускается русская версия, из user.cfg

если добавить строчки в cam_ext.cfg

subs_shadow_offset_x 0.42%
subs_shadow_offset_y 0.42%


русский язык уже не используется (настройки user.cfg игнорируются)
англ. язык с параметрами из install.cfg

ViLE

Цитировать
модули с отладочной инфой лежа в папке с игрой

ничего странного не видно...

С отладкой я немного перемудрил. Просто под "сбоем" я подумал, что игра вообще вываливается :)

Заменил мои модули на оригинальные (1.19) и... проблема осталась.
Решение - или subs_font_weight поместить после subs_shadow_offset_y,
или subs_shadow_offset_x/y поместить перед subs_font_family.

DonSleza4e

Цитата: ViLE от 02 января 2013 16:46:00
Цитировать
модули с отладочной инфой лежа в папке с игрой

ничего странного не видно...

С отладкой я немного перемудрил. Просто под "сбоем" я подумал, что игра вообще вываливается :)

Заменил мои модули на оригинальные (1.19) и... проблема осталась.
Решение - или subs_font_weight поместить после subs_shadow_offset_y,
или subs_shadow_offset_x/y поместить перед subs_font_family.


не работает:
subs_font_family Carleton Rus
subs_font_size 7%
subs_font_color 1.0 1.0 1.0 1.0
subs_shadow_color 0.0 0.0 0.0 0.7
subs_shadow_offset_x 0.42%
subs_shadow_offset_y 0.42%
subs_font_weight 0
subs_space_after 3.5%


это тоже

subs_shadow_offset_x 0.42%
subs_shadow_offset_y 0.42%
subs_font_family Carleton Rus
subs_font_size 7%
subs_font_color 1.0 1.0 1.0 1.0
subs_shadow_color 0.0 0.0 0.0 0.7
subs_font_weight 0
subs_space_after 3.5%



ViLE

DonSleza4e
Печально, что не работает. Разве, что попробовать переименовать эти параметры...

DonSleza4e

Я пока вообще убрал эти параметры, чтобы работало. Конфликтные они какие-то
subs_shadow_offset_x 0.42%
subs_shadow_offset_y 0.42%

ViLE

#25
DonSleza4e
Попробуй, если переименование поможет, то скомпилирую модули с новыми названиями параметров.

Пробовал с таким набором параметров:
dark1
subs_font_family Carleton Rus
subs_font_size 7%
subs_font_color 1.0 1.0 1.0 1.0
subs_shade_color 0.0 0.0 0.0 0.7
subs_space_after 3.5%
subs_font_weight 0
subs_shade_offset_x 0.45%
subs_shade_offset_y 0.45%

DonSleza4e

еще в качестве заметки, которая может остаться без внимания

разработчик патча взял уже ныне устаревшую версию ffmpeg.dll (1.5 годичной давности)

Она грешит проблемой воспроизведения видео-роликов на некоторых компьютерах, в частности на моем ноуте (на основном компьютере все нормально).

в логах thief пишет это сообщение -
пишется в этом месте в lgvid.cpp

hDll = LoadLibrary("ffmpeg.dll");
if (!hDll)
{
// NOTE: could show message box (once) here, OTOH message boxes and fullscreen is just a bad combo
mprintf("Failed to find/load ffmpeg.dll, no movie playback possible");
return FALSE;
}


Погуглил, нашел что эту проблему исправили в более новых версиях ffmpeg.dll
Однако в этих версиях некоторые используемые методы уже устарели,  помечены как obsolete/deprecated - видел что писалось об этом где-то на форумах

Поэтому просто положить в папку ffmpeg.dll с заменой не получается, не хавает ее

ViLE

Цитата: DonSleza4e от 04 января 2013 12:26:58
разработчик патча взял уже ныне устаревшую версию ffmpeg.dll (1.5 годичной давности)

Хорошо, попробую обновить ffmpeg.

ViLE

Обновление lgvidsubs.
Объединил lgvid.dll с ffmpeg.dll. FFmpeg обновлён до 1.1.

DonSleza4e

о, вот спасибо большое!
попробуемс