SoftTH allows using three monitor "triplehead" with Direct3D 8 and 9 games without special hardware. You need three monitors attached to PCI Express video cards. Only one card does all the rendering work, so secondary card can be a low end card, only Direct3D support is required.
Remember the Matrox tripleHead 2 Go we recently reviewed ? This can be seen as the software version of TripleHead 2 Go.
SoftTH works by rendering the whole scene on one display adapter, which then gets split into three parts to be displayed on each monitor. While it is technically possible to use it on a AGP/PCI card, only PCI Express has the required bandwidth to get good framerates.
The software comes from kegetys and just is a brilliant idea. Look here for a diagram of it's basic operation.
While SoftTH can theoretically be compatible with any Direct3D 8 or Direct3D 9 game, some features used by games could not be yet suppoted or they can use special features which are incompatible with SoftTH. A common problem is also that the game cannot handle the aspect ratio, which results in a stretched image.
Examples of SoftTH compatibility with some games tested:
Live for Speed S2
Lock On Modern Air Combat
Richard Burns Rally * Needs forceHorizontalFOV set to 1
Elder Scrolls 4 - Oblivion
Test Drive Unlimited * Enable hooks and doScaleMouseCoordinates to fix cursor clipping
BMW M3 Challenge
Nascar Racing 2003
Company of Heroes
Call of Duty 2
Call of Duty 4
IL-2 Sturmovik - Doesn't work (OpenGL game, with dx8wrapper sets incorrect videomode)
Microsoft Flight Simulator X - Frame rendered only on left monitor, mouse not working correctly
Tests above are run with the following system configuration:
Intel Core 2 Duo E6600 overclocked to 3,4GHz
2GB of memory
GeForce 8800GTS 512MB PCI-e 2.0 (Rendering, middle monitor and right monitor)
GeForce 8400GS PCI-e (Left monitor)
Windows XP Pro SP2
Can I use different aspect ratio monitors with SoftTH?
The sideExtraWidth setting in SoftTH 1.05 allows this. For example, a setup with 1360x768 widescreen on middle monitor, 1024x768 on side monitors: - Add 1360x768x85 to the modelist at the bottom of the SoftTH.cfg file - Set sideExtraWidth setting to (side monitor width) minus (middle monitor width), that is 1024 - 1360 so sideExtraWidth=-336 - Set secondaryWidth and secondaryHeight to 1024 and 768 (You can also use another mode, such as 800x600 here for better framerate) - Game resolution is now (1360*3)-(336*2) = 3408 pixels wide, mode 3408x768 should appear on the modelist
How do I use the cylindrical correction option?
- Set sideExtraWidth to some positive value, such as 256. This makes the game resolution 2*256 pixels wider. - Set cylindicalCorretionAngle to amout of correction done, for example 70. - To find the most optimal settings try different values for sideExtraWidth and cylindicalCorretionAngle. cylindicalCorretionAngle can be modified in-game by pressing App+A and App+Z, press App+E to show the current setting. Modifying sideExtraWidth requires restarting the game and re-selecting the correct resolution.
How can I get better performance with SoftTH?
- Use a smaller game resolution, reduce game detail settings, overclock video card, etc. - Use a smaller resolution on the secondary displays (secondaryWidth and secondaryHeight settings). This can dramatically reduce the amount of data copied over the PCI-e bus. - Use 16bit colors on secondary displays (secondary16bpp setting, enabled by default). - For Direct3D 9 games, set useMultihead to 1. This can take advantage of multihead cards to copy frames faster if one of the seconday monitors is located on the same card as the primary one. - Try different values of sleepBeforeRead. This can be adjusted in-game with App+1 and App+2, App+E shows current setting. - Try changing the swapOrder setting to 0 or 1 - If you absolutely know what you are doing, overclocking the PCI-Express bus can help.
In game X, the mouse does not move all the way to the right
- Set doHooking to 1 and doScaleMouseCoordinates to 1