![]() |
Плагин: воспроизведение видео в формате 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 Особенность: 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 сияние кнопки. (в главном меню). Версия 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.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». 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 Development History -- Рабочий прототип: Плагин: Случайное видео в главном меню Версия: 1.1 Автор: myoffice91 Скачать Случайное видео в главном меню ERA 3: https://disk.yandex.ru/d/f19Ahw-oC24f6g ИСТОРИЯ ИЗМЕНЕНИЙ ВЕРСИЙ 1.1 27.05.2022 1)Исправлен критический баг: выделение памяти 222 мб, из-за спешки. Случайно поставил хуки "в главном меню", поэтому регистр неверный. ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() -------------------------------- Плагин: Случайное видео в главном меню Версия: 1.0 Автор: myoffice91 Особенность: 1)Меньше вес и хорошее качество видео. 2)В карте->нажать главное меню - появляется случайное видео 3)Плагин читает архив "Random videos of the main menu.vid", есть счетчик массива имен файлов. То есть, нет необходимости прописывать имена файлов в текстовике. 4)При нажатии кнопки "новая игра", "загрузить игру" и прочее, даже окно "сценария карты" теперь не возвращается на начало видео. Кроме трёх кампании. ![]() ![]() ![]() Скачать здесь: https://disk.yandex.ru/d/6SfZ78yBFvb_EQ ----------------- TavernVideos BIK 1.5 - Quote:В городах каждого типа - в тавернах своя видеозаставка и своё название из TRnameT_RUS.txt.СКАЧАТЬ https://disk.yandex.ru/d/j1bFnLlCNZWHjw ![]() RE: Плагин: воспроизведение видео в формате BIK - Berserker - 29.04.2022 21:19 Ещё не протестировал, но выражаю огромную благодарность! С новыми модами на интерфейс с полупрозрачностью кнопок смотреться будет великолепно! RE: Плагин: воспроизведение видео в формате BIK - Elmore - 29.04.2022 22:52 Однозначно, это круто. Спасибо! ![]() 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 ![]() Хочу знать, есть ли на то серьезные технические ограничения или же таков выбор автора. Это как с плагинами на 2008 студии. Старички привыкли, а приходящим "новичкам" куча гемора.
Я за то, чтобы осовременивать игру по всем! возможным направлениям RE: Плагин: воспроизведение видео в формате BIK - daemon_n - 30.04.2022 19:00 myoffice91, отличные новости! Спасибо огромное за работу ![]() для окна кампаний попробуй эти адреса Code: 00456BA0 Dlg_CampaignsMenu_Prepare RE: Плагин: воспроизведение видео в формате BIK - myoffice91 - 30.04.2022 22:41 (29.04.2022 21:19)Berserker Wrote: Ещё не протестировал, но выражаю огромную благодарность! С новыми модами на интерфейс с полупрозрачностью кнопок смотреться будет великолепно!Теперь устранен серьёзный недостаток в ЭРА =) (29.04.2022 22:52)Elmore Wrote: Однозначно, это круто. Спасибо!На официальном сайте "Истории изменений" - ни слово о 0.5b, значит это альфа версия. Только 0.8а релиз. Поэтому, по другому структуры видео-файлов и экзешник. Changes from 0.0 to 0.8a (03-22-1999)
Яндекс переводчик: Spoiler (Click to View) Полгода назад, кто-то задавал похожий вопрос http://wforum.heroes35.net/showthread.php?tid=5684&pid=131487#pid131487 в теме "Вопросы по работе с BIK/SMK" ----------------------------------- (30.04.2022 10:27)Elmore Wrote: Меня интересует, почему не добавлена актуальная версия программы и формата, а так же bik2 1) (27.04.2022 18:10)myoffice91 Wrote:(18.04.2022 21:45)Elmore Wrote: Просто из любопытства, актуальную версию программы RADVideo или формат Bink 2 добавить не возможно? Самое главное - максимальная совместимость с операционной системой, начиная от Windows XP и стабильство в игре. Не тестировал Windows 98, думаю работает. Зачем вам нужен последняя версия BIK? или ради новая версия сжатие данные видео? Попробуйте заменить библиотеку "Mods\Video playback in BIK format\binkw32a.dll" на новую версию 2.9 и протестировать. (30.04.2022 19:00)daemon_n Wrote: myoffice91, отличные новости! Спасибо огромное за работуОкно "Кампания", процедура 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 (какую нашел поиском ![]() (30.04.2022 22:41)myoffice91 Wrote: Самое главное - максимальная совместимость с операционной системой, начиная от Windows XP и стабильство в игре. Не тестировал Windows 98, думаю работает. Сжатие (крайне важный параметр, когда новый функционал обретет повсеместное использование), качество, скорость.. разные оптимизации и дальнейшее развитие. Детально 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, отличные новости! Спасибо огромное за работуОкно "Кампания", процедура OpenBink - грузит 6 видео, значит обнуляет переменные текущего видео в главном меню. Так я не о том окне кампаний подумал - я казал координаты на диалог главного меню с выбором кампаний SoD/RoE/AB - думал, что там проблемы. В общем, разобрались ![]() RE: Плагин: воспроизведение видео в формате BIK - myoffice91 - 03.05.2022 18:03 Spoiler (Click to View) Spoiler (Click to View) ИСТОРИЯ ИЗМЕНЕНИЙ ВЕРСИЙ Версия 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 ------------------------------------------- Spoiler (Click to View) RE: Плагин: воспроизведение видео в формате BIK - Berserker - 04.05.2022 03:55 Прекрасное обновление, спасибо! RE: Плагин: воспроизведение видео в формате BIK - daemon_n - 04.05.2022 20:36 Отлично, спасибо! Можно переделать видео "поражения" в игре на что-то не такое страшное ![]() RE: Плагин: воспроизведение видео в формате BIK - Suft - 10.05.2022 12:58 daemon_n, Не надо! Это обалденно! RE: Плагин: воспроизведение видео в формате BIK - Elmore - 10.05.2022 14:53 myoffice91, в любом случае огромное спасибо за плагин ![]() Если в будущем появится возможность и желание попытаться подтянуть еще более новую версию 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. Spoiler (Click to View) 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): Spoiler (Click to View) RE: Плагин: воспроизведение видео в формате BIK - Suft - 20.05.2022 13:20 myoffice91, Залил свои видео и увидел несовпадение цветовой гаммы - всё остальное нормально работает Может проблема в том что версия радвидео старая В данном случае вместо оранжевого цвета всё синее Сейчас выложу тестовую подборку для вашего мода ![]() 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! Посмотрел в 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, Залил свои видео и увидел несовпадение цветовой гаммы - всё остальное нормально работает Чем больше увеличить битрейт видео "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, Залил свои видео и увидел несовпадение цветовой гаммыПопробовал compress to a data rate (bytes): 400000 Только в MMArchive все нормально ![]() 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 мб, из-за спешки. Случайно поставил хуки "в главном меню", поэтому регистр неверный. ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() RE: Плагин: воспроизведение видео в формате BIK - myoffice91 - 22.08.2022 14:43 Кто-то не знает... Quote:Suft — 14.08.2022 Quote:Suft — 14.08.2022 Quote:daemon_n — 14.08.2022 Посмотри видео-презентация 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 Spoiler (Click to View) 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 год). Проверил на 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. ![]() В конце-концов узнал, что у Suftree было без видеозаставки, поэтому были все кнопки с наружным свечением ![]() так... ![]() Quote: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 Spoiler (Click to View) 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). Spoiler (Click to View) RE: Плагин: воспроизведение видео в формате BIK (2022) - myoffice91 - 06.10.2022 11:30 (02.10.2022 07:32)Archer30 Wrote: Hi myoffice91, thanks for the updates.Здравствуй! Тоже такой "GDI+" видеорежим. Интересно, почему город "Замок", "Болото", и "Сопряжение" - нет артефактов в видео, кроме в других фракциях. Думаю - надо перекодировка, либо в настройке повысить значение буфера для выделения памяти. (23.08.2022 17:26)XEPOMAHT Wrote: Мод на стартовые видеоролики из ERA+ обновлён:Скачал из архива... 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 . Спасибо! Посмотрел 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. ----------------------------------- Spoiler (Click to View) Скачать плагин "Воспроизведение видео в формате 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 В 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. Причина: автор ЭРА решил оптимизировать хук в экзешнике, а плагин 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); Стало: ЭРА начиная с версий 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 Новая версия ЭРА 3.9.15 Code: 05933CB0 | 60 | pushad В будущем, вдруг кто-то захочет улучшить оптимизацию хука назовёт 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-мода прямо из Тифона, увы по-другому никак ![]() (08.08.2024 00:31)Berserker Wrote: Для установки перехвата можно использовать HiHook патчера patcher_x86.dll или API из Эры А оно под Ассемблер есть? Скорее всего готового исходного кода "из коробки", позволяющего использовать функционал patcher_x86.dll без костылей, нет и не будет - Бараторчу на это глубоко наплевать абсолютно (тема подмалась ещё во времена, когда Патчер только-только появился, так до сих в этом направлении пор глухо несмотря на то, что кто-то ещё пилит плагины на Ассемблере). Например, Тифон, чтобы просто сигнализировать Патчеру о своих хуках, использует диассемблированный кусок СИ-шного кода, в котором ничерта не понятно, оно просто как-то работает с неизвестными индексами/префиксами, подающимися на функции Патчера, что иногда сводит Патчер с ума, да и саму era.dll иногда тоже, из-за чего код era.dll может нопить в 2 раза больше кода (в итоге, приходится переносить в Тифон в 2 раза больше затёртого Эрой кода ![]() 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,\ (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 Но там нет быстрой прогрузки ролика. Эти с мерцанием: ![]() 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, еще глубже в функции и запоминает адрес процедур ![]() (08.08.2024 00:31)Berserker Wrote: function Splice (OrigFunc, HandlerFunc: pointer; CallingConv: integer; NumArgs: integer; {n} CustomParam: pinteger; {n} AppliedPatch: ppointer): pointer; stdcall; "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. (30.07.2024 01:10)Berserker Wrote: Плагин вылетает на последней Эре (буквально стало на 3.9.15), но причину с ходу не вижу. (08.08.2024 17:18)XEPOMAHT Wrote:(08.08.2024 14:32)Berserker Wrote: ибо костыли потом аукаются всем ) Никому не пришло в голову, что главная причина в замене хука. Надо было откат на старый хук ""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? У меня плагин "Воспроизведение видео в формате BIK", использую вызов сначала GetModuleHandleA, а потом GetProcAddress: поделюсь исходным кодом на ассемблере Code: mov eax,dword[63A230h];GetModuleHandleA 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" на главном меню, увидел результат: ![]() Вот видишь, после отпускания курсора мыши от кнопки - автоматический не очищается желтое свечение вокруг кнопки. Очевидно, мой плагин "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" на главном меню, увидел результат: У меня было точно так же. Т.к. игра пререрисовывает спрайт кнопок поверх того, что уже было нарисовано. В итоге, после нажатия вылазит каша из спрайтов. Ну и альфа-канал так же при этом удваивается/утраивается от наложения, в итоге - смысл использования альфа-канала на кнопках теряется полностью. Именно по-этому сейчас в 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. Spoiler (Click to View) Скачать 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: Причина: в версии: Спасибо за обновление! С последними версиями ЭРЫ и ЭРЫкрест теперь работает без ошибок. RE: Плагин: воспроизведение видео в формате BIK (2022) - Berserker - 23.01.2025 01:00 Suft, это когда я бы успел? RE: Плагин: воспроизведение видео в формате BIK (2022) - Suft - 26.04.2025 19:15 myoffice91, Пожалуйста обновите плагин! Berserker, Опять поломалось) Не работает на последней версии... ![]() RE: Плагин: воспроизведение видео в формате BIK (2022) - myoffice91 - 11.07.2025 14:36 Плагин "BIK 1.7.1" тестировал с ЭРА 3.9.17 и также каждая нумерлогии версии, до 3.9.26 - работает отлично. Вот скриншот: ![]() 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,720x618,837x719&from=bu&cs=837x0 Тут форум движок проблема из-за неотображение скриншот. Решил Notepad++ сравнил с до и после. нашел строчка "720x618", где левая строка - невидимый символ. Откуда взялось? Если редактировал комментариев, то там не существует. Кроме форум. Пусть, форум MyBB Group добавить поддержка "Скриншот" из ВКонтакте картинка. |