PeterTh / gedosato

The Generic DownSampling Tool
GNU General Public License v3.0
462 stars 166 forks source link

Support for homeworld: deserts of kharak #340

Open deinlandel opened 8 years ago

deinlandel commented 8 years ago

This game is unity based, so standard downsampling (like Nvidia DSR) does not work.

Also, looks like gedosato is not activating for this game. Tried copying dreamfall chapters config to DesertsOfKharak64 config dir and adding DesertsOfKharak64 to user whitelist - no success.

LordJBeckman commented 8 years ago

Unity Engine 5 in general has some compatibility issues with GeDoSaTo (I can't get Torment to hook at all despite it being 32-bit and D3D9 for example.) and with driver downsampling methods both, in this case it's a 64-bit game whereas GeDoSaTo is still only 32-bit though going by Durante's newer blog posts 64-bit compatibility itself shouldn't be too difficult but he would prefer to get D3D11 compatibility ready first before doing that.

I haven't played the game but it could be that since it's Unity 5 they're also using DirectX 11 which GeDoSaTo doesn't fully support yet either.

Downsampling your desktop by setting the resolution to what you want to use in-game supposedly works although it will rearrange desktop and folder window sizes and such but it's the only way to downsample games that use or force windowed or borderless display modes as far as I know.

PeterTh commented 8 years ago

The latest version I just commited has 64 bit support, but I haven't really tested it yet since I don't have any 64 bit DX9 games. Please try it out and report back.

LordJBeckman commented 8 years ago

Since a few months back Guild Wars 2 has a 64-bit client in addition to the default 32-bit one so as a now free-to-play game (With limits.) that might be one title that could be used to test this new feature with, I replaced the 32-bit client with it myself (Just place it where Gw2.dat is and it'll find the existing installation.) and as of today's update for GeDoSaTo I gave it a try and yeah it's working really well here so far. (Going to try a couple of UE3 games next like say Outlast as there's a couple of them that offer or even require 64-bit binaries while still only supporting DirectX 9 - usually with texture quality suffering if you use the 32-bit binaries -, Vanishing of Ethan Carter was one such game until they did their UE4 re-release, though the "legacy" version is still available.)

Anyways back to this game, for Unity you can usually force D3D9 (Or D3D11) via command-line parameters so if this game is using DX11 by default it might still be compatible with the D3D9 API and thus GeDoSaTo although not all Unity games are 100% working when using a different API than the default (Ori bugs out for example.) but it's generally more compatible than say UE3 is.

http://docs.unity3d.com/Manual/CommandLineArguments.html (The "Unity Standalone Player command line arguments" section.)

I tend to use the same commands for each Unity game so it would look something like this with the D3D API switch added in.

" .\path-to-game\game.exe -popupwindow -nolog -screen-quality Fantastic -force-d3d9 " (Popupwindow makes it true borderless instead of whatever hybrid Unity 4 and 5 uses by default though depending on the game fullscreen has to be either on or off for it to work correctly, nolog just skips writing out the log file to the main data folder although for troubleshooting purposes you might want to leave it and screen quality usually works with the Unity default preset names from fast to fantastic though it might not work for games using their own presets or who only use a single graphics level or how to say.)