The story behind FF14’s Stormshade

An accidental project that became one of the game's most used graphical mod.

  • 0
  • 40
  • Saturday, April 21st, 2018 at 7:46 pm

I‘ve been using Crosire’s Reshade in almost every game I play on the PC. It’s one of those tools that makes an old game look new (graphical wise) via its complex shader injector system. It has a bunch of shaders baked in by default and although some of them are mostly “specialty shaders” designed for taking screenshots, others are actually quite useful and sometimes can really improve the overall visuals of the game.

One of the few games I play that heavily uses Reshade was Capcom’s Dragon’s Dogma, an old but amazing game that was originally released way back in 2012. The game got a “remastered” version for current-gen consoles in 2016 and was re-released as Dragon’s Dogma: Dark Arisen for the PC in 2017. Although the remastered version did improve the game’s overall visuals by offering 4K, you’ll still notice the game’s old age – which is pretty understandable considering that this game is already 6 yrs old.

Dragon's Dogma: Dark Arisen (PC)

Dragon’s Dogma: Dark Arisen (PC)

I was surprised to discover that almost all of reshade’s graphical shaders were supported in the game. I tried every single option available and discovered a couple of shaders that really changed the game’s overall look and feel. The results were amazing. It was like I’m playing a “remake” rather than a “remaster”. I took notes of the important shaders and focused on perfecting each settings based on my own preference. I also checked their respective online documentation to understand what each setting does. Upon finalizing everything, I made the settings I used in Dragon’s Dogma as my base configuration whenever I want to use reshade in any of my games.

“I accidentally discovered something in the latest version of reshade that made the game look totally different.”
The new Samurai job (Final Fantasy 14: Stormblood)

The new Samurai job (Final Fantasy 14: Stormblood)

Final Fantasy 14: Stormblood

I’m just a casual MMO player. My usual routine with MMOs is to reactivate my subscription once a major patch or expansion comes in ^^; I’ll finish all the main story quests and make sure my character reaches the highest level for that specific patch or expansion. I’ll often stay for a bit to get the latest gear but I usually cancel my subscription after a month or two of playing due to my busy work schedule.

FF14’s second expansion, “Stormblood”, just got released and man I was soo hyped to return to the game. I wasn’t really planning on using reshade either since most of what it did before (if I remember correctly) were mostly color and contrast adjustments. This is the time where I accidentally discovered something in the latest version of reshade that made the game look totally different.

Marty McFly’s MXAO

If you’ve been following reshade’s development, I’m sure you’ve heard of Marty McFly. He’s a shader programmer who developed the depth-based AO (Ambient Occlusion) shader called MXAO. It is a part of reshade’s default shader library and one of the secret sauce of Stormshade. This shader is a bit special since it doesn’t work in all games. From my understanding, this will only work with games that have an accessible depth buffer information. Fortunately, FF14 is one of those games.

Marty McFly's MXAO Shader.

Marty McFly’s MXAO Shader.

Upon using my reshade base config from Dragon’s Dogma, I was blown away by how different the game looks with MXAO turned on. The game suddenly generated shadows and highlights (via MXAO’s indirect lighting technique) that were never present in the game before even with the game’s default AO (HBAO) activated. The game looked totally different and somewhat “next-gen”. It was a game changer – but with one major problem.

“It was a game changer – but with one major problem.”

Turns out that reshade has built in checks on some of its shaders that uses depth information and will turn off automatically once it detects any network activity. Since FF14 is technically an online game (with a LOT of network activity ^^;), the shader that improved almost every graphical aspect of the game became useless.

I was a bit disappointed upon discovering this and it made total sense when I learned why reshade was designed that way. If those checks were not implemented, people might use it to gain unfair advantage in online games (ie: seeing through fog or smoke).

Stormshade in-game screenshot with UI.

Stormshade in-game screenshot with UI.

Open Source Reshade

All hope is not lost because reshade was turned to open source by the developer and all of its resources are available on Github. I really wanted to play the game with the “unlocked” shaders and the only thing I could do is to mess around with the source files.

Reshade source on Github.

Reshade source on Github.

Reshade was compiled using visual studio and although I have no issues using it, I still need to know which file and which line of code is responsible for the network check. I googled for hours and found some hints on how to disable it. One guy successfully disabled it for use in Guild Wars 2, but he didn’t mention what code to disable. Tried to use the file but it didn’t work as it was using a very old version of reshade.

After a few more hours of googling, I was redirected to reshade’s official forums. There’s a point in the thread where one member asked about the network check and although the answer was not very clear (at first), I was able to figure out the exact file and line of code I needed to tweak.

“I really wanted to play the game with the “unlocked” shaders and the only thing I could do is to mess around with the source files.”

With all the information I need, I started Visual Studio and began editing the source files. I thought it would be an easy process to rebuild reshade from source but turns out there are still more things I needed to figure out >< Upon editing the file in question and compiling it, it throws me a bunch of errors 0_0. Turns out that depending on the version of your Microsoft Visual Studio, you still need to identify all of reshade’s dependencies (external code libraries) in order for it to compile properly.

Fortunately, I was able to setup all dependencies thanks to the error codes from the console. I clicked the “build” button and waited with crossed fingers. After a minute or two, the console finally displayed the message “build complete”!

Reshade Unlocked!

Still with crossed fingers, I used the newly compiled file and immediately launched FF14’s Frontlines PVP. It’s one of the modes in the game with heavy network usage so it’s the best place to start verifying if the built in network check was in fact, disabled – and it was! Yay!

Stormshade Screenshot

Reshade screenshot with unlocked z-depth buffer.

“…went to FF14’s official subreddit and dropped the news there. I was in the front page in just a couple of hours – but not for the good reasons ^^;”

I continued playing the game for days to make sure everything is working and told myself “I should really share this with the community”. I then decided to give it an official name, pushed all of my files to Github, prepare a proper documentation, and setup a quick website (via Wix) for presentation purposes. I then went to FF14’s official subreddit and dropped the news there. I was in the front page in just a couple of hours – but not for the good reasons ^^; I was upvoted in the front page to warn everyone to never use it because It was a scam and I was a hacker ^^; They actually have a good reason for those accusations since I’m not an active reddit user.

Stormshade Screenshot

@MateusG3 screenshot shared via Stormshade’s offical discord server.

People started verifying my files using different virus and malware scanners and that same people posted later on that all of it are legit and safe to use. The reddit thread somewhat died out after but not my reddit inbox as I’m receiving a lot of warm compliments (and a LOT of questions) from different players. the news about it just kinda flew off and everyone is posting about it on Twitter. I decided to create an official discord server for questions/updates and the community has been very active since release helping others and sharing awesome screenshots.

Stormshade Screenshot

@Halyen screenshot shared via Stormshade’s official discord server.

Stormshade Screenshot

@theBandit screenshot shared via Stormshade’s official discord server.

Closing

I wasn’t expecting Stormshade to become quite popular in the community since technically, it’s just a custom Reshade. All credit still goes to the awesome devs responsible for this tool and its shaders. I just basically tweaked the source files to “unlock” the “network locked” shaders and compiled additional tweaked shaders that everyone can use and customize. So far, a lot of people are creating their own custom presets and have been sharing amazing screenshots on Stormshade’s official discord server.

Just in case you haven’t tried it out, head over to Stormshade’s official site or visit its github repo for installation instructions.

Got something to say?

About Me

I love art, games, toys, and cycling. I currently work as a designer/developer based in Manila, Philippines. Learn more about me.

back to top