Важно Форуму RPGRUSSIA 15 лет!
  • 2.300
  • 19
Друзья, сегодня нашему форуму исполняется 15 лет! Кажется, только вчера мы открывали первые разделы, спорили о правилах и радовались каждому новому участнику. Но годы пролетели - а мы всё здесь, и...
Новости Path of Exile 2: Патч 0.2.0 «Dawn of the Hunt» - краткое описание
  • 1.314
  • 0
Вчера вечером, в 22.00 по МСК, в прямом эфире вышла презентация по будущему патчу 0.2.0. В целом, игроки ждали нового класса и ребаланса существующих умений, но то что выкатили GGG на публику...
Новости Gothic 1 Remake - Demo (Nyras Prologue)
  • 4.739
  • 2
Ну что, заключённые, готовы к встрече с колонией? Мир, где каждый встречный мечтает вас зарезать за кусок хлеба, а единственный закон - сила. Вас ждёт совершенно новый пролог к легендарной...
Новости Большое интервью с HotA Crew - часть 2
  • 3.051
  • 0
HotA Crew о Кронверке и будущих обновлениях (часть 2) Какие герои будут вести армии Кронверка? Герои-воины зовутся Вожди, маги — Старейшины. Их параметры и способности подчеркнут сильные стороны...
Gothic ½ — Union

Патч Gothic ½ — Union 1.0m (update)

Нет прав доступа на загрузку
Это патч, который исправляет большинство багов движка
Ссылка на архив разработчика с всегда актуальными версиями Union.
Последний актуальный Union 1.0m и сопутствующие файлы.
Патчи
  • Stunlock fix when meatbug tries to draw weapon - Исправление, предотвращающее зависание персонажа, если, играя за "мясного жука", попытаться достать оружие
  • First day in savegame is 1 - Теперь в меню сохранения/загрузки номер первого игрового дня начинается с 1, а не с 0
  • Fit viewport to screen - Автоматически масштабирует элементы интерфейса по размеру экрана, устраняя некоторые негативные эффекты DX7
  • Create drawweapon perception - NPC реагируют, если персонаж достаёт оружие на бегу в G1
  • Create removeweapon perception - NPC реагируют, если персонаж прячет оружие на бегу в G1
  • Fix NPC_KnowsInfo - Исправлена ошибка скриптов, из-за которой ранее скрывались определённые диалоги
Настройки
[DEBUG]
  • FixBinkNew - активирует новую систему исправления видеороликов на базе Union.
  • FixBink_InterpCpuCount - регулирует качество сглаживания видеоряда.
    • 0 - отключено, обеспечивая лучшую производительность
    • 1 - оптимальное качество, при этом производительность ниже
    • 2 - сбалансированное качество и производительность
    • 3 или выше - минимальное качество, но максимальная производительность
  • FixBink_InterpPixelSize - задаёт количество потоков CPU, задействованных для сглаживания видеоряда. Допустимый диапазон от 1 до 16.
Файловая система и плагины
  • Исправлены ошибки при распаковке сжатых томов.
  • Параметры IgnoreList и UnIgnoreList теперь также применяются к VDF томам
  • Приоритет версии dll теперь выше, чем временная метка тома.
  • zParserExtender интегрирован нативно в Union.vdf, что исключает необходимость его отдельного подключения вместе с API скриптами в других VDF.

Звук
  • Для корректной работы звука в G1 на (не)эмуляторах добавлена библиотека Mss32.dll из другой версии игры
Мышь
  • Буфер опроса значительно увеличен для предотвращения возможного залипания кнопок
Фикс роликов
  • Из-за увеличения количества жалоб на фикс от SystemPack, основанный на opencv, была разработана новая библиотека масштабирования видеороликов. Новая реализация не зависит от железа и драйверов, используя для расчётов CPU. Совмещая различные методы оптимизации, алгоритмы позволяют применять библиотеку на любых ПК, а в отдельных случаях даже заметно повышают производительность.

Ознакомьтесь со следующими параметрами в ini:
  • FixBink_InterpCpuCount - этот параметр определяет, сколько ядер CPU будет задействовано для сглаживания изображения. По умолчанию система автоматически подбирает оптимальное количество ядер, исходя из характеристик вашего процессора. Максимальное значение – 16 ядер.
  • FixBink_InterpPixelSize - данный параметр устанавливает качество сглаживания изображения по умолчанию. Значение подбирается автоматически с учётом мощности CPU и разрешения экрана. Это стартовое значение, после которого система корректирует качество в зависимости от времени вычисления кадра. При более высоком значении качество сглаживания снижается, однако оно не опускается ниже исходного уровня (система сама это контролирует). Значение 0 отключает сглаживание.
Изменено назначение кнопок.
При extendedVideoKeys=0:
Код:
Esc пропустить ролик
Space пропустить ролик
Enter пропустить ролик
Shift + Space приостановить/возобновить ролик
При extendedVideoKeys=1:
Код:
Q вкл/выкл звук
Left отмотать назад
Right отмотать вперед
Up увеличить громкость
Down уменьшить громкость
Esc пропустить ролик
Home начать с начала
Space приостановить/возобновить ролик
ВАЖНО!!!
Если у вас установлен GD3D11, библиотека zBinkFix будет отключена, и все операции масштабирования будут выполняться DirectX11.

Исходный код zBinkFix:
GitHub - Gratt-5r2/zBinkFix
Универсальный первичный патч (без разбивки на x32/x64).
Исправление ошибок
На данный момент это полностью рабочая тестовая версия, которая в ближайшее время не претерпит изменений или останется без изменений вовсе.

SystemPack 2.0
  • Внедрены ассемблерные вставки, существенно упрощающие создание патчей
  • Добавлены вызовы API для реализации сложных патчей
  • Реализована возможность переопределения значений из SystemPack.ini с помощью слова OVERRIDES_SP. Функциональность аналогична соответствующей секции ini мода. Переопределения не изменяют физический файл SystemPack.ini, однако их значения имеют более высокий приоритет.
  • Введены приоритеты выполнения патчей. По умолчанию первым запускается Union.patch, а остальные – в порядке их обнаружения в игровых файлах. Для повышения приоритета файл должен начинаться с нижнего подчёркивания. Такие патчи будут исполняться до Union.patch, причем приоритет определяется количеством нижних подчёркиваний.
    Подробнее см. в теме Union - формат .patch файла
SystemPack - Изменения патчей
  • InteractCollisions - теперь фикс отключает не сами коллизии NPC, а выборочный обработчик. Это означает, что столкновения с персонажем всё ещё возможны, но он становится невосприимчивым к окружению, при этом объекты, с которыми происходит взаимодействие, сохраняют свои коллизии.
  • No_strafe_while_fall - помимо стрейфов, отключаются и прочие состояния, способные прерывать падение: parade, attackforward, attackleft, attackright
  • Shield - устранена ошибка, при которой щит не снимался со спины, если адрес предмета попадал в отрицательный знаковый диапазон
  • Реализация чтения Bink из VDF полностью перенесена в Shw32.dll

SystemPack - новые патчи
  • |G1 G2| Фикс зависания спела при одновременном касте и открытии инвентаря
  • |G1 | Превью предмета в его описании теперь отрисовывается максимально справа
  • |G1 | Исправлен баг падения персонажа с лестницы, когда другой NPC обращается к ней преждевременно
  • |G1 G2| Выравнивание NPC с учётом кривизны наклона лестницы
  • |G1 | Фикс, предотвращающий «сталкивание» NPC на лестнице при их подпирании другим NPC
  • |G1 | Для предотвращения выхода за барьер вводится смертельный урон в воде и при взаимодействии с монстрами
  • |G1 G2| Будучи монстром, устранён баг, позволяющий возвращаться в (живую) человеческую форму в первые секунды после смерти
  • | G2| Исправлена проблема с неотображающимися субтитрами минидиалога
  • | G2| Удалена угрожающая музыкальная тема в зонах 'WALD' (например, дом Эрола)
  • | G2| Исправлена возможность стрейфа в состоянии, когда движение запрещено
  • |G1 | Исправлен баг множественного вызова AI при открытом инвентаре (исправляет эффекты «летающих» факелов над рудокопами, выпадение предметов из рук NPC, прерывание диалогов и т.п.)
  • | G2| Исправлена возможность пропуска диалогов и катсцен стрейфом
  • |G1 G2| Устранена ошибка, при которой NPC не слышал шаги другого NPC во время стрейфа, прыжков и обратного шага
  • |G1 G2| Введена установка состояний (BS_SNEAK, BS_WALK, BS_RUN) при стрейфах
  • |G1 G2| Исправлена недоработка, из-за которой не посылалось уведомление о доставании и убирании оружия на бегу
  • |G1 G2| Если текстура мультидокумента имеет прозрачный контур, её изображение немного корректируется
  • |G1 | Исправлена ошибка, когда при первом открытии инвентаря не отображались все предметы торговца или показывались неправильные их количества
  • |G1 G2| Исправлен двойной выныривание после падения персонажа в воду
  • |G1 G2| Персонажи не обновляют и не восстанавливают здоровье в полночь, если находятся в зоне видимости игрока
  • |G1 G2| Устранено световое пятно, возникающее после удаления света от факела или иного источника
  • |G1 G2| Исправлена возможность открытия инвентаря во время диалога
  • |G1 | Реализовано автоматическое закрытие инвентаря, когда NPC обращается к игроку
  • |G1 G2| Исправлена проблема с телепортацией через стены при использовании свитка превращения
  • | G2| Исправлена ошибка, когда пираньи, находящиеся далеко от острова, определялись с неверной дистанции
  • | G2| Исправлены луки и арбалеты, находящиеся на спине, которые бесконечно проигрывали анимацию
  • |G1 G2| Опция ForceFlip (рекомендуемая при использовании технологий G-sync, FastSync или EnhancedSync) устраняет мерцающие артефакты
  • [G1 G2] Опция DisableOcclusionCulling отключает фильтрацию видимых объектов, что исправляет их мерцание или исчезновение, но может снизить общую производительность
Для Spacer
  • [G1 ] В G1 добавлены патчи для Spacer (crc32:6C370582), аналогичные тем, что присутствуют в G2 (crc32:B1B45718)
  • [G1 G2] Исправлено сворачивание главного окна
SystemPack - фичи
  • |G1 | Оружия, кольца и амулеты теперь группируются в пачки
  • |G1 | Предметы в инвентаре всегда отображаются поверх игрового мира
  • |G1 G2| Адаптивная дистанция прорисовки устанавливается автоматически в зависимости от частоты кадров (для DirectX 7)
  • |G1 G2| Реализовано построение графика производительности в реальном времени (для DirectX 7 или DirectX 11 [v17.7-dev17])
  • |G1 G2| Скорректирована высота спуска с лестницы, предотвращающая провал ног NPC под землю
  • |G1 G2| Введён более адекватный ограничитель частоты кадров для оконного режима
  • |G1 G2| Встроен плагин, устраняющий множественные VFX-уроны с участием нескольких дочерних частиц
  • |G1 G2| Видео в оконном режиме больше не зависают
  • |G1 G2| Реализовано переключение между оконным и полноэкранным режимами через Alt+Enter
  • |G1 G2| Загрузка из Data\ModVdf возможна даже если том занят другим процессом и не может быть перемещён в Data
Union - мышь
  • Отключение мыши и клавиатуры происходит при потере фокуса окна
  • Мышь не «отваливается», даже если происходит зависание с потерей фокуса или подключён дебаггер
  • Осуществляется очистка буфера нажатых клавиш между загрузками
  • Добавлен режим no-DirectX, позволяющий управлять осями через фактическое расстояние, пройденное мышью на экране. Этот режим более отзывчив и полезен для пользователей с GFA (Gothic Free Aim), низким FPS, а также для корректной работы таких плагинов, как «Расширенный инвентарь от Hedin» или «Меню крафта в Returning 2.0 AB и NB».
Union - система
  • Ядро переработано для оптимальной работы с Windows 7 и (не)эмуляторами под macOS & Linux
  • Обновлены паттерны байткодов, повышающие эффективность «безопасных» хуков
  • Исправлена ошибка в zip-vdf, теперь многопоточное чтение разрешено только после точки входа в движок
  • Добавлена полная виртуализация системной папки, позволяющая ей иметь любое название и создавать несколько системных папок для различных задач
  • Параметры PluginList и IgnoreList могут переопределять запуск Ninja, поэтому он вынесен в отдельную опцию в SystemPack.ini
  • Введён «пассивный» zParserExtender, который будет запущен, если в папке Autorun присутствуют скрипты или включён его принудительный запуск
  • Добавлена возможность сборки плагинов со статической run-time библиотекой (libcmt.lib /MT[d]) начиная с SDK 1.0l
Union - SDK
  • По умолчанию при создании проекта устанавливается версия платформы v142
  • Добавлены варианты сборки со статической run-time библиотекой, что означает отсутствие необходимости в предварительной установке vcredist для ваших плагинов. Это достигается посредством экспорта указателя на RTDynamicCast из статической libcmt.lib через объект самого плагина (см. Interface.cpp)
  • Режим сборки MP разделён на два типа:
    А. MP x2 – сборка плагина только для G1 и G2A
    Б. MP x4 – сборка плагина для G1, G1A, G2, G2A
  • В Gothic API добавлены комментарии с размерами классов, полей и их смещениями
  • Добавлены сниппеты для быстрого создания хуков. Для этого достаточно начать вводить слово hookPatch или hookDetours (в зависимости от требуемого хука) и нажать TAB. Будет создан шаблон, куда следует перенести сигнатуру перехватываемой функции. Сниппет также дополнит прототип, который можно вставить в UserAPI.
Новое в SystemPack.ini
  • |G1 | [Parameters] MultislotWeapons – разрешает группировку оружий в пачки [по умолчанию – 1]
  • |G1 | [Parameters] MultislotMagic – разрешает объединение колец и амулетов в пачки [по умолчанию – 1]
  • |G1 G2| [Parameters] AdaptiveSightDistance – включает автоматическую настройку дистанции прорисовки [по умолчанию – 0]
  • |G1 G2| [Parameters] AdaptiveSightDistance_ShowInfo – позволяет отображать значения адаптивной дистанции прорисовки [по умолчанию – 0]
  • |G1 G2| [Parameters] AdaptiveSightDistance_LowerFPS – задаёт нижнюю границу FPS, ниже которой дистанция прорисовки уменьшается [по умолчанию – 55]
  • |G1 G2| [Parameters] AdaptiveSightDistance_UpperFPS – задаёт верхнюю границу FPS, выше которой дистанция прорисовки увеличивается [по умолчанию – 60]
  • |G1 G2| [Parameters] VisualizePerfomance – разрешает отрисовку графика производительности [по умолчанию – 0]
  • |G1 G2| [Parameters] HeightCorrectionOnLadder – предотвращает провал ног под землю при использовании лестницы [по умолчанию – 1]
  • |G1 G2| [Parameters] FPS_Limit – ограничивает FPS до заданного значения [по умолчанию отключено – 0]
  • |G1 G2| [Parameters] ClearKeyBufferOnLoad – включает очистку буфера ввода при загрузках [по умолчанию – 1]
  • |G1 G2| [Core] Ninja – разрешает загрузку Ninja.dll [по умолчанию – 1]
  • |G1 G2| [Core] ParsetExtenderAlwaysOn – включает загрузку zParserExtender.dll независимо от наличия скриптов в Autorun [по умолчанию – 0]
  • |G1 G2| [Mouse] NoDirectXMode – позволяет отслеживать перемещение мыши не через dinput [по умолчанию – 0]
  • |G1 G2| [Debug] GPUName – системный параметр, указывающий последнюю работавшую видеокарту
  • |G1 G2| [Debug] ForceFlip – устраняет мерцающие артефакты при использовании G-sync, FastSync или EnhancedSync. Рекомендуется для пользователей с данными технологиями. [по умолчанию – 0]
  • |G1 G2| [Debug] DisableOcclusionCulling – отключает фильтрацию видимых объектов, что исправляет их мерцание/исчезновение, но снижает производительность. [по умолчанию – 0]
Дополнительно
Visual C++ 2008 более не требуется для работы фикса Bink
  • Особенности нового zParserExtender см. в теме Расширение возможностей парсера | zParserExtender [плагин для Union]
  • В папке Gothic добавлен прямой деинсталлятор Union
  • Обновлены некоторые ресурсы Первичного патча, а также оставлен только Патч с 4GB патчем
  • Менеджер ресурсов самостоятельно скачает и установит Visual C++ 2010 (при согласии пользователя)
  • Исправлен патч FindNextFightAction_Workaround_1 – теперь скелеты в Gothic 1 атакуют с нормального расстояния.
  • Исправлен и возвращен патч Transform crashfix – теперь при переходе между локациями персонаж не будет умирать.
  • Анизотропная фильтрация по умолчанию выключена (для оптимизации на старом железе при чистой установке). Чтобы включить обратно, используйте опцию AnisotropicFiltering.
Основные изменения в Union, файловой системе и SDK
(*Больше информации по SDK будет представлено в соответствующей теме.)

  • Добавлена поддержка сжатых томов
    • Сжатые тома используют zip-архивирование, но файлы в них разделены на сегменты. Это позволяет быстро получать доступ к данным в любой части файла. Средняя скорость распаковки достигает 1.5 ГБ/с, но на практике этот показатель зависит от конкретного мода. Сжатие отлично подходит для плагинов и небольших проектов.
  • Исправлена ошибка файловой системы VFILE
    • Ошибка возникала при использовании 4GB патча. В движке проверка валидности хендлера работала некорректно: если его числовое значение становилось отрицательным, система ошибочно считала его недействительным. Это происходило, если указатель на файл превышал 2GB.
  • Исправление файлов с нарушенным доступом
    • Файлы с поврежденными правами доступа теперь автоматически исправляются системой, вне зависимости от причин их повреждения.
  • VDF-тома теперь можно запускать из DATA\PLUGINS
    • Чтобы не загромождать корневую папку, плагины теперь хранятся в DATA\PLUGINS. Разработчики могут использовать этот путь по своему усмотрению.
  • Настройка языка через ini-файл
    • Union и плагины определяют язык системы и используют его для локализации. Если необходимо задать другой язык, его можно указать в SystemPack.ini в параметре Language.
  • Интеграция патчей прямо в плагины
    • Теперь патчи можно включать непосредственно в плагин. В шаблон проекта SDK добавлены патчи Plugin.patch, которые автоматически загружаются вместе с плагином. Дополнительные патчи можно запускать с помощью:
      Код:
      SystemPack::CPatch::ExecuteResource( module, resource_id, resource_group )
      module - модуль, в котором находится патч
      resource_id - идентификатор ресурса
      resource_group - наименование группы, в которой состоит патч
      Пример:
      SystemPack::CPatch::ExecuteResource( module, MAKEINTRESOURCE( 103 ), "PATCH" );
  • Поддержка dynamic_cast в debug-библиотеках (RTTI патч)
    • Теперь dynamic_cast доступен в debug-конфигурации.
  • Предварительная распаковка OGG
    • Файлы OGG (музыкальные и звуковые дорожки) теперь можно предварительно распаковывать в память. Это позволит избежать фризов при загрузке крупных аудиофайлов.
  • Опции для (не)эмуляторов
    • Для работы с Wine и аналогами можно включить EmulatorMode в SystemPack.ini.
  • Новые патчи
    • skip EV_AIMAT
      zFILE_VDFS::open unsigned
      Regen mana without hp
  • Новые опции
    • DecompressedCacheSize
      UnzipThreadsCount
      EmulatorMode
      GpuFixes
      Language
  • Первичный патч
    • Добавлены оригинальные ini и rtf файлы для каждой локализации.
Рекомендация
Для слабого железа можно отключить параметр AnisotropicFiltering, чтобы повысить производительность.
Первичный патч (и +4gb) от 15.05.2021
Добавлена поддержка Wine и аналогичных решений, что было протестировано на Ubuntu 20.04 и macOS 11.1 с использованием Wine 5.0. Основное отличие от стандартной версии 1.0i заключается в том, что под Wine GPU-патчи, мешающие запуску игры, не активируются.

Требования для корректной работы под Wine (аналогично для других (не)эмуляторов):
  1. Менеджер ресурсов и автономные установщики требуют установленного .NET Framework 4.0 и Visual C++ 2010.
  2. Запуск самой Gothic возможен при наличии установленных Visual C++ 2008 и 2010.

Важно! В Wine библиотеки времени выполнения (MSVCR[XXX]) являются сторонними и могут вызывать критические ошибки. Например, MSVCR100 необходимо заменить на оригинальную версию для Windows, иначе возможны сбои в работе, сопровождающиеся критическими ошибками.
Union-1.0j-00001.png


Настройка Wine для корректной работы библиотек:
  1. Открыть терминал и выполнить команду winecfg. В появившемся окне перейти на вкладку “Библиотеки”.
  2. В поле “Новое замещение для библиотеки” добавить следующие библиотеки:
    • MSVCR100.DLL
      MSVCR110.DLL
      MSVCR120.DLL
      MSVCR140.DLL
      (и другие, если в будущем появится необходимость).
      Это позволит Wine в первую очередь использовать установленную на ПК библиотеку, а при ее отсутствии — встроенную.
      Union-1.0j-00002.png
  3. Установить Microsoft Visual C++ 2010 x86, а также версии 2012–2019, если они требуются для работы каких-либо плагинов. Как правило, этого достаточно для нормального запуска игры.
Если по каким-либо причинам Wine не находит стороннюю MSVCR-библиотеку, можно попробовать разместить ее в папке с исполняемым файлом игры. Однако такая ситуация встречается редко:
Union-1.0j-00003.png
Сверху Снизу