НОВЫЙ!
Я пытался разместить здесь пост вчера, но он постоянно выдавал мне ошибку. Я обнаружил, что на самом деле он вообще не использует 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), запуск его внутри VM, настройки совместимости и т. д. Почти все, что вы сразу придумаете. Ничего не работает вообще. Но VM не была бы хороша, даже если бы работала, потому что это тоже должно быть "распространяемым".
Кто-нибудь может мне помочь? Это вообще возможно решить? Это кажется настолько странным, что невозможно «обмануть» программы, заставив их думать, что они действительно смогли установить видеорежим.
Надеюсь, настоящий эксперт сможет предложить какое-то решение.
решение1
Это совсем не то, для чего оно на самом деле предназначено, и я не могу сказать, будет ли оно работать, не имея самих файлов, о которых идет речь, но вы, возможно, сможете эмулировать старую видеокарту с помощью3danalyzer.Он эмулирует видеокарту NVIDIA серий 4000 и 5000, которая является относительно старой и можетработа.
решение2
TheУдлинительУтилита ($29.95 с пробной версией) может добавлять пользовательские разрешения для вашего монитора. Для сумасшедших (таких как ваш) неизвестно, как это будет выглядеть.
Статья в викиПользовательские режимы отображенияпоказывает, как это делается, и даже упоминает специальные пользовательские разрешения, такие как 320x200 и 320x240.
На вашем месте я бы, наверное, попробовал сначала на виртуальной машине, на всякий случай (хотя я не знаю, будет ли это работать корректно в виртуальной машине). Это позволит вам не испортить дисплей вашего компьютера понапрасну, а также увидеть экран монитора в его реальном (маленьком) размере, а не забрызганным по всему монитору.
Если у вас 32-разрядная версия Windows и видеокарта VGA, возможно, эта старая статья также может вам помочь: Измененные режимы VGA.
[РЕДАКТИРОВАТЬ]
Другая возможность — использовать regedit и перейти к этому ключу:
HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\VIDEO\{video-card}\0000
,
изменить следующие ключи: DefautlSettings.XResolution
, DefautlSettings.YResolution
, а затем перезагрузить компьютер.
Если ничего не работает, то ваша видеокарта может быть одной из тех, которые не поддерживают пользовательские разрешения, добавленные через драйвер, PowerStrip или в regedit. Это помогло бы нам узнать модель вашей карты.