• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

GeDoSaTo - Downsampling from Infinity and Beyond!

mjontrix

Member
Just a random muse - if someone were to attempt to port this into opengl, or earlier versions of directx where would one start?
 

Dr Dogg

Member
edit: Actually, one more thing. What would qualify as good enough for whitelisting a game? Playable while downsampling I'd guess. What I'm wondering specifically is games like Tomb Raider Legend for example, where changing the resolution in-game doesn't work, but changing the resolution through the launcher does.

Yeah thinking about it my whitelist is full of stuff that works but with caveats which might not be what others would be considered working. Assassin's Creed is perfect but you got to remember to use the DX9 exe which Steam doesn't by default. Mass Effect 1 & 2 the UI scales perfectly but 1 needs to be set in the configuration utility before launching the game and both need had have GetCursorPos set to true so might want a profile to go with them. Mass Effect 3 on the other hand scales its UI according to screen resolution so while 3840x2160 on a 27" screen is fine to play the game for me I can see others on smaller screens really suffering. Gears of War, Enslaved and a few of UE games are the same (GoW was impossible to see when to do an active reload at 3840x2160 let alone the madness that is 7680x4320 where the reticule is almost invisible). Likewise I've got a handfull of titles that require setting the resolution via .ini or config files.

Only stuff I don't consider adding is titles that crash on start up, have issues when selecting a downsampled resolution or have rendering issues. Everything else that I know that requires tweaks at my end I stick on my whitelist so it's one less hassle to worry about. Though with some funky executable names it's a bit hard remembering what is what some times. You'd never guess that Sonic and All-Stars Racing Transformed is ASN_App-PCDX9_Final unless you kept notes.

Though saying that since grabbing the latest release a few problematic titles for me like Killer is Dead and Resident Evil 5 work now so I may as well go through everything I've got installed again to round out my compatibility list first.
 

Parsnip

Member
Yeah thinking about it my whitelist is full of stuff that works but with caveats which might not be what others would be considered working. Assassin's Creed is perfect but you got to remember to use the DX9 exe which Steam doesn't by default. Mass Effect 1 & 2 the UI scales perfectly but 1 needs to be set in the configuration utility before launching the game and both need had have GetCursorPos set to true so might want a profile to go with them. Mass Effect 3 on the other hand scales its UI according to screen resolution so while 3840x2160 on a 27" screen is fine to play the game for me I can see others on smaller screens really suffering. Gears of War, Enslaved and a few of UE games are the same (GoW was impossible to see when to do an active reload at 3840x2160 let alone the madness that is 7680x4320 where the reticule is almost invisible). Likewise I've got a handfull of titles that require setting the resolution via .ini or config files.

Only stuff I don't consider adding is titles that crash on start up, have issues when selecting a downsampled resolution or have rendering issues. Everything else that I know that requires tweaks at my end I stick on my whitelist so it's one less hassle to worry about. Though with some funky executable names it's a bit hard remembering what is what some times. You'd never guess that Sonic and All-Stars Racing Transformed is ASN_App-PCDX9_Final unless you kept notes.

Though saying that since grabbing the latest release a few problematic titles for me like Killer is Dead and Resident Evil 5 work now so I may as well go through everything I've got installed again to round out my compatibility list first.

I was going to suggest that we should start in-line commenting the executables, something like ShippingPC-SkyGame #Dark Void but that doesn't actually seem to work. Maybe there's something similar that's possible. Both on their own line work of course, but that's going to make the list pretty long if everything has two lines.
 

Alo81

Low Poly Gynecologist
Hi all

First of all just want to thank the author Durante. This is simply the greatest thing to happen to PC gaming since Boris made ENB series.

As the topic states... Skyrim gives me a CTD each time I try loading GeDoSaTo v0.9 with ENB series v0.250
I read a comment by Boulator2024 in the compatibility list that all that is needed to change in the enblocal.ini file is this line...

ForceBorderlessFullscreen=true

Still no luck after attempting this change. Can anyone confirm with screenshots that skyrim is working with ENB and GeDoSaTo?
Is there a specific version of ENB, SKSE or any other important setting in the enbseries.ini, skyrim.ini or something else that may need to be changed?

Additionally, I'm attempting to render the game at 3200x2400 with a present resolution of 2048x1536. Is 4:3 aspect ratio supported or does this matter? (I'm using a CRT monitor)

EDIT: I never see the overlay of data from GeDoSaTo even when I attempt without ENB.

Thank you
-far327

Enable "interceptonlysystemdlls" but that isnt guaranteed to work either. If it doesnt, then just hope it might get better in the future.

Also! Currently, it requires that your PC's system drive is the C drive, so if your OS is installed on a different one then the option wont function at all.
 

Durante

Member
I was going to suggest that we should start in-line commenting the executables, something like ShippingPC-SkyGame #Dark Void but that doesn't actually seem to work. Maybe there's something similar that's possible. Both on their own line work of course, but that's going to make the list pretty long if everything has two lines.
I agree, just thought the same thing recently actually.

I will think about that some more (the syntax of it) and then implement it. I'd like to do it in a way which also allows people to add some compatibility notes (like "set resolution in config files"), and which then allows GeDoSaTo to display the name of the game it thinks is running and the notes, if any, in the overlay.

Just a random muse - if someone were to attempt to port this into opengl, or earlier versions of directx where would one start?
Well, that's quite a lot of work. To do it right, all the API-specific functionality would need to be abstracted away (so far, I just did that for buffer management), and each of these functional units would have to be implemented for each API. And then the API needs to be intercepted.

In principle, OpenGL should be somewhat easier actually than recent versions of DirectX, since it's entirely procedural with a C-based API, so you skip the entire detouring object generation / hooking required for DX and can just hook functions directly.
 

Dr Dogg

Member
I was going to suggest that we should start in-line commenting the executables, something like ShippingPC-SkyGame #Dark Void but that doesn't actually seem to work. Maybe there's something similar that's possible. Both on their own line work of course, but that's going to make the list pretty long if everything has two lines.

I think at the end of the day if stuff works then the end user doesn't really need to know what exe is called what but hey options are nice. I've been keeping track of a few things via my own spreadsheets and their a bit more informative and accessible than the whitelist.

Prior to profiles being added I had about 20 different config files of my own the I'd swap out for certain games but tailored to resolutions I knew I could push. Then I have a load more for 2.35:1 resolutions but in no way do I expect the majority of use cases to be as whacky as mine.
 

Parsnip

Member
Mini Ninjas kind of sort of works, but not on borderless mode. Also, colors are off, and the little guy is missing his shadow too. Another one for the unfortunate ui scaling column as well.
ninja_by_majorparsnip-d7qsfj5.jpg

I agree, just thought the same thing recently actually.

I will think about that some more (the syntax of it) and then implement it. I'd like to do it in a way which also allows people to add some compatibility notes (like "set resolution in config files"), and which then allows GeDoSaTo to display the name of the game it thinks is running and the notes, if any, in the overlay.
Sounds good.
 

Dr Dogg

Member
Mini Ninjas kind of sort of works, but not on borderless mode. Also, colors are off, and the little guy is missing his shadow too. Another one for the unfortunate ui scaling column as well..

Huh? I always had issues with GeDoSaTo and Mini Ninjas. Always would crash (and it just did). Did play a fair section of it using custom resolutions through Nvidia Control Panel though I wasn't keeping an eye out for shadows.

Also seeing as it's just out Abyss Odyssey looks like a goer (though I've put about 5 mins worth of effort in :p) though need to adjust the res through config files but it's a UE3 game so the usual stuff. Seems all my UE3 problem games are working now as well.
 

far327

Neo Member
Enable "interceptonlysystemdlls" but that isnt guaranteed to work either. If it doesnt, then just hope it might get better in the future.

Also! Currently, it requires that your PC's system drive is the C drive, so if your OS is installed on a different one then the option wont function at all.

This did the trick ^

I didn't even have to change ForceBorderlessFullscreen=true in the enblocal.ini file.

14663514575_30e705f936_o.png


14476840958_0a30869a3f_o.png
 

Durante

Member
Mini Ninjas kind of sort of works, but not on borderless mode. Also, colors are off, and the little guy is missing his shadow too. Another one for the unfortunate ui scaling column as well.
This looks like something which may be fixed by yesterday's backbuffer format commit.
 

Parsnip

Member
Huh? I always had issues with GeDoSaTo and Mini Ninjas. Always would crash (and it just did). Did play a fair section of it using custom resolutions through Nvidia Control Panel though I wasn't keeping an eye out for shadows.
Mysterious. I don't have any special settings flipped on my end. What's more interesting is that trying to switch to my NvCP downsampling resolution (1800p) crashes the game, with or without GeDoSaTo active. :D Does yours crash immediately, or sometime later? I didn't play far at all, just did some running around.

https://www.youtube.com/watch?v=7nP24iugOz4

This looks like something which may be fixed by yesterday's backbuffer format commit.
Nice, waiting for the next release starts now.
 

Dr Dogg

Member
Mysterious. I don't have any special settings flipped on my end. What's more interesting is that trying to switch to my NvCP downsampling resolution (1800p) crashes the game, with or without GeDoSaTo active. :D Does yours crash immediately, or sometime later? I didn't play far at all, just did some running around.

https://www.youtube.com/watch?v=7nP24iugOz4

Either on start up (this is all the time with GeDoSaTo so I might try again after deleting my local settings files and start from scratch) and sometimes with NCP resolutions when setting them. Was a bit finicky around 3200x1880 but 2560x1440 and 2560x1080 were fine. I think there were some quirks with 2560x1080 where sometimes the image was cropped others it adjusted the FOV fine.

I'll put it on top half of my to-do list but I really need to start deleting stuff as I'm fast running of of disc space. I'm becoming a hoarder with all these new toys to play with.
 
Old ass games resuscitated by emulators and revived by GeDoSaTo


http://abload.de/img/nulldc_win32_release2jdqhl.jpg

Using nulldc. It's the only Dreamcast emu that uses dx9 and that has that extra geometry feature' to show games in widescreen when they were intended for 4:3. Mostly broken of course and only serves for some screenshots when it works. You'd probably better use Demul for real gameplay as it has native supersampling -but only up to x6 native res which is weak sauce compared to GeDoSaTo :D-

Unfortunately nulldc doesn't work right off the bat with GeDoSaTo. I had to so some stupid modifications in the source-code because it would crash when creating 0 sized textures at the start of the emu. No idea why. Their fullscreen implementation seems really weird.
 

BONKERS

Member
No, I don't think so. I can make user-level code (that is, games) think whatever I want them to think (though as we can see with all these small details it can be a very involved process), but I can't make the driver think it's running at a different resolution.

I'm not sure it's a resolution thing, Just seems like something along the way gets interrupted it seems.

Thanks anyway
 

robgrab

Member
I really appreciate the spreadsheet of compatible games that's been created so far. It's been very useful. Perhaps a separate column could be added showing whether a game usues standard vs. alternate injection. I've had to learn the hard way because games that don't work using standard injection tend to hard lock my machine and I have to manually kill the power. Games that've hard locked my machine using standard injection so far are The Witcher 2 and Bioshock 2. Other games just simply crash, like Trine 2 and Far Cry 2. Those run just fine using alt injection.

I'd be happy to share my results in order to help others avoid the same problems. I'm just wondering if it's a universal thing, for example does The Witcher 2 requires alt-injection for everyone or can some people get it to work using standard?
 
Still getting a lot of crashes in Borderlands 2 while alt-tabbing or switching resolutions. I've tried a few of the new settings in version 9 but nothing seems to fix it.

Also, would any of the mouse settings fix the issue where I can click outside the game window when downsampling which causes the game to be minimized?
 
I really appreciate the spreadsheet of compatible games that's been created so far. It's been very useful. Perhaps a separate column could be added showing whether a game usues standard vs. alternate injection. I've had to learn the hard way because games that don't work using standard injection tend to hard lock my machine and I have to manually kill the power. Games that've hard locked my machine using standard injection so far are The Witcher 2 and Bioshock 2. Other games just simply crash, like Trine 2 and Far Cry 2. Those run just fine using alt injection.

I'd be happy to share my results in order to help others avoid the same problems. I'm just wondering if it's a universal thing, for example does The Witcher 2 requires alt-injection for everyone or can some people get it to work using standard?
I think an even better option would be to have separate whitelists for each injection method. An automatic means of selecting injection method would simplify usage greatly if at some point a global whitelist becomes available.
 

Durante

Member
I think an even better option would be to have separate whitelists for each injection method. An automatic means of selecting injection method would simplify usage greatly if at some point a global whitelist becomes available.
I agree in principle, but that's not really possible. Basically, the injection method is already selected and active (and needs to be selected) before it's even possible for the injected instance of GeDoSaTo to access the whitelist.

If anyone has any concrete suggestions as to how to get around this I'm all ears of course.
 
I agree in principle, but that's not really possible. Basically, the injection method is already selected and active (and needs to be selected) before it's even possible for the injected instance of GeDoSaTo to access the whitelist.

If anyone has any concrete suggestions as to how to get around this I'm all ears of course.

Can you actively run both injectors at once?
 

Parsnip

Member
I'm curious if the alternate injection is a permanent option. As in, do you think that at some point down the line it might be possible to improve the default injection in such a way that would render alternate injection obsolete?



Anyways, I did some testing with Hitman Blood Money, to expand on what's written on the google doc. It (probably) uses some version of the same engine as Mini Ninjas, and is also missing shadows at the moment. No discoloration though. And there seems to be some lighting differences (look at the way sun behaves with the roof), but maybe that's related to the missing shadows too. The item selection menu also gets messed up at higher resolutions and part of the item rotation goes outside of the screen. It's playable as long as you can read the text, but that gets pretty hard at higher resolutions.

Other than that, seems to work alright.
It's interesting to see the way the water distortions amplify with higher resolution.

Bionic Commando seems nearly perfect. It doesn't like borderless and has bad ui scaling, that seems to be it. Someone who has other Diesel engine games should test those. I didn't know that Payday 2 runs on Diesel as well, must be heavily modified at this point.
 

Durante

Member
I'm curious if the alternate injection is a permanent option. As in, do you think that at some point down the line it might be possible to improve the default injection in such a way that would render alternate injection obsolete?
Actually, what might be viable is improving the alternate injection so as to make the default obsolete.
(Of course, for the user the result is the same)

The problem is that I'm sure that if I ever try to do that and remove one of the options, someone will find an obscure game that only works with that one :p
 
I never use default injection since the alternate one has been out.
It's really convenient since I don't have to launch anything else than the game. I'm pretty positive default injection is useless. And I tried a LOT of games/apps/emus.
 

oxidax

Member
Pretty cool game. Im feeling it kinda buggy? or maybe its just me idk. It just crashed on me but Darksiders 2 just crashed as well and that usually doesn't happen. I just added it to the list.

 

robgrab

Member
I tried Deadlight last night and it worked fine except there were freezes in gameplay every few seconds. It looked dramatically better than driver based downsampling though.
 

TheTrain

Member
STALKER: Lost Alpha doesn't seem to work w/ 1.3002 Patch
I've tried almost every combination with Gedo 0.9 but it crashes on startup. Oh, I tried the SweetFX trick too.
 

robgrab

Member
I'm having a problem running Bioshock 2 with Flawless Widescreen and GeDoSaTo. The HUD doesn't scale properly when I run them together. It moves all the HUD elements into the upper left hand corner like it's running at a different resolution. Rather than post the full size screenshots here I created a little photo gallery on Flickr to demonstrate what I'm talking about.

https://flic.kr/s/aHsjZ97jnF

I definitely prefer the smaller size of the HUD elements, I just wish they would be properly placed. Plus the reticle is completely usuelss like that.

Nevermind: I disabled HUD Fix in Flawless Widescreen and that fixed it but I sure wish that HUD scaled down like it does in Bioshock Infinite.
 
I tried to compile everything from scratch at my work place and it took me a good hour to get everything up and running (I get distracted easily and yeah the whole process is a bit of a pain in the ass to say the least).
So I decided to include everything -all the dependencies- in a ready-made package so that new-comers can easily get GeDoSaTo compiling hopefully in 10 minutes :

For Visual Studio 2012 (msvc-11) :
- Download the Dependencies archive and unzip it at the root of your C:\ drive
- Download the DirectX SDK August 09 and install it at the default location
- Configure the GeDoSaTo Visual Studio project like this (include directories) and this (libraries directories) -sorry my IDE is in french and yea it often surrenders-
- Disable everything in 'Build events' (in the same Properties Page as previous step) if the compiler complains about 'missing ruby version.rb'

Going to post this on Durante's blog as well if it's useful to anyone. I know it will be for me when I move to some other computer
 

Alo81

Low Poly Gynecologist
I tried to compile everything from scratch at my work place and it took me a good hour to get everything up and running (I get distracted easily and yeah the whole process is a bit of a pain in the ass to say the least).
So I decided to include everything -all the dependencies- in a ready-made package so that new-comers can easily get GeDoSaTo compiling hopefully in 10 minutes :

For Visual Studio 2012 (msvc-11) :
- Download the Dependencies archive and unzip it at the root of your C:\ drive
- Download the DirectX SDK August 09 and install it at the default location
- Configure the GeDoSaTo Visual Studio project like this (include directories) and this (libraries directories) -sorry my IDE is in french and yea it often surrenders-
- Disable everything in 'Build events' (in the same Properties Page as previous step) if the compiler complains about 'missing ruby version.rb'

Going to post this on Durante's blog as well if it's useful to anyone. I know it will be for me when I move to some other computer

For anyone who hasn't yet tried compiling GeDoSaTo, you should know this is a god damned GODSEND.

Thank you so much. I already went through the process of finding, installing, reinstalling, removing, and moving everything in order to get it right, but this should make it way easier for people in the future. I'll be adding that post to the OP.
 

Storm360

Member
Has anyone ever managed to get Halo 2 Vista working?

Other games work fine, but Halo 2 Vista seems to never go above 1080p in the resolution selection.
 
Toying around with the bloom shader applied to Dolphin. I disabled the one in Twilight Princess and applied Durante's instead


Porting the bloom shader to Dolphin is dead easy. It's just a copy/paste plugin. Forcing Dolphin to downsample is less easier as no override/forceAlwaysDownsamplingRes scenarii seem to work here : I really have to force/set the dowsampling values right before the CreateDevice call so that it takes the downsampling path. Kinda awkward :/ (not to mention I have to bypass the GetWindowRect interception so it fits the screen properly)

I'm starting to get the hang of Github so I should be able to upload the changes to you Durante. Or we could wait for GeDoSaTo to support D3D11 as DX9 is supposed to be removed from Dolphin anyway :p

DX9 has actually already been removed months ago!
Yes ! forgot I was using an unofficial DX9 build
 

Alo81

Low Poly Gynecologist
Toying around with the bloom shader applied to Dolphin. I disabled the one in Twilight Princess and applied Durante's instead



Porting the bloom shader to Dolphin is dead easy. It's just a copy/paste plugin. Forcing Dolphin to downsample is less easier as no override/forceAlwaysDownsamplingRes scenarii seem to work here : I really have to force/set the dowsampling values right before the CreateDevice call so that it takes the downsampling path. Kinda awkward :/ (not to mention I have to bypass the GetWindowRect interception so it fits the screen properly)

I'm starting to get the hang of Github so I should be able to upload the changes to you Durante. Or we could wait for GeDoSaTo to support D3D11 as DX9 is supposed to be removed from Dolphin anyway :p

DX9 has actually already been removed months ago!
 

Parsnip

Member
Wait, doesn't Dolphin (and PCSX2) both have custom internal resolutions, doesn't that work as downsampling already? What am I missing here? Or am I just misremembering it.
Unless there's some benefit to using GeDoSaTo over that of course?
 
Wait, doesn't Dolphin (and PCSX2) both have custom internal resolutions, doesn't that work as downsampling already? What am I missing here? Or am I just misremembering it.
Unless there's some benefit to using GeDoSaTo over that of course?

Aside from the post processing and the filtering i don't see any advantages. Also with dx9 renderer for dolphin being deprecated you don't get the latest fixes.
 

jediyoshi

Member
Wait, doesn't Dolphin (and PCSX2) both have custom internal resolutions, doesn't that work as downsampling already? What am I missing here? Or am I just misremembering it.
Unless there's some benefit to using GeDoSaTo over that of course?

PCSX2, yes. Dolphin doesn't support arbitrary resolutions though, highest option is 4x res. Realistically though you're hard pressed to get more IQ any further. Might be useful if the screens you're looking to capture are actually in their native res.
 
FarCry 1 should be working next release.
Stills runs at 60 fps at that res I think


Another game that require -at least for me- to append C:\Windows\System32\D3d9.dll to the AppInit_DLLs registry key for the overlay to show up and the dowscaling to happen. I guess that forces an early d3d9 hook which would happen later... or not at all... I still don't know :/
I know it happens with Dolphin unofficial DX9 as well if you guys are interested in solving this :)D)


Splinter Cell Chaos Theory. Used to be "stuck" at 2720x1700 but the game can go much beyond that. At 6720x4200 (above pic) it's still very smooth. Problem is that you need to modify in the source-code the GetClientRect behaviour so that it uses the PresentWidth/PresentHeight instead of the RenderWidth/RenderHeight. I tried hard not to do that but it's mandatory for the game to launch (in borderless window -anything else crashes-)

Also I need to stop putting bloom everywhere this shader is so god damn good :p
 

HRose

Banned
Durante, could you comment on what I asked before and on the blog as well?

The idea is to scale the image to an arbitrary format and then output it as it is at the chosen screen resolution.

Meaning that you can manipulate aspect ratio by scaling to a certain size, and then print that screen to whatever resolution without changing the aspect ratio.

So, you take the internal resolution, scale it, and then print as it is but independently from actual screen resolution.
 

Alo81

Low Poly Gynecologist
Durante, could you comment on what I asked before and on the blog as well?

The idea is to scale the image to an arbitrary format and then output it as it is at the chosen screen resolution.

Meaning that you can manipulate aspect ratio by scaling to a certain size, and then print that screen to whatever resolution without changing the aspect ratio.

So, you take the internal resolution, scale it, and then print as it is but independently from actual screen resolution.

To clarify, are you wanting black bars, or stretching?
 
Lol sorry for posting so many shots but I'm like a kid in a candy store with this toy :


Runs at 30fps at 10K :p
No need for a particular GeDo configuration. Just grab the ENB convertor_dx8_dx9_v0018
The hardest part was getting Vice City to work under Windows7 x64 :/


Max Payne 1 lol.
None of the existing d3d8 to d3d9 convertors worked so I had to hack actboy168 Direct3D8to9 convertor so it bypasses some hardware validation checks. Grab the modified d3d8 dll and drop it in your Max Payne folder. It is compatible with Widescreen HUD.mpm. Game can easily go beyond 10K I think

Has anyone ever managed to get Halo 2 Vista working?
Other games work fine, but Halo 2 Vista seems to never go above 1080p in the resolution selection.
Yeah this game is a mess I gave it a few tries with GeDoSaTo but it requires the DSFix/DPFix treatment indeed (didn't work for me though)
 

Alo81

Low Poly Gynecologist
Lol sorry for posting so many shots but I'm like a kid in a candy store with this toy :



Runs at 30fps at 10K :p
No need for a particular GeDo configuration. Just grab the ENB convertor_dx8_dx9_v0018
The hardest part was getting Vice City to work under Windows7 x64 :/

That looks better than i would have expected!
 
So, you take the internal resolution, scale it, and then print as it is but independently from actual screen resolution.

I'm not EXACTLY sure what you're asking... but I think I know. I'll share my own experiences anyway and how I do it.

These are screenshots I've taken with GeDoSaTo in Borderlands 2.

2.35:1 (7680x3240)

2:1 (7000x3500)

3:4 (3900x5200)

I have a 2560x1440 monitor. I have custom resolutions I set up in the nvidia control panel in those aspect ratios. 2560x1080 (for 2.31:1), 2560x1280 (for 2:1), and 1620x2160 for 3:4. Those are the resolutions I tell GeDoSaTo to downsample to. And they display in the proper aspect ratio as you're playing. The wide ratios get letterboxing and portrait ratios get pillarboxing.
 

Durante

Member
So basically, the feature request above simply boils down to keeping the aspect ratio of the original image when downsampling, right? If so, I can do that.
 
Is it possible for GeDoSaTo to recognize more than 1 resolution? That way I wouldn't have to close the game, open the settings and change the res, then start the game back up again.
 
Top Bottom