19.09.2022, 16:10
(19.09.2022 15:37)myoffice91 Wrote: [ -> ]1)Обновлён Binkw32a.dll с 1.8g (15.12.2005 год) до 1.8x (7.09.2016 год)
На этой версии стало наооборот: звук работает, а картинка не воспроизводится - показывает чёрный экран.
(19.09.2022 15:37)myoffice91 Wrote: [ -> ]1)Обновлён Binkw32a.dll с 1.8g (15.12.2005 год) до 1.8x (7.09.2016 год)
(19.09.2022 16:10)XEPOMAHT Wrote: [ -> ](19.09.2022 15:37)myoffice91 Wrote: [ -> ]1)Обновлён Binkw32a.dll с 1.8g (15.12.2005 год) до 1.8x (7.09.2016 год)
На этой версии стало наооборот: звук работает, а картинка не воспроизводится - показывает чёрный экран.
(19.09.2022 16:26)myoffice91 Wrote: [ -> ]Забыл, что binkw32a.dll версия 1.9а. Сейчас сделал перезалито архив https://disk.yandex.ru/d/42QE3o1bGY6SpA . Спасибо!
(02.10.2022 07:32)Archer30 Wrote: [ -> ]Hi myoffice91, thanks for the updates.Здравствуй!
I wonder if it is still possible to resovle the issue of Tavern Videos I reported about the compatibility OpenGL. It looks like the same issue is still there with the latest TavvidVideosBIKv4_O_HD (1 May 2022).
Spoiler (Click to View)
(23.08.2022 17:26)XEPOMAHT Wrote: [ -> ]Мод на стартовые видеоролики из ERA+ обновлён:Скачал из архива...
1. Русская озвучка теперь синхронизирована с видео. Теперь о чём баба говорит, то и показывают.
2. Качество видео от перекодирования из старого bik в новый теперь практически не изменилось. Получилось снизить на минимум влияние формата mpeg на перекодировку.
Скачать: https://vk.com/s/v1/doc/3w2yuWKsNQHMDA8c...KHpXcco6tQ
(19.09.2022 17:07)XEPOMAHT Wrote: [ -> ](19.09.2022 16:26)myoffice91 Wrote: [ -> ]Забыл, что binkw32a.dll версия 1.9а. Сейчас сделал перезалито архив https://disk.yandex.ru/d/42QE3o1bGY6SpA . Спасибо!
Из этого архива опять не работает звук, проигрывается только картинка. Более старая версия Binkw32a.dll (1.6b) воспроизводит и видео, и звук.
(06.10.2022 11:30)myoffice91 Wrote: [ -> ]H3X1intro.bik - альфа-версия формат BIK
H3INTRO.BIK - версия 1.05 формат BIK, но кодировка 8 бит моно звук.
(25.07.2024 11:46)XEPOMAHT Wrote: [ -> ]Вчерашняя версия era.dll 3.9.15 портит (или не даёт записывать) структуру видеоролика по адресу 694D00h из-за чего становится невозможно воспроизведение вступительных роликов перед главным меню (т.к. исходных кодов от плагина Video playback in BIK format.dll у меня нет, чтобы исправить конфликт хуков с era.dll). В общем опять ERA+ остётся на era.dll версии 3.9.14.
Core.Hook(Ptr($44D270), Core.HOOKTYPE_BRIDGE, @Hook_OpenBik);
ApiJack.HookCode(Ptr($44D270), @Hook_OpenBik);
05D03FF8 | 60 | pushad
05D03FF9 | 54 | push esp
05D03FFA | B8 98B81505 | mov eax,era.515B898
05D03FFF | FFD0 | call eax
05D04001 | 85C0 | test eax,eax
05D04003 | 74 10 | je 5D04015
05D04005 | 61 | popad
05D04006 | 83C4 04 | add esp,4
05D04009 | 55 | push ebp
05D0400A | 8BEC | mov ebp,esp
05D0400C | 83EC 28 | sub esp,28
05D0400F | 68 75D24400 | push h3era hd.44D275
05D04014 | C3 | ret
05D04015 | 61 | popad
05D04016 | C3 | ret
05933CB0 | 60 | pushad
05933CB1 | 54 | push esp
05933CB2 | E8 69BC31FF | call era.4C4F920
05933CB7 | 85C0 | test eax,eax
05933CB9 | 0F84 0F000000 | je 5933CCE
05933CBF | 61 | popad
05933CC0 | 83C4 04 | add esp,4
05933CC3 | 55 | push ebp
05933CC4 | 8BEC | mov ebp,esp
05933CC6 | 83EC 28 | sub esp,28
05933CC9 | E9 A895B1FA | jmp h3era hd.44D276
05933CCE | 61 | popad
05933CCF | C3 | ret
(08.08.2024 00:31)Berserker Wrote: [ -> ]Нельзя писать внутрь моста/переходника хука.
(08.08.2024 00:31)Berserker Wrote: [ -> ]Для установки перехвата можно использовать HiHook патчера patcher_x86.dll или API из Эры
(08.08.2024 14:32)Berserker Wrote: [ -> ]всё это чёрная магия к костылями )
(08.08.2024 14:32)Berserker Wrote: [ -> ]Хуки делятся на 2 типа: call команда прямо в месте установки или jmp в начале функции.
(08.08.2024 14:32)Berserker Wrote: [ -> ]Вторая — это высокоуровневая замена всей оригинальной функции.
(08.08.2024 14:32)Berserker Wrote: [ -> ]Обработчики перехватов соответственно тоже бывают двух типов: первые получают указатель на контекст (регистры, адрес возврата на момент вызова хука) и возвращают флаг того, нужно ли выполнить затёртый код. Второй тип обработчиков — это новая реализация функции. У них stdcall соглашение и все те же аргументы, что и у оригинальной функции, но первый аргумент — адрес моста к оригинальной функции, то есть как бы адрес оригинальной функции, который можно использовать для её вызова.
(08.08.2024 14:32)Berserker Wrote: [ -> ]Тебе двух функций HookCode/Splice хватило бы почти на все нужды, при том, что они умеют строить мосты и выполнять затёртый код.
(08.08.2024 14:32)Berserker Wrote: [ -> ]У меня такое ощущение, что автор плагина не знал, как это сделать корректно и потому влез внутрь поста splice-перехвата Эры. А нужно было всего-то установить другой Splice перехват поверх оригинального. В этом и высокоуровневость, что одну и ту же функцию, можно перехватить несчётное количество раз.
(08.08.2024 14:32)Berserker Wrote: [ -> ]ибо костыли потом аукаются всем )
(08.08.2024 17:55)Berserker Wrote: [ -> ]По моему мнению, не прав ты по всем пунктам.
(08.08.2024 17:55)Berserker Wrote: [ -> ]Скажу проще, лапшу из асм кода никто никогда править не будет. А хук из ЕРМ/Lua/плагинов поправить — пара байт или одна строка кода.