• 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!

Durante

Member
I'm not surprised by Dota, if you always have that space taken up by fully opaque UI then rendering it would be almost criminal, optimization wise.

Is that something one would have to configure on a game-by-game basis or could you integrate a blanket function that uses game-specific hash codes?
The latter. Once you know when the UI happens it should be rather easy to suppress all subsequent rendering.
 

Alo81

Low Poly Gynecologist
Seems like I found a good code for BL2 and Dota 2.
Dota 2 is weird though, it seems to not actually render the full image under the hud. I mean that's what it looked like from the dumps as well, but I didn't believe it until I saw it myself. Also a fair warning, I only tried it a little in the tutorial, so it's not exactly well tested.

Couldn't find anything suitable for BL1 at a quick glance.



Borderlands 2
injectPSHash 13dcae93
==========
Dota 2
injectPSHash 7d2f6d46
injectDelayAfterDraw true

That Dota2 thing totally makes sense though yeah. At least it makes screenshots easily croppable without wasting too much screen info. Good find bud.
 

Parsnip

Member
By the way, is there a better way to keep my own fork up to date than what I've been doing? I've been making pull requests to my direction before I commit my own changes to avoid conflicts, because I have no idea how to actually resolve a conflict if one crops up :p
 

Durante

Member
I don't really know how to use the github interface for that, sorry.
(I use the command line git client and would just do a "git pull origin master" to keep up to date)
 

Parsnip

Member
I don't really know how to use the github interface for that, sorry.
(I use the command line git client and would just do a "git pull origin master" to keep up to date)
Ah well, maybe I'll look into the command line stuff at some point. I've been using the desktop client and I guess it has PowerShell command line under there.

is there a setting I'm missing for DOTA2?
my mouse gets off-placed when I enable this
I submitted a config for Dota 2, it has these two mouse fixes enabled.

# Fix for edge scrolling
modifyGetCursorPos true

# Fix for mouse positioning
interceptWindowProc true
 

wilflare

Member
Ah well, maybe I'll look into the command line stuff at some point. I've been using the desktop client and I guess it has PowerShell command line under there.


I submitted a config for Dota 2, it has these two mouse fixes enabled.

# Fix for edge scrolling
modifyGetCursorPos true

# Fix for mouse positioning
interceptWindowProc true

thanks man! I'll make a custom profile for my DOTA2 with those settings now :)
 

robgrab

Member
Talking about AO. I don't if you would call that AO at all but I thought it looked cool



This is Shenmue on nulldc. I'm no 3D guru but I don't think the game/emu gives enough depth information to do a proper occlusion. Looks more like a photoshop canvas (?) filter.
I'm drunk.


Make sure you disable the Sweetfx packed with the Ice3.0 archive

Thank you so much! It was as simple as changing a single line of text.
EnableProxyLibrary=false

EFLC works perfectly now with iCEnhancer and GeDoSaTo! I have it running at 3840x1620 getting between 40-60fps. Even at 4K though aliasing is still a problem. The minimap in the corner is a little janky but that's no biggie. I haven't checked yet but I also heard that AO from the ENB doesn't work with GeDoSaTo. How would I use the AO in GeDoSaTo, or that even possible?

UPDATE: Okay as it turns out the AO does seem to be working with iCEnhancer and GeDoSaTo because I can toggle it off and on. The problem was I also tested it with iCEnhancer 2.1, which doesn't support AO or Skylighting.

14572944390_b124fd3818_o_d.png
 
Borderlands 2
injectPSHash 13dcae93

Almost.

HUD:

Hudless Screenshot:

You missed unspent skill points :p But I can fix that by.. spending my skillpoints.

I thought it would also be cool to try and find the point where your inventory menu is rendered and leave that out too, that way you could easily get screenshots of your character's idle pose in various environments, but I was struggling just to get the HUD out. So good job with that :)

EDIT: Well, I tried taking a hudless screenshot with the inventory menu up anyways... and it crashes the game. 3 times in a row. That's odd....
 

Alo81

Low Poly Gynecologist
I would appreciate some help if anyone else has Naruto.

I've tried a lot of stuff and nothing seems to be perfect. I've gotten two that are ALMOST there, but none that are perfect.

These are the ones I've tried, and here is the result

The most promising seems like it might be

78e49117
injectDelayAfterDraw true

followed closely by

injectPSHash 1b854ea5
injectDelayAfterDraw true

These ones gives you HUDless screenshots, but there are small snippets that are still included.

Examples:

Top is Hudless with post-processing on

middle is regular with PP off

bottom is Hudless with PP on

You can see what's happening. I can't do something like delay injection, because that is already the delayed injection image.

I've tried both without delaying as well.

1b854ea5 in that scenario actually catches the image completely HUDless, but it also won't apply PP, and it seems like it's the unfiltered image you get out.

Here's an example (cropped down from 5760x3240)


and here is a full image properly resized, showing no HUD.


I also tried

injectPSHash 49f1a5b1
injectDelayAfterDraw true

Which gives a raw, unfiltered image like the cropped one above, and no PP.

Delay after draw turned off, if I remember correctly, does nothing.

If anyone can help me figure this out that would be great.


Ah well, maybe I'll look into the command line stuff at some point. I've been using the desktop client and I guess it has PowerShell command line under there.

The windows client is actually really nifty.

Currently, for me, it's set up so that as soon as I make any change, it lists it saying "These are the changes you've made. You can put in a description here then commit sync it with Github"

From that point, you can just go on the Github page and do a pull request.

How do you do those thumbnails that expand when you click on them.

Happens automatically if you put the images in quotes, but they'll only expand after the full page has loaded.
 

RVinP

Unconfirmed Member
Ah well, maybe I'll look into the command line stuff at some point. I've been using the desktop client and I guess it has PowerShell command line under there.


I submitted a config for Dota 2, it has these two mouse fixes enabled....

Just tried the tool with Dota 2 and it works.
So would the following be the parameters suffice?

File contents of .\dota\GeDoSaTo.ini
Code:
# Dota 2 configuration
aaQuality 0
enablePostprocessing false
enableTextureOverride false
modifyGetCursorPos true
interceptWindowProc true

Note: I have a weird issue where the loading screen displays placeholder textures (sort off, pink and black squares)

Edit: The Chart Wheel doesn't work properly in Dota 2, its struck to the lower right upon opening it.
Image from Dota 2 Gamepedia for reference
Defaultchatwheel.jpeg
 

Parsnip

Member
The windows client is actually really nifty.

Currently, for me, it's set up so that as soon as I make any change, it lists it saying "These are the changes you've made. You can put in a description here then commit sync it with Github"

From that point, you can just go on the Github page and do a pull request.

That's what I do, but if my fork is out of date with Durante's master, it will then throw those conflicts after the pull request. I have no idea what to do with those. :p

You missed unspent skill points :p But I can fix that by.. spending my skillpoints.
Ah, well. Does BL2 allow respec? I could probably do that to get the skillpoints to show, and then maybe I could get a better hash. Also yeah, that hash seems to only work for regular in-game. It almost works on the main menu (leaves a part of the party menu visible), and the inventory menu is a no-go. I couldn't find just one hash that would have worked everywhere, unfortunately. Borderlands 2 is weird. I'll take another look later today.

Edit: The Chart Wheel doesn't work properly in Dota 2, its struck to the lower right upon opening it.

Try adding one or both of the other mouse fixes in there in addition to the current ones. I've never played Dota 2 and tested all this stuff in the early parts of the first tutorial.
 

Parsnip

Member
Regarding Borderlands 2, it seems like the hash changes a bit depending on where your quest marker is. If the quest marker is in your minimap, hash 23ad086b works and hides the hud including the skill points. But if you are close enough to the marker and it's rendered "in the world" so to speak, the old hash 13dcae93 works and hides the hud including the skill points. So far at least I haven't been able to find something that would work flawlessly in both situations. So as such I'd probably use 23ad086b as it's probably more common to have the quest marker to be in your minimap, right?

And as for the item menu, that looks like an even bigger problem. :p
It's not exactly a HUD I guess with the way it's projected in to the world and your character is rendered in front of it. I'm no expert, but the way the dumps look, it might need some kind of "don't render stuff from hash x to hash z" to get rid of it. No idea if that's possible, or if it would even work.
 

Durante

Member
Regarding Borderlands 2, it seems like the hash changes a bit depending on where your quest marker is. If the quest marker is in your minimap, hash 23ad086b works and hides the hud including the skill points. But if you are close enough to the marker and it's rendered "in the world" so to speak, the old hash 13dcae93 works and hides the hud including the skill points. So far at least I haven't been able to find something that would work flawlessly in both situations. So as such I'd probably use 23ad086b as it's probably more common to have the quest marker to be in your minimap, right?
So, would "13dcae93|23ad086b" work? If I implemented it I mean.

And as for the item menu, that looks like an even bigger problem. :p
It's not exactly a HUD I guess with the way it's projected in to the world and your character is rendered in front of it. I'm no expert, but the way the dumps look, it might need some kind of "don't render stuff from hash x to hash z" to get rid of it. No idea if that's possible, or if it would even work.
That's possible, but harder.
 
That's possible, but harder.

The reason I think that might actually be kind of a cool idea is for all those 3rd person games where people wall-hug to get their character out of the shot. If you managed to only leave out the block of shaders that rendered your character model, then you could take shots without the character anywhere you wanted.

But probably unnecessary for the thing I was attempting in BL2
 

Durante

Member
Version 0.10!


Code:
27-07-2014 -- beta 10 - "Poltergeist"
=====================================
General:
- Added feature to disable HUD (in games with a targeted injection profile)
- Added keybinding to toggle through scaling methods
- Added option to prevent Steam Overlay loading (thanks GoaLitiuM)
- Added "loadD3DEarly" compatibility option
- Now possible to list and query readable app name from whitelist
- Fixed downsampling with more than 3 levels
- Fixed stupid typo preventing games with backbuffer formats other
  than the default from working correctly (thanks Boulotaur2024)
- Fixed crash when framedumping, store framedumps as TGA, create folders for each
- Fixed crash with special characters in blacklist/whitelist entries
- Fixed "interceptOnlySystemDlls" with nonstandard system paths
Generic Plugin:
- Show exe name and (if available) readable name in status display
- Added option to target screenshots/postprocessing to specific renderstate changes
  ("injectRenderstate [state],[value]"  -- example of use in Ys Origin profile)
- Added lots of profiles, thanks to all the contributors
GeDoSaToTool:
- Can now sort black/whitelists
- Fixed working directory when launched at windows startup
 

Alo81

Low Poly Gynecologist
That's what I do, but if my fork is out of date with Durante's master, it will then throw those conflicts after the pull request. I have no idea what to do with those. :p

Found the solution.

In the Github application, right click your GeDoSaTo branch and select "Open in git shell"

Then use the commands

Code:
git fetch upstream
git merge upstream/master

This downloads the original master branch (Durantes) and the second command merges it with yours. If you have any changes you haven't synced yet it won't merge though, so make sure you commit and sync anything you haven't before doing it.

Version 0.10!


Code:
27-07-2014 -- beta 10 - "Poltergeist"
=====================================
General:
- Added feature to disable HUD (in games with a targeted injection profile)
- Added keybinding to toggle through scaling methods
- Added option to prevent Steam Overlay loading (thanks GoaLitiuM)
- Added "loadD3DEarly" compatibility option
- Now possible to list and query readable app name from whitelist
- Fixed downsampling with more than 3 levels
- Fixed stupid typo preventing games with backbuffer formats other
  than the default from working correctly (thanks Boulotaur2024)
- Fixed crash when framedumping, store framedumps as TGA, create folders for each
- Fixed crash with special characters in blacklist/whitelist entries
- Fixed "interceptOnlySystemDlls" with nonstandard system paths
Generic Plugin:
- Show exe name and (if available) readable name in status display
- Added option to target screenshots/postprocessing to specific renderstate changes
  ("injectRenderstate [state],[value]"  -- example of use in Ys Origin profile)
- Added lots of profiles, thanks to all the contributors
GeDoSaToTool:
- Can now sort black/whitelists
- Fixed working directory when launched at windows startup

This was way quicker than I was expecting. I'm excited to try the "disable hud" toggle with that weird Naruto PSHash I found.

Also, as an update to anyone wondering about the game - it's just sort of totally fucked. It looks like different battles use different ones, and the HUD will still partially render in ones with your personal post.fx enabled, and the ones without look off. It's crazy.
 

Spazznid

Member
Version 0.10!


Code:
27-07-2014 -- beta 10 - "Poltergeist"
=====================================
General:
- Added feature to disable HUD (in games with a targeted injection profile)
- Added keybinding to toggle through scaling methods
- Added option to prevent Steam Overlay loading (thanks GoaLitiuM)
- Added "loadD3DEarly" compatibility option
- Now possible to list and query readable app name from whitelist
- Fixed downsampling with more than 3 levels
- Fixed stupid typo preventing games with backbuffer formats other
  than the default from working correctly (thanks Boulotaur2024)
- Fixed crash when framedumping, store framedumps as TGA, create folders for each
- Fixed crash with special characters in blacklist/whitelist entries
- Fixed "interceptOnlySystemDlls" with nonstandard system paths
Generic Plugin:
- Show exe name and (if available) readable name in status display
- Added option to target screenshots/postprocessing to specific renderstate changes
  ("injectRenderstate [state],[value]"  -- example of use in Ys Origin profile)
- Added lots of profiles, thanks to all the contributors
GeDoSaToTool:
- Can now sort black/whitelists
- Fixed working directory when launched at windows startup

praise-jesus-o.gif
 
Hey Durante now that GeDoSaTo has become more reliable to just leave in the backgroud, it would be great if you could inject more than one resolution and not having to create a different profile for every game, i don't know if it's even possible but it would be easier to use since not every game can run fine with the same downsamplig resolution.
 

Alo81

Low Poly Gynecologist
Hey Durante now that GeDoSaTo has become more reliable to just leave in the backgroud, it would be great if you could inject more than one resolution and not having to create a different profile for every game, i don't know if it's even possible but it would be easier to use since not every game can run fine with the same downsamplig resolution.

As it stands, your best measure is just to create a custom GeDoSaTo.ini file for whichever games you have troubles with.
 

robgrab

Member
I think the latest version (0.10) broke the ability to run GTA IV with iCEnhancer and GeDoSaTo.

Just tested it again with the older version (0.09) and that still works fine. My GeDoSaTo.ini settings are identical. I even tried changing the following line from false to true. Still nothing.

# Loads D3D dlls early - may cause some games to recognize GeDoSaTo which wouldn't otherwise
loadD3DEarly false
 

Parsnip

Member
So, would "13dcae93|23ad086b" work? If I implemented it I mean.
As in, have multiple hashes and use whichever comes first? I think that would work, yes.

- Fixed stupid typo preventing games with backbuffer formats other
than the default from working correctly (thanks Boulotaur2024)
- Fixed crash when framedumping, store framedumps as TGA, create folders for each
- Added option to target screenshots/postprocessing to specific renderstate changes
("injectRenderstate [state],[value]" -- example of use in Ys Origin profile)
Whoop!
Unfortunately the backbuffer typo fix didn't affect Mini Ninjas discoloration or missing shadows in it or Blood Money. Would working and problematic dumps and logs from Mini Ninjas help? Just looking at the dumps I can see where things start to differ between the two, so let me know.


It seems like dumping is faster(?), and after looking at the tga dumps, I'm going to guess that the different alpha implementation on the format might be the reason for the switch?
And could you go into more detail about injectRenderstate?

Oh, and my keyboard thanks you for setNextScaling.
 
I believe i found the hash necessary to remove the HUD on Hitman: Blood Money, although i had some difficulties screenshoting it to test it. both the hudless and full screenshot keys defaulted to the full screenshot one. I ended up having only leaving the hudless shot key intact.
So, how exactly do i pull a request on github?
EDIT: and now even with the key deleted, it defaults to full screenshot D:
 

Alo81

Low Poly Gynecologist
I believe i found the hash necessary to remove the HUD on Hitman: Blood Money, although i had some difficulties screenshoting it to test it. both the hudless and full screenshot keys defaulted to the full screenshot one. I ended up having only leaving the hudless shot key intact.
So, how exactly do i pull a request on github?
EDIT: and now even with the key deleted, it defaults to full screenshot D:

It defaults to full screenshots if the hash that you're using for the game isn't present during that scene.

So, for example, if you took a screenshot in the games menu, it might say "Full screenshot" but if you took a screenshot in game, where hte PSHash was working, it would say "Hudless screenshot".

The fact that you're getting a full resolution screenshot means that that PSHash isn't present at that moment to my understanding, At the least, it means that for that precise frame, that PSHash isn't functional in capturing before rendering the HUD.

Basically, it means that probably isn't the correct PSHash to generally use, and definitely isn't for the exact part you're at.
 
It defaults to full screenshots if the hash that you're using for the game isn't present during that scene.

So, for example, if you took a screenshot in the games menu, it might say "Full screenshot" but if you took a screenshot in game, where hte PSHash was working, it would say "Hudless screenshot".

The fact that you're getting a full resolution screenshot means that that PSHash isn't present at that moment to my understanding, At the least, it means that for that precise frame, that PSHash isn't functional in capturing before rendering the HUD.

Basically, it means that probably isn't the correct PSHash to generally use, and definitely isn't for the exact part you're at.
Yeah, i sorta discovered it now. i probably selected a hash that had both the post processing and/or smaa on, and when i disabled them, i wasn't able to get the shot. I say that because it came to a point where with the hash i found, there was no difference visually if i disabled post processing, but the full screenshot and the hudless screenshot were different, as in one had it on and the other off.
 

wilflare

Member
is there a way to make Divinity OS work with the Steam Overlay?
it downsamples fine - but the Steam Overlay only takes up the top left corner... and shows only a black patch
 

Durante

Member
ENBs don't work anymore as far as I'm concerned
(imo because of the "D3d9*.dll hook, no idea why though)
Did you try it with the early d3d loading flag?
I guess instead of d3d9*.dll I could list d3d9.dll and d3d9d.dll separately.

It seems like dumping is faster(?), and after looking at the tga dumps, I'm going to guess that the different alpha implementation on the format might be the reason for the switch?
And could you go into more detail about injectRenderstate?
Yeah, TGAs with alpha are just more convenient to work with in most software.

injectRenderState works the same as injectPSHash (it can also be combined with the delay flag), except that it specifies a "SetRenderState" call.

For Borderlands 2, I set:

But I still ended up getting a crash when changing resolution.
Yeah, I expected nothing different. File a bug report about it, I'll have a look at some point.

is there a way to make Divinity OS work with the Steam Overlay?
it downsamples fine - but the Steam Overlay only takes up the top left corner... and shows only a black patch
Currently, alternative injection breaks the Steam overlay. So, no.
 
Did you try it with the early d3d loading flag?
I guess instead of d3d9*.dll I could list d3d9.dll and d3d9d.dll separately..
Yeah I have no idea why the wildcard is an issue here but in the meantime yeah you could do that. I just tested what you suggest (hooking the d3d9d separately) and I can confirm it works

And no earlyd3d loading doesn't help
 

TheTrain

Member
Funny thing with Gedo 0.10 and War Thunder. Even without the .exe in Whitelist, the launcher detect GeDoSaTo aaaaaaaaaaaaaaaand detect the downsampling resolution. You can start the game with Gedo - Downsampling, in Dx11 renderer.
Fun fact, you don't have the in game overlay for Gedosato.
First Dx11 game that actually works? :p
 

Durante

Member
I just found a surprisingly simple way to fix Steam overlay rendering with alternative injection. Nice. Basically it was simply an injection ordering problem.
 
Ah nice so you got rid of the default method. I didn't know Steam overlay was the last hurdle to using a single method.
The loadD3DEarly option should be really helpful compatibility-wise to play these old unconventionnal games. Using the nglide wrapper I was even able to downsample a game from 1997 : Mortal Kombat 4 !
But it doesn't make the game any less awful of course :D

EDIT : smooth sailing so far, everythings working nicely
EDIT : lol

Xebra on the left and ePSXe on the right. Both are opengl but they do work with GLDirect5. Xebra doesn't upscale at all though (unfortunately). ePSXe seems to work pretty well with Pete's OpenGL. I can't go higher than twice my monitor res so far which is a shame

EDIT : tried to see if SSF Saturn emulator was compatible with GeDoSaTo. It is DX9 but unfortunately it won't upscale. The resolution is hard-locked :/
 

robgrab

Member
So, I'm testing a new distribution method. For now, you can get the very latest build of the GeDoSaTo dll/exe directly from github here:
https://github.com/PeterTh/gedosato/tree/master/pack

Note that there won't be any support for non-released versions!
That said, have fun with unified injection.


Awesome! Just downloaded the latest build and I can confirm it fixes the d3d9.dll problem for me. Now all my previous games work again. Not only that but it fixed the graphical glitch with the minimap in GTA IV. Excellent work! This tool gets better every day. Thanks Durante!

 
Do you just download the EXE and DLL? I copied my folder for beta 10, made a 10.1 folder, and placed the new EXE and DLL in there.

Now Borderlands 2 crashes when I change resolution 100% of the time. The game will ask if I want to keep the new res, and crashes when I click yes. Normally the crash happens before the confirmation appears.

Figured maybe I screwed something up.
 
Top Bottom