The online racing simulator
Can't Get SoftTH To Work...
1
(35 posts, started )
#1 - Jakg
Can't Get SoftTH To Work...
Right, my PC spec is here - http://jakg.ukct.net/rig.gif

The monitors are 2 1280*1024's and a single 1680*1050 display. I'm trying to run LFS (a game Kegety's plays and on the SoftTH site it is listed as working fine). When I run the game i don't get the option for the res I want (4240*1050), even though it's in the mode file. If i go above the "right res" the screen just flashes at me.

What do I do? The displays work in Windows fine!

I'm running Vista Home Premium x64.

I'm running an 8800GTX + 6600GT with the latest Xtreme-G 174.74.

Config File is below...
;
; SoftTH configuration file
; by Kegetys <kegetys[ät]dnainternet.net>
;

[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=1280
secondaryHeight=1024
secondaryRefresh=auto
secondaryFormat=YUV12
antialiasing=4
anisotropic=16
borderSize=119
sideExtraWidth=119
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
1680x1050x60
4240x1050x60

noob check: You are using the dx8 dll and not the dx9 one, right?

Edit: ooh, 1.07, I'm still on 1.05, will test it out...
#3 - Bean0
With the path to the .dll set to auto is it looking in the wrong place assuming the app was written for XP not Vista ?
#4 - Jakg
Erm. You can choose which DLL to use? I dumped everything in the LFS folder.

SoftTH "launches" (I say launches as it's a DirectX hook-in) fine, it just never seems to "communicate" with LFS.

I dont know how to change the DLL path?

EDIT - Thanks for putting it in [CODE] Tags Bob, i was too lazy :P
Ah, the dlls are named individually, so that's fine - I just copied the revelant dll and not the other.
#7 - Jakg
On overclock.net I filled in every bit as accurately as I could. Who knows if my mousepad (or, lack thereof atm) is my problem :P
Ok here is my config file (also for 1.5).
I run 1920x1200 center, 1280x1024 sides.
Things to note:
-SideExtraWidth is -640 (1280-1920)
-I don't list the total resolution in the modes section, just the middle monitor and LFS shows a 4480 (1280 x 2 + 1920) resolution, so softth is adding the widths itself.
-Have you looked at the generated softth.log file?


;
; SoftTH configuration file
; by Kegetys <kegetys[ät]dnainternet.net>
;

[config]
; deviceIDLeft/right: Direct3D device ID's of left and right monitor.
; secondaryWidth/Height: Left/right monitor resolution, set to -1 to use same as middle screen resolution
; secondaryRefresh: Refresh rate of left/right monitors
; secondary16bpp: Use 16bit colour in left and right monitors, this cuts the required bandwidth in half
; antialiasing: Level on anti-aliasing, use this instead of driver enforced setting
; anisotropic: Level of anisotropic filtering, you can also use driver enforced setting
; borderSize: Size of frame border between monitors that is discarded
; useMultihead: Uses multihead features of primary card if available, can increase performance and reduce memory use
deviceIDLeft=2
deviceIDright=1
secondaryWidth=1280
secondaryHeight=1024
secondaryRefresh=60
secondary16bpp=0
antialiasing=4
anisotropic=8
borderSize=0
sideExtraWidth=-640
useMultihead=1

[advanced]
; forceHorizontalFOV: Forces horizontal FOV to be three times as wide
; forceResolutionWidth/Height: Forces device to be created with this resolution
; cylindicalCorretionAngle: Amount of cylindrical correction done, use with sideExtraWidth
; hideNondefaultDevices: Hides all but the default adapter from the game
; sleepBeforeRead: Time in ms to sleep before reading back buffer data from video card
; delayedPresent: When useMultihead enabled, delay primary monitor present to sync with secondary head
; swapOrder: Swap order at which the frame contents are copied
; noHotkeys: Set 1 to disable all hotkeys
; d3d8dll: Path to D3D8.dll/D3D9.dll to use or auto for automatic (system32 dir)
forceHorizonta2lFOV=0
forceResolutionWidth=0
forceResolutionHeight=0
cylindicalCorretionAngle=0
hideNondefaultDevices=0
sleepBeforeRead=2
delayedPresent=1
swapOrder=0
noHotkeys=0
d3d8dll=auto

[hooks]
; Win32 API hooking settings - Used for some extra compatibility and game-specific fixes
; doHooking: Enable/disable all hooks
; doScaleMouseCoordinates: Scale mouse coordinates for getCursorPos to fix games which do not handle negative screen coordinates properly
; mouseXoffset: Number of pixels to offset mouse cursor position in X axis, to fix misplaced cursor due to negative screen coordinates
doHooking=0
doScaleMouseCoordinates=0
mouseXoffset=0

; Triplehead screenmodes to add to resolutions list (width multiplied by 3)
; Must be last in this file
[modes]
640x480x85
800x600x85
1024x768x85
1280x960x85
1280x1024x85
1360x768x85
1920x1200x60

#9 - Jakg
SoftTH Log...

SoftTH: SoftTH v1.07 by Kegetys (D3D8)
SoftTH: Loading configuration C:\Users\Jakg\SoftTH.cfg
SoftTH: Can't open config C:\Users\Jakg\SoftTH.cfg
SoftTH: Loading configuration W:\LFS\LFS\SoftTH.cfg
SoftTH: Load DLL C:\Windows\system32\d3d8.dll (auto)
SoftTH: Activating Win32 hooks...
STHook: Hooks: Attached
SoftTH: Direct3DCreate8 (ver 220)
SoftTH: Adapter 0: nvd3dum.dll, NVIDIA GeForce 8800 GTX with SoftTH v1.07 by Kegetys (D3D8)
SoftTH: Adapter 1: nvd3dum.dll, NVIDIA GeForce 8800 GTX
SoftTH: Adapter 2: nvd3dum.dll, NVIDIA GeForce 6600
SoftTH: Added mode 1920x480 f3c
SoftTH: Added mode 2400x600 f3c
SoftTH: Added mode 3072x768 f3c
SoftTH: Added mode 3840x960 f3c
SoftTH: Added mode 4800x1200 f3c
SoftTH: Added mode 5040x1050 f3c
SoftTH:
SoftTH: CreateDevice 1024x768 75Hz 23bf 77df
SoftTH: Focus window: 'Live for Speed'
SoftTH: Left monitor ID autodetected as 1
SoftTH: Right monitor ID autodetected as 2
SoftTH: Requested mode 1024x768 not triplehead
SoftTH: 2 backbuffer(s): 1024x768
SoftTH: SwapEffect 1, PP Flags 00000000, Behaviour Flags 00000080
SoftTH: Storing function pointers...
SoftTH: Standard mode: 1024x768
SoftTH: Releasing surfaces...
SoftTH: Releasing devices...
SoftTH: InitStuff done
SoftTH: CreateDevice return (1024x768)
SoftTH: Reset main device (3840x1024)
SoftTH: Releasing additional surfaces
SoftTH: Triplehead mode requested (3840x1024 60Hz), enabling TH
SoftTH: Reset OK
SoftTH: Creating additional device windows
SoftTH: Monitor left: -1280x0
SoftTH: Monitor right: 1280x0
SoftTH: Focus window: 4064662 Live for Speed
SoftTH: Creating window (pos -1280x0, size 1280x1024)
SoftTH: Creating window (pos 1280x0, size 1280x1024)
SoftTH: Creating device left.. 32bpp
SoftTH: Creating device right..
SoftTH: initStuff, Reset left device
SoftTH: initStuff, Reset left device done
SoftTH: initStuff, Reset main device
SoftTH: Reset main device (1280x1024) FOO
SoftTH: Releasing additional surfaces
SoftTH: Reset OK
SoftTH: Reset return main device (1280x1024) FOO
SoftTH: initStuff, Reset main device done
SoftTH: GetBackBuffer..
SoftTH: Creating additional surfaces
SoftTH: Create new backbuffer... (3840x1024, f22, ms4)
SoftTH: Creating depth buffer.. (3840x1024, f77)
SoftTH: Creating tmpTex (2560x1024, f22)...
SoftTH: Creating tmpTexSH (639x1024, f22)...
SoftTH: Creating tmpTexB (639x1024, f22)...
SoftTH: Creating tmpTexSHc (1280x512, f22)...
SoftTH: Creating tmpTexBc (1280x512, f22)...
SoftTH: Triplehead: cr: 1280x1024, sr: 1280x1024
SoftTH: InitStuff done
SoftTH: Reset return main device (3840x1024)
SoftTH: Reset main device (3840x1024)
SoftTH: Releasing additional surfaces
SoftTH: Triplehead mode requested (3840x1024 60Hz), enabling TH
SoftTH: Reset OK
SoftTH: Creating device left.. 32bpp
SoftTH: Creating device right..
SoftTH: initStuff, Reset left device
SoftTH: initStuff, Reset left device done
SoftTH: initStuff, Reset main device
SoftTH: Reset main device (1280x1024) FOO
SoftTH: Releasing additional surfaces
SoftTH: Reset OK
SoftTH: Reset return main device (1280x1024) FOO
SoftTH: initStuff, Reset main device done
SoftTH: GetBackBuffer..
SoftTH: Creating additional surfaces
SoftTH: Create new backbuffer... (3840x1024, f22, ms4)
SoftTH: Creating depth buffer.. (3840x1024, f77)
SoftTH: Creating tmpTex (2560x1024, f22)...
SoftTH: Creating tmpTexSH (639x1024, f22)...
SoftTH: Creating tmpTexSHc (1280x512, f22)...
SoftTH: Triplehead: cr: 1280x1024, sr: 1280x1024
SoftTH: InitStuff done
SoftTH: Reset return main device (3840x1024)
SoftTH: Device lost! -2005530519 0 (3020576 2984288)
STHook: Hooks: Detached
SoftTH: ProxyDLL deinit
SoftTH: ProxyDLL Exit

Will fiddle with your config in the morning, thanks for your help.
#10 - Jakg
No matter what I do it just sits there with the other two screens showing the SoftTH logo...
Have you tried making any adjustments to your mouse mat?
#12 - Jakg
Yes, and i've also tried adjusting my seat, but no matter where either is it won't work...

Perhaps I should try wearing a different Shirt?


Sorry I can't offer anything more than facetious advice. Hope you get it sorted.
hey dude, I think you're having the same issue I had when I first got SoftTH going on Vista... I have not been able to get it to work properly unless you force the resolution...

Try changing to this:

deviceIDLeft=auto
deviceIDright=auto
secondaryWidth=auto
secondaryHeight=auto
secondaryRefresh=auto
secondaryFormat=RGB32
antialiasing=0
anisotropic=0
borderSize=0
sideExtraWidth=0
noHotkeys=0

cylindicalCorretionAngle=0
hideNondefaultDevices=0
forceHorizontalFOV=0
forceResolutionWidth=4240
forceResolutionHeight=1050
force16bitDepth=0
sleepBeforeRead=2
useMultihead=1
delayedPresent=0
swapOrder=0
autoSquash=0
d3d8dll=auto

That should get it up and running in Vista. Myself I was unable to get borders or YUV12 working, I needed RGB32 and I needed to force the resolution.. Everyone that I talked to that's running borders and using the "SecondaryWidth" and all that other stuff is running on XP, not Vista. Everytime I did what you're trying to do I was getting one of two problems. SoftTH logo's on the two side monitors and the resolution not showing up properly, or when I was able to get it to work it would just crash the video card driver over and over again literally until I rebooted.

I'm at work right now, i'll post my working SoftTH config for you once I get home if you're still not up and running.

Good luck.
#15 - Jakg
I'm using YUV12 because apparently it suits 8800's better, i'll try your config out thhough - thanks.
#16 - Jakg
Wahey It Works!
Quote from Jakg :Wahey It Works!

with YUV12? or with RGB? I'd like to run it with YUV12 to get a higher framerate, but it won't work on my system. Let me know what config you are able to get working if it's any different than mine.

Thanks.
#18 - need
Could you post you config file please Jakg, I'll be looking to try and get this setup on this system tomorrow, so would be helpfull to have a starting point to work from.
#19 - Jakg
;
; SoftTH configuration file
; by Kegetys <kegetys[ät]dnainternet.net>
;

[config]
; deviceIDLeft/right: Direct3D device ID's of left and right monitor.
; secondaryWidth/Height: Left/right monitor resolution, set to -1 to use same as middle screen resolution
; secondaryRefresh: Refresh rate of left/right monitors
; secondary16bpp: Use 16bit colour in left and right monitors, this cuts the required bandwidth in half
; antialiasing: Level on anti-aliasing, use this instead of driver enforced setting
; anisotropic: Level of anisotropic filtering, you can also use driver enforced setting
; borderSize: Size of frame border between monitors that is discarded
; useMultihead: Uses multihead features of primary card if available, can increase performance and reduce memory use
deviceIDLeft=1
deviceIDright=2
secondaryWidth=1280
secondaryHeight=1024
secondaryRefresh=60
secondaryFormat=RGB32
secondary16bpp=0
antialiasing=4
anisotropic=16
borderSize=119
sideExtraWidth=-281
useMultihead=1

[advanced]
; forceHorizontalFOV: Forces horizontal FOV to be three times as wide
; forceResolutionWidth/Height: Forces device to be created with this resolution
; cylindicalCorretionAngle: Amount of cylindrical correction done, use with sideExtraWidth
; hideNondefaultDevices: Hides all but the default adapter from the game
; sleepBeforeRead: Time in ms to sleep before reading back buffer data from video card
; delayedPresent: When useMultihead enabled, delay primary monitor present to sync with secondary head
; swapOrder: Swap order at which the frame contents are copied
; noHotkeys: Set 1 to disable all hotkeys
; d3d8dll: Path to D3D8.dll/D3D9.dll to use or auto for automatic (system32 dir)
forceHorizonta2lFOV=0
forceResolutionWidth=0
forceResolutionHeight=0
cylindicalCorretionAngle=0
hideNondefaultDevices=0
sleepBeforeRead=2
delayedPresent=1
swapOrder=0
noHotkeys=0
d3d8dll=auto

[hooks]
; Win32 API hooking settings - Used for some extra compatibility and game-specific fixes
; doHooking: Enable/disable all hooks
; doScaleMouseCoordinates: Scale mouse coordinates for getCursorPos to fix games which do not handle negative screen coordinates properly
; mouseXoffset: Number of pixels to offset mouse cursor position in X axis, to fix misplaced cursor due to negative screen coordinates
doHooking=0
doScaleMouseCoordinates=0
mouseXoffset=0

; Triplehead screenmodes to add to resolutions list (width multiplied by 3)
; Must be last in this file
[modes]
640x480x85
800x600x85
1024x768x85
1280x960x85
1280x1024x85
1360x768x85
1680x1050x60

You WILL need to adjust the border bezel compensation.

I'm gonna have a play with YUV12 when my lady friend has gone :P
Quote from Jakg :
snip

You WILL need to adjust the border bezel compensation.

I'm gonna have a play with YUV12 when my lady friend has gone :P

She can wait. Screenshots!

In other news, along the lines of this topic, is it possible to use a dual monitor setup, having the left monitor looking straight out the front as normal but then the right monitor looking right out of the passenger window? I'm getting another 19" and that would rock, on LFS.
#21 - Jakg
Yes, you use SoftTH but comment out the third monitor. There is a performance hit, though.

You'll have to wait for screenshots until my hair is ready and my essays done, though :P
#22 - need
Thanks Jakg, quick test with that config has it working ok, now just need to work on the various border bezel, and various ingame settings to get it tweaked to what I want
#23 - Jakg
YUV12 wont work on my config. FPS is a bit low so i'm gonna try to overclock the main card and up the PCI-E frequency a bit to see if that helps.

Can a mod lock this thread please? I've got two threads about the same thing atm...
Quote from Jakg :Yes, you use SoftTH but comment out the third monitor. There is a performance hit, though.

You'll have to wait for screenshots until my hair is ready and my essays done, though :P

I'd need to use Soft TH?

Could I not just set it up normally with 2 monitors and then use the "Rotate View" option? Then just fine tune it so that its right?
#25 - need
Saw your vid up Jakg, what FPS are you getting now?
I noticed a fairly big jump in FPS by changing the secondaryFormat from RGB32 - to RGB16 (approx 20FPS jump)
1

Can't Get SoftTH To Work...
(35 posts, started )
FGED GREDG RDFGDR GSFDG