diff --git a/Source/Core/IO/SRB2MapSetIO.cs b/Source/Core/IO/SRB2MapSetIO.cs
index aacb30228ed61951bcf5a8198e1f60d835835a20..97bfef5ce0d39212a47e02f89c3abe62a83ce60f 100644
--- a/Source/Core/IO/SRB2MapSetIO.cs
+++ b/Source/Core/IO/SRB2MapSetIO.cs
@@ -77,7 +77,8 @@ namespace CodeImp.DoomBuilder.IO
                 { 936, 0.4f },
                 { 937, 0.3f },
                 { 938, 0.2f },
-                { 939, 0.1f }
+                { 939, 0.1f },
+                { 940, 0.5f }  // modulate, placeholder value
             };
 
             startTypes = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35 };
diff --git a/Source/Core/Rendering/Renderer3D.cs b/Source/Core/Rendering/Renderer3D.cs
index 6d2407cf54b808fb0cab35f8e903767cd19e9b50..1cb9e59af17d4ebc0d040e5f9d10d0449f2fab64 100644
--- a/Source/Core/Rendering/Renderer3D.cs
+++ b/Source/Core/Rendering/Renderer3D.cs
@@ -994,14 +994,14 @@ namespace CodeImp.DoomBuilder.Rendering
 							break;
 
 						case RenderPass.Subtractive:
-							graphics.Device.SetRenderState(RenderState.BlendOperation, BlendOperation.ReverseSubtract);
+							graphics.Device.SetRenderState(RenderState.BlendOperation, BlendOperation.Subtract);
 							graphics.Device.SetRenderState(RenderState.SourceBlend, Blend.SourceAlpha);
 							graphics.Device.SetRenderState(RenderState.DestinationBlend, Blend.One);
 							break;
 
 						case RenderPass.ReverseSubtractive:
-							graphics.Device.SetRenderState(RenderState.BlendOperation, BlendOperation.Subtract);
-							graphics.Device.SetRenderState(RenderState.SourceBlend, Blend.InverseSourceAlpha);
+							graphics.Device.SetRenderState(RenderState.BlendOperation, BlendOperation.ReverseSubtract);
+							graphics.Device.SetRenderState(RenderState.SourceBlend, Blend.SourceAlpha);
 							graphics.Device.SetRenderState(RenderState.DestinationBlend, Blend.One);
 							break;
 
@@ -1139,14 +1139,14 @@ namespace CodeImp.DoomBuilder.Rendering
 								break;
 
 							case RenderPass.Subtractive:
-								graphics.Device.SetRenderState(RenderState.BlendOperation, BlendOperation.ReverseSubtract);
+								graphics.Device.SetRenderState(RenderState.BlendOperation, BlendOperation.Subtract);
 								graphics.Device.SetRenderState(RenderState.SourceBlend, Blend.SourceAlpha);
 								graphics.Device.SetRenderState(RenderState.DestinationBlend, Blend.One);
 								break;
 
 							case RenderPass.ReverseSubtractive:
-								graphics.Device.SetRenderState(RenderState.BlendOperation, BlendOperation.Subtract);
-								graphics.Device.SetRenderState(RenderState.SourceBlend, Blend.InverseSourceAlpha);
+								graphics.Device.SetRenderState(RenderState.BlendOperation, BlendOperation.ReverseSubtract);
+								graphics.Device.SetRenderState(RenderState.SourceBlend, Blend.SourceAlpha);
 								graphics.Device.SetRenderState(RenderState.DestinationBlend, Blend.One);
 								break;
 
@@ -1521,14 +1521,14 @@ namespace CodeImp.DoomBuilder.Rendering
 							break;
 
 						case RenderPass.Subtractive:
-							graphics.Device.SetRenderState(RenderState.BlendOperation, BlendOperation.ReverseSubtract);
+							graphics.Device.SetRenderState(RenderState.BlendOperation, BlendOperation.Subtract);
 							graphics.Device.SetRenderState(RenderState.SourceBlend, Blend.SourceAlpha);
 							graphics.Device.SetRenderState(RenderState.DestinationBlend, Blend.One);
 							break;
 
 						case RenderPass.ReverseSubtractive:
-							graphics.Device.SetRenderState(RenderState.BlendOperation, BlendOperation.Subtract);
-							graphics.Device.SetRenderState(RenderState.SourceBlend, Blend.InverseSourceAlpha);
+							graphics.Device.SetRenderState(RenderState.BlendOperation, BlendOperation.ReverseSubtract);
+							graphics.Device.SetRenderState(RenderState.SourceBlend, Blend.SourceAlpha);
 							graphics.Device.SetRenderState(RenderState.DestinationBlend, Blend.One);
 							break;