Wake of Gods Forum | Форум Во Имя Богов
Плагин: воспроизведение видео в формате BIK (2022) - Printable Version

+- Wake of Gods Forum | Форум Во Имя Богов (http://wforum.heroes35.net)
+-- Forum: Герои Меча и Магии 3.5 WoG/ERA (/forumdisplay.php?fid=99)
+--- Forum: Моды (/forumdisplay.php?fid=104)
+---- Forum: Игровая графика (/forumdisplay.php?fid=188)
+----- Forum: Видео (/forumdisplay.php?fid=197)
+----- Thread: Плагин: воспроизведение видео в формате BIK (2022) (/showthread.php?tid=6573)


Плагин: воспроизведение видео в формате BIK (2022) - myoffice91 - 29.04.2022 20:03

Quote:; Автор: myoffice91
; Плагин: Воспроизведение видео в формате BIK
; Версия: 1.5
; Совместимость HD-mod и ЭРА: от 2.461 до последней версии. ERA PLUS 0.3.5.2
; Читает BIK: версии 0.5b и 1.8d.

Особенность:
1)Полная поддержка нового и старого формата видео BIK.
2)Поддерживает HD-mod и ЭРА: с 2.461, 3.0.1, 3.Х.
3)Не конфликтует с модами.

ИСТОРИЯ ИЗМЕНЕНИЙ ВЕРСИЙ

Версия 1.5

1)Заменена Binkw32a.dll с 1.8x (7.09.2016 год) до 1.8d (06-24-2005)
2)Заменена WaveOut на Miles. Можете обратно поменять WaveOut, только через heroes3.ini, секция Settings, ключ BinkSoundType=1
3)Добавлена поддержка "LOOP" для смены видео.

Например видео: первый TVCC.BIK
Для смены видео, нужно писать TVCC_LOOP.BIK

https://youtu.be/_UIaytS8KI4

4)Исправлен баг: в моде "ERA+" в таверне видео формата SMK при клике на портрет было моргание видео.


Скачать плагин "Воспроизведение видео в формате BIK" 1.5 + программу RADVideo 1.8x : https://disk.yandex.ru/d/upaGK_CNqiLPtQ


Версия 1.4
1)Обновлён Binkw32a.dll с 1.8g (15.12.2005 год) до 1.8x (7.09.2016 год)

2)Поменял Miles на WaveOut. Теперь звук заработал и без дребезжаний. Теперь не нужна дополнительная свежая библиотека MSS32.DLL.

3)Бонус: утилита rad-video-tools 1.8x.exe.


Тестировал с ЭРА 3.9.3+HD-mod 5.3 R1

Скачать плагин "Воспроизведение видео в формате BIK" 1.4 + программу RADVideo 1.8x : https://disk.yandex.ru/d/42QE3o1bGY6SpA


Версия 1.3
17.09.2022
1)Исправлен баг: игра запускается с задержкой на 3 секунды. (на моде "Video menu for the launcher2" - более минуты) от suftfree.
2)Исправлен баг: свечение кнопки, например, на моде "Video for the launcher_Final" от suftfree.

18.09.2022
1)Исправлен баг: если 23.97 кадров в секунду, то происходит сияние кнопки. (на моде "Случайное видео в главном меню ERA 3") Теперь нет сияния кнопки. (бета 1.3)

2)Обновлён Binkw32a.dll с (1.6b) (28 август 2004 год) до 1.8g (15.12.2005 год).
Это решает проблему: в моде "TavernVideos BIK" - многоразовый клик на портрет приводит к разрыву видео и или к черным пятнам.


Тестировал с ЭРА 3.9.3+HD-mod 5.3 R12, Windows XP SP3 и Windows 7 - проблемы не возникли!

Скачать плагин "Воспроизведение видео в формате BIK" 1.3: https://disk.yandex.ru/d/whvlf1oJ9V7yEw


Версия 1.2
1)Исправлен оригинальный баг ЭРА 3 - PNG сияние кнопки. (в главном меню).
Скачать плагин "Воспроизведение видео в формате BIK" 1.2: - скачиваний: 13.


Версия 1.1

2.05.2022
1)Теперь видео воспроизводить звуки.

2-4.05.2022
2)Добавлен хук в процедуре OpenVideo. Раньше читал только формат SMK, например LOSEGAME.SMK. Теперь проверяет на существование файла LOSEGAME.BIK. Если есть файл, то выводит видео. Есть возможность замены видео из SMK на BIK, кроме Loop. Loop это два файла, например "HSANIM.SMK" и "HSLOOP.SMK", иначе сбой binkw32a.dll+0x197AF

Скачать плагин "Воспроизведение видео в формате BIK" 1.1: - скачиваний: 16.

-----------------
Скачать плагин "Воспроизведение видео в формате BIK" 1.0: https://disk.yandex.ru/d/Mgfdr8-4vFqVnw
-----------------

The RAD Video Tools комплекс программ для работы с файлами форматов .bik и .smk. Позволяет сжимать данные в данный формат, пережимать существующие файлы, удалять звуковые дорожки из файлов.

Скачать программу RADVideo 1.8k https://disk.yandex.ru/d/D9PNypTk1r08DQ
--

File name: введите здесь имя файла, с которым вы хотите работать. Например, если вы хотите просто воспроизвести файл, просто выделите его и нажмите кнопку «Воспроизвести». Вы можете изменить параметры воспроизведения по умолчанию в окне «Расширенное воспроизведение».

Files of type: по умолчанию в RAD Video Tools отображаются все файлы мультимедиа, но вы можете использовать это раскрывающееся меню, чтобы изменить список выбора файлов.

Bink it: эта кнопка открывает окно компрессора Bink, в котором вы можете сжать свои фильмы с помощью нашего полноцветного кодека Bink.

Smack it: эта кнопка открывает окно компрессора Smacker, в котором вы можете сжать свои фильмы с помощью кодека Smacker.

Advanced play: кнопка «Расширенное воспроизведение» открывает экран параметров воспроизведения, где вы можете настроить параметры, которые будут использоваться при воспроизведении вашего видео. Расширенные параметры воспроизведения доступны для файлов Bink и Smacker. Если вы выделили файл Bink, откроется экран воспроизведения Bink Advanced. Точно так же, если вы выделите файл Smacker и нажмете кнопку «Advanced Play», откроется окно воспроизведения Smacker Advanced, которое немного отличается.

Mix in sound: эта кнопка открывает аудиомикшер Bink или Smacker. Вам нужно использовать аудиомикшер только тогда, когда вы хотите заменить или добавить другую звуковую дорожку в видеофайл. Обычно вам не нужно использовать эту функцию, потому что наши компрессоры автоматически сжимают звуковую дорожку файла AVI или QuickTime вместе с видеокадрами.

Convert a file: преобразователь RAD может преобразовать практически любой тип файла в другой тип. Например, вы можете конвертировать набор BMP в AVI, GIF в JPEG, Smackers в видео, QuickTime в AVI, волновые файлы в разные частоты дискретизации, 24-битные изображения в 8-битные изображения и т. д.

Analyze file: кнопка «Анализировать» открывает одну из самых удобных функций в RAD Video Tools. Он отображает визуальное представление скорости передачи данных файла Bink или Smacker.

List files: вы можете создать файл списка, нажав эту кнопку. Файл списка – это текстовый файл, содержащий список других имен файлов, которые вы хотите рассматривать как один большой файл. Это позволяет вам сжимать несколько входных файлов в один выходной файл.

New version?: Используйте это, чтобы проверить свою версию Bink. Это быстрый и простой способ убедиться, что вы всегда используете самое последнее и самое лучшее обновление для RAD Video Tools.

Batch: эта кнопка запускает пакетный редактор RAD. Вы можете использовать пакетный редактор для создания списка задач, которые можно запускать без присмотра.

File info: нажмите кнопку «Информация о файле», чтобы отобразить описание выделенного медиафайла.

System info: кнопка «Информация о системе» отображает информацию о вашем компьютере.

Help: щелчок мышью по кнопке «Справка» откроет окно браузера на эту страницу справки.

FAQs: если вы нажмете кнопку «Часто задаваемые вопросы», ваш браузер откроет страницу с часто задаваемыми вопросами.

About: кнопка «О программе» открывает окно с информацией о версии RAD Video Tools.






Quote:Smacker — проприетарный формат файла, медиаконтейнер, разработанный американской компанией RAD Game Tools для использования в преимущественно компьютерных играх для разных игровых платформ. В отличие от множества других медиаконтейнеров, «Smacker» является так называемым «Single coding format» — он определяет не только «обёртку файла», но и аудио- и видеокодеки, с помощью которых кодируются данные. «Smacker» поставляется в комплекте с набором программных инструментов «RAD Video Tools» вместе с другим подобным файловым форматом от RAD Game Tools — «Bink».

По заявлению разработчика, с 1994 года Smacker был использован в более чем 2300 играх.

Формат поддерживает только 256-цветную палитру видео и имеет поддержку «прозрачного» цвета. Уровень сжатия может достигать 12:1, но в этом случае почти всё качество исходного изображения будет потеряно из-за пикселизации.

Один кадр видео в формате Smacker может содержать не более 256 цветов, но за счёт использования динамической палитры видеоролик в целом может использовать намного больше цветов.

В настоящее время формат имеет ограниченное применение. В качестве его замены RAD разработала формат Bink, рассчитанный на полноцветные видеорежимы высокого разрешения и возросшие вычислительные мощности компьютеров. Тем не менее Smacker незначительно обновлялся после появления Bink — в него была добавлена поддержка аудиокодеков Bink.



Quote:Bink — проприетарный формат файла, медиаконтейнер, разработанный американской компанией RAD Game Tools для использования преимущественно в компьютерных играх для разных игровых платформ. Формат «Bink» используется во многих играх под персональные компьютеры (Mac OS, Microsoft Windows) и игровые консоли Xbox, Xbox 360, GameCube, Nintendo DS, Wii, PlayStation 2, PlayStation Portable и Playstation 3. На октябрь 2019 года «Bink» используется в более чем 14 000 играх для 14 разных игровых платформ.

В отличие от множества других медиаконтейнеров, «Bink» является так называемым «Single coding format» — он определяет не только «обёртку файла», но и аудио- и видеокодеки, с помощью которых кодируются данные. «Bink» поставляется в комплекте с набором программных инструментов «RAD Video Tools» вместе с другим подобным файловым форматом от RAD Game Tools — «Smacker». В «Bink» сделан акцент на низкие аппаратные системные требования при декодировании, что позволяет использовать его в разных консолях без дополнительных оптимизаций. «Bink» оптимизирован под разные аппаратные архитектуры: он использует вычислительные блоки SPU на Playstation 3, VMX на Xbox 360, SSE 2 на x86-совместимых микропроцессорах, имеет массивные ассемблерные оптимизации под Nintendo DS и т.д.

Видеокодек «Bink» является гибридным кодеком, который способен использовать 16 различных алгоритмов кодирования, что позволяет закодировать любой тип видео. Видеокодек «Bink» поддерживает вейвлет-сжатие и дискретное косинусное преобразование. «Bink» поддерживает разрешение от 320×240 пикселей и вплоть до HD. Видеокодек поддерживает битрейт от 75 kbps для видео под Nintendo DS и до 1200 kbps для видео стандарта HD 1280x720p.

Аудиокодек «Bink» поддерживает сжатие аудиоданных вплоть до коэффициента 15:1, используя переменный битрейт с психо-акустической моделью. Также аудиокодек может проигрывать несколько аудиопотоков одновременно, что позволяет проигрывать 5.1- и 7.1-канальные звуковые дорожки.

Bink Development History
--

Рабочий прототип:

Плагин: Случайное видео в главном меню
Версия: 1.1
Автор: myoffice91

Скачать Случайное видео в главном меню ERA 3: https://disk.yandex.ru/d/f19Ahw-oC24f6g

ИСТОРИЯ ИЗМЕНЕНИЙ ВЕРСИЙ
1.1
27.05.2022
1)Исправлен критический баг: выделение памяти 222 мб, из-за спешки. Случайно поставил хуки "в главном меню", поэтому регистр неверный.

Image: _93af124819514e51fd2b449b0424e964.jpeg
Image: 0185ffd84909a1c27f19239f16dae54b.jpg
Image: fba31bb933238fd41ae51ad5f86cd3a2.jpg
Image: f521c42661b9adaf368ac85ef26bdad8.jpg
Image: 495e3c0ef842b40925a2b0342cf07c53.jpg
Image: 6da8ec67a6cf7c7ffe81a613a867c649.jpg
Image: f5fbeed0569c17ef701a4def849ba138.jpg
Image: b5b3cffc6547bda6a54b8dc0008f3da4.jpg
Image: 09126cef31339d3c45f982505df6c360.jpg










--------------------------------
Плагин: Случайное видео в главном меню
Версия: 1.0
Автор: myoffice91


Особенность:
1)Меньше вес и хорошее качество видео.
2)В карте->нажать главное меню - появляется случайное видео
3)Плагин читает архив "Random videos of the main menu.vid", есть счетчик массива имен файлов. То есть, нет необходимости прописывать имена файлов в текстовике.
4)При нажатии кнопки "новая игра", "загрузить игру" и прочее, даже окно "сценария карты" теперь не возвращается на начало видео. Кроме трёх кампании.

Image: JEND1L15vinuzxHOqWPm1Tx-rfFyuQ7hm4rUl3_N...type=album
Image: gUAcG7nUXPAF0TmzjijNK45onzQxfsr62S7XSJHO...type=album
Image: 6u02wgIwWSieLW-ojbcvpgBG_ntoBOpCGFmVfJ1H...type=album
Скачать здесь: https://disk.yandex.ru/d/6SfZ78yBFvb_EQ
-----------------

TavernVideos BIK 1.5 -
Quote:В городах каждого типа - в тавернах своя видеозаставка и своё название из TRnameT_RUS.txt.
На карте объекты "таверна" другое название из TRnameM_RUS.txt.
СКАЧАТЬ https://disk.yandex.ru/d/j1bFnLlCNZWHjw

Image: 6b2685e5662028384936278c6939b10d.jpg


RE: Плагин: воспроизведение видео в формате BIK - Berserker - 29.04.2022 21:19

Ещё не протестировал, но выражаю огромную благодарность! С новыми модами на интерфейс с полупрозрачностью кнопок смотреться будет великолепно!


RE: Плагин: воспроизведение видео в формате BIK - Elmore - 29.04.2022 22:52

Однозначно, это круто. Спасибо!132

Quote:Читает BIK: версии 0.5b и 1.6b
Какова специфика ограничения старой версией?


RE: Плагин: воспроизведение видео в формате BIK - XEPOMAHT - 30.04.2022 00:01

(29.04.2022 22:52)Elmore Wrote:  
Quote:Читает BIK: версии 0.5b и 1.6b
Какова специфика ограничения старой версией?

В 0.5 закодировать видео нельзя, т.к. это закрытый внутренний формат. В 0.8 и выше - можно, да и соотношение размер/качество там значительно выше.


RE: Плагин: воспроизведение видео в формате BIK - Elmore - 30.04.2022 10:27

Меня интересует, почему не добавлена актуальная версия программы и формата, а так же bik2 Ab
Хочу знать, есть ли на то серьезные технические ограничения или же таков выбор автора.

Это как с плагинами на 2008 студии. Старички привыкли, а приходящим "новичкам" куча гемора.
Я за то, чтобы осовременивать игру по всем! возможным направлениям



RE: Плагин: воспроизведение видео в формате BIK - daemon_n - 30.04.2022 19:00

myoffice91, отличные новости! Спасибо огромное за работу132
для окна кампаний попробуй эти адреса


Code:
00456BA0 Dlg_CampaignsMenu_Prepare
004F0799 Dlg_CampaignsMenu_Dialog



RE: Плагин: воспроизведение видео в формате BIK - myoffice91 - 30.04.2022 22:41

(29.04.2022 21:19)Berserker Wrote:  Ещё не протестировал, но выражаю огромную благодарность! С новыми модами на интерфейс с полупрозрачностью кнопок смотреться будет великолепно!
Теперь устранен серьёзный недостаток в ЭРА =)


(29.04.2022 22:52)Elmore Wrote:  Однозначно, это круто. Спасибо!132

Quote:Читает BIK: версии 0.5b и 1.6b
Какова специфика ограничения старой версией?
На официальном сайте "Истории изменений" - ни слово о 0.5b, значит это альфа версия. Только 0.8а релиз. Поэтому, по другому структуры видео-файлов и экзешник.

Changes from 0.0 to 0.8a (03-22-1999)
  • The first version of Bink for general testing is released (Bink Release Candidate 1)!
  • File format changed from earlier betas, this came with an almost 2x quality improvement however - especially on low-bandwidth materials.
  • Codec technology is completely finished - tools still need minor polishing, including the integration of Smacker.
  • This version of Bink requires DirectX to be installed.

Яндекс переводчик:



Полгода назад, кто-то задавал похожий вопрос
http://wforum.heroes35.net/showthread.php?tid=5684&pid=131487#pid131487 в теме "Вопросы по работе с BIK/SMK"

-----------------------------------


(30.04.2022 10:27)Elmore Wrote:  Меня интересует, почему не добавлена актуальная версия программы и формата, а так же bik2 Ab
Хочу знать, есть ли на то серьезные технические ограничения или же таков выбор автора.

Это как с плагинами на 2008 студии. Старички привыкли, а приходящим "новичкам" куча гемора.

Я за то, чтобы осовременивать игру по всем! возможным направлениям

1)
(27.04.2022 18:10)myoffice91 Wrote:  
(18.04.2022 21:45)Elmore Wrote:  Просто из любопытства, актуальную версию программы RADVideo или формат Bink 2 добавить не возможно?


Вы посмотрели комментарии на 1 странице в теме http://wforum.heroes35.net/showthread.php?tid=5357 ? Там была проблема не только в "не совместимость Windows XP", но и в артефактах, и в случайном вылете.

Самое главное - максимальная совместимость с операционной системой, начиная от Windows XP и стабильство в игре. Не тестировал Windows 98, думаю работает.
Зачем вам нужен последняя версия BIK? или ради новая версия сжатие данные видео?





Попробуйте заменить библиотеку "Mods\Video playback in BIK format\binkw32a.dll" на новую версию 2.9 и протестировать.




(30.04.2022 19:00)daemon_n Wrote:  myoffice91, отличные новости! Спасибо огромное за работу132
для окна кампаний попробуй эти адреса


Code:
00456BA0 Dlg_CampaignsMenu_Prepare
004F0799 Dlg_CampaignsMenu_Dialog
Окно "Кампания", процедура OpenBink - грузит 6 видео, значит обнуляет переменные текущего видео в главном меню.



Вышла новая версия "TavernVideos BIK (Assembler)" 2.0 для ERA.
Обязательно подключать плагин "Video playback in BIK format", иначе не будет воспроизводиться видео, будет только название таверны.
Не поддерживает Heroes 3 МоР
http://wforum.heroes35.net/showthread.php?tid=5357&pid=133348#pid133348



Анонс "Video playback in BIK format" 1.1 версия.



RE: Плагин: воспроизведение видео в формате BIK - Elmore - 01.05.2022 00:00

(30.04.2022 22:41)myoffice91 Wrote:  Попробуйте заменить библиотеку "Mods\Video playback in BIK format\binkw32a.dll" на новую версию 2.9 и протестировать.

Увы, не стартануло на версии 2.5i (какую нашел поиском105)

(30.04.2022 22:41)myoffice91 Wrote:  Самое главное - максимальная совместимость с операционной системой, начиная от Windows XP и стабильство в игре. Не тестировал Windows 98, думаю работает.
Зачем вам нужен последняя версия BIK? или ради новая версия сжатие данные видео?

Сжатие (крайне важный параметр, когда новый функционал обретет повсеместное использование), качество, скорость.. разные оптимизации и дальнейшее развитие. Детально changelog не изучал.

p.s. я противник привязки к windows xp в ущерб новшествам и улучшениям, если по другому никак. Эту операционку используют единицы игроков.


RE: Плагин: воспроизведение видео в формате BIK - daemon_n - 01.05.2022 12:48

(30.04.2022 22:41)myoffice91 Wrote:  
(30.04.2022 19:00)daemon_n Wrote:  myoffice91, отличные новости! Спасибо огромное за работу132
для окна кампаний попробуй эти адреса

Code:
00456BA0 Dlg_CampaignsMenu_Prepare
004F0799 Dlg_CampaignsMenu_Dialog
Окно "Кампания", процедура OpenBink - грузит 6 видео, значит обнуляет переменные текущего видео в главном меню.

Так я не о том окне кампаний подумал - я казал координаты на диалог главного меню с выбором кампаний SoD/RoE/AB - думал, что там проблемы.
В общем, разобралисьYes


RE: Плагин: воспроизведение видео в формате BIK - myoffice91 - 03.05.2022 18:03

Вышла новая версия "Воспроизведение видео в формате BIK" 1.1: https://disk.yandex.ru/d/cu734VsaxyDzXw

ИСТОРИЯ ИЗМЕНЕНИЙ ВЕРСИЙ
Версия 1.1

2.05.2022
1)Теперь видео воспроизводить звуки.

2-4.05.2022
2)Добавлен хук в процедуре OpenVideo. Раньше читал только формат SMK, например LOSEGAME.SMK. Теперь проверяет на существование файла LOSEGAME.BIK. Если есть файл, то выводит видео. Есть возможность замены видео из SMK на BIK, кроме Loop. Loop это два файла, например "HSANIM.SMK" и "HSLOOP.SMK", иначе сбой binkw32a.dll+0x197AF


-------------------------------------------



RE: Плагин: воспроизведение видео в формате BIK - Berserker - 04.05.2022 03:55

Прекрасное обновление, спасибо!


RE: Плагин: воспроизведение видео в формате BIK - daemon_n - 04.05.2022 20:36

Отлично, спасибо!
Можно переделать видео "поражения" в игре на что-то не такое страшное148)


RE: Плагин: воспроизведение видео в формате BIK - Suft - 10.05.2022 12:58

daemon_n, Не надо! Это обалденно!


RE: Плагин: воспроизведение видео в формате BIK - Elmore - 10.05.2022 14:53

myoffice91, в любом случае огромное спасибо за плагин 132
Если в будущем появится возможность и желание попытаться подтянуть еще более новую версию bik2, будет круто.


RE: Плагин: воспроизведение видео в формате BIK - Archer30 - 10.05.2022 20:08

myoffice91, great mod! Thanks for your work!

Well I'd like to report a small issue of the new Tavern Video mod. Looks like the screen updating is not reliable in all the cases.
I play on ERA with the latest HoMM 3 HD, 32-bit OpenGL by Verok. From my testing, the tavern videos is easily broken if I click on the heroes' portraits multiple times.
Could that be a problem with OpenGL compatibilty?

Btw, I don't think it is necessary to set your mod with +100 priority, because the traditional ERA mod SFX uses ...\Tools\installmod.exe to add in the mod name to the end of list.txt, which easily results in this happen (mod with lower priority is placed on top):



RE: Плагин: воспроизведение видео в формате BIK - Suft - 20.05.2022 13:20

myoffice91, Залил свои видео и увидел несовпадение цветовой гаммы - всё остальное нормально работает
Может проблема в том что версия радвидео старая
В данном случае вместо оранжевого цвета всё синее
Сейчас выложу тестовую подборку для вашего мода
Image: 78b155791f5a4cbf2cbeccc435c0f72c.png


RE: Плагин: воспроизведение видео в формате BIK - DarkyAndSparky - 20.05.2022 16:05

(20.05.2022 13:20)suftfree Wrote:  Залил свои видео и увидел несовпадение цветовой гаммы - всё остальное нормально работает.
Так атмосферно кстати говоря)


RE: Плагин: воспроизведение видео в формате BIK - myoffice91 - 20.05.2022 22:28

(10.05.2022 20:08)Archer30 Wrote:  myoffice91, great mod! Thanks for your work!

Well I'd like to report a small issue of the new Tavern Video mod. Looks like the screen updating is not reliable in all the cases.
I play on ERA with the latest HoMM 3 HD, 32-bit OpenGL by Verok. From my testing, the tavern videos is easily broken if I click on the heroes' portraits multiple times.
Could that be a problem with OpenGL compatibilty?

Btw, I don't think it is necessary to set your mod with +100 priority, because the traditional ERA mod SFX uses ...\Tools\installmod.exe to add in the mod name to the end of list.txt, which easily results in this happen (mod with lower priority is placed on top):

Посмотрел в ERA3 с HD mod клики на портрет, действительно есть проблемы во всех опциях режима "GDI","Opengl"...


Раньше тестировал ERA 2.461 + HD mod 3.52 - тут не было проблем при кликов на портрет.

И плагин "Воспроизведение видео в формате BIK" версия 1.0 - было без проблем на любой версии ERA.

Причина: в версии 1.1 из-за поддержки "видео воспроизводит звуки".



Придется в 1.2 не только исправить баг, но добавить новые функционалы, например, поддержку строк файла для видео, а не индекс. Но, не сейчас, пока доделываю "Wizardry 8 инструмент 1.08".



------------------------------------


(20.05.2022 13:20)suftfree Wrote:  myoffice91, Залил свои видео и увидел несовпадение цветовой гаммы - всё остальное нормально работает
Может проблема в том что версия радвидео старая
В данном случае вместо оранжевого цвета всё синее
Сейчас выложу тестовую подборку для вашего мода
Image: 78b155791f5a4cbf2cbeccc435c0f72c.png


Чем больше увеличить битрейт видео "Compress to a data rate (bytes)", тем лучше качество видео,
или можно выбрать галочку "Compress to a % of the original": 50.




Berserker, есть идея, насчет новых команд на EPM, нужно добавить функцию BIK,
агрумент1:
0-открыть видео
1-закрыть видео
агрумент2:
0-индекс
1-строка имя файла
агрумент3:
число или текстовый.



RE: Плагин: воспроизведение видео в формате BIK - Suft - 21.05.2022 13:35

(20.05.2022 13:20)suftfree Wrote:  myoffice91, Залил свои видео и увидел несовпадение цветовой гаммы
В данном случае вместо оранжевого цвета всё синее
Image: 78b155791f5a4cbf2cbeccc435c0f72c.png
Попробовал compress to a data rate (bytes): 400000
Только в MMArchive все нормально
Image: 29b00867242c5dfe3e30f8b77d530b07.png


RE: Плагин: воспроизведение видео в формате BIK - myoffice91 - 21.05.2022 14:04

suftfree, Вспомнил, 2 года назад http://wforum.heroes35.net/showthread.php?tid=5357&pid=119957#pid119957, Archer30 писал, что не совпадает цветовая гамма, вместо оранжевого - синий цвет.
Писал, что использовал 32-bit OpenGL.


Попробуй в HD mod, в режиме поменять "OpenGL" на "GDI", либо выбрать другой.


RE: Плагин: воспроизведение видео в формате BIK - Suft - 21.05.2022 14:39

myoffice91, Спасибо - поставил GDI полёт нормальный сейчас выложу подборку и уже там обрисую другую проблему


RE: Плагин: воспроизведение видео в формате BIK - myoffice91 - 28.05.2022 23:44

Вышла новая версия "Воспроизведение видео в формате BIK" 1.2:
https://disk.yandex.ru/d/6LBze07JFr9fYA



ИСТОРИЯ ИЗМЕНЕНИЙ ВЕРСИЙ
Версия 1.2
1)Исправлен оригинальный баг ЭРА 3 - PNG сияние кнопки. (в главном меню).




Рабочий прототип:

Плагин: Случайное видео в главном меню
Версия: 1.1
Автор: myoffice91

Скачать Случайное видео в главном меню ERA 3: https://disk.yandex.ru/d/f19Ahw-oC24f6g

ИСТОРИЯ ИЗМЕНЕНИЙ ВЕРСИЙ
1.1
27.05.2022
1)Исправлен критический баг: выделение памяти 222 мб, из-за спешки. Случайно поставил хуки "в главном меню", поэтому регистр неверный.

Image: _93af124819514e51fd2b449b0424e964.jpeg
Image: 0185ffd84909a1c27f19239f16dae54b.jpg
Image: fba31bb933238fd41ae51ad5f86cd3a2.jpg
Image: f521c42661b9adaf368ac85ef26bdad8.jpg
Image: 495e3c0ef842b40925a2b0342cf07c53.jpg
Image: 6da8ec67a6cf7c7ffe81a613a867c649.jpg
Image: f5fbeed0569c17ef701a4def849ba138.jpg
Image: b5b3cffc6547bda6a54b8dc0008f3da4.jpg
Image: 09126cef31339d3c45f982505df6c360.jpg


RE: Плагин: воспроизведение видео в формате BIK - myoffice91 - 22.08.2022 14:43

Кто-то не знает...


Quote:Suft — 14.08.2022
Спасибо вам - TavernVideos BIK и Плагин: воспроизведение видео в формате BIK - просто шикарны
У меня появилась идея - а что если сделать поддержку всех роликов игры и перевести их в BIK формат для повышения качества и экономии места? (Возможно ли перевести SMK в BIK с сохранением звука?)

Quote:Suft — 14.08.2022
Он поддерживает замену всех роликов игры?

Quote:daemon_n — 14.08.2022
тогда, если не влом, покапай, пожалуйста, возможность играть звуки/видео кампаний не из heroes3.snd

Посмотри видео-презентация youtube =)



RE: Плагин: воспроизведение видео в формате BIK (2022) - myoffice91 - 18.09.2022 15:31

Вышла новая версия "Воспроизведение видео в формате BIK" 1.3:
https://disk.yandex.ru/d/whvlf1oJ9V7yEw




ИСТОРИЯ ИЗМЕНЕНИЙ ВЕРСИЙ


17.09.2022
1)Исправлен баг: игра запускается с задержкой на 3 секунды. (на моде "Video menu for the launcher2" - более минуты) от suftfree.
2)Исправлен баг: свечение кнопки, например, на моде "Video for the launcher_Final" от suftfree.

18.09.2022
1)Исправлен баг: если 23.97 кадров в секунду, то происходит сияние кнопки. (на моде "Случайное видео в главном меню ERA 3") Теперь нет сияния кнопки. (бета 1.3)

2)Обновлён Binkw32a.dll с (1.6b) (28 август 2004 год) до 1.8g (15.12.2005 год).
Это решает проблему: в моде "TavernVideos BIK" - многоразовый клик на портрет приводит к разрыву видео и или к черным пятнам.


Тестировал с ЭРА 3.9.3+HD-mod 5.3 R12, Windows XP SP3 и Windows 7 - проблемы не возникли!


Bink Development History



RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 18.09.2022 15:58

(18.09.2022 15:31)myoffice91 Wrote:  2)Обновлён Binkw32a.dll с (1.6b) (28 август 2004 год) до 1.8g (15.12.2005 год).
Это решает проблему: в моде "TavernVideos BIK" - многоразовый клик на портрет приводит к разрыву видео и или к черным пятнам.


Тестировал с ЭРА 3.9.3+HD-mod 5.3 R12, Windows XP SP3 и Windows 7 - проблемы не возникли!

Проверил на Windows 2003 - на 1.8g не вопроизводится звук в новых видеороликах. На 1.6b звук работает без проблем. Поэтому в ERA+ остаётся последняя версия плагина, но со старой версией Binkw32a.dll, т.к. пересохранять видео под версию 1.8g уже не буду, т.к. исходников видео и аудио у меня уже нет - весили слишком много и я их давно удалил.


RE: Плагин: воспроизведение видео в формате BIK (2022) - Berserker - 19.09.2022 08:27

myoffice91, спасибо за обновление! А что за баг с сиянием? Что кнопки в игре множество раз отрисовываются на холсте?


RE: Плагин: воспроизведение видео в формате BIK (2022) - daemon_n - 19.09.2022 11:47

Berserker, баг был у пнг элемнтов - как pcx, так и def.


RE: Плагин: воспроизведение видео в формате BIK (2022) - Berserker - 19.09.2022 13:32

Баг в чём?


RE: Плагин: воспроизведение видео в формате BIK (2022) - myoffice91 - 19.09.2022 13:39

XEPOMAHT, спасибо за баг. Просто забыл надо проверить звуки для таверны.

binkw32a (1.8g) пытается искать примерно 10 процедур из MSS32.DLL, но 3 не найдена процедура:
18029588:"_AIL_set_sample_channel_levels@12"
18029530:"_AIL_init_sample@12"
180294A4:"_AIL_set_sample_volume_pan@12"

Если не найдена главная процедура, то не будет воспроизводить звуки. Попробовал поменять на условие, чтобы выполнить звуки, убрал три вызова процедуры. Заработал звук, но заметил разницу: 1.6b не совпадает с новой 1.8g как в оригинале, из-за лишних шумовых звуков.

Узнал, начиная с 1.8e (9-14-2005) там новая версия библиотеки Miles 7 из-за новведений 5.1 канал звук https://ru.wikipedia.org/wiki/Объёмный_звук

Попробовал 6.6g новую версию MSS32.DLL положил в корневую папку. При запуске игры ERA.exe пишет "Точка входа в процедуру "_AIL_set_sample_volume@8" не найдена."

Если ERA HD.exe, то пишет "Точка входа в процедуру "_RIB_provider_library_handle@0" не найдена."


Факт:
h3era.exe использует MSS32.dll версия 5.0e, "Saturday 27 March 1999, 23.57.16"
h3era HD.exe использует MSS32.dll версия 6.1d, "2002"




Пробовал MSS32.dll (версия 6.1d), переименовал на MSS32-6-1d.dll, затем модифицировал binkw32a, результат вообще нет звука на видео =(.


Как программа без проблем воспроизводит видео и звуки, посмотрел отладку и понял. Более пары изменений в ассемблере "Video playback in BIK format.dll". Теперь заработал правильно звук на видео. Но опять проблема в ""TavernVideos BIK" - многоразовый клик на портрет приводит к разрыву видео и или к черным пятнам =(.



Сейчас тестирую на Windows XP


(19.09.2022 08:27)Berserker Wrote:  myoffice91, спасибо за обновление! А что за баг с сиянием? Что кнопки в игре множество раз отрисовываются на холсте?

Он дал мне файл мода, тестировал, у меня нет бага на наружное свечение кнопки, кроме задержки на 3 секунды. У Suftfree кнопки светились
https://cdn.discordapp.com/attachments/1011354651867754546/1018100361308930048/Heroes_of_Might_and_Magic_III_2022-09-10_13-06-10.mp4
Очевидно, что это проблема в том, что файл PNG имеет прозрачный цвет.

У меня нет артефакта - черные пиксели на видео. Были у Sufftree.
Image: unknown.png?width=1248&height=702


В конце-концов узнал, что у Suftree было без видеозаставки, поэтому были все кнопки с наружным свечением
Image: unknown.png?width=1248&height=702
так...
Image: unknown.png?width=1248&height=702

Quote:Suftfree — 17.09.2022
Артефакты только при наложении полупрозрачности
То есть при работе с png
Suftfree — 17.09.2022
1 проблема (проявление картинки) решается тем что DEF делаем прозрачным
2 проблема ( я напишу Берсеркс)
Все появилось после обновления сборки

myoffice91 — 17.09.2022
Решил, пробовал HD-mod обновил до 5.3 R12 - ничего не изменился. Нет свечение...

Аналогично ЭРА обновил до 3.9.3 - все ок.

Suftfree — 17.09.2022
Как ни странно - починил - обновил виндовс)
Или помогла перезагрузка ПК



RE: Плагин: воспроизведение видео в формате BIK (2022) - myoffice91 - 19.09.2022 15:37

Вышла новая версия "Воспроизведение видео в формате BIK" 1.4:
Скачать плагин "Воспроизведение видео в формате BIK" 1.4a + программу RADVideo 1.8x : https://disk.yandex.ru/d/42QE3o1bGY6SpA






ИСТОРИЯ ИЗМЕНЕНИЙ ВЕРСИЙ

1)Обновлён Binkw32a.dll с 1.8g (15.12.2005 год) до 1.8x (7.09.2016 год)

2)Поменял Miles на WaveOut. Теперь звук заработал и без дребезжаний. Теперь не нужна дополнительная свежая библиотека MSS32.DLL.

3)Бонус: утилита rad-video-tools 1.8x.exe.


Тестировал с ЭРА 3.9.3+HD-mod 5.3 R12, Windows XP SP3 и Windows 7 - проблемы не возникли!





---------
Насчет выше BINK 1.9 ? На сайте пишет появилась многопоточность, также новые регистры процессора, также может быть изменение API. Но я не проверил.

Однако, сейчас проверил, 1.9g
В главном меню есть проблема, слева не воспроизводит видео, кроме справа. Таверна видео - все порядке, но при клике на портрет, видео как будто пауза, а если мышь подвигать, то видео производится. Как будто мышь синхронизован с видео-воспроизведением 0_О.
Еще раз Binkw32 - версия 1.9a - тоже как 1.9g.

Не буду переделывать код.








Bink Development History 1.8x



RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 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 год)

На этой версии стало наооборот: звук работает, а картинка не воспроизводится - показывает чёрный экран.


RE: Плагин: воспроизведение видео в формате BIK (2022) - myoffice91 - 19.09.2022 16:26

(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 год)

На этой версии стало наооборот: звук работает, а картинка не воспроизводится - показывает чёрный экран.

Забыл, что binkw32a.dll версия 1.9а. Сейчас сделал перезалито архив https://disk.yandex.ru/d/42QE3o1bGY6SpA . Спасибо!


XEPOMAHT, можно удалить binkw32a.dll, переименование binkw32a++++.dll на binkw32a.dll из "Heroes III ERA\Mods\Video playback in BIK format"


RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 19.09.2022 17:07

(19.09.2022 16:26)myoffice91 Wrote:  Забыл, что binkw32a.dll версия 1.9а. Сейчас сделал перезалито архив https://disk.yandex.ru/d/42QE3o1bGY6SpA . Спасибо!

Из этого архива опять не работает звук, проигрывается только картинка. Более старая версия Binkw32a.dll (1.6b) воспроизводит и видео, и звук.


RE: Плагин: воспроизведение видео в формате BIK (2022) - Archer30 - 02.10.2022 07:32

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).



RE: Плагин: воспроизведение видео в формате BIK (2022) - myoffice91 - 06.10.2022 11:30

(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).
Здравствуй!

Тоже такой "GDI+" видеорежим.

Интересно, почему город "Замок", "Болото", и "Сопряжение" - нет артефактов в видео, кроме в других фракциях. Думаю - надо перекодировка, либо в настройке повысить значение буфера для выделения памяти.





(23.08.2022 17:26)XEPOMAHT Wrote:  Мод на стартовые видеоролики из ERA+ обновлён:

1. Русская озвучка теперь синхронизирована с видео. Теперь о чём баба говорит, то и показывают.
2. Качество видео от перекодирования из старого bik в новый теперь практически не изменилось. Получилось снизить на минимум влияние формата mpeg на перекодировку.

Скачать: https://vk.com/s/v1/doc/3w2yuWKsNQHMDA8c9e4ARuoaFmstdtK2GERmMRO7RKHpXcco6tQ
Скачал из архива...

H3X1intro.bik - альфа-версия формат BIK
H3INTRO.BIK - версия 1.05 формат BIK, но кодировка 8 бит моно звук.

(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) воспроизводит и видео, и звук.

Посмотрел Windows 7 с binkw32a.dll (1.8x) действительно H3INTRO.BIK без звука из-за 8 бит\моно звук, а если bik -> avi, затем avi -> bik (16 бит\стрео звук), теперь воспроизводит.

Значит 1.8x - WaveOut не поддерживает звук 8 бит. В Miles тоже проблема - дребезжание звука.


---
Искал версию 1.8d, на сайте нет, кроме как в скаченной игре выпущенного 2005 году. Скачал игру, затем распаковал архив, нашел библиотеку 1.8d и скопировал себе. Удалил архив и игру.


Тестировал с 1.8d (06-24-2005) - ура! H3INTRO.BIK есть звук.
Попробовал поставить старую версию плагина "Воспроизведение видео в формате BIK" с 1.4 на 1.3 (с WaveOut, на Miles).
Теперь видео таверна работает хорошо.

Однако, процедура не найдено "_AIL_set_sample_volume_pan@12" из MSS32.DLL, ничего страшного нет =).


---
binkw32 с версией 1.8d, а выше чем 1.8d - не поддерживает старую версию библиотеки MSS32.dll - см.ниже

Начиная с 1.8e (09-14-2005) изменение:
Added support for Miles 7 on Windows (you can now do 5.1 on Windows)! The Miles example shows how to do 5.1 with just a few code changes.



-----------------------------------


-------------------------------------------

Скачать плагин "Воспроизведение видео в формате BIK" 1.5 + программу RADVideo 1.8x : https://disk.yandex.ru/d/upaGK_CNqiLPtQ


ИСТОРИЯ ИЗМЕНЕНИЙ ВЕРСИЙ

1)Заменена Binkw32a.dll с 1.8x (7.09.2016 год) до 1.8d (06-24-2005)
2)Заменена WaveOut на Miles. Можете обратно поменять WaveOut, только через heroes3.ini, секция Settings, ключ BinkSoundType=1
3)Добавлена поддержка "LOOP" для смены видео.

Например видео: первый TVCC.BIK
Для смены видео, нужно писать TVCC_LOOP.BIK

https://youtu.be/_UIaytS8KI4

4)Исправлен баг: в моде "ERA+" в таверне видео формата SMK при клике на портрет было моргание видео.






https://disk.yandex.ru/d/upaGK_CNqiLPtQ


RE: Плагин: воспроизведение видео в формате BIK (2022) - Guru105 - 06.10.2022 12:32

myoffice91, спасибо за обновление. Плагин очень полезный!
Даже в оригинале Complete многие ролики в bik присутствуют в ресурсах игры, но не воспроизводятся - вместо них используются менее качественные smk.
Этот плагин полностью решает проблему, да еще и позволяет собственные bik делать.


RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 06.10.2022 15:40

Спасибо за обновление. У меня всё работает.

(06.10.2022 11:30)myoffice91 Wrote:  H3X1intro.bik - альфа-версия формат BIK
H3INTRO.BIK - версия 1.05 формат BIK, но кодировка 8 бит моно звук.

В H3X1intro.bik отсутствует языковая озвучка, поэтому он оставлен без изменений. Для H3INTRO.BIK русская озвучка взята из SMK, где 8-битный моно-звук. Делать 16-битное стерео смысла нет, т.к. качество при этом не изменится, а размер звуковой дорожки станет заметно больше.


RE: Плагин: воспроизведение видео в формате BIK (2022) - Berserker - 30.07.2024 01:10

Плагин вылетает на последней Эре (буквально стало на 3.9.15), но причину с ходу не вижу.
Последняя dll Эры:
https://dropmefiles.com/wMjRO


RE: Плагин: воспроизведение видео в формате BIK (2022) - myoffice91 - 07.08.2024 23:23

(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. 105


Причина: автор ЭРА решил оптимизировать хук в экзешнике, а плагин BIK не сталкивался с разновидностью ассемблера из era.dll и не переписывает закрытый вызов API из era.dll =). А в версиях 3.9.14 и 3.9.15 в процедуре Hook_OpenBik - без изменений в ассемблере, кроме в 3.0.

Было:
Code:
Core.Hook(Ptr($44D270), Core.HOOKTYPE_BRIDGE, @Hook_OpenBik);
https://github.com/ethernidee/b2/blob/7c0d5f515cd7fdb33dbf9d9d37c75ebbebcd8dcc/Core.pas#L440

Стало: ЭРА начиная с версий 3.9.15 (24.07.2024)
Code:
ApiJack.HookCode(Ptr($44D270), @Hook_OpenBik);

https://github.com/ethernidee/b2/blob/master/ApiJack.pas#L347


В ассемблере:
Code:
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


Новая версия ЭРА 3.9.15
Code:
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



В будущем, вдруг кто-то захочет улучшить оптимизацию хука назовёт ApiJack.HookCodeNoReturnResult
push ecx
push esp
call era.4C4F920
pop ecx
push ebp
mov ebp,esp
sub esp,28
jmp 44D275


А затем захочет убрать лишние push esp.
push ecx
call 0x04C4F920
pop ecx
push ebp
mov ebp,esp
sub esp,28
jmp h3era hd.44D276


В плагине BIK 1.6.2 уже добавил совместимость см.выше, предусмотрено на будущее, на всякий случай =).






Скачать плагин "Воспроизведение видео в формате BIK" 1.6.2 :


ИСТОРИЯ ИЗМЕНЕНИЙ ВЕРСИЙ


Версия 1.6.2
7.08.2024
1)Исправлен мой баг: не воспроизводить видео формата ".smk", типа: кампания, конец игры... (причина: в плагине BIK начиная с 1.6 оптимизирована строка ".smk" в ассемблере. Поэтому ЭРА видит чужеродный адрес в строке из плагина xD!.)
2)Изменение исходных кодов в ассемблере: сохранить файл ANSI на UTF8.
Импорт процедуры с заменой MessageBoxA на MessageBoxW.
3)Добавлена совместимость, на всякий случай, если кто в будущем будет оптимизировать хук в экзешнике, например, появится ЭРА версии 4.Х =).




Версия 1.6
07.08.2024

1)Добавлена поддержка Эры начиная с версии 3.9.15.

Причина несовместимости:
У ЭРЫ в новой версии оптимизирован хук
было mov eax,era.4E7B7AC, call eax
стало call era.4C3F82C

2)Реализовал проверку в экзешнике на не совпадение байтов. Если не совпадает, то всплывается диалог "Плагин не совместим" и затем вызвает сбой!.


RE: Плагин: воспроизведение видео в формате BIK (2022) - Berserker - 08.08.2024 00:31

Нельзя писать внутрь моста/переходника хука. Для установки перехвата можно использовать HiHook патчера patcher_x86.dll или API из Эры:

function Splice (OrigFunc, HandlerFunc: pointer; CallingConv: integer; NumArgs: integer; {n} CustomParam: pinteger; {n} AppliedPatch: ppointer): pointer; stdcall;

Original function address (OpenBik first command address)
Your handler address
Calling convention of OpenBik function:

// Left-to-right
    CONV_PASCAL = CONV_LAST,

    // Left-to-right, first three arguments in EAX, EDX, ECX
    CONV_REGISTER = -102,

    // Right-to-left, caller clean-up
    CONV_CDECL = -103,

    // Right-to-left
    CONV_STDCALL = -104,

    // Right-to-left, first argument in ECX
    CONV_THISCALL = -105,

    // Right-to-left, first two arguments in ECX, EDX
    CONV_FASTCALL = -106,

Number of original function arguments, including those in registers
Two NULL arguments

Your handler must have STDCALL convention and accept void* OrigFunc argument + all other arguments in the same way, as original function would accept


RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 08.08.2024 02:07

(08.08.2024 00:31)Berserker Wrote:  Нельзя писать внутрь моста/переходника хука.

Тифон 3 в таком случае не лезет в код era.dll, а, или ставит собственный ассемлерный переходник-прокладку между кодом игры и хуком Патчера (по коду получается, что Патчер поставил хук непосредственно в код Тифона, где Тифон сам решает - выполнять чужой хук или нет, а не в СоД, правда сам Патчер об миграции собсвенных хуков естественно ничего не знает, как и не узнает era.dll, библиотеки HD-мода и плагины Игрика, с которыми требуется совместимость, а у Бараторча Тифон вообще "ворует" хуки, заставляя выполять полезные функции HD-мода прямо из Тифона, увы по-другому никак 105 ), или целиком подменяет хуки, если они мешают работе кода ERA+, или полностью восстанавливает затёртый код бинарным патчем, благо в Патчере проверок на установленные хуки нет, или перехватывает критические для Тифона функции игры целиком, не позволяя в них вмешиваться сторонним dll. Но весь этот вандализм оправдан только для глобального моддинга (по-другому на платформе ЭРА увы никак), т.к. глобальный мод не может быть частью "конструктора" модов из-за правок всего и вся в игре. Уход на чистый SoD - очевидное решение проблемы совместимости, на ERA делают глобальники только психопаты.

(08.08.2024 00:31)Berserker Wrote:  Для установки перехвата можно использовать HiHook патчера patcher_x86.dll или API из Эры

А оно под Ассемблер есть? Скорее всего готового исходного кода "из коробки", позволяющего использовать функционал patcher_x86.dll без костылей, нет и не будет - Бараторчу на это глубоко наплевать абсолютно (тема подмалась ещё во времена, когда Патчер только-только появился, так до сих в этом направлении пор глухо несмотря на то, что кто-то ещё пилит плагины на Ассемблере). Например, Тифон, чтобы просто сигнализировать Патчеру о своих хуках, использует диассемблированный кусок СИ-шного кода, в котором ничерта не понятно, оно просто как-то работает с неизвестными индексами/префиксами, подающимися на функции Патчера, что иногда сводит Патчер с ума, да и саму era.dll иногда тоже, из-за чего код era.dll может нопить в 2 раза больше кода (в итоге, приходится переносить в Тифон в 2 раза больше затёртого Эрой кода 148, чтобы содовский код всё-таки исполнялся без ошибок). Да и функционал Патчера очень ограничен - некоторые нестандартные тифоновские хуки нельзя реализовать Патчером - даже сам Бараторч ставит специфические (и очень старые) хуки HD-мода НЕ Патчером.


RE: Плагин: воспроизведение видео в формате BIK (2022) - Berserker - 08.08.2024 14:32

XEPOMAHT, всё это чёрная магия к костылями )
Хуки делятся на 2 типа: call команда прямо в месте установки или jmp в начале функции.
Вторая — это высокоуровневая замена всей оригинальной функции.

Обработчики перехватов соответственно тоже бывают двух типов: первые получают указатель на контекст (регистры, адрес возврата на момент вызова хука) и возвращают флаг того, нужно ли выполнить затёртый код. Второй тип обработчиков — это новая реализация функции. У них stdcall соглашение и все те же аргументы, что и у оригинальной функции, но первый аргумент — адрес моста к оригинальной функции, то есть как бы адрес оригинальной функции, который можно использовать для её вызова.

Все мосты создаются автоматически с использованием движка дизассемблера, расчётом корректных областей для nop, с заменой коротких прыжков на длинные в перезаписанных командах и т.д.

Ассемблер здесь не помеха. Я скоро выпущу 3.9.16 с изменённым исправленным HookCode. Тебе двух функций HookCode/Splice хватило бы почти на все нужды, при том, что они умеют строить мосты и выполнять затёртый код. У меня такое ощущение, что автор плагина не знал, как это сделать корректно и потому влез внутрь поста splice-перехвата Эры. А нужно было всего-то установить другой Splice перехват поверх оригинального. В этом и высокоуровневость, что одну и ту же функцию, можно перехватить несчётное количество раз.

В общем, не стесняйтесь детально спрашивать, ибо костыли потом аукаются всем )


RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 08.08.2024 17:18

(08.08.2024 14:32)Berserker Wrote:  всё это чёрная магия к костылями )

Да, увы. Приходится изгаляться, т.к. исходных кодов самой игры у моддеров нет.

(08.08.2024 14:32)Berserker Wrote:  Хуки делятся на 2 типа: call команда прямо в месте установки или jmp в начале функции.

Да больше их, минимум раза в 2. Тифон может ставить хуки на любое место, где происходит переход:

1. Вызов функции
2. Длинный прыжок
3. Длинный прыжок с условиями (после проверок чего-либо) - только в Патчере-форке, который так и не выложили, т.к. пилили уже участники HotA Crew под себя, естественно в era.dll этого нет
4. Хук непосредственно на таблицу с адресами кейсов - подмена как конкретного адреса на функцию, так и всего кейса целиком - Бараторч не стал переносить это в Патчер, а выполняет средствами самого HD-мода. В era.dll такое извращение вряд ли появится, поэтому Тифон производит подобные хуки самостоятельно.

(08.08.2024 14:32)Berserker Wrote:  Вторая — это высокоуровневая замена всей оригинальной функции.

Это как раз и ломает совместимость. Бараторч уж очень любит переносить функции целиком, в итоге - костыли, костыли и ещё раз костыли, чтобы Тифон мог поменять что-либо в перенесённых HD-модом функциях игры. Под ЭРУ такой вид перехвата кода - очевидное зло.

(08.08.2024 14:32)Berserker Wrote:  Обработчики перехватов соответственно тоже бывают двух типов: первые получают указатель на контекст (регистры, адрес возврата на момент вызова хука) и возвращают флаг того, нужно ли выполнить затёртый код. Второй тип обработчиков — это новая реализация функции. У них stdcall соглашение и все те же аргументы, что и у оригинальной функции, но первый аргумент — адрес моста к оригинальной функции, то есть как бы адрес оригинальной функции, который можно использовать для её вызова.

В Тифоне каждый хук подгоняется вручную под конкретное место. То, что делает Патчер после хука, не контролируется моддером, я же привык знать то, превратится код в тыкву после установки хука или нет. Тем более Тифон должен иметь доступ ко всем данным в самом хуке - к стеку и регистрам БЕЗ каких-либо переходников, чтобы код в самом хуке выглядел бы 1 в 1 так же как если бы он находился в коде игры без хука.

(08.08.2024 14:32)Berserker Wrote:  Тебе двух функций HookCode/Splice хватило бы почти на все нужды, при том, что они умеют строить мосты и выполнять затёртый код.

Вообще не хватит. Тифон иногда вообще выкидывает затёртый код, подменяя фрагметы содовского кода. Да что там. Есть содовские функции, у которых Тифон полностью убирает начало, есть функции, у которых Тифон деляет из 1 начала несколько разных начал (совпадают только концовки) и весь этот бепредел творится в содовском коде только ради того, чтобы не переписывать портянки ассемблерного кода. В коде Тифона тонна низкоуровневых извращений. А переписывать с 0 более 500 тифоновских хуков я точно не буду.

А самое главное - СКОРОСТЬ хуков Патчера. Хуки Тифона выполняются напрямую без посредников, ставятся максимально быстро, содержат в себе готовый затёртый код без необходимости его генерировать при каждом запуске игры и нопить код после хука (Тифон оставляет там нечитабельную кашу, т.к. этот мусор никогда не исполняется). Особенно критично в работе геройского ИИ, который на XXXL-картах сам по себе жутко тормозной. Те же участники HotA Crew делали форк Патчера для внутреннего использования с реализацией ускоренных хуков, но в свет эта инициатива так не вышла - Патчер как был медленным, так медленным и остаётся, особенно на моём старом ПК, где всё это очень заметно, несмотря на низкие системные требования оригинальной игры (имено поэтому Тифон подменяет/убирает кучу тормозящих игру воговских и эровских хуков во время игрового сражения на поле боя, чтобы не было 1-5 секундных задержек во время действий отрядов, т.к. комфорт от игрового процесса для меня важнее, чем сторонний функционал, который всё равно в ERA+ никак не используется - часть ERM-триггеров принесены в жертву ради производительности в ERA+, увы).

(08.08.2024 14:32)Berserker Wrote:  У меня такое ощущение, что автор плагина не знал, как это сделать корректно и потому влез внутрь поста splice-перехвата Эры. А нужно было всего-то установить другой Splice перехват поверх оригинального. В этом и высокоуровневость, что одну и ту же функцию, можно перехватить несчётное количество раз.

Да, Тифон никогда не лезет в чужие splice-перехваты, т.к. это небезопасно - любое обновление может испортить код. Тифон действует по-разному, в зависимости от места splice-перехвата, часто Тифон просто выполяет свой код на 1 шаг в коде раньше или позже, чем запускается splice-перехват Патчера. Особенно печально бывает, когда кто-то перехватывает сразу первый байт функции, а сама функция вызывается плагинами - тут уже приходится применять костыли, включая перенос кода из самих плагинов непосредственно в Тифон, чтобы он исполнялся вместе с Тифоном, т.к. ассемлерного доступа к Патчеру на базе Тифона увы нет.

(08.08.2024 14:32)Berserker Wrote:  ибо костыли потом аукаются всем )

Да, конфликтые участки кода между разными dll часто решаются в одностороннем порядке. Т.к. ждать обновлений со стороны других авторов dll - слишком долго. Люди могут месяцами не выходить на связь, тот же Игрик, например, давно не появляется - его плагины в случае чего обновить будет некому.


RE: Плагин: воспроизведение видео в формате BIK (2022) - Berserker - 08.08.2024 17:55

Ох, Херомант, долго тебе писать. По моему мнению, не прав ты по всем пунктам. И скорость тоже меряешь явно на глаз. Хуки здесь не при чём, даже в ИИ коде. Скажу проще, лапшу из асм кода никто никогда править не будет. А хук из ЕРМ/Lua/плагинов поправить — пара байт или одна строка кода. По скорости быстрее Эровских хуков ничего не придумаешь. Глобальных переменных не использует, мосты лаконичные, адреса статичные (для предсказания переходов и спекулятивного выполнения).

Если кто-то перехватил функцию и переписал её код, есть два варианта:
1) Сделать свой перехват и полный свой функционал.
2) Сделать свой перехват, выполнить доп. команды и вызвать перехваченную функцию, возможно с другими аргументами (а та может вызвать до этого перехваченную и т.д).

Оба подхода работают без проблем.

Если нужна замена части функционала, то call-перехвата почти всегда хватает. Если он умный, сам определяет размер перезаписанных данных, сам создаёт мост и бережно клонирует затёртые команды с их изменением (адреса, типы прыжков). Ну, таблицу switch-case пропатчить можно, конечно, но это обычный патч на запись N байт адреса.

P.S. Некоторые люди сталкивались с микроподлагиваниями в бою, но пока так и не нашли причину. Думаю, если она и есть, то в одном конкретном месте.


RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 08.08.2024 19:16

(08.08.2024 17:55)Berserker Wrote:  По моему мнению, не прав ты по всем пунктам.

Естественно, мои методы установки хуков в корне не верны по отношению к высокоуровневым языкам. На СИ и Дельфи извращались по-всякому до появления Патчера, включая сам WoG и HoA (оба мода в конце концов стали использовать Патчер, уйдя от самопальщины). Но куда деваться авторам плагинов, написаных на Ассемблере, хоть их можно пересчитать по пальцам одной ноги, но всё же они (пока ещё) есть, включая глобальный ERA+. В SDK ЭРЫ вроде бы есть готовый пример ассемблерного плагина на FASM, но... никаких готовых решений для использования эровской системы хуков в нём нет, так же как использование эровских инклюдов. Единственное, что у меня получилось получить "легальным" путём без костылей - адрес строки на GetVersion из era.dll, всё остальное, что ни пробовал - или просто не работает, или приводит к ошибкам. Та же эпопея с указанием ЭРЕ перемещённых данных через RedirectMemoryBlock обернулась полным провалом и потере времени, в итоге era.dll по-прежнему где-то может читать молоко вместе с ERA+. В общем, это мои личные проблемы по поводу того, что я совершенно не программист и не умею писать высокоуровевый код.

(08.08.2024 17:55)Berserker Wrote:  Скажу проще, лапшу из асм кода никто никогда править не будет. А хук из ЕРМ/Lua/плагинов поправить — пара байт или одна строка кода.

Да, я тоже не хочу переписывать ассемлерный код в высокоуровневый вид. Там всё организовано по принципу: работает - не тройгай. Можно сравить с безконечной правкой багов и ошибок в Аметисте и Эмеральде, волынка с которыми тянется уже с 2013 года, если скляроз не изменяет несмотря на то, что Маячок - программист с большим опытом. В Тифоне такой херни нет. Возможно в будущем в ERA+ появятся lua, где все хуки будут организованы как надо, а Тифон больше изменяться не будет, но в данный момент под lua в ERA ничего нет. А ЕРМ по-прежнему не подходит для поддержки глобального модостроения, т.к. возможности этого языка ограничены его узкой специализацией под картоделов и читеров. Комляция кода на СИ по-прежнему не доступна для меня, т.к. я не понимаю сам СИ-шный код, как и исходные коды от ЭРЫ я на 90% не понимаю. Не программист я. Была надежда на lua, но пока что воз и ныне там...


RE: Плагин: воспроизведение видео в формате BIK (2022) - Berserker - 08.08.2024 21:36

XEPOMAHT, если хочешь, напишу пример на FASM использования Splice или нового HookCode.
Адреса функций получать у тебя ведь выходит через GetProcAddr?

RedirectMemoryBlock работает сохраняет информацию о перемещённых областях, но ей нужно ещё пользоваться через GetRealAddr. Вдобавок, я по твоему совету стал использовать ещё и косвенные указатели на структуры. Так что там проблемы должны быть решаемы.


RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 09.08.2024 11:14

(08.08.2024 21:36)Berserker Wrote:  если хочешь, напишу пример на FASM использования Splice или нового HookCode.

Мне, к сожалению, поздно, т.к. время упущено. А новичкам будет полезны примеры создания хуков средствами самой ЭРЫ.

(08.08.2024 21:36)Berserker Wrote:  Адреса функций получать у тебя ведь выходит через GetProcAddr?

Нет, не знаю как этим поьзоваться. Доступ к другим dll в Тифоне работает только через секцию import:

Code:
import era,\
    GetVersion, 'GetVersion'
    ;RedirectMemoryBlock, 'RedirectMemoryBlock'

import patcher,\
    GetPatcher, '_GetPatcherX86@0'


(08.08.2024 21:36)Berserker Wrote:  я по твоему совету стал использовать ещё и косвенные указатели на структуры. Так что там проблемы должны быть решаемы.

Спасибо.


RE: Плагин: воспроизведение видео в формате BIK (2022) - Berserker - 09.08.2024 16:58

XEPOMAHT, ну вот, импорт есть. Можно GetProcAddress не дёргать.


RE: Плагин: воспроизведение видео в формате BIK (2022) - Suft - 15.08.2024 19:52

myoffice91, Здравствуйте - на последних версиях мерцание логотипа и кнопок!
Нет мерцания на версии Video playback in BIK format 1.2
Но там нет быстрой прогрузки ролика.
Эти с мерцанием:
Image: 347655687.png


RE: Плагин: воспроизведение видео в формате BIK (2022) - myoffice91 - 11.09.2024 13:39

Suft, здравствуйте!
1.2 - есть свечение кнопок
1.6 - нет свечения кнопок


Смотрите видео https://yadi.sk/i/t-xFdYnHCz7LGw


В версии 1.3 исправлен баг:
18.09.2022
1) исправлен баг: если 23.97 кадров в секунду, то происходит сияние кнопки. (на моде "случайное видео в главном меню ERA 3") Теперь нет сияния кнопки.


----
Скорее может быть в алгоритме png проблема https://ru.wikipedia.org/wiki/Тройная_буферизация


---
Если у тебя кадры с запятой, например 20.559, то надо перекодировать видео на 20 кадров или 21, либо 23, то есть на целое число.


RE: Плагин: воспроизведение видео в формате BIK (2022) - Suft - 11.09.2024 16:25

myoffice91, Я извлекал покадрово из видео (3264 кадров к примеру) - и рендерил - так что кадров всегда целое число.
Кнопка не сливается - а моргают отдельные фрагменты её краев. (сливание есть но оно не полное)...


RE: Плагин: воспроизведение видео в формате BIK (2022) - myoffice91 - 11.09.2024 22:17

Suft, раньше я конвертировал разные видео в файлы формата "mp4" в "bik". Не было свечения кнопок.

Скинь мне оригинальный видео файл






(08.08.2024 00:31)Berserker Wrote:  Нельзя писать внутрь моста/переходника хука. Для установки перехвата можно использовать HiHook патчера patcher_x86.dll или API из Эры:


Я не собираюсь модифицировать в era.dll. Мой плагин на ассемблер только берёт недокументированные функции вызова из ERA.DLL. Чтобы плагин легко вызывал функции era.dll.
Как прям проникновение в era.dll, еще глубже в функции и запоминает адрес процедур 96-copy .


(08.08.2024 00:31)Berserker Wrote:  function Splice (OrigFunc, HandlerFunc: pointer; CallingConv: integer; NumArgs: integer; {n} CustomParam: pinteger; {n} AppliedPatch: ppointer): pointer; stdcall;

Original function address (OpenBik first command address)
Your handler address
Calling convention of OpenBik function:

// Left-to-right
    CONV_PASCAL = CONV_LAST,

    // Left-to-right, first three arguments in EAX, EDX, ECX
    CONV_REGISTER = -102,

    // Right-to-left, caller clean-up
    CONV_CDECL = -103,

    // Right-to-left
    CONV_STDCALL = -104,

    // Right-to-left, first argument in ECX
    CONV_THISCALL = -105,

    // Right-to-left, first two arguments in ECX, EDX
    CONV_FASTCALL = -106,

Number of original function arguments, including those in registers
Two NULL arguments

Your handler must have STDCALL convention and accept void* OrigFunc argument + all other arguments in the same way, as original function would accept


"Splice" нет описания и примеров с результатами. Большая проблема, что вы написали полностью на английском документации, а не на русском языке. Отечественные Моддеры могут не владеть английском языком.





(08.08.2024 14:32)Berserker Wrote:  Ассемблер здесь не помеха. Я скоро выпущу 3.9.16 с изменённым исправленным HookCode. Тебе двух функций HookCode/Splice хватило бы почти на все нужды, при том, что они умеют строить мосты и выполнять затёртый код. У меня такое ощущение, что автор плагина не знал, как это сделать корректно и потому влез внутрь поста splice-перехвата Эры. А нужно было всего-то установить другой Splice перехват поверх оригинального. В этом и высокоуровневость, что одну и ту же функцию, можно перехватить несчётное количество раз.

В общем, не стесняйтесь детально спрашивать, ибо костыли потом аукаются всем )

Помни, известно, что "работает - не трогай!", чтобы плагин работал. Но, вы пытаетесь рефакторинг кода, ради поменять старую функцию хука "Core.Hook" на новый хук "ApiJack.HookCode". Эта вызывает несовместимость плагина, из-за не сталкивания с ассемблер, для входа внутрь и глубже. Вот появился плагин новой версии 1.6, где добавлена поддержка платформы Эра новой версии и добавлена проверка на некорректность, вызывает вызов "MessageBox", а затем вызов ассемблера "INT 3".


(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. 105

(30.07.2024 01:10)Berserker Wrote:  Плагин вылетает на последней Эре (буквально стало на 3.9.15), но причину с ходу не вижу.
Последняя dll Эры:
https://dropmefiles.com/wMjRO

(08.08.2024 17:18)XEPOMAHT Wrote:  
(08.08.2024 14:32)Berserker Wrote:  ибо костыли потом аукаются всем )

Да, конфликтые участки кода между разными dll часто решаются в одностороннем порядке. Т.к. ждать обновлений со стороны других авторов dll - слишком долго. Люди могут месяцами не выходить на связь, тот же Игрик, например, давно не появляется - его плагины в случае чего обновить будет некому.

Никому не пришло в голову, что главная причина в замене хука. Надо было откат на старый хук ""Core.Hook"" и проверить, что плагин заработал.
   
   
   
   
   
   
   
   
(08.08.2024 17:18)XEPOMAHT Wrote:  Особенно критично в работе геройского ИИ, который на XXXL-картах сам по себе жутко тормозной. Те же участники HotA Crew делали форк Патчера для внутреннего использования с реализацией ускоренных хуков, но в свет эта инициатива так не вышла - Патчер как был медленным, так медленным и остаётся, особенно на моём старом ПК, где всё это очень заметно, несмотря на низкие системные требования оригинальной игры (имено поэтому Тифон подменяет/убирает кучу тормозящих игру воговских и эровских хуков во время игрового сражения на поле боя, чтобы не было 1-5 секундных задержек во время действий отрядов, т.к. комфорт от игрового процесса для меня важнее, чем сторонний функционал, который всё равно в ERA+ никак не используется - часть ERM-триггеров принесены в жертву ради производительности в ERA+, увы).

   
   Насчет, у ИИ очень медленный ход действий: вы посмотрите мой подпись "ИИ ускорение", но, там первая версия.
В МоР 3.15 последней версии есть кнопка на два режима "ИИ ускорение" и "ИИ турбо".
   В "ИИ турбо" вырезал цикл, стало очень шустрее и у ИИ без изменений поведений. В прошлом году, в феврале, я поделился патчингом с "daemon_n", чтобы он создал плагин и в сборке "HoMM3 ERA Launcher Edition". Он сказал, что "это функция виртуальных битв ИИ".

Значит, причина в ИИ, очень долго думает из-за "виртуальных битв ИИ".
   
   
---
Насчет, остальной задержки во время игрового сражения: попробуй закрыть браузер и дискорд, плюс антивирус, они жрут кеш-память процессора и ОЗУ.
   
Давно, помню, было в Cosmic Forgre -> Редакторе Локации при нажатии элемента для триггера всплывалось окно, но задержка на 2 секунды. Решил выложить видео в youtube, в комментариях писали, что на старом компьютере Windows XP, при нажатии элемента - мгновенно открывается окно "динамический триггер".

Не может быть, я решил у себя исследовать, пробовал закрыть программу "Диспетчер Задач", "Opera". Пробовал нажать элемент и окно "Динамический объект триггер" всплывалось за 0.1 секунду, чудо!. А затем, через несколько дней, снова повторилась проблема. Снова пробовал закрыть Opera, не помогло. Закрыл "диспетчер задач" - помогло. А потом, снова, не помню, закрыл "диспетчер задач" - не помогло, и закрыл еще "Opera" - помогло. Похоже программа кушает слишком много кеш-память процессора.
У меня Windows 7 использую "Гибернации".




(09.08.2024 11:14)XEPOMAHT Wrote:  
(08.08.2024 21:36)Berserker Wrote:  Адреса функций получать у тебя ведь выходит через GetProcAddr?

Нет, не знаю как этим поьзоваться. Доступ к другим dll в Тифоне работает только через секцию import:

Code:
import era,\
    GetVersion, 'GetVersion'
    ;RedirectMemoryBlock, 'RedirectMemoryBlock'

import patcher,\
    GetPatcher, '_GetPatcherX86@0'


У меня плагин "Воспроизведение видео в формате BIK", использую вызов сначала GetModuleHandleA, а потом GetProcAddress:
поделюсь исходным кодом на ассемблере

Code:
mov eax,dword[63A230h];GetModuleHandleA
.if eax
    push String_era_dll;db 'era.dll',0
    call eax
    .if eax
        mov ecx,dword[63A22Ch];GetProcAddress
        .if ecx
            push StringGetERA_API_ReadStrFromIni;db 'ReadStrFromIni',0
            push eax
            call ecx
            .if eax
                sub esp,400h
                mov edx,esp
                push edx
                push edx;ADDRES
                push Stringheroes3_INI;"heroes3.ini"
                push StringSettings;Settings
                push StringBinkSoundType;SHOWINTRO
                call eax
                pop eax
                add esp,400h
                .if word[eax] = 31h; 1
                    mov dword[BinkSoundType_Bool],1                    
                .endif;
            .endif;eax
        .endif;ecx
    .endif;eax
.endif;eax



RE: Плагин: воспроизведение видео в формате BIK (2022) - Suft - 12.09.2024 14:56

Вот оригинальный видеофайл...
https://drive.google.com/file/d/1wtvGTwLHhvBe1IWoL11S2fVmU6_arju0/view?usp=sharing


RE: Плагин: воспроизведение видео в формате BIK (2022) - myoffice91 - 16.09.2024 18:54

Suft, Посмотрел ваш видео, действительно баг. Но, на вашем видео "1793330308.mp4" всего (5 сцена) - 1 минута, 14 секунд, это слишком много.

Пробовал вырезать все сцены, кроме одной, получилось видео всего на 18 секунд. Экспорт на "BIK" - я подумал, что поможет решить проблему. Но, в игре есть свечение кнопок. Не помогло и изменить видео на кадров в секунду.

Странно, у меня разные видео на главном меню и нет проблем.


Решил попробовать без видео и без плагина "Video playback in BIK format" на главном меню, увидел результат:
Image: tr-1-q2wXDg.jpg?size=1252x1008&q...type=album

Вот видишь, после отпускания курсора мыши от кнопки - автоматический не очищается желтое свечение вокруг кнопки.



Очевидно, мой плагин "Video playback in BIK format" с видео на главном меню создает собственные буферизации или как https://ru.wikipedia.org/wiki/Тройная_буферизация - то есть, после отпускания курсора мыши от кнопки, игра очищает желтое свечение вокруг кнопки.


Можно решить проблему модифицировав "Data\Defs\zmenuhs.def\0_0.png" и ""Data\Defs\zmenuhs.def\0_3.png"
С помощью "Paint.Net" , "сохранить как..." -> "Порог прозрачности:" на 230. и 8 бит.
Результат: кнопка не будет с желтым снаружи свечением, но наверное будет менее привлекательнее кнопка.





Ладно, вот выпуск новой версии 1.7 - скачать https://yadi.sk/d/6aH-40UXXLd6DA



ИСТОРИЯ ИЗМЕНЕНИЙ ВЕРСИЙ:

1)В версии 1.3 удалены три исправленные баги.
2)Добавлена проверка условия выше или равно времени одной секунде для генерации видео в буферизацию.
Например, мод "Heroes 3 HD Edition for ERA Launcher", в главном меню видео всего 1 минута 14 секунд. Раньше плагин версии 1.2 была, что при запуске игры требовалось ждать фиксированные 2 или 3 секунды. Теперь плагин новой версии, при запуске игры требуется ждать случайной времени от 0.5 до 2 секунд, часто 1 секунда.


RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 16.09.2024 20:52

(16.09.2024 18:54)myoffice91 Wrote:  Решил попробовать без видео и без плагина "Video playback in BIK format" на главном меню, увидел результат:
Image: tr-1-q2wXDg.jpg?size=1252x1008&q...type=album

У меня было точно так же. Т.к. игра пререрисовывает спрайт кнопок поверх того, что уже было нарисовано. В итоге, после нажатия вылазит каша из спрайтов. Ну и альфа-канал так же при этом удваивается/утраивается от наложения, в итоге - смысл использования альфа-канала на кнопках теряется полностью. Именно по-этому сейчас в ERA+ кпопки - практически квадратные, чтобы мимимизировать этот надоедливый баг, доставшийся в наследство от SoD.


RE: Плагин: воспроизведение видео в формате BIK (2022) - Suft - 17.09.2024 15:30

XEPOMAHT,myoffice91, Так там есть lang что не дает кнопке светиться (накладываться на себя)...
myoffice91, - Огромная вам благодарность - новый плагин работает без проблем...


RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 17.09.2024 20:41

(17.09.2024 15:30)Suft Wrote:  Так там есть lang что не дает кнопке светиться (накладываться на себя)...

Пробовал - 0 реакции. Видимо lang не работает с кнопками, которые ставит Тифон 3 (а Тифон 3 ставит все кнопки главного меню, естественно с новыми индексами, т.к. кнопок стало больше). Как именно скормить все эти кнопки ЭРЕ - одному Берсеркеру известно, ну сейчас это уже не важно, т.к. png в главном меню больше не используется - в ERA+ там кастомные def-ы.


RE: Плагин: воспроизведение видео в формате BIK (2022) - Berserker - 18.09.2024 02:40

XEPOMAHT, важны не индексы, а названия дефов и номера их кадров.


RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 18.09.2024 11:25

(18.09.2024 02:40)Berserker Wrote:  важны не индексы, а названия дефов и номера их кадров.

Названия деф-ов и их номера кадров везде одинаковые, т.к. это кнопка. Имя - ZMENU1.DEF, номер спрайта нажатия - 1.


RE: Плагин: воспроизведение видео в формате BIK (2022) - Suft - 18.09.2024 14:57

XEPOMAHT, Почему бы вам не использовать png 8 бит - пакование в деф теряет качеством 20%...


RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 18.09.2024 15:21

(18.09.2024 14:57)Suft Wrote:  Почему бы вам не использовать png 8 бит - пакование в деф теряет качеством 20%...

Оно изначально уже было в def-е. Взято из всеми забытого мода 15-летней давности. Единственное изменение - на кнопке в паинте я затёр сам текст (т.к. из-за того, что 15 лет назад не умели создавать кнопки с текстом, один умелец наклепал кучу одинаковых кнопок с нарисованными на них текстами). Увы, художников в команде нема, как и самой команды разработчиков ERA+ никакой нет, кручусь как могу.


RE: Плагин: воспроизведение видео в формате BIK (2022) - Suft - 18.09.2024 16:44

XEPOMAHT, А почему не использовать кнопки сандриса?


RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 18.09.2024 17:02

(18.09.2024 16:44)Suft Wrote:  А почему не использовать кнопки сандриса?

1. Они слишком крупные. Все не влазят в 1 столбик.
2. Около половины - нет в наличии. Т.к. ERA+ добавляет в меню новые кнопки, которых раньше не было в игре.


RE: Плагин: воспроизведение видео в формате BIK (2022) - FallenAngel - 09.01.2025 10:32

На данный момент плагин не работает если включен одновременно с плагином на видео в тавернах. Выкидывает ошибку на старте


RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 09.01.2025 12:43

(09.01.2025 10:32)FallenAngel Wrote:  На данный момент плагин не работает если включен одновременно с плагином на видео в тавернах. Выкидывает ошибку на старте

Это один и тот же плагин, насколько помню. В ERA+ кастомное видео в тавернах работает без вылетов c Video playback in BIK format.dll.


RE: Плагин: воспроизведение видео в формате BIK (2022) - myoffice91 - 19.01.2025 14:52

Предыстория: XEPOMAHT заметил жалобу в Эре новой версии с 3.9.16 http://wforum.heroes35.net/showthread.php?tid=4218&pid=140007#pid140007 вызывает не совместимость с плагином.

Причина: в версии:
[*] Повышена стабильность обработки snd/vid-ресурсов (с использованием сплайс-хуков вместо патч-хуков).


Что закрывает доступ к недокументированному вызову API.






Скачать https://disk.yandex.ru/d/ejRuqNExOdD8_A





========================

ИСТОРИЯ ИЗМЕНЕНИЙ ВЕРСИЙ

Версия 1.7.1

18.1.2025
1.Частично исправлен мой баг: Герои Меча и Магии 3 платформа МоР 3.Х - не возможно запустить игру из-за плагина, вызывает аварийное завершение работы. (впервые баг с версии 1.5).
2.Исправлен оригинальный баг: Герои Меча и Магии 3 платформа Эра 3.9.16 (13.01.2025 18:15) с "ApiJack.StdSplice".


RE: Плагин: воспроизведение видео в формате BIK (2022) - Berserker - 19.01.2025 15:29

myoffice91, спасибо!


RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 19.01.2025 15:42

(19.01.2025 14:52)myoffice91 Wrote:  Причина: в версии:
[*] Повышена стабильность обработки snd/vid-ресурсов (с использованием сплайс-хуков вместо патч-хуков).


Что закрывает доступ к недокументированному вызову API.

Спасибо за обновление! С последними версиями ЭРЫ и ЭРЫкрест теперь работает без ошибок.


RE: Плагин: воспроизведение видео в формате BIK (2022) - Berserker - 23.01.2025 01:00

Suft, это когда я бы успел?


RE: Плагин: воспроизведение видео в формате BIK (2022) - Suft - 26.04.2025 19:15

myoffice91, Пожалуйста обновите плагин!
Berserker, Опять поломалось)
Не работает на последней версии...
Image: eeg-Ry9ae6u-U.jpg


RE: Плагин: воспроизведение видео в формате BIK (2022) - myoffice91 - 11.07.2025 14:36

Плагин "BIK 1.7.1" тестировал с ЭРА 3.9.17 и также каждая нумерлогии версии, до 3.9.26 - работает отлично.

Вот скриншот:
Image: _4c-VI777nLrdrlogrRT02snEB4rxlAJkd6RiOX-...p;cs=837x0

https://sun9-81.userapi.com/s/v1/if2/_4c-VI777nLrdrlogrRT02snEB4rxlAJkd6RiOX-giCD7RzajdmVcxgSoSz-r1DTR1xQkWAaJU8aGsmfp6wlZsyc.jpg?quality=95&as=32x27,48x41,72x62,108x93,160x137,240x206,360x309,480x412,540x464,640x550,720x​618,837x719&from=bu&cs=837x0


Тут форум движок проблема из-за неотображение скриншот.
Решил Notepad++ сравнил с до и после.

нашел строчка "720x618", где левая строка - невидимый символ. Откуда взялось?
Если редактировал комментариев, то там не существует. Кроме форум.

Пусть, форум MyBB Group добавить поддержка "Скриншот" из ВКонтакте картинка.