diff --git a/FuturePlans.md b/FuturePlans.md index 3b444d439..c6da1296b 100644 --- a/FuturePlans.md +++ b/FuturePlans.md @@ -50,6 +50,9 @@ More weapons, because we need 'em. In addition, a bunch of cleanup in base weapo * [ ] **GZDoom 4.12.x Features:** - [x] Lesser code cleanup/refactor *(new variables, functions, flags, etc.)* - [ ] Visual Thinker migration where needed *(more lightweight sprite explosions and the like)* +* [ ] **VKDoom Features:** + - [x] Adjust material shaders to handle custom texture filtering + - [ ] Use soft particles where needed ## 1.4 update *(Fine Refinements)*: @@ -127,10 +130,6 @@ Things that I'm unsure when will be added *(or if they can be added)*. - [ ] Romerotown Rampage *(Beat HELLION)* * [ ] **Official Legacy of Rust support *(not sure how it'd fit in the storyline, but maybe)*** - [ ] Two Birds With One Nuke *(Beat Legacy of Rust)* -* [ ] **VKDoom exclusivity *(heh)*** - - [ ] Rewrite all shaders for optimal compatibility - - [ ] Use soft particles where needed *(optionally, find other uses in material shaders for the depth data)* - - [ ] Figure out other things as the fork evolves ## Other Projects diff --git a/README.md b/README.md index 039374680..00dfa48d1 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ ## The Introduction -**Codename: Demolitionist** is an all-original gameplay mod for **GZDoom** with a basis on rapid, fluid movement mechanics as well as very satisfying, punchy, strong weaponry. In it, you play as the titular **Demolitionist**, a robot with quite a personality, who's destined to save the day, as explosively as necessary. +**Codename: Demolitionist** is an all-original gameplay mod for **VKDoom** with a basis on rapid, fluid movement mechanics as well as very satisfying, punchy, strong weaponry. In it, you play as the titular **Demolitionist**, a robot with quite a personality, who's destined to save the day, as explosively as necessary. The mod's arsenal could be seen as a *"best of"* collection of custom weapons I've made for **Unreal Tournament**, plus many new things that didn't make the cut there. It is also effectively a reboot of the entire **Some Weird Weapons Mod *(SWWM)*** series, which unfortunately ended with the cancelled **SWWM Z**, this mod's direct predecessor *(hence this project originally starting its days under the name of **SWWM GZ**)*. @@ -26,7 +26,7 @@ Hope you have fun exploding demon knees. **This mod features loud sounds and flashing lights**, which may be harmful to certain people. There are options to dampen some of these effects, but it may still be unsafe nonetheless. -**The UI design and color schemes of the mod may be problematic to people with color blindness**. Certain elements such as healthbars and various numbers could potentially become hard to see under some conditions. GZDoom has sliders for controlling not just brightness, contrast and gamma, but also color saturation, which may be of some help. +**The UI design and color schemes of the mod may be problematic to people with color blindness**. Certain elements such as healthbars and various numbers could potentially become hard to see under some conditions. VKDoom has sliders for controlling not just brightness, contrast and gamma, but also color saturation, which may be of some help. **The characters and stories featured in this mod are part of my own personal fiction**. Any similarities to real world individuals or events are entirely coincidental or, in some cases, loosely referential. @@ -34,31 +34,25 @@ Hope you have fun exploding demon knees. ## Software and Hardware Requirements -**Codename: Demolitionist** requires **GZDoom 4.12** or later. As of writing this, **Delta Touch** has not yet been updated and still offers 4.11.3 instead. Sorry, mobile players. +**Codename: Demolitionist** requires a recent **VKDoom** build. As long as it supports the full **GZDoom 4.12** feature set *(or later)* it should be fine. Recommended desktop hardware specs are as follows: - **CPU:** 3GHz or faster x86_64 processor (core count irrelevant, single-threaded performance is what matters). - **Intel:** Core i5-6400 or later. - **AMD:** Ryzen 5 1500X or later. - - **GPU:** OpenGL 4.6 or Vulkan 1.2 compatible GPU with at least 3GB of VRAM. + - **GPU:** Vulkan 1.2 compatible GPU with at least 3GB of VRAM. - **NVIDIA:** GTX 1060 or later. - **AMD:** RX 480 or later. - **Intel:** Iris Pro Graphics 580 or later. - **RAM:** 4GB minimum (8GB if using integrated graphics). - - **Display:** A 16:10 monitor is recommended for the intended visual experience. + - **Display:** A 720p or larger display should do the job. Please note that on Ultrawide displays the HUD will be constrained to a 16:9 area. -For playing on mobile, the following are recommended: +Recommended settings are as follows: - - **Chipset:** Qualcomm Snapdragon 765 or better. - - **Resolution:** On high DPI devices, playing at a 0.5x scale is advised to smoothen the framerate. - - **Input:** External keyboard and mouse are recommended, gamepad may not be enough, touch controls won't be manageable. - -Recommended GZDoom settings are as follows: - - - **Renderer:** Hardware only, Vulkan backend recommended if possible, avoid OpenGL ES on desktop *(it will disable custom material and postprocess shaders)*. + - **Renderer:** Hardware only, this uses 3D models, shaders, all that good stuff. - **Textures:** Either `None` or `None (Trilinear)`. The graphics in this mod were designed with no filtering in mind. - - **Post-processing:** Bloom is recommended, it is not advised to use GZDoom's tonemap filters. For other post-processing, use [MariFX](https://git.marisa.pw/OrdinaryMagician/marifx_m). + - **Post-processing:** Bloom is recommended, it is not advised to use VKDoom's tonemap filters. For other post-processing, use [MariFX](https://git.marisa.pw/OrdinaryMagician/marifx_m). - **Lighting:** Dynamic lights should be enabled. It's also advised to use `Classic` sector lighting, as other modes may over-brighten weapon models. - **Audio:** Increasing sound channels to their maximum limit is advised. @@ -264,7 +258,7 @@ The pleasure of shrapnel spamming. Make hot steaming pain rain upon your enemies **Tertiary fire:** Toggle between wide spread *(default)* and tight spread for primary. With a tighter spread, chunks will be closer together and reach higher speeds, but bounce more erratically. In addition, lobbed shells will also go much farther. -This weapon made the **Unreal Engine** cry, so **GZDoom** may suffer a lot too. +This weapon made the **Unreal Engine** cry, so **VKDoom** may suffer a lot too. #### Eviscerator Shells ![](docimg/evisceratorammo.png) diff --git a/gldefs/bdscreen.txt b/gldefs/bdscreen.txt index 72c61b53b..3a5882d1d 100644 --- a/gldefs/bdscreen.txt +++ b/gldefs/bdscreen.txt @@ -1,44 +1,98 @@ Material Texture "graphics/BDScreen/BOYKISS0.png" { - Shader "shaders/glsl/Oversample.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/BDScreen/BOYKISS0.png" + { + filter linear + } + Define "OVERSAMPLE" } Material Texture "graphics/BDScreen/BOYKISS1.png" { - Shader "shaders/glsl/Oversample.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/BDScreen/BOYKISS1.png" + { + filter linear + } + Define "OVERSAMPLE" } Material Texture "graphics/BDScreen/BOYKISS2.png" { - Shader "shaders/glsl/Oversample.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/BDScreen/BOYKISS2.png" + { + filter linear + } + Define "OVERSAMPLE" } Material Texture "graphics/BDScreen/BOYKISS3.png" { - Shader "shaders/glsl/Oversample.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/BDScreen/BOYKISS3.png" + { + filter linear + } + Define "OVERSAMPLE" } Material Texture "graphics/BDScreen/BOYKISS4.png" { - Shader "shaders/glsl/Oversample.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/BDScreen/BOYKISS4.png" + { + filter linear + } + Define "OVERSAMPLE" } Material Texture "graphics/BDScreen/BOYKISS5.png" { - Shader "shaders/glsl/Oversample.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/BDScreen/BOYKISS5.png" + { + filter linear + } + Define "OVERSAMPLE" } Material Texture "graphics/BDScreen/BOYKISS6.png" { - Shader "shaders/glsl/Oversample.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/BDScreen/BOYKISS6.png" + { + filter linear + } + Define "OVERSAMPLE" } Material Texture "graphics/BDScreen/BOYKISS7.png" { - Shader "shaders/glsl/Oversample.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/BDScreen/BOYKISS7.png" + { + filter linear + } + Define "OVERSAMPLE" } Material Texture "graphics/BDScreen/BOYKISS8.png" { - Shader "shaders/glsl/Oversample.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/BDScreen/BOYKISS8.png" + { + filter linear + } + Define "OVERSAMPLE" } Material Texture "graphics/BDScreen/BOYKISS9.png" { - Shader "shaders/glsl/Oversample.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/BDScreen/BOYKISS9.png" + { + filter linear + } + Define "OVERSAMPLE" } Material Texture "graphics/BDScreen/BOYKISSR.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/BDScreen/BOYKISSR.png" + { + filter linear + } } diff --git a/gldefs/items/pickups.txt b/gldefs/items/pickups.txt index 815744480..23bea8a0f 100644 --- a/gldefs/items/pickups.txt +++ b/gldefs/items/pickups.txt @@ -148,17 +148,29 @@ Material Sprite "MKRVA0" { Shader "shaders/glsl/Mykradvo.fp" Texture "warptex" "textures/warptex.png" + { + filter linear + } Texture "snoisetex" "textures/softnoise.png" + { + filter linear + } } Material Texture "models/extra/AnomRingies.png" { Shader "shaders/glsl/Mykradvo2.fp" Texture "warptex" "textures/heattex.png" + { + filter linear + } } Material Sprite "DVSPA0" { Shader "shaders/glsl/Divine.fp" Texture "snoisetex" "textures/softnoise.png" + { + filter linear + } } Material Texture "models/DivineSprite.png" { diff --git a/gldefs/misc.txt b/gldefs/misc.txt index d165653d7..abc24fb23 100644 --- a/gldefs/misc.txt +++ b/gldefs/misc.txt @@ -102,63 +102,123 @@ Material Texture "graphics/HUD/HealthBarD.png" } Material Texture "graphics/HUD/Icons/W_DeepImpact.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/HUD/Icons/W_DeepImpact.png" + { + filter linear + } } Material Texture "graphics/HUD/Icons/W_ExplodiumGun.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/HUD/Icons/W_ExplodiumGun.png" + { + filter linear + } } Material Texture "graphics/HUD/Icons/W_Spreadgun.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/HUD/Icons/W_Spreadgun.png" + { + filter linear + } } Material Texture "graphics/HUD/Icons/W_Wallbuster.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/HUD/Icons/W_Wallbuster.png" + { + filter linear + } } Material Texture "graphics/HUD/Icons/W_Eviscerator.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/HUD/Icons/W_Eviscerator.png" + { + filter linear + } } Material Texture "graphics/HUD/Icons/W_Hellblazer.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/HUD/Icons/W_Hellblazer.png" + { + filter linear + } } Material Texture "graphics/HUD/Icons/W_Sparkster.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/HUD/Icons/W_Sparkster.png" + { + filter linear + } } Material Texture "graphics/HUD/Icons/W_SilverBullet.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/HUD/Icons/W_SilverBullet.png" + { + filter linear + } } Material Texture "graphics/HUD/Icons/W_CandyGun.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/HUD/Icons/W_CandyGun.png" + { + filter linear + } } Material Texture "graphics/HUD/Icons/W_Ynykron.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/HUD/Icons/W_Ynykron.png" + { + filter linear + } } Material Texture "graphics/HUD/Icons/W_ItamexHammer.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/HUD/Icons/W_ItamexHammer.png" + { + filter linear + } } Material Texture "graphics/HUD/Icons/W_PlasmaBlast.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/HUD/Icons/W_PlasmaBlast.png" + { + filter linear + } } Material Texture "graphics/HUD/Icons/W_SheenHMG.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/HUD/Icons/W_SheenHMG.png" + { + filter linear + } } Material Texture "graphics/HUD/Icons/W_Quadravol.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/HUD/Icons/W_Quadravol.png" + { + filter linear + } } Material Texture "graphics/HUD/Icons/W_MortalRifle.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/HUD/Icons/W_MortalRifle.png" + { + filter linear + } } Material Texture "graphics/dsmapfont.png" { @@ -186,118 +246,334 @@ Material Texture "graphics/NewLogo.png" Shader "shaders/glsl/NewLogoAnimated.fp" // what no 2d arrays does to a mf Texture "Layer1" "graphics/NewLogo_Layer1.png" + { + filter linear + } Texture "Layer2" "graphics/NewLogo_Layer2.png" + { + filter linear + } Texture "Layer3" "graphics/NewLogo_Layer3.png" + { + filter linear + } Texture "gradtex" "graphics/NewLogo_Grad.png" + { + filter linear + } Texture "fadetex" "LOGOFADE" } +Material Texture "graphics/NewLogo_Letter0.png" +{ + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/NewLogo_Letter0.png" + { + filter linear + } +} +Material Texture "graphics/NewLogo_Letter1.png" +{ + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/NewLogo_Letter1.png" + { + filter linear + } +} +Material Texture "graphics/NewLogo_Letter2.png" +{ + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/NewLogo_Letter2.png" + { + filter linear + } +} +Material Texture "graphics/NewLogo_Letter3.png" +{ + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/NewLogo_Letter3.png" + { + filter linear + } +} +Material Texture "graphics/NewLogo_Letter4.png" +{ + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/NewLogo_Letter4.png" + { + filter linear + } +} +Material Texture "graphics/NewLogo_Letter5.png" +{ + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/NewLogo_Letter5.png" + { + filter linear + } +} +Material Texture "graphics/NewLogo_Letter6.png" +{ + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/NewLogo_Letter6.png" + { + filter linear + } +} +Material Texture "graphics/NewLogo_Letter7.png" +{ + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/NewLogo_Letter7.png" + { + filter linear + } +} +Material Texture "graphics/NewLogo_Letter8.png" +{ + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/NewLogo_Letter8.png" + { + filter linear + } +} +Material Texture "graphics/NewLogo_Letter9.png" +{ + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/NewLogo_Letter9.png" + { + filter linear + } +} +Material Texture "graphics/NewLogo_Letter10.png" +{ + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/NewLogo_Letter10.png" + { + filter linear + } +} +Material Texture "graphics/NewLogo_Letter11.png" +{ + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/NewLogo_Letter11.png" + { + filter linear + } +} +Material Texture "graphics/NewLogo_Letter12.png" +{ + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/NewLogo_Letter12.png" + { + filter linear + } +} Material Texture "graphics/M_DEMOLITIONIST.png" { - Shader "shaders/glsl/Bilinear.fp" -} -Material Texture "graphics/DemoIcon.png" -{ - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOLITIONIST.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_DEEPIMPACT.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_DEEPIMPACT.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_EXPLOGUN.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_EXPLOGUN.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_SPREADGUN.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_SPREADGUN.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_WALLBUSTER.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_WALLBUSTER.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_EVISCERATOR.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_EVISCERATOR.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_HELLBLAZER.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_HELLBLAZER.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_BIOSPARK.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_BIOSPARK.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_SILVERBULLET.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_SILVERBULLET.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_CANDYGUN.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_CANDYGUN.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_YNYKRON.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_YNYKRON.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_DAB.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_DAB.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_DOUBLEV.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_DOUBLEV.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_HEALTH.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_HEALTH.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_LOVE.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_LOVE.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_RAGEKIT.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_RAGEKIT.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_SANDWICH.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_SANDWICH.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_SHELLS.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_SHELLS.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_SKULL.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_SKULL.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_THONK.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_THONK.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_THUMBUP.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_THUMBUP.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_HAMMER.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_HAMMER.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_PLASMA.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_PLASMA.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_SHEEN.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_SHEEN.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_QUADRAVOL.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_QUADRAVOL.png" + { + filter linear + } } Material Texture "graphics/M_DEMOCHAN_MISTER.png" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/M_DEMOCHAN_MISTER.png" + { + filter linear + } } Material Sprite "MBRNB0" { @@ -305,69 +581,137 @@ Material Sprite "MBRNB0" } Material Texture "graphics/Renders/ActionShot.jpg" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/Renders/ActionShot.jpg" + { + filter linear + } } Material Texture "graphics/Renders/Booty.jpg" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/Renders/Booty.jpg" + { + filter linear + } } Material Texture "graphics/Renders/Ynykron.jpg" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/Renders/Ynykron.jpg" + { + filter linear + } } Material Texture "graphics/Renders/SayaBean.jpg" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/Renders/SayaBean.jpg" + { + filter linear + } } Material Texture "graphics/Renders/SayaGaming.jpg" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/Renders/SayaGaming.jpg" + { + filter linear + } } Material Texture "graphics/Renders/CandyGun.jpg" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/Renders/CandyGun.jpg" + { + filter linear + } } Material Texture "graphics/Renders/InAHurry.jpg" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/Renders/InAHurry.jpg" + { + filter linear + } } Material Texture "graphics/Renders/E2M8.jpg" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/Renders/E2M8.jpg" + { + filter linear + } } Material Texture "graphics/Renders/BTSXE1.jpg" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/Renders/BTSXE1.jpg" + { + filter linear + } } Material Texture "graphics/Renders/FroggyGang.jpg" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/Renders/FroggyGang.jpg" + { + filter linear + } } Material Texture "graphics/Renders/Nutso.jpg" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/Renders/Nutso.jpg" + { + filter linear + } } Material Texture "graphics/Renders/BedTime.jpg" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/Renders/BedTime.jpg" + { + filter linear + } } Material Texture "graphics/Renders/Costanza.jpg" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/Renders/Costanza.jpg" + { + filter linear + } } Material Texture "graphics/Renders/Cube.jpg" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/Renders/Cube.jpg" + { + filter linear + } } Material Texture "graphics/Renders/MisaYnykron.jpg" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/Renders/MisaYnykron.jpg" + { + filter linear + } } Material Texture "graphics/Renders/Sunder.jpg" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/Renders/Sunder.jpg" + { + filter linear + } } Material Texture "graphics/Renders/Sheen.jpg" { - Shader "shaders/glsl/Bilinear.fp" + Shader "shaders/glsl/TexFilterHack.fp" + Texture "retex" "graphics/Renders/Sheen.jpg" + { + filter linear + } } diff --git a/language.def_base b/language.def_base index bfc465296..ba8b0ca4c 100644 --- a/language.def_base +++ b/language.def_base @@ -209,9 +209,9 @@ STARTUP4 = ""; STARTUP5 = ""; // crashout (don't localize) CRASHMSG1A = "Oopsie Woopsie!"; -CRASHMSG1B = "Looks like GZDoom made a fucky wucky! owo"; +CRASHMSG1B = "Looks like we made a fucky wucky! owo"; CRASHMSG2A = "Oh snap!"; -CRASHMSG2B = "GZDoom just went kaboom!"; +CRASHMSG2B = "The game just went kaboom!"; CRASHMSG3A = "Crash to console?"; CRASHMSG3B = "Golly gee that sure sounds like a problem."; CRASHMSG4A = ""; @@ -221,7 +221,7 @@ CRASHMSG5B = "There it goes."; CRASHMSG6A = "Oh no!"; CRASHMSG6B = "That doesn't look good."; CRASHMSG7A = "Hey, guess what?"; -CRASHMSG7B = "GZDoom just crashed."; +CRASHMSG7B = "The game just crashed."; CRASHMSG8A = "Uhhh..."; CRASHMSG8B = "That sure wasn't supposed to happen."; // Re-tagged monsters @@ -743,7 +743,7 @@ SWWM_TITLEINTROB = "But one machine stood up, who fought back, who could end thi SWWM_TITLEINTROC = "The demons would learn to fear that machine, who they know only by one name..."; SWWM_NTITLESCROLL = "6"; SWWM_TITLESCROLL1 = "Codename: Demolitionist ~ Cute Robutt Whomst Love To Explode Demons"; -SWWM_TITLESCROLL2 = "A wondrous GZDoom gameplay mod by Marisa the Magician of UnSX Team"; +SWWM_TITLESCROLL2 = "A wondrous Doom mod by Marisa the Magician of UnSX Team"; SWWM_TITLESCROLL3 = "Lovingly designed 3D models with hand-painted 256-color dithered textures"; SWWM_TITLESCROLL4 = "Over 60k lines of bespoke ZScript code, and still counting (god help me)"; SWWM_TITLESCROLL5 = "The deepest lore this side of the Doom Modiverse"; @@ -1067,7 +1067,7 @@ SWWM_INTERTIP54 = "You can pet the dog.\n\nYou can also pet the Cacodemon (but t SWWM_INTERTIP55 = "\"Fun things are fun.\"\n — Yui Hirasawa"; SWWM_INTERTIP56 = "Some of these tips aren't really tips, but you probably already know that."; SWWM_INTERTIP57 = "Kinylum salt is not edible. Not only is it radioactive, but it would easily ignite in your stomach. Funny enough, it's popular as a hair dye."; -SWWM_INTERTIP58 = "Always keep your GZDoom up to date. Especially for mods like this one."; +SWWM_INTERTIP58 = "Always keep VKDoom up to date. Especially for mods like this one."; SWWM_INTERTIP59 = "The Reinforced Combat Hammer is pretty strong on its own, but with a Ragekit active, it will be boosted into a beastly headsmasher."; SWWM_INTERTIP60 = "Despite its seemingly puny size, the Plasma Blaster has a lot of destructive potential, especially through its charged alt fire."; SWWM_INTERTIP61 = "The Puntzer guns can easily pierce through solid objects or even thin walls. No enemy will ever be safe behind cover."; @@ -1092,7 +1092,7 @@ SWWM_INTERTIP79 = "Punching fascists is perfectly reasonable."; SWWM_INTERTIP80 = "Ceci n'est pas un conseil."; SWWM_INTERTIP81 = "If the Earth was truly flat, a cat would have already pushed everything off the edge."; SWWM_INTERTIP82 = "\"IF THE ZOO BANS ME FOR HOLLERING AT THE ANIMALS I WILL FACE GOD AND WALK BACKWARDS INTO HELL\"\n — dril"; -SWWM_INTERTIP83 = "This is truly some weird weapons mod for GZDoom."; +SWWM_INTERTIP83 = "This is truly some weird weapons mod."; SWWM_INTERTIP84 = "\"In its vastness, the universe is no more than a mere grain of sand when compared to the limitless bounds of one's imagination.\"\n — Zanaveth Nekuraku III"; SWWM_INTERTIP85 = "You can shuffle the intermission art with Zoom, and these tips with Reload. Holding Altfire will hide the UI so you can see the art in full."; SWWM_INTERTIP86 = "Add cumin and sweet paprika to marinara sauce, it'll really enhance the flavor, you can thank me later."; diff --git a/language.es_base b/language.es_base index 957610f56..9c3c1bc81 100644 --- a/language.es_base +++ b/language.es_base @@ -611,7 +611,7 @@ SWWM_TITLEMODBYA = "un mod de"; SWWM_TITLEINTROA = "Ese día, la humanidad se vió en peligro, enfrentándose a su propia perdición."; SWWM_TITLEINTROB = "Pero una máquina se alzó, decidida a luchar, y poner fin a toda esta invasión."; SWWM_TITLEINTROC = "Los demonios aprenderían a temer la máquina, la cual conocen por un solo nombre..."; -SWWM_TITLESCROLL2 = "Un maravilleante mod de gameplay para GZDoom por Marisa the Magician de UnSX Team"; +SWWM_TITLESCROLL2 = "Un maravilleante mod de Doom por Marisa the Magician de UnSX Team"; SWWM_TITLESCROLL3 = "Modelos 3D diseñados con cariño con texturas pintadas a mano de 256 colores con dithering"; SWWM_TITLESCROLL4 = "Más de 60 mil líneas de código a medida en ZScript, y aun contando (dios me ayude)"; SWWM_TITLESCROLL5 = "El lore más profundo a este lado del Modiverso de Doom"; @@ -923,7 +923,7 @@ SWWM_INTERTIP54 = "Puedes acariciar al perro.\n\nTambién puedes acariciar al Ca SWWM_INTERTIP55 = "\"Las cosas divertidas son divertidas.\"\n — Yui Hirasawa"; SWWM_INTERTIP56 = "Algunos de estos consejos no son realmente consejos, pero seguro que eso ya lo sabes."; SWWM_INTERTIP57 = "La sal de Kinylum no es comestible. No solo es radioactiva, si no que también explotará en tu estómago. Curiosamente, se usa popularmente como tinte de pelo."; -SWWM_INTERTIP58 = "Mantén siempre GZDoom actualizado. Especialmente para mods como este."; +SWWM_INTERTIP58 = "Mantén siempre VKDoom actualizado. Especialmente para mods como este."; SWWM_INTERTIP59 = "El Mazo de Combate Reforzado es bastante fuerte de por sí, pero con un Ragekit activo, se transformará en todo un revientacráneos."; SWWM_INTERTIP60 = "A pesar de su aparentemente penoso tamaño, el Blaster de Plasma tiene mucho potencial destructivo, sobre todo a través de su fuego alternativo cargado."; SWWM_INTERTIP61 = "Las armas Puntzer pueden penetrar fácilmente objetos sólidos e incluso paredes de poco grosor. Ningún enemigo estará seguro detrás de su cobertura."; @@ -946,7 +946,7 @@ SWWM_INTERTIP78 = "Xenia > Tux\n\nDevolvednos a la chica zorro molona de Linux. SWWM_INTERTIP79 = "Abofetear fachas es perfectamente razonable."; SWWM_INTERTIP81 = "Si la Tierra fuese realmente plana, un gato ya lo habría empujado todo por el borde."; SWWM_INTERTIP82 = "\"SI EL ZOO ME PROHIBE LA ENTRADA POR GRITAR A LOS ANIMALES PLANTARÉ CARA A DIOS Y CAMINARÉ DE ESPALDAS AL INFIERNO\"\n — dril"; -SWWM_INTERTIP83 = "Este es realmente un extraño mod de armas para GZDoom."; +SWWM_INTERTIP83 = "Este es realmente un extraño mod de armas."; SWWM_INTERTIP84 = "\"En su inmensidad, el universo no es más que un mero grano de arena cuando se compara a los límites ilimitados de nuestra imaginación.\" — Zanaveth Nekuraku III"; SWWM_INTERTIP85 = "Puedes alternar el arte de intermisión con Zoom, y estos consejos con Recarga. Mantener Fuego Secundario ocultará la interfaz para que puedas ver el arte al completo."; SWWM_INTERTIP86 = "Añade comino y pimentón dulce a la salsa marinara, potenciará mucho el sabor, puedes darme las gracias luego."; diff --git a/language.version b/language.version index 82f3c3fee..9973c54aa 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r1157 \cu(Sun Oct 20 13:58:22 CEST 2024)\c-"; -SWWM_SHORTVER="\cw1.3pre r1157 \cu(2024-10-20 13:58:22)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r1158 \cu(Wed Nov 6 13:18:57 CET 2024)\c-"; +SWWM_SHORTVER="\cw1.3pre r1158 \cu(2024-11-06 13:18:57)\c-"; diff --git a/readme.txt b/readme.txt index a170ce664..ee324a65e 100644 --- a/readme.txt +++ b/readme.txt @@ -1,6 +1,4 @@ CODENAME: DEMOLITIONIST - a.k.a. - Some Weird Weapons Mod: GZDoom Edition -------------------------------------------- (C)2020-2024 Marisa the Magician - UnSX Team @@ -70,7 +68,7 @@ Index of contents: Surprise surprise, after a decade of delving into other works, I have made my epic return! The SWWM series has been, in a way, "rebooted" through this here project, and so it goes. The UT side of things is pretty much dead for me, I've -jumped ship to GZDoom and boy is it one heckin' powerhouse for modding. +jumped ship to VKDoom and boy is it one heckin' powerhouse for modding. 1.2. The Story So Far - - - - - - - - - - - diff --git a/shaders/glsl/AreaName.fp b/shaders/glsl/AreaName.fp index 16dbd2fe2..87ae92ab0 100644 --- a/shaders/glsl/AreaName.fp +++ b/shaders/glsl/AreaName.fp @@ -3,7 +3,7 @@ vec3 GradientMap( in float gray ) { vec2 pos = vec2(gray/2.+.25,0.); - return texture(gradtex,pos).rgb; + return textureLod(gradtex,pos,0.).rgb; } void SetupMaterial( inout Material mat ) diff --git a/shaders/glsl/Bilinear.fp b/shaders/glsl/Bilinear.fp deleted file mode 100644 index a4c7e8637..000000000 --- a/shaders/glsl/Bilinear.fp +++ /dev/null @@ -1,19 +0,0 @@ -// This should act as Bilinear filtering when texture filtering is disabled -// the algo is pretty much public domain, so no credit given - -void SetupMaterial( inout Material mat ) -{ - vec2 size = vec2(textureSize(tex,0)); - vec2 pxsize = vec2(1./size.x,1./size.y); - vec2 pos = vTexCoord.st; - vec2 f = fract(pos*size); - pos += (.5-f)*pxsize; - vec4 p0q0 = texture(tex,pos); - vec4 p1q0 = texture(tex,pos+vec2(pxsize.x,0.)); - vec4 p0q1 = texture(tex,pos+vec2(0.,pxsize.y)); - vec4 p1q1 = texture(tex,pos+vec2(pxsize.x,pxsize.y)); - vec4 pInterp_q0 = mix(p0q0,p1q0,f.x); - vec4 pInterp_q1 = mix(p0q1,p1q1,f.x); - mat.Base = mix(pInterp_q0,pInterp_q1,f.y); - mat.Normal = ApplyNormalMap(vTexCoord.st); -} diff --git a/shaders/glsl/Envmap.fp b/shaders/glsl/Envmap.fp index 59910a064..fd0c39313 100644 --- a/shaders/glsl/Envmap.fp +++ b/shaders/glsl/Envmap.fp @@ -21,7 +21,7 @@ void SetupMaterial( inout Material mat ) vec3 envcol = textureGrad(tex,uv,dFdx(uv2),dFdy(uv2)).rgb*ENVFACT; #ifdef RIM_LIGHTING float rim = smoothstep(RIMSTEP,1.,1.-abs(dot(eye,norm))); - vec3 rimcol = texture(rimtex,vec2(.25+.5*rim,.5)).rgb; + vec3 rimcol = textureLod(rimtex,vec2(.25+.5*rim,.5),0.).rgb; envcol = mix(envcol,rimcol,rim*RIMFACT); #endif #ifdef BARRIER_MAP diff --git a/shaders/glsl/Envmask.fp b/shaders/glsl/Envmask.fp index 765dfc87a..314fec3b9 100644 --- a/shaders/glsl/Envmask.fp +++ b/shaders/glsl/Envmask.fp @@ -47,7 +47,7 @@ void SetupMaterial( inout Material mat ) vec3 envcol = textureGrad(envtex,uv,dTdx,dTdy).rgb*ENVFACT; #ifdef RIM_LIGHTING float rim = smoothstep(RIMSTEP,1.,rf); - vec3 rimcol = texture(rimtex,vec2(.25+.5*rim,.5)).rgb; + vec3 rimcol = textureLod(rimtex,vec2(.25+.5*rim,.5),0.).rgb; envcol = mix(envcol,rimcol,rim*RIMFACT); #endif mat.Base = vec4(base.rgb+envcol*mask.x,base.a); @@ -55,7 +55,7 @@ void SetupMaterial( inout Material mat ) envcol = textureGrad(envtex2,uv,dTdx,dTdy).rgb*ENVFACT2; #ifdef RIM_LIGHTING rim = smoothstep(RIMSTEP2,1.,rf); - rimcol = texture(rimtex2,vec2(.25+.5*rim,.5)).rgb; + rimcol = textureLod(rimtex2,vec2(.25+.5*rim,.5),0.).rgb; envcol = mix(envcol,rimcol,rim*RIMFACT2); #endif mat.Base.rgb += envcol*mask.y; @@ -64,7 +64,7 @@ void SetupMaterial( inout Material mat ) envcol = textureGrad(envtex3,uv,dTdx,dTdy).rgb*ENVFACT3; #ifdef RIM_LIGHTING rim = smoothstep(RIMSTEP3,1.,rf); - rimcol = texture(rimtex3,vec2(.25+.5*rim,.5)).rgb; + rimcol = textureLod(rimtex3,vec2(.25+.5*rim,.5),0.).rgb; envcol = mix(envcol,rimcol,rim*RIMFACT3); #endif mat.Base.rgb += envcol*mask.z; diff --git a/shaders/glsl/NewLogoAnimated.fp b/shaders/glsl/NewLogoAnimated.fp index ca383dddc..c385b5353 100644 --- a/shaders/glsl/NewLogoAnimated.fp +++ b/shaders/glsl/NewLogoAnimated.fp @@ -41,7 +41,7 @@ vec3 GradientMap( in vec3 color ) { float gray = dot(color,vec3(.333333)); vec2 pos = vec2(gray/2.+.25,0.); - return texture(gradtex,pos).rgb; + return textureLod(gradtex,pos,0.).rgb; } void SetupMaterial( inout Material mat ) @@ -54,27 +54,27 @@ void SetupMaterial( inout Material mat ) // base blank layer vec4 base = vec4(1.); // first layer, warp then multiply red - base.rgb *= texture(Layer1,warpcoord(uv)).x; + base.rgb *= textureLod(Layer1,warpcoord(uv),0.).x; // first layer, multiply green - base.rgb *= texture(Layer1,uv).y; + base.rgb *= textureLod(Layer1,uv,0.).y; // first layer, add blue - base.rgb += texture(Layer1,uv).zzz; + base.rgb += textureLod(Layer1,uv,0.).zzz; // multiply by red fade - base.rgb *= texture(fadetex,vec2(.5)).x; + base.rgb *= textureLod(fadetex,vec2(.5),0.).x; // gradient map result base.rgb = GradientMap(base.rgb); // color to alpha base = blacktoalpha(base); // second layer, alpha blend - vec4 tmp = texture(Layer2,uv); + vec4 tmp = textureLod(Layer2,uv,0.); vec4 tmp2; tmp2.a = tmp.a+base.a*(1.-tmp.a); tmp2.rgb = (tmp.rgb*tmp.a+base.rgb*base.a*(1.-tmp.a))/tmp2.a; base = tmp2; // third layer, hard light with two multiplied masks - tmp.xy = texture(Layer3,uv).xy; - tmp.z = texture(fadetex,vec2(.5)).y; - tmp.y *= texture(Layer3,clamp(uv+vec2(1.-tmp.z*2.,0.),vec2(0.),vec2(1.))).z; + tmp.xy = textureLod(Layer3,uv,0.).xy; + tmp.z = textureLod(fadetex,vec2(.5),0.).y; + tmp.y *= textureLod(Layer3,clamp(uv+vec2(1.-tmp.z*2.,0.),vec2(0.),vec2(1.)),0.).z; tmp2.r = hardlight(base.r,tmp.x); tmp2.g = hardlight(base.g,tmp.x); tmp2.b = hardlight(base.b,tmp.x); diff --git a/shaders/glsl/PlasmaBlast.fp b/shaders/glsl/PlasmaBlast.fp index 0ffb1a206..e417edb97 100644 --- a/shaders/glsl/PlasmaBlast.fp +++ b/shaders/glsl/PlasmaBlast.fp @@ -24,7 +24,7 @@ void SetupMaterial( inout Material mat ) vec3 envcol = textureGrad(envtex,uv,dFdx(uv2),dFdy(uv2)).rgb*ENVFACT; #ifdef RIM_LIGHTING float rim = smoothstep(RIMSTEP,1.,1.-abs(dot(eye,norm))); - vec3 rimcol = texture(rimtex,vec2(.25+.5*rim,.5)).rgb; + vec3 rimcol = textureLod(rimtex,vec2(.25+.5*rim,.5),0.).rgb; envcol = mix(envcol,rimcol,rim*RIMFACT); #endif mat.Base = vec4(base.rgb+envcol*mask,base.a); diff --git a/shaders/glsl/Oversample.fp b/shaders/glsl/TexFilterHack.fp similarity index 51% rename from shaders/glsl/Oversample.fp rename to shaders/glsl/TexFilterHack.fp index 963afc453..db15c3efd 100644 --- a/shaders/glsl/Oversample.fp +++ b/shaders/glsl/TexFilterHack.fp @@ -1,8 +1,12 @@ -// This should act as a virtual NormalNx upscaler when using texture filtering +// VKDoom's quirked up when it comes to texture filtering in custom materials +// so this shader is needed as a compromise void SetupMaterial( inout Material mat ) { - vec2 size = vec2(textureSize(tex,0)); +#ifdef OVERSAMPLE + // This should act as a virtual NormalNx upscaler, useful for + // preserving pixel art + vec2 size = vec2(textureSize(retex,0)); vec2 pxsize = vec2(1./size.x,1./size.y); vec2 pos = vTexCoord.st-vec2(.5)*pxsize; vec2 fcoord = fract(pos*size-vec2(.5)); @@ -10,6 +14,9 @@ void SetupMaterial( inout Material mat ) float threshold = 0.; // this controls sharpness, kinda coeff = (coeff-threshold)*1./(1.-2.*threshold); coeff = clamp(coeff,0.,1.); - mat.Base = texture(tex,pos+pxsize*(coeff-fcoord)); + mat.Base = textureLod(retex,pos+pxsize*(coeff-fcoord),0.); +#else + mat.Base = textureLod(retex,vTexCoord.st,0.); +#endif mat.Normal = ApplyNormalMap(vTexCoord.st); } diff --git a/zscript/handler/swwm_statichandler.zsc b/zscript/handler/swwm_statichandler.zsc index 80a8263cc..c831034d8 100644 --- a/zscript/handler/swwm_statichandler.zsc +++ b/zscript/handler/swwm_statichandler.zsc @@ -12,7 +12,6 @@ Class SWWMStaticHandler : StaticEventHandler // crash handler ui bool wasinmap; ui int timer, msgpick; - bool isvkdoom; // broccoli doccoli bool isbd; String bdname; @@ -168,9 +167,6 @@ Class SWWMStaticHandler : StaticEventHandler } } foreach ( f:fonts ) Font.GetFont(f); - // detect vkdoom (naive, may find a better method later) - lmp = Wads.FindLumpFullName("graphics/bootlogo.png",0,false); - isvkdoom = (lmp != -1); // warn: mp no longer officially maintained if ( multiplayer ) { @@ -682,7 +678,6 @@ Class SWWMStaticHandler : StaticEventHandler { msgpick = Random[UIStuff](1,8); String str = StringTable.Localize("$CRASHMSG"..msgpick.."A"); - if ( isvkdoom ) str.Replace("GZDoom","VKDoom"); Console.PrintfEx(PRINT_HIGH|PRINT_NONOTIFY,"\cf%s\c-",str); let hnd = SWWMBrutalHandler(StaticEventHandler.Find("SWWMBrutalHandler")); if ( hnd && hnd.detected ) @@ -695,7 +690,6 @@ Class SWWMStaticHandler : StaticEventHandler else if ( timer == 70 ) { String str = StringTable.Localize("$CRASHMSG"..msgpick.."B"); - if ( isvkdoom ) str.Replace("GZDoom","VKDoom"); Console.PrintfEx(PRINT_HIGH|PRINT_NONOTIFY,"\cf%s\c-",str); S_StartSound("crash/curb",CHAN_YABLEWIT,CHANF_UI|CHANF_NOPAUSE|CHANF_OVERLAP,1,ATTN_NONE); }