Closed deton24 closed 4 years ago
For some reason DDrawCompat does not work correctly with this game. WineD3D tests each screen mode one-by-one which is why it takes so long. In the d3d8to9 project I cached the screen modes to fix this. But I have not put in a fix like that for ddraw yet.
There is a lot more that needs to be done to fix this properly with dxwrapper. However, I have the GOG version of Raymond 2. It is using the dgVoodoo 2 Glide driver rather than DirectX 6. The updates below should work for you. Download the update below and extract it to the Raymond 2 folder (overwrite any existing file). This has a few other enhancements in it also, such as converting dinput to dinput8 and forcing higher quality sound.
Here is the download: Raymond2.zip
It looks like your own version of Glide wrapper with some DirectSound implementation :)
Thanks!
Generally you can change renderer to DX6 on GOG version. Just follow the steps here: https://pcgamingwiki.com/wiki/Rayman_2:_The_Great_Escape#No_options_to_choose_in_GXSetup_.28GOG.2FUplay_versions.29
I think incompatibility of your main DX6 ddraw wrapper don't have to be connected with fast detecting of resolution. The newest version of wine wrapper don't have this problem, and renders this game correctly.
I was able to change the game to use DirectX6 and see the issue. I did not create DDrawCompat and I have not looked into fixing it since it is maintained by someone else and I have a lot of other items I am looking into. The dxwrapper does have support for converting DirectX1-7 into DirectX9 which is about 75% complete for 2D apps. However Raymond uses 3D and I have not implemented 3D yet.
As far as WineD3D it is good to hear that they fixed the delay issue on the latest version. However WineD3D can cause other performance issues since it converts DirectX into OpenGL. I suspect using Glide directly should be faster than using WineD3D. I did not write the Glide wrapper either. That was done by dgVoodoo.
Anyways it will still be quite sometime before I will have dxwrapper able to convert DirectX1-7 3D into DirectX 9.
Thanks for your replies!
Yes. WindeD3D has FPS drops, that's why I was using your wrapper before, when it was working. It worked like a charm. Just all overlays needed to be hidden/disabled to avoid performance issues.
Wined3d would probably have far better performance if amd's opengl driver didn't suck so hard
The issue is caused by the game interpreting the available amount of VRAM as signed, so it often overflows into the negative, and the game uses the lowest scale textures that it can to try and "fit" into the negative VRAM. This should be able to be fixed by clamping the available VRAM reported to 2GB or less. DxWnd can fix this by it's "Limit Available Resources" fix.
@RibShark When will your "Better Rayman 2" fix be coming out ? 👀
@RibShark When will your "Better Rayman 2" fix be coming out ? 👀
Maybe soon, I want to try and hook nGlide and add MSAA/Anisotropic support, external config loading, and support for starting in Windowed mode. Then I can use nGlide with the fix rather than dgVoodoo (which has some vsync issues with Rayman 2).
Did you notify the dev about the "vsync issues"? Anyway, eager to try your "all-in-one" fix for the game.
Did you notify the dev about the "vsync issues"? Anyway, eager to try your "all-in-one" fix for the game.
Yes, he is aware of them.
This should be able to be fixed by clamping the available VRAM reported to 2GB or less.
dxwrapper already has this feature. By default it limits the VRAM of all ddraw games when using the ddraw wrapper. Below is a copy of the latest wrapper. I tested with Raymond 2 using DirectX 6 and it seemed to work fine with this wrapper. This also is able to convert Raymond 2 from using dinput to using dinput8.
Download here: ddraw.zip
GODDAMN! It works! You rock, elishacloud!
Attached INI is also required to fix the problem (otherwise the bug still exists).
As in provided link before, If anyone has error of enumerating resolutions, run Rayman 2/GXSetup in XP SP2 compatibility mode or make ubi.ini with such content:
[Rayman2]Choose = 1GLI_DllFile=GliDX6 GLI_Dll=DirectX6 GLI_Driver=display GLI_Device=Direct3D HAL GLI_Mode=1 - 1920 x 1080 x 16 GLI_DllFile=GliDX6 Language=English
Curiosity. In Uplay version with Wine wrapper, it is written "HEL" instead of "HAL" in original ubi.ini provided.
This new ddraw library introduced FPS drops in certain places (e.g. start Fairy Glade and turn back on the small bridge ahead). It looke like the new ini itself fixes the problem. \Stub\ddraw.dll from the last official release works without these FPS drops, and graphics are fine.
Once more, thank you.
Ribshark, you too.
edit. As far as I remeber testing v1.0.6334.21, it wasn't able to launch the game. Linked zip post above worked: https://github.com/elishacloud/dxwrapper/files/3268068/ddraw.zip But v1.0.2383.20 was faster: https://github.com/elishacloud/dxwrapper/releases/tag/v1.0.2383.20
Just use ini from zip above
Closing.
Might be useful. Dege from dgVoodoo repaired literally all DX6 (and Glide) 30 FPS lock issues by modifying the game renderer. More technical info: https://www.vogons.org/viewtopic.php?p=855828#p855828
Thanks. Though dgVoodoo works very different from dxwrapper and the dgVoodoo code is not available. Dxwrapper is focused on generic engine that works for all games. That looks like a code update for a specific game.
BTW: I implemented a generic feature like that in dxwrapper called AutoFrameSkip
. The idea is to prevent the game from waiting for the next v-sync. It is not a perfect feature, but it solves the same issue.
Thanks for the response!
Shame that AutoFrameSkip
is only available in currently unsupported in Rayman 2 Dd7to9
.
Regards
Rayman 2 started to have blurry and distorted graphics.
On my previous HD 7xxx and 1.8.8.1 drivers it worked. It helped on FPS dips in comparison to wined3d from Uplay.
Now I have 19.3.4 drivers with RX xxx.
The game started to have blurry and distorted graphics DX6 in GXSetup set, ddraw, ini, and dxwrapper placed in Rayman 2 folder. In the second attempt I tried all the files.
What is more interesting, now without any wrapper on DX6, there is also bad graphic bug. Previously it worked correctly.
On WineD3D provided with Uplay it works fine, but you need to wait ~1 minute on small white screen, untill the game shows up. It wasn't happening before too.
I checked all options in sections: AppCompatData Compatibility
to set = 1
but it didn't changed anything.
In the second attempt I tried to set DDrawCompat = 1 but it gives black screen (yes I waited above 1 minute, and nothing).
In the third attempt I copied all the files from stub and root folder, but still the same graphical glitch.
I tried also running Dxwnd in background, later with dxxwnd =1 in config, but still nothing.
Later I added Rayman2.exe to DXWnd according to instruction here: https://pcgamingwiki.com/wiki/Rayman_2:_The_Great_Escape#Windowed
But still nothing. Also, DX1~6, DX9, Auto, forces Hel, Optimize CPU, DGI, Hybrid tested in DXwnd.