Global "main" settings

Hello, my first time in this forum.

Apologies if this has already been asked a billion times, but is there no way to globally apply some of the SpecialK.ini settings, or at least apply a custom set of defaults?

I understand full well that some of the parameters in the config file are specifically tied to to the game/program in question, but I feel that a lot of them can be applied globally, such as plugin injections, HDR settings, disableBloatware, DPI scaling, forced front window, input settings, etc. Maybe there is a way to load a global file as a general default, overridden by what is written in the app profiles, I hope.

2 Likes
  master_name        =
    SK_GetDocumentsDir () + LR"(\My Mods\SpecialK\Global\master_)" + undecorated_name + L".ini";

Basically, take the name of the config file (SpecialK) and place a copy of it called master_SpecialK.ini in Documents\My Mods\SpecialK\Global\.

There is a little bit more to it, for example if you use local injection, the name of the config file is one of {dxgi|d3d9|OpenGL32}.ini, and it uses master_{dxgi|d3d9|OpenGL32}.ini.

Global injection always uses the SpecialK.ini file, so master parameters for global injection are easy (but obviously not tailored specifically to a game’s API).


I’d advise being careful with this, it confuses even me when some settings are forced globally and no amount of changing them in a game’s config does anything :stuck_out_tongue: At one point I figured a TargetFPS of 60.0 globally sounded nice; it wasn’t.

So the master file is of a lower priority than that in /profiles/? From what you have added in, it seems to be situational.

No, it is the other way around.

SK loads the game’s config file first, then after the config is loaded, it takes the values from master_... and applies them unconditionally over top whatever was already loaded for the game.

Hmm… That is actually a bit annoying to deal with. Is there a reason for this order and not the vice versa?

Anyways, thank you for the info

I thought this is what you were asking for?

If you just want to define some default values for when there’s no config file, the prefix default_{...}.ini works. That config file needs to be in profiles\<game_name>, it will be used whenever you reset the game’s config.

Sorry, it appears that I had worded my original question poorly; I was indeed asking for a place to set new defaults.

Can I place this default ini in Global, or does it need to be in Profiles?

This feature only works per-game (and thus that has to be in the Profiles directory), I can probably change it to work globally as well.

The motivation behind the default_... files was to keep certain settings after resetting the config using the “hold Ctrl + Shift at game startup” menu. Supporting it in the Global directory would actually serve a different purpose altogether, like you said. I think they’re similar enough though that it wouldn’t hurt anything and I’d just need to prioritize the file in profiles over Global.

Please do – this sort of global default settings would be awesome.

Feature has been implemented and will be included in the next release build:

+ Added support for loading 'default_{SpecialK|<api_name>}.ini' from
    Documents\My Mods\SpecialK\Profiles\<game_name> and
    Documents\My Mods\SpecialK\Global\

   >> These will be loaded the first time you launch a game, or after
        resetting the game's config. Global is loaded first, then profile.

It actually had only been working for copies of the INI file in the game directory, but now it’ll work for profiles and Global as well and handles chaining the default INI files in order to apply global and then profile defaults.


Pro Tip (Global\default_SpecialK.ini):

[SpecialK.System]
ShowEULA=false

No more EULA to agree to ever, because you’re special and read the forums :wink:

2 Likes

My initial implementation was kinda buggy, but this feature works as intended now. The only improvement I can think of would be managing the default as a kind of preset in SKIF when you launch games, select a preset to turn a game into HDR, for example.

As it stands, this is such a time saver for HDR calibration that I will have to make the functionality more prominent. Probably a widget button or something to import/export default settings. Shame I’m really the only developer on this project, little quality-of-life improvements like this could go a long way, but I’m busy with unique technical stuff most of the time.


Here are 32- and 64-bit builds with this functionality completed:

SpecialK64.7z (7.6 MB)
SpecialK32.7z (6.3 MB)

I hope to release 0.11.1 sometime this week.

3 Likes