Here's a snipit of the config file for SoftTH. Might be worth looking into the multiple methods it uses.
Code:
[Direct3D]
; ** Advanced setting for Direct3D games **
; lensCorrection: Lens correction, set to 1 to enable support. >1 to enable by default
; lensCorrectionEdge: Lens correction edge offset
; 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
; delayedPresent: When useMultihead enabled, delay primary monitor present to sync with secondary head
; d3d8dll: Path to D3D8.dll/D3D9.dll to use or auto for automatic (system32 dir)
; altResetBehaviour: Do not reset lost main device after secondary device initialization (WDDM crash workaround)
lensCorrection=0
lensCorrectionEdge=0
hideNondefaultDevices=0
forceHorizontalFOV=0
forceResolutionWidth=0
forceResolutionHeight=0
force16bitDepth=0
sleepBeforeRead=2
useMultihead=1
delayedPresent=0
autoSquash=0
altResetBehaviour=0
d3d8dll=auto
My curiousity is the methods used for lensCorrection, lensCorrectionEdge, forceHorizontalFOV, autoSquash?