dd_action('wp_footer', function() { ?>

6.3 DXWnd — как запустить старые игры на Windows 10/11 — полный гайд по настройке, твикам и исправлению ошибок

DXWnd — как запустить старые игры на Windows 10/11 — полный гайд по настройке, твикам и исправлению ошибок

📝 Введение

Старые игры — это не просто строчки кода и пиксели, это целые миры, с которыми связаны воспоминания, часы увлечённой игры и дух эпохи, когда каждый новый проект ощущался как настоящее событие. Но время идёт: операционные системы становятся сложнее, экраны — чётче, процессоры — многоядернее, и многие шедевры прошлых десятилетий перестают запускаться или работают с ошибками на современном железе. Именно здесь на сцену выходит DxWnd — инструмент, который возвращает к жизни классику, бережно сохраняя её оригинальный облик.

Что такое DxWnd и зачем он нужен: суть технологии (API hooking, wrapper, а не эмулятор).

DxWnd (DirectX Windowed) — это бесплатная утилита‑обёртка (wrapper) для Windows, которая позволяет запускать старые игры, основанные на DirectX (DirectDraw, Direct3D), в оконном режиме и решать множество проблем совместимости. Вместо того чтобы пытаться «переписать» игру, DxWnd перехватывает вызовы DirectX и системных API, корректирует поведение игры под современные ОС и предоставляет пользователю набор инструментов для точечной настройки.

Ключевые возможности DxWnd:

  • Эмуляция DirectDraw и Direct3D. Позволяет старым играм корректно работать с современными видеокартами и драйверами.
  • Оконный режим и масштабирование. Превращает «жёсткий» полноэкранный режим в гибкое окно, даёт режимы масштабирования (Integer Scale, Aspect Ratio, Stretch), чтобы сохранить чёткость пикселей или добавить чёрные полосы.
  • Управление курсором и вводом. Корректирует смещение курсора, фиксирует его в окне, скрывает системный курсор, если игра использует свой.
  • Твики и хуки. Тонкие исправления под конкретные проблемы: эмуляция старых версий Windows, исправление звуковых ошибок, устранение зависаний и вылетов.
  • Ограничение FPS и привязка к ядру. Помогает избежать «слишком быстрой» игры на современных CPU и стабилизирует работу движков, не рассчитанных на многоядерность.
  • Отладка и логирование. Подробный лог dxwnd.log позволяет понять, где именно происходит сбой, и подобрать нужные настройки.

История и разработчики

Проект DxWnd развивался как сообщество‑ориентированный, без коммерческой цели: энтузиасты и ретро‑геймеры создавали и улучшали его, чтобы сохранить доступ к классике. Разработка велась в духе открытого сотрудничества: профили для игр, твики и рекомендации собирались на форумах (Vogons, Old‑Games и др.), где пользователи делились своими находками и помогали друг другу.

Хотя у DxWnd нет одного «главного» автора в привычном смысле, за проектом стоят реальные люди — программисты, тестировщики, архивариусы игровой истории, которые вкладывали своё время и знания, чтобы старые игры продолжали жить. Их труд — это не только код, но и огромная база знаний: от профилей под редкие проекты до подробных объяснений, как работают те или иные хуки и твики.

Цели проекта и философия

Главная цель DxWnd — не менять саму игру, а обеспечить её запуск и стабильную работу на современном оборудовании, сохранив максимально близкое к оригиналу ощущение. Это не «ремастер» и не «патч», а именно обёртка, которая решает проблемы совместимости, не вмешиваясь в логику игры.

Философия DxWnd строится на уважении к оригиналу:

  • Минимальные изменения. Всё, что делает DxWnd, можно отключить или настроить.
  • Гибкость. Для каждой игры можно создать свой профиль, а для разных задач (запуск, стрим, тестирование) — несколько профилей одной и той же игры.
  • Прозрачность. Логи и понятные названия твиков позволяют точно понимать, что именно происходит.

Тонкости разработки и специфика

DxWnd работает на уровне перехвата API (API hooking) — это тонкая и технически сложная задача. Старые игры часто полагаются на поведение ОС, которое в современных версиях Windows либо изменено, либо удалено. Например:

  • DirectDraw в современных системах практически не используется, и его вызовы нужно корректно транслировать.
  • Многоядерность может приводить к гонкам данных (race conditions) и зависаниям, потому что старые движки не рассчитаны на параллельное выполнение.
  • Палитра и GDI. Многие игры эпохи Windows 95/98 используют 256‑цветную палитру и GDI‑отрисовку, которая в Windows 10/11 ведёт себя иначе, вызывая цветовые артефакты.
  • Звуковые API. Старые звуковые движки (AIL, MCI, WaveOut) могут конфликтовать с современными аудио‑драйверами и оверлеями.

Именно поэтому DxWnd предлагает не «одно решение для всех», а набор инструментов, которые можно комбинировать под конкретную проблему.


Благодарность разработчикам и сообществу

Хочется выразить искреннюю признательность всем, кто участвовал в создании и развитии DxWnd. Это люди, которые не просто писали код, а сохраняли игровую историю, помогали другим и делали классику доступной для новых поколений. Благодаря их труду мы можем снова запустить любимые игры и увидеть их такими, какими они были задуманы — без лишней «полировки», но и без критических ошибок и вылетов.

DxWnd — это не просто утилита, а часть большого движения по сохранению ретро‑игр. И наша статья — попытка собрать и систематизировать знания, чтобы сделать этот инструмент понятнее и доступнее для всех, кто хочет прикоснуться к игровой классике.

Теперь, когда мы понимаем, что такое DxWnd, какова его история и философия, можно переходить к практическим шагам: от базовых настроек до экспертных решений и разбора частых проблем.

📌 Содержание

Введение


Глава 1. Теория и основы


Глава 2. Подготовка к работе


Глава 3. Панель управления, интерфейс и все вкладки DxWnd


Глава 4. Базовые профили: как начать без риска


Глава 5. Экспертные настройки и продвинутые приёмы


Часто задаваемые вопросы (FAQ)


Заключение


Приложения

Глава 1. Теория и основы

Как работает DxWnd: перехват API и эмуляция старого окружения

DxWnd не пытается «переделать» старую игру и не эмулирует железо, как DOSBox. Его сила — в точечном, контролируемом вмешательстве на уровне системных вызовов: он становится прослойкой между игрой и современной Windows, перехватывая устаревшие команды и аккуратно переводя их в формат, который понимает текущая ОС.


Что такое API‑hooking и как это делает DxWnd

API (Application Programming Interface) — это набор функций, через которые программа обращается к операционной системе: рисует картинку, воспроизводит звук, обрабатывает ввод мыши, создаёт окна. Старые игры активно используют старые интерфейсы: DirectDraw, Direct3D ранних версий, GDI, старые аудио‑API (WaveOut, AIL), а также специфические поведения окон и курсора.

API‑hooking — это техника подмены этих вызовов. DxWnd внедряется в процесс игры и «перехватывает» обращения к нужным функциям. Вместо того чтобы сразу передать запрос в Windows, он либо обрабатывает его сам, либо модифицирует параметры, либо перенаправляет на совместимую реализацию.

В DxWnd хуки включаются на вкладке Hook: DirectDraw, Direct3D, GDI, User32, Kernel32, WinMM, DirectInput. Каждый из них отвечает за свою область:

  • DirectDraw / Direct3D — графика и рендеринг.
  • GDI — шрифты, палитра, отрисовка примитивов.
  • User32 / Kernel32 — окна, сообщения, синхронизация.
  • WinMM — звук и таймеры.
  • DirectInput — ввод (мышь, клавиатура, геймпад).

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


Эмуляция старого окружения: не «как раньше», а «чтобы работало»

Когда говорят об «эмуляции старого окружения» в контексте DxWnd, речь не про полную копию Windows 95. Это набор точечных исправлений (твиков), которые компенсируют изменения в поведении ОС и драйверов.

Примеры того, что именно эмулируется

  1. Поведение DirectDraw в современных системах.
    DirectDraw практически выведен из эксплуатации в современных Windows. DxWnd перехватывает вызовы DirectDraw и транслирует их в D3D9 или GDI, сохраняя при этом логику работы с поверхностями и палитрами. Это позволяет играм корректно инициализировать видеорежим и не получать чёрный экран.

  2. 256‑цветная палитра и цветовые конверсии.
    Старые игры часто используют палитру из 256 цветов. В современных системах это приводит к «полосатым» цветам и артефактам. Опция Colour Convert на вкладке Video конвертирует палитру в RGB и правильно отображает её на современном мониторе.

  3. Специфика отрисовки окон и курсора.
    Игры эпохи Windows 9x полагались на определённые последовательности сообщений и поведение курсора, которых больше нет в Windows 10/11. Твики с префиксом win: (например, win:MakeQueriedWindowVisible, win:FullPaintRect) заставляют окно вести себя так, как ожидает игра: корректно открываться, перерисовываться и удерживать фокус.

  4. Многоядерность и синхронизация.
    Многие старые движки не рассчитаны на многоядерные процессоры и могут «ломаться» из‑за гонок данных (race conditions). DxWnd решает это не эмуляцией старого CPU, а ограничением: опция Set affinity to one core привязывает игру к одному ядру, а твики вроде shim:MutexForCriticalSection добавляют дополнительную синхронизацию там, где её не хватает.

  5. Старые аудио‑движки.
    Движки на базе AIL, MCI или WaveOut могут не работать из‑за изменений в аудио‑стеке Windows и конфликтов с оверлеями. Хук WinMM и твики sound:AsyncWaveOutOpen, sound:FixAILBug исправляют инициализацию звука и устраняют треск и рассинхрон.


Практический пример: запуск классической 2D‑игры

Допустим, у нас есть старая 2D‑игра на DirectDraw, которая на Windows 11 сразу показывает чёрный экран и не реагирует на мышь.

  1. Включаем хуки: DirectDraw, GDI, WinMM — чтобы перехватить графику, палитру и звук.
  2. Настраиваем Video: ставим разрешение 800×600, включаем Colour Convert и Use GDI — чтобы цвета отображались корректно.
  3. Добавляем твики: shim:EmulateWin95 (эмуляция поведения старой ОС), win:MakeQueriedWindowVisible (корректное открытие окна).
  4. Mouse: включаем захват курсора и автокоррекцию позиции.
  5. Main: ставим Limit FPS = 60 и Set affinity to one core, чтобы игра не «летела» и не зависала.

После этого DxWnd при запуске игры перехватывает её обращения к DirectDraw и GDI, конвертирует палитру, принудительно показывает окно и привязывает процесс к одному ядру. Для пользователя это выглядит как «игра просто запустилась», а под капотом работает сложная цепочка подмен и исправлений.


Почему логи и поэтапные изменения критически важны

Поскольку DxWnd меняет поведение системы для конкретной программы, ошибки могут быть неочевидными. Именно поэтому в нём есть механизм логирования (Debug → Enable logging). В файле dxwnd.log фиксируются:

  • какие хуки успешно применились;
  • какие твики были активированы;
  • ошибки инициализации (например, DDraw init error, Hook failed, Access violation).

Это позволяет действовать не наугад, а по алгоритму: включить минимальный набор, проверить, посмотреть логи, добавить один твик, снова проверить. Такой подход сводит к нулю риск «всё испортить» и даёт точный ответ, какой именно компонент вызывает проблему.


Важное уточнение: DxWnd ≠ эмулятор

Часто DxWnd ошибочно называют эмулятором. Это не так:

  • Эмулятор (например, DOSBox) воссоздаёт старое окружение целиком: CPU, видео, звук, BIOS.
  • DxWnd — это wrapper (обёртка) с API‑hooking. Он не эмулирует старое железо, а адаптирует поведение старой программы к современной ОС, перехватывая и корректируя системные вызовы.

Именно эта разница объясняет, почему DxWnd такой лёгкий и быстрый: он не тянет за собой целый виртуальный компьютер, а точечно «подкручивает» нужные параметры для одной конкретной игры.

Чем DxWnd отличается от эмуляторов (DOSBox, PCem) и ремастеров

Когда речь заходит о запуске старых игр, в ходу сразу несколько терминов: «эмулятор», «обёртка», «ремастер». Все они решают одну задачу — дают возможность поиграть в классику, — но делают это принципиально разными способами. DxWnd занимает свою особую нишу: он не пытается воссоздать прошлое и не стремится его «улучшить», а аккуратно адаптирует старую игру к современной среде.


DxWnd против эмуляторов: разный уровень вмешательства

Что делают эмуляторы (на примере DOSBox и PCem)

DOSBox — это эмулятор среды DOS: он воссоздаёт не только операционную систему, но и условное «железо»: процессор нужной эпохи, видеорежим (CGA/EGA/VGA), звуковые карты (AdLib, Sound Blaster), таймеры и даже поведение дисковода. Для пользователя это выглядит как запуск игры в «виртуальной машине» под DOS. Это идеально для игр 80–90‑х, которые вообще не рассчитаны на Windows.

PCem идёт ещё дальше: это эмуляция реального ПК определённой эпохи (например, IBM PC с процессором 486 и видеокартой Voodoo). PCem позволяет собрать «компьютер из прошлого» с конкретными комплектующими, драйверами и BIOS. Это инструмент для энтузиастов, которым важна максимальная аутентичность вплоть до артефактов старого железа.

Как работает DxWnd

DxWnd — это wrapper (обёртка) с API‑hooking. Он не создаёт отдельное окружение и не эмулирует железо. Вместо этого он:

  • запускается как посредник между игрой и современной Windows;
  • перехватывает конкретные вызовы API (DirectDraw, Direct3D, GDI, WinMM и т. д.);
  • корректирует поведение игры под современные драйверы и ОС, не меняя её внутреннюю логику.

Простыми словами: эмулятор строит «дом из прошлого», а DxWnd помогает старой мебели вписаться в современный интерьер.

Ключевые отличия

ПараметрDOSBox / PCemDxWnd
Уровень эмуляцииПолная: CPU, видео, звук, таймеры, BIOS (PCem), DOS‑среда (DOSBox)Частичная: только API‑вызовы Windows (DirectX, GDI, User32, WinMM)
Тип запускаемых игрDOS‑игры, старые Windows‑игры, которые зависят от DOS‑компонентовWindows‑игры на DirectX (преимущественно 32‑битные проекты эпохи Win9x/XP)
ПроизводительностьНиже из‑за эмуляции CPU и периферииВысокая: нет эмуляции железа, только хуки и твики
Интеграция с ОСИзолированная среда (в DOSBox игра живёт «внутри»)Полная интеграция: окно в Windows, копирование/вставка, скриншоты, стриминг
Масштабирование и интерфейсТребует отдельных настроек масштабирования; интерфейс ОС остаётся «старым» по ощущениямГибкое масштабирование (Integer Scale, Aspect Ratio), современные окна, поддержка высоких разрешений без потери чёткости пикселей
Сетевая игра и лаунчерыЧасто несовместимы или требуют сложной настройкиВозможна, если нет античита; можно использовать с современными лаунчерами (при прямом запуске .exe)

DxWnd против ремастеров: цель и подход

Ремастер — это переработанная версия игры: улучшенные текстуры, модели, интерфейс, часто — новый движок или серьёзные правки кода. Цель ремастера — сделать старую игру привлекательной для новой аудитории и удобной на современном железе.

DxWnd не меняет игру вообще. Его цель — запустить оригинал «как есть», сохранив все визуальные и игровые особенности, включая пиксель‑арт, шрифты, анимации и даже мелкие баги, которые стали частью атмосферы.

В чём принципиальная разница

  • Вмешательство в контент. Ремастеры активно меняют графику, иногда — геймплей и интерфейс. DxWnd не трогает файлы игры и не заменяет ресурсы.
  • Аутентичность. Для фанатов оригинала DxWnd ценен тем, что сохраняет «тот самый» вид игры. Ремастер может нравиться новым игрокам, но вызывать споры среди ветеранов серии.
  • Гибкость. С ремастером вы получаете только то, что сделали разработчики. С DxWnd вы сами решаете, насколько «современной» будет подача: можно оставить пиксели чёткими, можно добавить чёрные полосы, можно ограничить FPS, чтобы сохранить оригинальный темп.

Практические примеры: когда что выбирать

Когда лучше DOSBox

  • Игра изначально под DOS (например, Doom 1993, WarCraft: Orcs & Humans, ранние квесты Sierra).
  • Проект зависит от DOS‑специфичных компонентов (таймеры, прямой доступ к видеопамяти, специфические звуковые карты).
  • Вы хотите максимальной совместимости без ручной настройки профилей.

Когда лучше PCem

  • Нужна полная аутентичность «железа» (например, для тестов, ретро‑разработки, коллекционирования).
  • Игра ведёт себя по‑разному на разных конфигурациях старого ПК, и вам важно воспроизвести конкретную сборку.
  • Вы занимаетесь сохранением и демонстрацией истории ПК в мельчайших деталях.

Когда лучше DxWnd

  • Это Windows‑игра на DirectX эпохи Win95–XP (например, Heroes of Might and Magic II/III, Diablo, StarCraft, старые шутеры и RTS).
  • Вам важно сохранить оригинальный вид, но при этом играть в окне, делать скриншоты, стримить, пользоваться современным интерфейсом.
  • Игра ломается на современных ОС из‑за несовместимости DirectX, палитры, курсора, звука или многоядерности.
  • Нужен быстрый и лёгкий способ запуска без потери производительности из‑за эмуляции CPU.

Важные нюансы и ограничения

  1. Архитектура. DxWnd лучше всего работает с 32‑битными играми. 64‑битные могут работать нестабильно — это следствие механизма хуков и особенностей работы с API.
  2. Античиты и DRM. DxWnd несовместим с античитами и некоторыми системами защиты. Не стоит пытаться использовать его для онлайн‑игр с защитой — это приведёт к вылетам или блокировке аккаунта.
  3. Не заменяет эмуляцию DOS. Если игра требует DOS‑окружения, DxWnd её не запустит. Здесь нужен DOSBox или нативная DOS‑версия.
  4. Тонкая настройка. В отличие от «запустил и играешь» в простом ремастере, DxWnd требует создания профиля и иногда подбора твиков. Но взамен вы получаете полный контроль над тем, как именно игра будет работать.

Почему это не «конкуренция», а инструменты для разных задач

В арсенале ретро‑геймера DxWnd, DOSBox, PCem и ремастеры могут спокойно сосуществовать, потому что закрывают разные потребности:

  • DOSBox — для DOS‑классики.
  • PCem — для глубокой ретро‑аутентичности и экспериментов с «железом».
  • Ремастеры — чтобы познакомить с классикой новую аудиторию или играть с современной графикой.
  • DxWnd — чтобы запустить оригинальные Windows‑игры эпохи DirectX в современной среде и сохранить их первозданный вид.

Именно поэтому DxWnd — не «ещё один эмулятор», а специализированный инструмент, который решает узкую, но очень важную задачу: он позволяет старым DirectX‑играм жить в мире Windows 10/11 без потери духа оригинала.

Какие игры лучше всего подходят для DxWnd: 32‑битные проекты эпохи Windows 9x/XP и ограничения для 64‑битных и онлайн‑игр

DxWnd — не универсальный «ключ» ко всем старым играм. У него есть чёткая специализация: он идеально закрывает проблемы совместимости именно для определённого класса проектов. Если понимать эти рамки, можно сразу отсечь заведомо неподходящие варианты и не тратить время на попытки запустить то, что по архитектуре не встанет.


Идеальные кандидаты: 32‑битные игры на DirectX эпохи Windows 95–XP

Лучше всего DxWnd работает с 32‑битными Windows‑играми, которые полагаются на старые версии DirectX (в первую очередь DirectDraw и ранние Direct3D) и рассчитаны на одноядерные процессоры и фиксированные разрешения. Это проекты примерно 1995–2005 годов, когда индустрия массово использовала DirectDraw для 2D и Direct3D 7–8 для 3D.

Почему именно они:

  • DirectDraw. В современных Windows DirectDraw практически отключён, и DxWnd как раз перехватывает эти вызовы и транслирует их в D3D9/GDI.
  • Фиксированные разрешения и палитры. Такие игры часто используют 256‑цветную палитру и ожидают конкретное разрешение (640×480, 800×600). DxWnd умеет корректно конвертировать палитру и масштабировать картинку без «мыла».
  • Однопоточность. Движки тех лет не рассчитаны на многоядерность и могут вылетать из‑за гонок данных. DxWnd решает это через Set affinity to one core и синхронизирующие твики.

Примеры игр, которые отлично работают с DxWnd

  • Пошаговые стратегии и RPG: Heroes of Might and Magic II/III, Disciples II, Age of Wonders.
  • RTS: StarCraft, WarCraft II/III (старые билды), Command & Conquer: Red Alert, Total Annihilation.
  • Шутеры от первого лица: Half‑Life, Duke Nukem 3D (в некоторых сборках), ранние Unreal и Quake (если сборка на DirectDraw/D3D7).
  • 2D‑платформеры и экшен‑игры: классические проекты конца 90‑х, где графика — это спрайты и фиксированные палитры.
  • Квесты и point‑and‑click: многие игры на движках того времени, где критично правильное отображение шрифтов и окон (GDI).

Для этих проектов DxWnd закрывает самые частые проблемы: чёрный экран при старте, неправильные цвета, мерцание, рассинхрон звука, «убегающий» курсор и слишком быстрый геймплей.


Ограничения для 64‑битных игр

DxWnd в первую очередь ориентирован на 32‑битные процессы. С 64‑битными играми всё сложнее, и результат часто нестабилен.

Причины ограничений:

  • Механизм хуков. DxWnd внедряет свои DLL и перехватывает API в адресном пространстве процесса. Для 64‑битного процесса нужны 64‑битные хуки, а проект исторически развивался как 32‑битный инструмент. Даже если игра имеет 64‑битный лаунчер, часто требуется запускать именно 32‑битный .exe (если он есть в папке).
  • Разная структура API и выравнивание памяти. То, что стабильно работает в 32‑битной среде, в 64‑битной может вызывать конфликты и вылеты.
  • Отсутствие готовых профилей. Сообщество делает профили в первую очередь под 32‑битные версии, потому что они чаще ломаются на современных ОС.

Практический совет: если у игры есть и 32‑, и 64‑битная версия — для DxWnd почти всегда лучше брать 32‑битную. Если 32‑битного исполняемого файла нет, DxWnd может либо не запуститься, либо работать нестабильно.


Онлайн‑игры, мультиплеер и проекты с античитами

Использовать DxWnd для онлайн‑игр и мультиплеера не рекомендуется.

Почему это плохая идея:

  • Античиты. Современные античит‑системы сканируют процессы на наличие сторонних DLL, хуков и модификаций памяти. DxWnd по своей сути делает именно это: внедряет DLL и перехватывает вызовы. Результат — вылет при запуске или бан аккаунта.
  • DRM и защита запуска. Некоторые лаунчеры и DRM‑системы блокируют запуск, если обнаруживают вмешательство в процесс.
  • Несовместимость логики. Даже если игра запустится, сетевой код может вести себя непредсказуемо из‑за изменённой синхронизации и таймеров.

DxWnd создавался для одиночных проектов, где цель — сохранить оригинал и вернуть ему работоспособность, а не для соревновательной среды, где важна чистота клиента.


Другие важные ограничения и нюансы

  • Игры под DOS. DxWnd не умеет запускать DOS‑игры. Для них нужен DOSBox или нативная DOS‑версия. DxWnd — это про Windows‑игры на DirectX, а не про эмуляцию DOS‑среды.
  • Проекты, завязанные на специфическое железо. Если игра зависит от прямого доступа к видеопамяти, конкретным звуковым картам или нестандартным драйверам, DxWnd вряд ли поможет.
  • Современные порты и ремастеры. Новые версии старых игр часто уже содержат собственные механизмы совместимости и могут конфликтовать с хуками DxWnd.
  • Игры с защитой от модификаций. Любые проекты с жёсткой проверкой целостности файлов и процесса будут конфликтовать с DxWnd, даже в одиночном режиме.

Как быстро определить, подойдёт ли игра для DxWnd

Используйте этот короткий чек‑лист:

  1. Проверьте разрядность. Есть ли в папке с игрой 32‑битный .exe? Если да — шансы высокие.
  2. Определите движок и API. Игра использует DirectDraw или ранний Direct3D (7–8)? Это хороший признак.
  3. Одиночная или онлайн. Только одиночная, без античита и DRM.
  4. Год выпуска. Лучше всего работают проекты 1995–2005 годов.
  5. Формат графики. Если это 2D со спрайтами, фиксированными палитрами и разрешениями — DxWnd почти наверняка поможет.

Если все пункты совпадают — DxWnd будет отличным решением. Если хотя бы один не выполняется (например, это 64‑битный онлайн‑проект с античитом), лучше не тратить время: либо ищите другой способ запуска, либо смиритесь с тем, что эта игра не входит в целевую нишу DxWnd.


Практический пример: Heroes of Might and Magic III

Это классический пример идеальной игры для DxWnd:

  • 32‑битный Windows‑проект.
  • Опирается на DirectDraw и GDI (шрифты, окна, палитра).
  • Одиночная, без античита.
  • Типичные проблемы на Windows 10/11: чёрный экран, мерцание, неправильные цвета, слишком быстрый ход игры.

С профилем DxWnd эти проблемы решаются в несколько кликов: хуки DirectDraw/GDI, Colour Convert, Limit FPS, Set affinity to one core.


Вывод

DxWnd — это узкоспециализированный инструмент для 32‑битных одиночных Windows‑игр эпохи DirectX 1–7 и DirectDraw, он так же способен вытягивать и более высокие версии DirectX 8-11, графические движки OpenGL, GDI, Direct3D. Он идеально подходит, чтобы вернуть к жизни классику 90‑х и начала 2000‑х, сохранив её оригинальный вид. При этом он не предназначен для DOS‑игр, 64‑битных проектов и онлайн‑мультиплеера с античитами. Понимание этих границ экономит время и избавляет от разочарований: вместо попыток «заставить работать» неподходящее, вы сразу берёте то, для чего DxWnd действительно создан.

Глава 2. Подготовка к работе

Обязательные предварительные шаги: бэкап dxwnd.ini, отключение оверлеев (Steam, Discord и др.)

Прежде чем добавлять первый твик, включать хуки или создавать профиль под любимую классику, нужно подготовить среду запуска. Эти шаги кажутся мелочами, но именно они экономят часы отладки и спасают от ситуации «раньше работало, а теперь ничего не запускается».


Шаг 1. Бэкап файла dxwnd.ini: ваша «кнопка отмены»

Все профили, настройки и твики DxWnd хранит в одном файле — dxwnd.ini, который лежит в папке с программой. Это не реестр Windows и не скрытая папка AppData: всё в одном открытом INI‑файле.

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

Как сделать правильный бэкап

  1. Найдите файл. В папке с DxWnd (куда вы распаковали архив) найдите dxwnd.ini.
  2. Скопируйте его. Создайте копию и назовите её понятно, например dxwnd_backup_YYYY-MM-DD.ini (например, dxwnd_backup_2024-10-25.ini).
  3. Держите копию отдельно. Лучше всего положить её в ту же папку, но с другим именем, либо в подпапку backups.

Что делать, если «всё сломалось»

Если после серии экспериментов игра не стартует, а логи показывают странные ошибки:

  1. Закройте DxWnd.
  2. Удалите (или переименуйте) текущий dxwnd.ini.
  3. Скопируйте бэкап обратно в папку и переименуйте в dxwnd.ini.
  4. Запустите DxWnd — вы получите полностью рабочую конфигурацию «как до экспериментов».

Это занимает 30 секунд и снимает главный страх новичка: «я всё испорчу».

Совет: делайте новый бэкап каждый раз перед серьёзными изменениями (добавление 5+ твиков, смена рендерера, включение новых хуков).


Шаг 2. Отключение оверлеев: Steam, Discord, GeForce Experience и другие

Оверлеи — это поверх‑игровые панели, которые добавляют чаты, скриншоты, статистику и стриминг прямо в игру. Для современных проектов это удобно, но для старых игр в связке с DxWnd они становятся источником вылетов, чёрного экрана и проблем со звуком.

Почему оверлеи конфликтуют с DxWnd

  • Внедрение DLL. И DxWnd, и оверлеи внедряют свои библиотеки в процесс игры. Когда в одном процессе оказываются два таких «перехватчика», возможны конфликты инициализации, вылеты и ошибки видеопамяти.
  • Перехват ввода и окна. Оверлеи могут перехватывать сообщения окна (WM_*), менять фокус, скрывать курсор или менять режим отображения — а это ломает логику старых игр, которая и так балансирует на грани совместимости.
  • Аудио‑стек. Некоторые оверлеи перехватывают аудиопоток и применяют эффекты (эквалайзер, шумоподавление). Это ломает старые аудио‑движки (AIL, MCI, WaveOut), вызывая треск, тишину или рассинхрон.

Какие оверлеи отключать

ОверлейГде отключитьЧто даёт отключение
Steam OverlayБиблиотека Steam → ПКМ по игре → Свойства → снять галочку «Включить оверлей Steam в игре»Убирает конфликты внедрения DLL и захвата окна
Discord OverlayDiscord → Настройки → «Игровой оверлей» → выключитьИсключает перехват ввода и сообщений окна
GeForce Experience / NVIDIA App (ShadowPlay)NVIDIA App → Настройки → оверлей / записи → отключитьУбирает внедрение DLL и аудио‑перехват
Rivatuner / MSI Afterburner (On‑Screen Display)Настройки RTSS/Afterburner → отключить OSDИсключает захват GDI/DX и конфликты отрисовки

Важно: отключать нужно именно оверлей/OSD, а не просто сворачивать его. Даже «невидимый» оверлей может внедрять DLL и перехватывать вызовы.


Дополнительные предварительные действия, которые сильно упростят жизнь

Включите DirectPlay (если у вас Windows 10/11)

Некоторые старые игры используют DirectPlay для звука и сетевых функций. В современных ОС он отключён по умолчанию.

  1. Нажмите Win + R, введите optionalfeatures и нажмите Enter.
  2. В списке компонентов найдите «Компоненты прежних версий» → раскройте и поставьте галочку на DirectPlay.
  3. Нажмите «ОК» и дождитесь установки.

Это не влияет на каждую игру, но спасает от странных ошибок инициализации и проблем со звуком в проектах конца 90‑х.

Проверьте формат аудио в Windows

Старые аудио‑движки чувствительны к формату по умолчанию.

  1. Откройте параметры звука Windows → выберите устройство вывода → «Свойства устройства».
  2. Установите формат по умолчанию: 16 бит, 44100 Гц.
  3. В «Пространстве звука» выберите «Стерео».
  4. В «Улучшениях» снимите все галочки (эквалайзеры, басы, виртуализация и т. п.).

Это снижает риск треска, пропадания звука и рассинхронизации в старых играх.

Запускайте DxWnd от имени администратора

Механизм API‑hooking требует повышенных прав, чтобы внедрить хуки в процесс игры. Если запустить DxWnd обычным пользователем:

  • хуки могут не примениться;
  • игра запустится без исправлений;
  • в логах появятся строки вроде Hook failed или Injection failed.

Самый простой способ — создать ярлык dxwnd.exe на рабочем столе, нажать ПКМ → Свойства → вкладка «Совместимость» → поставить галочку «Запускать от имени администратора».


Порядок действий перед первым запуском

Перед тем как создать первый профиль, пройдите по этому списку:

  • Распаковали DxWnd в удобную папку (без русских букв и пробелов в пути).
  • Сделали бэкап dxwnd.ini с понятной датой в имени.
  • Отключили оверлей Steam для целевой игры (или глобально на время тестов).
  • Отключили Discord Overlay и OSD‑панели (NVIDIA/Rivatuner/Afterburner).
  • Включили компонент DirectPlay в Windows.
  • Выставили формат аудио 16 бит / 44100 Гц, отключили улучшения.
  • Запускаете dxwnd.exe от имени администратора.

Пример: подготовка к запуску Heroes of Might and Magic III

Допустим, вы хотите запустить HoMM III на Windows 11:

  1. Распаковали DxWnd в C:\Tools\DxWnd.
  2. Скопировали dxwnd.inidxwnd_backup_2024-10-25.ini.
  3. В Steam: ПКМ по HoMM III → Свойства → сняли галочку «Оверлей Steam».
  4. В Discord: выключили игровой оверлей.
  5. В Windows: включили DirectPlay через optionalfeatures.
  6. В настройках звука: формат 16 бит/44100 Гц, улучшения отключены.
  7. Запустили dxwnd.exe от администратора.
  8. Создали профиль, добавили базовые хуки и твики.

Теперь, даже если что‑то пойдёт не так, вы сможете откатиться за полминуты, а отсутствие оверлеев снизит риск конфликтов.


Важное правило: меняйте по одному параметру и тестируйте

Даже с бэкапом и отключёнными оверлеями лучше придерживаться принципа «один параметр — один тест»:

  1. Создали минимальный профиль.
  2. Запустили и проверили, стартует ли игра.
  3. Если всё хорошо — добавили один твик или изменили одно разрешение.
  4. Снова протестировали.

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

Важные нюансы для Steam‑игр: прямой .exe, отключение Steam Overlay, античиты

Steam — самая популярная площадка для ретро‑игр, и именно с ней у DxWnd возникает больше всего неочевидных проблем. На первый взгляд кажется: «добавил в DxWnd лаунчер из библиотеки — и готово». Но в реальности такой подход почти всегда приводит к вылетам, чёрному экрану или странным багам. Разберём, как делать правильно и какие подводные камни легко пропустить.


Прямой запуск .exe — никаких лаунчеров и «коробочных» стартеров

В Steam у многих старых игр в папке лежит сразу несколько исполняемых файлов: game.exe, launcher.exe, start.exe, иногда даже steam.exe как точка входа. Для DxWnd годится только тот файл, который напрямую запускает игровой движок.

Почему это критично. Лаунчеры и стартеры часто:

  • сами внедряют DLL и делают предварительные проверки;
  • запускают игру отдельным процессом и передают ему аргументы;
  • проверяют целостность файлов и могут блокировать сторонние хуки.

DxWnd должен перехватывать вызовы именно игрового процесса, а не промежуточного лаунчера. Если вы добавите в профиль лаунчер, хуки сработают на нём, а сама игра запустится уже без них — и вы получите те же проблемы совместимости.

Как найти правильный .exe:

  1. В библиотеке Steam нажмите ПКМ по игре → «Управление» → «Просмотреть локальные файлы».
  2. Откройте папку и ищите файл с названием игры или узнаваемым именем (например, heroes3.exe, starcraft.exe).
  3. Если есть сомнения — проверьте, запускается ли этот файл двойным кликом без Steam. Если да — это и есть нужный вариант.

Тонкий момент: у некоторых игр в Steam есть и 32‑, и 64‑битные версии. Для DxWnd почти всегда лучше брать 32‑битный .exe. Даже если лаунчер 64‑битный, внутри папки часто лежит отдельный 32‑битный бинарник.


Отключение Steam Overlay: не «свернуть», а именно отключить

Многие думают, что достаточно просто не пользоваться оверлеем — но это ошибка. Steam Overlay внедряет свои библиотеки в процесс игры автоматически, даже если вы его не вызываете. Именно это внедрение конфликтует с хуками DxWnd и вызывает самые «плавающие» ошибки.

Правильный способ отключения:

  1. Библиотека Steam → ПКМ по игре → «Свойства».
  2. На вкладке «Общие» снимите галочку «Включить оверлей Steam в игре».
  3. Сохраните. Теперь Steam гарантированно не будет внедрять оверлей в этот процесс.

Чего делать не надо:

  • Не надейтесь на «я просто не буду его вызывать». Он всё равно загружается.
  • Не пытайтесь отключать оверлей глобально ради одной игры — лучше точечно для конкретного тайтла.

Античиты: когда DxWnd гарантированно не сработает

Это самый частый источник разочарования: пользователь делает всё по инструкции, а игра либо не запускается, либо вылетает через 10 секунд. Причина почти всегда в античите.

Как понять, что проблема в защите:

  • Игра сразу закрывается без ошибок.
  • В логах DxWnd пусто или есть Hook failed сразу при старте.
  • Иногда появляется системное сообщение о блокировке стороннего кода.

Какие механизмы ломают DxWnd:

  • Внедрения DLL. DxWnd по своей сути внедряет DLL для хуков. Античиты детектируют это как подозрительную активность.
  • Проверки целостности процесса. Античиты сканируют память и модули процесса. Хуки DxWnd меняют структуру вызовов — это уже повод для блокировки.
  • Драйверные компоненты. Некоторые античиты работают на уровне ядра и блокируют любые попытки перехвата API.

Практическое правило: если в описании игры или на странице магазина есть слова «античит», «VAC», «Easy Anti‑Cheat», «BattlEye» — DxWnd использовать не стоит. Это касается даже одиночных режимов, если защита включена глобально.

Важное исключение. У некоторых игр античит работает только в мультиплеере. Если вы нашли инструкцию, где подтверждено, что одиночный режим не защищён, можно пробовать. Но всегда проверяйте: одиночная кампания должна запускаться без Steam‑античита.


Дополнительные нюансы, о которых редко говорят

Аргументы командной строки и параметры запуска Steam

Если вы раньше прописывали в Steam параметры запуска (например, -w, -nofbo, -windowed), они не переносятся в DxWnd автоматически. DxWnd игнорирует настройки Steam и использует только то, что вы укажете в поле Launch parameters внутри профиля.

Что делать:

  1. Запомните или скопируйте свои параметры запуска из Steam.
  2. В DxWnd в профиле игры добавьте их в поле Launch parameters.
  3. Протестируйте: иногда старые параметры конфликтуют с новыми режимами окна DxWnd.

Обновления Steam и «перехват» пути

Steam периодически обновляет игры и может менять структуру папок или добавлять новые лаунчеры. Бывает так: вы создали рабочий профиль, а после обновления игра перестала запускаться. Причина — путь к .exe стал неверным либо сам файл был заменён на новый лаунчер.

Профилактика:

  • После крупных обновлений Steam проверяйте, что путь в профиле DxWnd всё ещё указывает на правильный .exe.
  • Если игра обновилась и стала 64‑битной, а 32‑битного бинарника больше нет — DxWnd может перестать быть оптимальным решением.

Региональные и DLC‑версии

У некоторых классических игр в Steam есть несколько изданий (стандартное, GOTY, с DLC). Они могут иметь разные исполняемые файлы или разные наборы библиотек. Профиль, который работал на стандартной версии, может не сработать на GOTY‑издании.

Вывод: профиль DxWnd всегда «привязан» к конкретной сборке игры. Если вы перешли на другую версию — создайте новый профиль и протестируйте.


Практический пример: подготовка StarCraft для DxWnd

Допустим, у вас Steam‑версия StarCraft:

  1. Находим правильный .exe. В папке игры ищем starcraft.exe (32‑битный). Не используем launcher.exe или любые другие стартеры.
  2. Отключаем оверлей. В свойствах игры в Steam снимаем галочку «Включить оверлей Steam в игре».
  3. Проверяем античит. StarCraft (классический) не имеет античита — можно использовать DxWnd безопасно.
  4. Переносим параметры. Если раньше в Steam вы использовали -w для оконного режима, в DxWnd это не нужно: режим окна настраивается на вкладках Main/Window. Убираем -w из Launch parameters, чтобы не было конфликтов.
  5. Создаём профиль. Указываем путь к starcraft.exe, рабочую директорию (обычно та же папка), и начинаем с минимального набора хуков (DirectDraw, GDI).

Теперь DxWnd перехватывает именно игровой процесс, без лишних слоёв и защит, и может корректно исправить проблемы совместимости.


Порядок действий для Steam‑игр

  • В профиле DxWnd указан прямой .exe игрового движка, а не лаунчер.
  • Steam Overlay отключён в свойствах игры (не просто «не используется»).
  • Игра не использует античит (VAC, Easy Anti‑Cheat, BattlEye и аналоги).
  • Параметры запуска из Steam перенесены или переопределены в DxWnd (и не конфликтуют с его настройками).
  • После обновлений Steam проверен путь к .exe и актуальность профиля.
  • Учтена версия издания (стандарт, GOTY, DLC): профиль привязан к конкретной сборке.

Работа с логами DxWnd: как включить логирование, где искать dxwnd.log и как читать ошибки

Логи — это главный инструмент диагностики в DxWnd. Без них вы действуете наугад: меняете настройки, запускаете игру, видите чёрный экран и не понимаете, на каком именно этапе всё сломалось. С логами у вас появляется конкретика: «не удалось внедрить хук», «ошибка инициализации DirectDraw», «конфликт твика». В этой статье разберём, как получить эти данные, где их искать и как быстро понять, что пошло не так.


Как включить логирование в DxWnd

Включение логов делается прямо в интерфейсе программы, может быть иным и не сходится как здесь, все зависит от сборки или версии:

  1. Откройте DxWnd и зайдите на вкладку Debug\Logs.
  2. Поставьте галочку Enable logging (включение журналирования).
  3. В поле Log level выберите уровень детализации:
    • Basic — минимум: факт запуска, основные хуки, явные ошибки. Подходит для быстрой проверки.
    • Verbose — подробно: каждый шаг инициализации, все применяемые твики, сообщения о каждом хуке. Лучший вариант для поиска проблем.
    • Debug (если доступен) — максимальная детализация для продвинутой отладки.
  4. При необходимости укажите путь к файлу лога (по умолчанию это dxwnd.log в папке с программой).
  5. Сохраните профиль и попробуйте запустить игру.

Важно: логирование создаёт нагрузку на диск и может немного замедлить старт игры. Включайте его только на время диагностики, а не «навсегда».


Где искать файл dxwnd.log

Файл dxwnd.log всегда лежит в той же папке, где находится dxwnd.exe. Никаких скрытых директорий или AppData: это обычный текстовый файл, который можно открыть в Блокноте, Notepad++ или любом редакторе кода.

Если вы не видите файл:

  • Проверьте, что Enable logging включён.
  • Убедитесь, что вы запускаете именно тот dxwnd.exe, в папке которого ищете лог (если у вас несколько копий DxWnd, у каждой будет свой лог).
  • Попробуйте запустить игру один раз и сразу закрыть DxWnd — файл должен появиться.

Как читать логи: на что смотреть в первую очередь

Когда вы открыли dxwnd.log, не нужно читать его сверху донизу. Используйте стратегию «от конца к началу»: самые важные строки — внизу, там, где процесс остановился или упал.

Ключевые маркеры ошибок

Ищите эти фразы и понимайте, что они означают:

  • Hook failed — DxWnd не смог внедрить хук в процесс. Частые причины: запуск без прав администратора, конфликт с оверлеями/античитами, игра уже защищена DRM.
  • DDraw init error / DirectDraw initialization failed — не удалось инициализировать DirectDraw. Это частая причина чёрного экрана. Решение: проверить хуки DirectDraw/GDI, включить Colour Convert, попробовать понизить разрешение.
  • Access violation / Exception — ошибка доступа к памяти. Часто возникает из‑за конфликтующих твиков или несовместимых настроек видео.
  • Tweak ignored / Unknown tweak prefix — вы добавили твик с опечаткой или несуществующим префиксом. Проверьте синтаксис: shim:, win:, sound:, ddraw:, input:, patch:, tweak:.
  • Module not found / DLL load failed — не найдена нужная библиотека. Может быть связано с обновлениями Windows, антивирусом или повреждёнными файлами игры.

Пример разбора фрагмента лога

[12:34:05] Starting process: C:\Games\Heroes3\heroes3.exe
[12:34:06] Hooking DirectDraw: SUCCESS
[12:34:06] Hooking GDI: SUCCESS
[12:34:07] Applying tweak: shim:EmulateWin95
[12:34:08] DDraw init error: surface creation failed
[12:34:09] Hook failed: WinMM (access denied)
[12:34:10] Process terminated

Что из этого понятно:

  • Хуки DirectDraw и GDI применились.
  • Твик shim:EmulateWin95 был обработан.
  • Главная проблема — DDraw init error, из‑за чего игра не смогла создать поверхность.
  • Дополнительный фактор — Hook failed: WinMM, возможно, из‑за запуска без прав администратора или конфликта с оверлеем.

Что делать: сначала решать проблему с DDraw init error (понизить разрешение, включить GDI, проверить Colour Convert), затем отдельно разбираться с WinMM.


Практические приёмы для быстрого поиска проблемы

  1. Ищите по ключевым словам. В редакторе нажмите Ctrl+F и ищите: error, failed, exception, hook, init.
  2. Сравнивайте два лога. Сделайте лог «минимального профиля» (работает) и лог «с новыми твиками» (не работает). Найдите отличия: какая строка появилась или изменилась.
  3. Смотрите на временные метки. Если ошибка появляется сразу после строки «Starting process», проблема на уровне хуков/прав. Если через 2–3 секунды — проблема в инициализации видео или звука.
  4. Не пытайтесь исправить всё сразу. Устраняйте по одной ошибке за раз. Исправили DDraw init — перезапустите, сделайте новый лог, проверьте, исчезла ли следующая ошибка.

Частые ошибки при работе с логами и как их избежать

  • Запуск DxWnd без прав администратора при включённом логировании. Хуки не применяются, в логе будет много строк Hook failed, но это не «баг DxWnd», а следствие недостаточных прав.
  • Чтение лога от другой копии DxWnd. Если у вас несколько папок с DxWnd (например, «DxWnd_test», «DxWnd_backup»), у каждой свой dxwnd.log. Проверяйте, что смотрите именно тот файл, который относится к запущенной версии.
  • Игнорирование последних строк. Самая важная информация почти всегда в конце файла. Не тратьте время на чтение первых 500 строк, если внизу есть Process terminated с причиной.
  • Попытка интерпретировать каждую строку. Не нужно понимать все технические детали. Достаточно найти 1–2 маркера ошибки и действовать по ним.

Пример рабочего процесса диагностики

Допустим, вы добавили несколько твиков, и игра перестала запускаться:

  1. Включаете Debug → Enable logging = ON, Log level = Verbose.
  2. Запускаете профиль, ждёте вылета или чёрного экрана, закрываете DxWnd.
  3. Открываете dxwnd.log и ищете вниз до последних 15–20 строк.
  4. Находите строку вроде Tweak ignored: sound:FixAILBugX (опечатка в названии твика).
  5. Исправляете название твика, сохраняете профиль, запускаете снова.
  6. Если ошибка ушла, но появилась другая (например, DDraw init error), действуете дальше: понижаете разрешение, включаете Use GDI и снова смотрите лог.

Такой цикл «лог → гипотеза → изменение → проверка» позволяет системно устранять проблемы, а не перебирать настройки случайным образом.


Что делать, если лог пустой или не создаётся

Если после запуска игры файла dxwnd.log нет или он пустой:

  • Проверьте, что Enable logging включён именно в том профиле, который вы запускаете. Иногда пользователи включают логирование в одном профиле, а запускают другой.
  • Убедитесь, что папка не защищена от записи. Если DxWnd распакован в Program Files или другую защищённую директорию, он не сможет создать лог. Перенесите его в C:\Tools\DxWnd или аналогичную папку без ограничений.
  • Проверьте антивирус. Некоторые антивирусы блокируют создание или запись в файлы логов. Временно отключите защиту для папки DxWnd или добавьте её в исключения.
  • Запускайте от имени администратора. Без этого DxWnd может не иметь прав на запись лога.

Важное правило: логи — это не «навсегда», а «для диагностики»

Держите логирование включённым только тогда, когда есть конкретная проблема. Как только вы нашли и устранили ошибку, верните Log level в Basic или вообще выключите Enable logging. Это сохранит производительность и не будет засорять диск лишними файлами.

Глава 3. Панель управления, интерфейс и все вкладки DxWnd

Панель управления: File, Edit, Options, Tools, View

Панель управления DxWnd: File, Edit, Options, Tools, View

Раздел File — это базовый блок управления работой программы: через него запускают игры, сохраняют настройки, очищают логи и управляют состоянием «перехвата» (hook) для корректной работы старых приложений на современных ОС.

Разберём каждый пункт:

  • Run — запускает игру или приложение, для которого уже настроены параметры в DxWnd. Это основная кнопка для старта: после неё окно программы может свернуться или остаться на фоне, а игра откроется с применёнными настройками (например, с нужным разрешением или режимом окна).
  • Save — сохраняет текущие настройки профиля (разрешение, параметры окна, опции совместимости и т. д.), чтобы не потерять их при закрытии программы или следующем запуске.
  • Import… — позволяет загрузить ранее сохранённые настройки (профиль) из файла. Удобно, если вы используете готовые конфигурации для разных игр или переносите настройки на другой компьютер.
  • Clear all logs — удаляет все журналы (логи) работы DxWnd. Логи нужны для поиска ошибок: если игра не запускается, по ним можно понять, в чём проблема. Когда ошибок нет или они уже не нужны, логи можно очистить, чтобы не занимать место.
  • Hook → Start / Stop — включает или отключает «перехват» вызовов DirectX. Это ключевая функция DxWnd: она подменяет некоторые команды игры, чтобы та корректно работала на современном железе и ОС (например, запускалась в окне, а не на весь экран, или использовала нужное разрешение). Обычно Hook включают перед запуском игры и оставляют включённым, пока она работает.
  • Move to Tray — сворачивает окно DxWnd в системный трей (возле часов в углу экрана). Удобно, чтобы программа не мешала во время игры, но оставалась активной.
  • eXit — полностью закрывает DxWnd. Важно: если игра ещё запущена, лучше сначала закрыть её, а потом выходить из DxWnd, чтобы избежать ошибок.
  • Open config… — открывает папку с файлами конфигурации DxWnd. Здесь хранятся все профили и настройки — можно вручную редактировать файлы или делать их резервные копии.
  • Explore DxWnd — открывает в проводнике папку, куда установлена сама программа DxWnd. Полезно, если нужно проверить версию, скопировать файлы или посмотреть документацию.

Раздел Edit нужен для управления списком игр и приложений, которые вы добавили в программу: через него можно добавлять новые профили, править настройки, менять порядок строк и быстро открывать папки с играми.

Разберём каждый пункт:

  • Move — меняет позицию выбранной игры в списке. Внутри него есть подпункты:
    • Top — поднимает игру на самую первую строку списка;
    • Up — поднимает на одну позицию выше;
    • Down — опускает на одну позицию ниже;
    • Bottom — опускает игру в самый конец списка.
      Это удобно, если вы хотите держать любимые или часто запускаемые игры вверху списка — так их проще находить.
  • Delete — удаляет выбранный профиль (настройки для конкретной игры) из списка. При этом сами файлы игры не удаляются — стираются только настройки DxWnd для неё.
  • Modify — открывает окно редактирования для выбранного профиля. Здесь можно поменять разрешение экрана, режим окна, параметры совместимости и другие настройки, которые влияют на запуск игры.
  • Add — добавляет в список новый профиль. При выборе этого пункта программа попросит указать путь к исполняемому файлу игры (обычно это .exe), после чего откроется окно для настройки параметров под эту игру.
  • Explore — открывает в проводнике папку, где лежит исполняемый файл выбранной игры. Удобно, если нужно проверить, тот ли файл добавлен в DxWnd, или вручную поправить что‑то в папке с игрой.
  • Log — работает с журналом ошибок для конкретной игры. Внутри могут быть опции вроде просмотра или очистки лога: по нему можно понять, почему игра не запускается или работает некорректно.

    В нём есть два пункта:

    • View — открывает текстовый файл с логом (журналом) для выбранной игры. В нём программа пишет, какие действия выполняла при запуске, и фиксирует ошибки: например, «не найден файл», «несовместимый режим» и т. п. Это помогает быстро найти причину сбоя.
    • Delete — удаляет лог выбранной игры. Удобно, если ошибок уже нет, файл стал большим или вы хотите начать «с чистого листа», чтобы в новом логе были только свежие данные.
  • Sort programs list — сортирует весь список игр (например, по алфавиту). Помогает быстро навести порядок, если вы добавили много профилей и хотите их упорядочить.

Раздел Options отвечает за глобальные параметры программы — те, что влияют на работу всех игр сразу, а не на одну конкретную. Здесь настраивают «базу», чтобы потом не повторять одни и те же действия для каждого профиля.

Разберём каждый пункт простым языком:

  • Extended mode — включает расширенный режим интерфейса. В нём в окнах настройки появляются дополнительные опции и тонкие параметры, которые в обычном режиме скрыты. Это нужно, если стандартных настроек не хватает и требуется более точная подстройка под конкретную игру или систему.
  • Global settings — открывает окно с общими настройками DxWnd. Тут задают параметры, которые по умолчанию будут применяться ко всем новым профилям: например, стандартное разрешение экрана, режим окна, базовые опции совместимости. Если вы часто запускаете старые игры в одном и том же режиме, здесь можно задать эти значения «раз и навсегда».
  • Startup settings — настраивает поведение DxWnd при запуске самой программы. Здесь можно указать, например, должна ли программа сразу сворачиваться в трей, автоматически включать Hook, загружать определённый профиль или открывать окно с последними использованными настройками. Это экономит время: программа будет готова к работе сразу после старта, без лишних кликов.

Раздел Tools содержит вспомогательные инструменты для тонкой настройки и диагностики — они помогают решать специфические проблемы с запуском старых игр и управлять низкоуровневыми параметрами системы. Разберём пункты:

  • Window — группа опций для управления окном игры, здесь можно принудительно свернуть, развернуть, закрыть окно или подсветить его среди других — это полезно, если игра «зависла» в фоне или её не видно на экране. Обратите внимание: команды Pause и Resume работают только при активном процессе — если игра ещё не запущена или уже закрыта, эти пункты будут неактивны. А Kill стоит применять осторожно: прогресс, не сохранённый вручную, будет потерян.
    Внутри него есть подпункты:
    • Minimize — сворачивает окно DxWnd в панель задач, чтобы временно убрать утилиту с экрана и не перекрывать интерфейс игры или другие окна.
    • Restore — возвращает окно DxWnd к исходному размеру, если оно было развёрнуто на весь экран или, наоборот, свёрнуто до минимального состояния; полезно, если интерфейс «уехал» за границы видимой области.
    • Close — полностью закрывает программу DxWnd; при этом если игра запущена через DxWnd, её поведение зависит от настроек профиля — она может либо продолжить работу, либо завершиться вместе с утилитой.
    • Highlight — выделяет окно DxWnd поверх остальных окон (делает его «поверх всех»), чтобы оно не скрывалось за игрой или другими приложениями; удобно, когда нужно быстро сверить настройки или внести правки, не теряя окно из виду.

      Эти пункты не меняют настройки игры и не влияют на её отображение — они управляют только видимостью и расположением самого окна DxWnd. Если скажете, какой из этих пунктов вызывает вопрос по поведению (например, «после Close игра тоже закрывается»), подскажу нюансы.

  • Process — работает с процессом запущенной игры. Здесь можно, например, принудительно завершить процесс или изменить его приоритет, если игра тормозит или не отвечает. 
    И так, внутри него есть подпункты:
    • Pause — приостанавливает выполнение процесса игры. Кадры перестают отрисовываться, звук замирает, но игра не закрывается и не сбрасывает состояние: это удобно, если нужно отойти на минуту и «заморозить» момент.
    • Resume — возобновляет работу ранее приостановленного процесса. После этой команды игра продолжает с того же кадра и в том же состоянии, где была поставлена на паузу.
    • Kill — принудительно завершает процесс игры. Это аналог «Снять задачу» в Диспетчере задач, но вызывается прямо из DXWnd. Используйте, если игра не отвечает и не закрывается обычным способом.

      Обратите внимание: команды Pause и Resume работают только при активном процессе — если игра ещё не запущена или уже закрыта, эти пункты будут неактивны. А Kill стоит применять осторожно: прогресс, не сохранённый вручную, будет потерян

  • Desktop — настройки рабочего стола, связанные с отображением игры. Может включать опции вроде фиксации разрешения рабочего стола на время игры или отключения эффектов Windows, чтобы снизить нагрузку и избежать конфликтов.
    Пункты меню Tools → Desktop → Color Depth в программе DxWnd. Эта настройка управляет глубиной цвета (количеством бит на пиксель) для запускаемой игры — она нужна, чтобы старые игры, рассчитанные на низкое качество цветопередачи, корректно отображались на современных мониторах.

    Разберём, что означают варианты в выпадающем списке:

    • 8 BPP (8 бит на пиксель) — поддерживает до 256 цветов. Подходит для очень старых игр (например, из эпохи DOS или ранних Windows), где графика изначально создавалась под такую палитру. При выборе этого режима часть оттенков может «схлопнуться» в ближайшие доступные цвета, но игра будет работать без графических артефактов.
    • 16 BPP (16 бит на пиксель) — до 65 536 цветов. Часто используется для игр середины 90‑х — начала 2000‑х: баланс между совместимостью и качеством картинки. Некоторые игры требуют именно этот режим, иначе возникают проблемы с прозрачностью или спецэффектами.
    • 24 BPP (24 бита на пиксель) — около 16,7 млн цветов. Стандартный режим для большинства современных систем и многих старых игр, адаптированных под новые ОС. Даёт максимально «чистую» картинку без искажений палитры.
    • 32 BPP (32 бита на пиксель) — то же количество цветов, что и 24 BPP, но с дополнительным альфа‑каналом (прозрачностью). Нужен для игр, где активно используются полупрозрачные эффекты, тени или интерфейс с прозрачными элементами.

    Как выбрать нужный вариант: если игра при запуске показывает «полосатую» картинку, странные цвета или не отображает полупрозрачные элементы — попробуйте перебрать эти режимы. Часто проблема решается переходом с 32 BPP на 16 BPP или наоборот, в зависимости от того, как движок игры обрабатывает цветовые буферы.
    Подменю Taskbar с опциями Hide и Show. Это инструменты для управления отображением кнопки игры на панели задач Windows.

    Разберём, что делает каждый пункт:

    • Hide — скрывает кнопку запущенной игры с панели задач. Полезно, если вы хотите, чтобы игра не мешала в списке открытых приложений, либо если движок игры некорректно обрабатывает кнопку на панели задач (например, она «зависает» или не реагирует на клики).
    • Show — возвращает кнопку игры на панель задач. Используйте эту опцию, если нужно снова видеть игру в списке приложений, переключаться на неё через Alt+Tab или закрепить её на панели задач.

    Важно: эти настройки работают только для активного процесса игры — если игра не запущена, пункты могут быть неактивны. Также учтите, что скрытие кнопки не сворачивает и не закрывает игру: она продолжает работать в обычном режиме, просто не отображается на панели задач.

  • Recover — это набор инструментов для восстановления корректного состояния системы после проблемного запуска старой игры. Такие сбои часто проявляются как «зависшее» разрешение экрана, пропавшие цвета, некорректные курсоры или «залипшие» системные настройки, которые игра не сбросила при закрытии.

    Разберём каждый пункт:

    • Screen mode — возвращает исходное разрешение и режим экрана Windows. Если после закрытия игры рабочий стол остался в низком разрешении (например, 800×600) или с неправильной частотой обновления, эта команда принудительно переключает систему на нативное разрешение монитора.
    • System colors — восстанавливает стандартную цветовую схему Windows. Старые игры нередко «замораживают» палитру в 256‑цветном режиме, из‑за чего интерфейс ОС выглядит блекло или искажённо; эта опция сбрасывает принудительную палитру на обычную 32‑битную.
    • Gamma ramp — сбрасывает таблицу гамма‑коррекции. Некоторые игры напрямую управляют яркостью экрана через гамма‑рампы и забывают вернуть исходные значения при выходе — в результате всё в Windows выглядит слишком тёмным или, наоборот, «выбеленным».
    • System cursors — возвращает стандартные курсоры Windows. Старые игры могут подменять системные указатели на собственные (часто пиксельные и плохо видимые) и не восстанавливать их после завершения — эта команда принудительно возвращает привычные курсоры ОС.

    Практический совет: если после запуска игры через DxWnd интерфейс Windows выглядит «сломанным» (неправильное разрешение, тусклые цвета, странные курсоры), откройте Tools → Recover и последовательно примените все пункты — это гарантированно вернёт систему в нормальное состояние. 

  • Gamma control — управление яркостью и гаммой экрана. Старые игры часто некорректно отображают цвета на современных мониторах: эта опция позволяет вручную подстроить гамму, чтобы картинка выглядела «как в оригинале».
  • Clear Compatibility flags — сбрасывает флаги совместимости Windows для исполняемого файла игры. Иногда система применяет к .exe-файлу автоматические настройки совместимости, которые конфликтуют с DxWnd; эта команда убирает их, чтобы DxWnd мог управлять запуском без помех.
  • Run “blacker” — запускает вспомогательную утилиту «blacker», которая затемняет экран или управляет переходами между полноэкранным и оконным режимом. Это нужно для корректной работы старых игр, которые «ломаются» при переключении между окнами или неправильно обрабатывают чёрный экран при старте.
  • Export files — это инструменты для привязки (ассоциации) и отвязки профилей DxWnd к запускаемым играм — они упрощают запуск старых игр с заранее настроенными параметрами без ручного выбора профиля каждый раз.

    Разберём каждый пункт:

    • Associate — привязывает текущий профиль DxWnd к исполняемому файлу игры (.exe). После этого при двойном клике по .exe игра будет автоматически запускаться через DxWnd с сохранёнными настройками (разрешение, режим окна, совместимость и т. д.). Полезно, если вы часто играете и не хотите каждый раз открывать DxWnd и выбирать профиль вручную.
    • Disassociate — отменяет ранее созданную привязку. Используйте этот пункт, если хотите снова запускать игру обычным способом (без DxWnd) или перенастроить её с другим профилем.
  • Import from log… — импортирует параметры из файла журнала (лога). Если ранее был сохранён лог с удачными настройками, эта опция позволяет быстро применить их к новому профилю.
  • Identify monitors — определяет подключённые мониторы и их параметры (разрешение, частоту обновления, ориентацию). Это важно для многомониторных систем: DxWnd сможет правильно выбрать, на каком экране запускать игру и с какими параметрами.

Раздел View управляет тем, какие панели, индикаторы и вспомогательные окна отображаются в интерфейсе программы. Разберём каждый пункт, строго по тому, что видно на изображении:

  • List (с подпунктами Detail и Icon) — переключает вид основного списка профилей. Detail показывает развёрнутую таблицу с параметрами (имя, путь, настройки и т. п.), Icon — компактный вид с иконками, удобный для быстрого визуального поиска.
  • Status — включает или скрывает строку состояния внизу окна, где выводятся краткие подсказки и текущий статус операций (например, «Профиль загружен», «Игра запущена»).
  • Time Slider — отображает или скрывает ползунок времени: он нужен для тонкой настройки задержек и синхронизации при эмуляции старых API, особенно если игра «дёргается» или рассинхронизируется со звуком.
  • 3D effects — показывает/скрывает панель с параметрами 3D‑эффектов (фильтрация текстур, анизотропия и т. п.), которые могут влиять на рендеринг в старых движках.
  • Mouse position — включает оверлей с координатами курсора на экране; полезен для отладки, когда игра неправильно обрабатывает клики или позиционирование мыши.
  • Virtual Joystick — отображает панель виртуального джойстика: позволяет эмулировать ввод с геймпада через клавиатуру/мышь, если игра требует именно джойстик.
  • Palette — показывает панель управления палитрой цветов (актуально для старых 8‑битных игр, где цвета могут отображаться некорректно из‑за различий в драйверах).
  • Desktop — включает элементы управления рабочим столом (например, видимость панели задач или переключение между мониторами) — помогает, если игра «перехватывает» фокус и мешает работе ОС.
  • Shims — отображает панель с «заплатками» (shims) — это программные обёртки для совместимости с устаревшими вызовами API; полезно при диагностике ошибок запуска.
  • Gamma ramp — показывает панель для тонкой настройки гамма‑коррекции через системные таблицы (отличается от простого ползунка гаммы: даёт более точный контроль для старых движков).
  • CD player monitor — включает монитор эмуляции CD‑привода: отображает статус чтения диска, буферизацию и ошибки, если игра обращается к CD‑трекам.
  • CD charger — отображает панель «зарядки» CD‑образов: позволяет вручную подгружать образы или сбрасывать кэш, если игра не видит диск.
  • DxWnd logs — открывает окно с журналом событий DxWnd: там фиксируются ошибки, предупреждения и шаги запуска — это главный инструмент для поиска причин сбоев.

Эти пункты не меняют поведение игры напрямую — они лишь показывают или скрывают вспомогательные панели для диагностики и тонкой настройки. Если скажете, какая проблема возникает (например, «игра не видит CD» или «мышь работает некорректно»), подскажу, какие именно пункты из View стоит включить в первую очередь для поиска причины.

Global Settings: глобальные параметры программы (флаги, оверлей, горячие клавиши, значения по умолчанию, отладка)

DxWnd - Global settings: глобальные параметры программы (флаги, оверлей, горячие клавиши, значения по умолчанию, отладка)

Global Settings

Назначение: управляет глобальным поведением DxWnd (вне зависимости от конкретного профиля игры) — от интерфейса и обработки путей до отладки и экспорта настроек. Позволяет задать «базовые правила» работы программы, чтобы избежать рутины и снизить риск ошибок при массовом создании/редактировании профилей.


Раздел Flags

Назначение: набор бинарных флагов (вкл/выкл), которые определяют ключевые режимы работы DxWnd. Влияют на стабильность, удобство и диагностируемость.

  • Save paths

Детальное описание функции: сохраняет абсолютные пути к исполняемым файлам и папкам профилей между сеансами работы DxWnd.
Как работает: при следующем запуске программа «помнит» последние открытые профили и целевые exe‑файлы, не требуя повторного выбора.
Когда включать: всегда. Это критично для воспроизводимости и избежания «потерянных» профилей при перезапуске.

  • Auto hide GUI

Детальное описание функции: автоматически сворачивает или скрывает главное окно DxWnd сразу после запуска игры.
Как работает: после нажатия «Run» интерфейс исчезает, чтобы не перекрывать игру и не отвлекать.
Когда включать: для «чистого» запуска в уже отлаженных профилях. При тестировании новых настроек — отключать, чтобы видеть сообщения об ошибках и логи.

  • Check for Admin rights

Детальное описание функции: проверяет, запущен ли DxWnd от имени администратора.
Как работает: если права отсутствуют, программа выводит предупреждение или блокирует запуск (в зависимости от версии).
Когда включать: всегда, если вы запускаете игры с DRM, требующие доступа к системным папкам, или игры, которые не видят сохранения без повышенных прав.

  • Name from Folder

Детальное описание функции: автоматически присваивает профилю имя на основе названия папки с игрой.
Как работает: если папка называется C:\Games\StarCraft, профиль получит имя «StarCraft».
Когда включать: с осторожностью. Удобно при массовом создании профилей, но при наличии нескольких копий игр с одинаковыми именами папок возможны конфликты и перезапись профилей. Лучше задавать имена вручную для ясности.

  • Allow multiple hooks

Детальное описание функции: разрешает одновременную активацию нескольких хуков (API‑перехватчиков) в одном профиле.
Как работает: позволяет включать, например, Hook GDI и Hook Direct3D одновременно.
Когда включать: только при глубокой отладке или для специфических игр, где это явно требуется. В большинстве случаев — отключать: избыточные хуки вызывают вылеты и артефакты.

  • Warn on exit

Детальное описание функции: выводит предупреждение при попытке закрыть DxWnd, если есть несохранённые изменения.
Как работает: появляется диалоговое окно с вопросом «Save changes before exiting?».
Когда включать: всегда. Это страховка от случайной потери наработок при закрытии программы.

  • Debug mode

Детальное описание функции: включает расширенный режим отладки для всей программы.
Как работает: в логи пишутся дополнительные события, включая низкоуровневые вызовы API и внутренние состояния.
Когда включать: только при поиске сложных проблем. После диагностики — обязательно отключать, чтобы не раздувать логи и не терять важные сообщения в шуме.

  • 32 bit icons

Детальное описание функции: использует 32‑битные иконки (с альфа‑каналом) для отображения профилей.
Как работает: улучшает качество отображения значков в списке профилей.
Когда включать: если видите «битые» или размытые иконки. В остальных случаях можно оставить выключенным.

  • Gray inactive icons

Детальное описание функции: затемняет иконки неактивных (отключённых) профилей в списке.
Как работает: визуально отличает рабочие профили от тестовых или отключённых.
Когда включать: всегда. Это значительно снижает риск случайного запуска не того профиля, особенно при большом количестве записей.

  • Auto save updates

Детальное описание функции: автоматически сохраняет изменения в профиле при каждом редактировании параметра.
Как работает: не требует ручного нажатия «Save» после каждого изменения.
Когда включать: только если вы уверены в своих действиях. При тонкой настройке лучше отключать и сохранять вручную после проверки работоспособности.

  • Hide on ESC key

Детальное описание функции: сворачивает интерфейс DxWnd при нажатии клавиши Esc.
Как работает: быстрое скрытие окна без использования мыши.
Когда включать: по желанию для удобства. При отладке — отключать, чтобы случайно не свернуть окно и не пропустить важные сообщения.

  • Strip root path

Детальное описание функции: удаляет корневой путь из отображаемых путей к файлам (оставляет только относительную часть).
Как работает: вместо C:\Games\StarCraft\starcraft.exe отображается StarCraft\starcraft.exe.
Когда включать: только если вы уверены, что все профили будут использоваться в одной структуре папок. При отладке — отключать: полные пути помогают быстро найти проблему.

  • Check running targets

Детальное описание функции: проверяет, не запущена ли уже целевая игра перед стартом.
Как работает: если процесс игры уже есть в диспетчере задач, запуск блокируется или выводится предупреждение.
Когда включать: всегда. Это защищает от дублирования процессов и связанных с этим проблем (например, блокировки сохранений).

  • Export relative path

Детальное описание функции: сохраняет пути в профиле как относительные (относительно папки DxWnd).
Как работает: при переносе папки с DxWnd на другой диск или ПК профили остаются рабочими, если структура папок сохранена.
Когда включать: только если вы точно планируете хранить всё в одной структуре папок и переносить целиком. Для мобильности и обмена профилями лучше использовать абсолютные пути (выключено).

  • Export debug flags

Детальное описание функции: экспортирует флаги отладки вместе с профилем при экспорте/импорте.
Как работает: в файл профиля попадают и обычные настройки, и флаги, связанные с отладкой.
Когда включать: только для передачи проблемного профиля на диагностику. При обычном обмене профилями — отключать, чтобы не передавать избыточные данные.


Раздел Overlay

Назначение: управляет отображением оверлея (информационной панели) поверх игры. Полезен для быстрой проверки FPS, статуса хуков и других метрик без выхода из игры.

Блок: Position

Описание блока: определяет, где на экране будет отображаться оверлей.
Режимы:

  • Random — случайная позиция при каждом запуске.
    Когда включать: для быстрой проверки видимости оверлея в разных частях экрана. Не рекомендуется для постоянного использования: может перекрывать важные элементы интерфейса.
  • UpLeft — верхний левый угол.
    Когда включать: стандартный выбор для постоянного мониторинга: не мешает игровому процессу и хорошо читается.
  • UpRight — верхний правый угол.
    Когда включать: если в левом верхнем углу отображаются игровые элементы (мини‑карта, индикаторы).
  • BottomRight — нижний правый угол.
    Когда включать: если в верхней части экрана много информации, а внизу — свободное пространство.
  • BottomLeft — нижний левый угол.
    Когда включать: альтернатива BottomRight, если справа есть важные элементы.
  • Centered — по центру экрана.
    Когда включать: редко. Только для кратковременной проверки или если другие позиции перекрываются. Может мешать игровому процессу.

Блок: Style

Описание блока: определяет стиль отображения оверлея (шрифт, цвет, прозрачность, фон).
Режимы:

  • mode 1 — минималистичный стиль с высокой контрастностью.
    Когда включать: для большинства игр: хорошо читается на любых фонах.
  • mode 2 — стиль с полупрозрачным фоном и более крупным шрифтом.
    Когда включать: если текст плохо читается на тёмных или ярких сценах.
  • mode 3 — стиль с тонкой рамкой и уменьшенным размером текста.
    Когда включать: если оверлей должен быть максимально незаметным, но читаемым.
  • mode 4 — стиль с яркими цветами и увеличенной прозрачностью.
    Когда включать: для быстрого обнаружения оверлея на сложных фонах или при тестировании.

Дополнительная функция: Activate Wine debug

Назначение: включает отладку Wine (актуально для Linux‑версий DxWnd).
Как работает: активирует дополнительные логи и проверки, специфичные для среды Wine.
Когда включать: только на Linux при проблемах с запуском через Wine. На Windows — игнорировать: функция бесполезна и может сбивать с толку.


Раздел Text dump

Назначение: управляет созданием текстовых дампов (выгрузок) данных для анализа. Полезно при поиске редких ошибок, которые не попадают в обычные логи.

  • Naked dump

Детальное описание функции: создаёт «чистый» дамп текста без служебной информации (заголовков, меток времени, метаданных).
Как работает: в файл попадает только «сырой» текст, который можно быстро просмотреть или передать в анализатор.
Когда включать: для быстрого просмотра данных без лишнего шума. Для диагностики — использовать обычный дамп с метаданными.

  • Timed-out dump

Детальное описание функции: сохраняет дамп при превышении времени ожидания (например, если игра «зависла» на загрузке).
Как работает: если операция не завершается в течение заданного времени, создаётся дамп текущего состояния.
Когда включать: только для специфических тестов, когда нужно зафиксировать состояние при зависании. Регулярно очищайте папку с дампами: они могут быстро занимать место на диске.


Раздел Hotkeys

Назначение: позволяет назначить глобальные горячие клавиши для управления DxWnd «на лету» во время работы игры — от смены режимов масштабирования и управления временем до экстренного завершения процесса. Это критично для отладки без выхода из игры и для сценариев «Boss Key» (мгновенное сворачивание при необходимости).


Блок: Function Keys (с пометкой «(*) t. = toggle»)

Описание блока: здесь задаются одиночные клавиши или простые комбинации для переключения (toggle) отдельных функций DxWnd. Пометка «t. = toggle» означает, что нажатие клавиши включает/выключает функцию (бинарное переключение).

  • Time toggle

Детальное описание функции: переключает режим управления временем (ускорение/замедление/нормальная скорость).
Как работает: при нажатии активируется ранее заданный режим (Time fast или Time slow). Повторное нажатие возвращает к нормальной скорости.
Когда включать: при тестировании старых игр, где физика или таймеры зависят от FPS и «летят» на современных ПК.

  • Alt‑F4

Детальное описание функции: переопределяет стандартное поведение Alt+F4 (закрытие окна).
Как работает: вместо немедленного закрытия DxWnd может выполнить альтернативное действие (например, свернуть окно или показать меню).
Когда включать: если игра некорректно обрабатывает Alt+F4 или вы хотите избежать случайного закрытия DxWnd во время теста.

  • Log toggle

Детальное описание функции: включает/выключает запись логов «на лету».
Как работает: позволяет быстро начать или остановить запись логов без перезапуска DxWnd.
Когда включать: при поиске редких ошибок — включите логирование в момент воспроизведения проблемы, затем сразу отключите, чтобы не засорять диск.

  • Print screen

Детальное описание функции: назначает действие на клавишу PrintScreen.
Как работает: может делать скриншот окна игры или интерфейса DxWnd, либо ничего не делать.
Когда включать: если нужно документировать состояние игры или интерфейса без выхода из полноэкранного режима.

  • Fullscr. t. (Fullscreen toggle)

Детальное описание функции: переключает режим отображения (полноэкранный/оконный).
Как работает: эмулирует переключение между режимами без перезапуска игры.
Когда включать: при тестировании масштабирования и совместимости — позволяет быстро проверить, как игра ведёт себя в разных режимах.

  • Custom t. (Custom toggle)

Детальное описание функции: пользовательский переключатель для произвольной функции (зависит от версии DxWnd).
Как работает: можно привязать к редко используемой, но важной функции.
Когда включать: если у вас есть специфический сценарий отладки, требующий быстрого доступа к нестандартной опции.

  • Zoom in / Zoom out

Детальное описание функции: увеличивает/уменьшает масштаб отображения (если поддерживается).
Как работает: изменяет коэффициент масштабирования окна игры «на лету».
Когда включать: при подборе оптимального масштаба для старых игр на современных экранах.


Блок: Дополнительные переключатели (правая колонка)

  • Time fast / Time slow

Детальное описание функции: принудительно ускоряет или замедляет время в игре (через эмуляцию таймеров).
Как работает: изменяет коэффициент времени (например, 2x ускорение или 0.5x замедление).
Когда включать: для отладки таймеров, квестовых триггеров и событий, зависящих от времени.

  • Clip toggle

Детальное описание функции: включает/выключает обрезку (clipping) окна игры.
Как работает: может ограничивать область отрисовки или, наоборот, разрешать выход за границы окна.
Когда включать: при проблемах с артефактами по краям экрана или при тестировании нестандартных разрешений.

  • Position t. (Position toggle)

Детальное описание функции: переключает позицию окна игры между предустановленными вариантами.
Как работает: позволяет быстро менять расположение окна без ручного перетаскивания.
Когда включать: при тестировании нескольких конфигураций экрана или при работе с мультимониторными системами.

  • Corner tog. (Corner toggle)

Детальное описание функции: переключает привязку окна к углам экрана.
Как работает: окно «прилипает» к выбранному углу (UpLeft, UpRight и т. д.).
Когда включать: для быстрой проверки видимости интерфейса в разных углах экрана.

  • Work area t. (Work area toggle)

Детальное описание функции: переключает рабочую область (с учётом панели задач, рамок и т. п.).
Как работает: адаптирует размер окна под доступную область экрана.
Когда включать: при проблемах с перекрытием панели задач или при тестировании на разных разрешениях.

  • FPS toggle

Детальное описание функции: включает/выключает ограничение FPS.
Как работает: переключает между «без ограничения» и заданным лимитом FPS.
Когда включать: при подборе оптимального FPS для старых игр, чтобы избежать «летящей» физики.

  • Time freeze

Детальное описание функции: полностью останавливает время в игре (замораживает таймеры).
Как работает: все игровые таймеры и события, зависящие от времени, приостанавливаются.
Когда включать: для детального изучения сцен, где важна каждая секунда, или для отладки триггеров, срабатывающих по времени.

  • Desktop t. / CD next / CD prev

Детальное описание функции:

  • Desktop t. — переключает на рабочий стол или обратно.
  • CD next / CD prev — эмулирует переключение между виртуальными дисками (актуально для игр с несколькими CD).
    Как работает: эмулирует системные действия или команды привода.
    Когда включать: при тестировании мультидисковых игр или при необходимости быстрого доступа к рабочему столу без сворачивания DxWnd.

Блок: Hot Keys (комбинации Alt / Ctrl / Shift)

Описание блока: здесь задаются комбинации клавиш с модификаторами для более «тяжёлых» действий, которые не должны срабатывать случайно.

  • Minimize / Restore

Детальное описание функции: сворачивает/разворачивает окно DxWnd.
Как работает: позволяет быстро скрыть интерфейс DxWnd, не закрывая программу.
Когда включать: при необходимости временно освободить экран или переключиться на другое приложение.

  • Kill proc. (Kill process)

Детальное описание функции: принудительно завершает процесс игры.
Как работает: аналог «Завершить задачу» в диспетчере задач, но вызывается горячей клавишей.
Когда включать: при зависании игры, когда Alt+F4 или обычное закрытие не срабатывают. Используйте с осторожностью — возможны потери несохранённых данных.

  • Boss Key

Детальное описание функции: мгновенно сворачивает окно игры и DxWnd, а также может скрывать панель задач и трей.
Как работает: при нажатии всё, что связано с игрой, скрывается, и на экране остаётся «нейтральный» вид (рабочий стол или заранее заданное окно).
Когда включать: если вам нужно быстро скрыть игровой процесс (например, при неожиданном появлении кого‑то рядом). Также полезно для тестирования сценариев сворачивания/разворачивания.


Практические рекомендации по настройке под системный подход

  1. Для отладки: назначьте Time toggle, Log toggle и Kill proc. на редкие комбинации (например, Ctrl+Alt+F12), чтобы не нажать случайно.
  2. Для воспроизводимости: задокументируйте все назначенные горячие клавиши в заметках к профилю — это поможет быстро повторить сценарий теста.
  3. Для безопасности: всегда имейте под рукой комбинацию для Kill proc. и Boss Key — это спасёт время при зависаниях и позволит не перезагружать систему.
  4. Для чистоты логов: используйте Log toggle только в момент воспроизведения проблемы — так вы получите минимальный, но достаточный объём данных для анализа.

Раздел Defaults

Назначение: задаёт значения по умолчанию для всех новых профилей DxWnd. Это «стартовый шаблон», который экономит время при массовом создании профилей и обеспечивает единообразие настроек. Если позже в конкретном профиле вы меняете параметр — он переопределяет значение из Defaults, не затрагивая остальные профили.


Блок: Position

Описание блока: определяет начальную позицию и размер окна для новых профилей. Позволяет сразу получать предсказуемую компоновку без ручной подгонки.

  • X, Y coordinates

Детальное описание функции: задаёт координаты верхнего левого угла окна (в пикселях относительно рабочего стола).
Как работает: на изображении установлено X = 50Y = 50 — окно будет появляться со смещением 50 пикселей от левого и верхнего края экрана.
Когда включать/настраивать: если вы предпочитаете фиксированное положение окна (например, чтобы не перекрывать панель задач или другие приложения). Для мультимониторных систем подбирайте значения под нужный монитор.

  • W, H (Width, Height)

Детальное описание функции: задаёт ширину и высоту окна по умолчанию.
Как работает: на изображении установлено W = 800H = 600 — все новые профили будут стартовать в окне 800×600, если не указано иное.
Когда включать/настраивать: для старых игр, где «родное» разрешение — 800×600 или ниже. Это сразу даёт корректное масштабирование и избегает чёрного экрана при первом запуске.

Радиокнопки позиционирования

  • X,Y coordinates (выбрано на изображении) — ручное позиционирование по координатам.
    Когда включать: когда нужна точная привязка к конкретному месту экрана.
  • Desktop center — центрирование окна по центру рабочего стола.
    Когда включать: для быстрого тестирования без привязки к углам.
  • Desktop work area — размещение в пределах «рабочей области» (без учёта панели задач, закреплённых панелей).
    Когда включать: чтобы окно гарантированно не перекрывало панель задач.
  • Desktop — размещение по всему рабочему столу (может перекрывать панель задач).
    Когда включать: редко, только для специфических тестов.
  • Color emulation — не относится к позиционированию; в этом блоке может влиять на эмуляцию цветовой палитры при отрисовке окна.
    Когда включать: если старые игры некорректно отображают цвета в окне.

Блок: Texture limits

Описание блока: ограничивает размеры текстур, которые игра может запрашивать. Полезно для эмуляции ограничений старых видеокарт и для стабилизации рендеринга.

  • Min (Minimum)

Детальное описание функции: минимальный размер текстуры (в пикселях).
Как работает: на изображении установлено Min = 0 x 0 — ограничение не применяется.
Когда включать: обычно не требуется. Может использоваться для отладки рендереров, которые некорректно обрабатывают очень маленькие текстуры.

  • Max (Maximum)

Детальное описание функции: максимальный размер текстуры.
Как работает: на изображении установлено Max = 1 x 0 — это выглядит как ошибка ввода (вероятно, пользователь хотел указать, например, 1024 x 1024). При значении 1 игра не сможет загружать текстуры больше 1 пикселя, что сломает графику.
Когда включать: для эмуляции ограничений старых карт (например, 256×256 или 512×512). Для большинства современных тестов лучше оставить 0 (без ограничений).


Блок: Time

Описание блока: управляет эмуляцией времени и производительности для новых профилей. Позволяет воспроизводить поведение старых систем, где время и производительность были иными.

  • UpTime delta (days)

Детальное описание функции: добавляет смещение к «времени работы системы» (uptime).
Как работает: на изображении установлено 45 — DxWnd эмулирует, что система работает на 45 дней дольше, чем на самом деле. Некоторые игры используют uptime для триггеров или DRM.
Когда включать: при проблемах с DRM или таймерами, которые зависят от времени работы ОС.

  • Custom perf.

Детальное описание функции: задаёт пользовательское значение производительности (условные единицы).
Как работает: на изображении установлено 1000000 — это очень высокое значение, которое может использоваться для эмуляции «быстрой» или «медленной» системы в зависимости от логики игры.
Когда включать: для отладки игр, которые определяют производительность системы и меняют поведение (например, снижают детализацию на «слабых» ПК).


Блок: Resource limits (MBytes)

Описание блока: задаёт лимиты ресурсов для новых профилей. Полезно для эмуляции старых систем с ограниченной памятью или для тестирования стабильности при нехватке ресурсов.

  • Free disk area

Детальное описание функции: лимит свободного места на диске (в Мбайтах).
Как работает: на изображении установлено 0 — ограничение не применяется.
Когда включать: для эмуляции старых систем с малым объёмом диска или для тестирования поведения игры при нехватке места.

  • Free RAM

Детальное описание функции: лимит свободной оперативной памяти (в Мбайтах).
Как работает: на изображении установлено 0 — ограничение не применяется.
Когда включать: для эмуляции старых ПК с малым объёмом RAM (например, 64–256 Мбайт).

  • Free video memory

Детальное описание функции: лимит видеопамяти (в Мбайтах).
Как работает: на изображении установлено 0 — ограничение не применяется.
Когда включать: для эмуляции старых видеокарт с малым объёмом памяти (например, 16–64 Мбайт).

  • Free texture memory

Детальное описание функции: лимит памяти под текстуры (в Мбайтах).
Как работает: на изображении установлено 0 — ограничение не применяется.
Когда включать: для тестирования стабильности при нехватке памяти под текстуры.


Блок: Miscellaneous

Описание блока: содержит дополнительные параметры, не вошедшие в другие категории.

  • Fog color

Детальное описание функции: задаёт цвет тумана (fog) для эмуляции эффектов старых движков.
Как работает: на изображении установлен ярко‑красный цвет — это, скорее всего, тестовое значение. Цвет применяется к эффекту тумана, если игра его использует.
Когда включать: для отладки рендереров, которые используют туман как часть сцены или для эмуляции специфических эффектов старых игр.

  • Fake date

Детальное описание функции: подменяет системную дату для новых профилей.
Как работает: на изображении установлено 01/01/1986 — все новые профили будут «видеть» эту дату вместо реальной. Некоторые игры и DRM используют дату для проверки лицензии или триггеров.
Когда включать: при проблемах с DRM, которые зависят от даты, или для воспроизведения поведения игры в определённую эпоху.


Практические рекомендации по настройке под системный подход

  1. Для воспроизводимости: задайте в Defaults «безопасные» значения, которые подходят для большинства старых игр: W = 800H = 600Position = Desktop work area, все лимиты ресурсов = 0Fake date = реальная дата (или оставьте без подмены).
  2. Для отладки DRM и таймеров: используйте Fake date и UpTime delta точечно в отдельных профилях, а не в Defaults, чтобы не сломать остальные игры.
  3. Для эмуляции старых систем: в отдельных профилях включайте лимиты ресурсов (RAM, video memory) и ограничения текстур, а в Defaults оставляйте без ограничений.
  4. Для чистоты тестов: не оставляйте в Defaults тестовые значения (например, красный Fog color или Max = 1 в Texture limits) — они могут случайно повлиять на новые профили.

Startup Settings: поведение при запуске (автозагрузка, трей, отключённое состояние).

DxWnd - Startup settings: поведение при запуске (автозагрузка, трей, отключённое состояние)

Вкладка Startup settings

Назначение: управляет поведением DxWnd при загрузке операционной системы и старте программы. Позволяет автоматизировать запуск, минимизировать визуальное присутствие в интерфейсе и гибко контролировать, в каком состоянии программа начнёт работу — активном или «замороженном».


Run at startup

Детальное описание функции: добавляет DxWnd в автозагрузку Windows — программа запускается автоматически при входе пользователя в систему.
Как работает: в реестре или папке автозагрузки создаётся запись, которая инициирует старт DxWnd без участия пользователя.
Когда включать: если вы постоянно используете DxWnd и хотите, чтобы он был готов к работе сразу после загрузки ПК.
Когда отключать: если DxWnd нужен эпизодически — автозапуск будет только тратить ресурсы и засорять список фоновых процессов.


Start in system tray

Детальное описание функции: при запуске программа не отображает главное окно, а сразу сворачивается в системный трей (возле часов).
Как работает: интерфейс DxWnd скрыт, но программа полностью активна и готова к работе; доступ к ней — через иконку в трее.
Когда включать: если вы предпочитаете «чистый» рабочий стол и хотите вызывать DxWnd только по необходимости. Также удобно при использовании с автозагрузкой: программа уже работает, но не мешает.
Когда отключать: если вы часто меняете настройки, создаёте новые профили или тестируете изменения — без видимого окна это делать неудобно.


Start in disabled state

Детальное описание функции: при старте программа запускается, но все её функции (включая хуки и профили) находятся в неактивном («отключённом») состоянии.
Как работает: DxWnd загружается в память, но не вмешивается в процессы игр и не применяет никакие настройки до ручного включения.
Когда включать: если вы хотите иметь DxWnd «наготове» (например, для быстрого старта в нужный момент), но не хотите, чтобы он случайно повлиял на игры или другие приложения. Полезно при диагностике: можно запустить, проверить логи, а затем вручную активировать.
Когда отключать: если вы ожидаете, что DxWnd сразу начнёт работать с профилями и применять настройки при старте.


Практические рекомендации по настройке под системный подход

  1. Для постоянной работы с готовыми профилями: включите Run at startup + Start in system tray. Так DxWnd всегда будет под рукой, но не будет загромождать рабочий стол.
  2. Для активной отладки и создания новых профилей: оставьте все три опции выключенными. Это даст полный контроль над моментом запуска и состоянием программы.
  3. Для безопасного тестирования: используйте Start in disabled state вместе с автозагрузкой. Вы сможете вручную активировать DxWnd только тогда, когда это действительно нужно, и избежать случайных конфликтов с играми.
  4. Для воспроизводимости тестов: зафиксируйте в документации, в каком состоянии запускается DxWnd (автозапуск/трей/отключено). Это поможет точно повторить сценарий на другой машине или после переустановки ОС.

Main: базовые параметры (хуки, FPS, DPI, привязка к ядру).

DxWnd - Main: базовые параметры (хуки, FPS, DPI, привязка к ядру)

Вкладка Main

Назначение: это базовая панель для задания ключевых параметров запуска игры и её поведения в системе. Здесь указывают исполняемый файл, задают стартовые координаты и размер окна, а также включают/отключают общие режимы совместимости (например, принудительное оконное отображение или раннюю инициализацию перехвата API).

Что входит в раздел:

  • Поля ввода: Name, Path, Launch.
  • Группа Generic: флаги общего поведения.
  • Группа Position: параметры расположения и размера окна.

Детальное описание функций:

  • Name — имя профиля. Нужно для удобной идентификации в списке: можно указать название игры или её версию, чтобы не путаться при наличии нескольких профилей для одной игры.
  • Path — путь к исполняемому файлу (.exe) игры. Это обязательный параметр: без него DxWnd не сможет запустить игру и применить к ней настройки.
  • Launch — дополнительная команда запуска (аналог аргументов командной строки). Сюда вписывают ключи, которые требуются самой игре (например, -window-w-nod3d9ex и т. п.), если они не прописаны в ярлыке.
  • Early hook (отмечен галочкой) — включает ранний перехват API-вызовов игры. Это критически важно для старых игр, которые инициализируют графику до того, как DxWnd успеет перехватить вызовы: без этой опции настройки окна и рендеринга могут не сработать.
  • Do not notify on task switch — отключает уведомления при переключении задач (Alt+Tab). Полезно, чтобы избежать лишних системных сообщений или мерцания, если игра нестабильно реагирует на потерю фокуса.
  • No banner — скрывает стандартное информационное окно-баннер DxWnd при запуске. Удобно, если баннер перекрывает часть экрана или раздражает.
  • Run in Window (отмечен галочкой) — принудительно запускает игру в оконном режиме. Это базовая настройка для дальнейшей подгонки размера и пропорций: даже если игра сама хочет уйти в полный экран, DxWnd удержит её в окне.
  • Terminate on window close — завершает процесс игры при закрытии окна DxWnd. Если не отметить, игра может продолжить работать в фоне после закрытия утилиты.
  • No SHIMs — отключает использование системных «заплаток» (shims) для совместимости. Обычно оставляют выключенным, чтобы DxWnd сам применял нужные shims; включают только при конфликтах.
  • Acquire admin caps — запрашивает права администратора для процесса игры. Нужно, если игра требует повышенных привилегий для доступа к файлам или реестру.
  • Force windowing — ещё один уровень принудительного оконного режима, работает в связке с Run in Window. Помогает, если игра игнорирует обычные способы удержания в окне.
  • Lower background priority — снижает приоритет процесса игры в фоне. Полезно, чтобы при сворачивании игры она не «тормозила» остальные приложения.
  • Ask confirm on window close — запрашивает подтверждение при закрытии окна. Защищает от случайного закрытия и потери прогресса, если игра не умеет автосохраняться.
  • Hide desktop background — скрывает фон рабочего стола во время работы игры. Делает картинку более «полной», убирая отвлекающие элементы за окном игры.
  • Keep aspect ratio — сохраняет исходное соотношение сторон игры. Предотвращает растягивание картинки на широкоформатных мониторах.
  • Adaptive ratio — адаптивное соотношение сторон: DxWnd пытается автоматически подобрать пропорции, исходя из разрешения игры и монитора.
  • X, Y coordinates (выбрано) — позволяет вручную задать координаты верхнего левого угла окна. Удобно, если игра запускается за пределами экрана или в неудобном месте.
  • Desktop center — автоматически центрирует окно на экране.
  • Desktop work area — размещает окно в рабочей области (исключая панель задач и боковые панели).
  • Desktop — размещает окно на всём рабочем столе (может перекрывать панель задач).
  • Color emulation — эмуляция цветовой палитры (актуально для очень старых игр с 8‑битным цветом).
  • Window initial position & size — поля X, Y, W, H для задания точных координат и размеров окна (в пикселях). На скриншоте задано: X=50, Y=50, W=800, H=600. Это позволяет принудительно задать «родное» разрешение игры, даже если её движок по умолчанию выбирает другое.

Примечания к типам разрешений и пропорций, которые задаются в полях W (ширина) и H (высота) и управляются флагами Keep aspect ratio / Adaptive ratio на вкладке Main. Каждое примечание привязано к типичному сценарию для старых игр в DxWnd.

  • 320×200 — классическое разрешение для ранних VGA‑игр (например, Wolfenstein 3D, ранние квесты).
    Примечание: на современных мониторах выглядит очень мелко; в DxWnd лучше принудительно задать эти значения в W/H и включить Keep aspect ratio, чтобы избежать растягивания. Если игра использует 256‑цветную палитру, дополнительно включите Color emulation — это исправит «поплывшие» цвета на 32‑битных системах .

  • 320×240 — частый вариант для ранних платформеров и головоломок.
    Примечание: пропорции 4:3, но чуть выше, чем 320×200. Работает аналогично: фиксируйте W/H, включайте Keep aspect ratio. Если картинка «плывёт» по вертикали, проверьте, не включена ли случайно Adaptive ratio — она может пытаться «подогнать» пропорции под монитор и искажать изображение.

  • 640×480 — стандарт VGA, самый распространённый для игр середины 90‑х (Doom, Duke Nukem 3D, ранние шутеры).
    Примечание: «родное» соотношение 4:3. На широкоформатных мониторах без Keep aspect ratio игра растянется и станет непропорциональной. Оптимально: задать 640×480 в W/H, включить Keep aspect ratio, а при необходимости добавить чёрные полосы по бокам через Run «blacker» в меню Tools.

  • 800×600 — более чёткое 4:3, встречается в играх конца 90‑х и начала 2000‑х.
    Примечание: интерфейс и текст читаются лучше, чем в 640×480. Если игра «не влезает» в экран или обрезается, не увеличивайте разрешение — лучше оставьте 800×600 и используйте масштабирование на стороне монитора или утилиты вроде Lossless Scaling. В DxWnd достаточно зафиксировать W/H и Keep aspect ratio.

  • 1024×768 — ещё более чёткое 4:3, встречается в RPG и стратегиях 2000‑х.
    Примечание: на Full HD‑мониторах выглядит как «окно в окне». Если хочется заполнить экран, не меняйте разрешение в DxWnd — лучше масштабировать картинку на уровне драйвера или сторонними утилитами. В DxWnd оставьте 1024×768 и Keep aspect ratio, чтобы не искажать пропорции.

  • 1280×720 (720p) — первое «широкоформатное» разрешение (16:9), встречается в играх середины 2000‑х.
    Примечание: если игра изначально поддерживает 16:9, Keep aspect ratio сохранит правильные пропорции. Если игра «думает», что у неё 4:3, и растягивает картинку, поможет Force windowing + ручное задание W/H 1280×720.

  • 1366×768 — распространённое разрешение для ноутбуков (примерно 16:9).
    Примечание: не все старые игры корректно работают с этим разрешением. Если интерфейс «разъезжается» или текст становится нечитаемым, лучше вернуться к 1280×720 или 1024×768 и масштабировать картинку. В DxWnd фиксируйте W/H и отключайте Adaptive ratio, чтобы избежать автоматической подгонки.

  • 1920×1080 (Full HD) — стандарт для современных мониторов (16:9).
    Примечание: большинство старых игр не рассчитаны на такое разрешение: интерфейс становится слишком мелким, а пропорции могут искажаться. Если игра поддерживает Full HD, достаточно задать 1920×1080 в W/H и включить Keep aspect ratio. Если нет — лучше использовать более низкое разрешение и масштабировать картинку.

  • 2560×1440 (QHD) и выше — высокие разрешения для современных дисплеев.
    Примечание: крайне редко встречаются в старых играх. Если игра не поддерживает такое разрешение, она либо запустится с искажённой картинкой, либо выдаст ошибку. В DxWnd лучше не использовать эти значения для старых игр — выберите более низкое разрешение и масштабируйте картинку.


Отдельно про флаги:
  • Keep aspect ratio — сохраняет пропорции игры. Если вы задали 640×480, DxWnd не позволит окну стать 1920×1080 и растянуть картинку. Это самый безопасный вариант для старых игр.
  • Adaptive ratio — пытается автоматически подобрать пропорции под монитор. Может быть полезен для некоторых игр, но часто приводит к искажению картинки. Лучше включать только после тестирования.
  • Force windowing — принудительно удерживает игру в окне, даже если она пытается уйти в полный экран. Работает в связке с заданными W/H и Keep aspect ratio.

Hook: какие хуки включать и зачем.

DxWnd - Hook: какие хуки включать и зачем

Вкладка Hook

Назначение: эта вкладка отвечает за механизм перехвата API-вызовов (hooking) — то, как DxWnd внедряется в процесс игры и подменяет системные команды. Здесь выбирают способ инъекции кода, режим сканирования таблицы адресов (IAT) и дополнительные флаги для тонкой настройки совместимости.

Что входит в раздел:

  • Общие флаги: Hook enabled, Show hints, Check run by DxWnd.
  • Поля ввода: Command line, Additional modules, Additional shims.
  • Группа Hook mode: Injection, Hook mode, IAT scan, Son mode.
  • Группа Hook flags: набор чекбоксов для специфических режимов.
  • Поля Commit: адрес и длина для фиксации изменений.

Детальное описание функций:

  • Hook enabled (отмечен галочкой) — включает механизм перехвата API. Без этой опции DxWnd не сможет влиять на поведение игры: окно будет запускаться как обычно, без принудительных настроек размера, режима и т. п.
  • Show hints — показывает всплывающие подсказки при наведении на элементы. Удобно для новичков, чтобы понимать назначение редких опций.
  • Check run by DxWnd — проверяет, что процесс запущен именно через DxWnd. Защищает от случайного применения настроек к другим процессам с тем же именем.
  • Command line — поле для передачи аргументов самому DxWnd (не игре). Сюда вписывают специальные ключи запуска утилиты, если они требуются для отладки или специфического поведения (например, принудительный режим, отключение кэширования, вывод дополнительной информации в консоль). Эти параметры влияют на работу DxWnd до того, как он начнёт взаимодействовать с целевым процессом.
  • Additional modules — список дополнительных модулей (DLL), которые DxWnd принудительно загрузит в адресное пространство игры. Используется для подключения сторонних библиотек совместимости, фиксов звука, старых системных библиотек и т. п. Модули загружаются до или после основных хуков в зависимости от настроек приоритета.
  • Additional shims — дополнительные «заплатки» (shims) для совместимости с устаревшими API. Позволяют эмулировать поведение старых версий Windows для конкретной игры: например, подменять возвращаемые значения системных функций, маскировать версию ОС или корректировать поведение отдельных API‑вызовов. Shims работают на уровне перехвата и не требуют модификации файлов игры.

    Раздел Injection (способы внедрения кода)

    Это группа определяет, каким именно методом DxWnd «проникает» в адресное пространство игры, чтобы перехватывать API‑вызовы. От выбора способа зависит стабильность, совместимость с античитами и возможность обхода защит.

    • Inject DLL (основной вариант) — внедрение кода через загрузку собственной DLL‑библиотеки в процесс игры. Это самый распространённый и надёжный метод: DxWnd подгружает свою библиотеку, которая регистрирует хуки и управляет дальнейшими подменами. В большинстве случаев именно этот режим даёт наилучшую совместимость.
    • Windows Hook — перехват через системные хуки Windows (SetWindowsHookEx). Работает на уровне сообщений ОС, а не внутри процесса. Подходит для перехвата ввода и оконных сообщений, но менее эффективен для DirectX‑вызовов и может быть менее стабильным в современных ОС.
    • Debugger — запуск игры в режиме отладки. DxWnd становится отладчиком процесса, что даёт максимальный контроль и подробные уведомления об исключениях. Используется для глубокой диагностики, но часто конфликтует с античитами и может вызывать ложные срабатывания защит.
    • Proxy DLL — подмена системной DLL собственной «прокси‑версией». Выгодно применять, когда обычная DLL‑инъекция блокируется защитой или когда нужно перехватить вызовы на более раннем этапе загрузки. Требует точного указания путей к файлам.
    • Inject APC (Asynchronous Procedure Call) — внедрение кода через асинхронный вызов в потоке целевого процесса. Низкоуровневый метод, способный обходить некоторые проверки целостности, но чувствителен к многопоточности и может приводить к нестабильности.
    • Detours — использование библиотеки Microsoft Detours (или совместимых реализаций) для перехвата API. Даёт более чистый и предсказуемый механизм хуков, но требует наличия соответствующей библиотеки и может конфликтовать с другими средствами перехвата.

    Раздел Hook mode (режимы перехвата)

    Здесь выбирается стратегия, по которой DxWnd будет подменять системные функции: через таблицу импорта, перезапись кода или их комбинацию.

    • IAT scan (стандартный вариант) — перехват через сканирование таблицы адресов импорта (Import Address Table). DxWnd находит в памяти адреса функций, которые игра собирается вызывать (например, CreateWindow, DirectDrawCreate), и подменяет их на свои версии. Это самый стабильный и безопасный метод для большинства игр.
    • Mixed mode — комбинированный режим: часть API перехватывается через IAT, а часть — через низкоуровневые механизмы (например, trampoline/Detours). Полезен, когда IAT‑сканирование не покрывает все нужные вызовы или когда некоторые функции подменяются динамически.
    • Hot patch — горячее исправление: подмена функции выполняется путём перезаписи её пролога (первых байтов кода). Позволяет перехватывать вызовы без изменения таблицы импорта. Эффективен для обхода некоторых защит, но зависит от архитектуры процессора и формата бинарного файла.

    Раздел IAT scan (сканирование таблицы импорта)

    Эта группа уточняет, как именно DxWnd будет искать и обрабатывать таблицу импорта (IAT) в памяти процесса. От настроек зависит точность поиска адресов и устойчивость к нестандартным сборкам игр.

    • Word‑aligned (часто выбрано по умолчанию) — сканирование с выравниванием по словам (2 или 4 байта в зависимости от архитектуры). Это оптимизированный и наиболее стабильный вариант: он снижает риск ошибочного распознавания данных как адресов и хорошо работает на разных сборках ОС.
    • Byte‑aligned — побайтовое сканирование без выравнивания. Позволяет находить адреса даже в «плотно упакованных» или нестандартных PE‑файлах, но работает медленнее и потенциально менее стабильно.
    • Scan EXE PE — принудительное сканирование заголовка и секций самого EXE‑файла (а не только загруженных DLL). Нужно, если игра использует прямые вызовы из собственного модуля или если критические функции не попадают в IAT загруженных библиотек.
    • No IAT scan — отключает сканирование IAT полностью. В этом случае перехват осуществляется исключительно альтернативными методами (например, через Hot patch, Detours или Proxy DLL). Применяется в редких случаях, когда IAT‑перехват вызывает конфликты или не работает из‑за особенностей сборки игры.

    Раздел Son mode (обработка дочерних процессов и расширенных режимов)

    Группа отвечает за поведение DxWnd при работе с дочерними процессами и окнами, которые может создавать сама игра (например, отдельные модули для звука, рендера или античита).

    • Default (стандартный вариант) — обычное поведение: DxWnd корректно обрабатывает создание новых окон и процессов, порождённых игрой. Хуки применяются в разумных пределах, чтобы не ломать работу дочерних модулей, но при этом сохранять контроль над окном и совместимостью.
    • Suppress — подавление обработки дочерних процессов/окон. Полезно, если дочерние процессы ломают логику DxWnd или вызывают конфликты. В этом режиме DxWnd не пытается применять хуки к дочерним процессам, снижая риск сбоев.
    • Ext. debug — расширенная отладка дочерних процессов. Включает дополнительные логи и уведомления о создании и завершении дочерних процессов, а также о попытках перехвата в них. Помогает понять, где именно происходит сбой при работе с многокомпонентными запусками.
    • Ext. inject — расширенное внедрение в дочерние процессы. Позволяет применять кастомные DLL или дополнительные хуки именно к дочерним процессам (например, к отдельному аудиомодулю или рендереру). Требует точной настройки путей и имён процессов.
    • Ext. detours — расширенное использование Detours для дочерних процессов. Даёт возможность применять более «чистые» хуки на уровне кода в дочерних модулях, что может быть необходимо для стабилизации сложных движков.

  • Hook child — перехватывает вызовы в дочерних процессах игры. Нужно, если игра запускает отдельные процессы для рендеринга, звука или античита.
  • Hook dialog — перехватывает диалоги и модальные окна. Помогает, если игра показывает системные окна (например, «Ошибка DirectX») в неправильном месте или с неправильными пропорциями.
  • Frontend — включает «фронтенд»-перехват: DxWnd обрабатывает вызовы на уровне интерфейса, прежде чем они дойдут до системы.
  • Hot registry — перехватывает обращения к реестру. Полезно, если игра читает или пишет в реестр параметры, конфликтующие с современными ОС.
  • No Run — отключает автоматический запуск игры после применения профиля. Используется для отладки: можно применить настройки, проверить логи, а потом запустить игру вручную.
  • Enable patcher — включает встроенный патчер для модификации кода игры на лету. Применяется для исправления известных ошибок или обхода ограничений.
  • Do hook update — обновляет перехват при изменении состояния процесса. Помогает, если игра динамически подгружает модули или меняет поведение во время работы.
  • Hide Window changes — скрывает изменения окна от самой игры. Если игра «чувствует», что её окно меняют извне, она может аварийно завершаться: эта опция маскирует манипуляции DxWnd.
  • Skip Hint in IAT seq. scan — пропускает подсказки при последовательном сканировании IAT. Ускоряет запуск, если подсказки не нужны.
  • Shared hook — использует общий механизм перехвата для нескольких процессов. Экономит ресурсы, если запущено несколько экземпляров игры или связанных приложений.
  • Commit — address и length — поля для фиксации изменений по конкретному адресу в памяти. Это продвинутая настройка: сюда вписывают адрес и длину блока кода, который нужно принудительно «закоммитить» (зафиксировать) в памяти для стабильной работы перехвата. Обычно оставляют 0, если нет специфических инструкций для конкретной игры.

Video: разрешение, масштабирование, палитры, рендерер.

Video: разрешение, масштабирование, палитры, рендерер

Вкладка Video

Назначение: управляет параметрами окна, цветовым режимом и разрешением экрана для игры. Здесь задают пропорции, фиксируют размер, выбирают глубину цвета и настраивают обработку изменений размера окна — это критично для корректного отображения старых игр на современных мониторах.

Что входит в раздел:

  • Window style — стиль оформления окна (рамка, модальность, отключение DWM).
  • Initial virtual color setting — глубина цвета (BPP) для эмуляции старых режимов.
  • Window handling — обработка действий с окном (разворачивание, изменение размера, скрытие панели задач).
  • FPS counter — счётчик кадров в секунду.
  • Z order — порядок расположения окна поверх/под другими окнами.
  • Screen resolution — выбор разрешения и пресетов, включая фиксацию пропорций.
  • Window size & position — тип позиционирования и ручной ввод размера (W x H).

Детальное описание функций:

  • Window style:
    • default (выбрано) — стандартный стиль окна Windows (с рамкой и заголовком). Оптимально для большинства игр.
    • thick frame / thin frame — толстая или тонкая рамка окна. Влияет только на внешний вид, не на работу игры.
    • modal — модальное окно: блокирует взаимодействие с другими окнами, пока игра активна. Редко нужно, может мешать Alt+Tab.
    • Lock win style — блокирует изменение стиля окна игрой. Полезно, если игра пытается принудительно уйти в полный экран или убрать рамку.
    • No DWM — отключает композитинг Desktop Window Manager. Помогает, если есть задержки ввода или мерцание на Windows 7/8/10.
  • Initial virtual color setting:
    • Current (выбрано) — использует текущую глубину цвета системы (обычно 32 BPP). Самый безопасный вариант для современных ОС.
    • 8/16/24/32 BPP — фиксирует глубину цвета. Нужно только для очень старых игр, которые некорректно работают с 32‑битным цветом (например, «поплывшие» палитры).
    • Lock — блокирует изменение глубины цвета игрой.
  • Window handling:
    • Prevent Win Maximize — запрещает разворачивание окна на весь экран. Полезно, если игра сама пытается уйти в полный экран.
    • Emulate Win Maximize (отмечено галочкой) — эмулирует состояние «развёрнуто на весь экран», но оставляет окно в границах рабочего стола. Это частый способ заставить игру думать, что она в полном экране, оставаясь в окне.
    • Force win resize — принудительно меняет размер окна, даже если игра сопротивляется. Может вызвать вылет, если использовать без необходимости.
    • Recover screen mode — восстанавливает режим экрана после закрытия игры. Полезно, если игра меняет разрешение монитора.
    • Refresh on win resize — обновляет содержимое окна при изменении размера. Может помочь при «артефактах» при растягивании.
    • Hide multi-monitor config. — скрывает настройки нескольких мониторов. Помогает, если игра некорректно определяет экраны.
    • Hide Taskbar / No Taskbar overlap — скрывает панель задач или запрещает окну перекрывать её. Удобно для «полноэкранного» вида в окне.
    • Set DPI awareness — включает поддержку масштабирования DPI. Нужно, если интерфейс игры размыт на экранах с высоким DPI (HiDPI).
  • FPS counter:
    • OFF (выбрано) — счётчик кадров отключён.
    • overlay / titlebar — показывает FPS в оверлее или в заголовке окна. Полезно для проверки производительности.
  • Z order:
    • default (выбрано) — стандартный порядок окон.
    • unlock / top — снимает блокировку порядка или фиксирует окно поверх всех остальных. top полезно, если окно «проваливается» под другие программы.
  • Screen resolution:
    • SD (4:3) (выбрано) — пресет для классических пропорций 4:3.
    • HD (16:9) / SD+HD — пресеты для широкоформатных разрешений.
    • Native — использует «родное» разрешение игры без принудительной подгонки.
    • Fix aspect ratio — фиксирует пропорции, чтобы картинка не растягивалась. Обязательно включать для старых игр.
    • Custom / Initial / Maximum / Set — ручные режимы выбора разрешения.
    • Presets — быстрые варианты: 320×200, 400×300, 640×480.
    • Resolution (W x H) — ручное задание ширины и высоты. На скриншоте: 800×600 — универсальный вариант для старых игр.
  • Window size & position:
    • Free — размер и положение можно менять вручную.
    • Locked size — фиксирует размер окна, запрещает изменение.
    • Floating (выбрано) — окно свободно перемещается и меняет размер. Оптимально для тестов.
    • Anchored — якорь: окно остаётся в заданной позиции и не двигается.

Универсальные рекомендации для вкладки Video 

  • Для большинства старых игр: на Video оставьте SD (4:3), включите Fix aspect ratio, задайте Resolution 800×600 и выберите Floating для размера окна. 
  • Если игра «растянута» на широкоформатном мониторе: на Video включите Fix aspect ratio и не меняйте разрешение на 16:9, если игра не рассчитана на это.
  • Если игра не даёт свернуть окно: на Video попробуйте No DWM или Lock win style.

Mouse: курсор, захват, скрытие.

DxWnd - Mouse: курсор, захват, скрытие.

Вкладка Mouse

Назначение: отвечает за обработку ввода мыши, позиционирование курсора и совместимость с играми, которые по-разному работают с мышью (например, «захват» курсора, инвертирование осей, обработка сообщений). Здесь исправляют проблемы с «улетающим» курсором, инверсией и некорректным позиционированием в старых движках.

Что входит в раздел:

  • Cursor visibility — видимость курсора.
  • Mouse Clipper — ограничение области движения курсора.
  • Invert mouse — инверсия осей мыши.
  • Fix mouse bias — коррекция смещения курсора.
  • Cursor handling — обработка сообщений и поведения курсора.

Детальное описание функций:

  • Cursor visibility:
    • Autom. (выбрано) — автоматически скрывает или показывает курсор в зависимости от состояния игры. Самый безопасный вариант.
    • Hide / Show — жёстко скрывает или показывает курсор. Используйте, если курсор «мешает» в игре или, наоборот, не появляется.
  • Mouse Clipper:
    • Default (выбрано) — стандартное поведение: курсор удерживается в пределах окна игры.
    • ON / OFF / LOCKED — включение, отключение или блокировка настройки клиппера.
    • Include menu in clipper area — включает область меню в зону ограничения курсора. Полезно, если игра использует системные меню.
  • Invert mouse:
    • Invert X axis / Invert Y axis — инвертирует движение мыши по горизонтали или вертикали. Включайте только если в игре мышь работает «наоборот».
  • Fix mouse bias:
    • Fix X bias / Fix Y bias — корректирует смещение курсора по осям. Помогает, если прицел или курсор «уходит» в сторону из‑за проблем с масштабированием или DPI.
  • Cursor handling:
    • Correct mouse position (отмечено галочкой) — исправляет позиционирование курсора относительно окна. Критично, если клики не совпадают с местом нажатия (например, в меню).
    • Position message processing — обрабатывает сообщения о положении курсора. Может помочь при проблемах с наведением на элементы интерфейса.
    • Fix mouse IParam — исправляет параметры ввода мыши в сообщениях Windows. Нужно для старых игр, которые неправильно читают эти данные.
    • Correct MOUSEHOOK / MESSAGEHOOK callback — исправляет обработку хуков мыши и сообщений. Включайте при проблемах с захватом мыши или «залипанием» курсора.
    • Trim mouse position — обрезает координаты курсора, чтобы они не выходили за границы окна. Помогает, если курсор «улетает» за пределы экрана при быстром движении.
    • Keep cursor fixed — фиксирует курсор в центре окна. Полезно для шутеров от первого лица, если игра не удерживает курсор сама.
    • fix WM_NCHITTEST — исправляет обработку сообщений о наведении на неклиентскую область (рамки, заголовок). Помогает, если окно «не реагирует» на перетаскивание или изменение размера.
    • Release mouse outside window — освобождает мышь, если курсор выходит за пределы окна. Удобно для быстрого Alt+Tab без «захвата» курсора игрой.
    • No mouse events generation — отключает генерацию событий мыши. Используйте только при конфликтах, иначе игра не будет видеть мышь.
    • Fix mouse RawInput — исправляет обработку сырого ввода мыши (Raw Input). Нужно, если игра использует этот API и мышь работает некорректно.
    • Mouse shield — защищает мышь от перехвата другими программами. Помогает, если оверлеи (Steam, Discord) «ломают» ввод в игре.
    • Adaptive mouse speed — адаптивная скорость мыши. Корректирует чувствительность в зависимости от движения.
    • Lock / Recover cursor icons — блокирует или восстанавливает иконки курсора. Полезно, если игра «портит» системные иконки мыши.

Универсальные рекомендации для вкладоки Mouse

  • Для большинства старых игр: на Mouse включите Correct mouse position и оставьте Cursor visibility: Autom. — этого достаточно для корректной работы мыши и картинки.
  • Если курсор «не попадает» в кнопки меню: включите Correct mouse position и при необходимости Position message processing на вкладке Mouse.
  • Если мышь «улетает» за пределы окна: на Mouse включите Trim mouse position или настройте Mouse Clipper.

Input: расширенные настройки ввода, эмуляция устройств, коррекция обработки нажатий и осей.

DxWnd - Input: расширенные настройки ввода, эмуляция устройств, коррекция обработки нажатий и осей

Вкладка Input

Назначение: управляет перехватом и обработкой ввода — клавиатуры, мыши, джойстиков и контроллеров. Здесь решают проблемы с «залипанием» клавиш, некорректным считыванием состояния кнопок, конфликтами с оверлеями и неправильной работой DirectInput/XInput в старых играх.

Что входит в раздел:

  • Control keys — обработка системных клавиш и состояний ввода.
  • DirectInput — перехват и эмуляция DirectInput для мыши и клавиатуры.
  • Xinput — поддержка контроллеров Xbox через XInput.
  • Joystick — настройки виртуальных джойстиков и эффектов.
  • Keyboard handling — обработка горячих клавиш и состояний клавиатуры.

Детальное описание функций:

  • Control keys:
    • Alt-tab:
      • Default (выбрано) — стандартное поведение Windows. Оптимально в большинстве случаев.
      • ON / OFF — жёсткое включение/отключение обработки Alt+Tab. Используйте, если игра «ломает» переключение задач.
    • Recover PrintScreen key — восстанавливает работу клавиши PrintScreen, если игра её перехватывает и не отдаёт системе.
    • Suspend GetAsyncKeyState — приостанавливает опрос состояния клавиш через GetAsyncKeyState. Помогает при конфликтах, когда игра «не видит» нажатия.
    • Flush GetAsyncKeyState — очищает буфер состояния клавиш. Полезно, если «залипают» кнопки после сворачивания игры.
  • DirectInput:
    • Hook dinput / Hook dinput8 — перехватывает вызовы DirectInput и DirectInput8. Включайте, если игра использует эти API и ввод работает некорректно.
    • Unacquire input devices on focus lost — автоматически освобождает устройства ввода (мышь, клавиатуру), когда игра теряет фокус. Защищает от «захвата» мыши при сворачивании.
    • Emulate mouse relative movement — эмулирует относительное движение мыши (как в FPS). Нужно, если игра не получает корректные дельты движения.
    • Scale mouse relative movement — масштабирует относительное движение мыши. Помогает, если прицел двигается слишком быстро/медленно.
    • Skip HID device type — пропускает определение типа HID‑устройства. Полезно при конфликтах с современными клавиатурами/мышами.
    • Suppress DI common errors — подавляет распространённые ошибки DirectInput. Снижает количество сбоев при инициализации устройств.
    • Set keyboard/mouse shared coop. level — устанавливает совместный режим работы устройств. Помогает, если игра конфликтует с другими приложениями за доступ к вводу.
    • Pack mouse relative data — упаковывает данные относительного движения мыши. Может исправить проблемы с «рывками» курсора.
  • Xinput:
    • Hook Xinput — перехватывает вызовы XInput для контроллеров. Включайте, если используете геймпад Xbox и игра некорректно его видит.
  • Joystick:
    • Enable virtual joystick — включает виртуальный джойстик. Полезно, если игра требует джойстик, а у вас его нет.
    • Enable joystick effects — включает эффекты обратной связи (вибрацию). Работает только при наличии совместимого устройства.
    • Hide joysticks — скрывает подключённые джойстики от игры. Используйте, если игра «ломается» из‑за лишних устройств.
  • Keyboard handling:
    • Map XBox360 controllers — сопоставляет кнопки геймпада Xbox 360. Помогает при использовании сторонних контроллеров.
    • Enable hot keys (выбрано) — включает обработку горячих клавиш DxWnd (например, для скриншотов или отладки).
    • Intercept Alt-F4 key — перехватывает комбинацию Alt+F4. Полезно, если нужно запретить закрытие игры этой комбинацией.
      •  

Универсальные рекомендации для вкладок Input 

  • Для большинства старых игр: на Input оставьте Default для Alt+Tab, включите Enable hot keys, а остальные флаги оставьте выключенными. 
  • Если клавиши «залипают» или игра не видит нажатия: на Input включите Flush GetAsyncKeyState и при необходимости Suspend GetAsyncKeyState.
  • Если мышь «дёргается» или прицел двигается неправильно: на Input включите Emulate mouse relative movement и при необходимости Scale mouse relative movement.
  • Если используете геймпад: на Input включите Hook Xinput и Map XBox360 controllers для корректной работы кнопок.

3D: дополнительные параметры 3D‑рендеринга, постобработка, фиксы геометрии и текстур.

DxWnd - 3D: дополнительные параметры 3D‑рендеринга, постобработка, фиксы геометрии и текстур

Вкладка 3D

Назначение: управляет обработкой 3D‑эффектов и текстур для совместимости со старыми играми. Здесь отключают или эмулируют эффекты (туман, каркасный режим), а также настраивают обработку текстур и их форматы — это помогает запустить игры, которые конфликтуют с современными драйверами или не поддерживают определённые типы текстур.

Что входит в раздел:

  • 3D effects — управление визуальными эффектами (текстуры, туман, каркасный режим).
  • Texture handling — обработка и сохранение текстур, выбор формата файлов.

Детальное описание функций:

  • 3D effects:
    • Disable Textures — отключает текстуры. Картинка станет «плоской» (цвета без деталей). Используйте, если игра вылетает из‑за проблем с текстурами.
    • 3D Wireframe — включает каркасный режим (отображаются только полигоны). Полезно для отладки рендеринга или если текстуры не загружаются.
    • Disable Fogging — отключает эффект тумана. Помогает, если туман делает игру неиграбельной или вызывает вылеты.
    • Control Fogging — позволяет управлять эффектом тумана. Даёт больше контроля, чем полное отключение.
    • Set fog color — задаёт цвет тумана. Используйте, если стандартный цвет мешает видимости.
  • Texture handling:
    • None (выбрано) — без дополнительной обработки текстур. Оптимально для большинства игр.
    • Dump — сохраняет текстуры в файлы. Полезно для отладки или извлечения ассетов.
    • Transp. — обрабатывает прозрачность текстур. Включайте, если прозрачные объекты отображаются некорректно.
    • Highlight / Hack — специальные режимы подсветки или «хаков» для текстур. Используйте только по инструкции для конкретной игры.
    • File format:
      • BMP (выбрано) — сохранение текстур в формате BMP. Самый простой и совместимый вариант.
      • RAW — сырой формат без сжатия. Требует дополнительной обработки.
      • DDS — формат DirectDraw Surface. Используйте, если игра требует именно DDS‑текстуры.

Универсальные рекомендации для вкладоки 3D

  • Для большинства старых игр: на 3D оставьте None и BMP, а все эффекты (текстуры, туман, wireframe) — выключенными.
  • Если игра вылетает из‑за текстур или тумана: на 3D включите Disable Textures или Disable Fogging — это часто решает проблему.

Msgs: обработка оконных сообщений (WM_*), коррекция поведения при сворачивании/переключении, подавление лишних событий.

Msgs: обработка оконных сообщений (WM_*), коррекция поведения при сворачивании/переключении, подавление лишних событий

Вкладка Msgs (Message handling)

Назначение: управляет обработкой оконных сообщений Windows (WM_*), которые игра получает от системы. Здесь решают проблемы с «зависанием» при сворачивании, некорректным восстановлением окна, «пропаданием» ввода и вылетами из‑за отдельных сообщений. Особенно полезно для старых игр, которые плохо реагируют на определённые системные события.

Что входит в раздел:

  • Стратегия обработки сообщений — как DxWnd реагирует на «проблемные» сообщения.
  • Тонкая фильтрация и управление очередью — контроль над конкретными типами сообщений и механизмом их опроса.

Детальное описание функций:

  • Стратегия обработки сообщений (радиокнопки):
    • Process all messages (выбрано) — обрабатывать все сообщения без исключений. Рекомендуемый вариант по умолчанию: он сохраняет максимальное соответствие поведению Windows и реже вызывает скрытые проблемы.
    • Skip offending messages — пропускать сообщения, которые вызывают сбои. Используйте, если игра стабильно падает при определённых действиях (например, при сворачивании).
    • Defaulting offending messages — заменять «проблемные» сообщения на безопасные значения по умолчанию. Более мягкий вариант, чем пропуск: игра продолжает получать событие, но в «безопасной» форме.
  • Тонкая фильтрация и управление очередью:
    • Peek all messages in queue — просматривать все сообщения в очереди без их удаления. Полезно для отладки, если нужно понять, какие сообщения накапливаются.
    • Filter winposchange messages — фильтровать сообщения об изменении положения и размера окна (WM_WINDOWPOSCHANGED/ING). Включайте, если игра «ломается» при изменении размера окна или при восстановлении из свёрнутого состояния.
    • Add message pump (Win7 comp.) — добавлять дополнительный цикл обработки сообщений (message pump). Помогает на Windows 7 и новее, если игра «зависает» при потере фокуса или при долгом сворачивании.
    • Swallow mouse move messages — поглощать сообщения о движении мыши. Используйте, если курсор «дёргается» или ввод мыши ведёт себя странно при переключении между окнами.
    • Do not notify task deactivation — не уведомлять игру о деактивации задачи (потере фокуса). Полезно, если игра аварийно завершается при сворачивании или при переключении на другое окно.

Универсальные рекомендации для вкладки Msgs

  • Для большинства старых игр: на Msgs оставьте Process all messages и все галочки выключенными — это самый безопасный вариант. 
  • Если игра вылетает при сворачивании/разворачивании: на Msgs включите Do not notify task deactivation и при необходимости Filter winposchange messages.

Sound: управление аудиохуками, коррекция форматов, фиксы старых аудиодвижков (AIL, MCI, WaveOut).

Sound: управление аудиохуками, коррекция форматов, фиксы старых аудиодвижков (AIL, MCI, WaveOut)

Вкладка Sound

Назначение: управляет обработкой аудиоподсистем (DirectSound, waveOut, MIDI) и уровнями громкости для корректного воспроизведения звука в старых играх. Здесь решают проблемы с отсутствием звука, «треском», неправильной работой микшера, зависаниями при потере фокуса и конфликтами с современными аудиодрайверами.

Что входит в раздел:

  • Generic — общие настройки громкости и базовых устройств.
  • MultiMedia — обработка мультимедийных сообщений и специфических API (MCI, waveOut).
  • DirectSound — перехват и эмуляция DirectSound.
  • Global focus — поведение звука при потере/получении фокуса окном.

Детальное описание функций:

  • Generic:
    • Lock volume — блокирует изменение громкости игрой. Полезно, если игра «сбрасывает» системный микшер.
    • Emulate volume — эмулирует управление громкостью на уровне API. Включайте, если игра не может установить нужный уровень громкости.
    • Ползунки (CD volume, Wave volume, Midi volume, General volume): задают начальный уровень громкости для соответствующих подсистем. Для большинства игр оптимально оставить 100 %, чтобы не терять динамику звука.
    • No waveOut device — отключает устройство waveOut. Используйте, если игра «ломается» при попытке инициализировать устаревший аудиовыход.
  • MultiMedia:
    • Fix default MCI Id — исправляет идентификатор устройства MCI. Помогает, если игра не находит аудиоустройство.
    • Safe midi / Auto-repair midi — безопасная обработка MIDI и автоматическое исправление ошибок. Включайте, если в игре «поют» синтезаторы или есть проблемы с MIDI‑треками.
    • Hook ear sound dll — перехватывает вызовы sound DLL. Продвинутая опция для редких конфликтов.
    • Bypass waveOutGetPosition — обходит запрос позиции воспроизведения. Помогает при «треске» и рассинхронизации звука.
    • Hide MUTE controls — скрывает элементы управления MUTE. Редко нужно, может пригодиться, если игра «ломается» из‑за кнопок отключения звука.
    • PlaySound fix — исправляет обработку вызовов PlaySound. Включайте, если отдельные звуки (шаги, выстрелы) не проигрываются.
    • Stop sound on focus lost — останавливает звук при потере фокуса. Полезно, чтобы не слышать «зацикленные» эффекты, когда вы свернули игру.
  • DirectSound:
    • Hook DirectSound — перехватывает вызовы DirectSound. Критично для многих старых игр, использующих эту подсистему.
    • Mute / Emulate pan — отключение звука и эмуляция панорамирования. Используйте для отладки или если стереокартина «сломана».
    • Initialize volume — инициализирует громкость при старте. Помогает, если звук появляется не сразу.
    • No loop / Fix buffer — отключает зацикливание и исправляет буфер. Включайте при «треске» и артефактах.
    • Bypass DirectSound — обходит DirectSound. Используйте, если игра вылетает при инициализации этой подсистемы.
  • Global focus:
    • Default (выбрано) — стандартное поведение Windows. Оптимально в большинстве случаев.
    • ON — всегда активно.
    • OFF — отключено.

Универсальные рекомендации для вкладки Sound

  • Для большинства старых игр: на Sound оставьте Default для Global focus, ползунки на 100 %, а галочки выключенными — этого достаточно для корректного звука. 
  • Если нет звука или он «трещит»: на Sound включите Bypass waveOutGetPosition и при необходимости Fix buffer. Если не помогает — попробуйте Hook DirectSound.
  • Если музыка слишком громкая или перекрывает эффекты: на Sound уменьшите CD volume или General volume до 50–75 %.

CDAudio: эмуляция CD‑аудио, подмена вызовов чтения треков, совместимость с играми, требующими CD.

DxWnd - CDAudio: эмуляция CD‑аудио, подмена вызовов чтения треков, совместимость с играми, требующими CD

Вкладка CDAudio

Назначение: управляет эмуляцией CD‑аудио и работой с приводом для игр, которые воспроизводят музыку напрямую с диска (Red Book audio) или требуют наличия CD в приводе. Здесь решают проблемы с отсутствием музыки, ошибками «CD not found», невозможностью запустить игру без диска и неправильной работой трекинга.

Что входит в раздел:

  • CDA drive — выбор виртуального привода.
  • Режим эмуляции — как именно DxWnd будет «подменять» CD‑аудио.
  • CD audio emulation — тип эмуляции MCI для разных версий Windows.
  • Дополнительные флаги — тонкие настройки для совместимости с конкретными играми.

Детальное описание функций:

  • CDA drive:
    • def. (по умолчанию) — использует стандартный привод системы. Оптимально для большинства случаев.
    • Ручной выбор: можно задать конкретную букву диска, если игра «не видит» нужный привод.
  • Режим эмуляции (радиокнопки):
    • No emulation (выбрано) — без эмуляции. Игра работает с реальным приводом. Используйте, если у вас есть диск и привод исправен.
    • Play from CD — проигрывание аудио напрямую с диска.
    • RIP CD Audio — эмуляция воспроизведения из «рипнутых» (оцифрованных) файлов. Полезно, если у вас нет диска, но есть WAV/MP3‑треки.
    • Use audio files — использование отдельных аудиофайлов вместо диска.
  • CD audio emulation (радиокнопки):
    • Windows 9x MCI — эмуляция MCI для старых игр под Windows 9x. Включайте, если игра выпущена до 2000 года и не видит CD.
    • Windows XP MCI (выбрано) — стандарт для большинства игр эпохи Windows XP. Оптимальный выбор по умолчанию.
    • Windows Vista+ MCI — для игр, адаптированных под Windows Vista и новее.
  • Дополнительные флаги:
    • Lock CD tray — блокирует открытие лотка привода. Полезно, чтобы игра не «выбрасывала» диск при старте.
    • Force track repeat — принудительное повторение трека. Включайте, если фоновая музыка должна играть по кругу.
    • Ignore Device Id. — игнорирует идентификатор устройства. Помогает, если игра «не видит» виртуальный привод из‑за несовпадения ID.
    • Force CDROM present — принудительно сообщает игре, что CD‑привод есть. Критично для игр, которые не стартуют без диска.
    • Hack track frames — исправляет подсчёт кадров трека. Включайте, если музыка «прыгает» или начинается не с начала.
    • Emulate CD pause capability — эмулирует возможность паузы CD‑аудио. Полезно, если игра пытается поставить музыку на паузу и «зависает».
    • Suppress CD audio — отключает CD‑аудио. Используйте, если музыка вызывает вылеты или вам не нужен этот тип звука.
    • Emulate CD mixer — эмулирует микшер CD‑аудио. Помогает при проблемах с балансом громкости между музыкой и эффектами.
    • Emulate CD aux (отмечено галочкой) — эмулирует AUX‑выход CD. Часто требуется для корректного вывода звука в старых играх.
    • Set emulated CD volume — задаёт громкость эмулируемого CD. Используйте, если музыка слишком громкая или тихая.

Универсальные рекомендации для вкладки CDAudio

  • Для большинства старых игр: на CDAudio оставьте No emulation и Windows XP MCI, а Emulate CD aux можно оставить включённым — это повышает совместимость.
  • Если игра не запускается без диска или пишет «CD not found»: на CDAudio включите Force CDROM present и при необходимости Ignore Device Id.
  • Если музыка «прыгает» или начинается не с начала: на CDAudio включите Hack track frames.
  • Если нужно играть без диска: на CDAudio переключитесь на RIP CD Audio или Use audio files и укажите путь к оцифрованным трекам.

I/O: контроль операций ввода‑вывода, эмуляция работы с файлами и устройствами, фиксы путей.

DxWnd - I/O: контроль операций ввода‑вывода, эмуляция работы с файлами и устройствами, фиксы путей

Вкладка I/O

Назначение: управляет эмуляцией дисковых устройств (жёстких дисков и CD‑приводов), переназначением папок и обработкой запросов ввода‑вывода. Здесь решают проблемы с «невидимыми» дисками, ошибками чтения файлов, несовместимостью путей и ситуациями, когда игра требует наличия CD или конкретной структуры папок.

Что входит в раздел:

  • Эмуляция устройств — подмена реальных дисков виртуальными.
  • Переназначение путей — подмена системных папок и путей к данным.
  • Тонкие настройки CD/DVD — управление отображением и типом приводов.
  • I/O tweaks — низкоуровневые исправления для совместимости.

Детальное описание функций:

  • Эмуляция устройств:
    • Fake HD — эмулирует виртуальный жёсткий диск. Рядом — выпадающий список (на скриншоте C:) и поле для указания пути. Используйте, если игра «ломается» при обращении к реальному диску или требует специфическую букву диска.
    • Fake CD — эмулирует виртуальный CD‑привод. Рядом — выпадающий список (на скриншоте D:) и поле для пути. Полезно, если игра требует диск, а у вас есть только образ или папка с данными.
    • CD label — задает метку тома (название диска), которое игра «увидит» при проверке CD. Часто критично для защиты от копирования: игра сверяет метку и не запускается, если она не совпадает.
  • Переназначение путей:
    • Remap system folders — переназначает системные папки (например, My DocumentsTemp). Включайте, если игра не может найти сохранения или временные файлы в современных ОС.
    • Remap HD root folder — переназначает корень жёсткого диска. Полезно, если игра жёстко «зашита» на чтение из корня диска (например, C:\data).
    • Set CD audio path — задаёт путь к файлам аудиодорожек (если используете рипнутые треки вместо диска). Работает в связке с настройками CDAudio.
    • Reset multi‑volume — сбрасывает обработку многотомных архивов/дисков. Включайте, если игра «путается» в томах данных.
    • CD hack — включает набор низкоуровневых исправлений для CD‑приводов. Полезно, если стандартные методы не помогают и игра не видит диск.
    • Folder: — поле для указания папки, которая будет использоваться как корень или источник данных при переназначении.
  • I/O tweaks (низкоуровневые исправления):
    • Fix buffered IO after Win98 — исправляет буферизованный ввод‑вывод для совместимости с поведением Windows 98. Включайте, если игра «зависает» при чтении файлов или выдаёт ошибки доступа.
    • Set CDROM Drive Type — задаёт тип привода (CD‑ROM, DVD‑ROM и т. п.) для эмуляции. Помогает, если игра проверяет тип устройства и не запускается на современных приводах.
    • Hide empty CDROM Drives — скрывает пустые приводы из списка устройств. Полезно, если игра «ломается», видя пустые виртуальные приводы.
    • Hide real CDROM Drives — скрывает реальные приводы. Используйте, если игра должна работать только с эмулированным диском (например, для обхода защиты или тестирования).

Универсальные рекомендации для вкладик I/O

  • Для большинства старых игр: на I/O оставьте все галочки выключенными — это самый безопасный вариант. 
  • Если игра не видит диск или пишет «CD not found»: на I/O включите Fake CD, укажите путь к папке с данными и задайте правильную CD label (метку тома). При необходимости включите CD hack.
  • Если игра не находит файлы или сохранения: на I/O включите Remap system folders и/или Remap HD root folder, указав корректные пути для вашей системы.
  • Если видите пустые приводы, которые «ломают» игру: на I/O включите Hide empty CDROM Drives.

Locale: настройки локали, кодировки, корректное отображение текста для разных языковых версий.

DxWnd - Locale: настройки локали, кодировки, корректное отображение текста для разных языковых версий

Вкладка Locale

Назначение: управляет локализацией и кодировками для корректного отображения текста и работы с файловой системой в старых играх. Здесь решают проблемы с «кракозябрами» вместо кириллицы, ошибками при чтении путей к файлам и некорректным определением языка интерфейса.

Что входит в раздел:

  • Выбор локали и кодовой страницы — язык и кодировка для текстовых строк.
  • Специальные флаги локализации — тонкие настройки для совместимости с разными версиями Windows и движками.

Детальное описание функций:

  • Выбор локали и кодовой страницы:
    • Customize locale — включает ручное управление локалью. Без этой галочки настройки ниже неактивны.
    • Presets — готовые пресеты для популярных локалей. Удобно, если не хочется вручную подбирать значения.
    • Country — код страны (числовое значение). Влияет на региональные настройки (формат даты, чисел и т. п.).
    • Locale — идентификатор локали (например, ru-RU). На скриншоте задано ru-RU — это русская локаль для современных систем.
    • CodePage — кодовая страница для ANSI‑строк. На скриншоте задано 1251 (ANSI - кириллица) — это критически важно для старых игр, которые используют ANSI вместо Unicode. Именно эта настройка чаще всего исправляет «кракозябры» в меню и диалогах.
  • Специальные флаги локализации:
    • Win Class locale — применяет локаль к классам окон. Полезно, если игра создаёт окна с неправильной локалью и из‑за этого некорректно обрабатывает ввод.
    • Pathnames locale — применяет локаль к путям файловой системы. Включайте, если игра не может найти файлы или выдаёт ошибки при работе с путями, содержащими кириллицу.
    • No window text — отключает текст в заголовке окна. Редко нужно, может пригодиться для отладки или если игра «ломается» из‑за текста в заголовке.
    • Fix keyboard type — исправляет тип клавиатуры (раскладку). Полезно, если игра неправильно определяет раскладку и клавиши работают не так, как ожидается.

Универсальные рекомендации для вкладки Locale

  • Для большинства старых игр: на Locale включите Customize locale, задайте Locale: ru-RU и CodePage: 1251 — это обеспечит корректное отображение кириллицы в 95 % случаев.
  • Если в меню и диалогах вместо букв — кракозябры: на Locale убедитесь, что Customize locale включена, а CodePage установлена в 1251. Если не помогает, попробуйте Win Class locale и Pathnames locale.
  • Если игра не видит файлы или выдаёт ошибки при загрузке: на Locale включите Pathnames locale — это поможет корректно обрабатывать пути с кириллицей.
  • Если клавиши работают не так, как ожидается: на Locale включите Fix keyboard type — это исправит определение раскладки.

Libs: внедрение кастомных DLL, приоритеты загрузки, игнорирование отдельных библиотек.

Libs: внедрение кастомных DLL, приоритеты загрузки, игнорирование отдельных библиотек

Вкладка Libs

Назначение:

 отвечает за принудительную подгрузку и перехват специфических библиотек, а также за эмуляцию устаревших графических и мультимедийных API. Это нужно, чтобы «обмануть» старые игры: они запрашивают старые DLL (Glide, WinG32, Bink), а DxWnd либо подменяет их поведение, либо перенаправляет вызовы на современные аналоги.

Детальное описание функций:

MM (multimedia) — работа с устаревшим мультимедиа (MCI, ActiveMovie, кодеки)

Эти флаги решают проблемы с воспроизведением видео и звука в старых играх, которые использовали API Windows 95/98.

  • Remap MCI coordinates — пересчитывает координаты окон MCI (Media Control Interface). Старые игры часто жестко привязывали окна видео к конкретным координатам экрана (например, под разрешение 640×480). При запуске на современном мониторе видео улетает за границы окна или рисуется в углу. Эта опция масштабирует координаты под текущий размер окна DxWnd.
  • No movies / Bypass MCI calls — полностью отключает или пропускает вызовы MCI. Если в игре ролики не нужны или вызывают вылеты, это самый надежный способ избавиться от них.
  • Stretch ActiveMovie window / Fix movies color depth — растягивает окно ActiveMovie (технология видео в Windows 9x) на весь заданный размер и исправляет глубину цвета. Часто старые ролики в 16-битном цвете на современных системах отображаются с «артефактами» или черным экраном — эта опция помогает их корректно отрисовать.
  • Bypass ActiveMovie window — обходит создание отдельного окна для видео, заставляя игру рендерить ролик прямо в игровое окно. Полезно, если видео запускается в отдельном «плавающем» окне, которое не масштабируется.
  • Fix PCM audio / Fix Smack/Bink loop — исправляет ошибки воспроизведения аудио в формате PCM и зацикливания роликов в кодеках Smack и Bink. Частая проблема старых игр: звук обрывается на середине или ролик проигрывается только один раз и не повторяется.

Additional libraries hook — принудительный перехват и подмена библиотек

Здесь DxWnd управляет загрузкой специфических DLL, которые старые игры требуют для графики и видео.

  • Hook Glide libs / No Glide libs — Glide — это API для 3D‑ускорения от 3dfx (карты Voodoo). Современные системы его не поддерживают. Hook Glide libs позволяет DxWnd перехватывать вызовы Glide и перенаправлять их на эмуляторы (например, nGlide), чтобы игра могла использовать 3D‑ускорение. No Glide libs отключает эту логику, если эмулятор не нужен или конфликтует.
  • Hook WinG32 — WinG — это ранний API для быстрой графики в Windows 3.x/95. Сейчас не используется, но некоторые очень старые игры пытаются его вызвать. Перехват позволяет избежать ошибок при инициализации графики.
  • Hook Smackw32 / Hook Binkw32 — перехват вызовов библиотек Smack и Bink (видеокодеки RAD Game Tools). Это нужно, чтобы DxWnd мог вмешаться в процесс декодирования видео и исправить ошибки масштабирования, цвета или синхронизации звука, которые возникают при запуске на новых ОС.

Kernel32 (heap) — управление памятью и эмуляция поведения Windows 9x

Эти настройки влияют на то, как игра работает с оперативной памятью. Некоторые старые игры полагаются на специфическое поведение менеджера памяти Windows 95/98, которое в Windows 10/11 работает иначе, что приводит к вылетам.

  • Virtual heap / Virtual process heap — создает виртуальную кучу памяти для совместимости. Помогает, если игра падает при выделении больших блоков памяти из‑за различий в работе аллокаторов между старыми и новыми ОС.
  • Emulate Win9X heap — эмулирует поведение менеджера памяти Windows 9x. Это «тяжелая артиллерия»: если игра жестко завязана на особенностях работы кучи в Win98 (например, ожидает определенных адресов или поведения при переполнении), эта опция может стабилизировать запуск.
  • Heap pad allocation / Zero memory — добавляет «зазоры» между блоками памяти или обнуляет выделенную память. Используется для отладки и исправления ошибок доступа к неинициализированной памяти, которые в старых играх могли быть незаметны, а на новых ОС приводят к крашам.
  • Safe Heap / Repair — включает дополнительные проверки целостности кучи и попытки «починить» поврежденные структуры данных в памяти. Полезно при редких и трудноуловимых вылетах, связанных с утечками памяти.
  • Fix GlobalUnlock — исправляет ошибки при разблокировке глобальных объектов памяти. В старых API (особенно в 16‑битной эмуляции) были нюансы с блокировкой/разблокировкой ресурсов, которые современные ОС обрабатывают строже.

DirectShow — работа с видеопотоками в современных ОС

DirectShow — это мультимедийный фреймворк Windows, который используется для воспроизведения видео.

  • Hook DirectShow / Scale DirectShow — перехватывает вызовы DirectShow и масштабирует видеопоток под размер окна игры. Это критично, если игра запускает видео через DirectShow, но не масштабирует его под текущее разрешение — в результате вы видите маленький прямоугольник видео в углу большого окна.
  • Ignore add. filter / Suppress IMVR classes / Suppress LAV filters — игнорирует или отключает дополнительные фильтры и декодеры (например, популярные LAV Filters), которые могут конфликтовать с игрой. Иногда сторонние кодеки перехватывают видеопоток раньше, чем это сделает игра, и ломают рендеринг.
  • Ignore graph errors — игнорирует ошибки построения графа фильтров DirectShow. Позволяет игре продолжить работу, даже если система не может корректно инициализировать цепочку обработки видео.

Как выбрать нужные опции

  1. Если вылетают ролики или видео в углу: начните с группы MM (Remap MCI coordinates, Stretch ActiveMovie) и DirectShow (Hook и Scale).
  2. Если игра не запускается и сразу падает: попробуйте опции из Kernel32 (heap) (Emulate Win9X heap, Safe Heap) — часто проблема именно в несовместимости работы с памятью.
  3. Если игра требует 3dfx Glide: обязательно включите Hook Glide libs и убедитесь, что у вас установлен эмулятор nGlide.
  4. Если не знаете, что выбрать: не включайте всё подряд. Каждая дополнительная опция — это лишний код, который внедряется в процесс игры и может вызвать новые конфликты. Включайте опции точечно, по одной, проверяя результат.

GDI: отдельный контроль перехвата GDI‑вызовов, форсирование GDI‑рендеринга, обработка шрифтов и примитивов.

DxWnd - GDI: отдельный контроль перехвата GDI‑вызовов, форсирование GDI‑рендеринга, обработка шрифтов и примитивов

Вкладка GDI

Назначение: управляет эмуляцией и перехватом вызовов GDI (Graphics Device Interface) для корректного отображения 2D‑графики, шрифтов, палитр и диалоговых окон в старых играх. Здесь решают проблемы с «поехавшими» шрифтами, неправильным отображением цветов, «мигающими» окнами, ошибками палитры и несовместимостью с современными драйверами.

Что входит в раздел:

  • Эмуляция GDI — выбор режима обработки вызовов GDI.
  • Управление цветами и палитрами — фиксация системных цветов, палитр и гамма‑коррекции.
  • Флаги GDI — тонкие настройки для исправления конкретных проблем с отрисовкой, шрифтами и окнами.

Детальное описание функций:

  • Эмуляция GDI (радиокнопки):
    • No GDI handling (выбрано) — без эмуляции. DxWnd не вмешивается в вызовы GDI. Оптимально для большинства игр, если нет проблем с графикой.
    • Scaled GDI calls — масштабирует вызовы GDI. Полезно, если игра запускается в маленьком окне, а GDI‑графика не масштабируется.
    • Emulated Device Context — эмулирует контекст устройства (Device Context). Включайте, если игра «ломается» при создании или копировании DC.
    • Share ddraw and GDI DC — совместное использование DirectDraw и GDI DC. Полезно для игр, которые смешивают GDI и DirectDraw.
    • Async fast mode — асинхронный быстрый режим. Ускоряет обработку GDI‑вызовов. Используйте, если игра «тормозит» из‑за GDI.
    • Hybrid — гибридный режим. Комбинирует несколько методов эмуляции. Включайте, если другие режимы не помогают.
    • Fix clipper — исправляет работу клиппера (отсечения). Полезно, если часть изображения обрезается неправильно.
  • Управление цветами и палитрами:
    • Lock sys colors — блокирует изменение системных цветов. Полезно, если игра «ломает» цветовую схему Windows.
    • Lock reserved palette entries — блокирует зарезервированные записи палитры. Помогает, если цвета отображаются неправильно из‑за конфликта палитр.
    • Disable setting gamma ramp — отключает установку гамма‑рампы. Включайте, если игра «затемняет» экран или меняет яркость.
    • PAL DIB Emulation — эмуляция DIB‑палитры. Полезно для старых игр, которые используют 8‑битную палитру.
    • Refresh on palette Realize (отмечено галочкой) — обновляет палитру при её реализации. Часто требуется для корректного отображения цветов в 8‑битных режимах.
  • Флаги GDI:
    • Force HALFTONE — принудительно устанавливает режим HALFTONE для масштабирования. Полезно, если изображения «размываются» или отображаются с артефактами.
    • Scale font size — масштабирует размер шрифтов. Включайте, если текст слишком мелкий или крупный.
    • High quality fonts — включает высококачественное отображение шрифтов. Полезно, если текст «мылится» или выглядит нечётким.
    • Shrink font width — уменьшает ширину шрифтов. Используйте, если текст не помещается в отведённые области.
    • Suppress FillRect — подавляет заполнение прямоугольников. Полезно, если фон «перекрашивается» неправильно.
    • Synchronize GDI to ddraw palette — синхронизирует GDI с палитрой DirectDraw. Включайте, если цвета GDI и DirectDraw не совпадают.
    • Suppress Win common errors — подавляет стандартные ошибки Windows. Полезно, если игра «вылетает» из‑за ошибок GDI.
    • Suppress message dialogs — подавляет диалоговые окна ошибок. Используйте, если игра постоянно показывает окна с ошибками.
    • Invalidate full rect — принудительно перерисовывает весь прямоугольник. Полезно, если часть экрана «зависает» или не обновляется.
    • Bypass setting the Pixel Format — обходит установку формата пикселей. Включайте, если игра «ломается» при попытке установить формат пикселей.
    • Remap Client Rect (отмечено галочкой) — переназначает клиентскую область окна. Часто требуется для корректного отображения окон в нестандартных режимах.
    • Stretch dialogs — растягивает диалоговые окна. Полезно, если окна отображаются в маленьком размере.
    • Scale CBT Windows Hook — масштабирует хуки CBT (Computer Based Training). Используйте, если игра использует CBT‑хуки и они работают некорректно.
    • Window auto‑repaint — автоматическая перерисовка окон. Включайте, если окна «мигают» или не обновляются.
    • Fix BitMap color — исправляет цвета битмапов. Полезно, если изображения отображаются с неправильными цветами.

Универсальные рекомендации для вкладки GDI

  • Для большинства старых игр: на GDI оставьте No GDI handling и включите Refresh on palette Realize и Remap Client Rect — это решает большинство проблем с цветами и окнами.
  • Если шрифты или HUD‑элементы отображаются неправильно: на GDI включите Scale font size и при необходимости High quality fonts.
  • Если цвета отображаются неправильно или «поехали»: на GDI включите Refresh on palette Realize и Synchronize GDI to ddraw palette. Если игра использует 8‑битную палитру — включите PAL DIB Emulation.
  • Если игра «вылетает» из‑за ошибок GDI или показывает окна с ошибками: на GDI включите Suppress Win common errors и Suppress message dialogs.
  • Если окна отображаются в маленьком размере или не масштабируются: на GDI включите Stretch dialogs и Remap Client Rect.

Compat.: общие параметры совместимости, эмуляция старых ОС, системные флаги для стабилизации запуска.

Compat.: общие параметры совместимости, эмуляция старых ОС, системные флаги для стабилизации запуска

Вкладка Compat (Compatibility)

Назначение: это «тяжёлая артиллерия» для запуска старых игр на современных ОС: здесь эмулируют старые версии Windows, ограничивают ресурсы, перехватывают системные вызовы и маскируют окружение.

Детальное описание функций:

Блок Tweaks (основные системные исправления)

Назначение: низкоуровневые исправления для совместимости с современными ОС и драйверами.

Ключевые опции:

  • Block process priority class — блокирует изменение класса приоритета процесса. Полезно, если игра «ломается» при попытке повысить свой приоритет.
  • Set single core process affinity / Set last core affinity — принудительно привязывает процесс к одному ядру (или к последнему ядру). Критично для старых игр, не поддерживающих многопоточность: на многоядерных CPU они могут вылетать или зависать.
  • Limit free disk area / Limit free RAM / Limit video memory / Limit texture memory — искусственно ограничивает доступные ресурсы. Включайте, если игра «ломается» из‑за слишком большого объёма памяти или диска (старые движки не умеют корректно обрабатывать большие значения).
  • Disable performance counter — отключает счётчики производительности. Помогает, если игра использует устаревшие API для замеров времени и из‑за этого идёт в рассинхроне или вылетает.
  • Bypass font unsupported api — обходит вызовы API для шрифтов, которые не поддерживаются в новых ОС. Используйте, если игра не может инициализировать шрифты.
  • Reserve legacy memory segments — резервирует сегменты памяти в стиле старых ОС. Полезно для DOS‑игр и очень старых Windows‑игр, которые ожидают специфическую карту памяти.
  • Win7 color fix — исправляет обработку цветов в Windows 7 и новее. Включайте, если цвета отображаются неправильно (например, «выцветшие» или инвертированные).
  • Pretend Win visible & on top — заставляет систему «думать», что окно всегда видно и поверх других. Помогает, если игра «зависает» при сворачивании или перекрытии другим окном.
  • Win insulation — изолирует процесс от некоторых системных вызовов. Продвинутая опция для редких конфликтов.
  • Disable CPU MMX support — отключает поддержку MMX‑инструкций процессора. Включайте, если игра использует MMX и на современных CPU возникают ошибки вычислений (редкий случай).
  • Fake Pentium III — заставляет игру «думать», что она запущена на процессоре Pentium III. Полезно, если игра проверяет тип CPU и отказывается запускаться на современных процессорах.
  • Safe MSVCRT allocs — безопасное управление памятью через MSVCRT. Помогает при ошибках выделения памяти в старых играх.
  • Legacy events / waveOut — эмулирует устаревшие события и подсистему waveOut. Включайте, если игра не может обработать системные события или аудиовызовы.

Блок Tweaks(2) (продвинутые исправления и обработка ошибок)

Назначение: исправление ошибок загрузки библиотек, эмуляция системных компонентов и обработка исключений.

Ключевые опции:

  • Fix FreeLibrary / Skip FreeLibrary recursion — исправляет ошибки при выгрузке библиотек. Включайте, если игра «вылетает» при закрытии или переключении окон.
  • Fix LoadLibrary error / Fix LoadLibrary altered search path — исправляет ошибки загрузки DLL и пути поиска библиотек. Полезно, если игра не может найти нужные DLL или загружает неправильные версии.
  • Fix AdjustWindowRect — исправляет расчёт размеров окна. Включайте, если окно игры имеет неправильные размеры или «обрезано».
  • Emulate Windows Help — эмулирует систему справки Windows. Редко нужно, но может помочь, если игра пытается открыть файл справки и из‑за этого «зависает».
  • Disable DEP / Handle DEP exceptions — отключает или обрабатывает исключения Data Execution Prevention (DEP). Включайте, если игра «вылетает» с ошибкой DEP.
  • Handle Exceptions / Set NOPs — обрабатывает исключения и заменяет проблемные инструкции на «пустые» (NOP). Продвинутые опции для редких случаев, когда игра выполняет недопустимые инструкции.
  • Handle DEP exceptions — обрабатывает исключения DEP без полного отключения защиты. Более безопасный вариант, чем полное отключение DEP.

Блок Fake Version (эмуляция версии Windows)

Назначение: заставляет игру «думать», что она запущена на старой версии Windows.

Доступные варианты:

  • Windows 95 / Windows 98/SE / Windows ME — эмулирует соответствующую версию Windows. Включайте, если игра явно требует одну из этих ОС и не запускается на современных системах.
    • Важно: эмуляция версии Windows — это не полная виртуальная машина, а подмена идентификаторов системы. Некоторые игры могут всё равно не запуститься из‑за несовместимости драйверов или API.

Блок GOG (специальные настройки для игр из GOG)

Назначение: исправление проблем с играми, распространяемыми через GOG, которые могут иметь свои собственные лаунчеры и библиотеки.

Ключевые опции:

  • Hook GOG libs — перехватывает вызовы библиотек GOG. Включайте, если игра из GOG «ломается» при инициализации своих библиотек.
  • Bypass GOG libs — обходит библиотеки GOG. Используйте, если игра не запускается из‑за конфликтов с библиотеками GOG.

Универсальные рекомендации для вкладки Compat

  • Для большинства старых игр: начните с минимального набора: включите Set single core process affinity (чтобы избежать проблем с многопоточностью) и Fake Version (выберите версию Windows, под которую была выпущена игра).
  • Если игра вылетает при запуске или сразу после: попробуйте Disable DEP или Handle DEP exceptions, а также Fix LoadLibrary error.
  • Если игра зависает при сворачивании или перекрытии другим окном: включите Pretend Win visible & on top и Win insulation.
  • Если игра не может найти DLL или выдаёт ошибки загрузки: включите Fix LoadLibrary error и Fix LoadLibrary altered search path.
  • Если игра использует устаревшие API и не запускается: попробуйте Bypass font unsupported api и Legacy events / waveOut.
  • Если игра проверяет тип CPU и не запускается: включите Fake Pentium III.
  • Если игра «ломается» из‑за слишком большого объёма памяти или диска: используйте Limit free RAMLimit free disk area и другие ограничители ресурсов.
  • Если игра использует MMX и выдаёт ошибки: попробуйте Disable CPU MMX support.
  • Для игр из GOG: при проблемах с запуском попробуйте Hook GOG libs или Bypass GOG libs.

Registry: эмуляция записей реестра, подмена ключей, фиксы для старых движков.

DxWnd - Registry: эмуляция записей реестра, подмена ключей, фиксы для старых движков

Вкладка Registry

Назначение: эмуляция и подмена записей системного реестра Windows для корректного запуска старых игр, которые проверяют наличие ключей, путей к файлам или специфических настроек. Здесь решают проблемы вида «игра не видит установленную версию DirectX», «требует путь к CD‑диску», «вылетает при проверке ключей реестра» и т. п.

Что входит в раздел:

  • Эмуляция и переопределение реестра — добавление отсутствующих или подмена существующих ключей.
  • Флаги WOW64 — управление доступом к 32‑ и 64‑битным веткам реестра в современных ОС.
  • Виртуальный реестр — текстовое поле для ручного ввода или импорта правил подмены.

Детальное описание функций:

  • Emulate Registry — добавляет в реестр отсутствующие ключи и значения, которых нет в текущей ОС.
    • Когда включать: если игра при запуске проверяет наличие ключа (например, путь к папке установки или версию библиотеки) и не стартует из‑за его отсутствия.
  • Override Registry — перезаписывает существующие ключи реестра своими значениями.
    • Когда включать: если игра «ломается» из‑за неверных или несовместимых значений в реестре (например, неверный путь к CD‑диску или устаревшая версия компонента).
  • Set KEY_WOW64_64KEY flag — заставляет процесс обращаться к 64‑битной ветке реестра даже в 32‑битной среде.
    • Когда включать: если игра — 32‑битное приложение, но должна читать 64‑битные ключи (актуально на 64‑битных Windows).
  • Set KEY_WOW64_32KEY flag — заставляет процесс обращаться к 32‑битной ветке реестра.
    • Когда включать: если игра «путает» ветки реестра и читает неверные значения из‑за особенностей WOW64.
  • Virtual registry (текстовое поле) — сюда вручную или через импорт добавляют правила подмены в формате, понятном DxWnd.
    • Как использовать: в поле вставляют список ключей и значений, которые нужно эмулировать или переопределить. Часто такие правила берут с форумов по конкретной игре или из готовых профилей DxWnd.

Универсальные рекомендации для вкладки Registry

  • Для большинства старых игр: начните с Emulate Registry и вручную пропишите в поле Virtual registry только те ключи, которые явно требуются игрой (обычно это 1–3 строки). Не включайте Override Registry без необходимости — это может сломать работу других программ.
  • Если игра требует путь к CD‑диску или папке установки: используйте Emulate Registry и добавьте в Virtual registry соответствующие ключи с правильными путями.
  • Если игра проверяет версию компонента или библиотеки: используйте Override Registry, чтобы подменить значение на то, которое игра ожидает увидеть.
  • Если игра — 32‑битная, но не видит 64‑битные ключи: включите Set KEY_WOW64_64KEY flag.
  • Если игра «путает» ветки реестра: попробуйте Set KEY_WOW64_32KEY flag.

Notes: пользовательские заметки к профилю, комментарии, справочная информация без влияния на запуск.

Notes: пользовательские заметки к профилю, комментарии, справочная информация без влияния на запуск

Вкладка Notes

Назначение: хранение пользовательских заметок и комментариев к профилю. Это не техническая настройка, а «блокнот» для самого себя: чтобы не забыть, какие галочки включены, зачем они нужны и какие проблемы решают.

Что входит в раздел:

  • Текстовое поле Notes — свободное пространство для ввода текста.

Детальное описание функций:

  • Notes — сюда записывают:
    • Краткое описание проблемы, которую решает профиль (например, «чёрный экран в OpenGL, исправлено через Hook wgl context calls»).
    • Список включённых опций и их назначение (чтобы через месяц не гадать, зачем была нужна галочка).
    • Версию игры, ОС и аппаратную конфигурацию, на которой профиль проверен.
    • Ссылки на источники правил для Virtual registry или советы по запуску.
    • Временные пометки вроде «не включать Limit free RAM — игра вылетает» или «обязательно включить Fake Pentium III».

Универсальные рекомендации для вкладки Notes

  • Для вкладки Notes: сразу после настройки профиля запишите в поле Notes краткое описание: «включены Emulate Registry и Override Registry; в Virtual registry добавлены ключи для CD‑диска и версии DirectX; проверено на Win10 x64». Это сэкономит время при повторной настройке или передаче профиля другому человеку.

OpenGL: параметры совместимости для игр на OpenGL, эмуляция контекста, коррекция вызовов.

DxWnd - OpenGL: параметры совместимости для игр на OpenGL, эмуляция контекста, коррекция вызовов

Вкладка OpenGL

Назначение: управляет перехватом и эмуляцией вызовов OpenGL и связанных библиотек (GLUT, WGL) для корректного запуска и отображения графики в старых играх. Здесь решают проблемы с «чёрным экраном», артефактами, неправильным масштабированием текстур, несовместимостью расширений и ошибками инициализации контекста.

Что входит в раздел:

  • Перехват API и хуки — включение перехвата вызовов OpenGL, GLUT и WGL.
  • Исправления рендеринга и текстур — исправление параметров масштабирования, привязки текстур и альфа‑смешивания.
  • Управление viewport и расширениями — контроль области отрисовки и обработка расширений OpenGL.

Детальное описание функций:

  • Перехват API и хуки:
    • Hook OpenGL — перехватывает вызовы OpenGL. Включайте, если игра использует OpenGL и не запускается или показывает чёрный экран.
    • Force Hook — принудительный перехват, даже если DxWnd не обнаруживает использование OpenGL. Полезно для «капризных» игр.
    • Hook glut32 — перехватывает вызовы библиотеки GLUT (OpenGL Utility Toolkit). Включайте, если игра использует GLUT и возникают проблемы с инициализацией окна или ввода.
    • Hook wgl context calls (отмечено галочкой) — перехватывает вызовы WGL (Windows OpenGL) для управления контекстом рендеринга. Часто требуется для корректного создания окна и переключения буферов.
  • Исправления рендеринга и текстур:
    • Fix glPixelZoom args — исправляет аргументы функции glPixelZoom. Помогает, если изображение «рассыпается» или масштабируется неправильно.
    • Scale glBitmaps — масштабирует растровые изображения (bitmaps), используемые в OpenGL. Полезно, если шрифты или HUD‑элементы отображаются некорректно.
    • Fix glBindTexture texture — исправляет ошибки привязки текстур. Включайте, если текстуры не загружаются или отображаются как чёрный квадрат.
    • Fix Clamp — исправляет режим «зажима» (clamping) текстур. Помогает, если края текстур «разъезжаются» или повторяются неправильно.
    • Fix Sample Alpha to Coverage — исправляет обработку альфа‑канала для мультисэмплинга. Включайте, если полупрозрачные объекты отображаются с артефактами.
  • Управление viewport и расширениями:
    • Scale desktop viewport only (отмечено галочкой) — масштабирует область отрисовки только под размер рабочего стола. Помогает, если игра запускается в маленьком окне или с неправильными пропорциями.
    • Lock Viewport — блокирует изменение области отрисовки. Полезно, если игра «сбрасывает» viewport и изображение «уезжает» за пределы экрана.
    • OpenGL extensions lie — заставляет игру «думать», что поддерживаются определённые расширения OpenGL. Используйте, если игра проверяет наличие расширений и отказывается запускаться.
    • OpenGL extensions trim — обрезает список поддерживаемых расширений. Полезно, если игра «ломается» из‑за слишком длинного списка или несовместимых расширений.
    • Disable scissor test — отключает тест отсечения (scissor test). Включайте, если часть изображения обрезается неправильно.
  • Дополнительно:
    • Custom OpenGL library — поле для указания пути к кастомной библиотеке OpenGL (например, для использования специфической версии драйвера или обертки).

Универсальные рекомендации для вкладки OpenGL

  • Для большинства старых игр: на OpenGL оставьте все галочки выключенными, кроме Hook wgl context calls и Scale desktop viewport only — они повышают совместимость без риска сломать игру. 
  • Если игра показывает чёрный экран или не запускается: на OpenGL включите Hook OpenGL и Force Hook. Если не помогает — попробуйте Hook glut32.
  • Если текстуры не загружаются или отображаются как чёрный квадрат: на OpenGL включите Fix glBindTexture texture и при необходимости Fix glPixelZoom args.
  • Если шрифты или HUD‑элементы отображаются неправильно: на OpenGL включите Scale glBitmaps

SDL: настройки для проектов на SDL, обработка окна, ввода и аудиостека.

DxWnd - SDL: настройки для проектов на SDL, обработка окна, ввода и аудиостека.

Вкладка SDL

Назначение: управляет перехватом и эмуляцией библиотеки SDL (Simple DirectMedia Layer) и SDL2, которые используются в играх для работы с графикой, звуком и вводом. Здесь решают проблемы с запуском SDL‑игр на современных ОС, некорректным масштабированием, «чёрным экраном» и несовместимостью с новыми драйверами.

Что входит в раздел:

  • Перехват API — включение хуков для SDL и SDL2.
  • Эмуляция поверхностей и масштабирование — исправление рендеринга и пропорций.
  • Расширенные настройки — дополнительные исправления для сложных случаев.

Детальное описание функций:

  • Перехват API:
    • Hook SDL — перехватывает вызовы SDL. Включайте, если игра использует SDL и не запускается или работает некорректно.
    • Hook SDL2 — перехватывает вызовы SDL2. Аналогично, но для более новых версий библиотеки.
  • Эмуляция поверхностей и масштабирование:
    • SDL surface emulation — эмулирует работу с поверхностями (surfaces) SDL. Полезно, если игра «рисует» неправильно или показывает артефакты.
    • Force stretching — принудительно растягивает изображение на весь экран или заданный размер. Помогает, если игра запускается в маленьком окне и не масштабируется.
    • Scale mouse position — масштабирует позицию мыши под изменённое разрешение. Критично при использовании Force stretching: без этой опции курсор не будет совпадать с кликами.
  • Расширенные настройки:
    • Extend SDL Hook — расширяет перехват вызовов SDL. Включайте, если базовые хуки не решают проблему и игра всё ещё «ломается» при инициализации графики.

Универсальные рекомендации для вкладки SDL

  • Для большинства старых игр: на SDL также оставьте все галочки выключенными: включайте их только при проблемах с конкретными SDL‑играми.
  • Если игра запускается в маленьком окне и не масштабируется: на SDL включите Force stretching и обязательно Scale mouse position, чтобы курсор совпадал с кликами.
  • Если SDL‑игра не запускается или показывает чёрный экран: на SDL включите Hook SDL (или Hook SDL2, если игра использует эту версию) и при необходимости Extend SDL Hook.

DirectX: настройки эмуляции DirectDraw и ранних Direct3D‑вызовов, обработка палитр и поверхностей.

DxWnd - DirectX: настройки эмуляции DirectDraw и ранних Direct3D‑вызовов, обработка палитр и поверхностей

DirectX version hook

Назначение: подменяет версию DirectX, которую «видит» игра при инициализации. Это не обновляет DirectX в системе, а перехватывает вызовы DirectDrawCreate / DirectDrawCreateEx и возвращает игре «нужную» версию интерфейса.

Что решает:
Игра проверяет версию API и отказывается стартовать на современных ОС.
Игра инициализирует неподходящие компоненты (например, пытается использовать функции, которых нет в DirectDraw 7, или наоборот, не использует нужные).
Игра падает при создании устройства из‑за несовместимости с драйвером.

Детальное описание пунктов:

  • Automatic
    Что делает: DxWnd автоматически подбирает версию DirectX под игру и ОС, анализируя сигнатуры исполняемого файла, типичные проблемы совместимости и текущие настройки системы.
    Что подменяется: вызовы DirectDrawCreate / DirectDrawCreateEx и возвращаемые интерфейсы так, чтобы игра получала версию, с которой у неё исторически нет критических конфликтов.
    Когда включать: в 90% случаев это лучший выбор. Ставьте первым, если не знаете, какая версия нужна. Если игра не стартует или показывает чёрный экран — переходите к ручным настройкам.

  • DirectX 1–6
    Что делает: подменяет версию на одну из ранних (1–6), возвращая интерфейс, совместимый со старыми играми эпохи Windows 95/98.
    Что подменяется: версии интерфейсов DirectDraw и связанных компонентов, чтобы игра не пыталась использовать функции, появившиеся в DirectX 7 и новее.
    Когда включать: для очень старых игр (примерно до 1996–1997), которые «ломаются» при попытке инициализировать более новые интерфейсы. Часто помогает, если игра падает на этапе создания устройства или показывает чёрный экран сразу после запуска.

  • DirectX 7
    Что делает: подменяет версию на DirectX 7 — наиболее востребованный вариант для игр конца 90‑х — начала 2000‑х.
    Что подменяется: интерфейс DirectDraw так, чтобы игра получала именно DX7, даже если в системе установлен более новый DirectX.
    Когда включать: если игра рассчитана на DX7 и падает при попытке использовать DX8/9 (частая проблема у проектов 1998–2001 годов). Это «золотой стандарт» для большинства 2D‑игр той эпохи.

  • DirectX 8
    Что делает: подменяет версию на DirectX 8, возвращая интерфейсы, ожидаемые играми начала 2000‑х.
    Что подменяется: версии DirectDraw и смежных компонентов, чтобы игра не пыталась использовать DX9‑функции.
    Когда включать: если игра явно требует DX8 и падает при инициализации на более новых версиях. Встречается реже, чем DX7, но бывает критично для некоторых проектов 2001–2003 годов.

  • DirectX 9
    Что делает: подменяет версию на DirectX 9, возвращая интерфейсы, ожидаемые играми середины 2000‑х.
    Что подменяется: версии DirectDraw и связанных компонентов, чтобы игра не пыталась использовать DX10/11‑функции.
    Когда включать: если игра рассчитана на DX9 и падает при попытке инициализировать более новые интерфейсы. Полезно для проектов 2004–2007 годов, которые могут некорректно работать на DX10/11.

  • DirectX 10
    Что делает: подменяет версию на DirectX 10, возвращая интерфейсы, ожидаемые играми конца 2000‑х.
    Что подменяется: версии DirectDraw и смежных компонентов, чтобы игра не пыталась использовать DX11‑функции.
    Когда включать: если игра рассчитана на DX10 и падает при попытке инициализировать DX11. Встречается редко, но бывает критично для некоторых проектов 2007–2009 годов.

  • DirectX 11
    Что делает: подменяет версию на DirectX 11, возвращая интерфейсы, ожидаемые современными играми.
    Что подменяется: версии DirectDraw и связанных компонентов, чтобы игра не пыталась использовать более новые API (например, DX12).
    Когда включать: если игра рассчитана на DX11 и падает при попытке инициализировать более новые интерфейсы. Для старых игр (до 2010 года) почти никогда не требуется.

  • None
    Что делает: отключает подмену версии DirectX. Игра получает «честную» версию, которую видит система.
    Что подменяется: ничего. Все вызовы DirectX идут напрямую к системным библиотекам без перехвата.
    Когда включать: если подмена версии вызывает проблемы (например, чёрный экран, артефакты, вылеты), а игра способна корректно работать без неё. Используйте как контрольную настройку: если с None игра работает — подмена не нужна.

Практические сценарии и порядок проверки

Универсальный старт: ставьте Automatic. В большинстве случаев этого достаточно.
Игра падает при старте или чёрный экран: попробуйте DirectX 7 (для старых 2D‑игр) или **DirectX 9 **(для проектов середины 2000‑х).
Игра «ломается» при проверке версии: если игра явно пишет «требуется DirectX X» и не стартует, выберите в списке именно эту версию.
Подмена вызывает проблемы: если с любой версией из списка игра показывает артефакты или вылетает, ставьте None и проверяйте, не конфликтует ли сама подмена с другими настройками профиля (например, с эмуляцией оверлеев или режимами рендерера).
Проверка гипотезы: если не уверены, какая версия нужна, действуйте по порядку: Automatic → DirectX 7 → DirectX 9 → None. На каждом шаге запускайте игру через кнопку Try… и фиксируйте результат.


Renderer

Назначение: он определяет, как именно DxWnd будет «перехватывать» и выводить графику игры: через первичную поверхность, буфер, GDI и т. д.

Детальное описание пунктов:

  • primary surface (выбрано по умолчанию)
    Что делает: рендерит напрямую в первичную поверхность (Primary Surface) DirectDraw. Это «родной» способ вывода для старых игр: они пишут пиксели сразу в ту поверхность, которая отображается на мониторе.
    Что происходит под капотом: DxWnd перехватывает вызовы IDirectDrawSurface7::GetDC / Flip / Blt и перенаправляет вывод в окно, сохраняя логику игры.
    Когда включать: в 80–90% случаев это лучший выбор. Ставьте первым для классических 2D‑игр (стратегии, платформеры, квесты 90‑х). Если игра показывает чёрный экран — переходите к следующим вариантам.

  • none
    Что делает: отключает специальную обработку рендерера. Вывод графики идёт «как есть», без эмуляции поверхностей.
    Что происходит под капотом: DxWnd не подменяет логику работы с поверхностями; игра работает с DirectDraw напрямую.
    Когда включать: если игра не использует классическую модель DirectDraw (например, рисует через GDI или OpenGL поверх окна) и любые режимы рендерера ломают картинку. Редко, но бывает полезно для гибридных движков.

  • primary buffer
    Что делает: использует первичный буфер (часто синоним или вариация primary surface) с иной логикой синхронизации.
    Что происходит под капотом: отличается обработкой Flip и обновлением буферов; может обходить некоторые конфликты драйверов.
    Когда включать: если primary surface даёт чёрный экран или мерцание, а backbuffer ещё не пробовали. Промежуточный вариант для диагностики.

  • locked surface
    Что делает: рендерит в «заблокированную» поверхность (locked surface), где память поверхности явно заблокирована для прямого доступа.
    Что происходит под капотом: игра получает указатель на память поверхности через Lock и пишет пиксели напрямую; DxWnd эмулирует эту блокировку и синхронизирует вывод.
    Когда включать: если игра активно использует Lock/Unlock для манипуляции пикселями (процедурная генерация, эффекты, палитры) и при этом показывает чёрный экран или артефакты в других режимах.

  • GDI
    Что делает: полностью обходит DirectDraw и выводит графику через GDI (Graphics Device Interface) Windows.
    Что происходит под капотом: все операции Blt/Flip перенаправляются в GDI‑контекст окна (HDC). Это «самый совместимый», но медленный путь.
    Когда включать: если игра не запускается ни в одном DirectDraw‑режиме, показывает чёрный экран или падает при инициализации. Часто спасает старые игры на современных ОС, но может давать низкую производительность и проблемы с прозрачностью.

  • SDL / SDL2
    Что делает: перенаправляет вывод в контекст SDL (Simple DirectMedia Layer) или SDL2.
    Что происходит под капотом: DxWnd эмулирует SDL‑видеоподсистему поверх DirectDraw, позволяя SDL‑обёрткам корректно работать.
    Когда включать: если игра собрана как SDL‑приложение (часто встречается у портов и ремастеров старых игр) и не стартует в DirectDraw‑режимах.

  • OpenGL
    Что делает: перенаправляет вывод в OpenGL‑контекст.
    Что происходит под капотом: DxWnd перехватывает DirectDraw‑вызовы и транслирует их в OpenGL‑команды для отрисовки в окне.
    Когда включать: если игра использует OpenGL поверх DirectDraw (гибридные движки) или если GDI/DirectDraw‑режимы дают чёрный экран. Полезно для некоторых портов и движков середины 2000‑х.

  • D3D9 (Direct3D 9)
    Что делает: перенаправляет вывод в Direct3D 9.
    Что происходит под капотом: DirectDraw‑операции эмулируются через D3D9‑спрайты и текстуры.
    Когда включать: если игра «хочет» 3D‑ускорение, но падает в DirectDraw‑режимах, или если GDI/OpenGL не помогают. Часто помогает на системах с «чистыми» D3D‑драйверами без поддержки старого DirectDraw.

Практические сценарии и порядок проверки

Универсальный старт: ставьте primary surface. Это оптимально для большинства старых 2D‑игр.
Чёрный экран сразу после запуска: попробуйте GDI — это самый надёжный «страховочный» вариант. Если игра запустится, можно позже искать более производительный режим.
Мерцание, «дёрганая» анимация, пропуски кадров: проверьте primary buffer или locked surface — они меняют логику синхронизации буферов.
Игра использует SDL/OpenGL/D3D9: если известно, что движок гибридный, сразу пробуйте SDL2OpenGL или D3D9.
Проверка гипотезы: если не уверены, действуйте по порядку: primary surface → GDI → primary buffer → locked surface → SDL2 → OpenGL → D3D9. На каждом шаге запускайте игру через кнопку Try… и фиксируйте результат.

Важные нюансы

Не смешивайте режимы: в одном профиле DxWnd должен быть выбран только один режим рендерера.
Совместимость с другими настройками: режим рендерера влияет на работу Flip emulationAuto Primary Surface Blit и DirectDraw Surface handling. Например, в режиме GDI эмуляция Flip почти не нужна, а в primary surface она может быть критична.
Производительностьprimary surface и locked surface — самые быстрые; GDI — самый медленный, но самый совместимый.
Прозрачность и альфа‑канал: режимы GDISDL2OpenGLD3D9 могут по‑разному обрабатывать прозрачность. Если появляются «призрачные» объекты или артефакты — проверьте пункт by default set no ALPHACHANNEL в блоке DirectDraw Surface handling.


Filter

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

Детальное описание пунктов:

  • none
    Что делает: отключает любую фильтрацию и масштабирование. Изображение просто «растягивается» до размера окна по простейшему алгоритму (nearest neighbor).
    Как работает: каждый исходный пиксель превращается в блок из N×NN×N пикселей без усреднения цветов.
    Когда включать: если нужно сохранить «честный» ретро‑вид без размытия, либо если фильтрация вызывает артефакты (полосы, «рябь») на пиксель‑арте. Оптимально для старых 2D‑игр, где важна чёткость каждого пикселя.

  • fast bilinear 2x
    Что делает: применяет быструю билинейную фильтрацию с двукратным масштабированием.
    Как работает: для каждого выходного пикселя усредняются цвета ближайших исходных пикселей по билинейной интерполяции; коэффициент 2x означает, что изображение сначала масштабируется в 2 раза, затем выводится.
    Когда включать: если нужно быстро убрать «лесенки» на диагоналях и слегка сгладить картинку, не нагружая систему. Хороший компромисс между чёткостью и мягкостью для игр с простой графикой.

  • HQ 2x / HQ 3x / HQ 4x (High Quality)
    Что делает: применяет высококачественное масштабирование с коэффициентами 2×, 3×, 4×. Алгоритмы HQ используют более сложные фильтры (часто на базе xBR или подобных), чтобы сохранить чёткие края и детали при увеличении.
    Как работает: анализируются соседние пиксели, определяются границы объектов и текстуры, затем применяется адаптивное масштабирование: края остаются резкими, а однородные области сглаживаются.
    Когда включать: если игра выглядит «мыльной» при обычном растяжении, но хочется сохранить детализацию. HQ 2x — для небольших увеличений; HQ 3x/4x — если родное разрешение очень низкое (например, 320×200) и нужно вывести на Full HD без потери читаемости.

  • deinterlace
    Что делает: убирает чересстрочность (interlacing) — эффект «полосатости», когда чётные и нечётные строки выводятся поочерёдно.
    Как работает: объединяет два полукадра в один полный кадр, устраняя мерцание и «расслоение» изображения.
    Когда включать: если игра или видео в ней используют чересстрочный вывод (частая проблема старых роликов и некоторых движков на ЭЛТ‑мониторах). Если чересстрочности нет, включать не нужно — может слегка «мылить» картинку.

  • interlace
    Что делает: принудительно включает чересстрочный режим вывода.
    Как работает: эмулирует вывод чётных и нечётных строк поочерёдно, имитируя ЭЛТ‑монитор.
    Когда включать: в очень редких случаях для эмуляции специфического визуального стиля или совместимости с движками, которые «ожидают» чересстрочный вывод. Для большинства современных мониторов и игр включать не нужно.

  • PIX 2x / PIX 3x / PIX 4x
    Что делает: масштабирует изображение с помощью алгоритма PIX (часто это вариация nearest neighbor с дополнительной обработкой границ).
    Как работает: сохраняет чёткие пиксельные края, но может применять лёгкое сглаживание на границах объектов, чтобы убрать «лесенки» без сильного размытия.
    Когда включать: если хочется сохранить «пиксельный» вид, но сделать диагонали чуть мягче. PIX 2x — для умеренного увеличения; PIX 3x/4x — если родное разрешение очень низкое.

  • Scale2X 2x / Scale2X 3x / Scale2X 4x
    Что делает: использует алгоритм Scale2X (и его расширения) для масштабирования с сохранением чётких границ.
    Как работает: Scale2X анализирует 2×2 блока пикселей и по шаблонам определяет, как лучше увеличить детали, сохраняя острые углы и тонкие линии. Версии 3x/4x — это итеративное применение алгоритма или его расширенные варианты.
    Когда включать: если игра — классический пиксель‑арт (платформеры, квесты 90‑х) и нужно увеличить картинку без потери читаемости мелких деталей. Это один из лучших вариантов для ретро‑игр.

  • Scale2K 2x / Scale2K 3x / Scale2K 4x
    Что делает: использует алгоритм Scale2K (часто это улучшенная версия Scale2X с лучшей обработкой текстур и градиентов).
    Как работает: более продвинутый анализ соседних пикселей и адаптивное сглаживание: края остаются резкими, а текстуры и градиенты — более плавными.
    Когда включать: если Scale2X даёт слишком «жёсткие» края или артефакты на текстурах. Scale2K лучше справляется с градиентами и сложными фонами, сохраняя при этом чёткость деталей.

  • Dithering
    Что делает: применяет дизеринг (dithering) — алгоритм смешивания цветов для имитации большего количества оттенков при ограниченной палитре.
    Как работает: добавляет лёгкий «шум» из пикселей соседних цветов, чтобы визуально сгладить переходы между оттенками и избежать полос на градиентах.
    Когда включать: если в игре видны полосы на градиентах (небо, тени, вода) из‑за ограниченной палитры. Часто помогает на старых играх с 8‑битной или 16‑битной палитрой. Может слегка «шуметь» картинку — подбирайте осторожно.

Дополнительные пункты:

  • Async blit mode — асинхронный режим Blit (копирования).
    Когда включать: если игра «тормозит» при копировании поверхностей или если нужно разгрузить основной поток для повышения FPS.

  • Full bilinear filter — полная билинейная фильтрация (отдельный пункт, не связанный с блоком Filter).
    Когда включать: если нужно дополнительно сгладить изображение при масштабировании (может конфликтовать с настройками блока Filter).

  • Simulate BW monitor — эмуляция чёрно‑белого монитора.
    Когда включать: в очень редких случаях для совместимости со старыми играми, которые проверяют тип монитора или используют специфические палитры.

Практические сценарии и порядок проверки

Универсальный старт: ставьте none. Это даст максимально чёткую картинку без размытия и позволит сразу увидеть, есть ли проблемы с масштабированием.
Картинка слишком «пиксельная», но хочется сохранить ретро‑вид: пробуйте Scale2X 2x или Scale2K 2x. Они лучше всего сохраняют детали и чёткие края.
Нужно сгладить «лесенки» и сделать картинку мягче: пробуйте fast bilinear 2x или HQ 2x.
Родное разрешение очень низкое (например, 320×200) и нужно вывести на Full HD: используйте HQ 3x/4xScale2X 3x/4x или Scale2K 3x/4x — они лучше справляются с сильным увеличением.
Видны полосы на градиентах: включите Dithering.
Картинка «полосатая» или мерцает из‑за чересстрочности: включите deinterlace.
Проверка гипотезы: если не уверены, действуйте по порядку: none → Scale2X 2x → fast bilinear 2x → HQ 2x → HQ 3x → Dithering (если есть полосы). На каждом шаге запускайте игру через кнопку Try… и фиксируйте результат.

Важные нюансы

Не смешивайте фильтры: в одном профиле DxWnd должен быть выбран только один пункт из списка Filter.
Совместимость с другими настройками: фильтр влияет на работу DirectDraw Surface handling (особенно на by default set no ALPHACHANNEL и Don’t fix the Pixel Format) и на Renderer. Например, в режиме GDI некоторые фильтры могут работать хуже или вызывать артефакты.
ПроизводительностьnoneScale2XPIX — самые быстрые; HQScale2K — чуть тяжелее, но разница на современных ПК обычно незаметна.
Субъективность: выбор фильтра — часто дело вкуса. Для пиксель‑арта многие предпочитают none или Scale2X, чтобы сохранить «честный» вид; для более «мягкой» картинки — HQ или fast bilinear.


Overlay emulation (эмуляция оверлеев)

Назначение: эмуляция аппаратных оверлеев — специальных слоёв для вывода видео и спецэффектов поверх основной графики. Решает проблемы с отсутствием видеороликов, полупрозрачных эффектов и спецэффектов.

Детальное описание пунктов:

  • No — отключено.
    Когда включать: если оверлеи вызывают артефакты или игру можно пройти без них.

  • Opaque — непрозрачные оверлеи.
    Когда включать: если видео или спецэффекты не отображаются и нужна простая эмуляция без прозрачности.

  • Transp. (Transparent) — прозрачные оверлеи.
    Когда включать: если спецэффекты должны быть полупрозрачными (тени, дым, вспышки).

Flip emulation (эмуляция переключения буферов)

Назначение: эмуляция операции Flip (переключение переднего и заднего буферов) для корректной анимации. Решает проблемы с «дёрганой» анимацией, пропусками кадров и мерцанием.

Детальное описание пунктов:

  • No — отключено.
    Когда включать: если игра работает стабильно без эмуляции.

  • Partial — частичная эмуляция.
    Когда включать: если полная эмуляция вызывает проблемы, но частичная помогает стабилизировать анимацию.

  • Full — полная эмуляция.
    Когда включать: если анимация «дёргается», кадры пропускаются или игра не может корректно выполнить Flip на современных системах.

AERO handling (совместимость с Aero)

Назначение: управление взаимодействием с оконным менеджером Aero (прозрачность, композиция) в Windows 7 и новее. Решает проблемы с чёрным экраном, мерцанием и некорректным отображением окон старых игр.

Детальное описание пунктов:

  • AERO compatible mode — включает совместимый режим работы с Aero.
    Когда включать: если игра «ломается» при работе с прозрачностью и эффектами Windows (чёрный экран, мерцание).

  • Optimize for AERO mode — оптимизирует работу под Aero (часто отключает лишние эффекты композиции для повышения производительности и стабильности).
    Когда включать: если совместимый режим не помогает или игра работает нестабильно в среде Aero.

DirectDraw Surface handling

Назначение: низкоуровневое управление созданием и обработкой поверхностей (surfaces) в DirectDraw. Решает проблемы с артефактами, инверсией цветов, «битыми» текстурами, чёрными экранами и ошибками выделения видеопамяти. Работает на уровне буферов, палитр, форматов пикселей и Z‑буфера.

Детальное описание пунктов:

  • Switch VIDEO to SYSTEM on fail — если создание поверхности в видеопамяти (VRAM) завершается ошибкой, DxWnd автоматически создаёт её в системной памяти (RAM).
    Когда включать: если игра «вылетает» при инициализации графики или показывает чёрный экран из‑за несовместимости с драйвером или нехватки VRAM. Это «страховочный» пункт, который часто решает проблему запуска на современных картах.

  • Suppress DX common errors — подавляет распространённые ошибки DirectX (например, DDERR_SURFACELOST, DDERR_OUTOFMEMORY), которые по умолчанию завершают работу приложения.
    Когда включать: если игра «падает» с ошибкой DirectX при сворачивании, переключении окон или в моменты высокой нагрузки на видеоподсистему.

  • Palette update don’t Blit — запрещает операцию Blit (копирование) при обновлении палитры.
    Когда включать: если при смене палитры (частое явление в старых 8‑битных играх) появляются мерцания, «рябь» или некорректные цвета.

  • Don’t fix the Pixel Format — отключает автоматическую коррекцию формата пикселей (например, RGB565, A8R8G8B8).
    Когда включать: если игра ожидает строго определённый формат пикселей и «ломается» при попытке DxWnd его изменить (проявляются артефакты, инверсия цветов).

  • By default set no ALPHACHANNEL — по умолчанию отключает альфа‑канал (прозрачность) для всех создаваемых поверхностей.
    Когда включать: если в игре появляются полупрозрачные артефакты, «призрачные» объекты или некорректное наложение слоёв. Старые игры часто не используют альфа‑канал, и его наличие вызывает ошибки рендеринга.

  • Auto Primary Surface Blit — автоматически выполняет Blit (копирование) первичной поверхности, если игра «забывает» это сделать.
    Когда включать: если игра рисует в буфер, но изображение не появляется на экране (чёрный экран при работающей логике игры). Критично для игр, которые пишут напрямую в память поверхности без явного вызова Blit.

  • Forced (рядом с Auto Primary Surface Blit) — принудительный режим Blit, игнорирующий состояние флагов игры.
    Когда включать: если обычный Auto Primary Surface Blit не помогает и экран остаётся чёрным.

  • Set texture pixel format — принудительно задаёт формат пикселей для текстур.
    Когда включать: если текстуры отображаются с артефактами, «полосами» или в неправильных цветах из‑за несовместимости формата с драйвером.

  • Suppress Release on backbuffer — запрещает освобождение заднего буфера (backbuffer) при его пересоздании.
    Когда включать: если игра «вылетает» или мерцает при изменении размера окна или переключении режимов отображения из‑за конфликта управления памятью буферов.

  • Support offscreen 3D — включает поддержку внеэкранного 3D‑рендеринга (offscreen plain) для совместимости со старыми 3D‑ускорителями и драйверами.
    Когда включать: если игра использует внеэкранные поверхности для 3D‑эффектов (тени, отражения) и эти эффекты не отображаются или вызывают ошибки.

  • Suppress ZBUFFER attach — запрещает прикрепление Z‑буфера (буфера глубины) к поверхностям.
    Когда включать: если в игре наблюдаются артефакты глубины (объекты рисуются поверх друг друга в неправильном порядке), «мерцание» 3D‑объектов или ошибки инициализации Z‑буфера на современных драйверах.

VSync (вертикальная синхронизация)

Назначение: синхронизация кадровой частоты игры с частотой обновления монитора для устранения разрывов кадра (tearing) и стабилизации анимации.

Детальное описание пунктов:

  • Default — использует настройки игры или драйвера видеокарты.
    Когда включать: в большинстве случаев, чтобы не вмешиваться в логику игры.

  • ON — принудительно включает VSync.
    Когда включать: если видны разрывы кадра (горизонтальные полосы, смещённые части изображения).

  • OFF — принудительно отключает VSync.
    Когда включать: если игра «тормозит» из‑за ограничения FPS или если VSync вызывает задержку ввода (input lag).

  • WaitForVerticalBlank — ждёт завершения обратного хода луча (вертикального гашения) перед выводом кадра.
    Когда включать: если нужно максимально точно синхронизировать вывод кадра с обновлением экрана (классический VSync).

  • Wait for ScanLine  — ждёт достижения конкретной строки развёртки (scanline). Значение 0 означает ожидание любой строки (часто используется для тестов).
    Когда включать: в редких случаях для устранения специфических артефактов синхронизации на ЭЛТ‑мониторах или в эмуляции.

  • Wait for Frequency — синхронизирует вывод кадров с частотой обновления монитора.
    Когда включать: если нужно избежать пропусков кадров или рассинхронизации анимации при нестабильном FPS.

Cooperative level (уровень кооперации)

Назначение: определяет, как игра взаимодействует с видеоподсистемой Windows и другими приложениями. Влияет на полноэкранный режим, возможность сворачивания и обработку сообщений ОС.

Детальное описание пунктов:

  • Default — использует настройки игры.
    Когда включать: в большинстве случаев.

  • Normal — обычный режим кооперации. Игра работает как стандартное окно, может сворачиваться и перекрываться другими приложениями.
    Когда включать: если игра должна работать в окне или если полноэкранный режим вызывает проблемы.

  • Exclusive — эксклюзивный режим. Игра получает полный контроль над экраном и видеокартой (как в классическом полноэкранном режиме).
    Когда включать: если игра «ломается» при сворачивании, показывает чёрный экран при переключении окон или требует прямого доступа к видеокарте для корректной работы графики.

Универсальные рекомендации по сборке профиля

  1. Для большинства старых 2D‑игр:

    • DirectX version hook: Automatic.
    • Renderer: Primary surface + Auto primary surface refresh (если есть проблемы с чёрным экраном).
    • Filter: None или Nearest neighbor (чтобы сохранить чёткость пикселей).
    • VSync: Default или ON (если есть разрывы кадра).
    • Overlay emulation: Disabled (если нет проблем с видео).
    • Flip emulation: Partial (если анимация дёргается — переключите на Full).
    • AERO handling: AERO compatible mode (если игра «ломается» в Windows 7/8/10).
    • Cooperative level: Normal.
  2. Если игра показывает чёрный экран:

    • Попробуйте Renderer: Backbuffer surface.
    • Включите Auto primary surface refresh.
    • Проверьте Flip emulation: Full.
    • Убедитесь, что Overlay emulation не вызывает конфликтов (попробуйте Disabled).
  3. Если игра мерцает или анимация дёргается:

    • Включите VSync: ON.
    • Попробуйте Flip emulation: Full.
    • Проверьте Force blit on flip.
  4. Если игра не запускается в окне или «ломается» при сворачивании:

    • Включите Emulated windowed mode в блоке Renderer.
    • Проверьте AERO handling: AERO compatible mode.
    • Убедитесь, что Cooperative level: Windowed (если игра должна работать в окне).
  5. Если игра «вылетает» или показывает артефакты:

    • Включите Suppress DX common errors.
    • Попробуйте Switch VIDEO to SYSTEM on fail.
    • Проверьте DirectDraw Surface handling (но только если понимаете, что делаете).
  1.  

DirectX(2): дополнительные параметры DirectX, флаги совместимости, режимы системной памяти для поверхностей.

DxWnd - DirectX(2): дополнительные параметры DirectX, флаги совместимости, режимы системной памяти для поверхностей

Вкладка DirectX(2) — DirectDraw tweaks

Назначение: низкоуровневые исправления и подмены поведения DirectDraw для совместимости со старыми играми на современных ОС и драйверах. Решает проблемы с памятью поверхностей, палитрой, гамма‑коррекцией, блокировками и интерфейсами.

Ddraw tweaks (группа слева)

  • Lock / Unlock Pitch Fix — исправляет ошибки при работе с шагом строки (pitch) при блокировке поверхности (Lock/Unlock).
    Когда включать: если игра падает или показывает артефакты при процедурной генерации графики, работе с палитрой или эффектами, использующими прямой доступ к памяти поверхности.
  • Width not power of 2 fix — исправляет проблемы с поверхностями, ширина которых не является степенью двойки (например, 320, 400, 640).
    Когда включать: если игра не может создать поверхность из‑за требования драйвера к размерам, кратным степени двойки, или показывает чёрный экран/артефакты на текстурах.
  • Fix ddraw refcount — исправляет ошибки подсчёта ссылок (reference count) на объекты DirectDraw.
    Когда включать: если игра «вылетает» при выходе из полноэкранного режима, сворачивании или при освобождении ресурсов; частая причина ошибок DDERR_INVALIDOBJECT.
  • Set ZBufferBitDepths capability — принудительно задаёт поддерживаемые глубины Z‑буфера.
    Когда включать: если игра не может инициализировать Z‑буфер или показывает артефакты глубины (неправильный порядок отрисовки объектов) из‑за неверного определения возможностей драйвера.
  • Limit ddraw interface (выпадающий список, по умолчанию 7) — ограничивает версию интерфейса DirectDraw, который «видит» игра.
    Когда включать: если игра ломается при попытке использовать новые методы интерфейса; ставьте 7 для большинства старых игр, снижайте при конфликтах.
  • Set 16BPP RGB565 encoding — принудительно задаёт 16‑битный формат пикселей RGB565.
    Когда включать: если цвета отображаются некорректно (инверсия, «кислотные» оттенки) или игра ожидает строго этот формат.
  • Create a Desktop Win — создаёт окно на рабочем столе (Desktop Window) для рендеринга.
    Когда включать: если игра не может создать обычное окно или показывает чёрный экран из‑за проблем с оконной подсистемой.
  • Safe palette usage — ограничивает использование палитры безопасными цветами.
    Когда включать: если при смене палитры появляются мерцания, «рябь» или некорректные цвета.
  • Enable gamma ramp emulation — эмулирует гамма‑коррекцию через программный рамп.
    Когда включать: если игра выглядит слишком тёмной или слишком яркой из‑за отсутствия аппаратной поддержки гамма‑рампа на современных картах.
  • Full RECT Blit — принудительно использует копирование всего прямоугольника (RECT) при Blit.
    Когда включать: если при копировании поверхностей появляются артефакты или «обрезанные» изображения.
  • Fix DC palette — исправляет проблемы с палитрой при работе с Device Context (DC).
    Когда включать: если цвета отображаются некорректно при использовании GDI‑вызовов поверх DirectDraw.
  • Merge front buffers — объединяет передние буферы для корректной отрисовки.
    Когда включать: если в игре наблюдаются мерцания или «двойное изображение» при работе с несколькими буферами.
  • Recover exclusive mode error — пытается восстановить эксклюзивный режим при ошибках.
    Когда включать: если игра «вылетает» при попытке перейти в полноэкранный режим или показывает чёрный экран после сворачивания.
  • Force DirectX1 hook — принудительно включает хук DirectX 1 для совместимости.
    Когда включать: если игра требует DX1 и ломается при использовании более новых интерфейсов.
  • Force surface unlock — принудительно разблокирует поверхности при освобождении.
    Когда включать: если игра «зависает» или падает при освобождении ресурсов из‑за незаблокированных поверхностей.
  • Emulate clipper — эмулирует клиппинг (отсечение) внеэкранных объектов.
    Когда включать: если в игре появляются артефакты или «вылетающие» за экран объекты из‑за отсутствия аппаратного клиппера.
  • Use BltFast — принудительно использует быстрый Blit (BltFast) вместо обычного Blt.
    Когда включать: если игра тормозит при копировании поверхностей или показывает мерцания; может конфликтовать с прозрачностью.

Ddraw tweaks (группа справа)

  • Plain BackBuffer — использует простой задний буфер без дополнительных эффектов.
    Когда включать: если игра ломается при использовании сложных буферов или показывает артефакты.
  • Disable Max Windowed Mode — отключает режим максимального окна (Maximized) для корректной работы с буферами.
    Когда включать: если игра «ломается» в режиме максимального окна или показывает чёрный экран.
  • Flip/Blt Wait (default/ON/OFF) — управляет ожиданием завершения Flip/Blt перед следующей операцией.
    Когда включать: ON — если наблюдаются разрывы кадра или мерцания; OFF — если игра тормозит из‑за ожидания.
  • Clipper (default/ON/OFF/MAX) — управляет эмуляцией клиппера.
    Когда включать: ON — если есть артефакты отсечения; MAX — если требуется максимальная эмуляция для сложных сцен.
  • FourCC processing (No/HW/SW) — управляет обработкой FourCC‑кодов (форматов текстур).
    Когда включать: HW — если игра ожидает аппаратную поддержку; SW — если аппаратная вызывает артефакты; No — если FourCC не нужен.
  • Capabilities (группа флажков):
    • Suppress overlay capability — отключает поддержку оверлеев.
      Когда включать: если оверлеи вызывают артефакты или чёрный экран.
    • Set minimal caps — устанавливает минимальные возможности DirectDraw.
      Когда включать: если игра ломается при попытке использовать расширенные возможности.
    • Clear texture FourCC — очищает FourCC‑коды текстур.
      Когда включать: если текстуры отображаются некорректно из‑за неверных FourCC.
    • Suppress FOURCC blit capability — отключает поддержку FourCC при Blit.
      Когда включать: если Blit с FourCC вызывает артефакты или вылеты.

Direct3D: управление хуками и твиками для Direct3D, настройка z-buffer, HW T&L

DxWnd - Direct3D: управление хуками и твиками для Direct3D, настройка z-buffer, HW T&L

Вкладка Direct3D — Direct3D tweaks

Назначение: низкоуровневые исправления и подмены поведения Direct3D для совместимости со старыми 3D‑играми. Решает проблемы с Z‑буфером, текстурами, мультисэмплингом, гамма‑коррекцией и аппаратными возможностями.

Direct3D tweaks (группа слева)

  • Textures not power of 2 fix — исправляет проблемы с текстурами, размеры которых не являются степенями двойки.
    Когда включать: если текстуры отображаются некорректно, «размыты» или не загружаются из‑за требований драйвера.
  • Clean ZBUFFER @0.0 fix — исправляет инициализацию Z‑буфера значением 0.0.
    Когда включать: если объекты рисуются в неправильном порядке или появляются артефакты глубины.
  • Clean ZBUFFER @1.0 fix — исправляет инициализацию Z‑буфера значением 1.0.
    Когда включать: если дальние объекты «проваливаются» или не отображаются из‑за неверной инициализации Z‑буфера.
  • Clean ZBUFFER hard — жёсткая очистка Z‑буфера для устранения артефактов.
    Когда включать: если стандартные методы очистки не помогают и артефакты глубины сохраняются.
  • Dynamic ZBUFFER fix — исправляет проблемы с динамическим Z‑буфером.
    Когда включать: если игра «вылетает» или показывает артефакты при изменении глубины сцены.
  • Suppress D3D8/9 Reset — отключает сброс устройства Direct3D при ошибках.
    Когда включать: если игра «вылетает» при попытке сброса устройства или показывает чёрный экран при изменении режима.
  • Suppress D3D9 extensions — отключает расширения Direct3D 9.
    Когда включать: если игра ломается при попытке использовать расширения, не поддерживаемые драйвером.
  • Enumerate 16bit modes — принудительно перечисляет 16‑битные режимы отображения.
    Когда включать: если игра не может найти подходящий режим или показывает чёрный экран из‑за отсутствия 16‑битных режимов.
  • Trim texture formats — ограничивает поддерживаемые форматы текстур.
    Когда включать: если игра ломается при попытке использовать неподдерживаемые форматы текстур.
  • Force setting gamma ramp — принудительно устанавливает гамма‑рамп.
    Когда включать: если игра выглядит слишком тёмной или слишком яркой из‑за отсутствия гамма‑коррекции.
  • Enable Light gamma ramp — включает гамма‑коррекцию для освещения.
    Когда включать: если освещение в игре выглядит неестественно из‑за отсутствия гамма‑коррекции.
  • Pretend HW T&L cap. — эмулирует аппаратную поддержку трансформации и освещения (T&L).
    Когда включать: если игра требует аппаратный T&L и ломается на картах без него.
  • Clear target viewport — очищает целевой видовой порт (viewport).
    Когда включать: если в игре появляются артефакты или «двойное изображение» из‑за неверного видового порта.
  • Emulate 16bpp D3D8 backbuffer — эмулирует 16‑битный задний буфер для Direct3D 8.
    Когда включать: если игра требует 16‑битный буфер и ломается при использовании 32‑битного.
  • D3D9 Stretch to full rect — принудительно растягивает изображение на весь прямоугольник.
    Когда включать: если изображение отображается некорректно или «обрезано» в Direct3D 9.
  • Map color key to alpha — сопоставляет цветовой ключ с альфа‑каналом.
    Когда включать: если прозрачность в игре отображается некорректно из‑за неверного цветового ключа.
  • Force W-based fog — принудительно использует туман на основе W‑координаты.
    Когда включать: если туман в игре отображается некорректно или отсутствует.

Direct3D tweaks (группа справа)

  • No multisample — отключает мультисэмплинг (сглаживание).
    Когда включать: если игра «вылетает» или показывает артефакты при попытке использовать мультисэмплинг.
  • Vertex buffers on sys memory — размещает буферы вершин в системной памяти.
    Когда включать: если игра «вылетает» при попытке использовать буферы вершин в видеопамяти или показывает артефакты.
  • Z-buffer on system memory — размещает Z‑буфер в системной памяти.
    Когда включать: если игра «вылетает» при попытке использовать Z‑буфер в видеопамяти или показывает артефакты глубины.
  • Z-buffer on video memory — размещает Z‑буфер в видеопамяти.
    Когда включать: если игра тормозит или показывает артефакты при использовании Z‑буфера в системной памяти.
  • Filter RGB textures — включает фильтрацию RGB‑текстур.
    Когда включать: если текстуры выглядят «пикселизированными» или размытыми из‑за отсутствия фильтрации.
  • Bypass Optimize — обходит оптимизацию драйвера для совместимости.
    Когда включать: если игра ломается при попытке использовать оптимизированные пути драйвера.
  • Trim additional points — обрезает дополнительные точки в вершинах.
    Когда включать: если игра «вылетает» или показывает артефакты при обработке вершин.

Практические сценарии и порядок проверки

  1. Универсальный старт: оставьте все флажки выключенными, используйте только базовые настройки (DirectX version hook: Automatic, Renderer: primary surface, Filter: none).
  2. Чёрный экран или вылет при старте: включите Fix ddraw refcountSet ZBufferBitDepths capabilityRecover exclusive mode error (для DirectDraw) и Clean ZBUFFER @0.0 fixSuppress D3D8/9 Reset (для Direct3D).
  3. Артефакты глубины (неправильный порядок объектов): включите Clean ZBUFFER @0.0 fix / @1.0 fixClean ZBUFFER hard (Direct3D) и проверьте Set ZBufferBitDepths capability (DirectDraw).
  4. Некорректные цвета или гамма: включите Enable gamma ramp emulation (DirectDraw) и Force setting gamma rampEnable Light gamma ramp (Direct3D).
  5. Проблемы с текстурами: включите Textures not power of 2 fixFilter RGB texturesTrim texture formats (Direct3D) и Set 16BPP RGB565 encoding (DirectDraw) при необходимости.
  6. Вылеты при изменении режима или сбросе устройства: включите Suppress D3D8/9 ResetRecover exclusive mode errorDisable Max Windowed Mode.
  7. Проверка гипотезы: если не уверены, какая настройка нужна, действуйте по порядку: сначала исправляйте базовые проблемы (refcount, Z‑буфер, гамма), затем переходите к специфичным (текстуры, мультисэмплинг, T&L). На каждом шаге запускайте игру через кнопку Try… и фиксируйте результат.

Direct3D(2): расширенные параметры Direct3D, обход проблемных вызовов, принудительный выбор версии API.

DxWnd - Direct3D(2): расширенные параметры Direct3D, обход проблемных вызовов, принудительный выбор версии API

Вкладка Direct3D(2)

Назначение: дополнительные исправления для Direct3D, которые не вошли в основную вкладку Direct3D. Влияют на обработку буферов, вершин, эффектов и возможностей устройства.

Force Vertex Proc. / Execute Buffer (группа переключателей)

  • Default — использует стандартное поведение драйвера для обработки вершин и буферов команд.
    Когда включать: в 95% случаев это лучший выбор. Ставьте первым, если не знаете, какая обработка нужна.
  • hardware video — принудительно использует аппаратную обработку вершин и буферов команд.
    Когда включать: если игра требует аппаратного ускорения и ломается при программной обработке.
  • software system — принудительно использует программную обработку вершин и буферов команд.
    Когда включать: если аппаратная обработка вызывает артефакты или вылеты (частая проблема на современных картах со старыми движками).
  • mixed — смешанный режим обработки.
    Когда включать: если ни pure HW, ни pure SW не работают стабильно; может помочь при частичных проблемах с вершинами.

Device type (группа переключателей)

  • default — использует тип устройства, выбранный драйвером (обычно HAL).
    Когда включать: всегда по умолчанию.
  • HAL (Hardware Abstraction Layer) — аппаратное устройство с аппаратным ускорением.
    Когда включать: если игра рассчитана на аппаратное ускорение и не требует отладки.
  • REF (Reference) — эталонное устройство (программный рендерер).
    Когда включать: для отладки и проверки, работает ли игра вообще без аппаратного ускорения; очень медленно.
  • SW (Software) — программный рендерер.
    Когда включать: если HAL вызывает вылеты или артефакты; медленнее HAL, но быстрее REF.
  • NULLREF — нулевое устройство (без рендеринга).
    Когда включать: только для тестов и отладки; игра не будет показывать картинку.

Swap Effect (группа переключателей)

  • Discard — очищает задний буфер после Flip (стандарт для современных игр).
    Когда включать: если игра рассчитана на современные драйверы и не требует сохранения содержимого буфера.
  • Flip — классический Flip без очистки.
    Когда включать: если игра ожидает поведение старого Direct3D и ломается при Discard.
  • Copy — копирует содержимое буфера вместо Flip.
    Когда включать: если Flip вызывает артефакты или разрывы кадра.
  • Overlay — использует оверлей для вывода.
    Когда включать: если игра рассчитана на вывод через оверлей (редко).
  • FlipEx — расширенный Flip (DX9+).
    Когда включать: если игра явно требует FlipEx и ломается на обычном Flip.

Force Swap Effect (флажок)

Что делает: принудительно применяет выбранный Swap Effect, игнорируя запросы игры.
Когда включать: если игра запрашивает несовместимый Swap Effect и показывает чёрный экран или артефакты.


Capabilities (группа флажков)

  • No Ramp Dev. — отключает поддержку плавного изменения яркости (ramp).
    Когда включать: если игра ломается при попытке использовать ramp‑эффекты.
  • No RGB Dev. — отключает поддержку RGB‑режимов.
    Когда включать: если игра некорректно работает с RGB‑форматами.
  • No MMX Dev. — отключает поддержку MMX‑инструкций.
    Когда включать: если MMX вызывает вылеты на современных CPU.
  • No HAL Dev. — отключает использование HAL‑устройства.
    Когда включать: если HAL вызывает проблемы и нужно принудительно использовать другой тип устройства.
  • No TnL HAL Device — отключает аппаратную трансформацию и освещение (T&L) в HAL.
    Когда включать: если игра ломается при попытке использовать аппаратный T&L.
  • Fog vertex capability — эмулирует поддержку тумана на уровне вершин.
    Когда включать: если туман в игре отображается некорректно из‑за отсутствия поддержки.
  • Fog table capability — эмулирует поддержку таблицы тумана.
    Когда включать: если игра требует fog table и ломается без неё.

D3D tweaks (группа внизу)

  • Patch execute buffer (флажок) — исправляет обработку буферов команд (execute buffers).
    Когда включать: если игра использует execute buffers и показывает артефакты или вылетает.
  • Z-Buffer (переключатель def./ON/OFF):
    • def. — использует стандартное поведение Z‑буфера.
      Когда включать: по умолчанию.
    • ON — принудительно включает Z‑буфер.
      Когда включать: если игра не использует Z‑буфер и объекты рисуются в неправильном порядке.
    • OFF — принудительно отключает Z‑буфер.
      Когда включать: если Z‑буфер вызывает артефакты или вылеты (редко).
  • Dithering (переключатель def./ON/OFF):
    • def. — использует стандартное поведение дизеринга.
      Когда включать: по умолчанию.
    • ON — принудительно включает дизеринг.
      Когда включать: если в игре видны полосы на градиентах.
    • OFF — принудительно отключает дизеринг.
      Когда включать: если дизеринг добавляет лишний «шум» и ухудшает картинку.

WDDM: совместимость с современными драйверами, обработка Device Lost, коррекция поведения под DWM.

DxWnd - WDDM: совместимость с современными драйверами, обработка Device Lost, коррекция поведения под DWM

Вкладка WDDM

Назначение: исправления для совместимости с современными драйверами WDDM (Windows Display Driver Model), которые изменили поведение оверлеев, текстур, буферов и тумана.

  • Hook WDDM (флажок) — включает хуки для перехвата вызовов WDDM.
    Когда включать: если игра ломается на современных драйверах WDDM и требуется низкоуровневый перехват вызовов.
  • Suppress overlay capability (флажок) — отключает поддержку оверлеев.
    Когда включать: если оверлеи вызывают артефакты, чёрный экран или вылеты.
  • Alternate Pixel Center (флажок) — изменяет центр пикселя для корректной отрисовки.
    Когда включать: если в игре видны «сдвиги» на 0.5 пикселя, артефакты на краях или проблемы с UI.
  • Fix texture color key (флажок) — исправляет обработку цветового ключа для текстур.
    Когда включать: если прозрачность в игре отображается некорректно из‑за неверного цветового ключа.
  • Enable zooming (флажок) — включает масштабирование для корректной отрисовки.
    Когда включать: если игра некорректно масштабирует изображение или показывает «обрезанную» картинку.
  • Trim vertex buffer (флажок) — обрезает буферы вершин для совместимости.
    Когда включать: если игра «вылетает» при обработке больших буферов вершин или показывает артефакты.
  • Clean ZBUFFER @WDDM (флажок) — очищает Z‑буфер с учётом особенностей WDDM.
    Когда включать: если на WDDM‑драйверах появляются артефакты глубины или объекты рисуются в неправильном порядке.
  • Force W-based fog (флажок) — принудительно использует туман на основе W‑координаты.
    Когда включать: если туман в игре отображается некорректно или отсутствует на современных драйверах.

Практические сценарии и порядок проверки

  1. Универсальный старт: оставьте все флажки выключенными, используйте Default в переключателях.
  2. Чёрный экран или вылет при старте: включите Patch execute bufferClean ZBUFFER @WDDMSuppress overlay capability и проверьте Z-Buffer = ON.
  3. Артефакты глубины (неправильный порядок объектов): включите Clean ZBUFFER @WDDM, проверьте Z-Buffer = ON, при необходимости отключите Fog vertex capability и Fog table capability.
  4. Некорректная прозрачность или «цветные пятна»: включите Fix texture color key, при необходимости отключите оверлеи (Suppress overlay capability).
  5. Сдвиги на 0.5 пикселя, «дрожащий» UI, артефакты на краях: включите Alternate Pixel Center.
  6. Проблемы с туманом: попробуйте Force W-based fog, а также поочерёдно включайте/выключайте Fog vertex capability и Fog table capability.
  7. Вылеты при обработке буферов: включите Trim vertex bufferPatch execute buffer, при необходимости переключите Device type на SW или mixed.
  8. Проверка гипотезы: если не уверены, какая настройка нужна, действуйте по порядку: сначала исправляйте базовые проблемы (Z‑буфер, оверлеи, цветовой ключ), затем переходите к специфичным (туман, пиксельный центр, буферы вершин). На каждом шаге запускайте игру через кнопку Try… и фиксируйте результат.

Timing: ограничение FPS, эмуляция медленного CPU, коррекция таймингов GDI‑операций.

DxWnd - Timing: ограничение FPS, эмуляция медленного CPU, коррекция таймингов GDI‑операций

Вкладка Timing

Назначение: управляет временными параметрами: частотой кадров, скоростью эмуляции CPU, обработкой таймеров и системным временем. Это нужно, чтобы старые игры, «завязанные» на тактовой частоте процессора или на конкретных датах, корректно работали на современных ПК.

Детальный разбор каждого пункта с механизмом работы и рекомендациями по включению:

Группа Frame per Second

  • Limit (флажок) + delay (msec) (поле) — ограничивает максимальную частоту кадров, добавляя искусственную задержку между кадрами.
    Как работает под капотом: после каждого кадра DxWnd вызывает Sleep/nanosleep на указанное число миллисекунд, чтобы не дать игре отрисовывать больше кадров в секунду.
    Когда включать: если игра слишком быстрая на современном CPU (персонаж бегает как ракета, анимация ускоренная), либо если нужно снизить нагрузку на GPU.
  • Skip (флажок) — пропускает лишние кадры для ограничения FPS без жёсткой задержки.
    Когда включать: если Limit с задержкой вызывает микрофризы, а нужно просто «отсечь» лишние кадры.
  • Limit Flip only (флажок) + Hz (поле) — ограничивает только частоту операций Flip (переключение буферов), не трогая остальные части цикла отрисовки.
    Когда включать: если игра в целом работает нормально, но Flip вызывает разрывы кадра или мерцание; полезно для тонкой настройки без общего замедления логики игры.
  • Limit D3D BeginScene (флажок) — ограничивает частоту вызовов BeginScene в Direct3D.
    Когда включать: если игра использует D3D и логика привязана к BeginScene; помогает при ускоренной физике или анимации в 3D‑играх.
  • Limit DIB operations (флажок) — ограничивает скорость операций с DIB (Device Independent Bitmap), которые часто используются в старых 2D‑играх для отрисовки спрайтов и UI.
    Когда включать: если интерфейс или спрайты «мелькают» или анимация слишком быстрая из‑за высокой скорости DIB‑операций.

Группа Time Stretching

  • Time Stretch — initial (выпадающий список: x6, x4, x3, x2, x1.5, x1, Custom) — задаёт начальный коэффициент «растяжения времени»: игра будет работать медленнее в указанное число раз.
    Как работает под капотом: DxWnd умножает все возвращаемые значения таймеров (QueryPerformanceCounter, GetTickCount и т. п.) на коэффициент, создавая эффект замедления времени для игры.
    Когда включать: если игра рассчитана на старый CPU и на современном ПК работает слишком быстро; x2–x4 — частые значения для игр конца 90‑х.
  • Show time stretch (флажок) — показывает текущий коэффициент растяжения времени в оверлее (обычно в углу экрана).
    Когда включать: для контроля и отладки, чтобы видеть, насколько сильно замедлена игра в реальном времени.
  • Fine time adjust (флажок) — включает тонкую подстройку коэффициента растяжения времени (обычно через горячие клавиши в игре).
    Когда включать: если нужно оперативно корректировать скорость во время игры (например, чуть ускорить или замедлить без перезапуска).
  • Enable Time Freeze (флажок) — позволяет «замораживать» время по горячей клавише.
    Когда включать: если нужно остановить все таймеры игры (например, для скриншотов, записи или обхода таймеров в квестах).
  • Stretch timers (флажок) — применяет растяжение времени к стандартным таймерам Windows (GetTickCount, timeGetTime).
    Когда включать: если игра использует эти таймеры для логики (анимации, задержки, таймеры квестов).
  • Intercept RDTSC opcode (флажок) — перехватывает инструкцию RDTSC (чтение счётчика тактов CPU) и возвращает «замедленное» значение.
    Когда включать: если игра использует RDTSC для замеров времени или синхронизации; без этого игра может игнорировать обычное растяжение времени.
  • Stretch Performance Frequency (флажок) — растягивает значение частоты счётчика производительности (QueryPerformanceFrequency).
    Когда включать: если игра использует QPC/QPF для расчёта дельты времени и логика ускоряется на современных CPU.
  • Normalize Performance Counter (флажок) — нормализует счётчик производительности, чтобы он не «прыгал» при переключении задач или изменении частоты CPU.
    Когда включать: если в игре наблюдаются рывки анимации или нестабильная физика из‑за скачков QPC.
  • Suspend time stretch in movies (флажок) — приостанавливает растяжение времени во время воспроизведения видеороликов (FMV).
    Когда включать: если ролики проигрываются слишком медленно или с артефактами из‑за общего замедления времени.
  • Use nanosleep (флажок) + Custom (поле) — использует более точный системный вызов nanosleep для задержек вместо Sleep.
    Когда включать: если Sleep даёт слишком грубую задержку и вызывает микрофризы; полезно для тонкой настройки FPS.

Группа System speed

  • CPU slow down (флажок) + ratio 1:X (поле, по умолчанию 2) — искусственно замедляет эмуляцию CPU, снижая доступную вычислительную мощность для игры.
    Как работает под капотом: DxWnd вставляет дополнительные «пустые» циклы или задержки в критические участки кода, чтобы игра «думала», что работает на более медленном CPU.
    Когда включать: если игра слишком быстрая и не реагирует на обычное ограничение FPS или растяжение времени; часто помогает для DOS‑игр и старых движков.
  • CPU max usage (флажок) — ограничивает максимальное использование CPU игрой (обычно через привязку к ядру или ограничение потоков).
    Когда включать: если игра «забивает» одно ядро на 100% и вызывает фризы всей системы; полезно для старых однопоточных игр.
  • Use precise timing (флажок) — включает более точные методы замера времени (например, через QPC вместо GetTickCount).
    Когда включать: если в игре нестабильная физика или анимация из‑за неточных таймеров.
  • Set priority below normal (флажок) — запускает процесс игры с приоритетом ниже обычного, чтобы не «тормозить» систему.
    Когда включать: если игра вызывает фризы всей ОС; компромисс — в редких случаях может слегка снизить FPS в самой игре.

Группа vSync tweaks

  • Kill D3D vSync (флажок) — отключает вертикальную синхронизацию в Direct3D, даже если игра её запрашивает.
    Когда включать: если игра «тормозит» из‑за vSync (например, 60 FPS на 144 Гц мониторе), либо если vSync вызывает разрывы кадра или микрофризы.

Группа Time

  • Fake date (поле, по умолчанию 1/1/1986) — подменяет системную дату, которую видит игра.
    Когда включать: если игра проверяет дату для активации, защиты от копирования или для внутриигровых событий (например, «запускается только в 1999 году»).
  • Clear UpTime (флажок) — сбрасывает системное время работы (UpTime), чтобы игра не могла определить, сколько времени работает ОС.
    Когда включать: если игра использует UpTime для защиты или для логики (например, «не запускается, если UpTime > X часов»).
  • Increase UpTime (флажок) — искусственно увеличивает UpTime, чтобы обмануть защиту или логику игры.
    Когда включать: если игра не запускается или ломается при слишком малом UpTime.

Группа CPU Optimization

  • Slow down mouse polling (флажок) — замедляет опрос мыши, эмулируя более низкую частоту опроса старых систем.
    Когда включать: если игра «слишком чувствительна» к мыши из‑за высокой частоты опроса современного оборудования.
  • Slow down window polling (флажок) — замедляет опрос оконных сообщений, чтобы эмулировать поведение старых ОС.
    Когда включать: если игра ломается при слишком частом получении оконных сообщений (редкий случай).

Практические сценарии и порядок проверки

  1. Игра слишком быстрая (персонаж бегает как ракета): начните с Time Stretch — initial (попробуйте x2 или x4). Если не помогло — добавьте CPU slow down (ratio 1:2 или 1:3).
  2. Слишком высокий FPS, разрывы кадра: включите Limit + задайте delay (msec) (например, 16 мс для ~60 FPS) или Skip. Если проблема только в Flip — попробуйте Limit Flip only.
  3. Нестабильная физика или рывки анимации: включите Use precise timingNormalize Performance Counter и проверьте Stretch Performance Frequency.
  4. Игра не запускается из‑за проверки даты: установите Fake date на нужную дату (часто 1986–1999 годы).
  5. Видеоролики проигрываются слишком медленно: включите Suspend time stretch in movies, чтобы растяжение времени не влияло на FMV.
  6. Игра «забивает» одно ядро и тормозит систему: включите CPU max usage и/или Set priority below normal.
  7. Микрофризы из‑за грубых задержек: попробуйте Use nanosleep и тонкую подстройку через Fine time adjust.
  8. Проверка гипотезы: если не уверены, какая настройка нужна, действуйте по порядку: сначала исправляйте базовые проблемы (скорость игры, FPS), затем переходите к специфичным (таймеры, дата, оптимизация CPU). На каждом шаге запускайте игру через кнопку Try… и фиксируйте результат.

Logs: быстрые параметры логирования, выбор уровня детализации, путь и ротация лог‑файла.

DxWnd - Logs: быстрые параметры логирования, выбор уровня детализации, путь и ротация лог‑файла

Вкладка Logs

Назначение: нужна для отладки: когда игра падает без понятной ошибки или ведёт себя странно, логи покажут, на каком именно вызове API произошёл сбой.

Детальное описание пунктов:

log mode (режим записи лога)

Определяет, как DxWnd будет обращаться с файлом лога при каждом запуске.

  • None — логирование полностью отключено. Самый быстрый вариант, если всё работает стабильно.
  • Overwrite — каждый новый запуск перезаписывает старый лог. Удобно, чтобы не плодить десятки файлов: вы видите только последнюю попытку запуска.
  • Append — дописывает новые события в конец существующего файла. Полезно, если вы тестируете несколько изменений подряд и хотите видеть историю.
  • Separated — создаёт отдельный файл для каждого запуска (обычно с добавлением даты/времени в имя). Лучший выбор для серьёзной отладки: можно сравнить логи «до» и «после» изменения настроек.
  • Circular — циклическая запись в ограниченный набор файлов. Подходит для длительных тестов, чтобы не забить диск.

log severity (уровень важности событий)

Фильтрует, какие именно сообщения попадут в лог. Чем «выше» уровень, тем меньше мусора, но и меньше деталей.

  • Essential — только самое важное: критические ошибки, предупреждения и ключевые события (например, успешная инъекция DLL). Оптимально для большинства случаев.
  • Error — все ошибки, включая менее критичные.
  • Trace — подробный трассировочный лог: вызовы функций, их параметры и результаты. Очень много текста, но именно здесь видно, какой конкретный API-вызов ломает игру.
  • Debug — максимально подробный режим, включая внутренние проверки и отладочные сообщения самого DxWnd. Используйте только если разработчик просит «полный debug‑лог».
  • Print all errors (отдельный чекбокс) — выводит все ошибки, даже если уровень severity ниже. Удобно, чтобы не пропустить редкие сбои.

log options (дополнительные опции вывода)

Тонкие настройки формата лога.

  • Output debug string — выводит отладочные сообщения через стандартный механизм Windows OutputDebugString. Полезно, если вы смотрите логи в утилите типа DebugView.
  • Timestamp / Relative timestamp — добавляет абсолютное или относительное время для каждой строки. Относительное время удобнее для анализа последовательности событий.
  • Thread ID — показывает ID потока, из которого пришёл вызов. Критично, если проблема связана с многопоточностью (например, краш при создании окна из рабочего потока).
  • HexDump — выводит данные в шестнадцатеричном виде. Нужно, когда важно видеть точные байты буферов (например, при проблемах с текстурами или видео.
  • Write on Temp folder — сохраняет лог во временную папку системы (обычно %TEMP%). Удобно, чтобы не искать файл в папке с DxWnd.

logged info (что именно логировать)

Это самая важная часть: здесь вы выбираете, какие компоненты и API будут «записаны» в лог. Не включайте всё сразу — файл станет огромным и трудночитаемым.

Графика и окна (самые частые причины крашей)

  • DxWnd hacks — логирует внутренние хаки DxWnd (например, подмену окон, изменение DPI, эмуляцию режимов). Если игра падает при создании окна или смене разрешения — обязательно включите.
  • DirectDraw Trace / Direct3D trace — логирует вызовы DirectDraw и Direct3D. Если проблема в рендере (чёрный экран, артефакты, вылеты при загрузке уровня) — это первое, что нужно включить.
  • GDI/user32 libs — логирует вызовы GDI и оконных функций (CreateWindow, MoveWindow и т. п.). Помогает, если игра неправильно позиционирует окно или не реагирует на ввод.
  • Cursor/Mouse — логирует события мыши и управление курсором. Полезно при проблемах с захватом курсора или «залипанием» мыши.
  • Win Events — логирует системные события Windows (активация окна, фокус, сообщения WM_). Помогает при проблемах с переключением между окнами или сворачиванием игры.

Мультимедиа и звук

  • Sound — логирует вызовы аудио‑API. Если игра падает при инициализации звука или во время проигрывания ролика — включите.
  • DirectShow — логирует работу с видео через DirectShow. Нужно, если ролики не запускаются или вызывают краш.
  • CDAudio — логирует работу с CD‑аудио. Актуально для старых игр, которые читают аудио с диска.

Совместимость и низкоуровневые операции

  • SDL trace — если игра использует SDL (Simple DirectMedia Layer), логирует вызовы этой библиотеки.
  • COM trace — логирует вызовы COM‑объектов. Полезно, если игра использует ActiveX, DirectShow или другие COM‑компоненты.
  • File I/O op. — логирует операции с файлами (открытие, чтение, запись). Помогает, если игра не может найти файл, не сохраняет настройки или падает при загрузке ресурсов.
  • Registry op. — логирует обращения к реестру. Полезно, если игра не сохраняет настройки или не может прочитать ключи.
  • Time stretching — логирует операции по «растягиванию» времени (для синхронизации звука и видео). Нужно при проблемах с рассинхронизацией.
  • FPS counters — логирует счётчики кадров. Помогает при проблемах с производительностью или «фризами».

Редкие и продвинутые опции

  • D3Dumddi — логирует вызовы драйвера графики (низкоуровневые операции D3D). Только для продвинутой отладки, если проблема точно в драйвере.
  • VGA direct access — логирует прямой доступ к видеопамяти (очень старый метод). Актуально только для очень старых игр.
  • Import Table — логирует работу с таблицей импорта (IAT). Полезно, если есть проблемы с перехватом API или загрузкой DLL.
  • Hook op. — логирует операции по установке хуков. Помогает, если хуки не устанавливаются или конфликтуют.

Практические советы по использованию

  1. Для быстрого поиска проблемы: включите log mode: Overwritelog severity: Essential, и только те пункты в logged info, которые относятся к проблеме (например, Direct3D trace + DxWnd hacks).
  2. Для детального анализа: используйте log mode: Separatedlog severity: Trace, и добавьте Thread ID + Relative timestamp.
  3. Если лог слишком большой: отключите HexDump и Debug, оставьте только Essential или Error.
  4. Если не знаете, что выбрать: начните с DxWnd hacksDirect3D trace и GDI/user32 libs — это покрывает 90% проблем с запуском и рендером.

Tweaks: типы твиков и логика их применения.

DxWnd - Tweaks: типы твиков и логика их применения

Вкладка Tweaks

Назначение: это «мастер-панель» низкоуровневых исправлений (хаков) для старых игр. Она нужна, когда стандартных настроек (оконный режим, эмуляция CD, базовые параметры DirectX) недостаточно, чтобы игра запустилась или работала стабильно на современной Windows.

Твики — это принудительные изменения поведения API (DirectDraw, Direct3D), которые «обманывают» старый движок игры, заставляя его думать, что он работает в привычной среде (старая видеокарта, старая ОС, специфический драйвер).

Ниже — полный разбор всех твиков,  зачем они нужны и когда их включать.


Твики для Direct3D (d3d:), (ddraw:) и хуков (hook:)

Эти твики перехватывают вызовы Direct3D и меняют их поведение.

  • cursor:ZeroDisplayCounter — сбрасывает счётчик отображаемых кадров курсора в ноль.
    Зачем: в некоторых старых играх курсор мыши «залипает» или мерцает из‑за того, что счётчик кадров переполняется или неверно интерпретируется драйвером.
    Когда включать: если курсор мыши ведёт себя странно (не исчезает, мерцает, двигается рывками).

  • d3d:CacheD3DSession — кэширует сессию Direct3D, чтобы не пересоздавать её при каждом переключении окна или потере фокуса.
    Зачем: старые игры часто аварийно завершаются при потере фокуса (Alt+Tab) из‑за потери устройства (Device Lost).
    Когда включать: если игра вылетает при сворачивании/разворачивании или при переключении на другое окно.

  • d3d:CullModeNone — отключает отсечение невидимых граней (backface culling).
    Зачем: некоторые старые движки неправильно задают нормали полигонов, из‑за чего объекты становятся «прозрачными» или отображаются только с одной стороны.
    Когда включать: если в игре видны «дыры» в моделях, или объекты отображаются только с одной стороны.

  • d3d:D3D8MaximizeWinModeHack — хак для корректного перехода в полноэкранный режим в Direct3D 8.
    Зачем: D3D8 имеет проблемы с изменением режима отображения (resolution/refresh) на современных драйверах.
    Когда включать: если игра на D3D8 не переходит в полноэкранный режим или показывает чёрный экран при попытке развернуть на весь экран.

  • d3d:D3DXDoNotMute — запрещает D3DX (библиотека DirectX Extensions) отключать звук при потере устройства.
    Зачем: при потере устройства (Device Lost) D3DX по умолчанию отключает звук, чтобы избежать ошибок. В старых играх это может приводить к полной потере звука даже после восстановления устройства.
    Когда включать: если звук пропадает после сворачивания игры или при потере фокуса.

  • d3d:DeferredWindowPos — откладывает изменение позиции окна до момента, когда Direct3D будет готов к рендерингу.
    Зачем: некоторые игры пытаются изменить позицию окна во время инициализации D3D, что приводит к ошибкам или чёрному экрану.
    Когда включать: если игра показывает чёрный экран при старте или неправильно позиционирует окно.

  • d3d:DisableD3DXPSGP — отключает использование расширений шейдеров (Pixel Shader / Geometry Pipeline) из D3DX.
    Зачем: старые игры могут пытаться использовать шейдеры, которые не поддерживаются на современном железе или вызывают артефакты.
    Когда включать: если в игре видны графические артефакты (странные цвета, мерцание, «квадраты» на текстурах), связанные с шейдерами.

  • d3d:DisableMMX — отключает использование инструкций MMX (MultiMedia eXtensions) в коде рендеринга D3D.
    Зачем: MMX — старые SIMD‑инструкции, которые могут работать некорректно на современных CPU или вызывать вылеты в старых движках.
    Когда включать: если игра вылетает сразу после старта или при определённых действиях (например, при загрузке уровня).

  • d3d:DisablePSGP — отключает использование конвейера пиксельных шейдеров (Pixel Shader Geometry Pipeline).
    Зачем: аналогично DisableD3DXPSGP, но на более низком уровне.
    Когда включать: если DisableD3DXPSGP не помог, а артефакты остаются.

  • d3d:FixD3DWindowFrame — исправляет отрисовку рамки окна (border) для приложений Direct3D.
    Зачем: некоторые игры неправильно рассчитывают размер клиентской области окна, из‑за чего часть изображения обрезается или появляется лишняя рамка.
    Когда включать: если в оконном режиме часть изображения обрезана или рамка окна выглядит странно.

  • d3d:FixT&LRhw — исправляет обработку координат текстуры и глубины (Texture & Linearized Rhw) в старых D3D‑движках.
    Зачем: старые игры могут использовать устаревшие форматы вершин, которые современные драйверы интерпретируют неправильно.
    Когда включать: если текстуры «плывут», искажаются или неправильно накладываются на модели.

  • d3d:ForceColorKeyOff — принудительно отключает использование цветового ключа (color key) для прозрачности.
    Зачем: цветовой ключ — старый метод создания прозрачности (например, маджента как прозрачный цвет). Современные драйверы могут обрабатывать его неправильно.
    Когда включать: если в игре есть артефакты прозрачности (странные цветные пятна, «дыры» в текстурах).

  • d3d:ForceD3D9on12 — принудительно заставляет D3D9 использовать бэкенд D3D12 (через D3D9On12).
    Зачем: D3D9On12 — это прослойка, которая позволяет запускать D3D9‑игры на современных драйверах, используя D3D12 под капотом.
    Когда включать: если игра на D3D9 не запускается или работает нестабильно на Windows 10/11.

  • d3d:ForceD3DRefDevice — принудительно использует эталонное устройство (Reference Rasterizer) вместо аппаратного.
    Зачем: Reference Rasterizer — это программный рендерер, который реализует D3D «как в спецификации», без оптимизаций под конкретное железо. Он очень медленный, но позволяет проверить, работает ли игра вообще.
    Когда включать: если игра не запускается на аппаратном устройстве, и нужно проверить, в чём проблема (движок или железо).

  • d3d:ForceFilterNearest — принудительно использует фильтрацию текстур «ближайший сосед» (Nearest Neighbor).
    Зачем: современные драйверы по умолчанию используют билинейную или трилинейную фильтрацию, что может приводить к размытию текстур в старых играх.
    Когда включать: если текстуры в игре слишком размыты, и хочется «ретро‑вида».

  • d3d:LegacyD3DResolutionHack — хак для корректного выбора разрешения экрана в старых D3D‑играх.
    Зачем: некоторые игры не могут выбрать разрешение, отличное от 640×480 или 800×600, на современных мониторах.
    Когда включать: если игра не позволяет выбрать нужное разрешение или показывает изображение в неправильном масштабе.

  • d3d:NoD3DWindowMove — запрещает изменение позиции окна D3D‑приложения.
    Зачем: некоторые игры пытаются перемещать своё окно, что может приводить к ошибкам рендеринга.
    Когда включать: если игра «прыгает» по экрану или показывает чёрный экран при попытке переместить окно.

  • d3d:RampToMMXDevice — пытается «смягчить» переход на устройство, поддерживающее MMX.
    Зачем: устаревший хак для совместимости с очень старыми играми.
    Когда включать: только если другие методы не помогли, и игра явно требует MMX.

  • d3d:RampToRGBDevice — пытается «смягчить» переход на RGB‑устройство (вместо палитрованного).
    Зачем: старые игры могли быть рассчитаны на палитрованные режимы (256 цветов), а современные драйверы работают только с RGB.
    Когда включать: если игра показывает странные цвета или «полосы» на изображении.

  • ddraw:AllowSysMemoryOn3DDevice — разрешает использование системной памяти для 3D‑устройств в DirectDraw.
    Зачем: некоторые старые игры пытаются использовать системную память для буферов, что современные драйверы могут запрещать.
    Когда включать: если игра не запускается или показывает чёрный экран при использовании 3D‑режимов в DirectDraw.

  • ddraw:BlitFromBackbuffer — разрешает копирование из заднего буфера (backbuffer) в другие поверхности.
    Зачем: некоторые игры пытаются копировать изображение из backbuffer для эффектов (например, отражения), что современные драйверы могут запрещать.
    Когда включать: если в игре отсутствуют эффекты, связанные с копированием изображения (например, отражения, тени).

  • ddraw:ColorKey2Palette — преобразует цветовой ключ в палитру для корректного отображения прозрачности.
    Зачем: старые игры могли использовать палитру для прозрачности, а современные драйверы этого не поддерживают.
    Когда включать: если прозрачность отображается неправильно (например, вместо прозрачного цвета — чёрный или белый).

  • ddraw:DisableColorKey — полностью отключает использование цветового ключа.
    Зачем: если цветовой ключ вызывает артефакты или неправильную прозрачность.
    Когда включать: если ForceColorKeyOff не помог, или если игра вообще не использует прозрачность.

  • ddraw:FastPrimaryUpdate — ускоряет обновление первичной поверхности (primary surface).
    Зачем: DirectDraw использует первичную поверхность для вывода изображения на экран. Современные драйверы могут делать это слишком медленно или неправильно.
    Когда включать: если игра тормозит или показывает мерцание в DirectDraw‑режиме.

  • ddraw:FilterColorKey — применяет фильтрацию к цветовому ключу для более плавной прозрачности.
    Зачем: цветовой ключ может давать «зубчатые» края у прозрачных объектов.
    Когда включать: если края прозрачных объектов выглядят «пикселизированными» или «зубчатыми».

  • ddraw:FixDCAlreadyCreated — исправляет ошибку, когда устройство контекста (Device Context) уже создано.
    Зачем: некоторые игры пытаются создать DC повторно, что приводит к ошибкам.
    Когда включать: если игра вылетает при старте или при попытке изменить режим отображения.

  • ddraw:FixFullscreenWinStyle — исправляет стиль окна для полноэкранного режима.
    Зачем: полноэкранный режим в DirectDraw должен иметь определённые флаги стиля окна. Современные ОС могут их сбрасывать.
    Когда включать: если игра не переходит в полноэкранный режим или показывает рамку окна в полноэкранном режиме.

  • ddraw:ForceColorKey — принудительно включает использование цветового ключа.
    Зачем: если игра не использует прозрачность, хотя должна.
    Когда включать: если прозрачные объекты отображаются как сплошные цвета.

  • ddraw:Forces16BitZBufferBitDepth — принудительно устанавливает глубину Z‑буфера в 16 бит.
    Зачем: некоторые старые игры рассчитаны на 16‑битный Z‑буфер, а современные драйверы используют 24 или 32 бита.
    Когда включать: если в игре есть проблемы с глубиной (объекты перекрывают друг друга неправильно, «z‑fighting»).

  • ddraw:Forces24BitZBufferBitDepth — принудительно устанавливает глубину Z‑буфера в 24 бита.
    Зачем: аналогично предыдущему, но для 24‑битного Z‑буфера.
    Когда включать: если 16‑битный Z‑буфер вызывает проблемы с глубиной.

  • ddraw:ForcesHAL — принудительно использует HAL‑устройство (Hardware Abstraction Layer) в DirectDraw.
    Зачем: HAL — это аппаратное ускорение. Некоторые игры не работают без него.
    Когда включать: если игра не использует аппаратное ускорение или работает слишком медленно.

  • ddraw:ForcesHEL — принудительно использует HEL‑устройство (Hardware Emulation Layer) в DirectDraw.
    Зачем: HEL — это программная эмуляция. Используется, если HAL вызывает проблемы.
    Когда включать: если HAL вызывает артефакты или вылеты.

  • ddraw:ForcesNULL — принудительно использует NULL‑устройство (без рендеринга).
    Зачем: только для тестов.
    Когда включать: никогда, кроме отладки.

  • ddraw:InvalidateClient — принудительно делает клиентскую область окна недействительной (для перерисовки).
    Зачем: некоторые игры не перерисовывают окно при изменении размера или перемещении.
    Когда включать: если окно не перерисовывается при изменении размера или перемещении.

  • ddraw:LegacyCallback — использует устаревший механизм обратного вызова (callback) для DirectDraw.
    Зачем: некоторые старые игры ожидают определённого поведения callback‑функций.
    Когда включать: если игра не реагирует на события или не обновляет изображение.

  • ddraw:MakeBackbufferAttachable — делает задний буфер (backbuffer) прикрепляемым к другим поверхностям.
    Зачем: некоторые игры пытаются прикрепить backbuffer к другим поверхностям для эффектов.
    Когда включать: если эффекты, связанные с backbuffer, не работают.

  • ddraw:ManageFourCCSurfaces — управляет поверхностями с кодеками FourCC (Four Character Code).
    Зачем: FourCC используется для кодирования видео и текстур. Современные драйверы могут не поддерживать старые кодеки.
    Когда включать: если в игре не воспроизводится видео или текстуры отображаются неправильно.

  • ddraw:NoComplexMipmaps — отключает использование сложных MIP‑карт (mipmaps).
    Зачем: MIP‑карты — это уменьшенные копии текстур для разных расстояний. Современные драйверы могут генерировать их неправильно.
    Когда включать: если текстуры «мерцают» или выглядят странно на расстоянии.

  • ddraw:NoDirectDrawSurfaceNew — запрещает создание новых поверхностей DirectDraw через IDirectDrawSurface7::New.
    Зачем: некоторые игры пытаются создавать поверхности устаревшим способом, что может приводить к ошибкам.
    Когда включать: если игра вылетает при создании поверхностей.

  • ddraw:NoSystemMemoryOnBackbufl (вероятно, опечатка: NoSystemMemoryOnBackbuffer) — запрещает использование системной памяти для заднего буфера.
    Зачем: задний буфер должен находиться в видеопамяти. Использование системной памяти может приводить к тормозам.
    Когда включать: если игра тормозит или показывает мерцание.

  • ddraw:NoSystemMemoryOnPrimary — запрещает использование системной памяти для первичной поверхности.
    Зачем: аналогично предыдущему, но для первичной поверхности.
    Когда включать: если игра тормозит или показывает мерцание.

  • ddraw:ReturnNULLReference — возвращает NULL вместо ссылки на объект при ошибках.
    Зачем: некоторые игры неправильно обрабатывают ошибки создания объектов.
    Когда включать: если игра вылетает при создании объектов DirectDraw.

  • ddraw:SafePrimaryLock — использует безопасный механизм блокировки первичной поверхности.
    Зачем: блокировка поверхности нужна для прямого доступа к пикселям. Современные драйверы могут блокировать её неправильно.
    Когда включать: если игра вылетает при попытке заблокировать поверхность.

  • ddraw:SmackBufferNoDepth — отключает использование глубины (Z‑буфера) для буфера Smack (видеокодек).
    Зачем: Smack — это старый видеокодек, который мог использовать Z‑буфер неправильно.
    Когда включать: если видео в игре не воспроизводится или показывает артефакты.

  • ddraw:StretchBackBuffer — растягивает задний буфер на весь экран.
    Зачем: некоторые игры не растягивают изображение на весь экран автоматически.
    Когда включать: если изображение в игре отображается в маленьком окне или с чёрными полосами.

  • hook:CreateDCHook — создаёт хук для перехвата создания устройства контекста (Device Context).
    Зачем: Device Context используется для GDI‑отрисовки. Некоторые игры пытаются создать его неправильно.
    Когда включать: если игра не отображает текст или 2D‑элементы интерфейса.


Как правильно использовать твики

  1. Не включайте всё сразу. Каждый твик — это потенциальный конфликт. Включайте по одному и тестируйте игру.
  2. Начинайте с самых «безопасных». Например, FixFullscreenWinStyleStretchBackBufferForceColorKeyOff — они редко вызывают проблемы.
  3. Используйте кнопку «Try…» в DxWnd для тестирования профиля без сохранения.
  4. Ведите заметки. Записывайте, какой твик и когда помог, чтобы не забыть.
  5. Не бойтесь сбрасывать. Если игра перестала запускаться, удалите все твики и начните заново.

Шаг 1. Разбираем префиксы: что скрывается за hook:input:ddraw:d3d: и patch:

По префиксу в названии твика сразу понятно, на какой уровень совместимости он влияет:

  • hook: — низкоуровневые перехваты (хуки) системных вызовов. Меняют поведение ОС на уровне API. Примеры: hook:FixParentWindow (исправление родительского окна), hook:ReplaceDirectXDLLs (подмена DLL DirectX).
  • input: — исправления ввода: мышь, клавиатура, оси джойстика. Примеры: input:ForceAbsoluteAxis (абсолютные оси), input:MouseMoveByEvent (движение мыши через события).
  • ddraw: — твики для DirectDraw (2D, старые игры до ~2000 года). Влияют на поверхности, палитру, Z‑буфер, полноэкранный режим. Примеры: ddraw:FastPrimaryUpdateddraw:Forces16BitZBufferBitDepth.
  • d3d: — твики для Direct3D (3D‑игры). Влияют на шейдеры, устройства, сессии, фильтрацию текстур. 
  • patch: — патчи под конкретные игры или проблемы. Примеры: patch:ChaosOverlordsFixpatch:FixEmpireOfTheFadingSuns.

Шаг 2. Хуки, ввод и патчи под конкретные игры

Эти твики решают проблемы, не связанные напрямую с рендерингом, но критичные для запуска и управления.

Хуки (hook:)

  • hook:FixParentWindow — исправляет проблему, когда игра не может найти или корректно использовать родительское окно.
    Когда включать: если игра запускается, но окно «отрывается» от рабочего стола, не сворачивается или не реагирует на Alt+Tab.
  • hook:NoShellExecute — запрещает игре вызывать ShellExecute (запуск внешних программ, открытие URL).
    Когда включать: если игра пытается открыть браузер или другой exe и из‑за этого вылетает или зависает.
  • hook:ReplaceDirectXDLLs / hook:ReplaceDSoundDLL — подменяет системные DLL DirectX и DirectSound на собственные версии DxWnd.
    Когда включать: если игра требует старые версии DLL, которые отсутствуют в Windows 10/11, или если наблюдаются проблемы со звуком/графикой.

Ввод (input:)

  • input:ConfirmEscape — требует подтверждения при нажатии Esc (защита от случайного выхода).
    Когда включать: если вы часто случайно нажимаете Esc и хотите добавить подтверждение.
  • input:ForceAbsoluteAxis / input:ForceRelativeAxis — принудительно переключает оси ввода в абсолютный или относительный режим.
    Когда включать: если мышь или джойстик работают «наоборот» или не двигаются в игре.
  • input:MouseMoveByEvent — эмулирует движение мыши через события Windows вместо прямого опроса устройства.
    Когда включать: если курсор не двигается или «залипает» в игре.
  • input:NoAccessibilityKeys — отключает обработку специальных клавиш доступности (для экранных дикторов и т. п.).
    Когда включать: если игра конфликтует с функциями доступности Windows.
  • input:RemapNumericKeypad — переназначает цифровую клавиатуру (Numpad) для корректной работы в старых играх.
    Когда включать: если Numpad не работает или выполняет не те действия.

Патчи под игры (patch:)

  • patch:ChaosOverlordsFixpatch:FixEmpireOfTheFadingSunspatch:FixMacromediaRegistry и др. — узкоспециализированные исправления под конкретные игры или движки (Macromedia Director и т. п.).
    Когда включать: только если у вас именно эта игра и в сообществе указано, что этот патч помогает.

Шаг 3. DirectDraw и продвинутые твики

Эти твики решают проблемы с 2D‑рендерингом, полноэкранным режимом, буферами и палитрой.

Производительность и первичная поверхность

  • ddraw:FastPrimaryUpdate — ускоряет обновление первичной поверхности (куда выводится изображение).
    Когда включать: если игра тормозит или мерцает в DirectDraw‑режиме.
  • ddraw:StretchBackBuffer — растягивает задний буфер под размер окна.
    Когда включать: если изображение «сжато» или имеет неправильные пропорции в оконном режиме.

Палитра, прозрачность и цветовой ключ

  • ddraw:FilterColorKey — сглаживает края при использовании цветового ключа (прозрачности).
    Когда включать: если прозрачные объекты имеют «зубчатые» края.
  • ddraw:ForceColorKey — принудительно включает использование цветового ключа.
    Когда включать: если прозрачность не работает, хотя должна.
  • ddraw:ColorKey2Palette (есть в общем списке) — преобразует цветовой ключ в палитру для корректного отображения.
    Когда включать: если прозрачность отображается как сплошной цвет.

Полноэкранный режим и стили окна

  • ddraw:FixFullscreenWinStyle — исправляет стиль окна для полноэкранного режима.
    Когда включать: если игра не переходит в полноэкранный режим или показывает рамку окна в полноэкранном режиме.
  • ddraw:FixDCAlreadyCreated — исправляет ошибку, когда устройство контекста (DC) уже создано.
    Когда включать: если игра вылетает при старте или при попытке изменить режим отображения.

Буферы, Z‑буфер и поверхности

  • ddraw:Forces16BitZBufferBitDepth / ddraw:Forces24BitZBufferBitDepth — принудительно устанавливает глубину Z‑буфера.
    Когда включать: если объекты перекрывают друг друга неправильно (например, дальние объекты рисуются поверх ближних).
  • ddraw:MakeBackbufferAttachable — делает задний буфер присоединяемым для корректной работы эффектов.
    Когда включать: если в игре отсутствуют отражения, тени или другие эффекты, использующие копирование буферов.
  • ddraw:NoSystemMemoryOnBackbuffer / ddraw:NoSystemMemoryOnPrimary — запрещает использование системной памяти для буферов.
    Когда включать: если игра не запускается или показывает чёрный экран при использовании 3D‑режимов в DirectDraw.

Продвинутые и «экзотические» твики

  • ddraw:NoComplexMipmaps — отключает сложные MIP‑карты для упрощения рендеринга.
    Когда включать: если текстуры выглядят странно или игра тормозит из‑за MIP‑карт.
  • ddraw:SafePrimaryLock — безопасный захват первичной поверхности для предотвращения ошибок.
    Когда включать: если игра вылетает при попытке заблокировать поверхность для записи.
  • ddraw:ReturnNULLReference — возвращает NULL‑ссылку при ошибках для предотвращения крашей.
    Когда включать: если игра падает при определённых действиях (например, при загрузке уровня).

Шаг 4. Частые сценарии и готовые наборы твиков

  • Игра не запускается или чёрный экран: попробуйте hook:ReplaceDirectXDLLsddraw:FastPrimaryUpdateddraw:FixFullscreenWinStyle.
  • Мерцание, тормоза, артефакты: ddraw:FastPrimaryUpdateddraw:StretchBackBufferddraw:NoComplexMipmaps.
  • Проблемы с прозрачностью: ddraw:FilterColorKeyddraw:ForceColorKeyddraw:ColorKey2Palette.
  • Неправильный порядок отрисовки (Z‑fighting): ddraw:Forces16BitZBufferBitDepth или ddraw:Forces24BitZBufferBitDepth.
  • Проблемы с мышью или клавиатурой: input:ForceAbsoluteAxisinput:MouseMoveByEventinput:RemapNumericKeypad.

 Расшифровываем префиксы: shim:sound:patch:tweak:

Префикс в названии твика сразу указывает, на каком уровне совместимости он работает:

  • shim: (shim — «прокладка») — системные эмуляции и подмены вызовов Windows API. Это «обманки» для старого кода: например, притвориться, что запущена Windows 95, или подменить обработку критических секций.
  • sound: — исправления, связанные со звуком: DirectSound, MCI, WaveOut, AIL. Решают проблемы с отсутствием звука, треском, зависаниями при проигрывании аудио.
  • patch: — узкоспециализированные патчи под конкретные игры, движки или известные баги (например, patch:DiabloTweakpatch:MW2WaveOutFix).
  • tweak: — «мелкие» исправления под отдельные игры или движки (часто фанатские).

Разбираем твики shim:

Системные эмуляции (shim:)

  • shim:IgnoreScheduler — игнорирует планировщик ОС для более «ровного» поведения старого кода.
    Когда включать: если игра чувствительна к таймингам или зависает на современных многоядерных CPU.
  • shim:MapMemoryB0000 — эмулирует область памяти B0000h (типично для старых видеокарт и BIOS).
    Когда включать: если игра обращается к этой области и падает без неё.
  • shim:MutexForCriticalSection — заменяет критические секции на мьютексы для лучшей совместимости.
    Когда включать: если игра зависает или вылетает при многопоточных операциях.
  • shim:Win16CreateFile / shim:Win16FindFileFix — эмуляция 16‑битных вызовов для старых Win16‑игр.
    Когда включать: если игра написана под Windows 3.1/95 и падает при работе с файлами.
  • shim:Win98OpaqueFont — эмуляция непрозрачных шрифтов Windows 98.
    Когда включать: если текст в игре отображается некорректно или «прозрачным».

Звуковые исправления (sound:)

  • sound:AsyncWaveOutClose / sound:AsyncWaveOutOpen — асинхронное открытие/закрытие WaveOut для избежания зависаний.
    Когда включать: если игра зависает при старте/выходе из‑за звука.
  • sound:FixAILBug / sound:FixAILSoundLocks — исправления для звукового движка AIL (часто в играх 90‑х).
    Когда включать: если в игре треск, прерывания звука или он полностью отсутствует.
  • sound:ForceEmulDriver — принудительная эмуляция звукового драйвера.
    Когда включать: если игра требует специфический драйвер, которого нет в современной ОС.
  • sound:MidiOutBypass — обход проблем с выводом MIDI.
    Когда включать: если MIDI‑музыка не играет или вызывает вылеты.
  • sound:WaveOutUsePreferredDevice — использование предпочтительного звукового устройства.
    Когда включать: если звук идёт не на то устройство или отсутствует.

Прочие исправления

  • time:CustomPerfCount — кастомный счётчик производительности для корректных таймингов.
    Когда включать: если игра «летит» или «тормозит» из‑за неверных таймингов на современных CPU.
  • tweak:DiabloTweak / tweak:EASportsHack — узкоспециализированные твики под конкретные игры.
    Когда включать: только если у вас именно эта игра и в сообществе указано, что твик помогает.

Разбираем твики patch:

Патчи под игры и движки (patch:)

  • patch:IgnoreFileSysErrors — игнорирование ошибок файловой системы.
    Когда включать: если игра падает из‑за несуществующих файлов или ошибок доступа.
  • patch:KillDeadlocks — устранение взаимных блокировок (deadlocks) в коде игры.
    Когда включать: если игра зависает «намертво» в определённых местах.
  • patch:LegacyBaseUnits / patch:LegacyKernel32 — эмуляция старых единиц измерения и функций ядра.
    Когда включать: если игра использует устаревшие API и падает на современных ОС.
  • patch:MW2WaveOutFix — исправление проблем со звуком в Modern Warfare 2 (или другой игре с похожим движком).
    Когда включать: только для этой игры.
  • patch:SpongeBobHack — специфический патч (часто для старых детских игр).
    Когда включать: только если у вас эта игра и в сообществе указано, что он нужен.

Системные эмуляции (shim:)

  • shim:EmulateDirectDrawSync — эмуляция синхронизации DirectDraw.
    Когда включать: если в игре мерцание, разрывы кадра или артефакты в 2D‑режиме.
  • shim:EmulateGetCommandLine — эмуляция получения командной строки.
    Когда включать: если игра не видит параметры запуска или падает при старте.
  • shim:EmulateWin95 — эмуляция среды Windows 95.
    Когда включать: если игра написана под Win95 и не запускается на современных ОС.
  • shim:FakeGlobalAtom — подмена глобальных атомов для совместимости.
    Когда включать: если игра падает при работе с глобальными ресурсами.
  • shim:FixCreateFileMapping — исправление создания файловых отображений.
    Когда включать: если игра падает при загрузке ресурсов или сохранении.
  • shim:HideDisplayModes — скрытие неподдерживаемых режимов экрана.
    Когда включать: если игра пытается выбрать неподдерживаемое разрешение и падает.

Готовые наборы твиков для частых проблем

  • Игра не запускается или чёрный экран: попробуйте shim:EmulateWin95shim:FixCreateFileMappingsound:ForceEmulDriver.
  • Звук отсутствует или трещит: sound:AsyncWaveOutOpensound:FixAILBugsound:WaveOutUsePreferredDevice.
  • Игра зависает «намертво»: patch:KillDeadlocksshim:MutexForCriticalSection.
  • Мерцание, разрывы кадра в 2D‑режиме: shim:EmulateDirectDrawSyncshim:HideDisplayModes.
  • Игра падает при работе с файлами: patch:IgnoreFileSysErrorsshim:Win16CreateFile.

Разбираем префикс win: управление окнами и диалогами

Эти твики перехватывают вызовы Win32 API, связанные с созданием, отрисовкой и уничтожением окон.

Управление видимостью и состоянием окна

  • win:PreventMinimizeWindow — запрещает сворачивание окна игры.
    Когда включать: если игра сворачивается при потере фокуса (например, при клике на второй монитор) или при появлении системных уведомлений.
  • win:NoMainWindowDestruction — запрещает уничтожение главного окна (даже если игра пытается его закрыть).
    Когда включать: если игра «вылетает» сразу после старта из‑за преждевременного закрытия окна.
  • win:MakeQueriedWindowVisible — принудительно делает окно видимым при запросе.
    Когда включать: если игра стартует, но окно не появляется (чёрный экран, но процесс висит).
  • win:StickyWindows — «прилипание» окна к рабочему столу (не позволяет ему уходить за границы экрана или под другие окна).
    Когда включать: если окно «уезжает» за пределы монитора или перекрывается панелью задач.

Диалоговые окна и меню

  • win:ReplaceDialogs — заменяет стандартные диалоги Windows на совместимые версии.
    Когда включать: если игра падает при открытии диалогов «Сохранить», «Загрузить», «Настройки».
  • win:LockSystemMenu — блокирует системное меню окна (кнопки «Свернуть», «Развернуть», крестик).
    Когда включать: если игра некорректно обрабатывает нажатия на эти кнопки.
  • win:SuppressMenus — скрывает системные меню.
    Когда включать: если меню конфликтует с внутриигровым интерфейсом.
  • win:CenterDialogs — центрирует все диалоговые окна.
    Когда включать: если диалоги появляются за пределами экрана или в углу.
  • win:TransparentDialog — делает диалоги прозрачными (для совместимости с рендерингом).
    Когда включать: если диалоги перекрывают графику или отображаются как чёрные квадраты.

Отрисовка и масштабирование

  • win:FullPaintRect — заставляет систему полностью перерисовывать окно при каждом обновлении.
    Когда включать: если в игре появляются артефакты, «шлейфы» или части интерфейса не обновляются.
  • win:LockFPSCorner — фиксирует угол окна для корректного расчёта FPS.
    Когда включать: если счётчик кадров или внутриигровая логика ломается при изменении размера окна.
  • win:FPSCountUpdatesBigger 1/4Scre — корректирует подсчёт обновлений экрана относительно четверти размера экрана.
    Когда включать: если FPS‑счётчик показывает неверные значения или игра «дёргается» при изменении разрешения.
  • win:ScaleChildWindows — масштабирует дочерние окна (элементы интерфейса) при изменении размера главного окна.
    Когда включать: если элементы интерфейса «разъезжаются» при изменении размера окна.
  • win:TrimChildWindows / win:TrimMainWindow — обрезает лишние области дочерних/главного окон.
    Когда включать: если появляются чёрные полосы или пустые области вокруг игрового окна.
  • win:TrimTextYPos — корректирует вертикальное положение текста в окнах.
    Когда включать: если текст в интерфейсе смещён вверх/вниз или обрезан.

Специальные исправления

  • win:KillBlackWindows — принудительно закрывает «чёрные» окна (которые не рисуют контент).
    Когда включать: если игра зависает из‑за окна, которое не может отрисоваться.
  • win:LockAllWindows — блокирует изменение состояния всех окон.
    Когда включать: если игра нестабильно работает с несколькими окнами.
  • win:LockCursorShape — фиксирует форму курсора (чтобы игра не меняла его на «неподдерживаемый»).
    Когда включать: если курсор превращается в чёрный квадрат или исчезает.
  • win:PushActiveMovieWindows — принудительно активирует окна ActiveMovie (для старых видеоплееров/роликов в играх).
    Когда включать: если внутриигровые видеоролики не запускаются или показывают чёрный экран.
  • win:ProjectBuffer — использует буфер проекции для корректного рендеринга.
    Когда включать: если изображение «плывёт» или появляются артефакты при движении камеры.
  • win:SendWM_ACTIVATEAPPMessage — отправляет сообщение активации приложения (WM_ACTIVATEAPP).
    Когда включать: если игра не реагирует на переключение между окнами.
  • win:SuppressIME — отключает редактор метода ввода (IME) для азиатских языков.
    Когда включать: если игра падает при включённом IME или появляются лишние панели ввода.
  • win:DisableLayeredWindows — отключает слоистые окна (Layered Windows).
    Когда включать: если полупрозрачные элементы интерфейса отображаются некорректно.
  • win:EmulateWinResize — эмулирует изменение размера окна в стиле старых Windows.
    Когда включать: если игра неправильно обрабатывает изменение размера окна.
  • win:ForceClipChildren — принудительно обрезает дочерние окна по границам родителя.
    Когда включать: если дочерние окна «вылезают» за границы главного окна.
  • win:ForceSimpleWindow — использует упрощённую модель окна (без сложных стилей).
    Когда включать: если игра падает при создании окна с нестандартными стилями.

Разбираем префикс tweak: узкоспециализированные исправления

  • tweak:HideDirectDraw — скрывает DirectDraw‑вызовы (для совместимости с обёртками вроде dgVoodoo).
    Когда включать: если игра конфликтует с DirectDraw‑эмуляцией или вы используете dgVoodoo.
  • tweak:LimitResources — ограничивает потребление ресурсов (для старых движков, чувствительных к избытку памяти/CPU).
    Когда включать: если игра зависает или вылетает на современных мощных ПК.
  • tweak:SlowDownExceptions — замедляет обработку исключений (чтобы старые игры успевали их обработать).
    Когда включать: если игра падает с ошибками доступа к памяти на быстрых CPU.
  • tweak:XRayTweak — специфический патч (часто для старых шутеров, чтобы исправить рендеринг сквозь стены).
    Когда включать: только если в сообществе указано, что он нужен для вашей игры.

Практические рекомендации: как подбирать твики

  1. Не включайте всё подряд. Твики могут конфликтовать: например, win:LockAllWindows и win:PreventMinimizeWindow могут блокировать нужные действия ОС.
  2. Добавляйте по одному, тестируя игру после каждого. Так вы поймёте, какой именно твик решает проблему.
  3. Используйте логи DxWnd (dxwnd.log) — они показывают, какие хуки и твики сработали и где произошла ошибка.
  4. Ищите готовые профили для вашей игры на форумах (Vogons, Old‑Games) — там часто есть проверенные наборы твиков.
  5. Начинайте с базовых настроек (вкладки Main, Hook, Video) — часто этого достаточно, и твики не нужны.

Готовые наборы твиков для частых проблем

  • Игра не запускается или чёрный экран: попробуйте win:MakeQueriedWindowVisiblewin:KillBlackWindowswin:NoMainWindowDestruction.
  • Артефакты, «шлейфы», не обновляется интерфейс: win:FullPaintRectwin:TrimChildWindowswin:TrimMainWindow.
  • Диалоги не открываются или отображаются как чёрные квадраты: win:ReplaceDialogswin:CenterDialogswin:TransparentDialog.
  • Игра сворачивается или теряет фокус: win:PreventMinimizeWindowwin:StickyWindows.
  • Видеоролики не запускаются: win:PushActiveMovieWindows.
  • Игра вылетает на мощных ПК: tweak:LimitResourcestweak:SlowDownExceptions.
  • Конфликты с DirectDraw‑эмуляцией: tweak:HideDirectDraw.

Глава 4. Базовые профили: как начать без риска

Универсальный «минимальный» профиль для 2D‑игр (5–7 параметров).

Универсальный «минимальный» профиль для 2D‑игр в DxWnd — всего 5–7 параметров, которые закрывают 90% проблем (растяжение картинки, смещение курсора, вылеты на старте, некорректная палитра) и при этом не перегружают процесс лишними хуками.


Минимальный профиль (5–7 параметров)

  1. Hook DirectDraw (вкладка DirectX) — это база для 2D‑игр. Именно через DirectDraw старые игры рисуют кадр. Без этого хука масштабирование и оконный режим работать не будут .
  2. Windowed / Custom resolution (вкладка Main) — принудительный оконный режим и заданное разрешение (например, 1280×720 или 1024×768). Для 2D‑игр лучше не оставлять «родное» 640×480: на современных экранах это выглядит как маленькое окно в центре. Масштабирование в DxWnd делает картинку чёткой без «мыла» .
  3. Colour Convert (вкладка DirectX) — конвертирует 8‑битные палитры (256 цветов) в 32‑битный цвет. В Windows 10/11 старые палитры часто отображаются с артефактами или «поехавшими» цветами. Эта опция исправляет их на лету .
  4. Use GDI (вкладка DirectX) — рендерит через GDI вместо видеорежима. Для 2D‑игр это почти всегда плюс: игра стартует быстрее, не мерцает при переключении Alt+Tab, и реже падает на этапе инициализации графики .
  5. Auto-Correct Mouse Position (вкладка Mouse) — корректирует координаты мыши под масштабированное окно. Без этой опции курсор «улетает» относительно кнопок и хитбоксов, потому что игра думает, что работает в 640×480, а окно у вас 1280×720 .
  6. Capture Mouse Pointer (вкладка Mouse) — удерживает курсор внутри игрового окна. В 2D‑играх это критично: если курсор выскочит за границы, игра может потерять фокус или не зарегистрировать клик .
  7. Emulate Win9X heap (вкладка Libs → Kernel32 (heap)) — эмулирует поведение кучи памяти Windows 9x. Многие старые 2D‑движки (особенно конца 90‑х) жёстко завязаны на особенностях аллокатора Win98. На современных ОС это вызывает редкие, но фатальные вылеты при загрузке ресурсов. Включение этой опции стабилизирует запуск без заметного влияния на производительность .

Почему именно эти 7 пунктов

  • Покрытие основных проблем. Вместе они решают главные проблемы 2D‑игр: «узкое» окно, «поехавшая» палитра, неточный курсор и вылеты при загрузке.
  • Минимум конфликтов. Мы не включаем лишние хуки (например, Direct3D, OpenGL, Glide), которые для 2D‑игр не нужны и могут конфликтовать с античитами или защитой.
  • Стабильность. Emulate Win9X heap — это «тихая» опция: она не меняет видимую картинку, но заметно снижает количество случайных крашей.

Как быстро проверить и докрутить

  1. Если игра запускается, но картинка «мыльная». Попробуйте в DirectX отключить Use GDI и оставить только Hook DirectDraw + Colour Convert. GDI иногда даёт более мягкое масштабирование, а чистый DirectDraw — более чёткое.
  2. Если игра падает сразу при старте. Оставьте только Hook DirectDrawWindowedAuto-Correct Mouse Position и Emulate Win9X heap. Если запустится — добавляйте остальные опции по одной, чтобы найти конфликтную.
  3. Если игра работает, но курсор всё равно «не там». Проверьте, не включена ли в самой игре опция «Raw Input» или «DirectInput» для мыши. В этом случае Auto-Correct Mouse Position может не сработать — попробуйте отключить внутриигровую настройку или поэкспериментировать с Capture Mouse Pointer.

Оптимальный профиль для 3D‑игр.

создадим по-настоящему «оптимальный» профиль для 3D‑игр в DxWnd — такой, где каждая настройка не просто стоит «на всякий случай», а закрывает конкретную, типичную для старых движков проблему. Это не набор «чтобы запустилось», а сбалансированная конфигурация, которая делает игру стабильной и удобной на современном ПК.


Оптимальный профиль для 3D‑игр (8 продуманных параметров)

  1. Hook Direct3D (вкладка Direct3D).
    Это фундамент для 3D‑графики в DxWnd. Именно через этот хук программа перехватывает вызовы отрисовки, чтобы корректно масштабировать 3D‑сцену под современное окно. Без него игра либо останется в родном низком разрешении, либо вообще не стартует в оконном режиме.

  2. Windowed + Custom resolution (вкладка Main).
    Запускайте игру строго в оконном режиме с подобранным разрешением. Для старых 3D‑движков критически важно не оставлять «родное» 640×480: на 4K‑экране это будет крошечное окно, а попытка растянуть его силами монитора даст сильное «мыло». DxWnd умеет масштабировать картинку аккуратнее. Выбирайте разрешение с теми же пропорциями, что и у игры (например, 1280×720 для 16:9 или 1024×768 для 4:3), чтобы не искажать перспективу.

  3. Emulate Win9X heap (вкладка Libs → Kernel32 (heap)).
    Одна из самых «тихих», но важных опций. Старые движки (особенно 1998–2003 годов) рассчитывали на специфическое поведение менеджера памяти Windows 98. В современных ОС логика выделения памяти другая, и это часто приводит к вылетам при загрузке текстур или переходе на новый уровень. Включение эмуляции убирает эти случайные краши, почти не влияя на производительность.

  4. Limit FPS (вкладка Timing).
    Не воспринимайте это как искусственное ограничение ради «старой картинки». В старых 3D‑играх физика, скрипты и даже скорость движения персонажа часто привязаны к частоте кадров. Если современный GPU выдаст 300 FPS, игра «сломается»: герой провалится сквозь пол, камера улетит в небо, а двери перестанут открываться. Оптимально ставить 60 или 120 FPS — этого достаточно для плавности и достаточно мало, чтобы движок не «сошёл с ума».

  5. Auto-Correct Mouse Position (вкладка Mouse).
    Когда DxWnd масштабирует окно, координаты мыши перестают совпадать с тем, что «видит» игра. Без этой опции вы будете целиться в противника, а выстрел уйдёт в стену. Опция пересчитывает положение курсора, чтобы клик точно попадал в нужный пиксель на экране.

  6. Capture Mouse Pointer (вкладка Mouse).
    Эта настройка удерживает курсор внутри игрового окна. В старых 3D‑играх выход курсора за границы окна может привести к потере фокуса, «зависанию» управления или сбросу состояния камеры. Это особенно неприятно в напряжённых сценах.

  7. Hook DirectDraw (вкладка DirectX).
    Даже для 3D‑игр этот хук часто необходим. Многие старые движки используют DirectDraw не для самой сцены, а для отрисовки интерфейса (меню, HUD, прицела) и курсора. Если отключить этот хук, вы можете получить красивую 3D‑картинку, но без меню и с пропавшим курсором.

  8. Set Affinity to One Core (вкладка Compat).
    Старые игры не умеют грамотно работать с многоядерными процессорами. Планировщик Windows может «перекидывать» поток игры с одного ядра на другое, вызывая микрофризы, рассинхрон звука и даже вылеты. Привязка к одному ядру стабилизирует работу, делая картинку более плавной и предсказуемой.


В чём разница между «минимальным» и этим «оптимальным» профилем

  • Проактивная защита от багов. Здесь мы не просто пытаемся запустить игру, а заранее блокируем типичные проблемы: высокий FPS ломает физику, а новый менеджер памяти — загрузку уровней.
  • Баланс между графикой и удобством. Мы не оставляем игру в родном разрешении (чтобы не было «мыла») и не отключаем DirectDraw (чтобы не потерять интерфейс).
  • Стабильность на уровне системы. Привязка к одному ядру и эмуляция памяти решают проблемы, которые не зависят от видеокарты или скорости диска — они кроются в самой архитектуре старых программ.

Как адаптировать этот профиль, если что-то пошло не так

  • Чёрный экран при старте. Скорее всего, конфликтует какой-то хук. Оставьте только Hook Direct3DWindowedEmulate Win9X heapLimit FPS и Set Affinity to One Core. Если игра запустится, добавляйте остальные опции по одной, чтобы найти виновника.
  • Курсор всё равно «не там». Проверьте настройки самой игры: если там включён «Raw Input» или «DirectInput» для мыши, то коррекция координат со стороны DxWnd может работать некорректно. Попробуйте отключить внутриигровую опцию.
  • Фризы и рассинхрон звука. Убедитесь, что Set Affinity to One Core активен. Если не помогает, попробуйте временно отключить Limit FPS и включить внутриигровую вертикальную синхронизацию (V‑Sync), если она есть.
  • Вылеты при загрузке уровня. Чаще всего это проблема с памятью — Emulate Win9X heap должен помочь. Если нет, попробуйте снизить Custom resolution до 1024×768: старые движки могут некорректно обрабатывать высокие разрешения.

Чего лучше избегать

  • Лишние хуки. Не включайте Hook OpenGLHook Glide и другие, если игра явно не использует эти API. Каждый лишний хук — это потенциальный конфликт с драйверами или защитой игры.
  • Ручная настройка Surfaces Location. По умолчанию DxWnd сам выбирает оптимальное расположение поверхностей для отрисовки. Вмешательство в эти настройки без чёткого понимания проблемы часто приводит к артефактам или падению производительности.
  • Множественные изменения сразу. Если вы меняете сразу несколько параметров и игра перестаёт запускаться, сложно понять, какая именно настройка вызвала сбой. Меняйте по одной опции и тестируйте.

Комбинации твиков под разные типы игр (RTS, шутеры, квесты)

Готовые комбинации твиков в DxWnd под три типа игр: RTS, шутеры и квесты. Это не «универсальный набор на все случаи», а профили, где настройки заточены под специфику жанра: где важна точность прицела, где — скорость реакции интерфейса, а где — стабильность долгих сессий без вылетов.


RTS (стратегии в реальном времени)

В RTS критичны: стабильная частота кадров (чтобы не «плыли» тайминги юнитов), корректный ввод (быстрые клики по разным частям экрана) и работа мини-карты/интерфейса.

Оптимальные параметры:

  • Main: Windowed + Custom resolution (1280×720 или 1024×768). Keep aspect ratio — обязательно, чтобы не искажать сетку и пропорции карты.
  • Direct3D: Hook Direct3D.
  • DirectX: Hook DirectDraw — интерфейс и мини-карта в старых RTS почти всегда на DirectDraw. Без этого HUD может пропасть.
  • Mouse: Auto-Correct Mouse Position + Capture Mouse Pointer. В RTS вы постоянно кликаете по разным зонам; смещение координат ломает точность, а выход курсора за окно может «подвесить» управление.
  • Timing: Limit FPS = 60. В RTS физика и логика часто привязаны к FPS; 300+ кадров ломают тайминги производства и движения юнитов.
  • Libs → Kernel32 (heap): Emulate Win9X heap — старые RTS (особенно 1998–2003) часто вылетают при сохранении/загрузке карты из‑за проблем с памятью.
  • Compat: Set Affinity to One Core. RTS любят долгие сессии и много объектов; планировщик ОС может «дёргать» поток между ядрами и вызывать микрофризы.

Специфичные твики (по ситуации):

  • Если мини-карта или интерфейс мерцают: попробуйте включить Use GDI (вкладка DirectX) — это стабилизирует отрисовку 2D‑слоёв.
  • Если игра падает при быстрой прокрутке карты (hotkey-scroll): проверьте, не конфликтует ли Capture Mouse Pointer с внутриигровыми настройками мыши; при необходимости временно отключите Capture и тестируйте.

Шутеры (FPS)

Для шутеров важнее всего: точный прицел, отсутствие смещения хитбоксов, стабильная камера и работа мыши без задержек.

Оптимальные параметры:

  • Main: Windowed + Custom resolution (1280×720 или 1920×1080). Keep aspect ratio — чтобы не искажать поле зрения и пропорции моделей.
  • Direct3D: Hook Direct3D — база для 3D‑рендера.
  • DirectX: Hook DirectDraw — меню, прицел и HUD почти всегда используют DirectDraw.
  • Mouse: Auto-Correct Mouse Position (обязательно) + Capture Mouse Pointer (желательно). В шутерах даже небольшое смещение координат даёт «мимо» цели.
  • Timing: Limit FPS = 60 или 120. Высокий FPS ломает физику и скрипты; в некоторых движках камера «улетает» при 300+ FPS.
  • Libs → Kernel32 (heap): Emulate Win9X heap — частая причина вылетов при загрузке уровней и текстур.
  • Compat: Set Affinity to One Core — стабилизирует поток, убирает микрофризы и рассинхрон звука.

Специфичные твики (по ситуации):

  • Если прицел «дрожит» или ввод кажется «вязким»: проверьте, не включён ли в игре Raw Input / DirectInput. Если да — попробуйте отключить внутриигровую опцию; Auto-Correct Mouse Position в DxWnd может конфликтовать с Raw Input.
  • Если камера дёргается при резких поворотах: попробуйте временно отключить Limit FPS и включить внутриигровую V‑Sync — иногда это даёт более плавную картинку без поломки логики.

Квесты (point‑and‑click, классические адвенчуры)

Квесты — это про интерфейс, курсор, клики и ролики. Здесь не нужна высокая частота кадров, но важна стабильная отрисовка меню, корректная работа курсора и проигрывание видео.

Оптимальные параметры:

  • Main: Windowed + Custom resolution (1024×768 или 1280×720). Keep aspect ratio — квесты часто имеют фиксированную компоновку UI; искажение пропорций ломает расположение кнопок и активных зон.
  • DirectDraw: Hook DirectDraw — почти все классические квесты используют DirectDraw для сцены, курсора и интерфейса.
  • Mouse: Auto-Correct Mouse Position — критично, потому что активные зоны в квестах маленькие; без коррекции вы будете кликать «рядом». Capture Mouse Pointer — желательно, чтобы курсор не улетал за окно при быстрых движениях.
  • MM (мультимедиа): Remap MCI coordinates + Stretch ActiveMovie window. Многие квесты используют старые API для роликов; эти опции исправляют «улетающие» окна видео и растягивают их под размер окна игры.
  • DirectShow: Hook DirectShow + Scale DirectShow — для корректного масштабирования видео в современных ОС.
  • Libs → Kernel32 (heap): Emulate Win9X heap — помогает избежать вылетов при переходах между локациями и воспроизведении роликов.
  • Timing: Limit FPS = 30–60. Квестам не нужны высокие кадры; ограничение стабилизирует работу скриптов и анимаций.

Специфичные твики (по ситуации):

  • Если ролики не запускаются или чёрный экран: проверьте MM (Remap MCI, Stretch ActiveMovie) и DirectShow (Hook, Scale). Иногда помогает отключить дополнительные фильтры: Ignore add. filter и Suppress LAV filters.
  • Если курсор «проваливается» сквозь активные зоны: убедитесь, что Auto-Correct Mouse Position включён, и проверьте, нет ли в игре внутриигровых настроек мыши, которые конфликтуют с коррекцией DxWnd.

Как быстро адаптировать профиль под конкретную игру

  1. Возьмите базовый профиль под жанр. Это уже закрывает 80–90% проблем.
  2. Меняйте по одному параметру и тестируйте. Если после включения опции игра перестала запускаться — вернитесь к предыдущей версии.
  3. Используйте логи (вкладка Logs), если непонятно, где именно происходит сбой. Для быстрой диагностики: Log mode = Separated, Log severity = Essential, Logged info = DxWnd hacks + Direct3D trace + GDI/user32 libs.
  4. Сохраняйте рабочие версии. DxWnd хранит профили в dxwnd.ini; для важных игр полезно делать резервные копии этого файла или создавать отдельные профили с понятными именами (например, StarCraft (RTS Optimal)).

Пошаговый алгоритм создания профиля (сквозной пример).

Пошаговый сквозной алгоритм создания оптимального профиля для 3D‑игры в DxWnd. В качестве примера возьмём типичную старую 3D‑игру (например, шутер конца 90‑х или RPG начала 2000‑х), где главная проблема — чёрный экран, «улетающая» физика и неточный прицел.


Шаг 1. Подготовка и запуск DxWnd

  1. Скачайте и распакуйте DxWnd (версия OG build подойдёт лучше всего для старых игр).
  2. Запустите dxwnd.exe от имени администратора — иначе инъекции DLL и хуки могут не сработать.
  3. Убедитесь, что папка с игрой и её .exe доступны, а антивирус не блокирует DxWnd или не удаляет созданные им временные файлы.

Почему это важно: инъекции кода требуют повышенных прав, а антивирусы часто реагируют на «подозрительное» внедрение DLL в чужой процесс.


Шаг 2. Добавление игры в список профилей

  1. В главном окне DxWnd щёлкните правой кнопкой мыши и выберите Add (или нажмите клавишу A).
  2. В открывшемся окне нажмите кнопку с троеточием рядом с полем Executable и укажите путь к .exe вашей игры.
  3. Поле Name можно оставить как есть (DxWnd автоматически подставит имя файла) или задать понятное название, например: Half-Life (Optimal 3D).
  4. Нажмите OK. Теперь игра появилась в списке.

Совет: не создавайте сразу сложные профили «на все случаи жизни». Делайте один профиль на одну игру (или на одну версию игры), чтобы легче было диагностировать проблемы.


Шаг 3. Настройка базовых параметров окна (Main)

  1. Щёлкните правой кнопкой по строке с игрой → Properties.
  2. На вкладке Main:
    • Включите Windowed (запуск в окне).
    • Задайте Custom resolution, например 1280×720 или 1024×768.
    • Если пропорции игры 4:3, лучше выбрать разрешение с теми же пропорциями, чтобы не искажать перспективу.
    • При желании включите Keep aspect ratio, чтобы DxWnd не растягивал картинку «нечестно».

Зачем: старые 3D‑движки плохо работают в нативном 640×480 на современных экранах, а принудительное масштабирование силами DxWnd даёт более стабильную картинку.


Шаг 4. Настройка графики и рендера (Direct3D / DirectX)

  1. Перейдите на вкладку Direct3D:
    • Включите Hook Direct3D. Это обязательно для 3D‑игр.
  2. Перейдите на вкладку DirectX:
    • Включите Hook DirectDraw. Многие старые движки используют его для меню/HUD/курсора.
    • (Опционально) Не трогайте Surfaces Location — оставьте по умолчанию. Ручная настройка здесь чаще вредит.

Логика: Direct3D отвечает за 3D‑сцену, DirectDraw — за 2D‑интерфейс. Если отключить DirectDraw, вы рискуете получить «прозрачное» меню и пропавший курсор.


Шаг 5. Настройка мыши и ввода (Mouse)

  1. На вкладке Mouse:
    • Включите Auto-Correct Mouse Position.
    • Включите Capture Mouse Pointer.

Почему: при масштабировании окна координаты мыши перестают совпадать с тем, что «видит» игра. Без коррекции прицел и клики будут мимо цели. Capture Mouse Pointer предотвращает потерю фокуса, когда курсор случайно выходит за границы окна.


Шаг 6. Настройка FPS и таймингов (Timing)

  1. На вкладке Timing:
    • Включите Limit FPS.
    • Установите значение 60 или 120.

Важное пояснение: в старых 3D‑играх физика и скрипты часто привязаны к частоте кадров. При 300+ FPS персонаж проваливается сквозь пол, камера улетает, а двери не открываются. Ограничение FPS — это не «старение картинки», а исправление логики игры.


Шаг 7. Настройка совместимости и памяти (Compat / Libs)

  1. На вкладке Compat:
    • Включите Set Affinity to One Core. Старые игры не умеют грамотно работать с многоядерностью, и планировщик Windows может «перекидывать» поток между ядрами, вызывая микрофризы и рассинхрон.
  2. На вкладке Libs → раздел Kernel32 (heap):
    • Включите Emulate Win9X heap. Это эмулирует поведение менеджера памяти Windows 98, которое ожидают многие старые движки. Без этой опции часты вылеты при загрузке уровней или текстур.

Нюанс: эти две опции решают проблемы, которые не зависят от видеокарты или скорости диска — они кроются в самой архитектуре старых программ.


Шаг 8. Первый пробный запуск и проверка

  1. Закройте окно настроек кнопкой OK.
  2. Дважды щёлкните по строке с игрой в главном окне DxWnd, чтобы запустить её.
  3. Проверьте:
    • Появилось ли окно с игрой (нет ли чёрного экрана).
    • Корректно ли отображается меню и HUD.
    • Точно ли работает прицел и клики мышью.
    • Нет ли «проваливания» сквозь текстуры или аномально быстрого движения.

Если игра не запускается или чёрный экран: вернитесь в настройки и временно отключите Hook DirectDraw и Limit FPS, чтобы понять, какая именно опция вызывает конфликт.


Шаг 9. Диагностика и докрутка (если что-то пошло не так)

Ниже — типичные проблемы и точечные действия (меняйте только одну опцию за раз):

  • Чёрный экран. Оставьте только: Hook Direct3D, Windowed, Emulate Win9X heap, Limit FPS, Set Affinity to One Core. Если запустится — добавляйте остальные опции по одной.
  • Курсор «не там». Проверьте, не включён ли в самой игре «Raw Input» или «DirectInput» для мыши. Если да — отключите внутриигровую опцию.
  • Фризы и рассинхрон звука. Убедитесь, что Set Affinity to One Core включён. Если не помогает — попробуйте временно отключить Limit FPS и включить внутриигровую V‑Sync.
  • Вылеты при загрузке уровня. Чаще всего это проблема с памятью — Emulate Win9X heap должен помочь. Если нет — попробуйте снизить Custom resolution до 1024×768: старые движки могут некорректно обрабатывать высокие разрешения.

Шаг 10. Сохранение и резервное копирование

  1. DxWnd автоматически сохраняет профили в файле конфигурации (обычно dxwnd.ini в папке с программой).
  2. Для надёжности скопируйте этот файл в безопасное место — так вы сможете быстро восстановить рабочий профиль.

Полезный совет: если вы планируете запускать несколько старых игр, создавайте для каждой отдельный профиль и давайте им понятные имена. Это сильно упростит диагностику, если одна из игр начнёт вести себя странно.


Сквозной пример: как это выглядит на практике

Допустим, мы настраиваем профиль для старого 3D‑шутера:

  1. Добавляем shooter.exe в DxWnd → получаем профиль Shooter (Optimal 3D).
  2. Main: Windowed + 1280×720 + Keep aspect ratio.
  3. Direct3D: Hook Direct3D.
  4. DirectX: Hook DirectDraw.
  5. Mouse: Auto-Correct Mouse Position + Capture Mouse Pointer.
  6. Timing: Limit FPS = 60.
  7. Compat: Set Affinity to One Core.
  8. Libs → Kernel32 (heap): Emulate Win9X heap.
  9. Пробный запуск: игра стартует, меню и прицел работают, физика не ломается.
  10. Если всё хорошо — профиль готов.

Стратегия бэкапов и клонирования профилей: как не потерять настройки.

Тут подход должен быть такой же: не «на всякий случай скопировал папку», а чётко понимать, где лежат профили, как их безопасно клонировать и что именно нужно резервировать, чтобы после переустановки или обновления всё вернулось в один клик.


Что именно хранит настройки DxWnd

В DxWnd есть два типа настроек, и они живут в разных местах:

  1. Глобальные настройки программы — в файле dxwnd.ini (в корне папки с DxWnd). Там хранятся общие параметры, список профилей, настройки интерфейса, пути и т. п.
  2. Профили (настройки под игры) — могут быть:
    • либо внутри dxwnd.ini как отдельные секции;
    • либо в отдельных .ini файлах в папке profiles.

Важный нюанс: в разных версиях DxWnd профили могут храниться по‑разному. Проверь свою папку: если есть папка profiles и в ней много .ini файлов — значит, у тебя «профили отдельно». Если папки profiles нет — все профили в одном dxwnd.ini.


Базовый бэкап: самый надёжный способ

Этот метод работает всегда и покрывает 100% твоих настроек.

Что копировать:

  • dxwnd.exe (если хочешь сохранить именно эту сборку);
  • dxwnd.ini;
  • папку profiles (если есть).

Куда копировать: любое надёжное место (облако, внешний диск, другая папка на том же диске, но с пометкой «BACKUP»).

Как назвать бэкап: используй схему DxWnd_Backup_YYYY-MM-DD_vX.X.X, например: DxWnd_Backup_2024-10-25_v3.1.0. Так ты сразу поймёшь, какая версия и когда была сохранена.

Когда делать:

  • после того, как настроил профиль и он стабильно работает;
  • перед обновлением DxWnd;
  • перед переустановкой Windows.

Клонирование профиля под другую игру (быстрый шаблон)

Если у тебя уже есть хороший рабочий профиль (например, для RTS или квеста) и ты хочешь быстро сделать похожий профиль для новой игры — не настраивай с нуля, а клонируй.

Вариант 1: через интерфейс DxWnd (если есть кнопка Clone/Copy)

  1. Открой DxWnd.
  2. В списке профилей выбери рабочий профиль.
  3. Нажми кнопку Clone (или Copy) — появится копия с именем вроде AoE_Clone.
  4. Переименуй профиль в редакторе (поле Name) под новую игру.
  5. Исправь путь к .exe игры.
  6. При необходимости подкорректируй разрешение, FPS и другие параметры.

Это самый чистый способ: DxWnd сам создаст корректный профиль без риска сломать структуру.

Вариант 2: ручное клонирование через файлы (гарантированно работает везде)

Подходит, если кнопки Clone нет или ты предпочитаешь работать с файлами.

Если профили в папке profiles:

  1. Зайди в папку profiles.
  2. Найди файл профиля, который хочешь клонировать (например, StarCraft_Fix.ini).
  3. Скопируй его и переименуй (например, в Warcraft2_Fix.ini).
  4. Открой новый файл в Блокноте.
  5. Найди строку Path= и замени путь на путь к новой игре.
  6. Если есть Name= — поменяй имя, чтобы не путаться.
  7. Сохрани.

Если все профили в dxwnd.ini:

  1. Открой dxwnd.ini в Блокноте.
  2. Найди секцию профиля (обычно это [Profile:StarCraft_Fix] и всё до следующего [Profile:...]).
  3. Скопируй весь блок.
  4. Вставь его ниже и измени:
    • Name= на новое имя;
    • Path= на путь к другой игре.
  5. Сохрани.

Совет: не меняй внутренние идентификаторы и служебные строки, если не понимаешь, за что они отвечают. Достаточно поменять Name и Path — остальное можно править уже в интерфейсе DxWnd.


Продвинутая стратегия: «эталонные» профили для жанров

Ты годами настраиваешь DxWnd, и логично держать «базовые» профили под жанры. Это экономит кучу времени.

Примеры:

  • Template_RTS.ini — для стратегий (Windowed, Limit FPS 60, Affinity 1 Core, GDI OFF).
  • Template_FPS.ini — для шутеров (Windowed, Limit FPS 60, Affinity 1 Core, Direct3D ON).
  • Template_Quest_FMV.ini — для квестов с видео (Windowed, Limit FPS 60, Affinity 1 Core).

Как использовать:

  1. Держи эти шаблоны в отдельной папке (например, DxWnd_Templates).
  2. Когда нужна новая настройка — копируй шаблон, переименовывай, меняй Path, тестируешь, при необходимости докручиваешь.

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


Восстановление после сбоя или переустановки

Сценарий: ты переустановил Windows или обновил DxWnd, а старые настройки пропали.

Пошагово:

  1. Установи DxWnd в ту же папку, где он был раньше (чтобы не пришлось заново прописывать пути).
  2. Скопируй из бэкапа:
    • dxwnd.ini;
    • папку profiles;
    • (опционально) dxwnd.exe, если хочешь именно ту версию.
  3. Запусти DxWnd от администратора.
  4. Проверь список профилей: все твои настройки должны быть на месте.
  5. Если пути к играм изменились (диск/папка) — зайди в каждый профиль и поправь Path.

Частая ошибка: ставят DxWnd в новую папку и просто кидают туда старый dxwnd.ini, но не проверяют, что пути к играм теперь не совпадают. После восстановления обязательно пробегись по профилям и обнови пути.


Автоматизация и хранение (чтобы не потерять навсегда)

Для твоего уровня использования (много профилей, долгие годы) лучше добавить пару простых привычек:

  • Облако/синхронизация. Положи папку DxWnd или хотя бы папку profiles + dxwnd.ini в облако (OneDrive, Яндекс Диск, Google Drive) или синхронизируй через любой инструмент. Главное — не синхронизируй временные файлы и логи, только конфиги.
  • Версионность. Храни 2–3 последних бэкапа с разными датами. Если новый профиль «сломает» что-то глобальное, сможешь откатиться.
  • Текстовые заметки. В папке с бэкапом держи маленький файл README.txt, где кратко описано: «Template_RTS — для 2D‑стратегий, GDI выключен, Limit FPS 60», «Template_FPS — для DX7–8, Direct3D включён». Это спасает, когда через полгода сам не помнишь, зачем сделал именно так.

Частые ошибки, из‑за которых теряются настройки

  • Перезапись dxwnd.ini при установке новой версии. Некоторые сборки при установке могут перезаписать конфиг. Поэтому всегда делай бэкап перед обновлением.
  • Копирование только папки profiles, но без dxwnd.ini. В нём хранится список профилей и общие настройки. Без него DxWnd может не увидеть твои файлы.
  • Путаница между профилями и логами. Не храни бэкапы в папке с логами — там файлы постоянно обновляются и растут. Бэкапы — отдельно.
  • Изменение путей без проверки. После восстановления все старые пути остаются как были. Если игра переехала на другой диск — профиль не запустится.

Практический пример: полный цикл «бэкап → клонирование → восстановление»

Допустим, у тебя есть рабочий профиль AgeOfEmpires_Fix и ты хочешь сделать профиль для Warcraft II.

  1. Бэкап: скопировал dxwnd.ini и папку profiles в DxWnd_Backup_2024-10-25.
  2. Клонирование: скопировал файл AgeOfEmpires_Fix.iniWarcraft2_Fix.ini, открыл, поменял Path= и Name=.
  3. Тест: запустил, проверил, докрутил пару параметров.
  4. Сохранение: добавил новый профиль в общий бэкап.

Если потом система «упадёт» — ты просто вернёшь эти файлы, и у тебя сразу будут оба профиля.

Глава 5. Экспертные настройки и продвинутые приёмы

Быстрый запуск через импорт (Import)

Подходит, если вы нашли готовый профиль для вашей игры (на форумах Vogons, Old‑Games и т. п.).

Шаг 1. Импорт профиля

  1. В окне DxWnd нажмите File → Import.
  2. Выберите файл профиля (обычно .dxw или .ini).
  3. В появившемся окне проверьте поля:
    • Name — отображаемое имя игры в списке DxWnd.
    • Path — путь к папке с игрой (не к .exe, а к родительской папке).
    • Launch — команда запуска (чаще всего это имя .exe файла, например game.exe).
  4. Нажмите OK. Игра появится в списке.

Шаг 2. Проверка и корректировка путей

Если при запуске игра не стартует или выдаёт ошибку:

  • Откройте профиль: ПКМ по игре → Modify.
  • На вкладке Main проверьте:
    • Path — должен указывать на папку, где лежит .exe.
    • Launch — должен содержать только имя файла (например, starcraft.exe), без пути.
    • Working Directory — обычно совпадает с Path. Если игра требует другую рабочую папку — укажите её здесь.

Шаг 3. Запуск

Дважды кликните по строке с игрой в списке DxWnd или нажмите Enter.

Универсальная настройка вручную (Add)

Используйте этот метод, если готового профиля нет или он не работает.

Шаг 1. Добавление игры

  1. В окне DxWnd нажмите Edit → Add (или клавишу A).
  2. Заполните поля:
    • Name — любое удобное имя (например, «StarCraft BW»).
    • Path — путь к папке с игрой (например, C:\Games\StarCraft).
    • Launch — имя исполняемого файла (например, starcraft.exe).
  3. Нажмите OK.

Шаг 2. Настройка вкладки Main (базовые параметры)

Здесь задаются ключевые параметры запуска:

  • Hook DirectDraw / Hook Direct3D — включайте только то, что реально нужно. Для старых 2D‑игр (до ~2000 года) достаточно Hook DirectDraw. Для 3D‑игр — Hook Direct3D.
  • Fullscreen — если игра не поддерживает оконный режим, включите эту опцию. DxWnd будет эмулировать полноэкранный режим в окне.
  • Limit FPS — полезно для очень старых игр, которые «летят» на современных CPU. Начните с 60 FPS, при необходимости снижайте до 30.
  • Working Directory — если игра требует специфическую рабочую папку, укажите её здесь.
  • Arguments — дополнительные параметры запуска (например, -w для оконного режима, если игра его поддерживает).

Шаг 3. Настройка вкладки Video (разрешение и масштабирование)

  • Screen Resolution — выберите разрешение, подходящее под пропорции игры. Для старых игр 4:3 лучше использовать 800×600 или 1024×768.
  • Scaling Mode — режимы масштабирования:
    • Stretch — простое растягивание (может давать «мыло»).
    • Integer Scale — масштабирование целыми множителями (сохраняет чёткость пикселей).
    • Aspect Ratio — сохраняет пропорции, добавляет чёрные полосы при несоответствии.
  • Colour Convert — включите для игр с 256‑цветной палитрой (частая проблема в Windows 7/10/11).
  • Use GDI — помогает при проблемах с палитрой, но может ухудшить совместимость с некоторыми играми.

Шаг 4. Настройка вкладки Mouse (курсор и ввод)

  • Auto-Correct Mouse Position — корректирует положение курсора, если он «уезжает» относительно игрового мира.
  • Capture Mouse Pointer — фиксирует курсор в окне игры (полезно для шутеров и RTS).
  • Hide Mouse Pointer — скрывает системный курсор, если игра использует свой.

Шаг 5. Настройка вкладки DirectX (рендерер и совместимость)

  • Renderer — выберите версию DirectX, которую лучше эмулировать:
    • Automatic — DxWnd сам определит нужную версию.
    • D3D9 / D3D7 — принудительный выбор версии (помогает при вылетах).
  • Surfaces Location — для медленных игр или проблем с палитрой попробуйте System Memory.

Как правильно использовать твики (Tweaks)

Твики — это «тонкая настройка» под конкретные проблемы. Не включайте всё подряд: твики могут конфликтовать и ухудшить работу игры.

Шаг 1. Определите проблему

Примеры типовых проблем и подходящие твики:

  • Чёрный экран / игра не стартует:
    • shim:EmulateWin95shim:FixCreateFileMappingwin:MakeQueriedWindowVisible.
  • Мерцание, артефакты, «шлейфы»:
    • shim:EmulateDirectDrawSyncwin:FullPaintRectddraw:FastPrimaryUpdate.
  • Звук отсутствует или трещит:
    • sound:AsyncWaveOutOpensound:FixAILBugsound:WaveOutUsePreferredDevice.
  • Игра зависает «намертво»:
    • patch:KillDeadlocksshim:MutexForCriticalSection.
  • Курсор не двигается или «залипает»:
    • input:MouseMoveByEventinput:ForceAbsoluteAxis.
  • Диалоги не открываются или отображаются как чёрные квадраты:
    • win:ReplaceDialogswin:CenterDialogs.

Шаг 2. Добавляйте твики по одному

  1. Откройте профиль: ПКМ по игре → Modify.
  2. Перейдите на вкладку Tweaks.
  3. Включите один твик из списка, который соответствует вашей проблеме.
  4. Нажмите OK и запустите игру.
  5. Если проблема решена — оставьте твик. Если нет — отключите его и попробуйте другой.

Шаг 3. Используйте логи для диагностики

Если игра вылетает или ведёт себя странно:

  1. Найдите файл dxwnd.log в папке с DxWnd.
  2. Откройте его и поищите строки с ошибками (например, Hook failedDDraw init error).
  3. По ключевым словам ошибки можно подобрать нужный твик или исключить конфликтующие.

    Частые ошибки и как их избежать

    • Неверный путь в Path/Launch — DxWnd не запустит игру. Всегда проверяйте, что в Path указана папка, а в Launch — только имя .exe.
    • Включение всех хуков сразу — может вызвать конфликты. Включайте только то, что нужно (DirectDraw или Direct3D, но не оба одновременно, если нет явной необходимости).
    • Слишком высокое разрешение — старые игры могут некорректно работать в Full HD. Начните с родного разрешения игры (например, 640×480 или 800×600).
    • Игнорирование логов — dxwnd.log часто содержит ключ к решению проблемы.

Практический пример: запуск StarCraft: Brood War

  1. Добавление:
    • Name: StarCraft BW.
    • PathC:\Games\StarCraft.
    • Launchstarcraft.exe.
  2. Main:
    • Включите Hook DirectDraw.
    • Включите Fullscreen.
    • Поставьте Limit FPS на 60.
  3. Video:
    • Screen Resolution: 800×600.
    • Scaling Mode: Integer Scale.
    • Включите Colour Convert.
  4. Mouse:
    • Включите Auto-Correct Mouse Position и Capture Mouse Pointer.
  5. DirectX:
    • Renderer: Automatic.
  6. Tweaks (если есть проблемы):
    • При мерцании: shim:EmulateDirectDrawSync.
    • При вылетах: patch:KillDeadlocks.

Профессиональный уровень настройки профиля.

Теперь — углублённая настройка: вкладки HookAdvancedWindow, а также приёмы для сложных случаев (Steam‑игры, несколько профилей, отладка). Это «профессиональный» уровень: после него вы сможете «чинить» даже самые упрямые старые игры.


Шаг 1. Вкладка Hook: что именно перехватывать

Здесь вы указываете, какие API‑вызовы DxWnd будет перехватывать. Не включайте всё подряд: лишние хуки могут ломать игру.

Основные опции

  • Hook DirectDraw — обязательно для старых 2D‑игр (до ~2000 года). Без него масштабирование и оконный режим не заработают.
  • Hook Direct3D — для 3D‑игр. Если игра использует D3D7/8/9, включите эту опцию.
  • Hook GDI — помогает при проблемах с палитрой и шрифтами в Windows 7/10/11. Включайте, если видите «цветные полосы» или искажённые шрифты.
  • Hook User32 — нужен для твиков, связанных с окнами (win:). Если вы планируете использовать твики из группы win:, эта опция обязательна.
  • Hook Kernel32 — для системных эмуляций (shim:). Включайте, если планируете использовать shim: твики.
  • Hook WinMM — для звуковых исправлений (sound:). Если есть проблемы со звуком, включите эту опцию.

Практическое правило

  • Для простой 2D‑игры: Hook DirectDraw + Hook GDI.
  • Для 3D‑игры: Hook Direct3D + Hook GDI.
  • Если используете твики: добавляйте хуки под префикс твика (win: → Hook User32shim: → Hook Kernel32sound: → Hook WinMM).

Шаг 2. Вкладка Window: точный контроль над окном

Эта вкладка нужна, чтобы задать размер, позицию и поведение окна.

Ключевые параметры

  • Window initial position & size — задайте точные координаты и размер окна (например, x=100, y=100, w=800, h=600). Это полезно, если игра «уезжает» за экран или появляется в неожиданном месте.
  • Force windowed mode — принудительно запускает игру в окне, даже если она пытается перейти в полноэкранный режим.
  • Disable window resizing — запрещает менять размер окна. Это стабилизирует рендеринг в старых играх.
  • Always on top — окно игры всегда поверх других окон. Удобно для стримов и тестов.
  • Hide title bar — убирает заголовок окна (кнопки «Свернуть», «Развернуть», крестик). Это предотвращает случайные нажатия, которые могут сломать игру.

Пример

Для игры, которая «теряется» на втором мониторе:

  • Window initial position & sizex=0, y=0, w=800, h=600.
  • Disable window resizing: включено.
  • Hide title bar: включено.

Шаг 3. Вкладка Advanced: тонкая настройка и совместимость

Здесь находятся параметры, которые решают редкие, но критичные проблемы.

Основные опции

  • Set affinity to one core — привязывает игру к одному ядру процессора. Это спасает от вылетов в старых играх, которые не умеют работать с многоядерными CPU.
  • Limit FPS — ограничивает частоту кадров. Для очень старых игр ставьте 60 FPS, при необходимости снижайте до 30.
  • Disable high‑DPI scaling — отключает системное масштабирование Windows. Обязательно для игр, которые «размываются» на 4K‑мониторах.
  • Use custom DLLs — позволяет подгрузить свои DLL‑файлы (например, dgVoodoo или DXWrapper). Укажите путь к DLL в этом поле.
  • Working directory override — переопределяет рабочую папку. Полезно, если игра требует специфическую папку для сохранений или конфигов.

Практический пример

Для игры, которая вылетает на современном CPU:

  • Set affinity to one core: включено.
  • Limit FPS: 60.
  • Disable high‑DPI scaling: включено.

Шаг 4. Работа со Steam‑играми

Steam‑игры часто используют лаунчеры, а не прямой .exe файл. Это ломает DxWnd, если не знать нюансов.

Как правильно добавить Steam‑игру

  1. Узнайте путь к .exe файлу игры:
    • В Steam: ПКМ по игре → «Управление» → «Просмотреть локальные файлы».
    • Найдите основной .exe файл (не лаунчер, а именно игру).
  2. В DxWnd:
    • Path: папка, где лежит .exe.
    • Launch: имя .exe файла (без пути).
  3. Если игра всё равно не запускается:
    • Попробуйте отключить Steam Overlay (в свойствах игры в Steam).
    • Проверьте, не использует ли игра античит: DxWnd может конфликтовать с античитами.

Частая ошибка

Не указывайте в Launch путь к лаунчеру Steam. DxWnd должен запускать именно игровой .exe, а не лаунчер.


Шаг 5. Несколько профилей для одной игры

Иногда одной игре нужно несколько профилей: например, один для запуска, другой — для стрима с другим разрешением.

Как это сделать

  1. Добавьте игру через Edit → Add и настройте базовый профиль.
  2. Для второго профиля:
    • Снова Edit → Add.
    • Укажите те же Path и Launch, но другое Name (например, «StarCraft BW — Stream»).
    • Настройте параметры под задачу (другое разрешение, FPS, твики).
  3. Сохраните оба профиля. Теперь у вас два независимых способа запуска одной игры.

Шаг 6. Отладка и логи: как понять, что пошло не так

Если игра не запускается или ведёт себя странно, смотрите логи.

Где искать логи

  • Файл dxwnd.log в папке с DxWnd.
  • В нём записываются все хуки, ошибки инициализации и твики, которые были применены.

На что смотреть

  • Hook failed — хук не смог перехватить вызов. Проверьте, включён ли нужный хук на вкладке Hook.
  • DDraw init error — ошибка инициализации DirectDraw. Попробуйте включить Hook GDI или сменить Renderer.
  • Tweak applied — список применённых твиков. Если твик не сработал, проверьте, включён ли нужный хук.

Практический совет

Если игра вылетает сразу после старта:

  1. Отключите все твики.
  2. Оставьте только базовые хуки (DirectDraw/Direct3D + GDI).
  3. Запустите игру.
  4. Если работает — добавляйте твики по одному, проверяя игру после каждого.

Шаг 7. Готовые шаблоны для частых сценариев

Сценарий 1. Игра не запускается (чёрный экран)

  • Hook: DirectDraw + GDI.
  • Video: разрешение 800×600, Integer ScaleColour Convert.
  • Tweaksshim:EmulateWin95win:MakeQueriedWindowVisible.
  • AdvancedDisable high‑DPI scalingSet affinity to one core.

Сценарий 2. Игра «дёргается» или слишком быстрая

  • Hook: DirectDraw + GDI.
  • AdvancedLimit FPS (60 или 30).
  • Tweakstweak:SlowDownExceptions.

Сценарий 3. Нет звука или треск

  • Hook: DirectDraw + GDI + WinMM.
  • Tweakssound:AsyncWaveOutOpensound:FixAILBug.

Сценарий 4. Курсор не двигается или «залипает»

  • MouseAuto‑Correct Mouse PositionCapture Mouse Pointer.
  • Tweaksinput:MouseMoveByEvent.

Шаг 8. Сохранение и перенос настроек

Как сохранить профиль

  • File → Save — сохраняет все профили в dxwnd.ini.
  • File → Export — экспортирует отдельный профиль в файл .dxw. Это удобно для обмена профилями с друзьями.

Как перенести настройки на другой ПК

  1. Скопируйте папку DxWnd целиком.
  2. На новом ПК распакуйте её и запустите dxwnd.exe.
  3. Проверьте пути к играм: если они отличаются, отредактируйте профили (Modify).

Частые ошибки и как их избежать

  • Включены все хуки сразу — это ломает совместимость. Включайте только нужные.
  • Неверный путь в Path/Launch — DxWnd не найдёт игру. Всегда проверяйте, что Path — это папка, а Launch — имя .exe.
  • Игнорирование логов — dxwnd.log часто содержит ключ к решению.
  • Попытка запустить игру с античитом через DxWnd — это может не сработать. Проверьте, поддерживает ли игра запуск через обёртки.

Практический пример: запуск Warcraft II на Windows 11

  1. Добавление:
    • Name: Warcraft II — BNE.
    • PathC:\Games\Warcraft II.
    • Launchwar2.exe.
  2. Hook: DirectDraw + GDI + User32.
  3. Main:
    • Fullscreen: включено.
    • Limit FPS: 60.
  4. Video:
    • Screen Resolution: 800×600.
    • Scaling Mode: Integer Scale.
    • Colour Convert: включено.
  5. Window:
    • Window initial position & sizex=0, y=0, w=800, h=600.
    • Disable window resizing: включено.
    • Hide title bar: включено.
  6. Advanced:
    • Set affinity to one core: включено.
    • Disable high‑DPI scaling: включено.
  7. Tweaks:
    • shim:EmulateWin95.
    • win:MakeQueriedWindowVisible.
    • win:FullPaintRect.

Экспертный уровень настройки профиля.

Экспертный универсальный профиль DxWnd, который с высокой вероятностью запустит практически любую старую Windows‑игру (Win9x/XP эпохи) на современных ОС (Windows 10/11). Это не «волшебная кнопка», а максимально сбалансированный набор настроек, который закрывает 95% типовых проблем (палитра, масштабирование, курсор, скорость, чёрный экран). Дальше — точечные правки под конкретную игру.


Шаг 1. Подготовка и безопасность

  1. Распакуйте DxWnd в постоянную папку (не в Program Files и не в архив). Пример: C:\Tools\DxWnd.
  2. Запускайте dxwnd.exe от имени администратора — хуки требуют повышенных прав.
  3. Сделайте бэкап dxwnd.ini перед любыми массовыми изменениями.
  4. Для Steam‑игр: путь к .exe берите через «Просмотреть локальные файлы» в Steam. Не используйте лаунчеры и античиты в связке с DxWnd.
  5. Отключите оверлей Steam для тестируемой игры — он часто конфликтует с хуками.

Шаг 2. Создание универсального профиля (Add)

  1. Edit → Add (или A).
  2. Заполните:
    • Name: «Universal Base» (или имя игры).
    • Path: путь к папке с .exe (например, C:\Games\MyOldGame).
    • Launch: только имя .exe (например, game.exe).
    • Working Directory: оставьте пустым (совпадает с Path) или укажите отдельную папку для сохранений, если игра этого требует.
    • Arguments: оставьте пустым. Если игра поддерживает -w (windowed), можно добавить позже.

Шаг 3. Вкладка Main — базовые хуки и режим запуска

  • Hook DirectDraw: ВКЛ — обязательно для 2D‑игр и большинства старых проектов.
  • Hook Direct3D: ВКЛ — для 3D‑игр. Если игра падает — попробуйте отключить один из хуков (DDraw или D3D) и протестировать.
  • Fullscreen: ВКЛ — DxWnd эмулирует полноэкранный режим в окне. Это решает проблемы с переключением Alt+Tab и «уезжанием» окна на второй монитор.
  • Limit FPS: 60 — предотвращает «слишком быструю» игру на современных CPU. Если игра всё равно «летит», снизьте до 30.
  • Disable high‑DPI scaling: ВКЛ — отключает системное масштабирование Windows, которое размывает старые игры на 4K‑экранах.
  • Set affinity to one core: ВКЛ — привязывает игру к одному ядру CPU. Критично для игр, которые не умеют работать с многоядерностью и вылетают.

Важно: не включайте одновременно все хуки без необходимости. Если игра не стартует — отключите один из хуков (DDraw или D3D) и протестируйте.


Шаг 4. Вкладка Video — разрешение, масштабирование и палитра

  • Screen Resolution: 800×600 или 1024×768 (4:3). Это «родные» пропорции большинства старых игр. Не ставьте Full HD сразу — игра может не отрисовать интерфейс.
  • Scaling ModeInteger Scale — сохраняет чёткость пикселей. Если игра выглядит «мелкой», попробуйте Aspect Ratio (чёрные полосы по бокам). Избегайте Stretch — даёт «мыло».
  • Colour Convert: ВКЛ — исправляет проблемы с 256‑цветной палитрой, которые проявляются как «цветные полосы» или «неправильные оттенки» в Windows 10/11.
  • Use GDI: ВКЛ — помогает при проблемах с палитрой и шрифтами. Может немного снизить совместимость — если игра не стартует, попробуйте отключить.
  • Surfaces LocationSystem Memory — помогает при мерцании и артефактах. Если игра тормозит — верните значение по умолчанию.
  • RendererAutomatic — DxWnd сам определит нужную версию DirectX. Если игра падает — попробуйте D3D9 или D3D7.

Шаг 5. Вкладка Mouse — курсор и ввод

  • Auto‑Correct Mouse Position: ВКЛ — исправляет «смещение» курсора относительно игрового мира.
  • Capture Mouse Pointer: ВКЛ — фиксирует курсор в окне игры. Обязательно для RTS и шутеров.
  • Hide Mouse Pointer: ВКЛ — скрывает системный курсор, если игра использует свой.
  • Input: MouseMoveByEvent: можно добавить в Tweaks, если курсор «залипает» или не двигается.

Шаг 6. Вкладка Hook — что именно перехватывать

  • Hook DirectDraw: ВКЛ (если включено на Main).
  • Hook Direct3D: ВКЛ (если включено на Main).
  • Hook GDI: ВКЛ — для палитры и шрифтов.
  • Hook User32: ВКЛ — обязательно, если планируете использовать твики с префиксом win:.
  • Hook Kernel32: ВКЛ — обязательно для твиков shim:.
  • Hook WinMM: ВКЛ — для звуковых твиков sound:.
  • Hook DirectInput: ВКЛ — только если есть проблемы с мышью/клавиатурой. В некоторых играх вызывает конфликты — отключайте при вылетах.

Шаг 7. Вкладка Window — контроль над окном

  • Window initial position & sizex=0, y=0, w=800, h=600 — фиксирует окно в левом верхнем углу с «родным» размером.
  • Force windowed mode: ВКЛ — принудительно запускает игру в окне.
  • Disable window resizing: ВКЛ — стабилизирует рендеринг.
  • Always on top: ВКЛ — удобно для тестов и стримов.
  • Hide title bar: ВКЛ — убирает кнопки «Свернуть/Развернуть», чтобы случайно не сломать игру.

Шаг 8. Вкладка Advanced — тонкая настройка и совместимость

  • Limit FPS: 60 (дублирует Main — можно оставить здесь для контроля).
  • Disable high‑DPI scaling: ВКЛ (дублирует Main).
  • Set affinity to one core: ВКЛ (дублирует Main).
  • Use custom DLLs: оставьте пустым. Если планируете использовать dgVoodoo или DXWrapper — укажите путь к DLL.
  • Working directory override: оставьте пустым (совпадает с Path).
  • Additional options: можно добавить параметры для отладки, но для универсального профиля не требуется.

Шаг 9. Вкладка Tweaks — универсальный набор твиков

Добавьте следующие твики по одному и тестируйте игру после каждого:

  1. shim:EmulateWin95 — эмулирует поведение Windows 95 для старых игр.
  2. win:MakeQueriedWindowVisible — помогает при «чёрном экране» и проблемах с созданием окна.
  3. win:FullPaintRect — исправляет мерцание и артефакты при перерисовке окна.
  4. ddraw:FastPrimaryUpdate — ускоряет обновление экрана в DirectDraw‑играх.
  5. input:MouseMoveByEvent — если курсор не двигается или «залипает».

Правило: не включайте все твики сразу. Добавляйте по одному и тестируйте. Твики могут конфликтовать и ухудшить работу игры.


Шаг 10. Вкладка Debug (если доступна) — отладка

  • Enable logging: ВКЛ — все действия и ошибки будут записаны в dxwnd.log.
  • Log levelVerbose — максимальная детализация.
  • Log filedxwnd.log в папке с DxWnd.
  • Debug output: можно включить для вывода отладочной информации в консоль (если есть).

Шаг 11. Тестирование и диагностика

  1. Запустите игру двойным кликом по профилю в DxWnd.
  2. Если игра не стартует:
    • Проверьте dxwnd.log на ошибки (Hook failedDDraw init error).
    • Отключите все твики и оставьте только базовые хуки (DDraw/D3D + GDI).
    • Попробуйте снизить разрешение до 640×480.
  3. Если игра «летит» или слишком быстрая:
    • Включите Limit FPS (60 или 30).
    • Добавьте твик tweak:SlowDownExceptions.
  4. Если нет звука или треск:
    • Включите Hook WinMM.
    • Добавьте твики sound:AsyncWaveOutOpensound:FixAILBug.
  5. Если курсор не двигается:
    • Проверьте Mouse настройки.
    • Добавьте твик input:MouseMoveByEvent.
  6. Если игра вылетает сразу после старта:
    • Отключите все твики.
    • Оставьте только Hook DirectDraw/D3D + GDI.
    • Включите Set affinity to one core.

Шаг 12. Сохранение и клонирование профиля

  1. File → Save — сохраняет все профили в dxwnd.ini.
  2. Клонирование профиля:
    • ПКМ по профилю → Clone.
    • Измените Name (например, «Universal Base — Sound Fix»).
    • Настройте только нужные параметры (например, твики для звука).
  3. Экспорт профиляFile → Export → выберите профиль → сохраните .dxw. Это удобно для обмена профилями.

Шаг 13. Частые проблемы и готовые решения

ПроблемаРешение
Чёрный экран / игра не стартуетshim:EmulateWin95win:MakeQueriedWindowVisiblewin:FullPaintRect
Мерцание, артефакты, «шлейфы»ddraw:FastPrimaryUpdatewin:FullPaintRectshim:EmulateDirectDrawSync
Звук отсутствует или трескВключите Hook WinMMsound:AsyncWaveOutOpensound:FixAILBug
Игра «летит» или слишком быстраяLimit FPS (60 или 30), tweak:SlowDownExceptions
Курсор не двигается или «залипает»Auto‑Correct Mouse PositionCapture Mouse Pointerinput:MouseMoveByEvent
Диалоги не открываются или чёрные квадратыwin:ReplaceDialogswin:CenterDialogs
Игра вылетает «намертво»patch:KillDeadlocksshim:MutexForCriticalSection

Шаг 14. Практический пример: универсальный профиль для любой игры

  1. Main:
    • Hook DirectDraw: ВКЛ.
    • Hook Direct3D: ВКЛ.
    • Fullscreen: ВКЛ.
    • Limit FPS: 60.
    • Disable high‑DPI scaling: ВКЛ.
    • Set affinity to one core: ВКЛ.
  2. Video:
    • Screen Resolution: 800×600.
    • Scaling Mode: Integer Scale.
    • Colour Convert: ВКЛ.
    • Use GDI: ВКЛ.
    • Surfaces Location: System Memory.
    • Renderer: Automatic.
  3. Mouse:
    • Auto‑Correct Mouse Position: ВКЛ.
    • Capture Mouse Pointer: ВКЛ.
    • Hide Mouse Pointer: ВКЛ.
  4. Hook:
    • Hook DirectDraw/D3D/GDI/User32/Kernel32/WinMM: ВКЛ.
  5. Window:
    • Window initial position & size: x=0, y=0, w=800, h=600.
    • Force windowed mode: ВКЛ.
    • Disable window resizing: ВКЛ.
    • Hide title bar: ВКЛ.
  6. Tweaks:
    • shim:EmulateWin95.
    • win:MakeQueriedWindowVisible.
    • win:FullPaintRect.
    • ddraw:FastPrimaryUpdate.

Важные нюансы и ограничения

  • Не существует 100% универсального профиля. Каждая игра имеет свои особенности, и иногда требуется точечная настройка.
  • Античиты и DRM могут блокировать работу DxWnd. Не используйте DxWnd для онлайн‑игр с античитами.
  • 64‑битные игры могут работать нестабильно. DxWnd лучше всего подходит для 32‑битных старых игр.
  • Steam‑лаунчеры не должны быть точкой входа. Используйте прямой путь к .exe игры.
  • Логи — ваш лучший друг. Всегда проверяйте dxwnd.log при проблемах.

Использование сторонних DLL (dgVoodoo, DXWrapper, IndirectSound).

Сторонние DLL вроде dgVoodoo, DXWrapper и IndirectSound — это не «альтернативы» DxWnd, а инструменты с другой специализацией. Их можно (и часто нужно) использовать вместе с DxWnd: DxWnd берёт на себя окно, мышь и совместимость процесса, а эти библиотеки решают узкие проблемы графики, звука и старых API.


dgVoodoo (Glide, старые Direct3D, масштабирование)

Что делает: эмулирует 3dfx Glide и старые версии Direct3D/DirectDraw, подменяет поведение видеокарты на уровне драйвера, умеет делать качественное масштабирование (фильтры, пост-обработка).

Какие проблемы решает:

  • Игры под 3dfx Voodoo (например, Unreal, Quake II) — dgVoodoo транслирует Glide в современный DirectX.
  • Старые D3D-игры с артефактами или чёрным экраном — перехват вызовов и «нормализация» параметров текстур/поверхностей.
  • «Мыльная» картинка при масштабировании — в dgVoodoo есть фильтры (bilinear, bicubic, xBRZ и т. п.), которые выглядят лучше, чем простое растяжение.

Как использовать с DxWnd:

  1. Распакуйте dgVoodoo в папку с игрой (рядом с .exe).
  2. В dgVoodoo.conf настройте разрешение, фильтр и целевую версию DirectX. Для большинства старых игр достаточно включить «Enable DirectX 9/11 wrapper» и задать нужное разрешение.
  3. Не включайте в DxWnd лишние хуки, если dgVoodoo уже перехватывает API. Например, если dgVoodoo берёт на себя DirectDraw, в DxWnd можно оставить только управление окном, мышью и памятью.
  4. В DxWnd профиль оставьте «лёгким»: Windowed, Custom resolution, Auto-Correct Mouse Position, Emulate Win9X heap. Остальное (Hook DirectDraw/Direct3D) можно отключить — пусть работает dgVoodoo.

Частые ошибки:

  • Ставят dgVoodoo не в папку игры, а в System32 — это ломает другие приложения. Всегда кладите рядом с .exe.
  • Пытаются одновременно сильно «хуковать» в DxWnd и в dgVoodoo одни и те же API — возникают двойные перехваты и вылеты.

DXWrapper (обёртка для старых .exe, манифесты, DPI)

Что делает: это не графический эмулятор, а «обёртка» для запуска старых .exe. Она подменяет манифест приложения, включает нужные DLL, управляет DPI и может принудительно запускать игру в режиме совместимости.

Какие проблемы решает:

  • Проблемы с DPI и размытым интерфейсом в Windows 10/11 (старые игры выглядят «мыльными» из‑за масштабирования Windows).
  • Ошибки «не найдена DLL» или «неверная версия DLL» — DXWrapper может подменить пути и версии библиотек.
  • Принудительный запуск в режиме совместимости (Windows 98/XP), если игра этого требует.

Как использовать с DxWnd:

  1. Положите DXWrapper.dll и конфиг в папку игры.
  2. Настройте DXWrapper.ini: включите DPI scaling, задайте режим совместимости, укажите, какие DLL подгружать.
  3. В DxWnd укажите путь не к оригинальному .exe, а к DXWrapper.exe (если используется отдельный лаунчер) либо оставьте оригинальный .exe, если DXWrapper работает как DLL‑подмена.
  4. DXWrapper и DxWnd хорошо сочетаются: DXWrapper решает проблемы на уровне запуска и DPI, DxWnd — окно, мышь, память и хуки.

Нюанс: DXWrapper не заменяет dgVoodoo и не делает графические фильтры. Это про совместимость запуска и системные настройки.


IndirectSound (эмуляция DirectSound, старые звуковые API)

Что делает: перехватывает вызовы DirectSound и перенаправляет их через современные аудио-интерфейсы. Помогает, когда игра падает при инициализации звука или звук не воспроизводится.

Какие проблемы решает:

  • Игра падает при старте из‑за ошибки инициализации DirectSound.
  • Нет звука или он «трещит» на современных звуковых картах/драйверах.
  • Конфликты с ASIO, USB‑звуком и т. д.

Как использовать с DxWnd:

  1. Положите файлы IndirectSound в папку игры (обычно IndirectSound.dll + конфиг).
  2. Убедитесь, что игра действительно использует DirectSound (старые игры 90‑х — почти все).
  3. В DxWnd ничего дополнительно включать не нужно. IndirectSound работает прозрачно для DxWnd.
  4. Если в DxWnd есть опции про звук (в Libs/MM), их можно отключить — IndirectSound берёт звук на себя.

Как правильно сочетать всё вместе

Вот рабочие схемы под разные типы проблем:

Сценарий 1. Старая 3D‑игра с артефактами и «мыльной» картинкой

  • DxWnd: окно, мышь, Emulate Win9X heap, Set Affinity to One Core, Limit FPS.
  • dgVoodoo: в папке игры, настроен на нужное разрешение и фильтр.
  • DXWrapper: включён для корректного DPI и совместимости.
  • IndirectSound: по необходимости, если есть проблемы со звуком.
  • Важно: в DxWnd отключите Hook DirectDraw/Direct3D, если dgVoodoo их уже перехватывает.

Сценарий 2. Игра под 3dfx (Glide)

  • DxWnd: только окно, мышь, память, Affinity, FPS.
  • dgVoodoo: обязательно, настроен на эмуляцию Glide.
  • DXWrapper: для DPI и совместимости.
  • IndirectSound: если звук не работает.
  • Важно: не пытайтесь «дублировать» перехват Glide другими средствами — dgVoodoo должен быть единственным.

Сценарий 3. Квест с роликами и плохим звуком

  • DxWnd: окно, мышь, Emulate Win9X heap, Limit FPS, MM‑настройки (MCI, ActiveMovie).
  • DXWrapper: DPI и совместимость.
  • IndirectSound: для стабильного звука.
  • dgVoodoo: обычно не нужен.

Чего избегать (частые конфликты)

  • Двойные хуки на один и тот же API. Например, одновременно Hook DirectDraw в DxWnd + dgVoodoo + ещё какой‑нибудь фикс. Это почти гарантированно даёт вылет.
  • Разные версии библиотек. Не смешивайте старые и новые сборки dgVoodoo/DXWrapper в одной папке — берите одну проверенную версию.
  • Антивирусы и защита. DxWnd, dgVoodoo и DXWrapper часто вызывают ложные срабатывания. Если игра перестала запускаться после добавления DLL — проверьте карантин антивируса.

Краткий порядок действий

  1. Определите проблему: чёрный экран/артефакты → dgVoodoo; звук не работает → IndirectSound; мыльный интерфейс/ошибки запуска → DXWrapper; окно/мышь/память → DxWnd.
  2. Ставьте DLL в папку игры, а не в System32.
  3. Настройте только то, что нужно, и тестируйте по одному изменению.
  4. Используйте логи DxWnd (вкладка Logs), чтобы понять, на каком этапе происходит сбой.
  5. Делайте резервные копии dxwnd.ini и папки с игрой перед экспериментами.

Работа с несколькими профилями для одной игры под разные задачи.

Работа с несколькими профилями для одной игры в DxWnd — это лучший способ не гадать «что там выключить», а иметь под рукой готовые конфигурации под разные задачи: «чтобы просто запустилось», «для стрима/скриншотов», «для тестов с логами», «под dgVoodoo» и т. п.


Зачем вообще несколько профилей на одну игру

  • Разные проблемы требуют разных хуков. Для чёрного экрана нужен один набор, для стабильного стрима — другой (где не надо лишнее логировать).
  • Конфликты хуков. Если одновременно включить всё подряд, игра может вообще не стартовать. Разделение по профилям решает это.
  • Разные цели. Для тестов нужны логи и максимум трассировки. Для обычной игры — минимум лишнего, чтобы не было оверхеда и странных багов.
  • Изоляция экспериментов. Меняете что-то в одном профиле — не ломаете другой.

Как правильно называть профили (чтобы не запутаться)

Придумайте понятную схему именования. Примеры:

  • StarCraft (RTS Optimal) — для обычной игры, стабильный профиль.
  • StarCraft (Debug Logs) — профиль только для диагностики, с включёнными логами и трассировкой.
  • StarCraft (dgVoodoo) — если пробуете dgVoodoo отдельно, чтобы не смешивать с базовым.
  • StarCraft (LowRes Test) — для тестов на низком разрешении, если подозреваете проблемы с памятью/текстурами.

Так вы сразу видите, что делает каждый профиль, и не путаетесь.


Пошаговый алгоритм создания нескольких профилей

  1. Откройте DxWnd от администратора.
  2. Добавьте игру первый раз (ПКМ → Add, укажите .exe).
  3. Настройте первый профиль под основную задачу (например, «обычная игра») и дайте ему понятное имя.
  4. Снова добавьте ту же игру (Add) — DxWnd позволяет иметь несколько профилей с одинаковым .exe.
  5. Настройте второй профиль под другую задачу (например, «логи и диагностика») и назовите его соответственно.
  6. Повторяйте для каждой отдельной задачи.
  7. Сделайте резервную копию dxwnd.ini после того, как профили заработали, — это ваш «сейв» всех настроек.

Важно: все профили используют один и тот же .exe игры, но имеют разные настройки. DxWnd хранит их в одном файле dxwnd.ini.


Примеры профилей под разные задачи (на примере типичной 3D‑игры)

Профиль 1: «Обычная игра» (оптимальный, стабильный)

Цель: чтобы игра стабильно запускалась и нормально игралась.

  • Main: Windowed + Custom resolution (1280×720), Keep aspect ratio.
  • Direct3D: Hook Direct3D.
  • DirectX: Hook DirectDraw.
  • Mouse: Auto-Correct Mouse Position + Capture Mouse Pointer.
  • Timing: Limit FPS = 60.
  • Compat: Set Affinity to One Core.
  • Libs → Kernel32 (heap): Emulate Win9X heap.
  • Logs: Log mode = None (лишние логи не нужны).

Это ваш «основной» профиль для повседневной игры.


Профиль 2: «Диагностика и логи»

Цель: понять, почему игра падает или показывает чёрный экран.

  • Те же базовые настройки, что и в «Обычной игре» (окно, мышь, FPS, Affinity, heap).
  • Logs:
    • Log mode = Separated (отдельный файл на каждый запуск).
    • Log severity = Essential (или Trace, если нужно очень подробно).
    • Logged info: DxWnd hacks + Direct3D trace + GDI/user32 libs.
  • Остальные хуки можно оставить как в основном профиле.

Как использовать: запускаете игру именно этим профилем, получаете лог-файл в папке DxWnd. Потом смотрите, на каком вызове API происходит сбой. После диагностики можно вернуться к «Обычной игре».


Профиль 3: «dgVoodoo / спецграфика»

Цель: игра с артефактами или под 3dfx, нужна эмуляция графики.

  • Main: Windowed + Custom resolution.
  • Mouse: Auto-Correct Mouse Position + Capture Mouse Pointer.
  • Timing: Limit FPS = 60.
  • Compat: Set Affinity to One Core.
  • Libs → Kernel32 (heap): Emulate Win9X heap.
  • Hook Direct3D и Hook DirectDraw в DxWnd — отключите. Пусть dgVoodoo перехватывает эти вызовы.
  • Logs: None (чтобы не мешали).

В папке игры должен лежать dgVoodoo с настроенным dgVoodoo.conf. Такой профиль изолирует конфликтные хуки.


Профиль 4: «Стрим / скриншоты» (качество картинки, без лишних ограничений)

Цель: получить максимально чистую картинку для стримов и скриншотов, при этом сохранить стабильность.

  • Main: Windowed + более высокое разрешение (например, 1920×1080).
  • Direct3D: Hook Direct3D.
  • DirectX: Hook DirectDraw.
  • Mouse: Auto-Correct Mouse Position (Capture Mouse Pointer можно отключить, если мешает быстро переключаться между окнами).
  • Timing: Limit FPS можно отключить, если в игре есть V‑Sync и вы уверены, что физика не ломается.
  • Compat: Set Affinity to One Core (лучше оставить для стабильности).
  • Libs → Kernel32 (heap): Emulate Win9X heap.
  • Logs: None.

Такой профиль даёт «чистый» результат без лишних ограничений, но сохраняет базовые исправления совместимости.


Частые ошибки при работе с несколькими профилями

  • Путаница в профилях. Если все профили называются одинаково или непонятно, легко запустить не тот и решить, что «ничего не работает». Всегда давайте осмысленные имена.
  • Дублирование конфликтующих хуков. Например, одновременно включён Hook DirectDraw в DxWnd и dgVoodoo, который тоже перехватывает DirectDraw. Лучше иметь отдельный профиль «dgVoodoo», где хуки DxWnd отключены.
  • Забывают про логи. Профиль для диагностики должен быть отдельным, иначе логи засоряют папку и мешают нормальной игре.

Практические советы по удобству

  • Держите 1–2 «основных» профиля и 1–2 «вспомогательных» (логи, dgVoodoo). Больше редко нужно.
  • Тестируйте по одному изменению. Если вы создали новый профиль и игра не запускается — вернитесь к рабочему и меняйте по одному параметру.
  • Резервная копия dxwnd.ini — ваша страховка. Перед крупными изменениями сохраните файл, чтобы быстро откатиться.
  • Используйте логи только в отдельном профиле. Так не будет путаницы между «игрой» и «диагностикой».

Пример сквозного сценария

Допустим, у вас игра shooter.exe, которая иногда падает при загрузке уровня.

  1. Создаёте профиль Shooter (Optimal) — обычная игра.
  2. Создаёте профиль Shooter (Debug Logs) с включёнными логами.
  3. Запускаете Shooter (Debug Logs), получаете лог, видите, что вылет происходит на вызове Direct3D при загрузке текстур.
  4. Создаёте профиль Shooter (dgVoodoo), отключаете в нём хуки Direct3D/DirectDraw в DxWnd, кладёте dgVoodoo в папку игры.
  5. Пробуете запустить Shooter (dgVoodoo): если помогло — оставляете этот профиль как основной, а старый «Optimal» оставляете как запасной.

Часто задаваемые вопросы

DxWnd (DirectX Windowed) — это утилита‑обёртка, которая позволяет запускать старые игры на базе DirectX (DirectDraw, Direct3D) на современных ОС. Она перехватывает системные вызовы (API hooking), эмулирует нужное окружение, даёт оконный режим, масштабирование, ограничение FPS и точечные исправления (твики) без изменения файлов игры.

Да, DxWnd рассчитан на работу в Windows 10/11. Однако из‑за изменений в графической подсистеме и защите ОС некоторые игры требуют тонкой настройки (хуки, твики, логирование).

DxWnd лучше всего работает с 32‑битными играми эпохи Windows 9x/XP. 64‑битные игры могут работать нестабильно или не запускаться вовсе — это ограничение архитектуры и механизма хуков.

Не рекомендуется. Античиты и DRM‑системы часто блокируют хуки DxWnd, что приводит к вылетам или банам. DxWnd предназначен для одиночных старых игр.

Распакуйте архив в постоянную папку (например, C:\Tools\DxWnd). Не устанавливайте в Program Files и не запускайте из архива. Запускайте dxwnd.exe от имени администратора.

В интерфейсе DxWnd нажмите Edit → Add (или клавиша A). Укажите имя, путь к папке с игрой, имя .exe файла (в поле Launch), при необходимости рабочую директорию и аргументы. Сохраните профиль.

Да. Механизм API‑hooking требует повышенных прав. Без этого хуки не применятся, и игра может запуститься без исправлений или вообще не запуститься.

Хуки — это перехват системных вызовов (DirectDraw, Direct3D, GDI, User32, Kernel32, WinMM и др.). Включайте только нужные: DirectDraw для 2D‑игр, Direct3D для 3D, GDI для палитры и шрифтов, User32/Kernel32/WinMM — под соответствующие твики.

Твики — это точечные исправления с префиксами (shim:, win:, sound:, ddraw:, input:, patch:, tweak:). Добавляйте их по одному, тестируйте игру и смотрите логи. Не включайте сразу все — твики могут конфликтовать.

Частые причины: неподходящее разрешение, отсутствие нужных хуков, конфликт твиков. Решения: снизьте разрешение до 640×480, включите Colour Convert и Use GDI, добавьте твики shim:EmulateWin95, win:MakeQueriedWindowVisible, win:FullPaintRect

Проверьте: включён ли Hook WinMM, добавлены ли твики sound:AsyncWaveOutOpen, sound:FixAILBug. Отключите оверлеи (Steam, Discord, GeForce Experience), проверьте формат аудио в Windows (16 бит, 44100 Гц) и отключите «улучшения звука».

Старые игры не рассчитаны на современные CPU. Включите Limit FPS (начните с 60, при необходимости снизьте до 30) и Set affinity to one core (привязка к одному ядру CPU).

На вкладке Mouse включите Auto‑Correct Mouse Position, Capture Mouse Pointer, Hide Mouse Pointer. Добавьте твик input:MouseMoveByEvent. Проверьте, не конфликтует ли игра с оверлеями.

Включите Colour Convert и Use GDI на вкладке Video. Попробуйте Surfaces Location = System Memory и твики ddraw:FastPrimaryUpdate, shim:EmulateDirectDrawSync.

Частые причины: многоядерность, конфликтующие твики, проблемы с инициализацией DirectX. Решения: включите Set affinity to one core, Limit FPS, отключите лишние твики. Добавьте patch:KillDeadlocks, shim:MutexForCriticalSection.

Включите логирование на вкладке Debug (Enable logging = ВКЛ, Log level = Verbose). Логи пишутся в файл dxwnd.log в папке с DxWnd. Анализируйте строки с ошибками (Hook failed, DDraw init error, Access violation и т. п.).

Файл конфигурации dxwnd.ini хранит все профили. Перед изменениями сделайте его копию. Также можно экспортировать отдельные профили через File → Export.

Используйте прямой путь к .exe игры (через «Просмотреть локальные файлы» в Steam). Не запускайте через лаунчеры и античиты. Отключите оверлей Steam для тестируемой игры.

На вкладке Video выберите Scaling Mode = Integer Scale — это сохраняет чёткость пиксель‑арта. Для сохранения пропорций используйте Aspect Ratio (чёрные полосы по бокам). Избегайте Stretch — он даёт «мыло».

Включите Hook GDI и Use GDI. Добавьте твики win:ReplaceDialogs, win:CenterDialogs. Это исправляет отрисовку окон и текста в старых играх.

Да. Вы можете клонировать профиль (ПКМ → Clone) и настраивать разные варианты (базовый, со звуком, с фиксацией курсора и т. д.) под разные задачи.

 Эта опция привязывает игру к одному ядру процессора. Многие старые игры не умеют работать с многоядерностью и вылетают из‑за гонок данных (race conditions). Включение этой опции стабилизирует работу.

Для старых игр используйте «родные» разрешения: 640×480, 800×600 или 1024×768 (формат 4:3). Слишком высокие разрешения могут привести к артефактам, чёрному экрану или некорректной отрисовке интерфейса.

Сообщество делится профилями на форумах Vogons и Old‑Games. Также полезно изучать логи и подбирать настройки под конкретную проблему. Не копируйте профили «вслепую» — всегда тестируйте и корректируйте под свою систему.

📌 Заключение

✅ Итоги и рекомендации

DxWnd — это специализированный инструмент низкоуровневой совместимости, реализующий механизм API‑hooking для корректной трансляции вызовов устаревших графических и системных подсистем (DirectDraw, Direct3D, GDI и др.) в среду современных операционных систем. Его задача — не маскировать несовместимость, а обеспечивать контролируемую эмуляцию требуемого окружения, сохраняя оригинальное поведение игры при адаптации к актуальным аппаратно‑программным условиям. Он не переписывает игры и не пытается их «улучшить», а решает проблемы совместимости на уровне системных вызовов, давая пользователю полный контроль над процессом запуска.

Отдельная благодарность разработчикам и огромному ретро‑сообществу, которые годами собирали знания, профили и решения, чтобы игровая история не исчезла. DxWnd — яркий пример того, как энтузиазм и техническая грамотность способны сохранять культурное наследие!

Мы прошли путь от базовых принципов работы DxWnd до экспертных настроек и справочника по частым проблемам. Теперь вы знаете:

  • как устроен механизм хуков и твиков;
  • чем отличаются универсальные и точечные профили;
  • как читать логи и диагностировать ошибки;
  • какие комбинации настроек помогают справиться с чёрным экраном, вылетами, артефактами, проблемами со звуком и курсором.

Важно помнить: не существует одного «идеального» профиля, который подойдёт всем играм. Старые проекты создавались под совершенно другие условия, и именно гибкость DxWnd позволяет подстроиться под каждую из них. Ключ к успеху — минимальные изменения, поэтапное тестирование и опора на логи.

Схема работы:

 
Старая игра

↓

DirectDraw / Direct3D

↓

DXWnd

↓

Оконный режим Windows

↓

Современный рабочий стол
 

🎯 Какие проблемы решает DXWnd

🖥 1. Старые игры не работают в полноэкранном режиме

Типичная проблема:

 
Запуск игры

↓

Чёрный экран

↓

Вылет
 

Причина:

игра ожидает:

  • старый видеорежим;
  • старый монитор;
  • старое разрешение.

DXWnd может:

  • создать окно;
  • перехватить переключение режима экрана;
  • оставить игру внутри рабочего стола.


🪟 2. Принудительный оконный режим

Многие старые игры имеют только:

 
Fullscreen
 

DXWnd добавляет:

 
Windowed Mode
 

Преимущества:

  • можно использовать Alt+Tab;
  • работает современный рабочий стол;
  • проще делать запись экрана;
  • меньше проблем с разрешением.

🔄 3. Исправление Alt+Tab

Старые игры часто:

  • зависают;
  • теряют изображение;
  • возвращаются с ошибкой.

Причина:

игра полностью контролирует видеорежим.


DXWnd:

  • удерживает окно;
  • виртуализирует полноэкранный режим.

🖥 4. Масштабирование изображения

Старые игры:

 
640x480
800x600
 

Современный экран:

 
1920x1080
2560x1440
 

DXWnd может:

  • растянуть окно;
  • сохранить пропорции;
  • изменить размер вывода.

🎮 Поддерживаемые технологии

DXWnd работает с:

  • DirectDraw;
  • Direct3D;
  • DirectX старых версий;
  • Glide через дополнительные настройки;
  • OpenGL в некоторых случаях.

Основные цели:

 
DirectDraw

↓

Direct3D 1-9

↓

Старые игры Windows
 

📁 Установка DXWnd

После распаковки:

 
DXWnd

├── dxwnd.exe
├── dxwnd.ini
├── export
└── modules
 

Главная программа:

 
dxwnd.exe
 

DXWnd обычно не требует установки.

Запускается:

 
dxwnd.exe
 

🎮 Создание профиля игры

DXWnd работает через профили.


Главное окно:

 
Edit

↓

Add
 

Создаётся профиль.


Основные параметры:


🟦 Path

Путь к игре.

Пример:

 
C:\Games\Game\game.exe
 


🟩 Name

Название профиля.

Пример:

 
Command & Conquer
 


🟨 Window position

Настройка окна:

  • положение;
  • размер;
  • центрирование.


🟥 Run mode

Главный параметр.

Варианты:

Windowed

Оконный режим.


Desktop

Игра запускается как часть рабочего стола.


Fullscreen

Обычный режим.



⚙ Основные настройки DXWnd

🖥 Video

Настройки:

  • разрешение;
  • масштабирование;
  • обработка окна.


🎮 DirectX

Можно включить:

  • DirectDraw Hook;
  • Direct3D Hook;
  • Surface management.


🪟 Window

Настройки:

  • убрать рамку;
  • изменить размер;
  • зафиксировать окно.


🧩 Input

Исправляет:

  • мышь;
  • клавиатуру;
  • захват курсора.

🔧 Важные параметры


Hook enabled

Включает перехват.

Без него:

DXWnd ничего не делает.


Hide desktop

Убирает лишние элементы рабочего стола.


Position

Фиксирует расположение окна.


Fullscreen only

Используется для игр, которые требуют полный экран.


🎮 DXWnd и DirectDraw

Очень частый сценарий.

Ошибка:

 
DirectDraw Error
 

Варианты:

 
Game.exe

↓

DXWnd

↓

ddraw
 

Можно использовать вместе с:

  • dgVoodoo2;
  • DDrawCompat;
  • cnc-ddraw.

⚔ DXWnd + dgVoodoo2

Иногда используют вместе.

Схема:

 
Игра

↓

DXWnd

↓

dgVoodoo2

↓

Direct3D 11

↓

GPU
 

Например:

DXWnd отвечает за:

  • окно;
  • Alt+Tab;
  • масштаб.

dgVoodoo отвечает за:

  • перевод старого API;
  • графический вывод.

🧪 Практический пример 1

Старый Warcraft II

Проблема:

  • чёрный экран;
  • нельзя свернуть.

Настройка:

DXWnd:

 
Windowed Mode

DirectDraw Hook

Scale
 

Результат:

игра работает в окне.


🧪 Практический пример 2

Старый стратегический симулятор

Ошибка:

 
Cannot switch display mode
 

Причина:

игра пытается включить:

 
640x480 fullscreen
 

Решение:

DXWnd:

 
Desktop mode
 

🧪 Практический пример 3

Игра вылетает после Alt+Tab

Причина:

старый DirectDraw.


Решение:

DXWnd:

  • Windowed;
  • Hook;
  • фикс ввода.

🔍 Когда DXWnd лучше, чем dgVoodoo2

DXWnd лучше использовать, если проблема:

✅ полноэкранный режим;
✅ Alt+Tab;
✅ неправильный размер окна;
✅ зависание при смене разрешения.


dgVoodoo2 лучше, если проблема:

✅ DirectDraw;
✅ Glide;
✅ старый Direct3D;
✅ отсутствие поддержки API.


🔍 Когда DXWnd не поможет

Не исправляет:

❌ отсутствующие DLL;
❌ ошибки Visual C++;
❌ ошибки .NET;
❌ повреждённые файлы игры;
❌ проблемы DRM;
❌ ошибки самого EXE.


⚠ Частые ошибки DXWnd

❌ Запуск неправильного файла

Некоторые игры имеют:

 
Launcher.exe

↓

Game.exe
 

DXWnd лучше применять к:

 
Game.exe
 

❌ Слишком много фиксов одновременно

Не стоит сразу включать:

  • DXWnd;
  • dgVoodoo;
  • WineD3D;
  • cnc-ddraw.

Сначала определить:

какой API использует игра.


🔗 Диагностика через инструменты

Правильная цепочка:

 
Game Log

↓

Определить API

↓

DXWnd

↓

Настройка профиля

↓

Проверка результата
 

📊 DXWnd — краткая таблица

ВозможностьПоддержка
Оконный режим✅
Alt+Tab исправление✅
DirectDraw Hook✅
Direct3D Hook✅
Масштабирование✅
Старые Windows игры✅
Современные DX12 игры❌

Итог

DXWnd — это инструмент управления запуском старых игр, главным образом через оконный режим и перехват старых графических API.

Он помогает:

✅ запускать старые игры в окне;
✅ исправлять проблемы полноэкранного режима;
✅ исправлять Alt+Tab;
✅ работать со старыми разрешениями;
✅ улучшать совместимость Windows 10/11.

Главная схема:

 
Старая игра

↓

DXWnd

↓

Оконный режим

↓

Современный Windows Desktop

Теперь у вас есть весь необходимый инструментарий: от введения и философии до готовых решений и таблицы-шпаргалки. Смело пробуйте, экспериментируйте и возвращайте к жизни любимые игры — и пусть они работают так, как и задумывалось, без лишней «полировки», но и без критических ошибок.

Принципы безопасной и эффективной работы: минимальные изменения, поэтапное тестирование, опора на логи.

Здесь про системный подход, который реально экономит часы отладки и не ломает рабочие профили.


Принцип 1: Минимальные изменения — правило «одна настройка за раз»

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

Как это применять на практике

  1. Не создавай «суперпрофиль» сразу. Начинай с минимально рабочего набора: Windowed, фиксированное разрешение, Limit FPS, Set Affinity.
  2. Добавляй хуки строго по необходимости. Если игра запускается и работает — не трогай Direct3D/GDI/MM. Если есть проблема (например, чёрный экран или мерцание) — включай только тот хук, который должен это исправить.
  3. Избегай «комплексных» правок. Не меняй сразу и разрешение, и FPS, и хуки — если что-то сломается, ты не поймёшь, что именно.

Аналогия: это как с Steam Logs — ты не смотришь «всё подряд», а ищешь конкретную строку, которая указывает на конкретную проблему. Так и здесь: одна настройка = одна гипотеза = один проверяемый эффект.

Пример

Ты хочешь запустить старый квест с FMV. Не делай так:

  • Windowed + 1024×768
  • Limit FPS 60
  • Affinity 1 Core
  • Hook GDI ON
  • Hook Direct3D ON
  • MM: Remap MCI ON, Stretch ActiveMovie ON
  • DirectShow: Hook ON, Scale ON

Делай по шагам:

  1. Шаг 1: только Windowed + разрешение + Limit FPS + Affinity. Запускаешь, проверяешь, что игра стартует и картинка есть.
  2. Шаг 2: если видео не играет — пробуешь MM/DirectShow.
  3. Шаг 3: если интерфейс мерцает — смотришь GDI.
  4. Шаг 4: если геймплей «летит» — правишь FPS/Affinity.

Каждый шаг — отдельная проверка.


Принцип 2: Поэтапное тестирование — фиксируй результат после каждого шага

Чтобы не потерять рабочий профиль и не гадать «а что раньше работало», введи простую дисциплину: после каждого изменения — тест и фиксация.

Последовательность шагов

Для каждого изменения фиксируй 3 вещи:

  1. Что именно ты изменил (галочка, значение, путь).
  2. Что проверял (запуск, курсор, текст, звук, FMV, скорость геймплея).
  3. Результат (работает/не работает, артефакты, ошибки в логах).

Если что-то ломается — сразу откатываешься на предыдущий рабочий профиль. Никаких «потом разберусь».

Практический шаблон заметок

В папке с бэкапами держи файл DxWnd_Notes.txt и пиши туда кратко:

2024-10-25, AgeOfEmpires_Fix
- Start: Windowed 1024x768, LimitFPS 60, Affinity 1C — OK
- Added: Hook GDI OFF — OK (текст стал читаемым)
- Added: Hook DirectDraw OFF — OK
- Test: cursor, text, speed — OK

Это спасает, когда через месяц ты захочешь «чуть подкрутить» и случайно сломаешь то, что годами работало.


Принцип 3: Опора на логи — читай не «всё подряд», а конкретные маркеры

DxWnd пишет много строк, но тебе нужны только те, которые прямо указывают на проблему. Логи — это не «фоновый шум», а список фактов.

Что искать в первую очередь (маркеры по симптомам)

СимптомЧто искать в логахЧто это значит
Игра не стартует / чёрный экранD3DCreateDevice, CreateSurface, hook injection failedНе удалось создать устройство или инъекция хука заблокирована
Курсор смещён / двойнойWM_MOUSEMOVE, WM_LBUTTONDOWN, cursor hide/showDxWnd не получает или неправильно обрабатывает ввод мыши
Текст/кнопки — чёрные квадратыGDI drawing failed, font not foundПроблема отрисовки GDI или шрифтов
Мерцание / артефактыBitBlt, StretchBlt, PresentПроблемы GDI‑отрисовки или буферизации кадров
Звук: треск, пропаданияDirectSoundCreate, buffer underrun/overrunПроблемы с буфером аудио или созданием устройства
FMV/катсцены: ускорены, чёрный экран, рассинхронMCI_OPEN, MCI_PLAY, DirectShow ошибкиПроблемы инициализации видео или синхронизации
Геймплей «летит»Present, GetTickCount, QueryPerformanceCounterТайминги кадров или системные таймеры дают аномальные значения

Важные нюансы

  • Debug mode. В DxWnd есть опция включения подробных логов. Включай её только для тестов, а не на постоянной основе — иначе логи быстро разрастаются.
  • Не смотри каждую строку. Ищи именно эти маркеры. Если видишь hook injection failed — проблема почти всегда в антивирусе/защите или правах. Если D3DCreateDevice завершается ошибкой — проблема в видеодрайвере или несовместимости хука.
  • Сравни логи «до» и «после». Если ты добавил хук и игра перестала запускаться — сравни два лога. Разница покажет, на какой именно строке всё ломается.

Практический алгоритм: от «ничего не работает» до стабильного профиля

  1. Создай «чистый» профиль (Windowed, 1024×768, Keep aspect ratio, Limit FPS 60, Set Affinity 1 Core, Emulate Win9X heap ON, все хуки OFF).
  2. Запусти игру. Проверь: запускается ли, есть ли картинка, двигается ли курсор, виден ли текст, есть ли звук.
  3. Посмотри логи. Найди строки, соответствующие симптомам.
  4. Сделай одно изменение, которое должно решить проблему (например, включи нужный хук или поменяй FPS).
  5. Снова запусти и проверь. Запиши результат.
  6. Если стало хуже — откатись. Верни предыдущий профиль, не пытайся «докрутить» дальше.
  7. Повторяй, пока не добьёшься стабильной работы.

Как не потерять прогресс: связка «бэкап + заметка + лог»

Учитывая твои задачи (в том числе генерацию изображений и работу с логами), тут та же логика: результат должен быть воспроизводимым.

  • Бэкап перед каждым серьёзным изменением. Даже если ты «просто галочку поставил» — сделай копию dxwnd.ini и папки profiles.
  • Короткая заметка о том, что ты менял и зачем.
  • Сохраняй 1–2 лога для «рабочего» и «сломанного» состояния. Это как референс-кадры для генерации: ты всегда можешь вернуться и сравнить.

Частые ошибки, которые нарушают эти принципы

  • «Включить всё сразу, чтобы точно заработало». В DxWnd это почти всегда ломает игру.
  • Менять несколько параметров одновременно. Если что-то сломалось, ты не знаешь, что именно виновато.
  • Игнорировать логи. Пытаться угадать по симптомам, вместо того чтобы посмотреть, где именно падает инициализация.
  • Не делать бэкапы. Особенно перед обновлением DxWnd — новая версия может перезаписать конфиги.
  • Хранить заметки в голове. Через месяц ты забудешь, зачем отключил GDI и почему оставил Affinity на одном ядре.

Пример из практики (классическая стратегия)

Задача: запустить 2D‑стратегию эпохи DirectX 7, в которой текст отображается чёрными квадратами, а курсор смещён.

  1. Создан профиль RTS_Base: Windowed 1024×768, Limit FPS 60, Affinity 1 Core, хуки OFF. Запуск — игра стартует, но текст чёрный.
  2. В логах: GDI drawing failed. Гипотеза — GDI‑хук ломает шрифты.
  3. Изменение: Hook GDI = OFF. Тест — текст стал читаемым.
  4. Курсор всё ещё смещён. В логах: мало WM_MOUSEMOVE. Гипотеза — нужно включить Auto‑Correct Mouse Position.
  5. Изменение: Auto‑Correct ON, Capture ON. Тест — курсор работает нормально.
  6. Итог: стабильный профиль без лишних хуков. Заметки и бэкап сохранены.

Приложения

Итоговая таблица: все вкладки DxWnd, настройки, возможности, ошибки и исправления

ВкладкаПараметр / опцияВозможности и назначениеЧастые ошибки при неправильной настройкеКак исправить / рекомендации
MainHook DirectDraw / Direct3DВключает перехват вызовов DirectX для эмуляции и масштабирования.Включение обоих одновременно без необходимости вызывает конфликты.Включайте только нужный тип: DirectDraw для 2D-игр, Direct3D для 3D. Если игра падает — отключите один из хуков.
MainFullscreenЭмулирует полноэкранный режим в окне.Игра может «уезжать» за пределы экрана или некорректно обрабатывать Alt+Tab.Используйте в связке с Force windowed mode и фиксированным размером окна.
MainLimit FPSОграничивает частоту кадров, чтобы игра не работала слишком быстро.Слишком высокий FPS приводит к «летящей» игре, слишком низкий — к дёрганой анимации.Начните с 60 FPS, при необходимости снизьте до 30.
MainDisable high-DPI scalingОтключает системное масштабирование Windows (актуально для 4K-экранов).Если не отключить, старые игры будут выглядеть размыто.Всегда включайте для старых проектов.
MainSet affinity to one coreПривязывает игру к одному ядру CPU.Многоядерность может вызывать вылеты из-за гонок данных.Включайте для старых игр (до ~2005 года).
HookHook GDI / User32 / Kernel32 / WinMM / DirectInputВключает перехват соответствующих API для работы твиков и исправлений.Лишние хуки могут вызывать конфликты и вылеты.Включайте только нужные хуки под используемые твики. Например, для win: нужен Hook User32, для sound: — Hook WinMM.
HookHook injection modeОпределяет способ внедрения хуков (обычно Auto).Неправильный режим может приводить к тому, что хуки не применяются.Оставьте Auto. Если есть проблемы — проверьте логи на hook injection failed.
VideoScreen ResolutionУстанавливает разрешение окна.Слишком высокое разрешение может привести к артефактам или чёрному экрану.Для старых игр используйте 640×480, 800×600 или 1024×768.
VideoScaling Mode (Stretch / Integer Scale / Aspect Ratio)Определяет, как игра будет масштабироваться в окне.Stretch даёт «мыло», Integer Scale сохраняет чёткость, Aspect Ratio добавляет чёрные полосы.Для пиксель-арта выбирайте Integer Scale. Для сохранения пропорций — Aspect Ratio.
VideoColour ConvertКонвертирует палитру, исправляет цветовые артефакты.Без этой опции возможны «цветные полосы» и неправильные оттенки.Включайте всегда для старых игр с 256-цветной палитрой.
VideoUse GDIВключает отрисовку через GDI для корректного отображения шрифтов и палитры.Может конфликтовать с некоторыми играми.Включайте, если видите искажённые шрифты или цвета. При проблемах — отключайте.
VideoSurfaces Location (System Memory)Размещает поверхности в системной памяти для стабильности.Может немного снизить производительность.Включайте при мерцании и артефактах.
VideoRenderer (Automatic / D3D9 / D3D7)Определяет версию DirectX для рендеринга.Неправильный выбор может привести к чёрному экрану или вылетам.Начните с Automatic. При проблемах попробуйте D3D9 или D3D7.
MouseAuto-Correct Mouse PositionКорректирует смещение курсора относительно игрового мира.Курсор может «плавать» или не попадать в элементы интерфейса.Включайте обязательно для RTS и шутеров.
MouseCapture Mouse PointerФиксирует курсор в окне игры.Курсор может уходить за пределы окна, вызывая сбои.Включайте для игр, где важна точность прицеливания.
MouseHide Mouse PointerСкрывает системный курсор, если игра использует свой.Двойной курсор или наложение системного курсора на игровой.Включайте, если игра имеет свой курсор.
InputDisable raw inputОтключает Raw Input для совместимости со старыми движками.Raw Input может ломаться на современных устройствах.Если мышь «дёргается» или не работает — отключите Raw Input.
InputRemap keys / buttonsПозволяет переназначать клавиши и кнопки.Неправильная раскладка может сделать управление неиграбельным.Тестируйте каждое переназначение отдельно.
3DForce software vertex processingПринудительно использует программную обработку вершин.Повышенная нагрузка на CPU, может сильно снизить FPS.Включайте только при артефактах геометрии в старых 3D-играх.
3DDisable Z-buffer / Depth bufferОтключает буфер глубины (помогает при наложении спрайтов).Может ломать 3D-сцены и давать «проваливающиеся» объекты.Используйте точечно для конкретных игр с известными проблемами.
MsgsSuppress error messagesПодавляет системные сообщения об ошибках.Можно пропустить важные предупреждения о проблемах.Не включайте при диагностике. Включайте только в финальном профиле.
MsgsRedirect WM messagesПеренаправляет оконные сообщения.Может вызывать проблемы с фокусом и Alt+Tab.Включайте только по необходимости (например, для старых движков, которые «теряют» фокус).
SoundHook DirectSoundВключает перехват DirectSound для исправления звука.Конфликтует с современными аудиодрайверами и оверлеями.Включайте только если есть проблемы со звуком; при треске — отключите.
SoundBuffer size / latencyНастраивает размер буфера аудио.Маленький буфер — треск; большой — задержка.Подбирайте экспериментально, ориентируясь на buffer underrun в логах.
CDAudioEmulate CD AudioЭмулирует воспроизведение аудио с CD.Может мешать работе реального привода или эмулятора.Включайте только для игр, требующих CD Audio.
CDAudioForce CD audio playbackПринудительно запускает аудио с диска.Если диск не вставлен — игра может зависать.Используйте только при наличии диска или его эмуляции.
TweaksТвики с префиксами (shim:, win:, sound:, ddraw:, input:, patch:, tweak:)Точечные исправления под конкретные проблемы.Множество твиков одновременно могут конфликтовать.Добавляйте твики по одному и тестируйте игру после каждого.
I/ORedirect file accessПеренаправляет обращения к файлам.Может сломать сохранения или загрузку ресурсов.Используйте только для известных проблем совместимости.
I/OEmulate missing filesЭмулирует отсутствующие файлы (например, старые DLL).Может привести к нестабильной работе.Только для точечных исправлений, с обязательным тестированием.
LocaleSystem locale overrideПереопределяет локаль системы.Некорректное отображение текста, кракозябры.Используйте для игр с проблемами кодировки.
LocaleFont substitutionПодменяет шрифты для корректного отображения текста.Искажённые символы в меню и диалогах.Включайте, если текст отображается некорректно.
LibsEmulate Win9X heapЭмулирует поведение кучи памяти Windows 9x.Частые вылеты и ошибки выделения памяти.Включайте для очень старых игр (1995–2000).
LibsLoad custom librariesЗагружает дополнительные библиотеки.Несовместимые DLL вызывают вылеты.Используйте только проверенные библиотеки.
GDIHook GDI drawingПерехватывает GDI-вызовы для коррекции отрисовки.Может ломать шрифты и интерфейс.Включайте только при проблемах с текстом и кнопками.
GDIGDI scaling / alignmentКорректирует масштабирование и выравнивание GDI-объектов.Смещение интерфейса, «разъезжающиеся» кнопки.Используйте, если интерфейс ломается при изменении разрешения.
CompatCompatibility mode flagsВключает флаги совместимости (аналог режима совместимости Windows).Избыточные флаги могут вызывать вылеты.Включайте минимально необходимые (например, только для старых API).
CompatDisable optimizationsОтключает оптимизации ОС для старых приложений.Современные оптимизации могут ломать старые движки.Включайте, если игра ведёт себя нестабильно на новых ОС.
RegistryEmulate registry keysЭмулирует ключи реестра для старых игр.Неверные ключи могут сделать игру нерабочей.Используйте только по проверенным инструкциям.
RegistryRedirect registry accessПеренаправляет запросы к реестру.Может нарушить работу DRM и проверок лицензии.Применяйте с осторожностью и только для известных случаев.
NotesUser notesПоле для заметок внутри профиля.Путаница между профилями без понятных описаний.Пишите кратко: жанр, проблема, ключевые опции (например: «RTS, курсор смещён, GDI OFF»).
OpenGLForce OpenGL rendererПринудительно включает OpenGL-рендерер.Не все игры поддерживают OpenGL.Используйте только если игра явно поддерживает OpenGL.
OpenGLOpenGL scaling / filteringНастраивает масштабирование и фильтрацию в OpenGL.«Мыло» или артефакты при масштабировании.Подбирайте под конкретную игру.
SDLSDL hook / overrideПерехватывает вызовы SDL для совместимости.Может конфликтовать с современными версиями SDL.Включайте только для SDL-игр с известными проблемами.
DirectXDirectX version overrideПринудительно задаёт версию DirectX.Несовместимая версия приводит к чёрному экрану.Начинайте с Automatic, затем пробуйте конкретные версии.
DirectX(2)Advanced DirectX tweaksДополнительные настройки для DirectX.Избыточные твики ломают рендеринг.Применяйте только по проверенным гайдам.
Direct3DD3D device selectionВыбор устройства Direct3D.Неверное устройство вызывает чёрный экран.Оставьте Automatic. При проблемах выбирайте конкретное устройство.
Direct3DD3D feature level overrideПереопределение уровня функций D3D.Может вызвать вылеты на неподдерживаемом железе.Используйте только для точечных исправлений.
Direct3D(2)D3D shader emulationЭмуляция шейдеров для старых карт.Повышает нагрузку и может давать артефакты.Включайте только при проблемах с шейдерами.
WDDMWDDM compatibility tweaksНастройки совместимости с WDDM-драйверами.Могут вызывать проблемы на старых видеокартах.Используйте только на системах с WDDM (Windows Vista+).
TimingLimit FPS / V-SyncКонтроль частоты кадров и синхронизации.Слишком высокий FPS ускоряет игру; V-Sync может давать задержку.Для старых игр — Limit FPS 60 или 30; V-Sync — по необходимости.
TimingTime scaling factorКоэффициент масштабирования времени.Неправильное значение ломает таймеры и физику.Используйте только для специфических проблем (например, «летящая» игра).
LogsLog output locationПуть для сохранения логов.Логи могут быстро занимать место на диске.Укажите отдельную папку и регулярно очищайте старые логи.
LogsLog rotation / max sizeОграничение размера и ротация логов.Переполнение диска логами.Настройте ротацию, чтобы не забивать диск.
AdvancedUse custom DLLsПозволяет подгрузить сторонние DLL (например, dgVoodoo).Неправильный путь или несовместимая DLL могут вызвать вылеты.Указывайте только проверенные DLL и корректные пути.
AdvancedWorking directory overrideПереопределяет рабочую директорию.Игра может не находить сохранения или конфиги.Укажите путь к папке, которую игра ожидает использовать.
DebugEnable logging / Log levelВключает запись логов для диагностики.Без логов сложно понять причину вылетов и ошибок.Всегда включайте логи при тестировании новых профилей. Используйте уровень Verbose для максимальной детализации.

Где официально скачать DxWnd: надёжные источники и важные нюансы

Если вы решили вернуть к жизни любимую классику с помощью DxWnd, критически важно начать с правильного шага — скачать утилиту из доверенного источника. Поскольку проект развивается силами сообщества, у него нет единого «магазина» вроде Microsoft Store, но есть несколько площадок, где публикуются оригинальные, немодифицированные сборки.

Проверенные площадки для загрузки

Все указанные площадки легко находятся по точному названию в поиске.

  • Официальный сайт проекта dxwnd.org. Это главный «дом» DxWnd. Здесь вы найдёте актуальную версию в виде ZIP‑архива, базовую документацию и краткие руководства. Скачивание напрямую с сайта гарантирует, что вы получаете именно ту сборку, которую подготовили разработчики.
  • Страница проекта на SourceForge. SourceForge — классическая площадка для открытого ПО, и DxWnd там давно и стабильно размещён. Если официальный сайт по какой‑то причине окажется недоступен, SourceForge станет отличной альтернативой: версия там идентична основной, а репутация площадки снижает риски.
  • GitHub‑репозиторий DxWnd/DxWnd.reloaded. Для тех, кто хочет быть в курсе самых свежих обновлений и исправлений, GitHub — идеальный вариант. В разделе Releases регулярно публикуются новые сборки, а в Issues можно увидеть, какие проблемы сейчас в работе. Это особенно полезно, если вы сталкиваетесь с редкими ошибками и хотите попробовать самую последнюю версию с исправлениями.

Почему важно выбирать именно эти источники

DxWnd работает на уровне перехвата системных вызовов, поэтому целостность файлов здесь не просто вопрос удобства — это вопрос стабильности и безопасности. Скачивая утилиту со сторонних сайтов, вы рискуете:

  • Получить устаревшую сборку, в которой ещё не исправлены известные конфликты с современными драйверами и ОС.
  • Столкнуться с модифицированной версией, где кто‑то «подкрутил» настройки или добавил сторонние компоненты — это может привести к непредсказуемому поведению игр или даже сбоям системы.
  • Занести нежелательный софт, если архив распространяется через сомнительные файлообменники.

Перед запуском скачанного файла обязательно проверьте его антивирусом. Из-за особенностей работы DxWnd некоторые антивирусы могут ложно срабатывать — ориентируйтесь на репутацию источника, а не только на вердикт сканера


Как правильно установить после скачивания

  1. Распакуйте архив в удобную папку, например C:\Tools\DxWnd. Не стоит размещать её внутри Program Files или других защищённых директорий — DxWnd должен иметь полный доступ к своим файлам.
  2. Не запускайте из архива. Утилита не требует классической установки: достаточно распаковать файлы и открыть dxwnd.exe.
  3. Запускайте от имени администратора. Это обязательное условие для корректной работы хуков. Если запустить без прав, DxWnd откроется, но не сможет перехватывать системные вызовы — и, соответственно, не решит проблемы совместимости.
  4. Сразу сделайте резервную копию dxwnd.ini. Этот файл хранит все ваши профили и настройки. Перед тем как экспериментировать с новыми играми или твиками, сохраните копию — так вы сможете быстро вернуть рабочее состояние, если что‑то пойдёт не так.

Важное уточнение про терминологию

Хотя в обиходе DxWnd часто называют «эмулятором», технически это не совсем верно. Это утилита‑обёртка (wrapper), которая не эмулирует старое железо, а адаптирует поведение игры под современную ОС за счёт перехвата API. Понимание этой разницы поможет вам точнее искать информацию и не путать DxWnd с такими проектами, как DOSBox или PCem.