Windows не может войти в режим видео с очень низким разрешением с современными видеокартами / драйверами

11

NEW!

Я пытался опубликовать здесь вчера, но это продолжало давать мне ошибку. Я обнаружил, что на самом деле он вообще не использует DirectX, но GDI или что-то еще, кроме графики без DX в Windows (не OpenGL или любой другой аппаратный API). Прости за это. Я действительно думал, что это был DX.

У меня есть набор 32-битных полноэкранных EXE-файлов Windows, которые были скомпилированы для эпохи Windows XP, и я использую некоторую версию DirectX для настройки графического режима: 320x240x8. Он является жестко закодированным, нативным (не фальсифицированным), и двоичные файлы не могут быть затронуты, перекомпилированы или изменены каким-либо образом (не спрашивайте).

Я пытаюсь заставить их работать на Windows 7 64-битной и более поздней версии (она даже не работает на XP без правильной карты и драйвера, просто чтобы устранить любую путаницу). Они запускаются только в том случае, если видеокарта и ее драйвер специально поддерживают этот режим, что крайне редко, независимо от того, запущена ли она на XP или 7. 32/64-битные версии, похоже, тоже не влияют.

Я был над этой проблемой в течение долгого времени, много раз обращаясь к экспертам за помощью и получая все возможные варианты решения, которые я пробовал один за другим. Каждый из них терпит неудачу с той же ошибкой: не может установить видео режим. Проблема всегда в том, что он не может установить режим видео. Очевидное решение состоит в том, что он не может пытаться установить режим видео, потому что он не поддерживается. Поэтому мне нужен какой-то маленький EXE-файл, который я могу связать с этими EXE-файлами и который можно настроить так, чтобы он «оборачивался» и обманывал его, думая, что он действительно установил режим, тогда как он фактически работает в эмулируемом видеоокне. ,

Я пробовал "Wine на Windows", различные утилиты, которые "меняют разрешение" (включая DXWIN и D3DWindower), запускал его внутри виртуальной машины, настройки совместимости и т. Д. Почти все, что вы сразу думаете. Ничего не работает вообще. Но виртуальная машина не была бы хороша, даже если бы она работала, потому что она также должна быть «распространяемой».

Может кто-нибудь мне помочь? Это вообще возможно решить? Это кажется настолько странным, что невозможно «обмануть» программы, заставив их думать, что они действительно установили режим видео.

Я надеюсь, что настоящий эксперт сможет найти какое-то решение.

user1696157
источник
Тот факт, что вы сказали, что не можете перекомпилировать и т. Д., Подразумевает опыт программирования - можете ли вы «обернуть» программное обеспечение в программное обеспечение? Например, создать новое программное обеспечение с окном 320x240 (очень похоже на View)?
Дейв
Ну, не совсем так ... Я бы предпочел стандартизированное решение.
user1696157
Может быть, вы должны опубликовать это в SO и попросить конкретный совет относительно того, как лучше всего кодировать оболочку (если такой подход даже осуществим).
Каран
@Karan: его вопрос о SO был закрыт как не по теме, и его попросили опубликовать здесь. stackoverflow.com/questions/12576136/…
Гарри Джонстон
1
Вы уверены, что он использует DX, а не старый OGL или Glide?
Synetech

Ответы:

2

Совершенно не то, что он на самом деле хотел сделать, и я не могу сказать, сработает ли он, не имея реальных файлов, о которых идет речь, но вы можете эмулировать более старую видеокарту с помощью 3danalyzer. Она эмулирует карты NVIDIA серий 4000 и 5000 который относительно старый и может работать.

Подмастерье Компьютерщик
источник
Не работает Сожалею. Ничто не похоже на работу.
user1696157
1
@ user1696157 Что случилось, когда вы попытались запустить его? Какие эмулированные идентификаторы поставщиков / устройств вы пробовали? Что-то подходящее, когда приложение было новым? Вы включили ведение журнала отладки? Что говорит журнал?
Джон Лион,
1
Может быть, у вас есть пример файла, который мы могли бы попробовать - предполагая, что это что-то распространяемое? Это довольно трудно для устранения неполадок слепых.
Подмастерье Компьютерщик
2

PowerStrip утилиту ($ 29,95 с судом) можно добавлять пользовательские разрешения для вашего монитора. Для сумасшедших (таких как ваш) неизвестно, как это будет выглядеть.

Статья вики « Пользовательские режимы отображения» показывает, как это делается, и даже упоминает специально настраиваемые разрешения, такие как 320x200 и 320x240.

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

Если ваша Windows 32-битная, а ваша видеокарта VGA, возможно, эта старая статья также может помочь: Настроенные режимы VGA .

[РЕДАКТИРОВАТЬ]

Другая возможность состоит в том, чтобы использовать Regedit и положение в этом ключе:
HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\VIDEO\{video-card}\0000,
измените следующие клавиши: DefautlSettings.XResolution, DefautlSettings.YResolution, а затем перезагрузите компьютер.

Если ничего не работает, возможно, ваша видеокарта не поддерживает нестандартные разрешения, добавленные через драйвер, PowerStrip или в regedit. Это поможет нам узнать модель вашей карты.

harrymc
источник
1
Я попробовал ваши предложения, но это не работает вообще. :(
user1696157
1
Я добавил еще немного информации. Каким образом PowerStrip не работает для вас?
Harrymc
1
Это не сработало, как в «вообще не сработало».
user1696157
1
Ну ... на самом деле я не осмелился протестировать эти последние подозрительные программы на настоящем компьютере. Но это не должно быть разницей ...
user1696157
1
Если проблема связана с вашей видеокартой, это может сработать с эмулированной картой другого производителя. PowerStrip или Regedit Hack должны работать, если условия являются правильными.
Harrymc