Blades of Time (GOG-Version on WIN11)

I have the following situation:

After a computer exchange from WIN7 to WIN11 I had to realize that the
game “Blades of Time” published 2012 for PC and redistributed on GOG 2020
no longer runs in combination with Texmod, but crashes directly (the GOG version).

Research revealed that the game has a problem with computers that use 32 processors, which is the case for me.
A simple solution to get the game running was therefore to run a script to limit the number of processors to be used for the game with
call cmd.exe /c start “” /Affinity EFFFFFFFFF “.\bladesoftime.exe”
With this little trick the game runs.
In order to use the game in combination with Texmod, I started its call with the processor restriction, which is then inherited by the game-exe.
Thus the call combination with Texmod was also executable.

But: Texmod could not replace textures.

To make the general conditions a little more precise :
Under WIN7 (with 16 processors) the game runs flawlessly, including in combination with Texmod.
The replacement textures (bundled in a *.tpf file) work.
Special feature here, however, is : Texmod must be run under WIN7 in compatibility mode for WinXP SP3. This seems to indicates a special feature of the game, because the compatibility mode is not required for other games on the same environment and also not requires on WIN11.

Research and a number of experiments have shown that Texmod seems to have a problem with the hook into the game wherever / for whatever reason.
Possibly the processor limitation is a problem for the hook.


So I came - on recommendation - to SpecialK and am still a newcomer to the application.


With SKIF, I can get the game to run if, after calling it up and being prompted to start the game , I start the game via my CMD script, which limits the processors.
In the game I see that the hook into the game has worked and I get the overlay menu.
So far so good.

Now to the problems/questions:
Unfortunately, no textures are replaced even with SpecialK.

The general conditions :
At startup, the overlay display shows “ D3D11 injectable textures found” but this does not always appear/work, although nothing is changed in the stored files.
How does this happen?

I open the overlay via CTRL-Shift-Backspace and get the following information :
“Active Render API” D3D9x [32bit]
Via “File Browse Texture Assets” I find (not always): “Injectable textures” MiB
Under “Direct3D 9 Settings” with “D3D9 Render Mod Tools - Enable Texture Modding + Clamp LOD Bias” under “Texture Memory Stats” I find entries for “Total” and “Base” but “Injected” 0 MiB.
So no textures are injected.

When I open “D3D9 Render Mod Tools”, under “Injectable Data Sources” / “Regular Filesystem” my stored replacement textures are displayed with MiB sizes, but with the status “Blocking”.
What does this mean in concrete terms?

When I go to “Live Texture View” and “Refresh Textures” I am shown various textures with names and when I click on one of them it is shown in the preview.
I can also dump this into the file system and the dds files end up under
S:\SpecialK\Profiles\Blades of Time\SK_Res\dump\textures\bladesoftime.exe<dds-type>\

If I go to “Misc. Settings” - ‘Dump ALL Textures at Load’, the loaded textures are written to the dump directory.

My replacement textures are stored under
S:\SpecialK\Profiles\Blades of Time\SK_Res\inject\textures
Is that correct (without subfolder DXT1 etc. as in the dump) ?

What I have experimented with :
Under “Compatibility Settings/Render backends” IO excluded the non D3D9* entries step by step.
Effect: Textures remain unreplaced.

I checked whether the old Texmod dds textures have the correct format (DXT1, DXT3, DXT5 etc.) by comparing some dump original files with my replacement files (e.g. via GIMP).
The format seems to be correct.

I found textures in the dump that I also have - visually compared - among my replacement textures.
The Texmod replacement files were called BLADESOFTIME.EXE_0x???.dds.
According to the dump, the SpacialK files are only called ???.dds.
However, the names ???, which probably correspond to a hex address, do not appear to be identical between Texmod and SpecialK do not seem to be identical - at least that is what the comparison of the textures in the dump and my replacement files suggest this. Could this be the case?

In order to exclude the possibility that there are name differences here that cause my replacement textures not being loaded because they may not even be found, I have taken one of the dump files from the dump folder to the inject folder to see if SpecalK can inject this original file.
Even though you can’t see any difference visually I find under “Direct3D 9 Settings” under “Texture Memory Stats” 0 MiB Injected.
So there seems to be no replacement.
Under S:\SpecialK\Profiles\Blades of Time\logs\textures.log you can find :

04/21/2025 06:35:46.932: [Inject Tex] Enumerating injectable textures… 19 files (27.8 MiB)
04/21/2025 06:35:46.932: [ Dump Tex ] Enumerating dumped textures… 349 files (155.6 MiB)
04/21/2025 06:35:47.204: [Unexpected][!] IDirect3DDevice9::CreateDepthStencilSurface (2560, 2048, 75, 0, 0, 1, 0011F52Ch, 00000000h)
04/21/2025 06:35:47.924: Slow hash for unoptimally aligned texture memory activated.
04/21/2025 06:35:49.185: [Inject Tex] Injectable texture for checksum (04278c9e)… streaming
04/21/2025 06:35:49.186: [ Tex. Mgr ] Texture Injection Failure (hr=80070006) for texture 4278c9e, removing from injectable list…
04/21/2025 06:35:54.053: [Unexpected][!] IDirect3DDevice9::CreateRenderTarget (4096, 2048, 1280070990, 0, 0, 0, 9C6B457Ch, 00000000h)

Apparently the unmodified original texture from the dump 4278c9e.dds has a problem.
What could be the cause here?

To exclude any WIN11-side authorization problem, I have also tried SKIF in admin mode as well.
No textures are replaced in this case either.

At this point, as a newbie, I ran out of ideas for researching the cause.

Can anyone help me ?

for injecting textures with sk, you should use the same hash/file name that the original dumped texture has (dumped from sk)

so if the original texture (dumped from sk) is 4278c9e.dds, the texture you’re injecting as a replacement should also be 4278c9e.dds

it’s also recommended to remove the dumped textures from the dumped folder after you’ve dumped them before launching the game again with sk.

that said, sk’s texture injection with d3d9/d3d9ex is not really supported nowadays. it might work using the latest version of sk if you’re lucky… or it’ll work with some older versions of sk, or it won’t work… your mileage may vary… it may also depend on the game etc.

also, for d3d9/d3d9ex texture injection, you may want to try sk version 22.3.11-NOCEGUI, which apparently worked for at least someone else some time ago with their d3d9 game while newer versions apparently wouldn’t (for d3d9 texture injection). somehow apparently it didn’t work for someone else though with a different game… and it also didn’t work properly for me with another game… but you could try with your game and see.

if you want to try that, you can find sk 22.3.11-NOCEGUI in the nightly-builds channel in the special k discord. here’s a link:

https://discord.com/channels/778539700981071872/792979353117524009/951827357675704320

also, i go over the 2 injection methods with d3d9/d3d9ex here (blocking vs streaming etc):
https://discord.com/channels/778539700981071872/778887425275199548/1104759535631085589

for general sk texture injection suggestions, i’d suggest seeing what i posted here:
https://discord.com/channels/778539700981071872/778887425275199548/1115718841331363941

and/or this:
https://discord.com/channels/778539700981071872/778887425275199548/1110344008464617554

beyond that, you could try an even older version of sk (i don’t know which…)

or another option could be using dgvoodoo.

i was able to use sk’s texture injection to replace textures in ff13 (d3d9 game) after using dgvoodoo to basically make the game d3d11

to use dgvoodoo to convert that d3d9 game’s calls to d3d11, you can see this:
https://wiki.special-k.info/SpecialK/dgVoodoo#enable-hdr-retrofit-for-directx-9-games

basically you’d convert the d3d9 game’s calls to d3d11, use the recommended dgvoodoo config settings mentioned in that sk wiki page (ignore the hdr parts if you’re not doing hdr), then you’ll inject special k with sk’s global injection, and try sk’s texture injection like you would for a d3d11 game (might need to set sk’s live textures view to all textures).

good luck.