GeDoSaTo Beta 10 Release – “Poltergeist”

Two weeks have passed, time for another release. Lots of fixes and additions in this one, and also many new profiles. My article seems to have worked to at least some extent, it’s great to see pull requests popping up on GitHub (even if most are not code).

Changelist:

  • 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
  • GeDoSaToTool:
    • Can now sort black/whitelists
    • Fixed working directory when launched at windows startup
  • 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

Download GeDoSaTo 0.10 “Poltergeist” here. And if you just found out about GeDoSaTo or have been using it for a while and want to encourage further work on it donations are always welcome.

One more thing: if you want to report bugs or request features, please do so at github. It’s much easier to follow, manage and discuss such things there than in the blog comments!

GeDoSaTo Beta 9 Release – “Underground Network”

This is mostly a bug-fixing and compatibility release, while under the hood changes continue to get ready for broader API support (which, before you ask, is a lot of work and will still take a while).

Changelist:

  • General:
    • Added nearest neighbour scaling option (this is intended to be used for upscampling in retro games, not downsampling)
    • Added “interceptOnlySystemDlls” option to potentially increase compatibility with 3rd party injectors
    • Fixed enum ordering in the scaler (should *really* fix Mafia 2)
    • Fixed overlays/console not rendering in some games
    • Fixed normal resolution screenshot regression introduced in beta 8
    • Fixed initialization for games which use automatic depth/stencil generation (e.g. Witcher 1)
    • Fixed initial render state settings
  • GeDoSaToTool:
    • Added option to launch at windows startup
    • Added command line option for launching minimized
    • Check for and resolve leftover registry entries on startup
  • Generic Plugin:
    • Extended postprocessing/screenshot targeting functionality (can now delay to first draw after marked pixel shader is set)

Basically, this release further improves compatibility, fixes some bugs and increases the functionality of the generic plugin. It also adds some requested useability features to GeDoSaToTool.

Download GeDoSaTo 0.9 “Underground Network” here, and if you want to encourage further work on GeDoSaTo donations are welcome.

There are even more options which can be configured per-game now, so if you find some compatibility settings (or good postprocessing options) for a given game please contribute on github.

Edit: Oh, and yes, Chrome is probably still falsely flagging GeDoSaTo. Take it up with Google, their processes for trying to get this fixed are stupid.

GeDoSaTo Beta 7 Release – “Seishoujo Sacrifice”

The first release after open-sourcing the project! There haven’t been any source contributions yet, but at least one person gave me some pointers to issues which need investigation.

I’m very happy with this release, particularly since I managed to fix the alt-tabbing crash bug which has been in GeDoSaTo since day 1 (read more here). But there are lots of other improvements as well, see below.

Changelist:

  • General:
    • Fixed Alt-tab crash when downsampling in fullscreen mode (!)
    • Added IDirect3DSwapChain9 interception (fixes compatibility with some games, e.g. Dragon Age Origins)
    • Screenshot fallback to full-size if hudless not available
    • Fixed Z/stencil buffer format detection (fixes e.g. GTA4)
    • Improved handling of automatically generated z/stencil buffers (don’t duplicate, we don’t need an original-res depth buffer when downsampling)
  • Generic Plugin:
    • Store screenshots after AA/postprocessing, not before
    • Only use float BB if required (should improve AA/post performance on most games)
    • Added ability to specify a “marker” pixel shader in the configuration, in order to apply AA/postprocessing before HUD rendering and capture hudless screenshots
  • GeDoSaToTool:
    • Added ability to edit game profiles using the built-in editor (still need to be created externally)

I guess I will need to create a guide for the new pixel shader marker functionality in the generic plugin. Its goal is to allow everyone to enable postprocessing without affecting the UI and hudless screenshots for every game, simply by editing the config file, without coding a plugin or compiling GeDoSaTo. Currently, I’ve added a config file for Blackguards which uses this feature.

Download GeDoSaTo 0.7 “Seishoujo Sacrifice” here, and I always appreciate any donations made here.

If you find a shader hash and create a config file for a given game, please post it on github, I will then include it in future releases.

GeDoSaTo Beta 6 Release – “Stranger Than Fiction”

I’m rather proud of this release. There have been major changes under the hood, and I’m getting ready to release the source (and hopefully get bugfixes, improvements and plugins from lots of contributors).

First things first, I’ve decided to call this release the first beta. Also, since version numbers are dreadfully boring I’m adopting a new scheme whereby each release version will also have a name, and that name will be the name of an album I was listening to while working on it. This time around it’s “Stranger Than Fiction” by Bad Religion.

Changelist:

  • General:
    • Large-scale internal rewrite introducing game-specific plugin system
    • Moved all Dark Souls 2 specific code to a Dark Souls 2 plugin
    • Added generic plugin which supports AA and postprocessing in games without a game-specific plugin
    • Added performance monitoring system (per-frame CPU and GPU timing)
    • Added per-game settings support
    • Various bugfixes
  • Dark Souls 2:
    • Added option for different types of SSAO blur (the softer and better performing one used pre-0.5, and a fixed version of the sharper one introduced in 0.5)
  • GeDoSaToTool:
    • Now start up activated by default
    • Added Text viewer/editor component for readme viewing and editing setting files (has various text highlighting and autocompletion features)
    • Fixed black/whitelist handling in some circumstances
    • Fixed tray icon persistence in case of errors

Here is a screenshot of the new GeDoSaToTool UI:

And here’s what the performance monitor looks like:


In the source screenshot for the image above you can see GeDoSaTo running with SMAA and postprocessing in Ys Origin.

Download GeDoSaTo 0.6 “Stranger Than Fiction” here, and as always you can donate here if you enjoy using it.

The next steps are writing some developer documentation and a ToDo list, and then getting the source up on GitHub.

GeDoSaTo DS2E Alpha 5 Release

This one focuses on adding and improving graphical features.

  • Added new HDR bloom & eye adaption effect. Some example screenshots: 1 2 3 4 5. It’s highly configurable in the effect file. Also, it’s not particularly performance intensive, since it does large-scale gaussian blooming on a rendertarget pyramid.
  • Improved the SSAO smoothing. It now takes relative depth into account, resulting in more detailed SSAO particularly on small features.
  • Added Asmodean’s postprocessing suite as an option. It’s softer and features cinematic tone-mapping, and gives quite a different result from the profile included previously (which is still the default). Performance is comparable over both options. Default Postprocessing / Asmodean Postprocessing. Of course, both options can be customized in detail.
  • I’m now distributing the release mode .dll of GeDoSaTo, which could result in a minor performance increase.

For the next version, I’ll focus on polish, adding some small requested features, and getting ready for a source release. In particular, I want to

  • Create a plug-in system for game-specific code.
  • Move all DS2 stuff to a DS2 plugin.
  • Add a “generic” plugin which allows postprocessing and SMAA/FXAA on all games supported by GeDoSaTo.

Download GeDoSaTo 0.5 here, and as always you can donate here if you like it.

Oh, and once again, please do read the README file before reporting issues.

GeDoSaTo DS2 edition Alpha 4 Release

This is a rather big one, even if you are not using GeDoSaTo with Dark Souls 2.

General Improvements:

  • Add option to completely hide the mouse cursor
  • Add option to force borderless fullscreen windowed mode

That’s right, you can now downsample in Borderless Windowed Fullscreen mode! This was a tricky one to implement, I need to make the game think that it runs both in a different mode (fullscreen) and a different resolution than it actually does, both when it uses Windows APIs and when it uses DX to query any information. This feature might therefore still be a bit buggy. Incidentally, this is also a workaround for the crash-on-alt-tab issue when downsampling. However, it breaks the Steam overlay — but you can just alt-tab to Steam instead.

DS2 Improvements:

  • Fix AO issue on systems with non-4:3 resolution, also improve other effect quality for such resolutions
  • Improve AO shader depth calculation
  • Upgrade SMAA to the latest version (quality improvement)
  • Implement stencil masking for SMAA (performance improvement)
  • Include FXAA option (a few people were asking for this since they prefer it in combination with downsampling)

The SMAA performance improvement is rather significant. In one test scene, previously Ultra SMAA would move GPU usage from 70% to 86% on my system, now it’s only from 70% to 80%. In comparison, the same scene with Ultra FXAA takes 77%.

Finally, I updated the readme file to hopefully make the instructions more clear. I’ll repeat them here:

  1. Extract the contents of the zip to some permanent directory
  2. Adjust the settings in GeDoSaTo.ini and GeDoSaToKeys.ini as desired
  3. [optional] Add your game executable names to “whitelist.txt” in the “assets” folder (dark souls 2 is already included!)
  4. Run GeDoSaToTool.exe *as Administrator*
  5. Click “Activate” (You can also make a shortcut for “GeDoSaToTool.exe -a”)
  6. Select the downsampling resolution in-game if you want to use downsampling
  7. ENABLE IN-GAME ANTI-ALIASING in Dark Souls 2 if you want to use any effects (also, disable in-game AO if you use GeDoSaTo AO, and in-game DoF if you use GeDoSaTo DoF)

Here is the download. And as always, you can donate here to support GeDoSaTo development, both for DS2 and in general.

Update:
To reply to the VAC questions: Yes, GeDoSaTo could potentially get you banned in any online game which uses an anti-cheat system. Just like anything else which modifies the game output, such as SweetFX or SMAA injection. Or, if you take user agreements literally, even FRAPS or a Mumble overlay. If you are concerned about this, then do not use anything which at all modifies what a game is doing in multiplayer/online games.
Personally, I hope modern anti-cheat tools are smart enough to figure out whether something just improves rendering or actually modifies the game’s data (that is, real cheating), but I can make no guarantees of any kind.

GeDoSaTo Dark Souls 2 Edition 0.2 ALPHA Release

Good news everyone!

Bug Fixes:

  • Fixed crashes when taking screenshots while not downsampling.
  • Fixed broken rendering after Steam popups.
  • Partially fixed SSAO issues (minor issues might remain, expect further improvement later).

New Features:

  • Added hudless screenshot key. If you want to play with the HuD but still take nice shots!
  • Added option for “basic” pseudo-Bokeh DoF effect. Not as nice as the true Bokeh DoF, but only ~1/5th the performance impact.
  • Improved SSAO performance outdoors.

Remaining known issues:

  • [GeDoSaTo] Crashes when alt-tabbing out of and back into the game.
    Cause: Unknown, probably a resource management issue.
    Note: This only occurs when downsampling, and only for some people.
  • [GeDoSaToTool] The tool complains that it cannot access the registry.
    Cause: Might be an access rights/permission issue. Try running as administrator.
  • [GeDoSaToTool] The tool complains that it can’t set the global hotkey.
    Cause: Unknown. But this doesn’t really matter, you just don’t get a hotkey.

By the way, sorry if I don’t reply at whatever channel you are trying to contact me through, I’m getting a lot of messages.

Here is the download. And you can always donate here to support GeDoSaTo development.

NOTE: the default settings in the ini included with this version are probably not what you want. In particular, change “presentInterval 2” to “presentInterval -1“.

GeDoSaTo Dark Souls 2 Edition 0.1 ALPHA Release

EDIT: If you came here from some external link, don’t get this, get the latest version. And please don’t report issues in outdated versions.

Well, this is it.

Get it while it’s hot. (link to outdated version removed, see above)
UPDATE 1
: Download link changed to version 0.1a, fixing (hopefully) .dll dependency.
UPDATE 2: It seems like Steam Overlay popups break the graphics in DS2 with GeDoSaTo currently. Disable the Steam overlay as a workaround for now.

For more information about the background and development of GeDoSaTo, read my earlier blog post about it.

For an in-depth description of what it can do for Dark Souls 2, do read my PC Gamer article. I really enjoyed working with the people at PC Gamer, and not just because they gave me early access to the game ;)

Please remember that this is an initial public alpha release, as such it’s almost certain to be buggy.
And please read the readme file carefully. It is included in the download. And if you want to quickly get an idea of the state of things in-game, press the “+” button on your numpad. It should show you GeDoSaTo status information.

Oh, and if you enjoy what I’m doing and have lots of disposable income, consider donating to further GeDoSaTo development. There’s a lot yet to be done.

PtBi 5.1851 Released

Some recent emails reminded me that there are still people out there who use PtBi. It seems like AMD got more strict in their interpretation of the GLSL standard somewhat recently. This new version should hopefully fix that issue, and it also includes a few other things:

  • Various sound bug fixes. This time around, audio is really fixed.
  • A new, more readable console font.
  • Statistical tracking of frame processing time and audio buffering.
  • A snazzy overlay display for that information (the default toggle key for it is bound to “T”).

Here’s a screenshot:

Capture

 

Aliasing and Anti-aliasing Comparison Tool

ss_2013-12-24_20-32-42This is a tool for illustrating the various types of aliasing which can occur in computer graphics, and how many common methods of anti-aliasing interact with them. I wrote it to accompany an article which will be published some time in the future, and which contains a rather detailed treatment of the topics of aliasing and anti-aliasing.

A main point is to also show aliasing (that is, flickering and image instability) in motion, which is insufficiently captured by the common screenshot or (compressed) video comparisons.

There are 6 types of aliasing shown (transparency aliasing, geometry aliasing (2D and 3D), sub-pixel aliasing, texture aliasing and shader aliasing), and many methods of anti-aliasing are available.

ss_2013-12-24_20-44-07The 1-8 keys are mapped to presets which show some common anti-aliasing methods:

  1.  none
  2. 4x MSAA
    multisampling, generally sparse grid
  3. 2×2 OGSSAA
    ordered grid supersampling with 4 samples
  4. 4x SSAA
    turns the 4 multisamples into supersamples, thus 4x SGSSAA on most HW
  5. FXAA
    just post-processing, see sub-pixel effects
  6. SMAA
    as above (note better motion stability)
  7. 1.5×1.5 OGSSAA + SMAA
    similar to what can be achieved via injection in most games, often decently playable
  8. best
    maximum number of SGSSAA samples plus 2×2 OGSSAA. Close to the “ground truth”, that is the perfect representation of the scene on the pixel grid

Let me know if anything breaks. I do know that the PXAA and TPXAA PPAA methods don’t work on AMD, if anyone wants to help fix it (and has the time) contact me and provide some means of synchronous communication (e.g. Steam ID).

Source code release soon.

Download here!

(If you encounter an error about missing some .dll when running the program, get the Microsoft C++ redistributable here)

(Edit 2014-1-14: updated to fix an issue which could occur with some AMD drivers)