GLSL shaders for GZDoom 3.5.0+ that simulate various vintage systems.
Project's Scope
Doom has been ported to countless devices, most of which have enough processing ability to run the game natively. But that wasn't always the case, and many older computers and video game consoles by 1993 simply were just not powerful enough to run this almighty game. While this situation hasn't changed at all for those ageing systems, it's now possible to use modern source code ports and hardware to simulate what the game might have looked like on systems with less than the minimum requirements (80386DX@33MHz CPU, 4MB DRAM, 20MB HDD & VGA Graphics). There is certainly some charm and interest around the retro-computing look; low resolutions and constrained colour palettes are an aesthetic that keeps on giving nostalgic thrills. This mod is for those who want some chunky pixely goodness.
Roadmap of Features
- Refresh Rate Limiter: Control the max frame rate of the engine.
- Palette Reduction w/ Ordered Dither: Part of the MariFX Shaders for GZDoom, modified to accept more than 64 palettes and optimized to reduce its video memory footprint.
- Multiple retro-systems palettes and colour modes: Videogame home consoles and portable systems, Vintage graphic systems, Monochrome, Grayscale and various RGB levels/bit-depths.
- Resolution scaler w/ Non-squared Pixel Aspect Ratios
- "Low-Detail" mode (double-width pixels)
- Customizable Scanlines
- CRT and LCD simulation
- NTSC TV-output Color grading
Version History
0.3.0-beta (2020-07-27)
- Scanlines shader implemented.
- Bug in dithering shader behaviour corrected.
- Amended Sega Genesis' CLUT to crush blacks and improve visibility.
0.2.2-beta (2020-07-14)
- Ordered dither now works as originally intended with "Low Detail" mode.
- Added an extra mode to apply full-screen pixel dithering.
- Minor spelling issues corrected.
0.2.1-beta (2020-07-13)
- Pixelizer shader finalized.
- Updated the menu items.
- Bugfixes for Delta Touch.
0.2.0-alpha (2020-07-11)
- The Pixelizer update. Its shader is WIP.
- Implemented a modified Rachael's "low detail" shader.
- Moved the dithering shader to its own pass on the pipeline.
- Added a CLUT atlas method. It can be faster on certain video cards but increases memory usage.
- Added Sega Jaguar's CRY palette and Nintendo's Virtual Boy palette.
0.1.0-pre (2020-07-10)
- The Game Boy Color update. Added the GBC palettes.
- Changed the namespace for the CLUT files to avoid collisions with other PWAD's textures.
- Bugfixes for Delta Touch.
0.0.7 (2020-07-03)
- The Super Game Boy update. Added the SGB palettes.
- Compatibility test code for Delta Touch.
0.0.6 (2020-06-29)
- The monochromatic update. Added a bunch of monochrome palettes for phosphor CRTs and LCDs.
- Added some CLUTs to test the Game Boy palettes.
- Yet another attempt at fixing Delta Touch.
0.0.5 (2020-06-27)
- Added Apple IIgs, EGA, VGA and 9/12/15/16/18 bits palettes.
- Amended Amiga OCS/ECS and MSX2 CLUTs.
- Attempted fix for Delta Touch.
0.0.4 (2020-06-26)
- Added CGA, RISC, Windows, Macintosh, UNIX, Web-safe, Generic 4-bit RGBI, 3-level RGB, and 8-bit palettes.
- Attempted fix for Delta Touch.
0.0.3 (2020-06-25)
- Added Commodore Systems, CoCo3, ZX Spectrum, Mattel Aquarius, SAM Coupé, MSX|MSX2, Thomson TO7/70|TO5 and Amstrad CPC palettes.
- Collapsed Atari 2600 SECAM|Teletext 1|BBC Micro|Sinclair QL|Thomson TO7 into the R1G1B1 palette.
- New Refresh Rate Limit menu featuring Frame Rate Control.
0.0.2 (2020-06-19)
- Added NES, Sega Master System, Apple II, Atari Series and WS-Teletext palettes.
- Optimizations to the Palette shader. (Precalculated dithering index matrix, new CLUT format)
- Changed the default value for dithering.
0.0.1 (2020-06-16)
- Implemented the modified MariFX's Palette Reduction w/ Dither GLSL shader.
- Added Greyscale and monochrome palettes to test this prototype.
- Implemented the options menu.
Acknowledgements