Guide Triplescreen Gaming ohne Matrox dank SoftTH

Olstyle

Moderator
Teammitglied
[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.
133456d1250892905-wip-guide-triplescreen-gaming-ohne-matrox-dank-softth-softth.png


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.
deviceIDLeft=2
deviceIDright=1
Solltet ihr im Moment nur zwei Monitore haben und SoftTH einmal ausprobieren wollen müsst ihr als deviceID des fehlenden Monitors „-1“ eintragen

secondaryWidth

Gibt die horizontale Auflösung der Seitmonitore an. Bei einem „normalen“ 19Zoll Tft also 1280.
secondaryWidth=1280
secondaryHeight
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.
SecondaryFormat=RGB16D
uploadMethod
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.
uploadMethod=blit
borderSize
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.
sideExtraWidth
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.
noHotkeys=1
noOSD=1
useMultihead
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.
1600x1200x85
1680x1050x60
auto
Damit sind die Grundeinstellungen komplett. Je nach Spiel sind aber auch noch ein paar andere Einstellungen notwendig.

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).
<resolution width="4604" height="1050" aspect="normal"
Die "aspect" Einstellung scheint etwas komisch, ergibt bei mir aber ein astreines, nicht gestrecktes Interface.

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).
fDefaultFOV=142.0000
Die Auflösung wird ebenfalls in der ini(bei Fallout3: FalloutPrefs.ini, nicht Fallout3.ini) eingetragen:
iSize W=4604
iSize H=1050
Mirror's Edge ; Assassin's Creed:
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:
Es kostet natürlich Leistung, alle im Guide genannten genannten Spiele bleiben bei mir aber spielbar, zum Teil auch noch mit AA.
 
Seh ich das richtig (du erwähnst es nicht weiter), dass man keine Kommandozeilenoptionen oder sonst was machen muss um das Spiel mit SoftTH laufen zu lassen, lediglich in den Ordner der exe kopieren? (wie erkennt das Spiel es denn dann?)

Bilder und ein paar Benchmarks bzw. Performanceeindrücke wären noch toll.

Ansonsten dankeschön für das Aufmerksam machen und erklären :hail:
Das klingt nach einer attraktiven Alternative, die man auch mal einfach so ausprobieren kann.
 
Seh ich das richtig (du erwähnst es nicht weiter), dass man keine Kommandozeilenoptionen oder sonst was machen muss um das Spiel mit SoftTH laufen zu lassen, lediglich in den Ordner der exe kopieren? (wie erkennt das Spiel es denn dann?)
Entscheidend sind die beiden dlls. Diese fangen DirectX(übrigens "nur" 8,9 und OpenGL, muss ich oben mal ergänzen) quasi ab und leiten die "Bildränder" um. Abgesehen vom einstellen in der ini geht der Rest vollautomatisch.
Kommandozeile braucht man höchstens in Spielen die sonst die entsprechende Auflösung nicht unterstützen.
Bilder und ein paar Benchmarks bzw. Performanceeindrücke wären noch toll.
Bilder folgen wie angekündigt. Über die subjektive Performance hab ich ja schon was geschrieben(bis jetzt blieb alles spielbar, älteres auch mit AA). Benchmarks mit externen Programmen macht SoftTH anscheinend unmöglich(Rivatuner gibt nicht nur kein Overlay sondern auch die FPS-Zeile im Monitor bleibt auf 0), da müsste ich mich mal nach Spielen/Demos mit internen Lösungen umsehen(irgendwelche Vorschläge?)
Ansonsten dankeschön für das Aufmerksam machen und erklären :hail:
Das klingt nach einer attraktiven Alternative, die man auch mal einfach so ausprobieren kann.
Deswegen hab ich den Guide ja geschrieben.
...und wer hat denn schon 3 Monitore zur Verfügung?
Wesentlich mehr als die die ein Triplehead2Go kaufen. Von zwei Monitoren aus hab ich jetzt z.B. knapp 75€(50€ Bildschirm, 15€ Graka, 10€ Wakü aus dem Sonderangebot) investiert statt über 200€ alleine für das Splitgerät.
 
Die zweite Karte tut garnichts, gebraucht wird wirklich nur die PCIe-Bandbreite. Die 6600GT ist also mehr als genug.
Eine Ausnahme ist CUDA, da müssen halt beide Karten CUDA unterstützen(deswegen bei mir die 8500gt), aber das geht trotzt angeblicher interkompatibilität des neuen Toolkits immer noch nicht bei 64bit Systemen :(.

EDIT:
Ich hab gerade mal HL2:Lost Coast zum Benchen gebracht. Mit Allen Features + 4xAA und 8xAF erreiche ich in meiner Downsampling Maximalauflösung von 2611x1632 noch durchschnittlich 106,63 FPS. Mit SoftTH und 4604x1050 bleiben bei gleichen Settings noch 43,51FPS übrig. Über 50% Einbruch bei 13,5% mehr Bildpunkten ist natürlich happig, ist zum einen aber durch die zusätzliche Geometrie in der Breite zu relativieren und hinterlässt außerdem immer noch eine gut spielbare Framrate.
 
Zuletzt bearbeitet:
CUDA geht erst ab Generation 8, da wirst du wohl kein Glück haben.
Multihead solltest du dafür auf jeden Fall mal versuchen.
 
Hat schon jemand von euch Grid zum laufen bekommen in 5040x1050 ??

Bei mir streckt sich das Bild nur -.-*

EDIT: Werd heute nachmittag mal Crysis auf meinen 3x22er benchen und die Ergebnisse posten;)
Graka ist ne 8800GTS 512MB/8600GT GDDR3.
 
Zuletzt bearbeitet:
Hast du es mal mit aspect=15:3 in der ini versucht?
In 4304x1050(dem Screeny zu liebe hatte ich "borders" auf 0) geht es jedenfalls prima(der Versatz kommt von den fehlenden 26 Pixeln in der Höhe, fällt aber im Spiel nicht auf): Anhang anzeigen 135449
 
Zuletzt bearbeitet:
Ich werds mal heute nachmittag mal testen. Dann werd ich auch gleich mal Crysis benchen. Wir bauen grade um deshalb hab ich kaum Zeit :D
 
blöde Frage, würde das zum testen auch erstmal mit 2 Monitoren funktionieren?
Hätte noch einen 19" CRT den ich mal spasseshalber als zweiten Anschliessen könnte oder kommt die Software dann damit durcheinander?
 
@Zerobang: Hat doch der gute in seiner Anleitung geschrieben:

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“ eintragen

Ich hab da auch noch ne frage, würde die Bandbreite eines PCIe 1x Slots reichen? Ohne PCIe 2.0?

dachte an sowas:
Club 3D GeForce 8400 GS, 256MB DDR3, VGA, DVI, TV-out, PCIe x1 (CGNX-GS846LX1) Preisvergleich bei Geizhals.at Deutschland
mein Board hat nur einen PCIe 16x :(
 
Ich hab da auch noch ne frage, würde die Bandbreite eines PCIe 1x Slots reichen? Ohne PCIe 2.0?
Hier hat es der Macher mal untersucht:
PCI Express 16x card in 1x slot (experiment)

Anscheinend reicht die Bandbreite noch für 1024x768 auf dem Seitmonitor, darüber gibt es Performance-Einbuße. Ein halbwegs schneller Betrieb bleibt aber durchaus möglich.

@Z3R0B4NG:
Wie es geht weist du ja mittlerweile. Was die Umsetzung an geht sollte noch erwähnt werden dass SoftTH das Spiel weiterhin mit Triplehead-Auflösungen rechnen lässt und so quasi 1/3 vom gerenderten Bild abgeschnitten werden wodurch schon mal ein bisschen HUD etc. verloren gehen kann.
 
Zuletzt bearbeitet:
das ist genial, danke für den link :)

anscheinend brechen die FPS bei 1280x1024 nicht extrem ein (laut seinen Benches)

so, denn kauf ich mal ne neue GraKa und noch 2 Monitore :D
 
Habs jetzt probiert mit Fallout 3 und der zweite Montior (links = als id 1 ) zeigt mir kein Bild, bild wird nur beim starten einmal ganz kurz schwarz und dann sehe ich wieder das Windoof Hintergrundbild egal ob ich im Hauptmenü oder im Spiel bin.

muss ich noch in den Einstellungen vom Spiel die Auflösung ändern oder kann die auf 1680x1050 bleiben? Da spinnt nämlich irgendwie auf einmal die FalloutLauncher.exe und zeigt kein Menü mehr, dann kommt von Vista die meldung das die .exe nicht mehr reagiert.

//
wenn ich in der FalloutPrefs.ini
iSize W=1680
auf 5040 setze (dreifacher wert) sagt mir das Spiel das mein Monitor die Auflösung nicht unterstützt...
 
Zuletzt bearbeitet:
Die Auflösung musst du nachher natürlich auf eine Triplehead-Auflösung stellen. Mit der alten Auflösung sollte das Spiel aber weiterhin starten. Auf die richtige hohen Auflösungen kannst du übrigens nur Ingame wechseln, im Launcher stehen die nicht zur Auswahl. Alternativ setzt du sie in der ini (iSize W="Breite" iSize H="Höhe")

Der Absturz hört sich für mich nach nicht abgeschaltetem Multihead ab. Was steht denn in der SoftTH.log(wird beim ersten Start automatisch im Installationsordner erstellt).
 
hab es jetzt erstmal mit was einfacherem probiert, mit Call of Juarez 2 hat es geklappt!

Also die Auflösung muss bei mir 1680 plus 2x 1280 sein = 4240 !
Ich dachte erst 3x1680 und der Rest wird abgeschnitten, das wird aber erst garnicht berechnet wenn man sideExtraWidth=-400 einstellt. Also hab ich bei FO3 auch die falsche Auflösung gemacht, dann kann ja nix klappen.

http://s6.directupload.net/images/090830/hw75iyqm.jpg
http://s8.directupload.net/images/090830/wfvcbf7j.jpg

Der CRT ist aber zum zocken echt nicht mehr brauchbar (viel zu DUNKEL!)
egal ist ja nur ein Testlauf ;P Finetuning spar ich mir auch erstmal... aber macht schon Eindruck!

Beim nächsten PC vielleicht doch SLi und TripleHead einplanen? XD
 
Zurück