
Advanced CRT Shader for GameMaker
A downloadable asset pack
~SittingDuck's CRT Shader for GameMaker~
A robust and flexible CRT shader that aims to be scalable and easy to implement.
Out of the box features include:
| Scanlines | Curvature | RGB phosphor emulation | Bezel reflections | Automatic resolution and aspect ratio handling | Interlacing | Integer scaling | Halation, glow, and bleeding effects | Support for portrait (TATE) mode | Support for bezel overlays
To implement with your existing game, place a preset object in the first room of your game or create & destroy one via code in your game's menu. Ensure that your game's aspect ratio matches that of the preset object. That's it!
Advanced use:
All parameters of the shader are addressable from any object just by referencing the crt object. For example: "crt.glow_amount += 0.1". Just make sure to update the shader uniforms afterward with "crt.update_uniforms()"
Learn to use effects that retro game developers used with CRT TVs in mind; exploit interlacing, blending, or phosphor glow for your game's benefit!
Detailed documentation and a working example project are included to quickly get your project up and running!
Purchase
In order to download this asset pack you must purchase it at or above the minimum price of $1.99 USD. You will get access to the following files:






Comments
Log in with itch.io to leave a comment.
Hi, sorry is there a way to turn off/on the shader within the game by code ?
I tried destroying the instance and doing shader_reset() but get a black screen only, semes other things need to be reset.
Well I ended up doing couple of things to fake this, set some values to 0 like curvature,scanlines intensity and set an empty/transparent image for the phosphor texture mask.
Still I have to restart the room before some changes apply (like the curvature) but kind of makes the trick. If there's a better way to toggle on/off the shader please let me know.
Hello,
Thank you for trying my asset!
Whenever you change any of the CRT object's settings at runtime, you'll need to have it call the function "update_uniforms()" to see the changes reflected in-game.
To disable the effect at runtime, If deleting the CRT object causes issues, you could also choose to disable it by setting its "shader" variable to shd_raw. This shader is more or less a passthrough shader that only handles aspect ratio and optionally curvature (which you could disable for a raw pixel art look).
I hope this helps!
Thank you !! will give it a try !
I was excited to try this but I'm running into some issues.
The description mentions documentation and an example project, but the only file I see for download is the yymps. Where are they?
In addition, when I try to import the yymps, GameMaker freezes and stops responding to input. That might just be a problem on my end because I'm not currently on the latest version of GM, I'm a bit behind on updates. Could that cause a crash on import or is something off with the itch download?
Thanks for your help.
EDIT: The game version was the culprit and I see the documentation and example inside the yymps :)
Awesome shader ! I was thinking about using something alike and found yours, probably a bit overpowered for my humble game, but couldn't resist to use it. Thank you !
Sorry if doesnt look actually good in my game (I've not a "trained sight" for CRT art, or art at all, but the curvature effect is something I wanted to have)
I used a diff preset, it looks a bit better, thanks again !
Got this on the marketplace. It’s the best GMS crt shader I’ve used for sure!