Previous Post

Taking TCU Mod to the Next Level

Next Post
Taking TCU Mod to the Next Level
1 / 20
DESCRIPTION

The next TCU Mod update post was supposed to be about the East Coast, but I've accidentally landed on a discovery that has now changed TCU Mod forever: Editing Shaders!In this post, we'll go over shaders, editing them, and a super sweet gallery of results, progress, fixes, and before-and-after comparisons. Let's get into it!SHADERS & THEIR PURPOSEYou can have as many different variables and settings in your materials as you want (which Wild Run has very very little of), but in the end, the Shaders are responsible for actually drawing the image on screen. If your shader code draws ugly lighting and reflection, that can not be fixed with materials and lighting configurations. If your shaders have massive severe bugs and oversights in them, that can't be fixed any other way but by fixing the shaders themselves.

As you may know, with the atrocious Wild Run update, the entire game's graphics renderer and all shaders were rewritten (which is never, ever done for an AAA game update, let alone less than a year later). The graphics and shaders were extremely bland, sad, and so caught up in chasing the pseudo-realistic PBR Image-based lighting trend, that they didn't even realize the final product was a soulless ugly piece of trash (truth be told), that is also an immeasurable insult to the immaculate graphics work of the original developers and artists. As if that wasn't enough, they also left a ton of genuinely pathetic graphics bugs in the Wild Run update and even entirely missing shaders, causing some objects not to render at all (like the light beams). Quality assurance? How can you assure something that isn't there?FIXING SHADERSFor the longest time, there was no way to fix or edit The Crew's shaders, as they were always shipped as compiled DirectX 11 bytecode files. There is a monstrous amount of them, and none of them have any file names, variable names, or any other comprehensible data to figure out which shader a file is. If the game were to ship with shader source code files (as many games do, such as Watch Dogs), it would've been a breeze to edit the game shaders, as there would be a (comparatively) small amount of files, all named, with retained variable names and data inside them. But alas...Thankfully, 3Dmigoto exists, which is a tool to hunt and fix DirectX shaders. You can hunt down the shader that you wish to edit live in-game, then you can dump it as a comprehensible HLSL shader code file and proceed to edit it (bytecode -> HLSL conversion done by 3Dmigoto). As DirectX shader bytecode files don't retain any variable names, they are still missing in the converted HLSL files, so editing those is no easy task. But after quite a while of trying, I managed to figure out how to work with those.I started getting pretty good results, and managed to fix some massive graphical issues in the game (more on those a bit later). Then I eventually managed to start bringing back elements of Pre-WR graphics entirely. It started to go from a fun little experiment into an actual highly wanted and needed part of TCU Mod.I didn't want to have to ship TCU Mod alongside shader fixes that are usable only if I also ship the 3Dmigoto software itself with them. That would make TCU Mod shipping and installation a huge mess... What if there was a way to convert these fixed shader HLSL files back into DirectX bytecode and then put them back into the game files as a usual mod?The legend known as FTIW has helped me with figuring it out, and thanks to his research we've figured out a way to do exactly that. The conversion process is very tedious, so I had to write some custom tools to automate it. Once TCU Mod is released, we will publish our findings and needed tools so anyone can make their own shader fix mods.SHOWCASE!Here is a little showcase I've prepared for you, with some before-and-after's. Let's go over them, and I'll explain what's going on in each one.Needless to say, but TCU Mod is still WIP, including these shader fixes and changes. Also none of these screenshots were edited in post, only the text was added.

What's going on here? - First and foremost, the most noticeable change is how the metallic parts of the car are rendered. Something I always noticed about Wild Run, is that reflective metals and other materials aren't reflective enough and look quite muted down. So, I could simply make the reflection more intense, but instead I've incidentally discovered a super stylish shading trick, one that Pre-WR actually used, where the reflection on surfaces facing up are more intense, while reflection on surfaces facing down are less intense. This was a massive game changer not just for cars and metals, but for the rendering/lighting of the entire world. More on that later. - The tonemapper is set up with a terribly incorrect gamma value in Wild Run, which another clearly disconnected developer had to compensate for with a 8-bit LUT color grading texture, for every weather for every time of day. I don't want to get super technical, but that is plain amateurish incompetence. I've corrected the gamma value at shader-level, which has unlocked a much broader range of luminosity, with vibrant light and contrasting dark, much like the original game.

Now this one was a shocker to me. It's simply a showcase of the difference in world rendering with that reflection rendering trick I mentioned above. As you can see, it highlights material details we have never even seen before. I have not altered any textures, materials or game assets here, this is pure shader work. This is the same equation I explained above, where up-facing surfaces have boosted reflection intensity, while down-facing surfaces have decreased reflection intensity. This is something the original game did and understood very well, and also had customizable directional ambient lighting settings for artists, versus Wild Run's full reliance on PBR/image-based lighting to color the entire world ambient lighting, with precisely 0 control. So much world detail and beauty has been lost due to this.

After fixing (...more like disabling) Wild Run's HORRIBLE AWFUL adaptive exposure, I've noticed that the dawn/dusk times of day still have bad lighting, where the sky is visibly brighter than the ground, as if the ground isn't getting enough of the sky light. Thankfully I managed to fix this issue at dawn/dusk, and even night time, which looks so good now... but I'm keeping all the night time upgrades for a future post... Sorry!

I really like this one. What's going on here? - If you look closely, you can see the really ugly flat lighting on terrain grass and flowers has been fixed. Each flower, each grass blade stands out on it's own now.- On-screen splash effects have been fixed. This is a beyond-embarrassing shader "bug", which isn't really a bug and happens because some Wild Run developer has multiplied the final color output by 0,0,0 (black). Again, is this deliberate malice or just incomprehensible incompetence? As usual, my answer is both. Either way, no more ugly black splashes on your screen: grass is green, dirt is brown, sand is yellow, snow is white, and they all blend very nicely into the environment without getting in your way at all. - Dark fog: This is something that, to me, is unfathomable to not have a control or setting for in your AAA game at all. As usual, the new fog shader is PBR "image-based"-lit, which causes it, at it's lowest brightness, to still be way brighter than desired, especially for heavy overcast/stormy weathers like this. This is something I've been hopelessly fighting for way over a year. I was only now able to fix this at shader-level. Now I can make the fog as dark or as bright as I want per weather, which is really awesome.Afternoon comparison:

And now, the biggest fix/change so far:

You know what else is unfathomable to me? Having precisely ZERO control over the sunlight in your AAA game. You can't change it's color, you can't change it's intensity, not per weather and not even globally. Because why would you have to ever change that when your game is already so SUPER realistic and physically based, right?The original game's per-weather sun color parameters still remain in Wild Run's weather data class, but they are leftovers from Pre-WR and do nothing now, as Wild Run has it's own global, hardcoded, pseudo-realistic and super bland sun color that's fed directly into the lighting shaders. But then, imagine my surprise when I randomly find out that for every shader that gets fed the WR sun color data, it also gets fed that unused per-weather sun color data, for absolutely no reason. I can't even begin to explain just how much we lucked out here!I got to restoring the actual weather sun color data from Pre-WR, and the results were beautiful:

This means I can still keyframe any sun color I want, at any intensity, at any time of day, in any region/weather. Hot and humid regions will have red/pink sunsets, arid and cold regions will have yellow sunsets, cloudy/overcast weathers will have less sunlight, etc.OTHER CHANGESAnd speaking of the sun, how about some sweet sun glow in fog?

Which is another case of sloppy shader work. The fog shader gets fed the sun color data, but it's never used, so you never ever have the sun light up the fog, no matter of the fog parameters.Sunlight glow in fog is a very artsy visual element that can make a sunrise/sunset scene really beautiful, if done right.

And lastly (for now!), I'm working on a restoration of specular mapping on terrain, off-road paths, and rocks. I don't even know what to say here, Wild Run straight up just does not render any specular mapping on any of these shaders, despite the specular map textures actually being assigned, resulting in them looking terribly flat and ugly. That's the kind of mind-baffling low quality and standards we're dealing here with Wild Run, if you can believe it.There are more shader fixes and changes in the works. I was hoping to be able to release the TCU Mod Demo Reel #2 with this post, but unfortunately I've ran into some technical issues that prevented me from being able to gather and edit the footage in time, and I'd prefer to not delay this announcement any longer. Expect the TCU Mod Demo Reel #2 semi-shortly after this post.But I still have a special bonus for you all anyway...IN-GAME SCREENSHOTSFeaturing an early prototype of TCU Mod HUD!

That's it for now.Next time, we'll see you in New York!

whammy4

TCU Project PATREON 1 favs
VIEWS1
FILES20 files
POSTEDJun 20, 2026
ARCHIVEDJun 20, 2026