My menu jumps from the left to the right screen when I select the custom resolution, but the 'M' key still does nothing but beep and view remains centered.
yeah, this is the normal mode i use for my 2 monitors but if i use this, i can't see a screenresolution which is double the width of one screen, one the tripple width resolution is available. and if choosen this, lfs crashes with an error
the m key is alway integrated, but you dont need it anymore
in the cfg-file is a new line wich defines the mode:
1 - steeringwheel left
2 - steeringwheel right
when you move the mouse in menus for example the mode changes to menu-mode so that you can klick all buttons. after 1 second without any mouse-move the screen changes back into driving mode.
Great!
We must put in the screen 3840x1024 and launch the game once that the mouse does not move any more, the screen goes like on the screens of the first page
You should be able to change that with the interface offsets and scaling adjustments. I think this dll works by rendering a triple-screen image, and then ditching either the left or rightmost third. For 3D that's fine but you need to shift the text around.
I would love to use this but am having troubles. I've got one screen capable of 1680 x 1050 and another that can do 1280 x 1024 but i cannot get this to work on Vista. My XP installation has just become kaput!!
OMG I have been waiting ages for this! I am playing with camera turned right and it looks weird. I will try it now.
OK, tried it. A new resolution appears in game 3840x1024 and if I choose it then the wheel is in center of the left screen, but if I move the wheel centers again, I have to let the mouse a few seconds and then it comes back to the left....if I press a key the same happens...funny.
Anyway. SouHunta, I see you do this trick with a new resolution...the problem is that it reduces framerate and asks the game to render 3840x1024 instead of 2560.
There is another way to do it, a bit simpler.
In d3d8.dll, hook the function SetTransform(UINT transformID, D3DMatrix* pMatrix)
when transformID=3 what you have is the projection matrix which transforms coordinates in camera view into screen coordinates.
The matrix is like that:
a 0 0 0
0 b 0 0
0 0 c 1
X Y d 0
If you change the two numbers noted X and Y (by default they are equal to zero), you move the center of the FOV...-0.50 0 should move the view half a screen left without even changing the resolution
Then you call the real directx setTransform function and that's it.
This is so simple that it should be an option in LFS config file. I remember asking for that before.
with Testpatch Y14 the fake resolution doesn´t work with anti-aliasing activated in-game. But you can use AA by activating it over ther driver setting (nvidia control panel or so)
When someone will convert the dll to other games or to the new testpatches, i attach it to this post. so have fun with it.
Thank you for the code. I tried to implement the little idea above, and it works (In post above I did a mistake, X and Y to change are one raw upper). So I just override the method SetTransform and the perspective center is translated left or right on the screen. No need for another resolution->framerate is unchanged.
So for example in d3d8.cfg you put -0.50, and in game the perspective is centered on the left screen. +0.5 and you have it on the right screen...and you can use anything from -1 to 1 for adjustment. For people using 4 screens, -0.25/+0.25
Limitations:
*It moves all 3d objects, not 2D->in garage the car translates, not the GUI....but in fact this is good because all GUI buttons remain on screen.
*It reduces the FOV (to avoid clipping on side) and you have to adjust it once in game to correct.
So if you are interested....here is the simple version for LFS on dual screen:
I have some difficulties with this one. When I try to change the resolution, it just gives me a black screen. And no, I don't have AA on (Because I use normal Y-patch. Even turned AA off from nvidia control panel).
Only thing I can guess is that my other monitor uses 1680x1050 and the other uses 1024x768