SpecialK default settings breaks most Unity games (Pathfinder: Wrath of the Righteous and many more)

By default, Texture caching / injection is enabled. For whatever reason, unity does not like this. It breaks various shaders/textures, resulting is very glitches looking graphics, or corrupted text. I play a TON of indie unity games, so it’s a bit annoying having to disable texture caching every single time. Especially since I don’t find it useful for any game. It doesn’t crash the game or anything, but results in SEVERE graphical glitches.

Is there a way I can disable it globally? I figured out some global settings on my own, but i couldn’t find any documentation anywhere, so im not sure which files to edit, or which headers they belong in.

And yea, you should just auto disable it for unity. I believe i saw a patch note where you do some setting automatically for unity games, and lately I’ve noticed unity games auto restart and i guess apply different settings on first run, so this would be a good one to apply too for unity.

(Unreal games, for the most part it’s no issue. Lots of ppl using Godot lately as well, and had no issues with it either. That said , I’m not sure there’s any significant performance benefit to it, so in the interest of compatibility, it may be best to default off for all engine? in any case, unity for certain)

Rather popular game it breaks: Pathfinder wrath of the righteous:
This one it breaks in quite an annoying way, as the game works 100% fien the first run, and also through the entire starting act, which is lengthy. But once you reach the first dungeon, your character will suddenly be fullbright all the time, no lighting shaders applies, very ugly. Rest of game including renders fine. Took me a while to figure out it was specialK causing this.
Other games confirmed issues:
-Project Lazarus: Screenshot: https://i.imgur.com/JGTvjhD.jpg
(broken texture/shader for planet)
-Rogue Genisia demo: https://i.imgur.com/YHoe2oZ.jpg
(Makes fog like 100000x more, so can’t see anyhing)

And pretty much 100% of all the recently vampire survival clones that use unity same issue. Could list another 30 games but yea, it’s like 90% of unity games, not all, but certainly most version of unity.

PS: Been meaning to post this for like a year, but wasn’t too annoying to disable texture caching per game… However a recent build you broke it and it seems texture caching was always forced on no matter the setting: v.22.8.9.1 . Had to roll back to 22.8.1.0 to get unity games working again.

The issue is that the Ignore Textures Without Mipmaps option for the texture cache is not enabled. However that setting should already be automatically enabled by Special K and go into effect during the next launch.

Are you sure you’re still experiencing the issue on new games even after a restart?

100% sure. And I update my builds via the latest discord every fortnight or so. Been happening on 90% on unity games the last year.

And 100% on my recent vampire survial clone binge (like 10 games experienced issues.)

I do see special K restarting the game with new settings once detects unity, but it leaves texture caching enabled. As soon as I disable it and restart, problems go away.

I do see that setting IgnoreNonMipmapped=true is auto applied in unity games. But they still end up broken on first run, even after the built in auto-restart.

(and for v.22.8.9.1, they remain broken even with texture caching disabled)

First run is broken – hence why a restart is needed to apply the new config.

This is with the latest update in the Discord branch with Rogue Genisia demo after the initial game restart/shutdown:

Just tried Project Lazarus as well.

  • On first launch, SK throws a mipmap assert error, then the main menu is broken.
  • On second launch the Ignore Textures Without Mipmaps option kicks in and main menu is fixed.

From the looks of things, all that’s needed in some games are a manual restart to fix it.

Okay I tested latest build , and also got that error with rogue genesia demo, after clearing the profile:

So seems partially fixed in the latest build, just that error and the auto restart is not 100% reliable:

Out of curiosity tested a rather old unity game, WH40k Space Wolf (cica 2017, unity version 5.6.6), and it didn’t trigger the auto restart at all. So the first run results in corrupted text in that game, but no error message. Restarting it seems okay, though didn’t test long.

Is there any benefit to unity games without mipmaps to leaving it enabled?

And for my own knowledge, is there a way I can globally disabled it anyways even if it works fine in the latest nightly?

(Funny it was struggling with this a year and didnt post, and now i do, its’ mostly fixed heh)

The texture cache in general is beneficial since it decreases unnecessary I/O hits to the SSD etc by keeping textures in VRAM for longer.

As for how to disable it outright, you could set up a master config file that disabled the texture cache entirely:

[Textures.D3D11]
Cache=false

See the wiki for the specifics:

Thanks much. Appreciate the info, will try it out soon.

Though ya would be swell if we could leave it (or well the non-mipmapped fix) on for non-unity games, but have to auto disabled for unity and work first-run. Though i get the getting the auto-detect/auto restart functionality to be reliable/functional will be a challenge.

The default settings are to disable caching of textures that are BOTH, non-mipmapped and uncompressed, after detecting the game is Unity.

However, this isn’t even necessary anymore. I’ve tested recent builds and they work fine without auto-disabling this.

I can’t reproduce that fixed behavior on v22.8.15.1. Both games I tried earlier in this thread (the demo of Rogue Genesia and the full version of Project Lazarus) now doesn’t look right at all unless the ignore option thingy is manually ticked and the game restarted.

The easiest way to test this is probably through the main menu of the Rogue Genesia demo:

Without IgnoreNonMipmapped=true

With IgnoreNonMipmapped=true