Current time: 27.11.2024, 01:36 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Плагин: воспроизведение видео в формате BIK (2022)
» Читает BIK: версии 0.5b и 1.8d
Author Message
myoffice91 Offline
Moderators

Posts: 88
Post: #52

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



  1. Heroes 3 MoP Fan-Patch 3.14
  2. MoP Key Delete RandomMap
  3. TavernVideos BIK ASM
11.09.2024 22:17
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Messages In This Thread
Плагин: воспроизведение видео в формате BIK (2022) - myoffice91 - 29.04.2022, 20:03
RE: Плагин: воспроизведение видео в формате BIK - Berserker - 29.04.2022, 21:19
RE: Плагин: воспроизведение видео в формате BIK - Elmore - 29.04.2022, 22:52
RE: Плагин: воспроизведение видео в формате BIK - XEPOMAHT - 30.04.2022, 00:01
RE: Плагин: воспроизведение видео в формате BIK - Elmore - 30.04.2022, 10:27
RE: Плагин: воспроизведение видео в формате BIK - daemon_n - 30.04.2022, 19:00
RE: Плагин: воспроизведение видео в формате BIK - myoffice91 - 30.04.2022, 22:41
RE: Плагин: воспроизведение видео в формате BIK - Elmore - 01.05.2022, 00:00
RE: Плагин: воспроизведение видео в формате BIK - myoffice91 - 03.05.2022, 18:03
RE: Плагин: воспроизведение видео в формате BIK - daemon_n - 01.05.2022, 12:48
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
RE: Плагин: воспроизведение видео в формате BIK - Elmore - 10.05.2022, 14:53
RE: Плагин: воспроизведение видео в формате BIK - Archer30 - 10.05.2022, 20:08
RE: Плагин: воспроизведение видео в формате BIK - Suft - 20.05.2022, 13:20
RE: Плагин: воспроизведение видео в формате BIK - DarkyAndSparky - 20.05.2022, 16:05
RE: Плагин: воспроизведение видео в формате BIK - Suft - 21.05.2022, 13:35
RE: Плагин: воспроизведение видео в формате BIK - myoffice91 - 20.05.2022, 22:28
RE: Плагин: воспроизведение видео в формате BIK - myoffice91 - 21.05.2022, 14:04
RE: Плагин: воспроизведение видео в формате BIK - Suft - 21.05.2022, 14:39
RE: Плагин: воспроизведение видео в формате BIK - myoffice91 - 28.05.2022, 23:44
RE: Плагин: воспроизведение видео в формате BIK - myoffice91 - 22.08.2022, 14:43
RE: Плагин: воспроизведение видео в формате BIK (2022) - myoffice91 - 18.09.2022, 15:31
RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 18.09.2022, 15:58
RE: Плагин: воспроизведение видео в формате BIK (2022) - Berserker - 19.09.2022, 08:27
RE: Плагин: воспроизведение видео в формате BIK (2022) - myoffice91 - 19.09.2022, 13:39
RE: Плагин: воспроизведение видео в формате BIK (2022) - daemon_n - 19.09.2022, 11:47
RE: Плагин: воспроизведение видео в формате BIK (2022) - Berserker - 19.09.2022, 13:32
RE: Плагин: воспроизведение видео в формате BIK (2022) - myoffice91 - 19.09.2022, 15:37
RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 19.09.2022, 16:10
RE: Плагин: воспроизведение видео в формате BIK (2022) - myoffice91 - 19.09.2022, 16:26
RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 19.09.2022, 17:07
RE: Плагин: воспроизведение видео в формате BIK (2022) - Archer30 - 02.10.2022, 07:32
RE: Плагин: воспроизведение видео в формате BIK (2022) - myoffice91 - 06.10.2022, 11:30
RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 06.10.2022, 15:40
RE: Плагин: воспроизведение видео в формате BIK (2022) - wessonsm - 06.10.2022, 12:32
RE: Плагин: воспроизведение видео в формате BIK (2022) - Berserker - 30.07.2024, 01:10
RE: Плагин: воспроизведение видео в формате BIK (2022) - myoffice91 - 07.08.2024, 23:23
RE: Плагин: воспроизведение видео в формате BIK (2022) - Berserker - 08.08.2024, 00:31
RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 08.08.2024, 02:07
RE: Плагин: воспроизведение видео в формате BIK (2022) - Berserker - 08.08.2024, 14:32
RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 08.08.2024, 17:18
RE: Плагин: воспроизведение видео в формате BIK (2022) - Berserker - 08.08.2024, 17:55
RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 08.08.2024, 19:16
RE: Плагин: воспроизведение видео в формате BIK (2022) - Berserker - 08.08.2024, 21:36
RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 09.08.2024, 11:14
RE: Плагин: воспроизведение видео в формате BIK (2022) - Berserker - 09.08.2024, 16:58
RE: Плагин: воспроизведение видео в формате BIK (2022) - Suft - 15.08.2024, 19:52
RE: Плагин: воспроизведение видео в формате BIK (2022) - myoffice91 - 11.09.2024, 13:39
RE: Плагин: воспроизведение видео в формате BIK (2022) - Suft - 11.09.2024, 16:25
RE: Плагин: воспроизведение видео в формате BIK (2022) - myoffice91 - 11.09.2024 22:17
RE: Плагин: воспроизведение видео в формате BIK (2022) - Suft - 12.09.2024, 14:56
RE: Плагин: воспроизведение видео в формате BIK (2022) - myoffice91 - 16.09.2024, 18:54
RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 16.09.2024, 20:52
RE: Плагин: воспроизведение видео в формате BIK (2022) - Suft - 17.09.2024, 15:30
RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 17.09.2024, 20:41
RE: Плагин: воспроизведение видео в формате BIK (2022) - Berserker - 18.09.2024, 02:40
RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 18.09.2024, 11:25
RE: Плагин: воспроизведение видео в формате BIK (2022) - Suft - 18.09.2024, 14:57
RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 18.09.2024, 15:21
RE: Плагин: воспроизведение видео в формате BIK (2022) - Suft - 18.09.2024, 16:44
RE: Плагин: воспроизведение видео в формате BIK (2022) - XEPOMAHT - 18.09.2024, 17:02

Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group