[Guide]Triplescreen Gaming ohne Matrox dank SoftTH
Worum geht es hier?
Die meisten von euch werden wohl schon das ein oder andere mal von Matrox Triplehead2Go gehört haben. Damit ist es möglich auch Spiele die das nicht ausdrücklich unterstützen(was fast alle sind) auf drei Monitoren zu spielen.
Diese Lösung ist allerdings recht teuer und funktioniert nur mit Monitoren gleicher Auflösungen. Daher möchte ich euch hier eine alternative Softwarelösung(natürlich Freeware) vorstellen welche Keijo "Kegetys" Ruotsalainen entwickelt. Das schon im Titel genannte SoftTH. Der Entwickler hat dazu auch gleich noch eine Skizze entworfen welche die Funktionsweise veranschaulicht.

Was brauche ich dazu?
Alles was ihr braucht sind drei Bildschirme(die beiden Seitmonitore sollten die gleiche Auflösung haben) und entsprechend viele Anschlüsse am PC. Reichen die von der primären Grafikkarte nicht aus und es ist auch kein Onboardchip vorhanden braucht ihr noch eine zweite Grafikkarte.
Wichtig dabei ist, dass es sich dabei um eine PCIe Karte handelt da sonst die Bandbreite zu gering für SoftTH ist. Außerdem würde ich euch, um Treiberproblemen vor zu beugen. empfehlen dem Hersteller eurer Hauptkarte treu zu bleiben.
Die Leistung dagegen ist vollkommen egal, die ganze Arbeit hat weiterhin die Hauptkarte(auch bei SLI/CF Systemen, selbiges bringt also keinen Geschwindigkeitsvorteil).
Beim Anschließen muss man darauf achten dass der mittlere Monitor von Windows als Monitor Nr1 erkannt wird.
Eine Einschränkung gibt es ausserdem noch bei der Auswahl der Spiele. SoftTH braucht DirectX 8, DX 9 oder OpenGL sowie eine 32bit exe.
In meinem Fall sieht das dann wie folgt aus:
Anhang anzeigen 133587- Eine GTX280 zum rendern und eine 8500GT für den dritten Monitor
Anhang anzeigen 133588 -Das mittlere ist ein 22“ 16:10 TFT,die äußeren zwei sind 19“ Modelle mit einem Seitenverhältnis von 5:4
Anhang anzeigen 133585-Und so sieht Windows die Sache.
Jetzt fehlt nur noch das wichtigste: SoftTH selbst.
Selbiges findet ihr hier:
SoftTH v1.09 rc1 (FSX, Grid, CUDA, etc.)
direkt DL
Alternativ hab ich diesem Post hier die nur für die Funktion notwendigen Dateien mit der für mein System meistens passenden Ini angehängt.
Dabei handelt es sich zwar „nur“ um einen Release Candidate, in der Regel ist er aber den älteren Versionen vor zu ziehen. Letztere können unter Umständen aber doch noch ein Spiel zum laufen bringen was mit der aktuellsten Version nicht mit macht.Diese finden sich hier:
kegetys.net - SoftTH Software Triplehead
EDIT:
Mittlerweile ist die Version 2.x aktuell.
Und so geht es:
Um SoftTH zu aktivieren müsste ihr die dll-Dateien und die cfg-Datei aus dem Zip-Ordner zur exe-Datei des gewünschten Spiels entpacken. In der Regel findet sich diese im Hauptordner der Installation, manchmal aber auch in einem Unterordner namens bin oder system.
Nun muss SoftTH noch konfiguriert werden. Auch die meisten Spiele selbst brauchen noch kleinere oder größere Anpassungen um die ungewöhnlichen Triplescreen Auflösungen richtig dar zu stellen.
SoftTH Konfigurieren:
EDIT:Alles hier beschriebene gilt für die 1.x Versionen. Bei SoftTH 2.x hat sich einiges geändert. Hierfür habe ich ein kleines Tool erstellt mit welchem die Konfiguration recht leicht von der Hand gehen sollte.
Einstellungen in SoftTH nimmt man vor indem man die cfg-Datei mit dem Editor, Wordpad o.ä. bearbeitet. Manches lässt sich auch über Hotkeys nachstellen, damit hab ich mich selbst aber noch nicht wirklich auseinander gesetzt.
Auf den ersten Blick mag diese vorgehen zwar etwas abschreckend sein, wenn man es ein mal gemacht ist aber nur noch halb so schlimm.
Alle Zeilen mit einem ; davor sind Erklärungen der Funktionen auf Englisch. In den restlichen Zeilen befindet sich vor dem Gleichheitszeichen der Name der Funktion und dahinter der aktuelle Wert. Diesen gilt es an zu passen. Wer schon mal eine ini-Datei o.Ä. bearbeitet hat kennt das Prinzip ja.

Im folgende mal die(meiner Meinung nach) wichtigsten Einstellungen für jedes Spiel. Die Ausdrücke in den Quotes sind meine Einstellungen als Vergleichswert.
deviceIDLeft
Hier wird die Nummer des linken Bildschirms eingetragen. Diese findet ihr in den Anzeigeneinstellungen(„Identifizieren“). Da SoftTH aber Programmierer gerecht zählt beginnen die Nummern bei 0 und nicht bei 1. Es gilt also jeweils 1 von der Windows-Bezeichnung ab zu ziehen. Monitor Nr.2 hat also die deviceID „1“ .
deviceIDright
Ist nochmal das gleiche für den rechten Monitor.
Solltet ihr im Moment nur zwei Monitore haben und SoftTH einmal ausprobieren wollen müsst ihr als deviceID des fehlenden Monitors „-1“ eintragendeviceIDLeft=2
deviceIDright=1
secondaryWidth
Gibt die horizontale Auflösung der Seitmonitore an. Bei einem „normalen“ 19Zoll Tft also 1280.
secondaryHeightsecondaryWidth=1280
Dagegen ist die vertikale Auflösung.
secondaryHeight=1024
secondaryRefresh
Komplettiert die Monitoreinstellungen dann mit der Wahl der Bildwiederholrate in Hz.
secondaryRefresh=75
secondaryFormat
Gibt an in welche Format das Bild zu den extra Monitoren geschickt wird.
Möglich sind „RGB16“, „RGB16D“, „RGB32“ und „RGB32CUDA“.
Bei den ersten beiden Optionen wird Bandbreite gespart indem die Farbauflösung des Bildes halbiert wird. Das sieht etwas schlechter aus, fällt aber in der Regel nicht auf und bringt eine deutlich bessere Performance als „RGB32“. Das D am Ende entscheidet darüber ob die Karte einen direkten dithering Befehl(ohne D) bekommt oder ob ein kleines Shaderprogramm dafür genutzt wird. Da neuere Karten ersteres in der Regel nicht mehr können sollte die Funktion in der Regel bei „RGB16D“ belassen werden.
Ein Sonderfall ist RGB32CUDA. Dafür braucht man zwei CUDA-Fähige Grafikkarten(Nvidia GF8 und aufwärts) und ein 32bit Betriebssystem(eine 64bit Lösung ist angekündigt aber noch nicht verfügbar). Dies Einstellung ermöglicht es die Bildübertragung mit CUDA zu beschleunigen(für die Techniker: das spart ein paar read Befehle) und ist in der Regel mit voller Farbauflösung genau so schnell wie „normales“ Verschieben bei 16bit.
uploadMethodSecondaryFormat=RGB16D
Hier wird entschieden wie das Bild zu den Seitenmonitoren kommt. „blit“ ist dabei die Standardeinstellung welche man in der Regel auch beibehalten sollte. Will man dagegen CUDA nutzen(siehe „RGB32CUDA“) muss „D3DCUDA“ gewählt werden. Eine weiter Möglichkeit ist „D3D“, das ist in der Regel aber langsamer als blit und daher nur als Bugfixing option interessant.
borderSizeuploadMethod=blit
Hier kann man einen wert in Pixeln wählen welcher zwischen den Monitoren gerendert wird. Das hat den Sinn, dass sich Objekte quasi hinter dem Monitorrand befinden können was einen Sprung des Bildes von Monitor zu Monitor verhindert.
Da der Bereich trotzdem berechnet werden muss kostet die Grenze etwas Leistung, imho lohnt sich der(eh recht kleine) Verlust aber.
sideExtraWidthBorderSize=150
Hier muss die Differenz zwischen der Breite des Hauptmonitors und der Seitenmonitore(in meinem Fall -400) angegeben werden. Benutzt man auf dem Desktop aber die gleichen Auflösungen wie im Spiel reicht die „auto“ Funktion und der Unterschied wird so erkannt.
sideExtraWidth=auto
noHotkeys
noOSD
Hier können die Hotkeys und das OSD durch das setzen einer 1 statt der 0 abgeschaltet werden. Da letzteres gerne mal Spiele stört und ich erstere nicht nutze hab ich immer beides aus.
Einzige Ausnahme ist das erstellen von Screenshots(klappt nicht immer). Selbige macht SoftTH nämlich auch(als TGA-File in den User-Ordner). Dafür müssen die Hotkeys(es wird die normale "Druck" Taste genutzt) aber an sein.
useMultiheadnoHotkeys=1
noOSD=1
Setzt man hier eine 1 werden die Daten zu Nebenmonitoren welche sich direkt an der Hauptkarte befinden ohne Umwege kopiert. Das bedeutet natürlich einen ordentlichen Leistungsschub, allerdings ist die Funktion unter Vista und Seven ziemlich verbugt(auf OS Seite) weshalb ich sie aus lassen musste. Versuchen solltet ihr es aber auf jeden Fall mal, vielleicht habt ihr ja mehr Glück als ich.
Und zum Schluss sollte man der Vollständigkeit halber(wird meist auch automatisch erkannt) noch die Auflösung des Hauptmonitores im Format „breite“x“höhe“x“hz“eintragen. Diese kommt in die vorletzte Zeile.useMultihead=0
Damit sind die Grundeinstellungen komplett. Je nach Spiel sind aber auch noch ein paar andere Einstellungen notwendig.1600x1200x85
1680x1050x60
auto
So verhindert z.B. autoSquash=1 dass bei GT Legends(und anderen Spielen mit reinem 2D Menü ohne echte Skalierung) das Menü fürchterlich gestreckt wird.
Mit den Einstellungen unter [hooks] muss man je nach Spiel experimentieren. Sie dienen dazu eventuelle Maus- und Skalierungsprobleme zu beheben.
Das gerade genannte GT Legends z.B. hat keine Probleme mit der hohen Auflösung so dass doHooking und die doScale... Einträge alle auf 0 gesetzt werden sollten.
Fallout 3 dagegen funktioniert mit doHooking=1(Grundvorraussetzung für alle unter dem Punkt aufgeführten Einstellungen) und doScaleClientRects=1 am besten.
Letzteres sorgt dafür dass das Bild richtig auf die Monitore verteilt wird und ist meiner Erfahrung nach recht häufig nötig(z.B. auch bei Risen und Half Life 2).
Spiele anpassen:
Je nach Spiel ist es mehr oder weniger aufwendig es auf die extra breiten Triplescreen Auflösungen zu bringen. Im Endeffekt gibt es aber für die meisten aktuellen Spiele eine Lösung bzw. manche funktionieren auch von Haus aus(vorallem Renn- und Flugsimulationen).
Was genau nötig ist findet man in der Regel in der entsprechenden Liste vom Widescreen Forum(englisch).
Ein paar Fälle möchte ich trotzdem mal hier aufführen.
GRID:
Die Auflösung selbst lässt sich im Spiel wählen, allerdings ging das Umschalten bei mir nicht stabil vonstatten weshalb ich sie im Endeffekt in der Konfigurations Datei("Dokumente"\Codemasters\GRID\hardwaresettings\hardware_settings_config.xml) eingegeben habe(mit WordPad öffnen).
Die "aspect" Einstellung scheint etwas komisch, ergibt bei mir aber ein astreines, nicht gestrecktes Interface.<resolution width="4604" height="1050" aspect="normal"
Oblivion; Fallout3:
Die beiden Bethesda Spiele kommen von Haus aus mit den riesigen Auflösungen zurecht. Um die 1st Person Ansicht korrekt auf den Bildschirm aus zu breiten muss aber das Sichtfeld(kurz FOV=Field of View) angepasst werden.
Dies geschieht wieder in der ini-Datei("Dokumente"\My Games\"Spielname"\Spielname.ini) unter fDefaultFOV.
Welcher Wert der Richtige ist lässt sich im Fov Calc ausrechnen(Standardwert ist 75.0000).
Die Auflösung wird ebenfalls in der ini(bei Fallout3: FalloutPrefs.ini, nicht Fallout3.ini) eingetragen:fDefaultFOV=142.0000
Mirror's Edge ; Assassin's Creed:iSize W=4604
iSize H=1050
Diese Spiele ermöglichen es zwar extra breite Auflösungen ein zu stellen, zeigen aber doch nur maximal einen 16:9 Ausschnitt.
Abhilfe schaffen die Hacks von Racer_S. Diese kleinen Hilfsprogramme müssen vor dem Spielstart gestartet werden(lässt sich mit Batchrun automatisieren). Nun kann die Kamera im Spiel über die + und - Taste des Numblocks fast stufenlos an den Bildschirm angepasst werden(bei AC muss vorher noch die gewünschte Auflösung im Tool eingetragen werden).
Um etwa gestreckte Menüs besser lesen zu können kann man den Hack ausserdem während des Spiels mit den Tasten * und / an bzw. ausschalten.
Impressionen
Fallout 3
So rendert das Spiel:Anhang anzeigen 134717 ,das macht SoftTH daraus:Anhang anzeigen 134716 und so landet es auf den Bildschirmen:Anhang anzeigen 134718
Grid

Psychonauts
Anhang anzeigen 135482Anhang anzeigen 135483
Mirror's Edge
http://extreme.pcgameshardware.de/1686394-post139.html
Zuletzt bearbeitet: