Editing CRT-Royale

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 7: Line 7:
 
CRT-Royale is a large and complex shader, so it will need modern hardware to run correctly. Discrete Nvidia or AMD video cards made in the last few years are recommended. In particular, Intel iGPUs will struggle to run the shader and some may not even run in some cases. The author provided a preset for Intel users that compromises some functionality for compatibility. There's also various <code>user-settings.h</code> files in <code>crt-royale-settings-files</code><ref>[https://github.com/libretro/common-shaders/tree/master/crt/shaders/crt-royale/crt-royale-settings-files crt-royale-settings-files]</ref> that enable/disable options for different GPU profiles.
 
CRT-Royale is a large and complex shader, so it will need modern hardware to run correctly. Discrete Nvidia or AMD video cards made in the last few years are recommended. In particular, Intel iGPUs will struggle to run the shader and some may not even run in some cases. The author provided a preset for Intel users that compromises some functionality for compatibility. There's also various <code>user-settings.h</code> files in <code>crt-royale-settings-files</code><ref>[https://github.com/libretro/common-shaders/tree/master/crt/shaders/crt-royale/crt-royale-settings-files crt-royale-settings-files]</ref> that enable/disable options for different GPU profiles.
  
The display you use for CRT-Royale should have at least 1440p of resolution to give a decent level of detail for slot mask emulation, though 4K (2160p) or higher resolutions are recommended. 1080p displays can work for aperture grille emulation since less resolution is needed to render vertically aligned phosphors.
+
The display you use for CRT-Royale should have at least 1440p of resolution to give a decent level of detail for slot mask emulation, though 4K (2160p) or higher resolutions is recommended. 1080p displays can work for aperture grille emulation, since less resolution is needed to render vertically aligned phosphors.
  
This shader uses some features in RetroArch's Cg shader format that has only been somewhat recently added since version 1.0.0.2, such as sRGB framebuffers and mipmapping, so you should at least be using RetroArch 1.2 for this shader.
+
This shader uses some features in RetroArch's Cg shader format that have only been somewhat recently added since version 1.0.0.2, such as sRGB framebuffers and mipmapping, so you should at least be using RetroArch 1.2 for this shader.
  
 
==Customization==
 
==Customization==
Line 54: Line 54:
 
These settings determine the shape and size of the lit scanlines of the simulated CRT.  
 
These settings determine the shape and size of the lit scanlines of the simulated CRT.  
  
Min and max sigma settings affect the size of each scan line relative to the brightness of the image. A large range of beam sigmas causes the scanlines to vary in width depending on brightness, while small ranges result in a less variable width of scanlines. Higher sigmas increase the size of the scan lines, resulting in smaller gaps and more vertical blurring.
+
Min and max sigma settings affect the size of each scanline relative to the brightness of the image. A large range of beam sigmas causes the scanlines to vary in width depending on brightness, while small ranges result in less variable width of scanlines. Higher sigmas increase the size of the scanlines, resulting in smaller gaps and more vertical blurring.
  
Min and max shape settings affect the Gaussian profile of the scanlines. Higher values for these make the scanline plateaus flatter and have steeper drop-offs. These effects are really only noticeable at higher screen resolutions.
+
Min and max shape settings affect the Gaussian profile of the scanlines. Higher values for these make the scanline plateaus flatter and have steeper drop offs. These effects are really only noticeable at higher screen resolutions.
  
 
<code>beam_horiz_filter</code> specifies how the beam is filtered horizontally. The options are 0.0 (Quilez, sharp and fast), 1.0 (Gaussian, configurable sharpness), and 2.0 (Lanczos2, sharp and higher quality). <code>beam_horiz_sigma</code> is used to set the level of blur when using Gaussian horizontal filtering.
 
<code>beam_horiz_filter</code> specifies how the beam is filtered horizontally. The options are 0.0 (Quilez, sharp and fast), 1.0 (Gaussian, configurable sharpness), and 2.0 (Lanczos2, sharp and higher quality). <code>beam_horiz_sigma</code> is used to set the level of blur when using Gaussian horizontal filtering.
Line 68: Line 68:
 
  convergence_offset_y_b = 0.000000
 
  convergence_offset_y_b = 0.000000
  
The convergence offsets settings specify how well the simulated CRT electron beams are aligned. The default values indicate perfect convergence with no colors that are misaligned. However, real CRTs, particularly cheaper consumer models, very often did not have perfect convergence, so you can change the offsets to simulate that flaw if you want.
+
The convergence offsets settings specify how well the simulated CRT electron beams are aligned. The default values indicate perfect convergance with no colors that are misaligned. However, real CRTs, particularly cheaper consumer models, very often did not have perfect convergance, so you can change the offsets to simulate that flaw if you want.
  
 
===Mask===
 
===Mask===
Line 83: Line 83:
 
<code>mask_sample_mode_desired</code> specifies the sampling mode of the phosphor mask. The default of 0.0 is the highest quality and slowest method, while 1.0 is lower quality but faster. The 2.0 setting makes the mask tile without resizing, which results in a huge phosphor mask with the default mask textures, so it's intended more for mask textures for a screen of a fixed size.
 
<code>mask_sample_mode_desired</code> specifies the sampling mode of the phosphor mask. The default of 0.0 is the highest quality and slowest method, while 1.0 is lower quality but faster. The 2.0 setting makes the mask tile without resizing, which results in a huge phosphor mask with the default mask textures, so it's intended more for mask textures for a screen of a fixed size.
  
<code>mask_triad_size_desired</code> specifies the size of each phosphor triad relative to the screen. Smaller triad size will make the simulated CRT like a high-resolution PC CRT or a Sony BVM with increased sharpness and less visible phosphors, while a larger triad size makes the simulated CRT into a low-resolution CRT like many consumer TVs with more blurring and less visible scanline gaps. It's recommended to keep this setting as a whole number since fractional sizes seem to cause scaling artifacts sometimes.
+
<code>mask_triad_size_desired</code> specifies the size of each phosphor triad relative to the screen. Smaller triad size will make the simulated CRT like a high resolution PC CRT or a Sony BVM with increased sharpness and less visible phosphors, while a larger triad size makes the simulated CRT into a low resolution CRT like many consumer TVs with more blurring and less visible scanline gaps. It's recommended to keep this setting as a whole number, since fractional sizes seem to cause scaling artifacts sometimes.
  
 
If <code>mask_specify_num_triads</code> is set to 1.0, then the phosphor mask will be scaled to use the number of triads specified in <code>mask_num_triads_desired</code>. This is disabled by default.
 
If <code>mask_specify_num_triads</code> is set to 1.0, then the phosphor mask will be scaled to use the number of triads specified in <code>mask_num_triads_desired</code>. This is disabled by default.
Line 118: Line 118:
 
These are the settings that control the geometry of the simulated CRT.
 
These are the settings that control the geometry of the simulated CRT.
  
The geometry modes available are 0.0 (Flat), 1.0 ([[CRT-Geom]] style curvature), 2.0 (bulbous curvature), and 3.0 (cylindrical Trinitron curvature). View distance specifies how far the CRT is in the user's field of view. The tilt angle settings control which direction the screen is tilted. The aspect ratio of the simulated screen can also be configured. Overscan affects how much of the image is visible on the simulated CRT since many consumer TVs did not display the full scan area.
+
The geometry modes available are 0.0 (Flat), 1.0 ([[CRT-Geom]] style curvature), 2.0 (bulbous curvature), and 3.0 (cylindrical Trinitron curvature). View distance specifies how far the CRT is in the user's field of view. The tilt angle settings control which direction the screen is tilted. The aspect ratio of the simulated screen can also be configured. Overscan affects how much of the image is visible on the simulated CRT, since many consumer TVs did not display the full scan area.
  
 
Some people may find curvature to be distracting so leaving these settings at default will leave the CRT image perfectly flat.
 
Some people may find curvature to be distracting so leaving these settings at default will leave the CRT image perfectly flat.
Line 133: Line 133:
 
  interlace_1080i = 0.000000
 
  interlace_1080i = 0.000000
  
These settings control how interlacing is handled by the shader. The "bff" setting refers to the order in which each scan line field is displayed, where setting that to 1.0 would make it "bottom field first" as opposed to "top field first" like the default. The 1080i setting specifies whether interlacing is enabled if the input image is 1080 pixels tall, setting it to 1.0 makes it display 1080i instead of 1080p.
+
These settings control how interlacing is handled by the shader. The "bff" setting refers to the order in which each scanline field is displayed, where setting that to 1.0 would make it "bottom field first" as opposed to "top field first" like default. The 1080i setting specifies whether interlacing is enabled if the input image is 1080 pixels tall, setting it to 1.0 makes it display 1080i instead of 1080p.
  
 
Interlacing detection can be turned off entirely by editing <code>interlace_detect</code> in <code>user-settings.h</code> to be <code>false</code>. This will make it display 480 pixel tall content as 480p instead of 480i, which will eliminate any flickering, but may result in combing artifacts if the game is interlaced natively. This setting is static only and is not a runtime parameter.
 
Interlacing detection can be turned off entirely by editing <code>interlace_detect</code> in <code>user-settings.h</code> to be <code>false</code>. This will make it display 480 pixel tall content as 480p instead of 480i, which will eliminate any flickering, but may result in combing artifacts if the game is interlaced natively. This setting is static only and is not a runtime parameter.

Please note that all contributions to Emulation General Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Emulation General Wiki:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)