* hdmi_cec
* Improve HDMI CEC startup
* hdmi_cec
* Improve HDMI CEC startup
* Use ADV7513 interrupt registers for CEC
Set ADV7513 main 0xE1 to the CEC I2C map address, 0xE2 to 0x00 to power the CEC block, and 0xE3 |= 0x0E for CEC control setup.
Keep HPD forced high through main 0xD6 = 0xC0 after the startup pulse, but clear main 0x94[7] so HPD does not drive the shared HDMI interrupt line.
Clear main 0xA1[6] so the monitor-sense/video-active block stays powered; ADV7513 interrupt status registers 0x94-0x97 are only valid while that block is alive.
Set main 0x95 = 0x07 to enable only CEC RX-ready interrupts, use main 0x97 to clear RX/TX interrupt latches, and clear 0x96/0x97 at init.
Read CEC RX-ready from CEC map 0x49, keep CEC RX enabled with 0x4A = 0x08, release consumed RX slots through 0x4A, and remove fallback polling of RX length registers 0x25/0x37/0x48.
Use main 0x97 bits for CEC TX done/retry/arbitration status, keep CEC TX disabled through 0x11 except while sending, and set the CEC clock divider 0x4E = 0x3D.
Gate RX handling on fpga_get_hdmi_int() so normal CEC polling no longer performs DDC/CEC I2C reads unless the FPGA HDMI interrupt bit is asserted.
Reply to CEC vendor/name discovery so displays can identify MiSTer after registration.
---------
Co-authored-by: misteraddons <51079966+misteraddons@users.noreply.github.com>
When video_off_hdmi=1 is set in MiSTer.ini, the ADV7513 HDMI
transmitter is powered down via I2C when the video_off timeout
expires, allowing the connected monitor to enter sleep mode.
HDMI is restored when user activity is detected (OSD opens).
* Add video_mode FIFO command for CRT video mode switching
- video.cpp: Add video_mode_cmd() that parses custom modelines and
applies them via video_set_mode(), with hfreq safety check blocking
modes outside 15625-16500Hz to protect 15kHz CRT monitors
- video.h: Declare video_mode_cmd()
- input.cpp: Dispatch "video_mode" commands from MiSTer_cmd FIFO
to video_mode_cmd()
* Remove hfreq guard from video_mode_cmd
The horizontal frequency check was limiting the command to 15kHz modes only. Removing it allows custom modelines with any frequency to be applied. Software at the other end must take care of not calling this API with unsafe frequencies.
* Simple Auto Direct Video
direct_video=2
Checks for 1024x768 HDMI resolution and sets direct_video=1
No hot plug detect
No EDID parsing
No device whitelist
No hdmi_limited set based on EDID whitelist
* Add EDID detection and set hdmi_limited for common DACs
- AG6200 sets hdmi_limited=2
- CS5213 sets hdmi_limited=0
* Fix logic to pass normal EDID resolution if not 1024x768
* Update MiSTer.ini
* Remove 1024x768 resolution check
- Only use mfg_id from EDID to identify known compatible DACs
* Add DAC id and settings to dv_dac.txt and dv_dac_user.txt
- mfg_id
- rgb range
- hdmi_audio_96khz
- composite_sync: 0, 1, or "" (default is "")
- dv_dac_user.txt for HDMI video upscalers that support direct video
- device commented out by default
* Fix parsing of dv_dac.txt
DAC model name wasn't being displayed due to empty composite_sync field
* Simple Auto Direct Video
direct_video=2
Checks for 1024x768 HDMI resolution and sets direct_video=1
No hot plug detect
No EDID parsing
No device whitelist
No hdmi_limited set based on EDID whitelist
* Add EDID detection and set hdmi_limited for common DACs
- AG6200 sets hdmi_limited=2
- CS5213 sets hdmi_limited=0
* Fix logic to pass normal EDID resolution if not 1024x768
* Update MiSTer.ini
* Remove 1024x768 resolution check
- Only use mfg_id from EDID to identify known compatible DACs
* Add DAC id and settings to dv_dac.txt and dv_dac_user.txt
- mfg_id
- rgb range
- hdmi_audio_96khz
- composite_sync: 0, 1, or "" (default is "")
- dv_dac_user.txt for HDMI video upscalers that support direct video
- device commented out by default
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.