diff --git a/src/posix/cocoa/i_video.mm b/src/posix/cocoa/i_video.mm index f92be1d3c..521f0648f 100644 --- a/src/posix/cocoa/i_video.mm +++ b/src/posix/cocoa/i_video.mm @@ -95,7 +95,7 @@ EXTERN_CVAR(Bool, vid_vsync) EXTERN_CVAR(Bool, vid_hidpi) EXTERN_CVAR(Int, vid_defwidth) EXTERN_CVAR(Int, vid_defheight) -EXTERN_CVAR(Int, vid_backend) +EXTERN_CVAR(Int, vid_enablevulkan) EXTERN_CVAR(Bool, vk_debug) CUSTOM_CVAR(Bool, vid_autoswitch, true, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_NOINITCALL) @@ -342,7 +342,7 @@ class CocoaVideo : public IVideo public: CocoaVideo() { - ms_isVulkanEnabled = vid_backend == 0 && NSAppKitVersionNumber >= 1404; // NSAppKitVersionNumber10_11 + ms_isVulkanEnabled = vid_enablevulkan == 1 && NSAppKitVersionNumber >= 1404; // NSAppKitVersionNumber10_11 } ~CocoaVideo() diff --git a/src/posix/sdl/sdlglvideo.cpp b/src/posix/sdl/sdlglvideo.cpp index 462bd1a0c..d5b9ad3d1 100644 --- a/src/posix/sdl/sdlglvideo.cpp +++ b/src/posix/sdl/sdlglvideo.cpp @@ -73,7 +73,7 @@ EXTERN_CVAR (Int, vid_adapter) EXTERN_CVAR (Int, vid_displaybits) EXTERN_CVAR (Int, vid_defwidth) EXTERN_CVAR (Int, vid_defheight) -EXTERN_CVAR (Int, vid_backend) +EXTERN_CVAR (Int, vid_enablevulkan) EXTERN_CVAR (Bool, cl_capfps) // PUBLIC DATA DEFINITIONS ------------------------------------------------- @@ -238,7 +238,7 @@ SDLVideo::SDLVideo () } #ifdef HAVE_VULKAN - Priv::vulkanEnabled = vid_backend == 0 + Priv::vulkanEnabled = vid_enablevulkan == 1 && Priv::Vulkan_GetDrawableSize && Priv::Vulkan_GetInstanceExtensions && Priv::Vulkan_CreateSurface; if (Priv::vulkanEnabled) diff --git a/src/rendering/hwrenderer/postprocessing/hw_postprocess.cpp b/src/rendering/hwrenderer/postprocessing/hw_postprocess.cpp index 37db55ce9..c692b9809 100644 --- a/src/rendering/hwrenderer/postprocessing/hw_postprocess.cpp +++ b/src/rendering/hwrenderer/postprocessing/hw_postprocess.cpp @@ -697,15 +697,11 @@ void PPAmbientOcclusion::Render(PPRenderState *renderstate, float m5, int sceneW ssaoUniforms.Scale = sceneScale; ssaoUniforms.Offset = sceneOffset; - DepthBlurUniforms blurUniforms; - blurUniforms.BlurSharpness = blurSharpness; - blurUniforms.InvFullResolution = { 1.0f / AmbientWidth, 1.0f / AmbientHeight }; - blurUniforms.PowExponent = gl_ssao_exponent; - AmbientCombineUniforms combineUniforms; combineUniforms.SampleCount = gl_multisample; combineUniforms.Scale = screen->SceneScale(); combineUniforms.Offset = screen->SceneOffset(); + combineUniforms.DebugMode = gl_ssao_debug; IntRect ambientViewport; ambientViewport.left = 0; @@ -739,6 +735,11 @@ void PPAmbientOcclusion::Render(PPRenderState *renderstate, float m5, int sceneW // Blur SSAO texture if (gl_ssao_debug < 2) { + DepthBlurUniforms blurUniforms; + blurUniforms.BlurSharpness = blurSharpness; + blurUniforms.PowExponent = gl_ssao_exponent; + blurUniforms.InvFullResolution = { 1.0f / AmbientWidth, 0.0f }; + renderstate->Clear(); renderstate->Shader = &BlurHorizontal; renderstate->Uniforms.Set(blurUniforms); @@ -748,9 +749,15 @@ void PPAmbientOcclusion::Render(PPRenderState *renderstate, float m5, int sceneW renderstate->SetNoBlend(); renderstate->Draw(); + blurUniforms.InvFullResolution = { 0.0f, 1.0f / AmbientHeight }; + + renderstate->Clear(); renderstate->Shader = &BlurVertical; + renderstate->Uniforms.Set(blurUniforms); + renderstate->Viewport = ambientViewport; renderstate->SetInputTexture(0, &Ambient1); renderstate->SetOutputTexture(&Ambient0); + renderstate->SetNoBlend(); renderstate->Draw(); } @@ -759,7 +766,10 @@ void PPAmbientOcclusion::Render(PPRenderState *renderstate, float m5, int sceneW renderstate->Shader = gl_multisample > 1 ? &CombineMS : &Combine; renderstate->Uniforms.Set(combineUniforms); renderstate->Viewport = screen->mSceneViewport; - renderstate->SetInputTexture(0, &Ambient0, PPFilterMode::Linear); + if (gl_ssao_debug < 4) + renderstate->SetInputTexture(0, &Ambient0, PPFilterMode::Linear); + else + renderstate->SetInputSceneNormal(0, PPFilterMode::Linear); renderstate->SetInputSceneFog(1); renderstate->SetOutputSceneColor(); if (gl_ssao_debug != 0) diff --git a/src/rendering/hwrenderer/postprocessing/hw_postprocess.h b/src/rendering/hwrenderer/postprocessing/hw_postprocess.h index c867d4ba3..fca4ec77b 100644 --- a/src/rendering/hwrenderer/postprocessing/hw_postprocess.h +++ b/src/rendering/hwrenderer/postprocessing/hw_postprocess.h @@ -650,7 +650,7 @@ struct DepthBlurUniforms struct AmbientCombineUniforms { int SampleCount; - int Padding0, Padding1, Padding2; + int DebugMode, Padding1, Padding2; FVector2 Scale; FVector2 Offset; @@ -659,7 +659,7 @@ struct AmbientCombineUniforms return { { "SampleCount", UniformType::Int, offsetof(AmbientCombineUniforms, SampleCount) }, - { "Padding0", UniformType::Int, offsetof(AmbientCombineUniforms, Padding0) }, + { "DebugMode", UniformType::Int, offsetof(AmbientCombineUniforms, DebugMode) }, { "Padding1", UniformType::Int, offsetof(AmbientCombineUniforms, Padding1) }, { "Padding2", UniformType::Int, offsetof(AmbientCombineUniforms, Padding2) }, { "Scale", UniformType::Vec2, offsetof(AmbientCombineUniforms, Scale) }, diff --git a/src/v_video.cpp b/src/v_video.cpp index ed809cb15..40d4ada7e 100644 --- a/src/v_video.cpp +++ b/src/v_video.cpp @@ -108,7 +108,7 @@ CUSTOM_CVAR(Int, vid_rendermode, 4, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_NOIN // No further checks needed. All this changes now is which scene drawer the render backend calls. } -CUSTOM_CVAR(Int, vid_backend, 0, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_NOINITCALL) +CUSTOM_CVAR(Int, vid_enablevulkan, 1, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_NOINITCALL) { // [SP] This may seem pointless - but I don't want to implement live switching just // yet - I'm pretty sure it's going to require a lot of reinits and destructions to diff --git a/src/win32/hardware.cpp b/src/win32/hardware.cpp index 0a0e39cab..7f101112c 100644 --- a/src/win32/hardware.cpp +++ b/src/win32/hardware.cpp @@ -51,7 +51,7 @@ #include "i_system.h" #include "swrenderer/r_swrenderer.h" -EXTERN_CVAR(Int, vid_backend) +EXTERN_CVAR(Int, vid_enablevulkan) extern HWND Window; @@ -130,7 +130,7 @@ void I_InitGraphics () } #ifdef HAVE_VULKAN - if (vid_backend == 0) + if (vid_enablevulkan == 1) { // first try Vulkan, if that fails OpenGL try diff --git a/wadsrc/static/menudef.txt b/wadsrc/static/menudef.txt index 9a5dfb62e..6fe4147e0 100644 --- a/wadsrc/static/menudef.txt +++ b/wadsrc/static/menudef.txt @@ -2709,8 +2709,10 @@ OptionString "LanguageOptions" "es", "Español (España)" "esm", "Español (Latino)" "fr", "Français" + "ko", "한국의 (Korean)" "it", "Italiano" - "ru", "Русский" + "pt", "Portugues do Brasil" + "ru", "Русский (Russian)" } /*======================================= @@ -2743,7 +2745,7 @@ OptionMenu "vkoptions" StaticText "$VK_WARNING" StaticText "$VK_RESTART" StaticText "" - Option "$VKMNU_ENABLE", "vid_backend", "OffOn" + Option "$VKMNU_ENABLE", "vid_enablevulkan", "OnOff" TextField "$VKMNU_DEVICE", vk_device Option "$VKMNU_HDR", "vk_hdr", "OnOff" } \ No newline at end of file diff --git a/wadsrc/static/shaders/glsl/depthblur.fp b/wadsrc/static/shaders/glsl/depthblur.fp index b1c005707..299b63694 100644 --- a/wadsrc/static/shaders/glsl/depthblur.fp +++ b/wadsrc/static/shaders/glsl/depthblur.fp @@ -6,61 +6,48 @@ layout(binding=0) uniform sampler2D AODepthTexture; #define KERNEL_RADIUS 3.0 -float CrossBilateralWeight(float r, float sampleDepth, float centerDepth) +void main() { const float blurSigma = KERNEL_RADIUS * 0.5; const float blurFalloff = 1.0 / (2.0 * blurSigma * blurSigma); - float deltaZ = (sampleDepth - centerDepth) * BlurSharpness; + vec2 centerSample = texture(AODepthTexture, TexCoord).xy; - return exp2(-r * r * blurFalloff - deltaZ * deltaZ); -} - -void ProcessSample(float ao, float z, float r, float centerDepth, inout float totalAO, inout float totalW) -{ - float w = CrossBilateralWeight(r, z, centerDepth); - totalAO += w * ao; - totalW += w; -} - -void ProcessRadius(vec2 deltaUV, float centerDepth, inout float totalAO, inout float totalW) -{ - for (float r = 1; r <= KERNEL_RADIUS; r += 1.0) - { - vec2 uv = r * deltaUV + TexCoord; - vec2 aoZ = texture(AODepthTexture, uv).xy; - ProcessSample(aoZ.x, aoZ.y, r, centerDepth, totalAO, totalW); - } -} - -vec2 ComputeBlur(vec2 deltaUV) -{ - vec2 aoZ = texture(AODepthTexture, TexCoord).xy; - - float totalAO = aoZ.x; + float centerDepth = centerSample.y; + float totalAO = centerSample.x; float totalW = 1.0; - ProcessRadius(deltaUV, aoZ.y, totalAO, totalW); - ProcessRadius(-deltaUV, aoZ.y, totalAO, totalW); + for (float r = 1.0; r <= KERNEL_RADIUS; r += 1.0) + { + vec4 blurSample = texture(AODepthTexture, TexCoord - InvFullResolution * r); + float ao = blurSample.x; + float z = blurSample.y; - return vec2(totalAO / totalW, aoZ.y); -} + float deltaZ = (z - centerDepth) * BlurSharpness; + float w = exp2(-r * r * blurFalloff - deltaZ * deltaZ); -vec2 BlurX() -{ - return ComputeBlur(vec2(InvFullResolution.x, 0.0)); -} + totalAO += w * ao; + totalW += w; + } -float BlurY() -{ - return pow(clamp(ComputeBlur(vec2(0.0, InvFullResolution.y)).x, 0.0, 1.0), PowExponent); -} + for (float r = 1.0; r <= KERNEL_RADIUS; r += 1.0) + { + vec4 blurSample = texture(AODepthTexture, InvFullResolution * r + TexCoord); + float ao = blurSample.x; + float z = blurSample.y; + + float deltaZ = (z - centerDepth) * BlurSharpness; + float w = exp2(-r * r * blurFalloff - deltaZ * deltaZ); + + totalAO += w * ao; + totalW += w; + } + + float fragAO = totalAO / totalW; -void main() -{ #if defined(BLUR_HORIZONTAL) - FragColor = vec4(BlurX(), 0.0, 1.0); + FragColor = vec4(fragAO, centerDepth, 0.0, 1.0); #else - FragColor = vec4(BlurY(), 0.0, 0.0, 1.0); + FragColor = vec4(pow(clamp(fragAO, 0.0, 1.0), PowExponent), 0.0, 0.0, 1.0); #endif } diff --git a/wadsrc/static/shaders/glsl/ssaocombine.fp b/wadsrc/static/shaders/glsl/ssaocombine.fp index f97bb31a6..8fb17752f 100644 --- a/wadsrc/static/shaders/glsl/ssaocombine.fp +++ b/wadsrc/static/shaders/glsl/ssaocombine.fp @@ -30,6 +30,15 @@ void main() vec3 fogColor = texelFetch(SceneFogTexture, ipos, 0).rgb; #endif - float attenutation = texture(AODepthTexture, TexCoord).x; - FragColor = vec4(fogColor, 1.0 - attenutation); + vec4 ssao = texture(AODepthTexture, TexCoord); + float attenutation = ssao.x; + + if (DebugMode == 0) + FragColor = vec4(fogColor, 1.0 - attenutation); + else if (DebugMode < 3) + FragColor = vec4(attenutation, attenutation, attenutation, 1.0); + else if (DebugMode == 3) + FragColor = vec4(ssao.yyy / 1000.0, 1.0); + else + FragColor = vec4(ssao.xyz, 1.0); } diff --git a/wadsrc_extra/static/sprites/plyc/plyca1.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plyca1.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plyca1.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plyca1.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plyca2a8.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plyca2a8.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plyca2a8.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plyca2a8.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plyca3a7.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plyca3a7.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plyca3a7.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plyca3a7.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plyca4a6.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plyca4a6.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plyca4a6.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plyca4a6.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plyca5.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plyca5.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plyca5.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plyca5.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycb1.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycb1.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycb1.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycb1.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycb2b8.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycb2b8.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycb2b8.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycb2b8.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycb3b7.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycb3b7.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycb3b7.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycb3b7.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycb4b6.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycb4b6.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycb4b6.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycb4b6.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycb5.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycb5.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycb5.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycb5.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycc1.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycc1.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycc1.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycc1.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycc2c8.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycc2c8.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycc2c8.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycc2c8.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycc3c7.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycc3c7.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycc3c7.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycc3c7.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycc4c6.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycc4c6.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycc4c6.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycc4c6.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycc5.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycc5.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycc5.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycc5.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycd1.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycd1.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycd1.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycd1.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycd2d8.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycd2d8.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycd2d8.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycd2d8.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycd3d7.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycd3d7.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycd3d7.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycd3d7.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycd4d6.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycd4d6.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycd4d6.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycd4d6.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycd5.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycd5.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycd5.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycd5.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plyce1.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plyce1.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plyce1.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plyce1.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plyce2e8.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plyce2e8.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plyce2e8.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plyce2e8.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plyce3e7.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plyce3e7.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plyce3e7.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plyce3e7.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plyce4e6.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plyce4e6.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plyce4e6.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plyce4e6.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plyce5.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plyce5.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plyce5.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plyce5.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycf1.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycf1.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycf1.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycf1.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycf2f8.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycf2f8.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycf2f8.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycf2f8.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycf3f7.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycf3f7.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycf3f7.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycf3f7.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycf4f6.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycf4f6.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycf4f6.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycf4f6.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycf5.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycf5.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycf5.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycf5.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycg1.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycg1.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycg1.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycg1.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycg2g8.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycg2g8.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycg2g8.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycg2g8.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycg3g7.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycg3g7.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycg3g7.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycg3g7.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycg4g6.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycg4g6.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycg4g6.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycg4g6.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycg5.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycg5.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycg5.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycg5.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plych0.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plych0.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plych0.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plych0.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plyci0.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plyci0.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plyci0.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plyci0.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycj0.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycj0.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycj0.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycj0.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plyck0.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plyck0.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plyck0.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plyck0.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycl0.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycl0.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycl0.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycl0.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycm0.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycm0.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycm0.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycm0.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycn0.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycn0.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycn0.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycn0.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plyco0.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plyco0.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plyco0.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plyco0.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycp0.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycp0.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycp0.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycp0.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycq0.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycq0.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycq0.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycq0.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycr0.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycr0.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycr0.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycr0.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycs0.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycs0.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycs0.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycs0.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plyct0.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plyct0.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plyct0.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plyct0.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycu0.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycu0.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycu0.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycu0.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycv0.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycv0.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycv0.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycv0.lmp diff --git a/wadsrc_extra/static/sprites/plyc/plycw0.lmp b/wadsrc_extra/static/filter/doom.id/sprites/plyc/plycw0.lmp similarity index 100% rename from wadsrc_extra/static/sprites/plyc/plycw0.lmp rename to wadsrc_extra/static/filter/doom.id/sprites/plyc/plycw0.lmp diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigfont/010C.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigfont/010C.lmp new file mode 100644 index 000000000..99f8f7cad Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigfont/010C.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigfont/010E.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigfont/010E.lmp new file mode 100644 index 000000000..cf4206739 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigfont/010E.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigfont/011A.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigfont/011A.lmp new file mode 100644 index 000000000..d12ebb69a Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigfont/011A.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigfont/0147.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigfont/0147.lmp new file mode 100644 index 000000000..989b3be47 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigfont/0147.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigfont/0158.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigfont/0158.lmp new file mode 100644 index 000000000..878d1244f Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigfont/0158.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigfont/0160.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigfont/0160.lmp new file mode 100644 index 000000000..7336745e5 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigfont/0160.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigfont/0164.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigfont/0164.lmp new file mode 100644 index 000000000..fd94932a7 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigfont/0164.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigfont/016E.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigfont/016E.lmp new file mode 100644 index 000000000..4e310c27e Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigfont/016E.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigfont/017D.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigfont/017D.lmp new file mode 100644 index 000000000..0498bc631 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigfont/017D.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigupper/010C.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/010C.lmp new file mode 100644 index 000000000..0428c7578 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/010C.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigupper/010D.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/010D.lmp new file mode 100644 index 000000000..a7032b8a7 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/010D.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigupper/010E.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/010E.lmp new file mode 100644 index 000000000..6c6b5b24d Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/010E.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigupper/010F.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/010F.lmp new file mode 100644 index 000000000..499759e12 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/010F.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigupper/011A.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/011A.lmp new file mode 100644 index 000000000..e412af923 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/011A.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigupper/011B.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/011B.lmp new file mode 100644 index 000000000..7f1a295c6 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/011B.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigupper/0147.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/0147.lmp new file mode 100644 index 000000000..dd56fc288 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/0147.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigupper/0148.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/0148.lmp new file mode 100644 index 000000000..b6d8b29e1 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/0148.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigupper/0158.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/0158.lmp new file mode 100644 index 000000000..77e66daba Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/0158.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigupper/0159.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/0159.lmp new file mode 100644 index 000000000..d6420d49a Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/0159.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigupper/0160.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/0160.lmp new file mode 100644 index 000000000..696e78cdf Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/0160.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigupper/0161.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/0161.lmp new file mode 100644 index 000000000..414f6fdc0 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/0161.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigupper/0164.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/0164.lmp new file mode 100644 index 000000000..79591f93d Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/0164.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigupper/0165.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/0165.lmp new file mode 100644 index 000000000..0d6639083 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/0165.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigupper/016E.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/016E.lmp new file mode 100644 index 000000000..54f0d062f Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/016E.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigupper/016F.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/016F.lmp new file mode 100644 index 000000000..5ecfa5e91 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/016F.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigupper/017D.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/017D.lmp new file mode 100644 index 000000000..c8e3f6233 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/017D.lmp differ diff --git a/wadsrc_extra/static/filter/game-doom/fonts/bigupper/017E.lmp b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/017E.lmp new file mode 100644 index 000000000..ec9d19e16 Binary files /dev/null and b/wadsrc_extra/static/filter/game-doom/fonts/bigupper/017E.lmp differ