-
-
Notifications
You must be signed in to change notification settings - Fork 148
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
Authentic adaptive CRT shaders #2777
Commits on Aug 31, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 664cee2 - Browse repository at this point
Copy the full SHA 664cee2View commit details -
Configuration menu - View commit details
-
Copy full SHA for a7800ed - Browse repository at this point
Copy the full SHA a7800edView commit details -
Configuration menu - View commit details
-
Copy full SHA for d25dd84 - Browse repository at this point
Copy the full SHA d25dd84View commit details -
Remove mechanism to pass #define directives from env vars to shaders
Remove the super obscure "extension mechanism" where #define directives can be passed to shaders via GLSHADER_* environment variables. This is originating from the original OpenGL shader SVN patch. Most likely nobody uses this for anything and it just complicates the code for no good reason, so it's best to lose it.
Configuration menu - View commit details
-
Copy full SHA for c10a2fe - Browse repository at this point
Copy the full SHA c10a2feView commit details -
Configuration menu - View commit details
-
Copy full SHA for fa3d268 - Browse repository at this point
Copy the full SHA fa3d268View commit details -
Untangle init_shader() to make the shader loading logic composable
Also turn 'glshader' into a string property as it can store either symbolic shader names or actual paths.
Configuration menu - View commit details
-
Copy full SHA for 7a2fb45 - Browse repository at this point
Copy the full SHA 7a2fb45View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5904cfd - Browse repository at this point
Copy the full SHA 5904cfdView commit details -
Use std::string instead of string_views in sdlmain
Replacing all uses of string_view with std::string in sdlmain.cpp as its use is not warranted (we're not dealing with substrings, neither anything performance sensitive, so 'const std::string&' is a simpler and more straightforward solution).
Configuration menu - View commit details
-
Copy full SHA for 0fa4cad - Browse repository at this point
Copy the full SHA 0fa4cadView commit details -
Configuration menu - View commit details
-
Copy full SHA for d66b1ee - Browse repository at this point
Copy the full SHA d66b1eeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 650e097 - Browse repository at this point
Copy the full SHA 650e097View commit details -
Configuration menu - View commit details
-
Copy full SHA for 842ba86 - Browse repository at this point
Copy the full SHA 842ba86View commit details -
Configuration menu - View commit details
-
Copy full SHA for 98b3c4b - Browse repository at this point
Copy the full SHA 98b3c4bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 06f0bac - Browse repository at this point
Copy the full SHA 06f0bacView commit details -
Configuration menu - View commit details
-
Copy full SHA for f639bf7 - Browse repository at this point
Copy the full SHA f639bf7View commit details -
'Resources' also ignores 'contrib/resources' on case-preserving file systems (Windows and macOS).
Configuration menu - View commit details
-
Copy full SHA for b6ad0ad - Browse repository at this point
Copy the full SHA b6ad0adView commit details -
Configuration menu - View commit details
-
Copy full SHA for 73eef48 - Browse repository at this point
Copy the full SHA 73eef48View commit details -
Remove SVN shaders from the bundled resources
These shaders have been a constant source of confusion because: - They're not documented -- a new user wouldn't know which one to pick based on the cryptic shader names alone. - Many of them assume a specific output resolution (e.g., 4k) and look quite bad on 1080p, but you don't know that only looking at the shader's name. - Most of them require further tweaking to get optimal results on specific output resolutions. - Most of them don't even aim to emulate the characteristics of PC monitors that are quite distinct from arcade monitors, home computer monitors, or TV sets from the 80s/early 90s. Because of the above, we are not bundling them with future DOSBox Staging releases anymore; they are replaced by the new dynamic shader system that picks the best CRT shader variant based on the graphics standard in use (CGA, EGA, VGA, etc.) and the available viewport resolution (1080p, 1440p, 4k, etc.) These SVN shader will still be available as a separate download for people who want to experiment with them.
Configuration menu - View commit details
-
Copy full SHA for a16a06b - Browse repository at this point
Copy the full SHA a16a06bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4a603d8 - Browse repository at this point
Copy the full SHA 4a603d8View commit details -
Configuration menu - View commit details
-
Copy full SHA for f9f02a8 - Browse repository at this point
Copy the full SHA f9f02a8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2ee481e - Browse repository at this point
Copy the full SHA 2ee481eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 015042b - Browse repository at this point
Copy the full SHA 015042bView commit details -
Implement adaptive CRT emulation shaders
- All shader management code has been moved from 'render.cpp' to the ShaderManager. - The 'default' shader alias to 'interpolation/sharp' has been replaced with the 'sharp' alias. - Three new adaptive (auto-switching) CRT emulation shader modes have been added: 'crt-auto', 'crt-auto-machine', and 'crt-auto-arcade'. These modes switch dynamically between CRT shader variants depending on the current video mode, the graphics adapter in use, and the viewport resolution (see the description of the 'glshader' setting for further details).
Configuration menu - View commit details
-
Copy full SHA for c8c2bcd - Browse repository at this point
Copy the full SHA c8c2bcdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 62b8170 - Browse repository at this point
Copy the full SHA 62b8170View commit details -
Configuration menu - View commit details
-
Copy full SHA for b8e511b - Browse repository at this point
Copy the full SHA b8e511bView commit details -
Configuration menu - View commit details
-
Copy full SHA for c8d4c19 - Browse repository at this point
Copy the full SHA c8d4c19View commit details -
Add 'auto' integer scaling mode & improve shader name mapping
With the 'integer_scaling = auto' setting, vertical integer scaling is auto-enabled for adaptive CRT shaders only, and only if a CRT shader is actually in use, but not for the fallback 'sharp' shader.
Configuration menu - View commit details
-
Copy full SHA for 0f70f30 - Browse repository at this point
Copy the full SHA 0f70f30View commit details -
Make VideoMode part of the mode-changed criteria
After the double-scanning & pixel-doubling changes, a few video mode pairs became indistinguishable when only looking at the render parameters. E.g., the render dimensions of the 320x200 (standard BIOS mode 13h) and 320x400 (non-VESA Mode X variant only) modes are both 320x400, so they were considered the same by the mode-change detection logic prior to this adjustment. The solution is to include the contents of the VideoMode struct in the mode-changed criteria (in this example, that would contain the "nominal" dimensions of 320x200 and 320x400, respectively).
Configuration menu - View commit details
-
Copy full SHA for 0362dde - Browse repository at this point
Copy the full SHA 0362ddeView commit details -
Remove VGA_GetCurrentMode and VGA_DescribeMode
These have been superseded by VideoMode.to_string()
Configuration menu - View commit details
-
Copy full SHA for ebecec7 - Browse repository at this point
Copy the full SHA ebecec7View commit details -
Configuration menu - View commit details
-
Copy full SHA for f80643b - Browse repository at this point
Copy the full SHA f80643bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2503b19 - Browse repository at this point
Copy the full SHA 2503b19View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8e0a612 - Browse repository at this point
Copy the full SHA 8e0a612View commit details -
Configuration menu - View commit details
-
Copy full SHA for 014024e - Browse repository at this point
Copy the full SHA 014024eView commit details