Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kurozumi preset #12

Open
gitgud13372 opened this issue Mar 17, 2021 · 10 comments
Open

Kurozumi preset #12

gitgud13372 opened this issue Mar 17, 2021 · 10 comments

Comments

@gitgud13372
Copy link

What are the settings?

@akgunter
Copy link
Owner

I've posted some commentary on the kurozumi preset over on the reshade forum. It's spread across a few posts, so ctrl-f for "kurozumi" to find them all.

The short version is this:

  1. Go to the retroarch shader repo and download one of the kurozumi LUT files (e.g. Kurozumi_64_D65_EBU.png).
  2. Use the LUT.fx effect prepackaged with reshade to apply that LUT. Make sure LUT.fx is loaded before crt-royale.fx
  3. Reset crt-royale.fx to default settings.
  4. Set Mask Triad Width to 2
  5. Set the remaining configs as per the .slangp preset
  • Mask Type = "Grille"
  • CRT Gamma = "2.400000"
  • LCD Gamma = "2.400000"
  • Levels Contrast = "0.670000"
  • Halation = "0.003700"
  • Diffusion = "0.001100"
  • Bloom Underestimation = "0.650000"
  • Bloom Excess = "0.020000"
  • Convergence Offset X RGB = "-0.05", "0.00", "0.00"
  • Convergence Offset Y RGB = "0.05", "-0.05", "0.05"
  • Beam Horiz Filter = "Gaussian"
  • Beam Horiz Sigma = "0.320000"

Note that a handful of the beam settings are nuked in my version, but they weren't particularly impactful anyway. You can set the screen geometry to whatever you like.

@gitgud13372
Copy link
Author

I used the Kurozumi_64_D65_EBU.png LUT and set the tile amount and the size both to 64, but I can't get the same results as the screenshots.

@akgunter
Copy link
Owner

You're welcome to post comparison screenshots, and I'll see if I can figure out how to nudge it closer; but bear in mind that it won't be possible to get an exact match because it wasn't possible to do an exact port. I had to completely rewrite some really important pieces of the shader to make them behave, and other pieces don't compute exactly the same way due to differences in the pipeline's architecture.

@gitgud13372
Copy link
Author

https://forums.libretro.com/uploads/default/original/2X/4/4f7b670558dfe958c5f9d2e5e4c692a33b71cdb8.jpg
I want to achieve this look, mainly the clear separation of lines.

@MilkManEX
Copy link

MilkManEX commented May 29, 2021

The clear separation of lines is an artifact of interlacing. If you turn on interlacing and take a screenshot, you'll see the lines like that. They're not typically visible on real CRTs.

If you want those lines to be visible while playing anyway, you can approximate that with the GTUv50 shader from here: https://github.com/Matsilagi/RSRetroArch

Load that ahead of Royale and adjust vertical signal resolution until the lines are clear but the contrast isn't destroyed (between 300 and 500 in my case).

The results are decent (zoomed in from a 4K display):
https://i.imgur.com/kMnlFR2.png

It won't be CRT accurate, but then neither are visible gaps between beams.

@bugreport1
Copy link

The clear separation of lines is an artifact of interlacing. If you turn on interlacing and take a screenshot, you'll see the lines like that. They're not typically visible on real CRTs.

If you want those lines to be visible while playing anyway, you can approximate that with the GTUv50 shader from here: https://github.com/Matsilagi/RSRetroArch

Load that ahead of Royale and adjust vertical signal resolution until the lines are clear but the contrast isn't destroyed (between 300 and 500 in my case).

The results are decent (zoomed in from a 4K display): https://i.imgur.com/kMnlFR2.png

It won't be CRT accurate, but then neither are visible gaps between beams.

This is not correct.

Just about everything prior to the fifth generation of video game consoles ran in "240p" mode rather than 480i - so the image was not interlaced.

240p mode was a 480i signal modified so that the lines would be painted in the same location for each field (all odd or all even) rather than alternating odd/even lines, as in a typical interlaced signal.

This allows for 60 FPS without combing or flickering artifacts, but the 'downside' is that half the lines of the display were always blank.
However, those old games were drawn with the assumption of a 240p presentation - so scanlines are required for the art to look 'correct'.

The visibility of those scanlines depends on the CRT tube:

  • A small, lower-end consumer display might not be sharp enough to display them at all.
  • A mid-range or higher-end consumer display might show faint to moderate scanlines, with a lot of variation in their thickness.
  • A high-end consumer display will show prominent scanlines, with some variation in thickness along the line.
  • A computer monitor or a broadcast display will show very thick and prominent scanlines - almost the same thickness as the image itself.

It should be possible to see scanlines in the CRT Royale shader without having to enable the interlaced mode (which alternates the 'scanline' position every frame and flickers badly).

This is possible in the RetroArch version of the shader, but does not seem to work in this port. It does a weird pixelation/blending thing instead.

@MilkManEX
Copy link

Appreciate the correction and clarification.

@Defreezer
Copy link

Seconding the request for toggable + configurable scanlines without requiring interlacing to be active. It's a crucial detail in the shader.

@akgunter
Copy link
Owner

I just pushed a new development branch related to this. It's a small change, but it refactors the "blending" behavior and such into a "deinterlacing mode" of sorts. I've named one of those modes "Static", and it draws either the odd or even field for every frame.

I still need to reconstruct the logic that simulates the gaussian shape of the electron beam, but hopefully this is a step in the right direction.

Check out the feature/deinterlacing branch to try it out.

@akgunter
Copy link
Owner

Oh, and thanks for that info @bugreport1. My hands-on experience with CRTs is from when I was a kid and is rather limited at this point, so those were details I wasn't aware of.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants