DSfix 2.3 – Steamworks works

So, much earlier than I expected to, I’m able to present what everyone was waiting for: DSfix 2.3 supporting the Steamworks version of the game!

There is only one change, and that is updating the address offsets for the FPS fix to work with the new version. All other features still work as expected, at least according to my testing.

That this is possible so quickly is thanks to the contributions of boowoo90 on this very blog. Is he an undercover From Software operative? Just a talented reverse engineering guru? Who knows, but he supplied the required addresses in no time at all.

Get the latest version of DSfix here.

As all but the packaging of this update is the work of someone else, don’t donate just for that! However, if you are just now getting into Dark Souls after it is freed from the scourge of GFWL and find DSfix helpful you can donate here.

And remember, if you use the FPS unlock, you need to use some other method to achieve Vsync. Options include your graphics card’s control panel, D3DOverrider, or simply running Dark Souls in borderless windowed fullscreen mode using DSfix.

FF13 article

In unrelated news, my latest article on PC Gamer just got published. It discusses the Final Fantasy 13 and 13-2 ports. Busy day today!

Forcing Anisotropic Filtering with GeDoSaTo (in FF13 and elsewhere)

I just added a new option to GeDoSaTo, forceAnisoLevel.

You can use this option in any game, but it only makes sense in a select few. If you force anisotropic filtering in the driver, it’s smart about which surfaces and original filtering types it overrides – that’s why it very rarely breaks games, and this makes perfect sense for a driver option.

However, specifically in the case of running stuff at resolutions it was not built for and downsampling, it is sometimes beneficial to apply filtering even to surfaces specified to be point filtered, which is something the driver doesn’t do (as it could often break shaders).

The main reason I added this feature is FF13, or more specifically its HUD and menus. These are point filtered by default (since they are rendered 1:1 at 1280×720), which looks terrible at higher resolutions. This setting alleviates the issue, though of course higher-res UI assets would still be preferable. Here’s an example of the difference:

To use it, add a user-level FF13 settings file (if you don’t already have one) and add the line forceAnisoLevel 16 to it. See here for details on settings files – I have seen that this causes quite some confusion and sometimes erroneous bug reports.

As always, you can get the latest version by grabbing the installer here or simply update, and if you want to you can donate here.

FF13 micro-update

Another small update to fix some reported issues:

  • Fixed lack of postprocessing when disabling HuD
  • Fixed crash on alt-tab (again)

The latter took a lot more time to figure out than I expected. It seems that the game is actually leaking a backbuffer reference :/

About texture dumping/replacement: After getting the current GeDoSaTo facilities to work (more or less) on FF13, I figured out that most interesting textures (e.g. the fonts) aren’t actually being loaded using D3DX, so the existing mechanisms don’t help at all. I have a different method in mind (for a long time now actually), but this will take some time to implement.

Talking about time, what I wrote about on the blog a few days ago regarding not really having any time due to “real world” workloads applies now even more than before — after I spent basically the entire weekend on FF13. Therefore, don’t expect updates from me until next weekend.

That said, I’ve seen a lot of new forks at GitHub, so perhaps someone will make some contributions! I’ll try to merge good additions as quickly as possible if there are any.
As always, you can use the installer here to get the latest version (or just press the update button!), and you can donate here.

Small FF13 Updates MK2

I just pushed a new version once again, with these improvements/additions:

  • Added shadow scale option (increases shadow resolution)
  • Added settings for the number of MSAA samples and coverage sampling (that is, CSAA or EQAA depending on your GPU)
  • Mitigated issues with large screenshots (taking a screenshot should never crash now, but it might still fail at very high resolutions or settings – it will report that failure though)
  • Changed scaling order, fixes some sharpness issues

A few words on performance, according to my testing: Starting from a base setting of 3840×2160 with bicubic scaling at 60 FPS I get a GPU usage of 66% on my 770.

Increasing shadow scaling to 4 gives a very marginal increase to 67% (basically free on my system). Setting it to 8 goes up to 70%.

Going from the default 4xMSAA to 16xCSAA increases GPU usage from the 66% base to 70%. Worth it in my opinion. 32xCSAA (that is, 8 MSAA samples + coverage AA) goes up to 80% and the improvement is debatable.

As always, you can use the installer here to get the latest version (or just press the update button!), and you can donate here.

Small FF13 Updates

There’s a new version of GeDoSaTo with a new FF13 plugin up now. It includes these improvements:

  • Fixed crash on Alt-tab
  • Fixed all known instances of cut-offs (including e.g. items and settings) without introducing artifacts
  • Fixed AMD user issues and minimap (thanks to Garteal for investigating this!)

I’ll do a more in-depth look into the screenshot issues and the problems with texture dumping/replacement tomorrow, I really want to get a high-res font replacement.

Also, I did some initial experiments with increasing shadow resolution. Sadly, without also improving the filtering quality that doesn’t help all that much. And improving the filtering quality would require reverse engineering and replacing the shadow rendering shader, which is a longer task, so I’ve put it towards the back of the queue for now.

Anyway, as always, you can use the installer here to get the latest version (or just press the update button!), and you can donate here.

GeDoSaTo Beta 0.14 “Barrage am Ring”

I’ll shortly release a new version of GeDoSaTo, which includes a pre-alpha version of a custom plugin for Final Fantasy XIII. Its current features are:

  • Arbitrary rendering and presentation resolutions (only 16:9 though)
  • HUD hiding (using the normal GeDoSaTo keybindings)

It’s bugs and known issues are:

  • Some off-by-a-bit scaling issues, making the output less sharp than it should be in some circumstances
  • DoF effects are unchanged (still at original, low resolution – this is more apparent in contrast to higher resolutions)
  • Probably some stuff somewhere is cut off. I saw some scissor calls and am not dealing with them yet
  • Crashes when taking screenshots using GeDoSaTo
  • Rendering resolutions larger than 3840×2160 don’t work
  • Probably lots more

Some observations:

  • The game performs really well from what I’ve seen, both GPU and CPU-wise. But their frame limiting/pacing stuff sometimes seems to bug out.

Tons of stuff can still be improved — obvious ones like fixing bugs and the DoF, but also e.g. probably shadow resolution — so if you like this work and want it to continue consider donating.

Of course, I’d also really appreciate any development or debugging contributions. As always, the source is on Github.

You can download the installer from here, it will automatically grab the latest version.

Don’t report bugs in the comments, report them on GitHub (and check for duplicates or if they are known issues).