Windows no puede ingresar al modo de video de muy baja resolución con modernas tarjetas gráficas / controladores

11

¡NUEVO!

Estaba intentando publicar aquí ayer, pero seguía dándome un error. He descubierto que en realidad no está usando DirectX en absoluto, sino GDI o lo que sea que no sean gráficos DX en Windows (no OpenGL ni ninguna otra API relacionada con el hardware). Lo siento por eso. Realmente pensé que era DX.

Tengo un montón de EXE de pantalla completa de 32 bits de Windows que se compilaron para la era de Windows XP y uso alguna versión de DirectX para configurar el modo gráfico: 320x240x8. Está codificado, es nativo (no está falsificado de ninguna manera), y los archivos binarios no pueden ser tocados, recompilados o modificados de ninguna manera (no pregunte).

Estoy tratando de hacer que estos se ejecuten en Windows 7 de 64 bits y posteriores (ni siquiera se ejecuta en XP sin la tarjeta y el controlador correctos, solo para aclarar cualquier confusión). Solo se ejecutan si la tarjeta de video y su controlador admiten específicamente este modo, lo cual es extremadamente raro, independientemente de si se ejecuta en XP o 7. Las versiones de 32/64 bits tampoco parecen tener ningún impacto.

He estado en este problema durante mucho tiempo, pidiendo ayuda a expertos en numerosas ocasiones y obteniendo todo tipo de solución potencial, que he probado uno por uno. Cada uno de ellos falla con el mismo error: no se puede configurar el modo de video. El problema siempre es que no puede configurar el modo de video. La solución obvia es que no puede intentar establecer el modo de video porque no es compatible. Por lo tanto, necesito algún tipo de EXE pequeño que pueda combinar con estos EXE y que se pueda configurar para "envolverlo" y engañarlo para que piense que en realidad está configurado el modo, mientras que en realidad se está ejecutando en algún tipo de ventana de video emulada .

He intentado "Wine en Windows", varias utilidades que "cambian la resolución" (incluyendo DXWIN y D3DWindower), ejecutándola dentro de una VM, configuraciones de compatibilidad, etc. Casi cualquier cosa que pienses de inmediato. Nada funciona en absoluto. Pero lo de VM no sería bueno incluso si funcionara, porque esto también debe ser "distribuible".

¿Alguien puede ayudarme? ¿Es esto incluso posible de resolver? Parece tan extraño que no es posible "engañar" a los programas para que piensen que realmente pudieron configurar el modo de video.

Espero que un verdadero experto pueda encontrar alguna solución.

usuario1696157
fuente
El hecho de que usted haya dicho que no puede volver a realizar la compilación, etc., implica experiencia en programación: ¿puede 'envolver' el software dentro del software? Por ejemplo, ¿crear un nuevo software con una ventana de 320x240 (como una vista)?
Dave
Bueno, en realidad ya no ... Prefiero una solución estandarizada.
user1696157
Tal vez debería publicar esto en SO y pedir consejos específicos sobre la mejor manera de codificar el contenedor (si ese enfoque es incluso factible).
Karan
@Karan: su pregunta sobre SO se cerró como fuera de tema y se le pidió que publicara aquí. stackoverflow.com/questions/12576136/…
Harry Johnston
1
¿Estás seguro de que está usando DX y no un OGL o Glide más antiguo?
Synetech

Respuestas:

2

Totalmente no es lo que realmente significa hacer, y no puedo decir si funcionará sin tener los archivos reales en cuestión, pero es posible que pueda emular una tarjeta gráfica anterior con 3danalyzer . Emula una tarjeta nvidia de las series 4000 y 5000 que un relativamente viejo y puede funcionar.

Journeyman Geek
fuente
No funciona Lo siento. Nada parece funcionar.
user1696157
1
@ user1696157 ¿Qué sucedió cuando intentaste ejecutarlo? ¿Qué ID emulada de vendedor / dispositivo probaste? ¿Algo apropiado para cuando la aplicación era nueva? ¿Habilitó el registro de depuración? ¿Qué dice el registro?
John Lyon
1
¿Tendría un archivo de ejemplo que podríamos probar, suponiendo que sea algo redistribuible? Es bastante difícil solucionar problemas a ciegas.
Journeyman Geek
2

La utilidad PowerStrip ($ 29.95 con prueba) puede agregar resoluciones personalizadas para su monitor. Para los locos (como el suyo), se desconoce cómo será.

El artículo wiki Modos de visualización personalizados muestra cómo se hace esto e incluso menciona resoluciones personalizadas específicas como 320x200 y 320x240.

En su lugar, tal vez lo probaría primero en una máquina virtual, por si acaso (aunque realmente no sé si funcionará correctamente en una máquina virtual). Esto le permitirá no destruir la pantalla de su computadora por nada, así como ver la pantalla del monitor en su tamaño real (pequeño) en lugar de salpicarlo por todo el monitor.

Si su Windows es de 32 bits y su tarjeta de video es VGA, quizás este viejo artículo también pueda ayudarlo: Modos VGA ajustados .

[EDITAR]

Otra posibilidad es utilizar regedit y condiciones de esta clave:
HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\VIDEO\{video-card}\0000,
cambiar las teclas siguientes: DefautlSettings.XResolution, DefautlSettings.YResolution, a continuación, reiniciar el sistema.

Si nada funciona, entonces su tarjeta de video podría ser una de estas que no admite resoluciones personalizadas, ya sea agregadas a través del controlador, PowerStrip o regedit. Nos ayudaría conocer el modelo de su tarjeta.

harrymc
fuente
1
Intenté tus sugerencias, pero no funciona en absoluto. :(
user1696157
1
Agregué más información. ¿De qué manera no funcionó PowerStrip para usted?
harrymc
1
No funcionó como en "no funcionó en absoluto".
user1696157
1
Bueno ... en realidad no me atreví a probar esos últimos programas sospechosos en la computadora real. Pero no debería ser una diferencia ...
user1696157
1
Si el problema está en su tarjeta de video, entonces esto podría funcionar con una tarjeta emulada de otra marca. PowerStrip o el truco regedit deberían funcionar si las condiciones son las correctas.
harrymc