-
Notifications
You must be signed in to change notification settings - Fork 9
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
Solutions to Known Issues [Banding, Color Ghosting, Erratic Flicker] #4
Comments
In summary, technical behaviors:
Some workarounds are going to be made for January 2025 release.
These will improve the CRT simulator, and will likely be deployed to Retroarch very quickly. ETA winter 2025, hopefully ASAP. However, please follow instructions above. |
Additional Tweak for 120Hz LCD Users With BandingI got a success report that larger LCD_INVERSION_COMPENSATION_SLEW helps a little bit with certain 120Hz LCDs that have inverison-related gamma banding issues. Code:
Try changing "0.001" to either "0.01" or even "0.05" This may reduce banding for certain LCDs, since one of the early warning signs LCD inversion algorithm interference with BFI/CRT style algorithms -- is a gamma shift in the banding overlaps, creating more visible banding. By rolling slightly or much faster, the band becomes much fainter. |
Known Issues That Are Fixable
End-User Instructions to Improve Quality
For those visiting, best practices:
INSTRUCTIONS: Fixing Banding
INSTRUCTIONS: Improving Motion Blur Reduction
INSTRUCTIONS: Fixing Erratic Flicker
INSTRUCTIONS: Reducing Chroma Ghosting
INSTRUCTIONS: Fixing Apple Limitations
Developer Best Practices on Shader Sequencing: Think Like a CRT
Shader programmers need to sequence things properly:
If you're adding a CRT simulator shader to your software, remember to run the CRT simulation shader at full native monitor Hz, regardless of your content frame rate. Whether you're doing 60fps on a simulated 60Hz CRT at 240Hz native Hz, or whether you're doing odd-divisors (works) like 24fps movies via 72Hz simulated CRT on a 240Hz display (works too), FRAMES_PER_HZ is a float, just need at least 2:1 native:simulated.
*(Note: Some filters distort the gamma curve, make your filter gamma-curve-preserving or banding will appear. It needs to be similar before/after filtering, or it violates Talbot Plateau Theorem math of the simulator)
The text was updated successfully, but these errors were encountered: