Commit Graph

105 Commits

Author SHA1 Message Date
Brendan Saricks
596ebe5dc0 video: Change composite_sync default value to 1
* Change default composite_sync value to 1

From a troubleshooting perspective, composite_sync=1 seems like a more common gotcha because more people are using consumer CRTs than monitors.

I'm wondering if it makes sense to make this change as it covers more use cases.

* Update cfg.cpp
2025-10-16 14:28:31 +08:00
misteraddons
4b591f58fc Automatic Direct Video (#1035)
* 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
2025-09-12 14:08:50 +08:00
misteraddons
eef9cbd6d9 video: Support for chroma subcarrier over VGA
Adds "subcarrier" config flag, used to enable chroma subcarrier output over VGA Vsync for external RGB to NTSC/PAL converters.
2025-08-14 14:32:07 +08:00
Rikard Bengtsson
2ad7718ea9 Comment custom font path in MiSTer.ini (#980)
Seems weird to trying to read a font file probably no one has, so I commented this line.
2025-04-14 19:57:36 +08:00
Sorgelig
e61b111858 Add INI option Main for custom binary. 2024-03-25 23:36:19 +08:00
Sorgelig
bed1ca424a Set debug=0 by default. 2024-02-13 02:08:09 +08:00
Sorgelig
11d35160ff INI: add DEBUG option to disable logging to console. 2024-02-12 00:07:14 +08:00
Rikard Bengtsson
542b6f4d73 Added dead zone configuration (#857)
User can define dead zone by device identifier and a radius.
2023-12-01 17:51:05 +08:00
Javier Rodas
4236d70433 Add a second JAMMA quirk to support 4-player JAMMA-VERSUS with two JammaSD/J-PAC (or similar USB JAMMA) controller interfaces. (#811) 2023-09-05 05:44:00 +08:00
Alex Limi
7ad8106aed Fix typo and make the description clearer (#802)
* Fix typo and make the description clearer

* Another typo
2023-08-17 02:05:45 +08:00
Sorgelig
7bf2526b7c menu: manual OSD lock, some tweaks. 2023-08-04 04:33:07 +08:00
Alexey Melnikov
8c3c28e29a OSD Locking (#794)
Add osd_lock and osd_lock_time config options
When osd_lock is set it specifies a sequence of button pressed that must be pressed in order to gain access to the OSD while running a core.
osd_lock_time is the time (in seconds) before you will be prompted again for the unlock code after you have closes the OSD.

Co-authored-by: Martin Donlon <github-martin@donlons.com>
2023-08-03 15:03:47 +08:00
Sorgelig
d5f41db979 input: support for multiple input devices mapping per player. 2023-05-28 21:41:58 +08:00
Sorgelig
872b433ed5 input: add selective unique mapping. 2023-05-22 20:18:24 +08:00
Sorgelig
6e7c20c243 input: add controller_unique_mapping description to ini example. 2023-05-21 02:41:08 +08:00
Matheus Fraguas
0c03e569a8 Support to use mouse wheel as spinner. (#744) 2023-02-22 04:13:20 +08:00
Sam Hardeman
6a8eda7d43 Add functionality to change MaxCLL (peak nits) and MaxFALL (avg nits) + HDR with HDMI limited bugfix (#740) 2023-02-12 23:54:32 +08:00
Sorgelig
6dcd754ac9 video: support for PAL-60 and PAL-M modes for S-Video and CVBS. 2023-02-08 22:53:45 +08:00
Sorgelig
8d735d4e77 Add control for S-Video/CVBS module. Add vga_mode parameter into INI. 2023-02-08 10:22:50 +08:00
Martin Donlon
4d0caf154b video: default preset and reset option.
`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.
2023-02-07 02:55:52 +08:00
Sam Hardeman
bfc6dfde3d video: Re-ordering of HDR options to make HLG default + clean-up in ini explanation (#730) 2023-01-15 04:37:52 +08:00
Sam Hardeman
2eb0e538ea video: HLG HDR mode with hdr=3
* Replace HDR metadata with one correctly tuned for BT2020

* Add HLG HDR mode for hdr=3, by request of Mathieulh
2023-01-05 00:06:37 +08:00
Sam Hardeman
2b279d1488 video: HDR display/output support (BT2020 / DCI P3) (#718)
* 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
2022-12-22 02:43:15 +08:00
Sam Hardeman
3214046c50 Feature: HDMI color controls via tranceiver CSC (#715)
* 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.
2022-12-21 13:38:47 +08:00
Sorgelig
2d40444af0 ini option to disable autofire. 2022-11-28 20:46:42 +08:00
Sorgelig
6bda023db8 Add INI option for permanent controller assignment to specific player. 2022-10-31 19:53:50 +08:00
Count-Duckula-AU
4c7f328bd7 MiSTer.ini: Specify example video_mode lines (#701)
Allows the ini_settings.sh script to correctly edit the expected video_mode line (currently 94)
Currently the example mode listed on line 89 is edited, due to it beginning with the variable name, and an invalid video mode is set: video_mode=8+hsync,-vsync
This results in 720p output and a (helpful) 'INI Error' warning at boot
2022-10-12 22:58:45 +08:00
Sorgelig
3192baa0f3 Add video_off timeout in MiSTer.ini 2022-08-04 02:43:58 +08:00
Sorgelig
5de6c5e231 video: VRR support for core, some code formatting. 2022-06-29 08:44:30 +08:00
zakk4223
0a5488d48f video: send freesync/VRR enable frames if the display supports it
* 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>
2022-06-26 22:57:09 +08:00
Martin Donlon
db9b8676f9 video: Removed loop from vscale calculations, calculate max horizontal and (#636)
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
2022-06-08 16:40:06 +08:00
Martin Donlon
b8a4c3f5e9 Support for HDMI pixel repetition (#631)
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
2022-06-05 23:59:48 +08:00
Sorgelig
18785a56d8 video: revert vscale_mode=4 and add vscale_mode=6. 2022-05-23 03:18:49 +08:00
Sorgelig
68b63caa00 Update default ini for video resolution detection. 2022-05-23 00:47:02 +08:00
Martin Donlon
edcb3fcefc video: Vertical Scaling Changes (#608)
Integer Resolution Scaling
Generate a video mode whose vertical resolution is an integer multiple
of the cores vertical resolution. The video mode set via the
`video_mode` parameter is considered the maximum resolution. There are
two modes of operation: vscale_mode=4 - Both vertical and horizontal
resolution are modified. The horizontal resolution is scaled in
propotion to the vertical, so the aspect ratio is maintained. This will
be most suited to VGA CRTs that expect a specific aspect ratio signal.
vscale_mode=5 - Only the vertical resolution is modified. This will be
suitable for most modern LCD/OLED displays. The additional horizontal
resolution provides more space for wide aspect ratio cores.

Video Mode Calculation
CVT timing calculations are used to generate the modified video modes
for Interger Resolution Scaling, this mode generation is also exposed as
an additional way to specify video modes in the MiSTer.ini. Modes can be
specified with just the width, height and refresh rate:
`video_mode=1920,1200,60`. Whether to use the original CVT or the
reduced blanking CVT-RB timings can be specified with an optional flag,
e.g. `video_mode=1024,768,60,cvt`. Additionally the sync polarities can
also be expressed using flags now, e.g.
`video_mode=1280,110,40,220,720,5,5,20,74250,+hsync,-vsync`

Code Changes
More functionality was broken out of `video_mode_adjust`.
`video_mode_select` determines what the correct base video mode is based
on the timing and vsync_adjust configuration. The mode selected there is
then passed to `video_resolution_adjust` which modifies it based on the
integer resolution scaling selected. Other than that the functionality
of `video_mode_adjust` remains the same.

The `video_calculate_cvt` function was added to calculated video mode
timings.

`parse_custom_video_mode` was changed to support the additional flags.
It now uses `str_tokenize` to split up the input string so it is more
easy to manage the different variations of parameter counts allowed for
the modes.

`vmode_custom_param_t` was added to alias the items in the
vmode_custom_t instead of using raw array indexing everywhere.

`str_util.h/.cpp` added to provide some safer and easy to use string
functions. `strcpyz`, `strncpyz`, `sprintfz` all ensure that the
resulting string is null terminated and doesn't overrun memory.
2022-05-21 01:48:19 +08:00
Sorgelig
13ecfc748c video: make HDMI game mode optional. 2022-05-12 06:15:57 +08:00
Sorgelig
bd9a50a0e6 MiSTer.ini: add vga_sog, some correction. 2022-04-26 01:12:20 +08:00
Sorgelig
5a6ecd790b input: initial support for wheels. 2022-04-21 04:22:39 +08:00
Thomas Sowell
f5fd16c26e Override configuration based on video mode (#567)
* Override configuration based on video mode

Configuration options can now be overridden based on the core's video
mode.

The config parser now supports sections with names in the format
"video=WIDTHxHEIGHT[@VREFRESH]".  When a core changes video mode, MiSTer
reloads the config file and checks for a section matching the new mode.
If one is found, the options in the section override options in the
MiSTer/core sections.

MiSTer will look for a section matching the width, height, and vertical
refresh rate first.  If none is found, it will fall back to a section
matching the width and height but not specifying a refresh rate.  If
there is still no match, no overrides will be used.

Also, VREFRESH must match exactly the output from video_info or the
logs.  To match 720x400 31.48KHz 70.1Hz, the section title would need to
be [video=720x400@70.1].

* Move video section variables out of cfg_t
2022-03-17 14:46:57 +08:00
Thomas Sowell
badc9953e7 Support setting sync polarity (#553)
Include sync polarities in the UIO_SET_VIDEO command.  Polarities are
specified in the high bits of the hsync and vsync values.  0 is
negative, 1 is positive.

Horizontal and vertical polarities can optionally be included as two
numbers at the end of custom modes.  Again, 0 is negative, 1 is
positive.
2022-02-26 14:26:51 +08:00
Sorgelig
b41fa1b5cb Tweaks for waitmount option. 2022-02-17 03:16:26 +08:00
Sorgelig
f1b693c512 INI option to wait for specific mount before core start. 2022-02-17 02:40:59 +08:00
Sorgelig
b56604a201 Add new options into MiSTer.ini 2022-01-05 23:58:35 +08:00
Sorgelig
547f510355 If osd_timeout=0 then don't timeout. 2021-12-22 07:26:45 +08:00
Sorgelig
4cee9159d0 Support for loadable Shadow Masks. 2021-11-26 21:23:21 +08:00
sorgelig
53c0a93948 Add bt_reset_before_pair INI option. 2021-09-17 01:17:50 +08:00
sorgelig
f079816f69 Add bluetooth lib for dirrect access to some functions. 2021-08-17 05:25:39 +08:00
sorgelig
1f9a325602 ini: spinner_axis option. 2021-07-26 22:45:44 +08:00
sorgelig
8ca10b48a7 INI option log_file_entry. 2021-07-15 18:30:12 +08:00
sorgelig
860ff14d3f Add milti-instance no_merge_vidpid INI option. 2021-07-08 15:05:19 +08:00