Ошибка при сворачивании 16-битных цветных игр в Windows 8 или новее

Я играю в старую MMO игру, которая сделана с использованием 16-битного цвета. Игра отлично работает на Windows 7 и старых версиях (Vista, XP).

Тем не менее, в игре есть некоторые ошибки в Windows 8 и более поздних версиях.

Я могу запустить игру и нормально играть в полноэкранном режиме, но когда я сворачиваю игру (снова вкладку alt), а затем снова максимизирую, игровая графика становится пурпурной и сокращается до половины экрана.

Снимок экрана 1

Снимок экрана 2

Я пытался использовать API "ChangeDisplaySettings", но он не работает, когда я пытаюсь перейти на 16 бит на пиксель.

Еще одно странное замечание: при запуске игра работает как шарм. Ошибка возникает только тогда, когда я минимизирую, а затем снова максимизирую.

У кого-нибудь есть решение, чтобы это исправить?

6 ответов

Решение

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

Одним из таких приложений является DxWnd.

Ниже я опишу, как настроить GunBound Thor's Hummer (я думаю, что ваши скриншоты из этой игры).

Hummer из GunBound Thor использует Launcher.exe для запуска файла GunGame.gme (эти файлы находятся в папке установки GunBound Thor's Hammer). Мне не удалось настроить DxWnd для непосредственной обработки gme-файла, поэтому необходимо выполнить некоторые дополнительные действия.

  1. Скопируйте GunGame.gme в GunGame.exe.
  2. Замените GunGame.gme на GunGame.exe в файле Launcher.exe с помощью какого-либо шестнадцатеричного редактора (Notepad++ также будет работать, в то время как стандартный блокнот Windows испортит исполняемый файл). Вы можете сделать резервную копию Launcher.exe перед исправлением его.
  3. Запустите DxWnd от имени администратора.
  4. В DxWnd выберите "Правка"> "Добавить" и введите следующие значения в открывшемся диалоговом окне:

    • Имя: все, что вы хотите
    • Путь: C:\Program Files (x86)\GunBound Thor's Hammer (nos)\GunGame.exe (замените свой фактический путь).
    • Запустите: C:\Program Files (x86)\GunBound Thor's Hammer (nos)\Launcher.exe (замените ваш фактический путь к исправленной программе запуска).
    • Все остальные параметры остались со своими значениями по умолчанию.
  5. Нажмите ОК

  6. Запустите созданный элемент в окне DxWnd. Игра будет запускаться в окне.

Начиная с Windows 8, диспетчер окон рабочего стола (DWM) всегда включен и постоянно работает под управлением Windows с глубиной цвета 32 бита. Это может вызвать такие странные проблемы.

Если режим совместимости с XP (активирующий шим, позволяющий играм думать, что они работают с глубиной цвета 16 бит, а Windows по-прежнему использует 32 бит) не работает, настройте виртуальную машину и используйте более старую версию Windows, например Windows XP (но без подключения к Интернету), чтобы запустить такие действительно старые игры.

Попробуйте запустить программу в режиме совместимости, щелкнув правой кнопкой мыши (один из разделов; сейчас я использую Linux) и выбрав 16-разрядный режим совместимости или аналогичный. Также выберите запуск с использованием Windows XP или любой другой ОС, кроме Win 8.

Вещи, чтобы попробовать:

  1. В теге "Совместимость" в свойствах игры, помимо настройки режима XP, установите также "Режим уменьшенного цвета" на 16-разрядный. Вы также можете попробовать "Запустить с разрешением экрана 640 x 480" и "Отключить масштабирование экрана при настройках с высоким разрешением".

  2. Щелкните правой кнопкой мыши исполняемый файл программы, обычно EXE-файл, и выберите "Устранение неполадок совместимости". Нажмите "Попробовать рекомендуемые настройки" и "Протестировать программу…". Если программа теперь работает, нажмите "Да, сохранить эти настройки для этой программы". В противном случае нажмите "Нет, попробуйте еще раз, используя другие настройки", и отвечайте на вопросы, пока не найдете то, что работает, или не откажетесь от этого.

  3. Если ваша видеокарта Nvidia, перейдите в Панель управления Nvidia -> Дисплей -> Настроить размер и положение рабочего стола -> Масштабирование, нажмите "Полный экран" и "Применить".

Загрузите комплект для оценки и развертывания Windows и установите набор средств для обеспечения совместимости приложений. Затем попробуйте включить одно или несколько исправлений совместимости для своей игры. Доступно несколько исправлений ("прокладок"), имена которых намекают на решение проблем, связанных с 16-битной совместимостью цветов, но этот процесс может потребовать некоторых проб и ошибок, поскольку нет точных объяснений относительно того, что делает большинство исправлений, как они работают или могут ли они вообще повлиять на используемую вами конфигурацию.

Я столкнулся с той же ошибкой в ​​«Локомоции» Криса Сойера, и это странное решение помогло: после сворачивания игры я просто открыл «Панель управления» -> «Дисплей» -> вкладку «Разрешение» и вернулся обратно в игру... все цвета были нормальными.

Другие вопросы по тегам