Current Saturn core extends the requirements beyond 10 to 14 potentially more, increasing the array to 20 to fix the current limitation and allow for some buffer.
- Add an expanded key option to include core pixel freq in key E.g. Corename_FPS_Fpix=PhaseInc
- Fixes issue with matching YC key when Saturn core changes from low res to high res mode, as the FPS remains the same when the pixel clocks change (E.g. 6.71Mhz vs 7.16Mhz)
- Tested with existing yc.txt list as well as new Saturn keys for yc.txt
`preset_default` option added to ini. Filename is relative to the presets/ path.
"Reset to defaults" option added to video processing menu which will delete the config files and reload the default configuration.
* Merge branch 'hdr' of https://github.com/wickerwaka/Main_MiSTer into feature-hdr
Merged in wickerwaka's old HDR branch and integrated the BT2020 and DCI P3 color space conversion matrices. Changed "hdr" option to be a selection of matrix instead of saturation option.
* Add HDR example to MiSTer ini
* Addition of HDMI color controls (brightness, contrast, saturation, hue, gain, offset) that can be tweaked via MiSTer.ini (examples in-file). These controls are used to construct a matrix for the HDMI chip's color space converter. Due to the nature of this change, HDMI limited and YCbCr options have been reworked and combined into the color matrix routine (hdmi_config_set_csc)
* Change cc_ prefix to video_, as per suggestion and inline with existing video options.
Added `cfg_error` function for reporting errors in the ini.
Report errors when parsing video_mode information.
Report out of bounds settings.
Report unknown settings.
Detect numeric parse failures.
Reduce cost of setting video mode information when using
vsync_adjust=1/2 or vscale_mode=4/5 from 90ms to 5ms (worst case, most
instances are less than 1ms).
Split video initialization into video_init and video_set_mode.
video_init is called once, video_set_mode is called whenever the mode
changes.
Split hdmi_config into hdmi_config_init and hdmi_config_set_mode. Same
as video_, hdmi_config_init does the bulk of the initialization,
hdmi_config_set_mode is just for parameters that can change based on the
mode.
Load video filter data in loadScalerCfg and persist it.
Calculate a digest for scaler data and use that to determine whether new
data needs to be sent.
Only send gamma information if the filename has changed.
Offload fb module parameter writing to a separate thread via the new
offload system.
Reduce the amount of work being done in set_vrr_mode when vrr is
disabled.
* Support enabling VRR on displays that advertise it
* Disable SPD and Spare packet registers when they aren't needed. Update ini
Co-authored-by: Zakk <zakk@rsdio.com>
vertical scale and use the minimum.
vscale_mode has been changed to make it more reliable.
vscale_mode=4 - Generate modes that match the cores aspect ratio.
Generally better, will work with more cores and produce most optimal
resolutions, but will not be compatible with displays that always
stretch the image to fill.
vscale_mode=5 - Generate modes that match the original display aspect
ratio, if the core needs a wider aspect then the resolution is not
changed. Compatible with a wider range of displays.
Updated INI with a clearer description.
Removed mode 6 since it was not being used and adjusting display width
doesn't enable integer horizontal scaling.
uh undo
Send pixel repetition as high bit of video width
Half linux framebuffer size when PR is in use
If a modes width is > 2048 then use pixel repetition
Add video_mode 14 2560x1440.
Fallback to mode 8 if core doesn't support PR
video_info wasn't being updated correctly when `force` was set, it was getting
overridden by the previous value because the `res_changed` check was
false.
Both modes ensure there is enough horiztonal resolution to fit the core.
They do this by reducing the vertical resolution as needed. Mode 5 keeps
the horizontal resolution fixed, which uses more bandwidth but reduces
the amount of resolution switches that can occur and prevents the OSD
from getting to narrow in rotated arcade cores.
Initialize the video_info with the current data if the fb_crc changes to
ensure it has valid data for the resolution if the resolution has not
changed.
Cores with Directvideo and composite sync don't seem to need
VSync aligned to HSync when pixel repetition is disabled which
saves time and effort adjusting cores.