Well I am able to use SoftTH 7 with just the one 5870 card, using two dvi out monitors and one display port adapter to dvi out monitor!
However, I have found that the 1.7 version works but not too well (versions 1.9 & 1.8 dont work at all). For some reason it only recognizes my 2560x1600 monitor as being 1600x1200 and it forces my 1200x1600 monitors to a 1200x1200 resolution. Instead of giving me 4960x1600 + 300 for borders = 5260x1600 resolution option it only allows me these choices:
And here is how crappy the 5100x1200 option looks... its all distorted Sad
Here is my config file
; SoftTH configuration file
; by Kegetys
;
[config]
; deviceIDLeft/right: Direct3D device ID's of left and right monitor, or 'auto' for automatic
; secondaryWidth/Height: Left & right monitor resolution, or 'auto' to use same as middle screen resolution
; secondaryRefresh: Refresh rate of left & right monitors, or 'auto' for automatic
; secondaryFormat: Secondary device image format, 'RGB32', 'RGB16' or 'YUV12'.
; antialiasing: Level of forced anti-aliasing
; anisotropic: Level of forced anisotropic filtering
; borderSize: Size in pixels of frame border between monitors that is discarded
; noHotkeys: Set to 1 to disable all hotkeys
deviceIDLeft=auto
deviceIDright=auto
secondaryWidth=1200
secondaryHeight=1600
secondaryRefresh=60
secondaryFormat=RGB32
antialiasing=0
anisotropic=0
borderSize=150
sideExtraWidth=0
noHotkeys=0
[Direct3D]
; ** Advanced setting for Direct3D games **
; cylindicalCorretionAngle: Amount of cylindrical correction done, use with sideExtraWidth
; hideNondefaultDevices: Hides all but the default adapter from the game
; forceHorizontalFOV: Forces horizontal FOV to be three times as wide
; forceResolutionWidth/Height: Forces device to be created with this resolution
; force16bitDepth: Force game to use 16bit depth buffer, can improve performance and reduce memory use
; sleepBeforeRead: Time in ms to sleep before reading back buffer data from video card
; useMultihead: Uses multihead features of primary card if available, can increase performance and reduce memory use
; Set to 2 to force multihead initialization even if game doesn't create device with TH resolution
; delayedPresent: When useMultihead enabled, delay primary monitor present to sync with secondary head
; swapOrder: Swap order at which the frame contents are copied
; autoSquash: Automatically squash output to middle monitor if only pretransformed (GUI) elements are drawn
; d3d8dll: Path to D3D8.dll/D3D9.dll to use or auto for automatic (system32 dir)
cylindicalCorretionAngle=0
hideNondefaultDevices=0
forceHorizontalFOV=0
forceResolutionWidth=0
forceResolutionHeight=0
force16bitDepth=0
sleepBeforeRead=2
useMultihead=1
delayedPresent=0
swapOrder=0
autoSquash=0
d3d8dll=auto
[hooks]
; Win32 API hooking settings - Used for some extra compatibility and game-specific fixes
; doHooking: Enable/disable hooks in Direct3D, with OpenGL hooks are always enabled
; doScaleMouseCoordinates: Scale mouse coordinates for getCursorPos to fix games which do not handle negative screen coordinates properly
; doScaleFromLeftScreen: Spread out mouse coordinates from left screen to full width
; doScaleWindowRects: Scale game window rectangle to triplehead size
; mouseXoffset: Number of pixels to offset mouse cursor position in X axis, to fix misplaced cursor due to negative screen coordinates. auto = use X resolution
doHooking=1
doScaleMouseCoordinates=0
doScaleFromLeftScreen=0
doScaleWindowRects=0
mouseXoffset=auto
; Triplehead screenmodes to add to resolutions list (width multiplied by 3 and border added)
; Must be last in this file
[modes]
640x480x60
640x480x75
640x480x85
800x600x60
800x600x75
800x600x85
1024x768x60
1024x768x75
1024x768x85
1280x960x60
1280x960x75
1280x960x85
1280x1024x60
1280x1024x75
1280x1024x85
1600x1200x60
1600x1200x75
1600x1200x85