Maniac007
2008-10-21, 23:43:56
Nachdem ich quasi den ganzen Tag damit verbracht die Funktion zur Flachbildschirmskalierung nutzen zu können, möchte ich hier mal posten, wie ich es am Ende hinbekommen habe:
Wie vieleicht schon aufgefallen ist, haben manche damit überhaupt kein Problem, während andere seit Jahren darauf warten, dass die Skalierung bei ihnen funktioniert.
Das erklärt sich dadurch, dass es vom Monitor abhängig ist, ob die Funktion läuft oder nicht. Genauergesagt ist das EDID Schuld, 128 Byte Daten, die der Monitor an die Grafikkarte schickt um ihr native Auflösung, Stromsparmodi, etc. mitzuteilen.
Eine Schritt-für-Schritt Anleitung, wie man durch einen Eintrag in der Registrierung das EDID überschreibt ist hier zu finden:
http://www.dvbviewer.info/forum/index.php?showtopic=25308
Anmerkungen dazu:
Die Beschreibung sieht zunächst so aus, als ob sie ein anderes Problem löst, nämlich eine falsche EDID-Information über die native Auflösung in zweitklassigen HD-Fernsehern zu überschreiben. Das fehlerhafte Verhalten der NVidia-Treiber kann jedoch auch durch andere EDID-Einstellungen hervorgerufen werden. Bei mir war beispielsweise schon die korrekte native Auflösung im Monitor hinterlegt, aber erst, nachdem ich das vorletzte Byte im EDID von 01 auf 00 geändert habe, und damit die EDIT-Erweiterungen abgeschaltet habe, funktioniert bei mir die Flachbildschirmskalierung. Vorher waren die Optionen bei neueren Treiber ausgegraut, bei älteren haben sie bei mir nur schlecht (XP) oder gar nicht (VISTA) funktioniert.
Im verlinkten Artikel steht, dass die Lösung wahrscheinlich nur für Windows XP gilt. Bei mir hat sie aber auch unter Vista funktioniert. Allerdings hat das Viewsonic-Tool bei mir nur unter XP, nicht aber unter Vista funktioniert. Da muss man evtl. dem Monitor an einen XP-Rechner anschließen und dort das EDID auslesen. Wichtig ist dann aber, dass der Monitor mit dem gleichen Anschluss verwendet wird, wie an dem Rechner, an dem er später genutzt wird, da es zumindest für analoge und digitale Anschlüsse ein jeweils seperates EDID gibt.
Alternativ kann man vieleicht den Phoenix EDID Designer (http://www.tucows.com/preview/329441) nutzen, der liest das EDID aber nur aus der Windows-Registrierung, nicht vom Monitor direkt. Mit Pech erwischt man ein EDID eines älteren Monitors.
Sollte man etwas grob Falsches in das EDID eingeben, kann es sein, dass der Bildschirm schwarz bleibt. Dann hat bei mir der abgesicherte Modus geholfen, in dem ich den "OverrideEdidFlags0"-Wert löschen konnte. Dieser ist dann aber an einer anderen Stelle in der Registrierung zu finden, die man erst suchen muss.
Es ist auch möglich, den Monitor mit einem neuen EDID zu flashen, dann nutzt im Zweifel der abgesicherte Modus aber auch nichts mehr. Dafür muss man den Registrierungseintrag nach einer Windows-Neuinstallation nicht neu erstellen.
Außerdem ist es möglich, dass mehrere Schlüssel mit dem Namen "VolatileSettings" existieren, in diesem Fall sollte man vieleicht in allen übergeordneten Schlüsseln einen "OverrideEdidFlags0" Binärwert anlegen.
Zuletzt noch ein Tipp um Zeit zu sparen: Um den Registrierungsschlüssel mit dem neuen EDID schnell erstellen zu können, kann man sich mit einem Texteditor und den EDID-Daten aus dem Viewsonic oder Phoenix-Tool auch schnell eine .reg Datei basteln, die ungefähr so aussehen muss:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\{053A423B-52AC-490B-82E2-AB4AB75E6882}\0001]
"OverrideEdidFlags0"=hex:3a,93,00,00,00,00,ff,ff,04,00,00,00,00,80,00,FF,FF,FF,FF,FF,FF,00,3A,93,00, 00,40,E2,01,00,1F,11,01,03,80,33,20,78,2A,5A,D5,A7,56,4B,9B,24,13,50,54,23,08,00 ,81,00,81,80,95,00,A9,40,B3,00,8B,C0,81,40,71,40,28,3C,80,A0,70,B0,23,40,30,20,3 6,00,06,44,21,00,00,1A,00,00,00,FC,00,4D,42,32,34,57,0A,20,20,20,20,20,20,20,00, 00,00,FD,00,32,3D,1E,4A,10,00,0A,20,20,20,20,20,20,00,00,00,FF,00,31,32,33,34,35 ,36,0A,0A,0A,0A,0A,0A,0A,00,79
Natürlich mit eurem Pfad und eurem Binärwert.
EDIT: Im übrigen habe ich gerade gesehen, dass es in dem verlinkten Thread auf dvbviewer.info in Post 23 auch ein Tool zum runterladen gibt, welches eine veränderte EDID-Datei entgegennimmt und automatisch den Eintrag in der Registrierung vornimmt. Ich habe das aber nicht benutzt und kann deshalb nicht mehr darüber sagen.
Insgesamt mag sich das jetzt umfangreicher anhören, als es eigentlich ist. Im Grunde kann man alles in ein paar Minuten erledigen. Ich hoffe, dass ich damit ein paar Leuten weiterhelfe, die schon lange mal wieder ein altes Spiel in 4:3 Auflösung auf ihrem Breitbildschirm zocken wollen.
Wie vieleicht schon aufgefallen ist, haben manche damit überhaupt kein Problem, während andere seit Jahren darauf warten, dass die Skalierung bei ihnen funktioniert.
Das erklärt sich dadurch, dass es vom Monitor abhängig ist, ob die Funktion läuft oder nicht. Genauergesagt ist das EDID Schuld, 128 Byte Daten, die der Monitor an die Grafikkarte schickt um ihr native Auflösung, Stromsparmodi, etc. mitzuteilen.
Eine Schritt-für-Schritt Anleitung, wie man durch einen Eintrag in der Registrierung das EDID überschreibt ist hier zu finden:
http://www.dvbviewer.info/forum/index.php?showtopic=25308
Anmerkungen dazu:
Die Beschreibung sieht zunächst so aus, als ob sie ein anderes Problem löst, nämlich eine falsche EDID-Information über die native Auflösung in zweitklassigen HD-Fernsehern zu überschreiben. Das fehlerhafte Verhalten der NVidia-Treiber kann jedoch auch durch andere EDID-Einstellungen hervorgerufen werden. Bei mir war beispielsweise schon die korrekte native Auflösung im Monitor hinterlegt, aber erst, nachdem ich das vorletzte Byte im EDID von 01 auf 00 geändert habe, und damit die EDIT-Erweiterungen abgeschaltet habe, funktioniert bei mir die Flachbildschirmskalierung. Vorher waren die Optionen bei neueren Treiber ausgegraut, bei älteren haben sie bei mir nur schlecht (XP) oder gar nicht (VISTA) funktioniert.
Im verlinkten Artikel steht, dass die Lösung wahrscheinlich nur für Windows XP gilt. Bei mir hat sie aber auch unter Vista funktioniert. Allerdings hat das Viewsonic-Tool bei mir nur unter XP, nicht aber unter Vista funktioniert. Da muss man evtl. dem Monitor an einen XP-Rechner anschließen und dort das EDID auslesen. Wichtig ist dann aber, dass der Monitor mit dem gleichen Anschluss verwendet wird, wie an dem Rechner, an dem er später genutzt wird, da es zumindest für analoge und digitale Anschlüsse ein jeweils seperates EDID gibt.
Alternativ kann man vieleicht den Phoenix EDID Designer (http://www.tucows.com/preview/329441) nutzen, der liest das EDID aber nur aus der Windows-Registrierung, nicht vom Monitor direkt. Mit Pech erwischt man ein EDID eines älteren Monitors.
Sollte man etwas grob Falsches in das EDID eingeben, kann es sein, dass der Bildschirm schwarz bleibt. Dann hat bei mir der abgesicherte Modus geholfen, in dem ich den "OverrideEdidFlags0"-Wert löschen konnte. Dieser ist dann aber an einer anderen Stelle in der Registrierung zu finden, die man erst suchen muss.
Es ist auch möglich, den Monitor mit einem neuen EDID zu flashen, dann nutzt im Zweifel der abgesicherte Modus aber auch nichts mehr. Dafür muss man den Registrierungseintrag nach einer Windows-Neuinstallation nicht neu erstellen.
Außerdem ist es möglich, dass mehrere Schlüssel mit dem Namen "VolatileSettings" existieren, in diesem Fall sollte man vieleicht in allen übergeordneten Schlüsseln einen "OverrideEdidFlags0" Binärwert anlegen.
Zuletzt noch ein Tipp um Zeit zu sparen: Um den Registrierungsschlüssel mit dem neuen EDID schnell erstellen zu können, kann man sich mit einem Texteditor und den EDID-Daten aus dem Viewsonic oder Phoenix-Tool auch schnell eine .reg Datei basteln, die ungefähr so aussehen muss:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\{053A423B-52AC-490B-82E2-AB4AB75E6882}\0001]
"OverrideEdidFlags0"=hex:3a,93,00,00,00,00,ff,ff,04,00,00,00,00,80,00,FF,FF,FF,FF,FF,FF,00,3A,93,00, 00,40,E2,01,00,1F,11,01,03,80,33,20,78,2A,5A,D5,A7,56,4B,9B,24,13,50,54,23,08,00 ,81,00,81,80,95,00,A9,40,B3,00,8B,C0,81,40,71,40,28,3C,80,A0,70,B0,23,40,30,20,3 6,00,06,44,21,00,00,1A,00,00,00,FC,00,4D,42,32,34,57,0A,20,20,20,20,20,20,20,00, 00,00,FD,00,32,3D,1E,4A,10,00,0A,20,20,20,20,20,20,00,00,00,FF,00,31,32,33,34,35 ,36,0A,0A,0A,0A,0A,0A,0A,00,79
Natürlich mit eurem Pfad und eurem Binärwert.
EDIT: Im übrigen habe ich gerade gesehen, dass es in dem verlinkten Thread auf dvbviewer.info in Post 23 auch ein Tool zum runterladen gibt, welches eine veränderte EDID-Datei entgegennimmt und automatisch den Eintrag in der Registrierung vornimmt. Ich habe das aber nicht benutzt und kann deshalb nicht mehr darüber sagen.
Insgesamt mag sich das jetzt umfangreicher anhören, als es eigentlich ist. Im Grunde kann man alles in ein paar Minuten erledigen. Ich hoffe, dass ich damit ein paar Leuten weiterhelfe, die schon lange mal wieder ein altes Spiel in 4:3 Auflösung auf ihrem Breitbildschirm zocken wollen.