hi sir mattias, im a big fan of your shader work on shadertoy with MattiasCrt, im wondering if there is a way to edit it to remove the scanline crawl effect, not the horizontal lines crawling, the ripple effect that goes along with it... i tried myself but i have little experience. on the line 37 where you define the scans float, i tried messing with reducing the factor 0.35 to 0.15, it indeed reduces the visibility of the ripples but it is still there. do you know if it is possible to remove it? thanks really appreciated your work
A downloadable tool for Windows
This is just a slightly modified version of the standard DOSBOX emulator. I have just hacked in my own shader which emulates some aspects of old CRT monitors, as I prefer to play emulated games with such a filter, and the built-in dosbox filters are not to my taste. I made this because I wanted it myself, but since I have it I thought I'd share it. There's probably lots of things which could be done better, but it's good enough for my needs right now, so leaving it like this for now. The source code is available here: https://github.com/mattiasgustavsson/dosbox-crt
I am not a DOSBOX expert, so I won't be able to help you get games working in the emulator or things like that, but if you have questions about my CRT shader, feel free to DM me on twitter, @Mattias_G.
This release comes with a handful of games bundled with it, to make it quick and easy to try the filter out with some real content. All of them are playable demo versions rather than full games, to make the package size smaller and also as to not infringe any copyrights. You can buy full versions of some DOS games on gog.com, and some games are available on sites like abandonia.com, dosgamesarchive.com or archive.org.
You can run dosbox by running the DOSBOX.BAT file in the root of the package. This will load up a DOS menu for easy launch of the game demos. Pressing Ctrl+X will exit the menu and take you to the DOS prompt, and you can use the normal DOS commands to launch things.
Log in with itch.io to leave a comment.
I've been super bummed that I don't own a real CRT monitor these days (and am meaning to find one on craig's list or something.) I grew up with a 386/486 and really miss the look of all those old games, especially since much of the graphic work was made with CRT pixilation in mind. I'm so pysyched to try this out, as it's a perfect solution to my problem: I've got two or three huge cardboard boxes of old floppies and CD-ROMs from the 90s that I want to play, but that I know won't look or feel the same on my modern LED monitor! Now, they will! Woo!
Amazing filter but my mouse doesn't seem to work at all. When I go to window-mode and hover over the DosBox window, the cursor gets pushed the right side of the window every time. CTRL-F10 doesn't make a difference.
Anyone have any ideas for dealing w this?
Any chance to implement this into SCUMMVM? Or is it already?
I haven’t seen any scummvm integrations of the shader. I think it would certainly be possible to do, but I have no idea how much work it would be, and I don’t have any plans to look into it myself. But the source code for the shader is available, so there’s always the hope that someone will implement it sometime.
Just downloaded today, this is exactly what I needed for my retro-pc games. Thank you! Any way to edit that intro menu? I would love to add my games to the menu as well. Great work!
Thanks, I’m glad you like it!
I am not familiar with OBS shaders, but it might well be possible to integrate my shaders with that. It is not something I would do though, but the code is open source so maybe someone else will.
I do have a standalone image viewer using the shader, and the code to that can be found here https://github.com/mattiasgustavsson/crtview
It might be a useful reference for anyone trying to use it for something else
It's been 10 years since I touched C for the last time xD but if I had the shader alone (like, vertex and fragment files) I could try something...
too bad I couldn't find them in that repo
yeah, it’s not so straightforward to find them - it’s implemented as a single-file library, so the shader code is embedded in the C code - you can find it here https://github.com/mattiasgustavsson/crtview/blob/de7897958ac1f346ca7fa3dbf5a57dab5fcc5bb3/source/crtemu_pc.h#L57
It’s a little more complicated than just a shader though - I use a couple of extra passes and buffers, to do a good gaussian blur with decent performance, and to accumulate pixel values over time, so there can be a visible blur trail when objects move. I don’t know how tricky it would be to recreate that for OBS...
I do have an earlier version of the shader here:
It doesn’t use the extra buffers, it is just a plain pixel shader. So it does not have the blur trail, and it is also very GPU intensive due to the gaussian blur being done on the full resolution rather than on a smaller buffer.
I'd love to see an OBS shader/filter integration as well! If anyone ever does end up doing it, please let me know!
I like it - most other builds come with many experimental parts that only cause compatibility issues. Only thing that I would like, is for the PNG used to be external so you can modify it.
I love this! Is there a way I can replicate this shader as a GLSL, CG, or SLANG? This is the closest to my old monitor from the 90s that I've seen!