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

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Серия игр Heroes of Might and Magic - GL Wrapper & Patches

Тема в разделе "Мастерская", создана пользователем Verok, 23 май 2018.

  1. Verok

    Verok

    Регистрация:
    11 мар 2016
    Сообщения:
    495
    @Eli Springer, Сейчас попробовал с нуля установить. Все играет, я даже в локальную папку добавил s3m трек. Путь не надо прописівать, он должен оставатся как есть. Например у меня

    HMM1 CDDrive=E:

    И игра ищет файлы по пути как на диске так и в локальной папке ...\Heroes I\Tracks\
    --- добавлено 29 окт 2020, предыдущее сообщение размещено: 29 окт 2020 ---
    Файлы должи также называтся как и оригинальные только могут быть разные форматы
    ".wav", ".flac", ".mp3", ".ogg", ".mod", ".s3m", ".xm", ".it"

    а точнее имя файла должно быть <XX-AudioTrack XX*.ext> где:
    XX - номер трека,
    * - все что угодно
    ext - ".wav", ".flac", ".mp3", ".ogg", ".mod", ".s3m", ".xm", ".it"

    Вот к примеру распакуйте бросьте приложеный s3m трек в папку <game>\Tracks\ , и в меню игры должен играть он
     

    Вложения:

    Последнее редактирование: 29 окт 2020
    AKuHAK нравится это.
  2. Eli Springer

    Eli Springer

    Регистрация:
    29 окт 2020
    Сообщения:
    3
    Спасибо за столь подробный ответ. Дело в том, что у меня Tournament Edition с последним патчем и в папке с игрой нашел файлик config.ini, где и указал путь к папке с музыкой, теперь все ок. Может кому пригодится на будущее.
    --- добавлено 29 окт 2020 ---
    Прошу прощения за оффтоп, но существует ли саундтрек к первой части во FLAC? Подскажите пожалуйста где найти.
     
  3. Verok

    Verok

    Регистрация:
    11 мар 2016
    Сообщения:
    495
    Можно самому рипнуть с диска. Вот аудио образы первых 2-х частей
     
  4. Syndrome

    Syndrome

    Регистрация:
    29 окт 2020
    Сообщения:
    1
    Я хочу запостить здесь доклад об ошибке для Verok'а и Baratorch'а.

    Для начала давайте сравним quick combat и auto combat:

    Драка 1: 6 чародеев и 200 медуз против 2000 единорогов:
    Авто комбат: чародеи победили без потерь.
    Квик комбат: единороги победили почти без потерь.
    Становится понятно что герои не могут использовать магию в квик комбате.
    Драка 2: Некромант и 10 вампиров против 10 отрядов по 300 селян.
    Драка 3: 100 джинов против 100 огров.
    Авто комбат: джины победили
    Квик комбат: джины победили
    Как видим, в отличии от героев, существа могут использовать магию.
    Компьютерный игрок всегда сражается через квик комбат
    А значит:
    1. Герои компьютера не могут колдовать
    2. У существ компьютера отключены пассивные способности (такие как вампиризм)
    3. Герои компьютера не могут отступать. А значит через квик комбат можно напасть на героя залутавшего город драконов и он не сможет убежать. Или на главнокомандующего когда он случайно окажется без армии.
    Я много слышал в интернете что в героях 4 слабый ИИ. А на самом деле сломан квик комбат.

    Надеюсь Verok и Baratorch смогут сделать как в Героях 3 HD: квик комбат идентичный авто комбату.

     
    Последнее редактирование: 30 окт 2020
  5. shikulja

    shikulja

    Регистрация:
    11 авг 2013
    Сообщения:
    66
    ai.imgur.com_9EZcJna.png
    спойлер лень прикрутить. Это не учитывал при том хаке с Vsync который ты описывал выше? который непонятно как работает, с подергиванием
     
  6. Verok

    Verok

    Регистрация:
    11 мар 2016
    Сообщения:
    495
    @shikulja, В OpenGL нет тройного буфера. Тройная буфферизация достигается только настройками драйверов.

    Если же своими руками, то созданием дополнительного обьекта фрейм буффера (FBO - frame buffer object), и это только при наличиии OpenGL 3+ или разширения FBO.

    Альтернативная vSync не везде есть. Фактически это wglSwapInterval(-1). У меня хоть драйвер говорит что поддерживает, но результата нет, изображение всеравно разделяется как при отключенной

    В nVidia есть кажись разширение gSync, но у меня nVidia нет
    --- добавлено 31 окт 2020, предыдущее сообщение размещено: 31 окт 2020 ---
    Я не занимаюсь исправлением самого геймплея. Только максимум исправляю системные и критические ошибки, когда игра вылетает.
     
    Neitan нравится это.
  7. Baratorch

    Baratorch

    Регистрация:
    21 янв 2009
    Сообщения:
    19
    Я не занимаюсь четверкой. Хотел когда-то, но не получил поддержки, которой наивно ожидал, от тех кто мог эту поддержку оказать.
    Теперь же кодовая база всех моих решений для тройки - это более 400 тыс. строк говнокода. И все это надо поддерживать, фиксить баги, развивать.
    Я просто не могу позволить себе отвлечься на на порядки менее перспективную (в плане аудитории) четверку.
    Хотя вот, полтора года газад запилил еще один проект: MMDoC: Revival - слегка оживил, полностью убитую владельцами, онлайн ККИ (это еще 100 тыс. строк кода на данный момент)

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


    ***

    @Verok, я в итоге в HD-моде откатил враппер до 1.24, что был. Так как в 1.50, даже если делать обновление вьюпорта / сброс clear / убирать ожидание hDrawEvent при игровом блиттинге, то все равно присутствует проблема с необновлением (непрорисовкой) участков экрана (с перечисленными вещами становится лучше, но проблема не исчезает полностью). Жаль ты убрал fpsCounter с бенчмарком, так бы можно было сравнить врапперы по производительности. Потому что по субъективным ощущениям 1.50 враппер медленнее похоже из-за возможности настройки цвета.

    Вот видео с проблемами 1.50:
    клип1
    клип2
    у этого стримера комп, который тянет современные игры на ультрах.

    В 1.24 тоже был такой же баг с необновлением экрана, однако он полностью решается обновлением вьюпорта при блиттинге.

    Еще я возвращая 1.24 запилил в него разделение апскейлинга и интерполяции, как в более поздних версиях и добавил фильтр ланцоша, выпилив из него код настройки цвета, то же сделал и с cubic и попытался с hermite.
    В итоге очищенныые от кода настройки цвета cubic и lanczos в враппере 1.24 ведут себя сильно по-другому чем в 1.50, особенно это заметно при использовании апскейлинга.

    В 1.50 xBRZ + hermite и даже xBRZ + linear выглядит лучше чем xBRZ + cubic и xBRZ + lanczos.

    В 1.24 очищенные фильтры логично отличаются: xBRZ + lanczos > xBRZ + cubic > xBRZ + linear ( > значит лучше выглядит).
    А вот очищенный от кода настройки цвета hermite у меня получился идентичен nearest neighbor. В итоге на данный момент под пунктом hermite в HD-шном 1.24 скрывается cubic.
     
    Последнее редактирование: 31 окт 2020
  8. Verok

    Verok

    Регистрация:
    11 мар 2016
    Сообщения:
    495
    @Baratorch, Пардон что не сразу ответил.

    О цветности. По идее падение производительности если цветность сброшена не долно быть. То-есть если нажать кнопку "Reset" в окне "Color Adjustments". Так как если цветность стоит по умолчанию, то задействуется шейдер без настройки цвета. То-есть в шейдере устанавливается флаг через #define LEVELS.

    Этот флаг я вводил так как на слабых GPU игра начинает тормозить исли изменен хоть как-то цвет. И чтобы играть без тормозов нужно нажать кнопку Reset. У меня на моем GPU (Intel HD4000) вообще разницы нет, настроен цвет или нет. Но вот на старом GPU с OpenGL 2.1 (Intel GMA965) тормоза проявляются, и нужно всегда играть без настройки цвета.

    О не прорисовке. Я не много подумал посмотрев видео кажись понял в чем проблема. Есть 2 случая.

    Первое. У меня непрорисовка иногда бывает долю секунды, на статичных экранах, во время выхода из игры или из сценария. Но подвисания такое как на видео - некогда. Поразмыслив что наверное изза того что я не делал враппер под HD мод, а именно не учитывал возможность системных курсоров.

    Насколько я помню курсор всегда перерисовывается, где-то раз в 33 мс (могу ошибатся). И значит раз в 33 мс всегда посылается команда перерисовкы, которая устанавливает в свою очередь флаг события для WaitForSingleObject. При включенной vSync кадры могут скипатся, и иногда последний кадр скипается, но изза того что курсор системный то новой команды перерисовки не следует. Значит нудно для WaitForSingleObject вместо INFINITY указать максимальное время, например число 16мс

    Но на видео видно чти игра перерисовывается, так как идет анимация юнитов, но книга не так и не активна. Наверное игрок играет с фильтром апскейлинга, так как для апскейлинга задействуется еще один буфер (FBO). То-есть сначала изображение апскейлится в FBO через шейдеры апскейлинга, а потом уже из FBO рендерятся в экранный буфер шейдерами интерполяции (Linear, Hermite и тд.).

    Так как апскейлинг оч. требователный, я делал рисование в FBO через еще один буфер, буфер трафарета (Stencil Buffer). То-есть когда игра отправляет врапперу Blt, она указывает какую область нужно перерисовать. Враппер заносит областя в буфер трафарета, уже при рисовании в FBO перерисовывается и апскейлится областя только те что в Stencil Buffer, то-есть те которые били указаны во время Blt.

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

    Вывод. Значит FBO не доририсовывается до конца. Я там коментировал в одном месте glFinish. Наверное нужно задействовать его опятью.

    Для другой игры (Disciples) я не мог задействовать Stecil Buffer, так как при каждом кадре все элементы игры перерисовывались. И вместо Stencil Buffer я сравнивал на GPU приходящий кадр с предыдущим, и апскейлил только те тексели которые отличались. Можно это провернуть также и для этой игры, но незнаю как это скажется на производительности, так как разные GPU имеют разный воркфлоу

    Конешно хорошо б иметь тестовую сбоку HD с 1.50 и его кодами, чтобы поэксперементировать а не гадать в чем дело. В любом случае у себя для WaitForSingleObject INFINITY я заменю на 16
    --- добавлено 2 ноя 2020, предыдущее сообщение размещено: 2 ноя 2020 ---
    Ну у меня также Linear при даунскейлинге выглядит лучше чем Cubic или Lanczos. По идее должно быть наоборот
    --- добавлено 2 ноя 2020 ---
    Ну здесь нужно смотреть на месте в код. Обычный Linear также отключается через glTexParameter с параметрами GL_TEXTURE_MIN_FILTER и GL_TEXTURE_MAG_FILTER. Для Linear и Hermite это должно быть GL_LINEAR, а для других GL_NEAREST. Проблема в этом. Наверное где-то напутано
    --- добавлено 2 ноя 2020 ---
    Спасибо. Пересмотрел, действительно ошибка. Я передавал в шейдер не тот размер текстуры. В коде под.
    Код:
    // Draw from FBO
    if (state.upscaling)
    {
        ...
        program->Use(texSize);
    
    вместо texSize должно быть viewSize. То-есть
    Код:
    // Draw from FBO
    if (state.upscaling)
    {
        ...
        program->Use(viewSize);
    
     
    shikulja нравится это.
  9. Baratorch

    Baratorch

    Регистрация:
    21 янв 2009
    Сообщения:
    19
    Потестил еще.
    С выключенными и с включенными системными курсорами, с 16мс и с INFINITI, c раскомменченым тем glFinish и закомменченым, с vSync и без, со своим ((OpenDraw*)this->ddraw)->viewport.refresh = TRUE и без
    в различнызх сочетаниях.
    Глюки непрорисовки на 1.50 все-равно остаются c апскейлингом xbrz (любой кратности) с любой интерполяцией. С другим апскейлом или без - врроде нет, поймать не удается.

    На 1.24 даже xBRZ x6 + BlackmanSinc (который тяжелее ланцоша) с 15 фпс глюк с непрорисовкой исключен.

    Я как найду время на то чтобы подготовить исходники к совместной работе, так залью их и опишу инструкцию как ловить непрорисовку. Но когда я найду это время, пока не знаю..
     
    Последнее редактирование: 3 ноя 2020
    SnowLeo нравится это.
  10. SnowLeo

    SnowLeo

    Регистрация:
    4 ноя 2020
    Сообщения:
    2
    Громаднейшее спасибо за враппер для HOMM 4. Все способы, которые я перепробовал из интернета - не работали. То графика лагала, то игра вылетала. Ваш враппер - это какое-то чудо.
     
    Verok нравится это.
  11. Verok

    Verok

    Регистрация:
    11 мар 2016
    Сообщения:
    495
    Глобально переработал враппера. Удалил использование буферов трафарета, и сделал по примеру как для Disciples, то-есть в шейдерах апскейлинга проверяю на наличи изменений для быстродействия.

    В некоторых случаях так быстрее, в иных медленее. Но зато, кажись, пропала проблема синхронизации с неотрисоваными областями
    --- добавлено 5 ноя 2020, предыдущее сообщение размещено: 5 ноя 2020 ---
    Кстати я забыл ответить. Я убрал так как не вижу в нем смысла. Fraps и MSI Afterburner с этим отлично справляются
     
    Winged Cat, leiz и Baratorch нравится это.
  12. Baratorch

    Baratorch

    Регистрация:
    21 янв 2009
    Сообщения:
    19
    Отлично! В версии 1.52 баг непрорисовки отсутствует.

    ***

    Ну, в текущем (на базе 1.24) враппере ХД мода я сделал пункт меню "Бенчмарк", который убирает ожидание ивента в цикле перерисовки и отображает фпс (выбрать отображение фпс без режима бенчмарк нельзя).

    Выводить фпс (например с пом. Fraps) без выпиливания ожидания ивента в цикле - в игре, где в некоторые моменты кадр может обновляться 0 раз в секунду (в каких-нибудь статичных меню) или 8-16 раз в секунду смысла очень мало. Так как эти данные ничего не скажут о производительности графики.

    А просто делать опцию "Бенчмарк" выпиливающую ожидание ивента в цикле без вывода фпс - тоже странно. При выбре такой опции, что, выводить сообщение типа "используйте фрапс, чтобы увидеть результат бенчмарка"?
     
    Verok нравится это.
  13. Verok

    Verok

    Регистрация:
    11 мар 2016
    Сообщения:
    495
    @Baratorch, Вернул счетчик обратно. Клавиша, как и ранее, по умолчанию не назначена. Нужно в config.ini в секции [FunktionKeys] добавить FpsCounter=X (где 'X' номер Fn клавиши)
     
    Baratorch нравится это.
  14. sodragon97_14

    sodragon97_14

    Регистрация:
    16 окт 2020
    Сообщения:
    8
    @Syndrome, я могу тут ошибиться, но в Equilibris компьютер использует магию...
    @Baratorch, а если Dalai и прочая обратятся и попросят помощи\участия не против потратить на них время?)
     
  15. Verok

    Verok

    Регистрация:
    11 мар 2016
    Сообщения:
    495
    Сделал мод для HoMM IV. Он базируеться на враппере, а точнее враппер его вызывает и без враппера он не будет работать. Поэтому создавать новую тему под него не хочу, так что его обсуждение будет здесь. Возможно только если кто то из админов даст мне возможность подредактировать первый пост.

    Мод для широкоформатных экранов. Назвал его Resolution Mod. Он пока поддерживает только английские экзешники игры 3.0, ну и GOG, так как он базируется на Complete 3.0

    Добавил еще по 3 разрешения для 16x10 и 16x9. То-есть теперь есть:

    для 4x3 (5x4)
    - 800x600
    - 1024x768
    - 1280x1024

    для 16x10
    - 960x600
    - 1280x800
    - 1680x1050

    для 16x9
    - 1024x600
    - 1366x768
    - 1920x1080

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

    AspectRatio.png

    Задний фон окон замка, битвы и тд, не прозрачен как в HD моде для HoMM 3. Точнее я мог сделать его прозрачным, но только полностью, без затенения. Но так смотрится крипово, и глаза разбегаются. Поэтому сделал с задним фоном

    Страница моего блога для скаичвания здесь Мод задействуется GL враппером, поэтому последняя версия враппера включена в пакет загрузки.

    Настоятельно прошу, если будете делать перепост мода, то указывайте только линк на страницу моего блога или сюда, так как со временем по сети блуждают разные версии мода/патча

    ===

    Вот немного скринов в разширении 1920x1080

    01main menu.jpg 02 campaings.jpg 03 movie.jpg 04 info.jpg 05 adventure.jpg 06 town.jpg 07 combat.jpg 08 settings.jpg
     
    shikulja, Cortez Cardinal, sodragon97_14 и 4 другим нравится это.
  16. Yuriy_X

    Yuriy_X

    Регистрация:
    27 авг 2018
    Сообщения:
    3.013
    @Verok, отличная новость! В будущем планируется поддержка русифицированной версии от "Бука" с Equilibris?
     
  17. vekokiril

    vekokiril

    Регистрация:
    15 июл 2011
    Сообщения:
    13
     
  18. Morendil Архивариус

    Morendil

    Регистрация:
    10 май 2013
    Сообщения:
    1.593
    Здорово! Нужно еще 1920x1200 как наиболее актуальное для данного соотношения сторон.
     
  19. sodragon97_14

    sodragon97_14

    Регистрация:
    16 окт 2020
    Сообщения:
    8
    Я понадеялся на лучшее: поставил на эквилибрис. Теперь не запускается)
     
  20. Verok

    Verok

    Регистрация:
    11 мар 2016
    Сообщения:
    495
    С Буковской версией - планируется. Вообще то со всеми версиями что и враппер, но не сейчас, уж много адресов нужно перехватывать.
    С Эквилибрисом. Ну здесь нужно смотреть на конфликты между модами. По возможности постараюсь сделать

    Я об этом думал, так как мое любимое соотношение сторон это 16х10. Но все таки подумав предпочел чтобы разрешения были наближены к оригиналу, и их было по 3. Так что пока лучше использовать 1680х1050 или 1920х1080

    Ну наверное перехваты кода накладываются
    --- добавлено 21 ноя 2020, предыдущее сообщение размещено: 21 ноя 2020 ---
    Сами моды это файлы *.mod. Обычные dll--ки с другими разширениями. Если их удалить то удалится и сам мод. Но наверное сейчас именно сам враппер будет конфликтировать с Эквилибрисом, так как во враппере перехватывается функция загрузки пакетов
    --- добавлено 21 ноя 2020 ---
    Попробовал поставить Эквилибрис на англ версию. Кажись все запустилось
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление