Friday, July 26, 2013

Microsoft Flight Simulator X (FSX)

Fix by Bo3b


Removed the screen depth lights on runways, towers, beacons.




FSX is one of the top flight simulators, and works fairly well in 3D.   Convergence and depth work well.

The lighting effects have always been a problem, and dramatically detract from the experience in 3D, because all lights are at screen depth.

This fix is marginal, because it only deletes the light effects and aircraft labels.  That means that day flying is now pretty good, but night flying loses all the runway lights.  Maybe pretend that it's an airport power failure.

How to install (this is not a Helix mod):

0) This only works for the SP2 version of FSX.

1) Use the standard FSX profile.  Other profiles were tested, but don't solve the problem.

2) Rename "..\Texture\halo.bmp" to "original halo.bmp" to disable runway lights.

3) Rename "..\Effects\texture\fx_2.bmp" to "original fx_2.bmp" to disable beacons.

4) Go to Settings->Customize->Traffic and uncheck "Show aircraft labels" to disable red text over other airplanes.


I'm still looking into a fix, instead of just deleting the effect, but it's not promising.

Microsoft coded all graphic effects in a 2D library 'g2d.dll'.  The effects appear to be hard coded and are done after the 3D pipeline has completed.  There are no vertex shaders associated with the effects, and the items in the 3D models that are used for placement are not visible.

The effects for sun, moon, fireworks, and smoke also have the same problem.  I did not delete them, because of their rarity.  It should be possible to delete other graphic files if that seems worthwhile.


  1. Not sure if this would work, but try using the trick whereby a scene depth map sampler can be re-used in another shader by specifying it in the dx9settings.ini file. This is the technique for making a cross hair dynamic. Am on iPhone right now else would post the settings and example code - look in the bioshock fixes. Biggest pain will be finding a sampler that can be re used and it might not be possible.

    1. Thanks for that suggestion. That's not a bad idea. I'm still trying to find something that will give me the original position of the lights, and I might be able to get something through the HLSL folder, now that I disabled the obscuring and bad light effects. The HLSL folder includes all of the non-effect code, and can possibly be used to find the depth map.

  2. Replies
    1. No improvement, sorry. I'm pretty sure that the current lights and fog effects are not fixable, because they are run through a specifically 2D library that doesn't use shaders to change the screen. There are no shaders that HelixMod can see, and I looked at all of the HLSL code and nothing is used there as well. As near as I can tell, it's C code directly changing the display buffer. Possibly an artifact of its ancient heritage.

      The only last thing to try would be to substitute the broken lights with known working lights. I know that some 3rd party mods have working lights, but I'm not willing to pay for them.