? Поддержите проект! ?
Ваша поддержка способствует развитию функциональности dd7to9
, позволяющей старым играм бесперебойно работать на современных платформах. Будь то разовое повышение через PayPal или постоянная ежемесячная поддержка на Patreon, ваш вклад гарантирует постоянные улучшения и приверженность развитию проекта. Обратите внимание: ваша поддержка неоценима, но она не повлияет на расстановку приоритетов в конкретной игре. Присоединяйтесь к нам в этом путешествии!
Поддержка через PayPal | Патреон
DxWrapper
Введение
DxWrapper — это файл .dll, предназначенный для упаковки файлов DirectX для устранения проблем совместимости в старых играх. Этот проект в первую очередь нацелен на устранение проблем с запуском игр в Windows 10/11 путем простого помещения файлов .dll и .ini в папку с игрой. Его второстепенная цель — предложить единый инструмент, объединяющий несколько проектов в один.
Функции
DxWrapper имеет множество функций, в том числе:
- Интеграция DDrawCompat
- Настройка параметров DDrawCompat для улучшения совместимости
- Преобразование DirectDraw 1-6 в DirectDraw 7
- Преобразование Direct3D 1–6 в Direct3D 7
- Преобразование DirectDraw 1–7 (ddraw.dll) в Direct3D 9 (d3d9.dll) с помощью Dd7to9
- Преобразование Direct3D 1–7 (ddraw.dll) в Direct3D 9 (d3d9.dll) с помощью Dd7to9
- Преобразование Direct3D 8 (d3d8.dll) в Direct3D 9 (d3d9.dll) с помощью d3d8to9
- Преобразование DirectInput 1–7 (dinput.dll) в DirectInput 8 (dinput8.dll) с помощью dinputto8
- Включает LegacyD3DResolutionHack для удаления искусственного ограничения разрешения из Direct3D 1–7, что позволяет играм DirectDraw воспроизводиться с разрешением 4K.
- Настройка вызовов функций Microsoft DirectSound с помощью DSoundCtrl.
- Может привести к запуску игр DirectDraw 1–7, Direct3D 8 и Direct3D 9 в оконном режиме.
- Можно ограничить частоту кадров в играх, использующих или конвертированных в Direct3D 9.
- Можно включить или отключить вертикальную синхронизацию в играх, использующих или конвертированных в Direct3D 9.
- Можно установить GraphicsHybridAdapter для Direct3D 9 на ноутбуках с несколькими видеокартами.
- Можно включить Direct3D9On12 для Direct3D 9.
- Можно установить режимы обработки вершин и кэширования для улучшения производительности в некоторых играх Direct3D 9.
- Можно удалить строки развертки из игр DirectDraw 1–7.
- Можно отключить MaximizedWindowedMode (полноэкранную оптимизацию) для игр Direct3D 8 и 9.
- Можно отключить масштабирование с высоким разрешением, чтобы решить проблемы с некоторыми играми.
- Можно отключить Microsoft Game Explorer (GameUX), чтобы предотвратить загрузку процессора rundll32.exe.
- Можно отключить звуковые щелчки и щелчки, вызванные обрезанием звука в играх во время воспроизведения звука.
- ASI-загрузчик для загрузки пользовательских библиотек с расширением файлов .asi в игровые процессы с помощью Ultimate ASI Loader
- Поддерживает загрузку как плагин ASI.
- Добавление поддержки сглаживания в игры Direct3D 8 или 9, даже если игра его не поддерживает.
- Поддержка оперативной памяти (обновление игровой памяти во время выполнения, может использоваться для удаления проверок CD/DVD или устранения графических или других сбоев)
- Установите привязку к одному процессору (в некоторых играх возникают проблемы с многоядерными процессорами)
- Возможность установить все 12 параметров набора средств совместимости приложений для DXPrimaryEmulation с помощью API SetAppCompatData.
- Установите окно игры в полноэкранный режим (в некоторых играх есть проблемы с полноэкранным режимом)
- Обработка внутриигровых исключений или сбоев
- Загрузка пользовательских файлов .dll в игры
- Запуск пользовательских процессов при запуске игры
Список совместимости игр для Windows 10/11
На данный момент я протестировал это на сотнях игр (многие из которых в остальном работают неправильно), чтобы запустить их в Windows 10/11. Большинство игр будут работать, но в некоторых все еще возникают проблемы. Полный список можно найти на вики-сайте «Совместимые игры» и вики-сайте «Поддерживаемые игры Dd7to9».
Установка
- Загрузите последнюю версию двоичного файла со страницы выпуска репозитория и разархивируйте ее в папку.
- Определите, какой файл-заглушка .dll необходим для игры. Это зависит от многих факторов, которые будут объяснены на странице, созданной позже. Обычно используются библиотеки-заглушки
ddraw.dll
, d3d8.dll
, d3d9.dll
, dsound.dll
или winmm.dll
. Вам нужно выбрать только один файл-заглушку, чтобы загрузить dxwrapper в игру. - Скопируйте этот файл .dll из папки «Stub», а также файлы
dxwrapper.dll
и dxwrapper.ini
в каталог установки игры рядом с основным исполняемым файлом. В некоторых играх основной исполняемый файл находится в подкаталоге (например, «Bin», «Exe» или «App»), поэтому файлы необходимо скопировать в этот каталог. Не рекомендуется перезаписывать существующие файлы игры. - Откройте файл
dxwrapper.ini
в текстовом редакторе и включите необходимые для игры настройки.
Не пытайтесь перезаписать какой-либо файл .dll в системном каталоге Windows, поскольку в настоящее время он не поддерживается и не будет работать.
Удаление
Удалите файлы DxWrapper .dll и .ini из каталога игры. Вы также можете удалить файл журнала, если он есть.
Конфигурация
Чтобы настроить DxWrapper, отредактируйте файл .ini и включите нужные настройки. Дополнительную информацию см. в вики конфигурации.
Пример файла конфигурации: dxwrapper.ini.
Список всех параметров конфигурации: allsettings.ini
Ведение журнала
Файл журнала будет создан в той же папке, где находится исполняемый файл игры. Он будет называться «dxwrapper» с добавленным к нему именем исполняемого файла игры. Итак, если вы запускаете файл game.exe
, файл журнала будет называться dxwrapper-game.log
.
Поддерживаемые библиотеки DLL
DxWrapper может обертывать следующие библиотеки DLL:
- bcrypt.dll
- cryptbase.dll
- cryptsp.dll
- d2d1.dll
- d3d8.dll
- d3d9.dll
- dciman32.dll
- ddraw.dll
- dinput.dll
- dinput8.dll
- dplayx.dll
- dsound.dll
- dwmapi.dll
- msacm32.dll
- msvfw32.dll
- версия.dll
- wininet.dll
- winmm.dll
- winmmbase.dll
- Winspool.drv
- wsock32.dll
Лицензия
Copyright (C) 2024 Элиша Ридлингер
Данное программное обеспечение предоставляется «как есть», без каких-либо явных или подразумеваемых гарантий. Ни при каких обстоятельствах автор(ы) не несут ответственности за любой ущерб, возникший в результате использования данного программного обеспечения. Каждому предоставляется разрешение использовать это программное обеспечение для любых целей, включая коммерческие приложения, а также свободно изменять и распространять его с учетом следующих ограничений:
- Происхождение этого программного обеспечения не должно искажаться; вы не должны утверждать, что написали оригинальное программное обеспечение. Если вы используете это программное обеспечение в продукте, подтверждение в документации продукта приветствуется, но не является обязательным.
- Версии измененного исходного кода должны быть четко обозначены как таковые и не должны выдаваться за оригинальное программное обеспечение.
- Это уведомление не может быть удалено или изменено из любого исходного дистрибутива.
Кредиты
DxWrapper использует код из нескольких других проектов. Итак, чтобы отдать должное там, где это необходимо, ниже приведен список мест, откуда был взят исходный код:
- AppCompatData: использованы комментарии с сайта blitzbasic.com для создания функции настройки параметров DirectDraw AppCompatData.
- ddwrapper Aqrit: включает код для чтения файла конфигурации ini.
- cnc-ddraw: включает код для создания контекста эмулируемого поверхностного устройства.
- d3d8to9: включает полный код Direct3D 8–Direct3D 9.
- D3DParseUnknownCommand: включает код для DirectDraw D3DParseUnknownCommand из исходного кода, найденного в ReactOS.
- DDrawCompat: включает полную версию DDrawCompat v0.2.0b, v0.2.1 и v0.3.2, а также для перехвата API.
- doom3.gpl: включает код для получения видеопамяти.
- diablo-ddrawwrapper: содержит код для преобразования ddraw в Direct3D.
- DSoundCtrl: включает полный код DirectSoundControl.
- DxWnd: включает код из DxWnd для загрузки прокси-сервера (init.cpp) и обработки исключений.
- GetComputerManufacturer: включает код с сайта rohitab.com для получения информации о производителе и модели компьютера.
- GetFileVersionInfo: включает код со stackoverflow.com для получения версии PE-файла.
- GetPPID: включает код, взятый из проекта mattn GitHub, для получения PID родительского процесса.
- LegacyD3DResolutionHack: включает код LegacyD3DResolutionHack для удаления искусственного ограничения разрешения в Direct3D 7 и ниже.
- MemoryModule: включает код для загрузки библиотек из памяти.
- OllyDbg: включает полный код cmdlist.c и disasm.c (disasm.dll), используемый для обработки исключений.
- PixelShaderPalette: включает код из ddraw-cnc для PixelShader, который используется для правильного просмотра поверхностей палитры DirectDraw.
- SilentPatchFarCry: включает код SilentPatchFarCry для кэширования плоскости отсечения в Direct3D 9.
- Ultimate ASI Loader: включает код для загрузки плагинов ASI.
- WineD3D d3d8.dll: включает функции ValidatePixelShader и ValidateVertexShader.
Разработка
DxWrapper написан в основном на C++ с использованием Microsoft Visual Studio 2022.
Для проекта требуются как Windows 10 SDK, так и WDK (должны быть установлены соответствующие версии SDK и WDK). Точную требуемую версию можно увидеть в свойствах проекта в Visual Studio.
Ссылка на GitHub: https://github.com/elishacloud/dxwrapper
Спасибо, что заглянули!