Windows non può accedere alla modalità video a risoluzione molto bassa con schede grafiche / driver moderni


11

NUOVO!

Ieri stavo provando a postare qui, ma continuava a darmi un errore. Ho scoperto che in realtà non utilizza affatto DirectX, ma GDI o qualunque sia la grafica non DX in Windows (non OpenGL o qualsiasi altra API relativa all'hardware). Mi dispiace per quello. Pensavo davvero che fosse DX.

Ho un sacco di EXE a schermo intero a 32 bit di Windows che sono stati compilati per l'era di Windows XP e uso una versione di DirectX per le impostazioni della modalità grafica: 320x240x8. È hardcoded, nativo (non simulato in alcun modo) e i file binari non possono essere toccati, ricompilati o modificati in alcun modo (non chiedere).

Sto cercando di farli funzionare su Windows 7 a 64 bit e versioni successive (non funziona nemmeno su XP senza la scheda e il driver giusti, solo per chiarire la confusione). Funzionano solo se la scheda video e il suo driver supportano specificamente questa modalità, che è estremamente rara, indipendentemente dal fatto che sia eseguita su XP o 7. Le versioni a 32/64 bit sembrano non avere alcun impatto.

Sono stato su questo problema per molto tempo, chiedendo aiuto agli esperti numerose volte e ottenendo ogni tipo di soluzione potenziale, che ho provato uno per uno. Ognuno di essi fallisce con lo stesso errore: impossibile impostare la modalità video. Il problema è sempre che non è possibile impostare la modalità video. La soluzione ovvia è che non può tentare di impostare la modalità video, perché non è supportata. Quindi ho bisogno di una sorta di piccolo EXE che posso raggruppare con questi EXE e che può essere impostato per "avvolgerlo" e ingannarlo pensando che abbia effettivamente impostato la modalità, mentre in realtà è in esecuzione in una sorta di finestra video emulata .

Ho provato "Wine su Windows", varie utility che "cambiano la risoluzione" (inclusi DXWIN e D3DWindower), eseguendolo all'interno di una VM, impostazioni di compatibilità, ecc. Quasi tutto ciò a cui pensi immediatamente. Niente funziona affatto. Ma la cosa della VM non sarebbe buona anche se funzionasse, perché anche questo deve essere "distribuibile".

Qualcuno può aiutarmi? È anche possibile risolverlo? Sembra così bizzarro che non è possibile "ingannare" i programmi facendoli pensare che in realtà abbiano impostato la modalità video.

Spero che un vero esperto sarà in grado di trovare una soluzione.


Il fatto che tu abbia detto che non puoi rispondere, ecc. Implica l'esperienza di programmazione: sei in grado di "avvolgere" il software nel software? Ad esempio, creare un nuovo software con una finestra 320x240 (molto simile a una vista)?
Dave,

Beh, non proprio più ... Preferirei di gran lunga una soluzione standardizzata.
user1696157

Forse dovresti pubblicarlo su SO e chiedere consigli specifici su come codificare al meglio il wrapper (se un tale approccio è persino fattibile).
Karan,

@Karan: la sua domanda su SO è stata chiusa come fuori tema e gli è stato chiesto di pubblicare qui. stackoverflow.com/questions/12576136/…
Harry Johnston,

1
Sei sicuro che stia usando DX e non un vecchio OGL o Glide?
Synetech,

Risposte:


2

Totalmente non è quello che effettivamente intende fare, e non posso dire se funzionerà senza avere i file reali in questione, ma potresti essere in grado di emulare una vecchia scheda grafica con 3danalyzer . Emula una scheda NVIDIA serie 4000 e 5000 quale è relativamente vecchio e può funzionare.


Non funziona Scusa. Niente sembra funzionare.
user1696157,

1
@ user1696157 Cosa è successo quando hai provato a eseguirlo? Quali ID fornitore / dispositivo emulati hai provato? Qualcosa di appropriato per quando l'applicazione era nuova? Hai abilitato la registrazione debug? Cosa dice il registro?
John Lyon,

1
ti capita di avere un file di esempio che potremmo provare - assumendo che sia qualcosa di ridistribuibile? È piuttosto difficile risolvere i non vedenti.
Journeyman Geek

2

L' utility PowerStrip ($ 29,95 con prova) può aggiungere risoluzioni personalizzate per il tuo monitor. Per i pazzi (come i tuoi), non si sa come sarà.

L'articolo wiki Modalità di visualizzazione personalizzate mostra come eseguire questa operazione e menziona persino risoluzioni personalizzate come 320x200 e 320x240.

Al posto tuo, forse lo proverei prima in una macchina virtuale, per ogni evenienza (anche se non so davvero se funzionerà correttamente in una macchina virtuale). Ciò ti consentirà di non distruggere il display del tuo computer per niente, oltre a vedere lo schermo del monitor nella sua dimensione reale (piccola) piuttosto che schizzato su tutto il monitor.

Se il tuo Windows è a 32 bit e la tua scheda video è VGA, forse questo vecchio articolo può anche aiutare: Modalità VGA ottimizzate .

[MODIFICARE]

Un'altra possibilità è quella di utilizzare il regedit e la posizione a questa chiave:
HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\VIDEO\{video-card}\0000,
modificare le seguenti chiavi: DefautlSettings.XResolution, DefautlSettings.YResolution, quindi riavviare il sistema.

Se non funziona nulla, la tua scheda video potrebbe essere una di queste che non supportano risoluzioni personalizzate, aggiunte tramite driver, PowerStrip o in regedit. Ci aiuterebbe a conoscere il modello della tua carta.


1
Ho provato i tuoi suggerimenti, ma non funziona affatto. :(
user1696157,

1
Ho aggiunto qualche informazione in più. In che modo PowerStrip non ha funzionato per te?
harrymc,

1
Non ha funzionato come in "non ha funzionato affatto".
user1696157,

1
Beh ... non ho avuto il coraggio di testare quegli ultimi programmi di pesce nel computer reale, in realtà. Ma non dovrebbe fare la differenza ...
user1696157

1
Se il problema riguarda la tua scheda video, allora potrebbe funzionare con una scheda emulata di un'altra marca. PowerStrip o l'hacked regedit dovrebbero funzionare se le condizioni sono giuste.
harrymc,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.