/**
* Copyright (C) 2012 Jorge Jimenez (jorge@iryoku.com). All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
* IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are
* those of the authors and should not be interpreted as representing official
* policies, either expressed or implied, of the copyright holders.
*/
#include "..\..\SweetFX_preset.txt"
cbuffer UpdatedOncePerFrame {
float2 pixelSize;
float noiseIntensity;
float exposure;
float t;
}
Texture2D srcTex;
Texture3D noiseTex;
sampler2D LinearSampler {
Texture = <srcTex>;
AddressU = Clamp;
AddressV = Clamp;
MipFilter = Point; MinFilter = Linear; MagFilter = Linear;
SRGBTexture = false;
};
sampler2D LinearSamplerWrap {
Texture = <noiseTex>;
AddressU = Wrap;
AddressV = Wrap;
AddressW = Wrap;
MipFilter = Point; MinFilter = Linear; MagFilter = Linear;
SRGBTexture = false;
};
void PassVS(float4 position : POSITION,
out float4 svposition : SV_POSITION,
inout float2 texcoord : TEXCOORD0) {
svposition = position;
}
float3 Overlay(float3 a, float3 b) {
return pow(abs(b), 2.2) < 0.5? 2 * a * b : 1.0 - 2 * (1.0 - a) * (1.0 - b);
}
float3 AddNoise(float3 color, float2 texcoord) {
float2 coord = texcoord * FilmGrainSize;
coord.x *= pixelSize.y / pixelSize.x;
//float noise = noiseTex.Sample(LinearSamplerWrap, float3(coord, t)).r;
float noise = tex2D(LinearSamplerWrap, coord + float2(t, t *4)).r;
float exposureFactor = exposure / 2.0;
exposureFactor = sqrt(exposureFactor);
float t = lerp(3.5 * noiseIntensity, 1.13 * noiseIntensity, exposureFactor);
return Overlay(color, lerp(0.5, noise, t));
}
float4 FilmGrainPS(float4 position : SV_POSITION,
float2 texcoord : TEXCOORD0) : COLOR {
float3 color = tex2D(LinearSampler, texcoord).rgb;
color = AddNoise(color, texcoord);
return float4(color, 1.0);
}
technique FilmGrain {
pass FilmGrain {
VertexShader = compile vs_3_0 PassVS();
PixelShader = compile ps_3_0 FilmGrainPS();
SRGBWriteEnable = false;
AlphaBlendEnable = false;
StencilEnable = false;
}
}
I've released a new version for Christmas!
It fixes a long-standing memory leak/crash issue which only really became obvious in FF13 and FF13-2. Yay stability!
Are there any workarounds for games with max 1080p resolution like Dynasty Warriors 8 XL?
That's exactly why I was hounding this bug for weeks now. Having the choice between playing FF13-2 in 20 minute intervals and restarting or not taking hudless shots is terrible!Awesome! I wasn't using this with XIII-2 because of the crashing I saw in XIII, but now I should go back to using it. Hurray for HUDless screen shots!
The workaround is to write a custom plugin for GeDoSaTo. Which is almost always non-trivial, but sometimes relatively easy (pre-patch FF13) and at other times very hard (Deadly Premonition).Are there any workarounds for games with max 1080p resolution like Dynasty Warriors 8 XL?
I've released a new version for Christmas!
It fixes a long-standing memory leak/crash issue which only really became obvious in FF13 and FF13-2. Yay stability!
That's exactly why I was hounding this bug for weeks now. Having the choice between playing FF13-2 in 20 minute intervals and restarting or not taking hudless shots is terrible!
The workaround is to write a custom plugin for GeDoSaTo. Which is almost always non-trivial, but sometimes relatively easy (pre-patch FF13) and at other times very hard (Deadly Premonition).
... as I just bought exactly that game (DW8XL) in the Steam sale with no one warning me that it's resolution locked maybe you'll get lucky.
That's exactly why I was hounding this bug for weeks now. Having the choice between playing FF13-2 in 20 minute intervals and restarting or not taking hudless shots is terrible!
The workaround is to write a custom plugin for GeDoSaTo. Which is almost always non-trivial, but sometimes relatively easy (pre-patch FF13) and at other times very hard (Deadly Premonition).
... as I just bought exactly that game (DW8XL) in the Steam sale with no one warning me that it's resolution locked maybe you'll get lucky.
I've released a new version for Christmas!
It fixes a long-standing memory leak/crash issue which only really became obvious in FF13 and FF13-2. Yay stability!
Well, I gave it a try today, and it doesn't look like it's happening. Getting the game to render at arbitrary resolutions was easy enough, but due to the way it handles HuDs and the menu getting all those right (at least with the ideas I have now) would take days of "grinding" (that is, boring, repetitive work). I don't think that's worth it, especially since you can use SGSSAA in the game (on NV at least).Gotcha. Thanks for all the work you've done so far!
Well, I gave it a try today, and it doesn't look like it's happening. Getting the game to render at arbitrary resolutions was easy enough, but due to the way it handles HuDs and the menu getting all those right (at least with the ideas I have now) would take days of "grinding" (that is, boring, repetitive work). I don't think that's worth it, especially since you can use SGSSAA in the game (on NV at least).
So, enjoy the only >1080p shot of DW8XL that is ever likely to exist:
![]()
Well, I gave it a try today, and it doesn't look like it's happening. Getting the game to render at arbitrary resolutions was easy enough, but due to the way it handles HuDs and the menu getting all those right (at least with the ideas I have now) would take days of "grinding" (that is, boring, repetitive work). I don't think that's worth it, especially since you can use SGSSAA in the game (on NV at least).
So, enjoy the only >1080p shot of DW8XL that is ever likely to exist:
![]()
This may be an odd question, but is there any way to use the screenshot functionality of Gedosato, but without using the down-sampling and without any of its graphical changes?
Okay let me make the question even weirder.Yeah, just set your in game resolution to your monitors native resolution.
Okay let me make the question even weirder.
Is there any way to use Nvidia DSR to achieve 4k, but still use gedosato strictly for screenshots? I have to select 3840 x 2160 from the FFXIII-2 launcher for DSR to function, but that also triggers gedosato downsampling.
Okay let me make the question even weirder.
Is there any way to use Nvidia DSR to achieve 4k, but still use gedosato strictly for screenshots? I have to select 3840 x 2160 from the FFXIII-2 launcher for DSR to function, but that also triggers gedosato downsampling.
clearRenderResolutions
renderResolution 5120x2880@60
renderResolution 5760x3240@60
renderResolution 7680x4320@60
I'll certainly not delete it, the code is there. But I don't really want to activate the plugin by default. Will have to think of a solution.Oh whoa I'm sorry to hear that DW8XL would be that much work but it's still impressive to see!Any chance you can release the plugin as-is for others to play around? After 60 hours of play I wouldn't mind a misaligned HUD at all
![]()
I don't really see the point of using DSR instead of GeDoSaTo for downsampling for a well-supported game like FF13-2. But whatever floats your boat, Parsnip posted the correct approach to doing it.
I'll certainly not delete it, the code is there. But I don't really want to activate the plugin by default. Will have to think of a solution.
Afaik GeDoSaTo overrides DSR if they both have same resolution options.
What you can do is plop something like this in the GeDoSaTo_user.ini.
Code:clearRenderResolutions renderResolution 5120x2880@60 renderResolution 5760x3240@60 renderResolution 7680x4320@60
This way 4K and below uses DSR and 2880p and above is gedo.
clearRenderResolutions is there so that the various resolutions from default ini are cleared before only applying the _user resolutions.
Only downside of this method is that the gedo gui is super tiny at 4K DSR.
DSR doesn't do any HuD manipulation at all. NV would be insane to even try that, you'd have to manually do it for each and every game.
It completely depends on the game. Most old-school PC games have HuDs taht are pixel-dependent, so more pixel = smaller HuD. Most console ports have HuDs which are always the same size.Still, with DA:Origins the HUD does scale in size whenever using DSR... DA: Origins is the only game I've ever seen this happen though.
It completely depends on the game. Most old-school PC games have HuDs taht are pixel-dependent, so more pixel = smaller HuD. Most console ports have HuDs which are always the same size.
Neither of these options is ideal, good modern PC games have a HuD size slider.
Well this is strange. I'm hunting for the HUD shader in Borderlands: The Presequel (cuz it's more convenient than bringing up the console every time) and... I'm getting weird results.
The shader I want to use has this:
SetPixelShader 2F35E200, name: UNREGISTERED_SHADER
I do believe it's the 2nd parameter I need, right? It's been a while, but I don't think I can plug "UNREGISTERED_SHADER" into my config.
(seems like every single SetPixelShader in this log file does that)
I'll certainly not delete it, the code is there. But I don't really want to activate the plugin by default. Will have to think of a solution.
So I'm wondering about Mirror's Edge. With Gedosato I get a darker image and low-res text. I always noticed the low-res text but I just realized it also produces a less than optimal image. I'm not using any post-processing. Sup wit dat.
Using a 280X.
So I'm wondering about Mirror's Edge. With Gedosato I get a darker image and low-res text. I always noticed the low-res text but I just realized it also produces a less than optimal image. I'm not using any post-processing. Sup wit dat.
Using a 280X.
Started using this today and loving it!
When I'm done playing and click Deactivate I get "Deactivated (unhooked unsuccessfully)". Is this normal?
Why are you using an oddball 9:10 resolution?
you mean 16:10?
Are you unhooking before or after the game is closed?
16:10 would be 3840×2400 not 2160x2400.