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

Dark Souls internal rendering resolution fix (DSfix)

It's working.

You can't swap them in-game but there's a way if you want to hassle with AutoHotKey and stuff like that.
Thanks to you and Zkylon for confirming it's working.

AutoHotkey? Requires installation and is it too hard to do?

Problem is, im a bit ashamed but im begining to understand the traditional dimond shaped face buttons as the body of a person. For example, something related to legs (runing, sprinting, dodging) makes sense to me in A. Stuff related to hands in B and X respectivly (interacting, reloding, using helath, etc).

Having B for sprinting is something akin to Mario old days of 2D side scrolling.
 
Here's a pic of what I described above

ekY2SGW.jpg
 

butanebob

Neo Member
No guarantees, but since you seem to be flailing about, have you tried:-

1. Running the game in admin mode? (UAC modes also apply here)

2. Temporarily disabling your anti-virus/malware protection software and running the game after?

3. Enabling borderless windowed mode in Dsfix.ini (making sure your game is set to windowed mode in DS itself beforehand) and trying out the FPS unlocker after?

4. Disabling any other overlays(MSI Afterburner OSD etc)/Steam overlays/FPS counters (FRAPS) and then running the game?

5. If you're on that OS (Windows 8), disabling that annoying ass Microsoft SmartScreen feature, then running the game?

6. Closing every single other app/program on your system (to minimize potential application conflicts), then running the game, barebones?

The FPS unlocker works, to quote Durante ,"via in-memory modification of game code."

What this implies is that if there're any other "protective software" on your system that's blocking such methods in memory, it would then cease to function, afaik.

Listing your detailed specs and OS would also help us narrow down the issue further.

Any other tips? I've tried all of these and still can't even get the game to boot up with an unlocked framerate. :( (It does boot up fine otherwise)

Specs:
i7 2600k 4.5ghz
4gb Ram
Win7 Ultimate 64bit
Gigabyte GTX 460 1GB
 
Got everything working nice, rendering 2560x1600 and playing @ 5760x1080 bezel corrected.

Hud nice and centered on middle screen at the appropriate size. Then I tried to add AA via the ini file and whenever I have a value other than 0 the hud moves to the left screen and is giant.

Using Durante's and Widescreen Fixer.

Any ideas?

Thanks~
 

Exuro

Member
What's the most stable version right now? My brother and I both got the game and he isn't the biggest guy on tinkering around. Will 2.0.1 be fine?

Also does anyone know where I can get that one multiplayer patch fix?
 
Thanks to you and Zkylon for confirming it's working.

AutoHotkey? Requires installation and is it too hard to do?

I should've said "there should be a way with AutoHotKey or such". I don't know how to do it with XInput, and AutoHotKey is kinda hard to use if you're not experienced.

It really isn't a issue though. You will get used to it soon enough :)

Those the skip intro work properly now? The readme says there are some problems.

Works great!

What's the most stable version right now? My brother and I both got the game and he isn't the biggest guy on tinkering around. Will 2.0.1 be fine?

Also does anyone know where I can get that one multiplayer patch fix?

The latest.

DSCFix: http://steamcommunity.com/app/211420/discussions/0/828935269278734403/
 
[Asmodean];46428272 said:
I don't know if anyone will want this or not, but, I said I'd post it. If anyone would like to use it or make further improvements etc.

I've made some improvements/changes to the current OBGE VSSAO implementation for Dark Souls.

  • Accurate AO Distance Checking
  • Dynamic Positional Occlusion Offsets
  • Positional Depth
  • BT.709 & sRBG luma coefficient weights for HD LCD
  • The Combine Function was compiling for SM 1.1, now amended to 3.0
  • 32 Samples, Instead of 9
  • Higher Quality AO Sampling
  • Improved Finite AO Noise
  • Denser, more refined AO Texturing.
  • On my system this version nets about 25%+ increased performance vs the default implementation (2560x1440, native, not downsampled)

Download: http://www.mediafire.com/?fg33oqyqz1ot65f (place in your DS binary folder, same place as dsfix. I've included my DSFix ini file as a reference)


Here's the code: (Don't use this, it's only for reference. Use the download link provided, as it has include folders, and a noise texture)
Code:
/*
	 -Volumetric SSAO-
	Implemented by Tomerk for OBGE
	Adapted and tweaked for Dark Souls by Durante
	Modified by Asmodean, for accurate surface occlusion, distance, and dynamic positional depth offsets, for Dark Souls
*/

/***User-controlled variables***/

#define N_SAMPLES 32 //number of samples, currently do not change.
#define M_PI 3.14159265358979323846

extern float aoRadiusMultiplier = 0.25; //Linearly multiplies the radius of the AO Sampling
extern float ThicknessModel = 50.0; //units in space the AO assumes objects' thicknesses are
extern float FOV = 75; //Field of View in Degrees
extern float luminosity_threshold = 0.5;

#ifdef SSAO_STRENGTH_LOW
extern float aoClamp = 0.35;
extern float aoStrengthMultiplier = 0.8;
#endif

#ifdef SSAO_STRENGTH_MEDIUM
extern float aoClamp = 0.25;
extern float aoStrengthMultiplier = 0.9;
#endif

#ifdef SSAO_STRENGTH_HIGH
extern float aoClamp = 0.1;
extern float aoStrengthMultiplier = 1.0;
#endif

#define LUMINANCE_CONSIDERATION //comment this line to not take pixel brightness into account

/***End Of User-controlled Variables***/
static float2 rcpres = PIXEL_SIZE;
static float aspect = rcpres.y/rcpres.x;
static const float nearZ = 1.0f;
static const float farZ = 3000.0f;
static const float2 g_InvFocalLen = { tan(0.5f*radians(FOV)) / rcpres.y * rcpres.x, tan(0.5f*radians(FOV)) };
static const float depthRange = nearZ-farZ;

Buffer<float4>g_Buffer;

texture2D sampleTex2D;
sampler sampleSampler = sampler_state
{
	Texture   = <sampleTex2D>;
	MinFilter = ANISOTROPIC;
	MagFilter = ANISOTROPIC;
	MipFilter = ANISOTROPIC;
	AddressU  = Clamp;
	AddressV  = Clamp;
	SRGBTexture=FALSE;
	MaxMipLevel=0;
	MipMapLodBias=0;
	MaxAnisotropy = 16;
};

texture2D depthTex2D;
sampler depthSampler = sampler_state
{
	texture = <depthTex2D>;
	MinFilter = POINT;
	MagFilter = POINT;
	MipFilter = POINT;
	AddressU  = Clamp;
	AddressV  = Clamp;
	SRGBTexture=FALSE;
	MaxMipLevel=0;
	MipMapLodBias=0;
	MaxAnisotropy = 16;
};

texture2D AOTex2D;
sampler AOSampler = sampler_state
{
	texture = <AOTex2D>;
	MinFilter = POINT;
	MagFilter = POINT;
	MipFilter = POINT;
	AddressU  = Clamp;
	AddressV  = Clamp;
	SRGBTexture=FALSE;
	MaxMipLevel=0;
	MipMapLodBias=0;
	MaxAnisotropy = 16;
};

texture2D cust_NoiseTexture < string filename = "ssao/RandomNoiseB.dds"; >;
sampler noiseSampler = sampler_state
{
	Texture   = <cust_NoiseTexture>;
	MinFilter = POINT;
	MagFilter = POINT;
	MipFilter = POINT;
	AddressU  = Wrap;
	AddressV  = Wrap;
	SRGBTexture=FALSE;
	MaxMipLevel=0;
	MipMapLodBias=0;
	MaxAnisotropy = 16;
};

texture2D frameTex2D;
sampler frameSampler = sampler_state
{
	texture = <frameTex2D>;
	MinFilter = ANISOTROPIC;
	MagFilter = ANISOTROPIC;
	MipFilter = ANISOTROPIC;
	AddressU  = Clamp;
	AddressV  = Clamp;
	SRGBTexture=FALSE;
	MaxMipLevel=0;
	MipMapLodBias=0;
	MaxAnisotropy = 16;
};

texture2D prevPassTex2D;
sampler passSampler = sampler_state
{
	texture = <prevPassTex2D>;
	MinFilter = ANISOTROPIC;
	MagFilter = ANISOTROPIC;
	MipFilter = ANISOTROPIC;
	AddressU  = Clamp;
	AddressV  = Clamp;
	SRGBTexture=FALSE;
	MaxMipLevel=0;
	MipMapLodBias=0;
	MaxAnisotropy = 16;
};

texture2D focusTex2D;
sampler focusSampler = sampler_state
{
	Texture   = <focusTex2D>;
	MinFilter = ANISOTROPIC;
	MagFilter = ANISOTROPIC;
	MipFilter = ANISOTROPIC;
	AddressU  = Clamp;
	AddressV  = Clamp;
	SRGBTexture=FALSE;
	MaxMipLevel=0;
	MipMapLodBias=0;
	MaxAnisotropy = 16;
};

texture2D normalTex2D;
sampler normalSampler = sampler_state
{
	Texture   = <normalTex2D>;
	MinFilter = POINT;
	MagFilter = POINT;
	MipFilter = POINT;
	AddressU  = Clamp;
	AddressV  = Clamp;
	SRGBTexture=FALSE;
	MaxMipLevel=0;
	MipMapLodBias=0;
	MaxAnisotropy = 16;
};


struct VSOUT
{
	float4 vertPos : POSITION;
	float2 UVCoord : TEXCOORD0;
};

struct VSIN
{
	float4 vertPos : POSITION;
	float2 UVCoord : TEXCOORD0;
};


VSOUT FrameVS(VSIN IN)
{
	/*VSOUT OUT;
	float4 pos=float4(IN.vertPos.x, IN.vertPos.y, IN.vertPos.z, 1.0f);
	OUT.vertPos=pos;
	float2 coord=float2(IN.UVCoord.x, IN.UVCoord.y);
	OUT.UVCoord=coord;
	return OUT;*/
	
	VSOUT OUT;
	OUT.vertPos = IN.vertPos;
	OUT.UVCoord = IN.UVCoord;
	return OUT;
}

static float2 sample_offset[N_SAMPLES] =
{
	 float2(1.00f, 1.00f),
	 float2(-1.00f, -1.00f),
	 float2(-1.00f, 1.00f),
	 float2(1.00f, -1.00f),

	 float2(1.00f, 0.00f),
	 float2(-1.00f, 0.00f),
	 float2(0.00f, 1.00f),
	 float2(0.00f, -1.00f),

	 float2(1.00f, 0.00f),
	 float2(-1.00f, 0.00f),
	 float2(0.00f, 1.00f),
	 float2(0.00f, -1.00f),

	 float2(1.00f, 1.00f),
	 float2(-1.00f, -1.00f),
	 float2(-1.00f, 1.00f),
	 float2(1.00f, -1.00f),
	 
	 float2(1.00f, 0.00f),
	 float2(-1.00f, 0.00f),
	 float2(0.00f, 1.00f),
	 float2(0.00f, -1.00f),

	 float2(1.00f, 0.00f),
	 float2(-1.00f, 0.00f),
	 float2(0.00f, 1.00f),
	 float2(0.00f, -1.00f),

	 float2(1.00f, 1.00f),
	 float2(-1.00f, -1.00f),
	 float2(-1.00f, 1.00f),
	 float2(1.00f, -1.00f),

	 float2(1.00f, 0.00f),
	 float2(-1.00f, 0.00f),
	 float2(0.00f, 1.00f),
	 float2(0.00f, -1.00f)
};

static float sample_radius[N_SAMPLES] =
{
	0.30f, 0.30f,
	0.30f, 0.30f,
	0.30f, 0.30f,
	0.30f, 0.30f,
	
	0.30f, 0.30f,
	0.30f, 0.30f,
	0.30f, 0.30f,
	0.30f, 0.30f,
	
	0.30f, 0.30f,
	0.30f, 0.30f,
	0.30f, 0.30f,
	0.30f, 0.30f,
	
	0.30f, 0.30f,
	0.30f, 0.30f,
	0.30f, 0.30f,
	0.30f, 0.30f
};

float4 ExpandRGBE( float4 RGBE )
{
	return float4( ldexp( RGBE.xyz, 255.0 * RGBE.w - 128.0 ), 1.0 );
}

float3 decode(float3 enc)
{
	return (2.0f * enc.xyz- 1.0f);
}

float2 rand(in float2 uv : TEXCOORD0) {
	
	//float noise = tex2Dlod(noiseSampler, uv);
	float noise = normalize(tex2Dlod(noiseSampler, float4(uv, 0, 0)).xyz * 2 - 1);
	float noiseX = noise+(abs(frac(sin(dot(uv, float2(12.9898, 78.233) * M_PI)) * 43758.5453)));
	float noiseY = sqrt(1.0f-noiseX*noiseX);
	return float2(noiseX, noiseY);
}

float readDepth(in float2 coord : TEXCOORD0) {
	float4 col = tex2Dlod(depthSampler, float4(coord, 0, 0));
	float posZ = ((1.0-col.z) + (1.0-col.y)*256.0 + (1.0-col.x)*(256.0*256.0));
	return (posZ-nearZ)/farZ;
}

float3 getPosition(in float2 uv : TEXCOORD0, in float eye_z) {
   uv = (uv * float2(2.0, -2.0) - float2(1.0, -1.0));
   float3 pos = float3(uv * g_InvFocalLen * eye_z, eye_z );
   return pos;
}


float4 ssao_Main(VSOUT IN) : COLOR0
{
	clip(1/SCALE-IN.UVCoord.x);
	clip(1/SCALE-IN.UVCoord.y);	
	IN.UVCoord.xy *= SCALE;
	
	float4 bufferData = g_Buffer.Load(IN.UVCoord);
	float depth = readDepth(IN.UVCoord);
	float3 pos = getPosition(IN.UVCoord, depth);
	float3 dx = ddx(pos);
	float3 dy = ddy(pos);
	float3 normal = normalize(cross(dx,dy));
	normal.y *= -1;
	float sample_depth = tex2D(depthSampler, IN.UVCoord);

	float ao=tex2D(AOSampler, IN.UVCoord);
	float s=tex2D(sampleSampler, IN.UVCoord);

	float2 rand_vec = rand(IN.UVCoord);
	float2 sample_vec_divisor = g_InvFocalLen*depth*depthRange/(aoRadiusMultiplier*5000*rcpres);
	float2 sample_center = IN.UVCoord + normal.xy/sample_vec_divisor*float2(1.0f,aspect);
	float sample_center_depth = depth*depthRange + normal.z*aoRadiusMultiplier*7;
	
	
	for(int i = 0; i < N_SAMPLES; i++)
	{	
		float2 sample_vec = reflect(sample_offset[i], rand_vec);
		sample_vec /= sample_vec_divisor;
		float2 sample_coords = sample_center + sample_vec*float2(1.0f,aspect);
		
		float curr_sample_radius = sample_radius[i]*aoRadiusMultiplier*7;
		float curr_sample_depth = depthRange*readDepth(sample_coords);
		
		ao += clamp(0,curr_sample_radius+sample_center_depth-curr_sample_depth,2*curr_sample_radius);
		ao -= clamp(0,curr_sample_radius+sample_center_depth-curr_sample_depth-ThicknessModel,2*curr_sample_radius);
		s += 2.0*curr_sample_radius;
	}

	ao /= s;
	
	// adjust for close and far away
	if(depth<0.065f)
	{
		ao = lerp(ao, 0.0f, (0.065f-depth)*13.3);
	}

	ao = 1.0f-ao*aoStrengthMultiplier;
	
	return float4(ao,ao,ao, 1.0f);
}

float4 HBlur( VSOUT IN ) : COLOR0 {
	float color = tex2D(passSampler, IN.UVCoord);

	float blurred = color*0.2270270270;
	blurred += tex2D(passSampler, IN.UVCoord + float2(rcpres.x*1.3846153846, 0)) * 0.3162162162;
	blurred += tex2D(passSampler, IN.UVCoord - float2(rcpres.x*1.3846153846, 0)) * 0.3162162162;
	blurred += tex2D(passSampler, IN.UVCoord + float2(rcpres.x*3.2307692308, 0)) * 0.0702702703;
	blurred += tex2D(passSampler, IN.UVCoord - float2(rcpres.x*3.2307692308, 0)) * 0.0702702703;
	
	return blurred;
}

float4 VBlur( VSOUT IN ) : COLOR0 {
	float color = tex2D(passSampler, IN.UVCoord);

	float blurred = color*0.2270270270;
	blurred += tex2D(passSampler, IN.UVCoord + float2(0, rcpres.y*1.3846153846)) * 0.3162162162;
	blurred += tex2D(passSampler, IN.UVCoord - float2(0, rcpres.y*1.3846153846)) * 0.3162162162;
	blurred += tex2D(passSampler, IN.UVCoord + float2(0, rcpres.y*3.2307692308)) * 0.0702702703;
	blurred += tex2D(passSampler, IN.UVCoord - float2(0, rcpres.y*3.2307692308)) * 0.0702702703;
	
	return blurred;
}

float4 Combine( VSOUT IN ) : COLOR0 {
	float3 color = tex2D(frameSampler, IN.UVCoord).rgb;
	float ao = tex2D(passSampler, IN.UVCoord/SCALE);
	ao = clamp(ao, aoClamp, 1.0f);

	#ifdef LUMINANCE_CONSIDERATION
	float luminance = (color.r*0.2125f)+(color.g*0.7154f)+(color.b*0.0721f);
	float white = 1.0f;
	float black = 0.0f;

	luminance = clamp(max(black,luminance-luminosity_threshold)+max(black,luminance-luminosity_threshold)+max(black,luminance-luminosity_threshold), 0.0f, 1.0f);
	ao = lerp(ao, white, luminance);
	#endif

	color *= 1.05f;
	color *= ao;

	return float4(color, 1.0f);
}

technique VSSAO
{
	pass p0
	{
		VertexShader = compile vs_3_0 FrameVS();
		PixelShader = compile ps_3_0 ssao_Main();	
	}
	pass p1
	{
		VertexShader = compile vs_3_0 FrameVS();
		PixelShader = compile ps_3_0 HBlur();
	}
	pass p2
	{
		VertexShader = compile vs_3_0 FrameVS();
		PixelShader = compile ps_3_0 VBlur();
	}
	pass p3
	{
		VertexShader = compile vs_3_0 FrameVS();
		PixelShader = compile ps_3_0 Combine();
	}
}

DSfix.ini

Code:
###############################################################################
# Graphics Options
###############################################################################

# internal rendering resolution of the game
# higher values will decrease performance
renderWidth 2560
renderHeight 1440

# The display width/height
# 0 means use the same resolution as renderWidth/Height
# (use for downscaling - if in doubt, leave at 0)
presentWidth 2560
presentHeight 1440

############# Anti Aliasing

# AA toggle and quality setting
# 0 = off (best performance, worst IQ)
# 1 = low 
# 2 = medium
# 3 = high
# 4 = ultra (worst performance, best IQ)
aaQuality 4

# AA type
# either "SMAA" or "FXAA"
aaType SMAA

############# Ambient Occlusion

# Enable and set the strength of the SSAO effect (all 3 settings have the same performance impact!)
# 0 = off
# 1 = low
# 2 = medium
# 3 = high
ssaoStrength 3

# Set SSAO scale
# 1 = high quality (default)
# 2 = lower quality, lower impact on performance
# 3 = lowest quality, lowest impact on performance
ssaoScale 1

# Determine the type of AO used
# "VSSAO" = Volumetric SSAO (default, suggested)
# "HBAO" = Horizon-Based Ambient Occlusion
# "SCAO" = VSSAO + HBAO
# VSSAO and  HBAO types have a different effect and similar performance
# SCAO combines both, with a higher performance impact
ssaoType VSSAO

############# Depth of field

# Depth of Field resolution override, possible values:
# 0 = no change from default (DoF pyramid starts at 512x360)
# 540 = DoF pyramid starts at 960x540
# 810 = DoF pyramid starts at 1440x810
# 1080 = DoF pyramid starts at 1920x1080
# 2160 = DoF pyramid starts at 3840x2160
# higher values will decrease performance
# do NOT set this to the same value as your vertical rendering resolution!
dofOverrideResolution 1080

# Depth of Field scaling override (NOT RECOMMENDED)
# 0 = DoF scaling enabled (default, recommended)
# 1 = DoF scaling disabled (sharper, worse performance, not as originally intended)
disableDofScaling 0

# Depth of field additional blur
# allows you to use high DoF resolutions and still get the originally intended effect
# suggested values:
# o (off) at default DoF resolution
# 0 or 1 at 540 DoF resolution
# 1 or 2 above that
# 3 or 4 at 2160 DoF resolution (if you're running a 680+)
dofBlurAmount 0

############# Framerate

# Enable variable framerate (up to 60)
# NOTE:
# - this requires in-memory modification of game code, and may get you banned from GFWL
# - there may be unintended side-effects in terms of gameplay
# - you need a very powerful system (especially CPU) in order to maintain 60 FPS
# - in some  instances, collision detection may fail. Avoid sliding down ladders
# Use this at your own risk!
# 0 = no changes to game code
# 1 = unlock the frame rate
unlockFPS 1

# FPS limit, only used with unlocked framerate
# do not set this much higher than 60, this will lead to various issues with the engine
FPSlimit 60

# FPS threshold
# DSfix will dynamically disable AA if your framerate drops below this value 
#  and re-enable it once it has normalized (with a bit of hysteresis thresholding)
FPSthreshold 0

############# Filtering

# texture filtering override
# 0 = no change 
# 1 = enable some bilinear filtering (use only if you need it!)
# 2 = full AF override (may degrade performance)
# if in doubt, leave this at 0
filteringOverride 2

###############################################################################
# HUD options
###############################################################################

# Enable HUD modifications
# 0 = off (default) - none of the options below will do anything!
# 1 = on
enableHudMod 1

# Remove the weapon icons from the HUD 
# (you can see which weapons you have equipped from your character model)
enableMinimalHud 0

# Scale down HuD, examples:
# 1.0 = original scale
# 0.75 = 75% of the original size
hudScaleFactor 0.75f

# Set opacity for different elements of the HUD
# 1.0 = fully opaque
# 0.0 = fully transparent
# Top left: health bars, stamina bar, humanity counter, status indicators
hudTopLeftOpacity 0.75f
# Bottom left: item indicators & counts
hudBottomLeftOpacity 0.75f
# Bottom right: soul count 
hudBottomRightOpacity 0.5f

###############################################################################
# Window & Mouse Cursor Options
###############################################################################

# borderless fullscreen mode 
# make sure to select windowed mode in the game settings for this to work!
# 0 = disable
# 1 = enable
borderlessFullscreen 0

# disable cursor at startup
# 0 = no change
# 1 = off at start
disableCursor 1

# capture cursor (do not allow it to leave the window)
# 0 = don't capture
# 1 = capture
# (this also works if the cursor is not visible)
captureCursor 1

###############################################################################
# Save Game Backup Options
###############################################################################

# enables save game backups
# 0 = no backups
# 1 = backups enabled
# backups are stored in the save folder, as "[timestamp]_[original name].bak"
enableBackups 0

# backup interval in seconds (1500 = 25 minutes)
# (minimum setting 600)
backupInterval 1500

# maximum amount of backups, older ones will be deleted
maxBackups 2

###############################################################################
# Texture Override Options
###############################################################################

# enables texture dumping
# you *only* need this if you want to create your own override textures
# textures will be dumped to "dsfix\tex_override\[hash].tga"
enableTextureDumping 0

# enables texture override
# textures in "dsfix\tex_override\[hash].png" will replace the corresponding originals
# will cause a small slowdown during texture loading!
enableTextureOverride 1

###############################################################################
# Other Options
###############################################################################

# skip the intro logos
# this should now be slightly more stable, but should still be
# the first thing to disable in case you experience any problems
skipIntro 0

# change the screenshot directory
# default: . (current directory)
# example: C:\Users\Peter\Pictures
# directory must exist!
screenshotDir .

# override the in-game language
# none = no override
# en-GB = English, fr = French, it = Italian, de = German, es = Spanish
# ko = Korean, zh-tw = Chinese, pl = Polish, ru = Russian
# this does not work in Windows XP!
overrideLanguage none

# Dinput dll chaining
# if you want to use another dinput8.dll wrapper together
# with DSfix, rename it (e.g. "dinputwrapper.dll") and put the new name here
dinput8dllWrapper none
# dsmfix.dll

# D3D adapter override
# -1 = no override
# N = use adapter N
# this setting is for multiple (non-SLI/crossfire) GPUs
# everyone else should leave it at -1
d3dAdapterOverride -1

# Log level - 0 to 11, higher numbers mean more logging
# only enable for debugging
logLevel 0

###############################################################################
# The settings below are not yet ready to use!!               
###############################################################################

# You can only set either forceFullscreen or forceWindowed (or neither)
# 0 = off, 1 = on
forceWindowed 0
forceFullscreen 0

# turn on/off Vsync
enableVsync 0
# adjust display refresh rate in fullscreen mode - this is NOT linked to FPS!
fullscreenHz 60

I've also done custom shaders for SweetFX, if anyone was interested in them, but seeing as this isn't the appropriate place to post them, I've left them out.

I had more screens uploaded, but they are a bit pointless, as you can't see the difference properly in them, So I just left 3 comparisons below. You may want to right-click and save them to view in full screen.

You'll need to actually see it in-game to clearly see the difference though.

OFF

off3_zps20819cf5.jpg



MINE

mine3_zpsb2d05b60.jpg



DEFAULT

default3_zpsdf930e17.jpg


Apologies for the long post.

My system
i7 3770k @4.4ghz
GTX 680
8GB 2133 CL9 1T

I tested it and indeed it looks much better than the regular VSSAO, however it's more expensive and my PC already has trouble running the game as is so I'll save it for a future playthrough.

You guys should check it out.

SMH at the people chasing him away with their stupidity.
 

firehawk12

Subete no aware
I'm just wondering, is this also a PC support thread? lol

I have a bit of a problem. I'm on a laptop with an ATI 7690m. When I was using stock drivers that came with my laptop (from at least 2 years ago, since Lenovo has long since stopped supporting this particular laptop) and DSFix, I was getting around 15-30 FPS which was fine for me.

But once I updated the drivers to whatever is in 13.4 of Catalyst, my frame rate dropped to 10 FPS. I moved DSFix out of the folder and the game now plays at 15 FPS. At this point, I'm just wondering if I lost performance because I installed the latest ATI drivers? I updated the drivers to get other games, namely Battlefield 3, to work properly, but it seems like I broke Dark Souls in the process. :(
 
I'm just wondering, is this also a PC support thread? lol

I have a bit of a problem. I'm on a laptop with an ATI 7690m. When I was using stock drivers that came with my laptop (from at least 2 years ago, since Lenovo has long since stopped supporting this particular laptop) and DSFix, I was getting around 15-30 FPS which was fine for me.

But once I updated the drivers to whatever is in 13.4 of Catalyst, my frame rate dropped to 10 FPS. I moved DSFix out of the folder and the game now plays at 15 FPS. At this point, I'm just wondering if I lost performance because I installed the latest ATI drivers? I updated the drivers to get other games, namely Battlefield 3, to work properly, but it seems like I broke Dark Souls in the process. :(

Are you sure the game is even using your dedicated ATI card and not your integrated Intel one?
(I assume as such, due to the fact that all modern mobile Core iX series CPUs come with the integrated solution built in)

Your latest drivers meant for standalone ATI cards could've broken the previous comfy arrangement your manufacturer sourced drivers had with the Intel integrated ones.

One way to be sure is to run the game in Windowed mode, with a GPU monitoring application like GPUz, and ensure that there's GPU usage for your ATI card. Switchable graphics can be quite a messy proposition at times.

Personally, I'm running the game at a steady 30-35 FPS @ 1600x900 render resolution using the FPS unlocker in DSFIX so that the drops in Blighttown won't be as jarring (15 FPS otherwise w/o the frame unlocker) with a much more inferior graphics card and likely CPU to yours.

(ATI Mobility Radeon 4670 1GB and a Core 2 @ 2.8 GHz lol, ancient laptop bought 4 years ago)

You should be getting much better performance, especiallly with the FPS unlocker and your graphics card.
 
I tested it and indeed it looks much better than the regular VSSAO, however it's more expensive and my PC already has trouble running the game as is so I'll save it for a future playthrough.

You guys should check it out.

SMH at the people chasing him away with their stupidity.

I remember that exchange. It escalated way faster than it should have on both sides.
 

firehawk12

Subete no aware
Are you sure the game is even using your dedicated ATI card and not your integrated Intel one?
(I assume as such, due to the fact that all modern mobile Core iX series CPUs come with the integrated solution built in)

Your latest drivers meant for standalone ATI cards could've broken the previous comfy arrangement your manufacturer sourced drivers had with the Intel integrated ones.

One way to be sure is to run the game in Windowed mode, with a GPU monitoring application like GPUz, and ensure that there's GPU usage for your ATI card. Switchable graphics can be quite a messy proposition at times.

Personally, I'm running the game at a steady 30-35 FPS @ 1600x900 render resolution using the FPS unlocker in DSFIX so that the drops in Blighttown won't be as jarring (15 FPS otherwise w/o the frame unlocker) with a much more inferior graphics card and likely CPU to yours.

(ATI Mobility Radeon 4670 1GB and a Core 2 @ 2.8 GHz lol, ancient laptop bought 4 years ago)

You should be getting much better performance, especiallly with the FPS unlocker and your graphics card.

I have an i7 @ 2.2GHz, so I have no idea if that could be a problem. I'll give GPUz a try and report back. It's just confounding because I fixed a problem only to break something else.
 

Alo81

Low Poly Gynecologist
SMH at the people chasing him away with their stupidity.

Dude was being a bit of a knob in his response. Looking back on how I initially responded to him I could understand how someone could read it as rude but it wasn't my intent. His response escalated it to a much higher level than it ever needed to go.
 
I have an i7 @ 2.2GHz, so I have no idea if that could be a problem. I'll give GPUz a try and report back. It's just confounding because I fixed a problem only to break something else.

GPU-Z wont show you anything about whether or not the card is being used. Go into the Catalyst Control Center, look under application profiles, or application settings, then select your darksouls.exe and on the GPU drop box select the dedicated card, not the integrated.

Also, if your computer is running on battery and not plugged into the wall, many will default to using the integrated card. So make the profile, make sure your laptop is plugged in, and all should be good to go.
 

firehawk12

Subete no aware
GPU-Z wont show you anything about whether or not the card is being used. Go into the Catalyst Control Center, look under application profiles, or application settings, then select your darksouls.exe and on the GPU drop box select the dedicated card, not the integrated.

Also, if your computer is running on battery and not plugged into the wall, many will default to using the integrated card. So make the profile, make sure your laptop is plugged in, and all should be good to go.

Hrm, all I can do is set it to "High Performance", which I assume is using the dedicated GPU.

I was going to say that GPU-Z said that my Intel card was clocked at 1000mhz while my ATI card was at 100mhz when the game was playing, but I guess that doesn't matter?

Could it be my driver then? Is there an ATI driver that works with the game?

(BF3, TOR and ST:O run at 45-60 FPS for me with the new driver, which is why I don't want to go back...)
 
Dude was being a bit of a knob in his response. Looking back on how I initially responded to him I could understand how someone could read it as rude but it wasn't my intent. His response escalated it to a much higher level than it ever needed to go.
His response was pretty adequate considering your comment. "Your mod is unworthy of my attention because of the screenshot format. Get and post them the way I tell you and maybe I'll care".
 

Alo81

Low Poly Gynecologist
His response was pretty adequate considering your comment. "Your mod is unworthy of my attention because of the screenshot format. Get and post them the way I tell you and maybe I'll care".

When mods for games are a dime a dozen, unless given a reason to check them out, then yes they are unworthy of attention.
 

firehawk12

Subete no aware
Bit of an update. I tried fiddling with the internal resolution settings to make it match my native res (1366x768) and it bumped up to 15 FPS, but it still plays worse than without DSFix. Should I make it go even lower?
 
GPU-Z wont show you anything about whether or not the card is being used. Go into the Catalyst Control Center, look under application profiles, or application settings, then select your darksouls.exe and on the GPU drop box select the dedicated card, not the integrated.

Also, if your computer is running on battery and not plugged into the wall, many will default to using the integrated card. So make the profile, make sure your laptop is plugged in, and all should be good to go.

I beg to differ, kind sir.


The latest versions have a nifty GPU load % indicator for the active GPU, and a drop down menu box to select between your available graphics cards (so you get to see which GPU the game is utilizing).

In firehawk's case, he would choose the ATI card, and see whether the clocks (they should clock up in response to a 3D application, as opposed to 2D clocks) are responding to the game's presence.

@firehawk12

Hrm, all I can do is set it to "High Performance", which I assume is using the dedicated GPU.

I was going to say that GPU-Z said that my Intel card was clocked at 1000mhz while my ATI card was at 100mhz when the game was playing, but I guess that doesn't matter?

Could it be my driver then? Is there an ATI driver that works with the game?

(BF3, TOR and ST:O run at 45-60 FPS for me with the new driver, which is why I don't want to go back...)


You mention that your ATI card was only clocked at 100 MHz while running the game?

According to notebookcheck.com, your 7690 M should be at 725 MHz when in 3D (active) mode.

That means that your ATI card is not being used by the game at all. The expected behaviour is for the card to clock itself up automatically in response to a 3D Application. In your case, the system is not switching to the dedicated graphics card and is instead relying on the Intel integrated card for Dark Souls.

It does matter. Do not disregard what I posted earlier on.
 

firehawk12

Subete no aware
I beg to differ, kind sir.


The latest versions have a nifty GPU load % indicator for the active GPU, and a drop down menu box to select between your available graphics cards (so you get to see which GPU the game is utilizing).

In firehawk's case, he would choose the ATI card, and see whether the clocks (they should clock up in response to a 3D application, as opposed to 2D clocks) are responding to the game's presence.

@firehawk12

You mention that your ATI card was only clocked at 100 MHz while running the game?

According to notebookcheck.com, your 7690 M should be at 725 MHz when in 3D (active) mode.

That means that your ATI card is not being used by the game at all. The expected behaviour is for the card to clock itself up automatically in response to a 3D Application. In your case, the system is not switching to the dedicated graphics card and is instead relying on the Intel integrated card for Dark Souls.

It does matter. Do not disregard what I posted earlier on.

Ah wow, looking at the GPU load number, it looks like it's not using the ATI card at all then. :(

I already have it set to "High Performance" in CCC... is there anything else I can do to force it to use the ATI card?
 
Ah wow, looking at the GPU load number, it looks like it's not using the ATI card at all then. :(

I already have it set to "High Performance" in CCC... is there anything else I can do to force it to use the ATI card?

I assume you've tried everything, but does changing the game mode from windowed mode to full screen (making sure to disable borderless windowed mode in dsfix.ini) do anything?

You are plugged into your wall socket while testing this out right?

EDIT:- Hmm.. I just thought of something. Run BF3 (or any other game with good performance, and that you're sure is being detected correctly and properly utilizing your dedicated AMD GPU), until the main menu (do not go in the game proper, we're trying to minimize the GPU load from BF 3) and then minimize it (or Alt Tab). Try running Dark Souls again with Dsfix enabled after that. Do report back.

Ensure that you've unlocked the framerate in dsfix.ini, and also set a reasonable rendering resolution for your screen (native is fine)
 

Alo81

Low Poly Gynecologist
And he did, perfectly representative screenshots. Whining about them being JPG instead of looking at them was pretty dumb.

I didn't whine because they were JPEGs. He used low quality images with a ton of compression to show off the slight difference of a visual tweak between two things.

Would you say "Hey guys check out this cool video I made, the art assets are stellar!" then post a 240p youtube video?
 

firehawk12

Subete no aware
I assume you've tried everything, but does changing the game mode from windowed mode to full screen (making sure to disable borderless windowed mode in dsfix.ini) do anything?

You are plugged into your wall socket while testing this out right?

EDIT:- Hmm.. I just thought of something. Run BF3 (or any other game with good performance, and that you're sure is being detected correctly and properly utilizing your dedicated AMD GPU), until the main menu (do not go in the game proper, we're trying to minimize the GPU load from BF 3) and then minimize it (or Alt Tab). Try running Dark Souls again with Dsfix enabled after that. Do report back.

Ensure that you've unlocked the framerate in dsfix.ini, and also set a reasonable rendering resolution for your screen (native is fine)

So CCC kept crashing and I ended up just wiping all the drivers and reinstalling them. I was able to force CCC to manually switch GPU (which was something I couldn't select before for some reason) and that did the trick and now I'm playing on the GPU.

The only weird thing is that the leschat drivers installed a 7670M driver when I have a 7690M, but I assume the cards are similar enough that it doesn't matter.

Anyhow, thanks for troubleshooting that for me! :)
 
So CCC kept crashing and I ended up just wiping all the drivers and reinstalling them. I was able to force CCC to manually switch GPU (which was something I couldn't select before for some reason) and that did the trick and now I'm playing on the GPU.

The only weird thing is that the leschat drivers installed a 7670M driver when I have a 7690M, but I assume the cards are similar enough that it doesn't matter.

Anyhow, thanks for troubleshooting that for me! :)

Ouh, you're using leshcat's drivers now?

Excellent choice for Intel-AMD hybrids.
 
I didn't whine because they were JPEGs. He used low quality images with a ton of compression to show off the slight difference of a visual tweak between two things.

Would you say "Hey guys check out this cool video I made, the art assets are stellar!" then post a 240p youtube video?

The screenshots he posted show perfectly the difference between the default VSSAO and his version. It's much more notable if you put the images on different tabs and switch between them. The compression in this case is inconsequential so yeah, whining was a dumb thing to do.
 

Easy_D

never left the stone age
And he did, perfectly representative screenshots. Whining about them being JPG instead of looking at them was pretty dumb.

Agreed, the difference was clear as day if you opened them up in separate tabs (as you should when comparing something like AO). Easier to complain about jpegs than doing that, I guess.
 

S0N0S

Member
[Asmodean said:
;46428272]I don't know if anyone will want this or not, but, I said I'd post it. If anyone would like to use it or make further improvements etc.

I've made some improvements/changes to the current OBGE VSSAO implementation for Dark Souls.
  • Accurate AO Distance Checking
  • Dynamic Positional Occlusion Offsets
  • Positional Depth
  • BT.709 & sRBG luma coefficient weights for HD LCD
  • The Combine Function was compiling for SM 1.1, now amended to 3.0
  • 32 Samples, Instead of 9
  • Higher Quality AO Sampling
  • Improved Finite AO Noise
  • Denser, more refined AO Texturing.
  • On my system this version nets about 25%+ increased performance vs the default implementation (2560x1440, native, not downsampled)

Download: http://www.mediafire.com/?fg33oqyqz1ot65f (place in your DS binary folder, same place as dsfix. I've included my DSFix ini file as a reference)


Here's the code: (Don't use this, it's only for reference. Use the download link provided, as it has include folders, and a noise texture)
Code:
CODE
I've also done custom shaders for SweetFX, if anyone was interested in them, but seeing as this isn't the appropriate place to post them, I've left them out.

I had more screens uploaded, but they are a bit pointless, as you can't see the difference properly in them, So I just left 3 comparisons below. You may want to right-click and save them to view in full screen.

You'll need to actually see it in-game to clearly see the difference though.

OFF

off3_zps20819cf5.jpg



MINE

mine3_zpsb2d05b60.jpg



DEFAULT

default3_zpsdf930e17.jpg


Apologies for the long post.

My system
i7 3770k @4.4ghz
GTX 680
8GB 2133 CL9 1T

I saw this recently and tried it out for a few sessions. While I especially like that AO is noticeably more efficient, it's simply too distracting. Between the noise added(especially noticeable looking at the leaves on the ground in the Undead Parish) and the intensity of the effect even when set to low (see trees in Darkroot Garden), I just can't stick with it. It's a great effort aside from those two glaring issues, though.
 

Xenorik

Neo Member
Hi Durante, i wanted to ask you if there are any news about the problem i repoted some times ago about pixellated snow footsteps and pixellated light reflections on water when depth of field override is active.

The problem with snow can be seen in the Painted World of Ariamis, while the problem with water reflection can be seen for example in New Londo Ruins.

Thanks :)
 

SalomonA

Member
So I've been searching around trying to find a fix for the 60fps speed up problem. Well, is there any? I'm using the dsfix thing and have unlocked my fps to 60fps, which looks really smooth. But then the game plays at like 1.5 times the original speed, and it feels wierd. So, how do you get 60fps without getting the speed up thingy?

Sincerely your noob Dark Souls player
 
So I've been searching around trying to find a fix for the 60fps speed up problem. Well, is there any? I'm using the dsfix thing and have unlocked my fps to 60fps, which looks really smooth. But then the game plays at like 1.5 times the original speed, and it feels wierd. So, how do you get 60fps without getting the speed up thingy?

Sincerely your noob Dark Souls player

it should not increase the speed of the combat... but dooes cause some glitching with ladders and roll distance.

I think your just not used to how responsive it all is.
 

SalomonA

Member
it should not increase the speed of the combat... but dooes cause some glitching with ladders and roll distance.

I think your just not used to how responsive it all is.

No it's faster. Like when some enemy has spotted me and then charge at me, they like run like hell, it's crazy. The game is much more smother tho, but it feels like I have to change my game style to play with 60fps at this point.
 

loganclaws

Plane Escape Torment
No it's faster. Like when some enemy has spotted me and then charge at me, they like run like hell, it's crazy. The game is much more smother tho, but it feels like I have to change my game style to play with 60fps at this point.

I think you are just not used to 60 fps maybe? The speed of the animations should be the same just smoother.
 

Valtýr

Member
No it's faster. Like when some enemy has spotted me and then charge at me, they like run like hell, it's crazy. The game is much more smother tho, but it feels like I have to change my game style to play with 60fps at this point.


It's not faster. You're just not used to it. I thought the same thing initially until my brain readjusted.
 
Are you running any external apps to force vsync? If I recall correctly, that was one circumstance that could cause the game to run at an incorrect speed.

Also, what is your monitor refresh rate?
 

[Asmodean]

Member
If anyone here happens to be using my version of the DSFix VSSAO, I though I should suggest updating it to the latest version, as I've discovered, and fixed quite a few more bugs from the original OBGE version. Such as the aspect ratio being calculated incorrectly (backwards), along with other fixes and accuracy improvements.
 
Top Bottom