diff --git a/src/hardware/hw_main.c b/src/hardware/hw_main.c
index 16987b88d7f2ac22839461163e98e19264e41c84..0e356269c379200e8edf9c7ce8cd7b6d5bcf85f3 100644
--- a/src/hardware/hw_main.c
+++ b/src/hardware/hw_main.c
@@ -5231,11 +5231,19 @@ void HWR_DoPostProcessor(player_t *player)
 		FOutVector      v[4];
 		FSurfaceInfo Surf;
 
-		v[0].x = v[2].y = v[3].x = v[3].y = -1.0f;
-		v[0].y = v[1].x = v[1].y = v[2].x = 1.0f;
-		v[0].z = v[1].z = v[2].z = v[3].z = 1.0f;
+		v[0].x = v[2].y = v[3].x = v[3].y = -4.0f;
+		v[0].y = v[1].x = v[1].y = v[2].x = 4.0f;
+		v[0].z = v[1].z = v[2].z = v[3].z = 4.0f; // 4.0 because of the same reason as with the sky, just after the screen is cleared so near clipping plane is 3.99
+
+		// This won't change if the flash palettes are changed unfortunately, but it works for its purpose
+		if (player->flashpal == PAL_NUKE)
+		{
+			Surf.FlatColor.s.red = 0xff;
+			Surf.FlatColor.s.green = Surf.FlatColor.s.blue = 0x7F; // The nuke palette is kind of pink-ish
+		}
+		else
+			Surf.FlatColor.s.red = Surf.FlatColor.s.green = Surf.FlatColor.s.blue = 0xff;
 
-		Surf.FlatColor.s.red = Surf.FlatColor.s.green = Surf.FlatColor.s.blue = 0xff;
 		Surf.FlatColor.s.alpha = 0xc0; // match software mode
 
 		HWD.pfnDrawPolygon(&Surf, v, 4, PF_Modulated|PF_Additive|PF_NoTexture|PF_NoDepthTest|PF_Clip|PF_NoZClip);