Hello,
RetroArch is a awesome emulator, so awesome that some of my friends and I would like to have some of its features on other emulators and PC games as well…
So… do you think it is possible to port CRT-EasyMode Halation to Dolphin emulator as a Post Render Shader? I believe that Dolphin uses GSLS and not CG Shaders.
I’ve talked to Dolphin developers and they said that it is possible to port it to Dolphin, if it is an one pass shader, but maybe it is doable as a multi-pass shader too… I’m not sure.
I know that Dolphin works with SweetFX, so a port to SweetFX would target more people, since it works with any D3D game, including PC.
So… can someone with shader knowledge port this shader to SweetFX or Dolphin?
Thank you very much for your hard work.
It should be doable. There’s a single-pass version of easymode’s shader, which shouldn’t be too bad to convert based on a quick glance (that is, I didn’t see any Cg-specific functions or any shader capabilities that are unique to RetroArch). However, this shader doesn’t look good at high input resolutions (you can see what I mean by trying it with the mupen64plus core at higher internal resolutions vs 320x240), so Dolphin and/or SweetFX would need to be able to feed in either a low resolution or downsample it before running the shader pass.
Hello,
I’ll test it with a high resolution setting when I get home.
It is not about the game resolution, but the screen resolution, a higher ingame resolution probably would make the game too sharp for the CRT Shader, right?
I was thinking about it, maybe it is better to port the shader directly to SweetFX, since several old games uses pixelated artwork, these games would run great with a CRT shader (probably).
I’ve requested the wrong shader to be ported, the right one was the CRT-Easymode-Halation, not the CRT-Easymode, I’m sorry about that.
Do you think this one can be ported to SweetFX?
By the way, I’ve read your blog, I’ve learned a lot about the CRT shaders, thank you hunterk.
It is about the game resolution. If you set mupen64plus’ internal resolution to >320x240, the CRT effects don’t look right, regardless of the output resolution.
Most of the modern pixel art games are running at a higher internal resolution, as well, unfortunately, even if they look low-res. On the bright side, if we can downsample the image before feeding it into the shader, it should look as good as if it were rendered at that low res natively, as long as the pixel art is done with a uniform pixel size (Shovel Knight, for example, should look good; Hotline Miami, however, will likely have issues with the downsampling). From my brief experience with cgwg’s CRT shader on SweetFX, I recall there being some way to force lower res, so it’s probably the best place to start looking for inspiration.
easymode-halation is multipass, so that complicates things quite a bit. It also leverages some capabilities of RetroArch’s shader backend that aren’t likely to be available in Dolphin/SweetFX, like using srgb framebuffers to reduce the computational load of operating in linear colorspace. That can be worked around but will hurt performance some.
There was one guy that was running some modern pixelated games with SweetFX CRT Shader, it looked good, because it emulated scanlines, but it had no Glow/halation or the “RGB grid” that CRT TVs have. It was much better than the original version of the game, yet the halation/glow and “RGB Grid” create a nostagic feeling, I couldn’t find any CRT Shader for SweetFX that was able to do that.
So… it is somewhat hard/time consuming to develop such shader, it is not just about porting, right?
[QUOTE=hunterk;31180]It is about the game resolution. If you set mupen64plus’ internal resolution to >320x240, the CRT effects don’t look right, regardless of the output resolution.
Most of the modern pixel art games are running at a higher internal resolution, as well, unfortunately, even if they look low-res. On the bright side, if we can downsample the image before feeding it into the shader, it should look as good as if it were rendered at that low res natively, as long as the pixel art is done with a uniform pixel size (Shovel Knight, for example, should look good; Hotline Miami, however, will likely have issues with the downsampling). From my brief experience with cgwg’s CRT shader on SweetFX, I recall there being some way to force lower res, so it’s probably the best place to start looking for inspiration.
easymode-halation is multipass, so that complicates things quite a bit. It also leverages some capabilities of RetroArch’s shader backend that aren’t likely to be available in Dolphin/SweetFX, like using srgb framebuffers to reduce the computational load of operating in linear colorspace. That can be worked around but will hurt performance some.[/QUOTE]
Yeah, I’ve tried using cgwg’s shader in SweetFX (called AdvancedCRT I believe) with various modern “retro” titles. It does treat higher resolution pixel art games like Shovel Knight and La-Mulana as if they were low res, but since various elements are positioned in high res, this leads to things sometimes appearing “smeared” because they’re effectively positioned between pixels.
Hamiroshi, out of curiousity, what are some games emulated through dolphin that you would use a CRT shader with? I ask because, like hunterk said, CRT shaders work best with resolutions around 240p or lower.
[QUOTE=hunterk;31190]It would be a port. No need to reinvent the wheel.
Have you tried this one yet?
It’s a little bloomy for my tastes but maybe you can tone that down:
Hello,
I think I’m doing something wrong, I can’t load the SweetFX ArcadeCRT Shader correctly, I’ll troubleshoot it when I have some time.
[QUOTE=EasyMode;31235]Yeah, I’ve tried using cgwg’s shader in SweetFX (called AdvancedCRT I believe) with various modern “retro” titles. It does treat higher resolution pixel art games like Shovel Knight and La-Mulana as if they were low res, but since various elements are positioned in high res, this leads to things sometimes appearing “smeared” because they’re effectively positioned between pixels.
Hamiroshi, out of curiousity, what are some games emulated through dolphin that you would use a CRT shader with? I ask because, like hunterk said, CRT shaders work best with resolutions around 240p or lower.[/QUOTE]
Hello!
I used to play GameCube and Wii games on a CRT FlatScreen TV, and some of the games effects used to bloom throught the screen. For example, the F-Zero´s cars boost is really bright, this effect is somehow lost by the emulation, since its bloom is a physical collateral effect of the CRT TV itself. I really think that the developers relied on the CRT physical properties to create some of the games effects, specially the ones that have burning, flash and lighting.
So a CRT simulation would probably add to the gaming experience that the developers intended when they developed it. Also the Wii Virtual Console games runs great on Dolphin, specially the Nintendo 64 games.
Since Gamecube and Wii games run at 480p, how did it output its image compared to the Snes on a CRT TV? I used to play both on the same TV.
So, the problem with resolution and CRT shader exists because the monitor display is too small to simulate the CRT accurately?
I think I’m doing something wrong, I can’t load the SweetFX ArcadeCRT Shader correctly, I’ll troubleshoot it when I have some time.
Hello!
I used to play GameCube and Wii games on a CRT FlatScreen TV, and some of the games effects used to bloom throught the screen. For example, the F-Zero´s cars boost is really bright, this effect is somehow lost by the emulation, since its bloom is a physical collateral effect of the CRT TV itself. I really think that the developers relied on the CRT physical properties to create some of the games effects, specially the ones that have burning, flash and lighting.
So a CRT simulation would probably add to the gaming experience that the developers intended when they developed it. Also the Wii Virtual Console games runs great on Dolphin, specially the Nintendo 64 games.
Since Gamecube and Wii games run at 480p, how did it output its image compared to the Snes on a CRT TV? I used to play both on the same TV.
So, the problem with resolution and CRT shader exists because the monitor display is too small to simulate the CRT accurately?[/QUOTE]
If bloom is the main thing you’re after, then SweetFX does include a bloom shader.
Most SNES games (and other systems’ games of that era) are 224/240p. In my experience, N64 games on the Wii Virtual console tend to run at 480p, even though they were originally 240p on the N64.
CRT shaders tend to target the 240p look specifically, with the most distinct characteristic being the scanlines with alternating dark lines. This look doesn’t apply to 480p games where there’s no dark scanlines, and I’m not sure my shader is well suited for such games.