Windows kann mit modernen Grafikkarten / Treibern nicht in den Videomodus mit sehr niedriger Auflösung wechseln

11

NEU!

Ich habe gestern versucht, hier zu posten, aber es gab mir immer wieder einen Fehler. Ich habe festgestellt, dass DirectX überhaupt nicht verwendet wird, aber GDI oder was auch immer die Nicht-DX-Grafik in Windows ist (nicht OpenGL oder eine andere hardwarebezogene API). Das tut mir leid. Ich habe wirklich gedacht, dass es DX ist.

Ich habe eine Reihe von Windows 32-Bit-Vollbild-EXE-Dateien, die für die Windows XP-Ära kompiliert wurden, und verwende eine Version von DirectX zum Einstellen des Grafikmodus: 320 x 240 x 8. Es ist fest codiert, nativ (in keiner Weise gefälscht) und die Binärdateien können in keiner Weise berührt, neu kompiliert oder geändert werden (fragen Sie nicht).

Ich versuche, diese unter Windows 7 64-Bit und höher zum Laufen zu bringen (es läuft nicht einmal unter XP ohne die richtige Karte und den richtigen Treiber, nur um Verwirrung zu beseitigen). Sie werden nur ausgeführt, wenn die Grafikkarte und ihr Treiber diesen Modus speziell unterstützen, was äußerst selten ist, unabhängig davon, ob er unter XP oder 7 ausgeführt wird. Die 32/64-Bit-Versionen scheinen ebenfalls keine Auswirkungen zu haben.

Ich habe mich schon lange mit diesem Problem befasst, Experten mehrfach um Hilfe gebeten und alle möglichen Lösungsmöglichkeiten gefunden, die ich nacheinander ausprobiert habe. Jeder von ihnen schlägt mit demselben Fehler fehl: Der Videomodus kann nicht eingestellt werden. Das Problem ist immer, dass der Videomodus nicht eingestellt werden kann. Die offensichtliche Lösung besteht darin, dass nicht versucht werden kann, den Videomodus einzustellen, da er nicht unterstützt wird. Ich brauche also eine Art kleine EXE-Datei, die ich mit diesen EXE-Dateien bündeln kann und die so eingerichtet werden kann, dass sie "umhüllt" und den Eindruck erweckt, dass sie tatsächlich den Modus festlegt, während sie tatsächlich in einer Art emuliertem Videofenster ausgeführt wird .

Ich habe "Wine on Windows" ausprobiert, verschiedene Dienstprogramme, die "die Auflösung ändern" (einschließlich DXWIN und D3DWindower), es in einer VM ausführen, Kompatibilitätseinstellungen usw. Fast alles, woran Sie sofort denken. Nichts funktioniert überhaupt. Aber die VM-Sache wäre nicht gut, selbst wenn sie funktionieren würde, da dies auch "verteilbar" sein muss.

Kann mir jemand helfen? Ist das überhaupt möglich zu lösen? Es scheint so bizarr, dass es nicht möglich ist, die Programme zu "täuschen", dass sie tatsächlich den Videomodus eingestellt haben.

Ich hoffe, dass ein echter Experte eine Lösung finden kann.

user1696157
quelle
Die Tatsache, dass Sie gesagt haben, dass Sie nicht erneut ausgeführt werden können, impliziert Programmiererfahrung. Können Sie die Software in Software einbinden? ZB neue Software mit einem 320x240-Fenster erstellen (ähnlich wie bei einer Ansicht)?
Dave
Nun, nicht mehr wirklich ... Ich würde eine standardisierte Lösung sehr bevorzugen.
user1696157
Vielleicht sollten Sie dies auf SO posten und um spezifische Ratschläge bitten, wie der Wrapper am besten codiert werden kann (falls ein solcher Ansatz überhaupt möglich ist).
Karan
@Karan: Seine Frage zu SO wurde als Off-Topic geschlossen und er wurde gebeten, hier zu posten. stackoverflow.com/questions/12576136/…
Harry Johnston
1
Sind Sie sicher, dass DX verwendet wird und keine ältere OGL oder Glide?
Synetech

Antworten:

2

Völlig nicht das, was es eigentlich zu tun hat, und ich kann nicht sagen, ob es ohne die fraglichen Dateien funktioniert, aber Sie können möglicherweise eine ältere Grafikkarte mit 3danalyzer emulieren. Es emuliert eine NVIDIA -Karte der Serien 4000 und 5000 was ein relativ altes und kann funktionieren.

Gesellenfreak
quelle
Funktioniert nicht Es tut uns leid. Nichts scheint zu funktionieren.
user1696157
1
@ user1696157 Was ist passiert, als Sie versucht haben, es auszuführen? Welche emulierten Hersteller- / Geräte-IDs haben Sie versucht? Etwas Passendes für den Zeitpunkt, an dem die Anwendung neu war? Haben Sie die Debug-Protokollierung aktiviert? Was sagt das Protokoll?
John Lyon
1
Hätten Sie zufällig eine Beispieldatei, die wir ausprobieren könnten - vorausgesetzt, sie ist weiterverteilbar? Es ist ziemlich schwer, blind zu beheben.
Geselle Geek
2

Mit dem PowerStrip- Dienstprogramm (29,95 USD mit Testversion) können Sie benutzerdefinierte Auflösungen für Ihren Monitor hinzufügen. Für Verrückte (wie deine) ist nicht bekannt, wie es aussehen wird.

Der Wiki-Artikel Benutzerdefinierte Anzeigemodi zeigt, wie dies gemacht wird, und erwähnt sogar speziell benutzerdefinierte Auflösungen wie 320x200 und 320x240.

An Ihrer Stelle würde ich es vielleicht zuerst in einer virtuellen Maschine versuchen, nur für den Fall (obwohl ich nicht wirklich weiß, ob es in einer VM richtig funktioniert). Auf diese Weise können Sie Ihr Computerdisplay nicht umsonst zerstören und den Bildschirm in seiner tatsächlichen (kleinen) Größe sehen, anstatt auf Ihrem gesamten Monitor verteilt zu sein.

Wenn Ihr Windows 32-Bit ist und Ihre Grafikkarte VGA ist, kann dieser alte Artikel möglicherweise auch helfen: Optimierte VGA-Modi .

[BEARBEITEN]

Eine weitere Möglichkeit besteht darin , regedit und Position zu diesem Schlüssel zu verwenden:
HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\VIDEO\{video-card}\0000,
ändern Sie die folgenden Tasten: DefautlSettings.XResolution, DefautlSettings.YResolution, dann Neustart.

Wenn nichts funktioniert, ist Ihre Grafikkarte möglicherweise eine davon, die keine benutzerdefinierten Auflösungen unterstützt, die entweder über den Treiber, PowerStrip oder in regedit hinzugefügt wurden. Es würde uns helfen, das Modell Ihrer Karte zu kennen.

harrymc
quelle
1
Ich habe Ihre Vorschläge ausprobiert, aber es funktioniert überhaupt nicht. :(
user1696157
1
Ich habe weitere Informationen hinzugefügt. Inwiefern hat PowerStrip bei Ihnen nicht funktioniert?
Harrymc
1
Es funktionierte nicht wie in "überhaupt nicht funktioniert".
user1696157
1
Nun ... ich habe es nicht gewagt, diese letzten faulen Programme auf dem eigentlichen Computer zu testen. Aber es sollte kein Unterschied sein ...
user1696157
1
Wenn das Problem bei Ihrer Grafikkarte liegt, funktioniert dies möglicherweise noch mit einer emulierten Karte eines anderen Herstellers. PowerStrip oder der Regedit-Hack sollten funktionieren, wenn die Bedingungen stimmen.
Harrymc