From 179f466bcdc510d1c4ad64d760be53ee10c00cd2 Mon Sep 17 00:00:00 2001 From: Steve Robb Date: Mon, 2 Dec 2024 10:07:05 +0000 Subject: [PATCH 1/2] #include support for .ini files. --- MiSTer.ini | 370 +-------------------------------------------- MiSTerDefaults.ini | 366 ++++++++++++++++++++++++++++++++++++++++++++ cfg.cpp | 150 +++++++++++++----- 3 files changed, 485 insertions(+), 401 deletions(-) create mode 100644 MiSTerDefaults.ini diff --git a/MiSTer.ini b/MiSTer.ini index cbe33d05..46a349ed 100644 --- a/MiSTer.ini +++ b/MiSTer.ini @@ -1,366 +1,4 @@ -[MiSTer] -;debug=1 ; set to 1 to enable debugging messages. Default is 0(disabled). -key_menu_as_rgui=0 ; set to 1 to make the MENU key map to RGUI in Minimig (e.g. for Right Amiga) -forced_scandoubler=0 ; set to 1 to run scandoubler on VGA output always (depends on core). -;ypbpr=0 ; set to 1 for YPbPr on VGA output. (obsolete. see vga_mode) -vga_mode=rgb ; supported modes: rgb, ypbpr, svideo, cvbs. rgb is default. -ntsc_mode=0 ; Only for S-Video and CVBS vga_mode. 0 - normal NTSC, 1 - PAL-60, 2 - PAL-M. -composite_sync=0 ; set to 1 for composite sync on HSync signal of VGA output. -vga_scaler=0 ; set to 1 to connect VGA to scaler output. -hdmi_audio_96k=0 ; set to 1 for 96khz/16bit HDMI audio (48khz/16bit otherwise) -keyrah_mode=0x18d80002 ; VIDPID of keyrah for special code translation (0x23418037 for Arduino Micro) -vscale_mode=0 ; 0 - scale to fit the screen height. - ; 1 - use integer scale only. - ; 2 - use 0.5 steps of scale. - ; 3 - use 0.25 steps of scale. - ; 4 - integer resolution scaling, use core aspect ratio - ; 5 - integer resolution scaling, maintain display aspect ratio -vscale_border=0 ; set vertical border for TVs cutting the upper/bottom parts of screen (1-399) -;bootscreen=0 ; uncomment to disable boot screen of some cores like Minimig. -;mouse_throttle=10 ; 1-100 mouse speed divider. Useful for very sensitive mice -rbf_hide_datecode=0 ; 1 - hides datecodes from rbf file names. Press F2 for quick temporary toggle -menu_pal=0 ; 1 - PAL mode for menu core -hdmi_limited=0 ; 1 - use limited (16..235) color range over HDMI - ; 2 - use limited (16..255) color range over HDMI, for VGA converters. -direct_video=0 ; 1 - enable core video timing over HDMI, use only with VGA converters. -hdr=0 ; 1 - enable HDR using HLG (recommended for most users) - ; 2 - enable HDR using the DCI P3 color space (use color controls to tweak, suggestion: set saturation to 80). -fb_size=0 ; 0 - automatic, 1 - full size, 2 - 1/2 of resolution, 4 - 1/4 of resolution. -fb_terminal=1 ; 1 - enabled (default), 0 - disabled -osd_timeout=30 ; 5-3600 timeout (in seconds) for OSD to disappear in Menu core. 0 - never timeout. - ; Background picture will get darker after double timeout -video_off=0 ; output black frame in Menu core after timeout (is seconds). Valid only if osd_timout is non zero. -osd_rotate=0 ; Display OSD menu rotated, 0 - no rotation, 1 - rotate right (+90°), 2 - rotate left (-90°) -vga_sog=0 ; 1 - enable sync on green (needs analog I/O board v6.0 or newer). - - -; 1 - enables the recent file loaded/mounted. -; WARNING: This option will enable write to SD card on every load/mount which may wear the SD card after many writes to the same place -; There is also higher chance to corrupt the File System if MiSTer will be reset or powered off while writing. -recents=0 - -; lastcore - Autoboot the last loaded core (corename autosaved in CONFIG/lastcore.dat) first found on the SD/USB -; lastexactcore - Autoboot the last loaded exact core (corename_yyyymmdd.rbf autosaved in CONFIG/lastcore.dat) first found on the SD/USB -; corename - Autoboot first corename_*.rbf found on the SD/USB -; corename_yyyymmdd.rbf - Autoboot first corename_yyyymmdd.rbf found on the SD/USB -;bootcore=lastcore ; uncomment to autoboot a core, as the last loaded core. - -; 10-30 timeout before autoboot, comment for autoboot without timeout. -bootcore_timeout=10 - -; Option to load the custom font. Format is plain bitmap 8x8. -; Supported sizes of font: -; 768 bytes - chars 32-127 (only alpha + numeric) -; 1024 bytes - chars 0-127 -; 1136 bytes - chars 0-141 -; up to 2048 - only chars 0-141 will be used. -; if first 32 chars are empty (for sizes 1024 bytes and more) then they are skipped. -font=font/myfont.pf - -; USER button emulation using a keyboard. Usually it's the reset button. -; 0 - lctrl+lalt+ralt (lctrl+lgui+rgui on keyrah) -; 1 - lctrl+lgui+rgui -; 2 - lctrl+lalt+del -; 3 - same as 0 (lctrl+lalt+ralt on keyrah) -reset_combo=0 - -; !!!! -; Attention: if video_mode is not set in INI, then MiSTer will try to detect -; native mode of display and use it instead. -; Additionally, if dvi_mode is not set (only if video_mode is not set), -; then MiSTer will try to detect if display is DVI. -; !!!! - -; set to 1 for DVI mode. Audio won't be transmitted through HDMI in DVI mode. -;dvi_mode=0 - -; 0 - 1280x720@60 -; 1 - 1024x768@60 -; 2 - 720x480@60 -; 3 - 720x576@50 -; 4 - 1280x1024@60 -; 5 - 800x600@60 -; 6 - 640x480@60 -; 7 - 1280x720@50 -; 8 - 1920x1080@60 -; 9 - 1920x1080@50 -;10 - 1366x768@60 -;11 - 1024x600@60 -;12 - 1920x1440@60 -;13 - 2048x1536@60 -;14 - 2560x1440@60 -; -; custom mode: hact,hfp,hs,hbp,vact,vfp,vs,vbp,Fpix_in_KHz[,hsyncp,vsyncp] -; example: video_mode=1280,110,40,220,720,5,5,20,74250,+hsync,-vsync -; -; calculated mode: width,height,refresh[,flags] -; example: video_mode=1920,1200,60 -; flags - cvt=CVT timing, cvtrb=CVT-RB timing (default) -;video_mode=0 - -; set to 1-10 (seconds) to display video info on startup/change -video_info=0 - -; Set to 1 for automatic HDMI VSync rate adjust to match original VSync. -; Set to 2 for low latency mode (single buffer). -; This option makes video butter smooth like on original emulated system. -; Adjusting is done by changing pixel clock. Not every display supports variable pixel clock. -; For proper adjusting and to reduce possible out of range pixel clock, use 60Hz HDMI video -; modes as a base even for 50Hz systems. -vsync_adjust=0 - -; If your monitor doesn't support either very low (NTSC monitors may not support PAL) or -; very high (PAL monitors may not support NTSC) then you can set refresh_min and/or refresh_max -; parameters, so vsync_adjust won't be applied for refreshes outside specified. -; These parameters are valid only when vsync_adjust is non-zero. -refresh_min=0 -refresh_max=0 - -; These parameters have the same format as video_mode. -; You need to supply both PAL and NTSC modes if you want vsync_adjust to switch between -; predefined modes as a base. This will reduce the range of pixel clock. -;video_mode_ntsc=0 -;video_mode_pal=7 - -; Provided below are options for modulating color on the HDMI output. -; Brightness, contrast and saturation can be set to any value between 0 and 100. -; Hue can be set to 0 - 360, observing the HSL color model. -; Each component of video_gain_offset can be set to any value between -2 and 2. -; The order is "gain,offset" repeated three times to cover RGB. -; Example 1, Inverted colors: -; video_gain_offset= -1, 1, -1, 1, -1, 1 -; Example 2, Slightly desaturated, warm display: -; video_saturation= 80 -; video_gain_offset= 1.5, -0.1, 1.3, -0.15, 0.9, 0.05 -video_brightness=50 -video_contrast=50 -video_saturation=100 -video_hue=0 -video_gain_offset=1,0,1,0,1,0 - -; These controls have been provided so you can tweak the HDR metadata values regarding -; peak brightness and average brightness. The defaults are 1000/250 for peak and average -; respectively. -; Some displays will completely ignore the values in the HDR packet, some will make use of them. -; The recommendation is to set hdr_max_nits to your display's peak luminance, while -; setting hdr_avg_nits to at least hdr_max_nits/4. -; Please note that setting a peak brightness far above your display's capability may result -; in clipping in bright parts of the image. -hdr_max_nits=1000 -hdr_avg_nits=250 - -; 1-10 (seconds) to display controller's button map upon first time key press -; 0 - disable -controller_info=6 - -; JammaSD/J-PAC/I-PAC keys to joysticks translation -; You have to provide correct VID and PID of your input device -; Examples: Legacy J-PAC with Mini-USB or USB capable I-PAC with PS/2 connectors VID=0xD209/PID=0x0301 -; USB Capable J-PAC with only PS/2 connectors VID=0x04B4/PID=0x0101 -; JammaSD: VID=0x04D8/PID=0xF3AD -; jamma_vid/pid (i.e. JammaSD) would be mapped to Players 1 and 2 controllers. -; jamma2_vid/pid (i.e. J-PAC ) would be mapped to Players 3 and 4 controllers -; for a possible 4-player JAMMA-VERSUS scenario -; using two JAMMA USB controller interfaces. -jamma_vid=0x04D8 -jamma_pid=0xF3AD -jamma2_vid=0x1111 -jamma2_pid=0x2222 - -; Disable merging input devices. Use if only player 1 works. -; Leave no_merge_pid empty to apply this to all devices with the same VID. -;no_merge_vid=0x045E -;no_merge_pid=0x028E - -; Same as above but can add multiple devices (one entry per VIDPID). Format is VIDPID in hex number -;no_merge_vidpid=0x12345678 -;no_merge_vidpid=0x11112222 - -; Dead zone radius definitions. -; Joystick movements smaller than a defined radius will be neglected. -; This is good for worn or poorly made joysticks and converters. -; Devices that match the identifier part of the string will be affected. -; You can add multiple devices (one entry per identifier). -; The identifier part is case-insensitive, and the radius can be up to 64 units. -; Identifier and radius are separated by a whitespace (' ') and/or a comma (','). -; Accepted formats are: -; -; - VIDPID as an eight digit hex number ("0x" can be omitted), then the radius (not hex). -;deadzone=0x1E8F1603, 25 -; -; - vid:VID as a four digit hex, then the radius. -;deadzone=vid:0x1e8f, 25 -; -; - pid:PID as a four digit hex, then the radius. -;deadzone=PID:1603 25 -; -; - The following formats are explained a bit further down: -;deadzone=usb-1.2/, 10 -;deadzone=7c:10:c9:15:22:33/df:47:3a:12:44:55, 8 -;deadzone=1e8f_1603_55c4dd0c, 5 - -; Permanently assign specific controller to specific player. -; Normally you don't need to use this option, but if you use arcade cabinet with integrated controllers then -; you may want to use it for specific player regardless which controller is used first. -; To assign it, you need to provide unique part of this controller ID. -; In USB debug log you may see list of input devices right after core has been loaded. -; For example: -; -; opened 0( 0): /dev/input/event8 (1915:0040) 0 "7c:10:c9:15:22:33/df:47:3a:12:44:55" "Flydigi APEX2" -; ... -; opened 7( 7): /dev/input/event3 (1997:2535) 0 "usb-ffb40000.usb-1.6/input0" " mini keyboard" -; opened 9( 9): /dev/input/event0 (046d:4024) 0 "usb-ffb40000.usb-1.2/input2:1/4024-19-a2-39-0a" "Logitech K400" -; -; following part is unique identifier in system ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -; So you need to provide part of this string identifying exactly this device. Don't include inputX part as it may change after reboot. -; Wireless devices usually have format MAC/MAC, wired devices use usb-... format. -; UPDATE: you may define up to 8 devices to the same player. Use player_1_controller in several lines to assign multiple devices to player 1. -; -; Example of such unique part of strings: -; -;player_1_controller=usb-1.2/ ;include / at the end so it won't match with something like usb-1.2.3 -;player_2_controller=7c:10:c9:15:22:33/df:47:3a:12:44:55 -;player_3_controller=1915_0040_55c4dd0c ; VID_PID_HASH - VID, PID and unique HASH -;player_4_controller=1915_0040 ; VID_PID - warning, it will assign all input devices with these VID:PID to same player! - - -; Speeds in sniper/non-sniper modes of mouse emulation by joystick -; 0 - (default) - faster move in non-sniper mode, slower move in sniper mode. -; 1 - movement speeds are swapped. -sniper_mode=0 - -; Uncomment following option if you don't want to see a second line for long file names in listing. -;browse_expand=0 - -; 0 - disable MiSTer logo in Menu core -logo=1 - -; Custom shared folder for core supporting this feature (currently minimig and ao486 only) -; Can be relative to core's home dir or absolute path. -; Path must exist before core start to use it, or it will fail. -; Make sure USB device is mounted before use shared folder on USB! -shared_folder= - -; Custom aspect ratio -;custom_aspect_ratio_1=16:10 -;custom_aspect_ratio_2=1:1 - -; use specific (VID/PID) mouse X movement as a spinner and paddle. Use VID=0xFFFF/PID=0xFFFF to use all mice as spinners. -;spinner_vid=0x1BCF -;spinner_pid=0x0005 - -; spinner_throttle with base value 100 gives one spinner step per one tick. Higher value makes spinner slower. -; Lower than 100 makes spinner faster. Negative value gives opposite direction. -;spinner_throttle=-50 - -; 0 - X axis, 1 - Y axis, 2 - wheel. -;spinner_axis=1 - -; Default filters for video scaler. Paths must be relative to "Filters" folder without leading slash. -;vfilter_default=LCD Effects/LCD_Effect_07.txt -;vfilter_vertical_default= -;vfilter_scanlines_default= - -; Default filters for audio. Paths must be relative to "Filters_audio" folder without leading slash. -;afilter_default=LPF2000_3tap.txt - -; Defines internal joypad mapping from virtual SNES mapping in main to core mapping -; Set to 0 for name mapping (jn) (e.g. A button in SNES core = A button on controller regardless of position on pad) -; Set to 1 for positional mapping (jp) (e.g. A button in SNES core = East button on controller regardless of button name) -gamepad_defaults=0 - -; Write out file name under the cursor in browser for external integration -; External application or script may parse the info and do some additional actions and/or send info to 3rd party server. -; Warning: it may slowdown the system or add lag while browsing the files in OSD depending on external app/script. -log_file_entry=0 - -; Automatically disconnect (and shutdown) Bluetooth input device if not use specified amount of time. -; Some controllers have no automatic shutdown built in and will keep connection till battery dry out. -; 0 - don't disconnect automatically, otherwise it's amount of minutes. -bt_auto_disconnect=0 - -; Reset Bluetooth dongle before pair dialog. -; Some dongles may have problem to pair if not explicitly reset. -; Some dongles (mostly CSR) have problem to pair with BLE if not reset in advance. -; Consequence of reset: some input devices get shutdown after reset. -bt_reset_before_pair=0 - -;default Shadow Mask -;shmask_default=VGA.txt - -;default shadow mask mode: -; 0 - none, 1 - 1x, 2 - 2x, 3 - 1x Rotated, 4 - 2x Rotated -;shmask_mode_default=1 - -; Wait for specific mount before start the core. -; Attention: waiting is performing BEFORE core start, so no message will be displayed on screen! -; It's useful for debugging when core is loaded from USB blaster and games folder is on USB or Network drive. -; This option cannot be used when defmra in CONFSTR is used (i.e. if arcade rbf is loaded directly not through MRA). -; This option is ignored for Menu core. -;waitmount=/media/usb0 - -; Overrides for video mode -; When the core's video mode matches the parameters in the section header, any options in the section override options from MiSTer and core sections. -; Refresh rate in header is optional and, if present, must match exactly the output from video_info or the logs. For example, if it says "60.0Hz", the header needs to be "@60.0" to match. -; When the core changes video mode, MiSTer will first look for a matching WIDTHxHEIGHT@VREFRESH section. -; If no match is found, it will fall back to a matching WIDTHxHEIGHT section with no refresh rate. -; If there is still no match, MiSTer/core options will be used without overrides. -; [video=640x400] -; ... -; [video=640x400@70.1] -; ... - -; Wheel centering force 0-100. Default is 50. -;wheel_force=50 - -; Wheel steering angle range. Supported ranges depends on specific wheel model -; If not set then default (depending on driver) range is used -;wheel_range=200 - -; Enable game mode on HDMI output. It may give you better optimization on some displays, but also -; can give worse result on others. Default is 0 (non-game). -;hdmi_game_mode=1 - -; Variable Refresh Rate control -; 0 - Do not enable VRR (send no VRR control frames) -; 1 - Auto Detect VRR from display EDID. -; 2 - Force Enable Freesync -; 3 - Force Enable Vesa HDMI Forum VRR -vrr_mode=0 -; Minimum framerate in VRR mode. -vrr_min_framerate=0 -; Maximum framerate in VRR mode (currently only used in Freesync mode). -vrr_max_framerate=0 -; VESA VRR base framerate. Normally set to the current video mode's output framerate -vrr_vesa_framerate=0 - -; disable autofire if for some reason it's not required and accidentally triggered -disable_autofire=0 - -; Specify a default video processing preset that will be applied to cores. -; Path is relative to the presets/ directory and can optionally include the .ini extension -;preset_default=General Hardware/Console - 3rdGen - -; Enable per controller and per USB port mapping, both gamepads and keyboards -; Even same model of controller connected to different USB ports will have different button sets, -; thus make sure to define buttons for all controllers if you set this option to 1. -; Option also accepts VIDPID value to define per-port mapping only for specific VID:PID device. -; It's useful for DIY controllers using off-the-shelf boards like arduino. -; You may use several controller_unique_mapping instances to assign several VID:PID. -;controller_unique_mapping=0x23418037 ; example for Arduino Micro -controller_unique_mapping=0 - - -; Protect access to the OSD when a core is running -; When attempting to access the OSD players will be prompted for an unlock code. -; U = Up, D = Down, L = Left, R = Right, A = Select, B = Back -; Setting osd_lock to DUUUD would require entering the sequence Down, Up, Up, Up, Down -;osd_lock=DUUUD - -; If osd_lock is enabled, allow the OSD to be opened without entering the unlock -; code if less than osd_lock_time seconds have passed since the OSD was closed. -; set to 0 for manual lock from OSD -osd_lock_time=5 - -; use custom main for specific core. This option should be used only inside specific core. -;main=some_binary_file +; This file should contain user overrides for the settings in MiSTerDefaults.ini. + +#include "MiSTerDefaults.ini" + diff --git a/MiSTerDefaults.ini b/MiSTerDefaults.ini new file mode 100644 index 00000000..5651f2f1 --- /dev/null +++ b/MiSTerDefaults.ini @@ -0,0 +1,366 @@ +[MiSTer] +;debug=1 ; set to 1 to enable debugging messages. Default is 0(disabled). +key_menu_as_rgui=0 ; set to 1 to make the MENU key map to RGUI in Minimig (e.g. for Right Amiga) +forced_scandoubler=0 ; set to 1 to run scandoubler on VGA output always (depends on core). +;ypbpr=0 ; set to 1 for YPbPr on VGA output. (obsolete. see vga_mode) +vga_mode=rgb ; supported modes: rgb, ypbpr, svideo, cvbs. rgb is default. +ntsc_mode=0 ; Only for S-Video and CVBS vga_mode. 0 - normal NTSC, 1 - PAL-60, 2 - PAL-M. +composite_sync=0 ; set to 1 for composite sync on HSync signal of VGA output. +vga_scaler=0 ; set to 1 to connect VGA to scaler output. +hdmi_audio_96k=0 ; set to 1 for 96khz/16bit HDMI audio (48khz/16bit otherwise) +keyrah_mode=0x18d80002 ; VIDPID of keyrah for special code translation (0x23418037 for Arduino Micro) +vscale_mode=0 ; 0 - scale to fit the screen height. + ; 1 - use integer scale only. + ; 2 - use 0.5 steps of scale. + ; 3 - use 0.25 steps of scale. + ; 4 - integer resolution scaling, use core aspect ratio + ; 5 - integer resolution scaling, maintain display aspect ratio +vscale_border=0 ; set vertical border for TVs cutting the upper/bottom parts of screen (1-399) +;bootscreen=0 ; uncomment to disable boot screen of some cores like Minimig. +;mouse_throttle=10 ; 1-100 mouse speed divider. Useful for very sensitive mice +rbf_hide_datecode=0 ; 1 - hides datecodes from rbf file names. Press F2 for quick temporary toggle +menu_pal=0 ; 1 - PAL mode for menu core +hdmi_limited=0 ; 1 - use limited (16..235) color range over HDMI + ; 2 - use limited (16..255) color range over HDMI, for VGA converters. +direct_video=0 ; 1 - enable core video timing over HDMI, use only with VGA converters. +hdr=0 ; 1 - enable HDR using HLG (recommended for most users) + ; 2 - enable HDR using the DCI P3 color space (use color controls to tweak, suggestion: set saturation to 80). +fb_size=0 ; 0 - automatic, 1 - full size, 2 - 1/2 of resolution, 4 - 1/4 of resolution. +fb_terminal=1 ; 1 - enabled (default), 0 - disabled +osd_timeout=30 ; 5-3600 timeout (in seconds) for OSD to disappear in Menu core. 0 - never timeout. + ; Background picture will get darker after double timeout +video_off=0 ; output black frame in Menu core after timeout (is seconds). Valid only if osd_timout is non zero. +osd_rotate=0 ; Display OSD menu rotated, 0 - no rotation, 1 - rotate right (+90°), 2 - rotate left (-90°) +vga_sog=0 ; 1 - enable sync on green (needs analog I/O board v6.0 or newer). + + +; 1 - enables the recent file loaded/mounted. +; WARNING: This option will enable write to SD card on every load/mount which may wear the SD card after many writes to the same place +; There is also higher chance to corrupt the File System if MiSTer will be reset or powered off while writing. +recents=0 + +; lastcore - Autoboot the last loaded core (corename autosaved in CONFIG/lastcore.dat) first found on the SD/USB +; lastexactcore - Autoboot the last loaded exact core (corename_yyyymmdd.rbf autosaved in CONFIG/lastcore.dat) first found on the SD/USB +; corename - Autoboot first corename_*.rbf found on the SD/USB +; corename_yyyymmdd.rbf - Autoboot first corename_yyyymmdd.rbf found on the SD/USB +;bootcore=lastcore ; uncomment to autoboot a core, as the last loaded core. + +; 10-30 timeout before autoboot, comment for autoboot without timeout. +bootcore_timeout=10 + +; Option to load the custom font. Format is plain bitmap 8x8. +; Supported sizes of font: +; 768 bytes - chars 32-127 (only alpha + numeric) +; 1024 bytes - chars 0-127 +; 1136 bytes - chars 0-141 +; up to 2048 - only chars 0-141 will be used. +; if first 32 chars are empty (for sizes 1024 bytes and more) then they are skipped. +font=font/myfont.pf + +; USER button emulation using a keyboard. Usually it's the reset button. +; 0 - lctrl+lalt+ralt (lctrl+lgui+rgui on keyrah) +; 1 - lctrl+lgui+rgui +; 2 - lctrl+lalt+del +; 3 - same as 0 (lctrl+lalt+ralt on keyrah) +reset_combo=0 + +; !!!! +; Attention: if video_mode is not set in INI, then MiSTer will try to detect +; native mode of display and use it instead. +; Additionally, if dvi_mode is not set (only if video_mode is not set), +; then MiSTer will try to detect if display is DVI. +; !!!! + +; set to 1 for DVI mode. Audio won't be transmitted through HDMI in DVI mode. +;dvi_mode=0 + +; 0 - 1280x720@60 +; 1 - 1024x768@60 +; 2 - 720x480@60 +; 3 - 720x576@50 +; 4 - 1280x1024@60 +; 5 - 800x600@60 +; 6 - 640x480@60 +; 7 - 1280x720@50 +; 8 - 1920x1080@60 +; 9 - 1920x1080@50 +;10 - 1366x768@60 +;11 - 1024x600@60 +;12 - 1920x1440@60 +;13 - 2048x1536@60 +;14 - 2560x1440@60 +; +; custom mode: hact,hfp,hs,hbp,vact,vfp,vs,vbp,Fpix_in_KHz[,hsyncp,vsyncp] +; example: video_mode=1280,110,40,220,720,5,5,20,74250,+hsync,-vsync +; +; calculated mode: width,height,refresh[,flags] +; example: video_mode=1920,1200,60 +; flags - cvt=CVT timing, cvtrb=CVT-RB timing (default) +;video_mode=0 + +; set to 1-10 (seconds) to display video info on startup/change +video_info=0 + +; Set to 1 for automatic HDMI VSync rate adjust to match original VSync. +; Set to 2 for low latency mode (single buffer). +; This option makes video butter smooth like on original emulated system. +; Adjusting is done by changing pixel clock. Not every display supports variable pixel clock. +; For proper adjusting and to reduce possible out of range pixel clock, use 60Hz HDMI video +; modes as a base even for 50Hz systems. +vsync_adjust=0 + +; If your monitor doesn't support either very low (NTSC monitors may not support PAL) or +; very high (PAL monitors may not support NTSC) then you can set refresh_min and/or refresh_max +; parameters, so vsync_adjust won't be applied for refreshes outside specified. +; These parameters are valid only when vsync_adjust is non-zero. +refresh_min=0 +refresh_max=0 + +; These parameters have the same format as video_mode. +; You need to supply both PAL and NTSC modes if you want vsync_adjust to switch between +; predefined modes as a base. This will reduce the range of pixel clock. +;video_mode_ntsc=0 +;video_mode_pal=7 + +; Provided below are options for modulating color on the HDMI output. +; Brightness, contrast and saturation can be set to any value between 0 and 100. +; Hue can be set to 0 - 360, observing the HSL color model. +; Each component of video_gain_offset can be set to any value between -2 and 2. +; The order is "gain,offset" repeated three times to cover RGB. +; Example 1, Inverted colors: +; video_gain_offset= -1, 1, -1, 1, -1, 1 +; Example 2, Slightly desaturated, warm display: +; video_saturation= 80 +; video_gain_offset= 1.5, -0.1, 1.3, -0.15, 0.9, 0.05 +video_brightness=50 +video_contrast=50 +video_saturation=100 +video_hue=0 +video_gain_offset=1,0,1,0,1,0 + +; These controls have been provided so you can tweak the HDR metadata values regarding +; peak brightness and average brightness. The defaults are 1000/250 for peak and average +; respectively. +; Some displays will completely ignore the values in the HDR packet, some will make use of them. +; The recommendation is to set hdr_max_nits to your display's peak luminance, while +; setting hdr_avg_nits to at least hdr_max_nits/4. +; Please note that setting a peak brightness far above your display's capability may result +; in clipping in bright parts of the image. +hdr_max_nits=1000 +hdr_avg_nits=250 + +; 1-10 (seconds) to display controller's button map upon first time key press +; 0 - disable +controller_info=6 + +; JammaSD/J-PAC/I-PAC keys to joysticks translation +; You have to provide correct VID and PID of your input device +; Examples: Legacy J-PAC with Mini-USB or USB capable I-PAC with PS/2 connectors VID=0xD209/PID=0x0301 +; USB Capable J-PAC with only PS/2 connectors VID=0x04B4/PID=0x0101 +; JammaSD: VID=0x04D8/PID=0xF3AD +; jamma_vid/pid (i.e. JammaSD) would be mapped to Players 1 and 2 controllers. +; jamma2_vid/pid (i.e. J-PAC ) would be mapped to Players 3 and 4 controllers +; for a possible 4-player JAMMA-VERSUS scenario +; using two JAMMA USB controller interfaces. +jamma_vid=0x04D8 +jamma_pid=0xF3AD +jamma2_vid=0x1111 +jamma2_pid=0x2222 + +; Disable merging input devices. Use if only player 1 works. +; Leave no_merge_pid empty to apply this to all devices with the same VID. +;no_merge_vid=0x045E +;no_merge_pid=0x028E + +; Same as above but can add multiple devices (one entry per VIDPID). Format is VIDPID in hex number +;no_merge_vidpid=0x12345678 +;no_merge_vidpid=0x11112222 + +; Dead zone radius definitions. +; Joystick movements smaller than a defined radius will be neglected. +; This is good for worn or poorly made joysticks and converters. +; Devices that match the identifier part of the string will be affected. +; You can add multiple devices (one entry per identifier). +; The identifier part is case-insensitive, and the radius can be up to 64 units. +; Identifier and radius are separated by a whitespace (' ') and/or a comma (','). +; Accepted formats are: +; +; - VIDPID as an eight digit hex number ("0x" can be omitted), then the radius (not hex). +;deadzone=0x1E8F1603, 25 +; +; - vid:VID as a four digit hex, then the radius. +;deadzone=vid:0x1e8f, 25 +; +; - pid:PID as a four digit hex, then the radius. +;deadzone=PID:1603 25 +; +; - The following formats are explained a bit further down: +;deadzone=usb-1.2/, 10 +;deadzone=7c:10:c9:15:22:33/df:47:3a:12:44:55, 8 +;deadzone=1e8f_1603_55c4dd0c, 5 + +; Permanently assign specific controller to specific player. +; Normally you don't need to use this option, but if you use arcade cabinet with integrated controllers then +; you may want to use it for specific player regardless which controller is used first. +; To assign it, you need to provide unique part of this controller ID. +; In USB debug log you may see list of input devices right after core has been loaded. +; For example: +; +; opened 0( 0): /dev/input/event8 (1915:0040) 0 "7c:10:c9:15:22:33/df:47:3a:12:44:55" "Flydigi APEX2" +; ... +; opened 7( 7): /dev/input/event3 (1997:2535) 0 "usb-ffb40000.usb-1.6/input0" " mini keyboard" +; opened 9( 9): /dev/input/event0 (046d:4024) 0 "usb-ffb40000.usb-1.2/input2:1/4024-19-a2-39-0a" "Logitech K400" +; +; following part is unique identifier in system ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +; So you need to provide part of this string identifying exactly this device. Don't include inputX part as it may change after reboot. +; Wireless devices usually have format MAC/MAC, wired devices use usb-... format. +; UPDATE: you may define up to 8 devices to the same player. Use player_1_controller in several lines to assign multiple devices to player 1. +; +; Example of such unique part of strings: +; +;player_1_controller=usb-1.2/ ;include / at the end so it won't match with something like usb-1.2.3 +;player_2_controller=7c:10:c9:15:22:33/df:47:3a:12:44:55 +;player_3_controller=1915_0040_55c4dd0c ; VID_PID_HASH - VID, PID and unique HASH +;player_4_controller=1915_0040 ; VID_PID - warning, it will assign all input devices with these VID:PID to same player! + + +; Speeds in sniper/non-sniper modes of mouse emulation by joystick +; 0 - (default) - faster move in non-sniper mode, slower move in sniper mode. +; 1 - movement speeds are swapped. +sniper_mode=0 + +; Uncomment following option if you don't want to see a second line for long file names in listing. +;browse_expand=0 + +; 0 - disable MiSTer logo in Menu core +logo=1 + +; Custom shared folder for core supporting this feature (currently minimig and ao486 only) +; Can be relative to core's home dir or absolute path. +; Path must exist before core start to use it, or it will fail. +; Make sure USB device is mounted before use shared folder on USB! +shared_folder= + +; Custom aspect ratio +;custom_aspect_ratio_1=16:10 +;custom_aspect_ratio_2=1:1 + +; use specific (VID/PID) mouse X movement as a spinner and paddle. Use VID=0xFFFF/PID=0xFFFF to use all mice as spinners. +;spinner_vid=0x1BCF +;spinner_pid=0x0005 + +; spinner_throttle with base value 100 gives one spinner step per one tick. Higher value makes spinner slower. +; Lower than 100 makes spinner faster. Negative value gives opposite direction. +;spinner_throttle=-50 + +; 0 - X axis, 1 - Y axis, 2 - wheel. +;spinner_axis=1 + +; Default filters for video scaler. Paths must be relative to "Filters" folder without leading slash. +;vfilter_default=LCD Effects/LCD_Effect_07.txt +;vfilter_vertical_default= +;vfilter_scanlines_default= + +; Default filters for audio. Paths must be relative to "Filters_audio" folder without leading slash. +;afilter_default=LPF2000_3tap.txt + +; Defines internal joypad mapping from virtual SNES mapping in main to core mapping +; Set to 0 for name mapping (jn) (e.g. A button in SNES core = A button on controller regardless of position on pad) +; Set to 1 for positional mapping (jp) (e.g. A button in SNES core = East button on controller regardless of button name) +gamepad_defaults=0 + +; Write out file name under the cursor in browser for external integration +; External application or script may parse the info and do some additional actions and/or send info to 3rd party server. +; Warning: it may slowdown the system or add lag while browsing the files in OSD depending on external app/script. +log_file_entry=0 + +; Automatically disconnect (and shutdown) Bluetooth input device if not use specified amount of time. +; Some controllers have no automatic shutdown built in and will keep connection till battery dry out. +; 0 - don't disconnect automatically, otherwise it's amount of minutes. +bt_auto_disconnect=0 + +; Reset Bluetooth dongle before pair dialog. +; Some dongles may have problem to pair if not explicitly reset. +; Some dongles (mostly CSR) have problem to pair with BLE if not reset in advance. +; Consequence of reset: some input devices get shutdown after reset. +bt_reset_before_pair=0 + +;default Shadow Mask +;shmask_default=VGA.txt + +;default shadow mask mode: +; 0 - none, 1 - 1x, 2 - 2x, 3 - 1x Rotated, 4 - 2x Rotated +;shmask_mode_default=1 + +; Wait for specific mount before start the core. +; Attention: waiting is performing BEFORE core start, so no message will be displayed on screen! +; It's useful for debugging when core is loaded from USB blaster and games folder is on USB or Network drive. +; This option cannot be used when defmra in CONFSTR is used (i.e. if arcade rbf is loaded directly not through MRA). +; This option is ignored for Menu core. +;waitmount=/media/usb0 + +; Overrides for video mode +; When the core's video mode matches the parameters in the section header, any options in the section override options from MiSTer and core sections. +; Refresh rate in header is optional and, if present, must match exactly the output from video_info or the logs. For example, if it says "60.0Hz", the header needs to be "@60.0" to match. +; When the core changes video mode, MiSTer will first look for a matching WIDTHxHEIGHT@VREFRESH section. +; If no match is found, it will fall back to a matching WIDTHxHEIGHT section with no refresh rate. +; If there is still no match, MiSTer/core options will be used without overrides. +; [video=640x400] +; ... +; [video=640x400@70.1] +; ... + +; Wheel centering force 0-100. Default is 50. +;wheel_force=50 + +; Wheel steering angle range. Supported ranges depends on specific wheel model +; If not set then default (depending on driver) range is used +;wheel_range=200 + +; Enable game mode on HDMI output. It may give you better optimization on some displays, but also +; can give worse result on others. Default is 0 (non-game). +;hdmi_game_mode=1 + +; Variable Refresh Rate control +; 0 - Do not enable VRR (send no VRR control frames) +; 1 - Auto Detect VRR from display EDID. +; 2 - Force Enable Freesync +; 3 - Force Enable Vesa HDMI Forum VRR +vrr_mode=0 +; Minimum framerate in VRR mode. +vrr_min_framerate=0 +; Maximum framerate in VRR mode (currently only used in Freesync mode). +vrr_max_framerate=0 +; VESA VRR base framerate. Normally set to the current video mode's output framerate +vrr_vesa_framerate=0 + +; disable autofire if for some reason it's not required and accidentally triggered +disable_autofire=0 + +; Specify a default video processing preset that will be applied to cores. +; Path is relative to the presets/ directory and can optionally include the .ini extension +;preset_default=General Hardware/Console - 3rdGen + +; Enable per controller and per USB port mapping, both gamepads and keyboards +; Even same model of controller connected to different USB ports will have different button sets, +; thus make sure to define buttons for all controllers if you set this option to 1. +; Option also accepts VIDPID value to define per-port mapping only for specific VID:PID device. +; It's useful for DIY controllers using off-the-shelf boards like arduino. +; You may use several controller_unique_mapping instances to assign several VID:PID. +;controller_unique_mapping=0x23418037 ; example for Arduino Micro +controller_unique_mapping=0 + + +; Protect access to the OSD when a core is running +; When attempting to access the OSD players will be prompted for an unlock code. +; U = Up, D = Down, L = Left, R = Right, A = Select, B = Back +; Setting osd_lock to DUUUD would require entering the sequence Down, Up, Up, Up, Down +;osd_lock=DUUUD + +; If osd_lock is enabled, allow the OSD to be opened without entering the unlock +; code if less than osd_lock_time seconds have passed since the OSD was closed. +; set to 0 for manual lock from OSD +osd_lock_time=5 + +; use custom main for specific core. This option should be used only inside specific core. +;main=some_binary_file diff --git a/cfg.cpp b/cfg.cpp index ab68ccd6..fb1aff3e 100644 --- a/cfg.cpp +++ b/cfg.cpp @@ -8,6 +8,9 @@ #include #include #include +#include +#include +#include #include "cfg.h" #include "debug.h" #include "file_io.h" @@ -140,6 +143,7 @@ static const int nvars = (int)(sizeof(ini_vars) / sizeof(ini_var_t)); #define INI_SECTION_START '[' #define INI_SECTION_END ']' #define INCL_SECTION '+' +#define DIRECTIVE_START '#' #define CHAR_IS_NUM(c) (((c) >= '0') && ((c) <= '9')) #define CHAR_IS_ALPHA_LOWER(c) (((c) >= 'a') && ((c) <= 'z')) @@ -149,7 +153,7 @@ static const int nvars = (int)(sizeof(ini_vars) / sizeof(ini_var_t)); ((c) == '-') || ((c) == '+') || ((c) == '/') || ((c) == '=') || \ ((c) == '#') || ((c) == '$') || ((c) == '@') || ((c) == '_') || \ ((c) == ',') || ((c) == '.') || ((c) == '!') || ((c) == '*') || \ - ((c) == ':') || ((c) == '~')) + ((c) == ':') || ((c) == '~') || ((c) == '\"')) #define CHAR_IS_VALID(c) (CHAR_IS_ALPHANUM(c) || CHAR_IS_SPECIAL(c)) #define CHAR_IS_SPACE(c) (((c) == ' ') || ((c) == '\t')) @@ -255,6 +259,43 @@ static int ini_get_section(char* buf, const char *vmode) return 0; } +static bool ini_get_include(char* buf, std::string& out) +{ + if (strncmp(buf, "#include", 8)) + { + return false; + } + + buf += 8; + while (CHAR_IS_SPACE(*buf)) + { + ++buf; + } + + if (*buf != '\"') + { + return false; + } + + ++buf; + char* start = buf; + while (true) + { + if (!*buf) + { + return false; + } + + if (*buf == '\"') + { + out.assign(start, buf); + return true; + } + + ++buf; + } +} + static void ini_parse_numeric(const ini_var_t *var, const char *text, void *out) { uint32_t u32 = 0; @@ -429,11 +470,15 @@ static void ini_parse_var(char* buf) } } +struct filename_line_pair +{ + std::string filename; + int start_line = 0; +}; + static void ini_parse(int alt, const char *vmode) { static char line[INI_LINE_SIZE]; - int section = 0; - int eof; if (!orig_stdout) orig_stdout = stdout; if (!dev_null) @@ -449,51 +494,86 @@ static void ini_parse(int alt, const char *vmode) ini_parser_debugf("Start INI parser for core \"%s\"(%s), video mode \"%s\".", user_io_get_core_name(0), user_io_get_core_name(1), vmode); - memset(line, 0, sizeof(line)); - memset(&ini_file, 0, sizeof(ini_file)); - const char *name = cfg_get_name(alt); - if (!FileOpen(&ini_file, name)) return; + std::vector ini_stack; + ini_stack.push_back({ name, 0 }); - ini_parser_debugf("Opened file %s with size %llu bytes.", name, ini_file.size); + while (!ini_stack.empty()) + { + filename_line_pair& pair = ini_stack.back(); - ini_pt = 0; + memset(&ini_file, 0, sizeof(ini_file)); + ini_pt = 0; - // parse ini - while (1) - { - // get line - eof = ini_getline(line); - ini_parser_debugf("line(%d): \"%s\".", section, line); + if (!FileOpen(&ini_file, pair.filename.c_str())) + { + ini_stack.pop_back(); + continue; + } - if (line[0] == INI_SECTION_START) + ini_parser_debugf("Opened file %s with size %llu bytes.", name, ini_file.size); + + for (int i = pair.start_line; i; --i) { - // if first char in line is INI_SECTION_START, get section - section = ini_get_section(line, vmode); - if (section) - { - memset(var_array_append, 0, sizeof(var_array_append)); - } + ini_getline(line); } - else if (line[0] == INCL_SECTION && !section) + + int section = 0; + + // parse ini + while (1) { - section = ini_get_section(line, vmode); - if (section) + // get line + int eof = ini_getline(line); + ++pair.start_line; + ini_parser_debugf("line(%d): \"%s\".", section, line); + + if (line[0] == INI_SECTION_START) { - memset(var_array_append, 0, sizeof(var_array_append)); + // if first char in line is INI_SECTION_START, get section + section = ini_get_section(line, vmode); + if (section) + { + memset(var_array_append, 0, sizeof(var_array_append)); + } + } + else if (line[0] == INCL_SECTION && !section) + { + section = ini_get_section(line, vmode); + if (section) + { + memset(var_array_append, 0, sizeof(var_array_append)); + } + } + else if (line[0] == DIRECTIVE_START && !section) + { + std::string filename; + if (ini_get_include(line, filename)) + { + // Ignore circular includes + if (std::find_if(ini_stack.begin(), ini_stack.end(), [&](const filename_line_pair& pair){ return pair.filename == filename; }) == ini_stack.end()) + { + ini_stack.push_back({ std::move(filename), 0 }); + break; + } + } + } + else if(section) + { + // otherwise this is a variable, get it + ini_parse_var(line); + } + + // if end of file, stop + if (eof) + { + ini_stack.pop_back(); + break; } - } - else if(section) - { - // otherwise this is a variable, get it - ini_parse_var(line); } - // if end of file, stop - if (eof) break; + FileClose(&ini_file); } - - FileClose(&ini_file); } static constexpr int CFG_ERRORS_MAX = 4; From 6951fa18e53f78767f7a50c45e6258ec89874aeb Mon Sep 17 00:00:00 2001 From: Steve Robb Date: Mon, 2 Dec 2024 18:07:20 +0000 Subject: [PATCH 2/2] Reverted changes to .ini files. --- MiSTer.ini | 370 ++++++++++++++++++++++++++++++++++++++++++++- MiSTerDefaults.ini | 366 -------------------------------------------- 2 files changed, 366 insertions(+), 370 deletions(-) delete mode 100644 MiSTerDefaults.ini diff --git a/MiSTer.ini b/MiSTer.ini index 46a349ed..cbe33d05 100644 --- a/MiSTer.ini +++ b/MiSTer.ini @@ -1,4 +1,366 @@ -; This file should contain user overrides for the settings in MiSTerDefaults.ini. - -#include "MiSTerDefaults.ini" - +[MiSTer] +;debug=1 ; set to 1 to enable debugging messages. Default is 0(disabled). +key_menu_as_rgui=0 ; set to 1 to make the MENU key map to RGUI in Minimig (e.g. for Right Amiga) +forced_scandoubler=0 ; set to 1 to run scandoubler on VGA output always (depends on core). +;ypbpr=0 ; set to 1 for YPbPr on VGA output. (obsolete. see vga_mode) +vga_mode=rgb ; supported modes: rgb, ypbpr, svideo, cvbs. rgb is default. +ntsc_mode=0 ; Only for S-Video and CVBS vga_mode. 0 - normal NTSC, 1 - PAL-60, 2 - PAL-M. +composite_sync=0 ; set to 1 for composite sync on HSync signal of VGA output. +vga_scaler=0 ; set to 1 to connect VGA to scaler output. +hdmi_audio_96k=0 ; set to 1 for 96khz/16bit HDMI audio (48khz/16bit otherwise) +keyrah_mode=0x18d80002 ; VIDPID of keyrah for special code translation (0x23418037 for Arduino Micro) +vscale_mode=0 ; 0 - scale to fit the screen height. + ; 1 - use integer scale only. + ; 2 - use 0.5 steps of scale. + ; 3 - use 0.25 steps of scale. + ; 4 - integer resolution scaling, use core aspect ratio + ; 5 - integer resolution scaling, maintain display aspect ratio +vscale_border=0 ; set vertical border for TVs cutting the upper/bottom parts of screen (1-399) +;bootscreen=0 ; uncomment to disable boot screen of some cores like Minimig. +;mouse_throttle=10 ; 1-100 mouse speed divider. Useful for very sensitive mice +rbf_hide_datecode=0 ; 1 - hides datecodes from rbf file names. Press F2 for quick temporary toggle +menu_pal=0 ; 1 - PAL mode for menu core +hdmi_limited=0 ; 1 - use limited (16..235) color range over HDMI + ; 2 - use limited (16..255) color range over HDMI, for VGA converters. +direct_video=0 ; 1 - enable core video timing over HDMI, use only with VGA converters. +hdr=0 ; 1 - enable HDR using HLG (recommended for most users) + ; 2 - enable HDR using the DCI P3 color space (use color controls to tweak, suggestion: set saturation to 80). +fb_size=0 ; 0 - automatic, 1 - full size, 2 - 1/2 of resolution, 4 - 1/4 of resolution. +fb_terminal=1 ; 1 - enabled (default), 0 - disabled +osd_timeout=30 ; 5-3600 timeout (in seconds) for OSD to disappear in Menu core. 0 - never timeout. + ; Background picture will get darker after double timeout +video_off=0 ; output black frame in Menu core after timeout (is seconds). Valid only if osd_timout is non zero. +osd_rotate=0 ; Display OSD menu rotated, 0 - no rotation, 1 - rotate right (+90°), 2 - rotate left (-90°) +vga_sog=0 ; 1 - enable sync on green (needs analog I/O board v6.0 or newer). + + +; 1 - enables the recent file loaded/mounted. +; WARNING: This option will enable write to SD card on every load/mount which may wear the SD card after many writes to the same place +; There is also higher chance to corrupt the File System if MiSTer will be reset or powered off while writing. +recents=0 + +; lastcore - Autoboot the last loaded core (corename autosaved in CONFIG/lastcore.dat) first found on the SD/USB +; lastexactcore - Autoboot the last loaded exact core (corename_yyyymmdd.rbf autosaved in CONFIG/lastcore.dat) first found on the SD/USB +; corename - Autoboot first corename_*.rbf found on the SD/USB +; corename_yyyymmdd.rbf - Autoboot first corename_yyyymmdd.rbf found on the SD/USB +;bootcore=lastcore ; uncomment to autoboot a core, as the last loaded core. + +; 10-30 timeout before autoboot, comment for autoboot without timeout. +bootcore_timeout=10 + +; Option to load the custom font. Format is plain bitmap 8x8. +; Supported sizes of font: +; 768 bytes - chars 32-127 (only alpha + numeric) +; 1024 bytes - chars 0-127 +; 1136 bytes - chars 0-141 +; up to 2048 - only chars 0-141 will be used. +; if first 32 chars are empty (for sizes 1024 bytes and more) then they are skipped. +font=font/myfont.pf + +; USER button emulation using a keyboard. Usually it's the reset button. +; 0 - lctrl+lalt+ralt (lctrl+lgui+rgui on keyrah) +; 1 - lctrl+lgui+rgui +; 2 - lctrl+lalt+del +; 3 - same as 0 (lctrl+lalt+ralt on keyrah) +reset_combo=0 + +; !!!! +; Attention: if video_mode is not set in INI, then MiSTer will try to detect +; native mode of display and use it instead. +; Additionally, if dvi_mode is not set (only if video_mode is not set), +; then MiSTer will try to detect if display is DVI. +; !!!! + +; set to 1 for DVI mode. Audio won't be transmitted through HDMI in DVI mode. +;dvi_mode=0 + +; 0 - 1280x720@60 +; 1 - 1024x768@60 +; 2 - 720x480@60 +; 3 - 720x576@50 +; 4 - 1280x1024@60 +; 5 - 800x600@60 +; 6 - 640x480@60 +; 7 - 1280x720@50 +; 8 - 1920x1080@60 +; 9 - 1920x1080@50 +;10 - 1366x768@60 +;11 - 1024x600@60 +;12 - 1920x1440@60 +;13 - 2048x1536@60 +;14 - 2560x1440@60 +; +; custom mode: hact,hfp,hs,hbp,vact,vfp,vs,vbp,Fpix_in_KHz[,hsyncp,vsyncp] +; example: video_mode=1280,110,40,220,720,5,5,20,74250,+hsync,-vsync +; +; calculated mode: width,height,refresh[,flags] +; example: video_mode=1920,1200,60 +; flags - cvt=CVT timing, cvtrb=CVT-RB timing (default) +;video_mode=0 + +; set to 1-10 (seconds) to display video info on startup/change +video_info=0 + +; Set to 1 for automatic HDMI VSync rate adjust to match original VSync. +; Set to 2 for low latency mode (single buffer). +; This option makes video butter smooth like on original emulated system. +; Adjusting is done by changing pixel clock. Not every display supports variable pixel clock. +; For proper adjusting and to reduce possible out of range pixel clock, use 60Hz HDMI video +; modes as a base even for 50Hz systems. +vsync_adjust=0 + +; If your monitor doesn't support either very low (NTSC monitors may not support PAL) or +; very high (PAL monitors may not support NTSC) then you can set refresh_min and/or refresh_max +; parameters, so vsync_adjust won't be applied for refreshes outside specified. +; These parameters are valid only when vsync_adjust is non-zero. +refresh_min=0 +refresh_max=0 + +; These parameters have the same format as video_mode. +; You need to supply both PAL and NTSC modes if you want vsync_adjust to switch between +; predefined modes as a base. This will reduce the range of pixel clock. +;video_mode_ntsc=0 +;video_mode_pal=7 + +; Provided below are options for modulating color on the HDMI output. +; Brightness, contrast and saturation can be set to any value between 0 and 100. +; Hue can be set to 0 - 360, observing the HSL color model. +; Each component of video_gain_offset can be set to any value between -2 and 2. +; The order is "gain,offset" repeated three times to cover RGB. +; Example 1, Inverted colors: +; video_gain_offset= -1, 1, -1, 1, -1, 1 +; Example 2, Slightly desaturated, warm display: +; video_saturation= 80 +; video_gain_offset= 1.5, -0.1, 1.3, -0.15, 0.9, 0.05 +video_brightness=50 +video_contrast=50 +video_saturation=100 +video_hue=0 +video_gain_offset=1,0,1,0,1,0 + +; These controls have been provided so you can tweak the HDR metadata values regarding +; peak brightness and average brightness. The defaults are 1000/250 for peak and average +; respectively. +; Some displays will completely ignore the values in the HDR packet, some will make use of them. +; The recommendation is to set hdr_max_nits to your display's peak luminance, while +; setting hdr_avg_nits to at least hdr_max_nits/4. +; Please note that setting a peak brightness far above your display's capability may result +; in clipping in bright parts of the image. +hdr_max_nits=1000 +hdr_avg_nits=250 + +; 1-10 (seconds) to display controller's button map upon first time key press +; 0 - disable +controller_info=6 + +; JammaSD/J-PAC/I-PAC keys to joysticks translation +; You have to provide correct VID and PID of your input device +; Examples: Legacy J-PAC with Mini-USB or USB capable I-PAC with PS/2 connectors VID=0xD209/PID=0x0301 +; USB Capable J-PAC with only PS/2 connectors VID=0x04B4/PID=0x0101 +; JammaSD: VID=0x04D8/PID=0xF3AD +; jamma_vid/pid (i.e. JammaSD) would be mapped to Players 1 and 2 controllers. +; jamma2_vid/pid (i.e. J-PAC ) would be mapped to Players 3 and 4 controllers +; for a possible 4-player JAMMA-VERSUS scenario +; using two JAMMA USB controller interfaces. +jamma_vid=0x04D8 +jamma_pid=0xF3AD +jamma2_vid=0x1111 +jamma2_pid=0x2222 + +; Disable merging input devices. Use if only player 1 works. +; Leave no_merge_pid empty to apply this to all devices with the same VID. +;no_merge_vid=0x045E +;no_merge_pid=0x028E + +; Same as above but can add multiple devices (one entry per VIDPID). Format is VIDPID in hex number +;no_merge_vidpid=0x12345678 +;no_merge_vidpid=0x11112222 + +; Dead zone radius definitions. +; Joystick movements smaller than a defined radius will be neglected. +; This is good for worn or poorly made joysticks and converters. +; Devices that match the identifier part of the string will be affected. +; You can add multiple devices (one entry per identifier). +; The identifier part is case-insensitive, and the radius can be up to 64 units. +; Identifier and radius are separated by a whitespace (' ') and/or a comma (','). +; Accepted formats are: +; +; - VIDPID as an eight digit hex number ("0x" can be omitted), then the radius (not hex). +;deadzone=0x1E8F1603, 25 +; +; - vid:VID as a four digit hex, then the radius. +;deadzone=vid:0x1e8f, 25 +; +; - pid:PID as a four digit hex, then the radius. +;deadzone=PID:1603 25 +; +; - The following formats are explained a bit further down: +;deadzone=usb-1.2/, 10 +;deadzone=7c:10:c9:15:22:33/df:47:3a:12:44:55, 8 +;deadzone=1e8f_1603_55c4dd0c, 5 + +; Permanently assign specific controller to specific player. +; Normally you don't need to use this option, but if you use arcade cabinet with integrated controllers then +; you may want to use it for specific player regardless which controller is used first. +; To assign it, you need to provide unique part of this controller ID. +; In USB debug log you may see list of input devices right after core has been loaded. +; For example: +; +; opened 0( 0): /dev/input/event8 (1915:0040) 0 "7c:10:c9:15:22:33/df:47:3a:12:44:55" "Flydigi APEX2" +; ... +; opened 7( 7): /dev/input/event3 (1997:2535) 0 "usb-ffb40000.usb-1.6/input0" " mini keyboard" +; opened 9( 9): /dev/input/event0 (046d:4024) 0 "usb-ffb40000.usb-1.2/input2:1/4024-19-a2-39-0a" "Logitech K400" +; +; following part is unique identifier in system ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +; So you need to provide part of this string identifying exactly this device. Don't include inputX part as it may change after reboot. +; Wireless devices usually have format MAC/MAC, wired devices use usb-... format. +; UPDATE: you may define up to 8 devices to the same player. Use player_1_controller in several lines to assign multiple devices to player 1. +; +; Example of such unique part of strings: +; +;player_1_controller=usb-1.2/ ;include / at the end so it won't match with something like usb-1.2.3 +;player_2_controller=7c:10:c9:15:22:33/df:47:3a:12:44:55 +;player_3_controller=1915_0040_55c4dd0c ; VID_PID_HASH - VID, PID and unique HASH +;player_4_controller=1915_0040 ; VID_PID - warning, it will assign all input devices with these VID:PID to same player! + + +; Speeds in sniper/non-sniper modes of mouse emulation by joystick +; 0 - (default) - faster move in non-sniper mode, slower move in sniper mode. +; 1 - movement speeds are swapped. +sniper_mode=0 + +; Uncomment following option if you don't want to see a second line for long file names in listing. +;browse_expand=0 + +; 0 - disable MiSTer logo in Menu core +logo=1 + +; Custom shared folder for core supporting this feature (currently minimig and ao486 only) +; Can be relative to core's home dir or absolute path. +; Path must exist before core start to use it, or it will fail. +; Make sure USB device is mounted before use shared folder on USB! +shared_folder= + +; Custom aspect ratio +;custom_aspect_ratio_1=16:10 +;custom_aspect_ratio_2=1:1 + +; use specific (VID/PID) mouse X movement as a spinner and paddle. Use VID=0xFFFF/PID=0xFFFF to use all mice as spinners. +;spinner_vid=0x1BCF +;spinner_pid=0x0005 + +; spinner_throttle with base value 100 gives one spinner step per one tick. Higher value makes spinner slower. +; Lower than 100 makes spinner faster. Negative value gives opposite direction. +;spinner_throttle=-50 + +; 0 - X axis, 1 - Y axis, 2 - wheel. +;spinner_axis=1 + +; Default filters for video scaler. Paths must be relative to "Filters" folder without leading slash. +;vfilter_default=LCD Effects/LCD_Effect_07.txt +;vfilter_vertical_default= +;vfilter_scanlines_default= + +; Default filters for audio. Paths must be relative to "Filters_audio" folder without leading slash. +;afilter_default=LPF2000_3tap.txt + +; Defines internal joypad mapping from virtual SNES mapping in main to core mapping +; Set to 0 for name mapping (jn) (e.g. A button in SNES core = A button on controller regardless of position on pad) +; Set to 1 for positional mapping (jp) (e.g. A button in SNES core = East button on controller regardless of button name) +gamepad_defaults=0 + +; Write out file name under the cursor in browser for external integration +; External application or script may parse the info and do some additional actions and/or send info to 3rd party server. +; Warning: it may slowdown the system or add lag while browsing the files in OSD depending on external app/script. +log_file_entry=0 + +; Automatically disconnect (and shutdown) Bluetooth input device if not use specified amount of time. +; Some controllers have no automatic shutdown built in and will keep connection till battery dry out. +; 0 - don't disconnect automatically, otherwise it's amount of minutes. +bt_auto_disconnect=0 + +; Reset Bluetooth dongle before pair dialog. +; Some dongles may have problem to pair if not explicitly reset. +; Some dongles (mostly CSR) have problem to pair with BLE if not reset in advance. +; Consequence of reset: some input devices get shutdown after reset. +bt_reset_before_pair=0 + +;default Shadow Mask +;shmask_default=VGA.txt + +;default shadow mask mode: +; 0 - none, 1 - 1x, 2 - 2x, 3 - 1x Rotated, 4 - 2x Rotated +;shmask_mode_default=1 + +; Wait for specific mount before start the core. +; Attention: waiting is performing BEFORE core start, so no message will be displayed on screen! +; It's useful for debugging when core is loaded from USB blaster and games folder is on USB or Network drive. +; This option cannot be used when defmra in CONFSTR is used (i.e. if arcade rbf is loaded directly not through MRA). +; This option is ignored for Menu core. +;waitmount=/media/usb0 + +; Overrides for video mode +; When the core's video mode matches the parameters in the section header, any options in the section override options from MiSTer and core sections. +; Refresh rate in header is optional and, if present, must match exactly the output from video_info or the logs. For example, if it says "60.0Hz", the header needs to be "@60.0" to match. +; When the core changes video mode, MiSTer will first look for a matching WIDTHxHEIGHT@VREFRESH section. +; If no match is found, it will fall back to a matching WIDTHxHEIGHT section with no refresh rate. +; If there is still no match, MiSTer/core options will be used without overrides. +; [video=640x400] +; ... +; [video=640x400@70.1] +; ... + +; Wheel centering force 0-100. Default is 50. +;wheel_force=50 + +; Wheel steering angle range. Supported ranges depends on specific wheel model +; If not set then default (depending on driver) range is used +;wheel_range=200 + +; Enable game mode on HDMI output. It may give you better optimization on some displays, but also +; can give worse result on others. Default is 0 (non-game). +;hdmi_game_mode=1 + +; Variable Refresh Rate control +; 0 - Do not enable VRR (send no VRR control frames) +; 1 - Auto Detect VRR from display EDID. +; 2 - Force Enable Freesync +; 3 - Force Enable Vesa HDMI Forum VRR +vrr_mode=0 +; Minimum framerate in VRR mode. +vrr_min_framerate=0 +; Maximum framerate in VRR mode (currently only used in Freesync mode). +vrr_max_framerate=0 +; VESA VRR base framerate. Normally set to the current video mode's output framerate +vrr_vesa_framerate=0 + +; disable autofire if for some reason it's not required and accidentally triggered +disable_autofire=0 + +; Specify a default video processing preset that will be applied to cores. +; Path is relative to the presets/ directory and can optionally include the .ini extension +;preset_default=General Hardware/Console - 3rdGen + +; Enable per controller and per USB port mapping, both gamepads and keyboards +; Even same model of controller connected to different USB ports will have different button sets, +; thus make sure to define buttons for all controllers if you set this option to 1. +; Option also accepts VIDPID value to define per-port mapping only for specific VID:PID device. +; It's useful for DIY controllers using off-the-shelf boards like arduino. +; You may use several controller_unique_mapping instances to assign several VID:PID. +;controller_unique_mapping=0x23418037 ; example for Arduino Micro +controller_unique_mapping=0 + + +; Protect access to the OSD when a core is running +; When attempting to access the OSD players will be prompted for an unlock code. +; U = Up, D = Down, L = Left, R = Right, A = Select, B = Back +; Setting osd_lock to DUUUD would require entering the sequence Down, Up, Up, Up, Down +;osd_lock=DUUUD + +; If osd_lock is enabled, allow the OSD to be opened without entering the unlock +; code if less than osd_lock_time seconds have passed since the OSD was closed. +; set to 0 for manual lock from OSD +osd_lock_time=5 + +; use custom main for specific core. This option should be used only inside specific core. +;main=some_binary_file diff --git a/MiSTerDefaults.ini b/MiSTerDefaults.ini deleted file mode 100644 index 5651f2f1..00000000 --- a/MiSTerDefaults.ini +++ /dev/null @@ -1,366 +0,0 @@ -[MiSTer] -;debug=1 ; set to 1 to enable debugging messages. Default is 0(disabled). -key_menu_as_rgui=0 ; set to 1 to make the MENU key map to RGUI in Minimig (e.g. for Right Amiga) -forced_scandoubler=0 ; set to 1 to run scandoubler on VGA output always (depends on core). -;ypbpr=0 ; set to 1 for YPbPr on VGA output. (obsolete. see vga_mode) -vga_mode=rgb ; supported modes: rgb, ypbpr, svideo, cvbs. rgb is default. -ntsc_mode=0 ; Only for S-Video and CVBS vga_mode. 0 - normal NTSC, 1 - PAL-60, 2 - PAL-M. -composite_sync=0 ; set to 1 for composite sync on HSync signal of VGA output. -vga_scaler=0 ; set to 1 to connect VGA to scaler output. -hdmi_audio_96k=0 ; set to 1 for 96khz/16bit HDMI audio (48khz/16bit otherwise) -keyrah_mode=0x18d80002 ; VIDPID of keyrah for special code translation (0x23418037 for Arduino Micro) -vscale_mode=0 ; 0 - scale to fit the screen height. - ; 1 - use integer scale only. - ; 2 - use 0.5 steps of scale. - ; 3 - use 0.25 steps of scale. - ; 4 - integer resolution scaling, use core aspect ratio - ; 5 - integer resolution scaling, maintain display aspect ratio -vscale_border=0 ; set vertical border for TVs cutting the upper/bottom parts of screen (1-399) -;bootscreen=0 ; uncomment to disable boot screen of some cores like Minimig. -;mouse_throttle=10 ; 1-100 mouse speed divider. Useful for very sensitive mice -rbf_hide_datecode=0 ; 1 - hides datecodes from rbf file names. Press F2 for quick temporary toggle -menu_pal=0 ; 1 - PAL mode for menu core -hdmi_limited=0 ; 1 - use limited (16..235) color range over HDMI - ; 2 - use limited (16..255) color range over HDMI, for VGA converters. -direct_video=0 ; 1 - enable core video timing over HDMI, use only with VGA converters. -hdr=0 ; 1 - enable HDR using HLG (recommended for most users) - ; 2 - enable HDR using the DCI P3 color space (use color controls to tweak, suggestion: set saturation to 80). -fb_size=0 ; 0 - automatic, 1 - full size, 2 - 1/2 of resolution, 4 - 1/4 of resolution. -fb_terminal=1 ; 1 - enabled (default), 0 - disabled -osd_timeout=30 ; 5-3600 timeout (in seconds) for OSD to disappear in Menu core. 0 - never timeout. - ; Background picture will get darker after double timeout -video_off=0 ; output black frame in Menu core after timeout (is seconds). Valid only if osd_timout is non zero. -osd_rotate=0 ; Display OSD menu rotated, 0 - no rotation, 1 - rotate right (+90°), 2 - rotate left (-90°) -vga_sog=0 ; 1 - enable sync on green (needs analog I/O board v6.0 or newer). - - -; 1 - enables the recent file loaded/mounted. -; WARNING: This option will enable write to SD card on every load/mount which may wear the SD card after many writes to the same place -; There is also higher chance to corrupt the File System if MiSTer will be reset or powered off while writing. -recents=0 - -; lastcore - Autoboot the last loaded core (corename autosaved in CONFIG/lastcore.dat) first found on the SD/USB -; lastexactcore - Autoboot the last loaded exact core (corename_yyyymmdd.rbf autosaved in CONFIG/lastcore.dat) first found on the SD/USB -; corename - Autoboot first corename_*.rbf found on the SD/USB -; corename_yyyymmdd.rbf - Autoboot first corename_yyyymmdd.rbf found on the SD/USB -;bootcore=lastcore ; uncomment to autoboot a core, as the last loaded core. - -; 10-30 timeout before autoboot, comment for autoboot without timeout. -bootcore_timeout=10 - -; Option to load the custom font. Format is plain bitmap 8x8. -; Supported sizes of font: -; 768 bytes - chars 32-127 (only alpha + numeric) -; 1024 bytes - chars 0-127 -; 1136 bytes - chars 0-141 -; up to 2048 - only chars 0-141 will be used. -; if first 32 chars are empty (for sizes 1024 bytes and more) then they are skipped. -font=font/myfont.pf - -; USER button emulation using a keyboard. Usually it's the reset button. -; 0 - lctrl+lalt+ralt (lctrl+lgui+rgui on keyrah) -; 1 - lctrl+lgui+rgui -; 2 - lctrl+lalt+del -; 3 - same as 0 (lctrl+lalt+ralt on keyrah) -reset_combo=0 - -; !!!! -; Attention: if video_mode is not set in INI, then MiSTer will try to detect -; native mode of display and use it instead. -; Additionally, if dvi_mode is not set (only if video_mode is not set), -; then MiSTer will try to detect if display is DVI. -; !!!! - -; set to 1 for DVI mode. Audio won't be transmitted through HDMI in DVI mode. -;dvi_mode=0 - -; 0 - 1280x720@60 -; 1 - 1024x768@60 -; 2 - 720x480@60 -; 3 - 720x576@50 -; 4 - 1280x1024@60 -; 5 - 800x600@60 -; 6 - 640x480@60 -; 7 - 1280x720@50 -; 8 - 1920x1080@60 -; 9 - 1920x1080@50 -;10 - 1366x768@60 -;11 - 1024x600@60 -;12 - 1920x1440@60 -;13 - 2048x1536@60 -;14 - 2560x1440@60 -; -; custom mode: hact,hfp,hs,hbp,vact,vfp,vs,vbp,Fpix_in_KHz[,hsyncp,vsyncp] -; example: video_mode=1280,110,40,220,720,5,5,20,74250,+hsync,-vsync -; -; calculated mode: width,height,refresh[,flags] -; example: video_mode=1920,1200,60 -; flags - cvt=CVT timing, cvtrb=CVT-RB timing (default) -;video_mode=0 - -; set to 1-10 (seconds) to display video info on startup/change -video_info=0 - -; Set to 1 for automatic HDMI VSync rate adjust to match original VSync. -; Set to 2 for low latency mode (single buffer). -; This option makes video butter smooth like on original emulated system. -; Adjusting is done by changing pixel clock. Not every display supports variable pixel clock. -; For proper adjusting and to reduce possible out of range pixel clock, use 60Hz HDMI video -; modes as a base even for 50Hz systems. -vsync_adjust=0 - -; If your monitor doesn't support either very low (NTSC monitors may not support PAL) or -; very high (PAL monitors may not support NTSC) then you can set refresh_min and/or refresh_max -; parameters, so vsync_adjust won't be applied for refreshes outside specified. -; These parameters are valid only when vsync_adjust is non-zero. -refresh_min=0 -refresh_max=0 - -; These parameters have the same format as video_mode. -; You need to supply both PAL and NTSC modes if you want vsync_adjust to switch between -; predefined modes as a base. This will reduce the range of pixel clock. -;video_mode_ntsc=0 -;video_mode_pal=7 - -; Provided below are options for modulating color on the HDMI output. -; Brightness, contrast and saturation can be set to any value between 0 and 100. -; Hue can be set to 0 - 360, observing the HSL color model. -; Each component of video_gain_offset can be set to any value between -2 and 2. -; The order is "gain,offset" repeated three times to cover RGB. -; Example 1, Inverted colors: -; video_gain_offset= -1, 1, -1, 1, -1, 1 -; Example 2, Slightly desaturated, warm display: -; video_saturation= 80 -; video_gain_offset= 1.5, -0.1, 1.3, -0.15, 0.9, 0.05 -video_brightness=50 -video_contrast=50 -video_saturation=100 -video_hue=0 -video_gain_offset=1,0,1,0,1,0 - -; These controls have been provided so you can tweak the HDR metadata values regarding -; peak brightness and average brightness. The defaults are 1000/250 for peak and average -; respectively. -; Some displays will completely ignore the values in the HDR packet, some will make use of them. -; The recommendation is to set hdr_max_nits to your display's peak luminance, while -; setting hdr_avg_nits to at least hdr_max_nits/4. -; Please note that setting a peak brightness far above your display's capability may result -; in clipping in bright parts of the image. -hdr_max_nits=1000 -hdr_avg_nits=250 - -; 1-10 (seconds) to display controller's button map upon first time key press -; 0 - disable -controller_info=6 - -; JammaSD/J-PAC/I-PAC keys to joysticks translation -; You have to provide correct VID and PID of your input device -; Examples: Legacy J-PAC with Mini-USB or USB capable I-PAC with PS/2 connectors VID=0xD209/PID=0x0301 -; USB Capable J-PAC with only PS/2 connectors VID=0x04B4/PID=0x0101 -; JammaSD: VID=0x04D8/PID=0xF3AD -; jamma_vid/pid (i.e. JammaSD) would be mapped to Players 1 and 2 controllers. -; jamma2_vid/pid (i.e. J-PAC ) would be mapped to Players 3 and 4 controllers -; for a possible 4-player JAMMA-VERSUS scenario -; using two JAMMA USB controller interfaces. -jamma_vid=0x04D8 -jamma_pid=0xF3AD -jamma2_vid=0x1111 -jamma2_pid=0x2222 - -; Disable merging input devices. Use if only player 1 works. -; Leave no_merge_pid empty to apply this to all devices with the same VID. -;no_merge_vid=0x045E -;no_merge_pid=0x028E - -; Same as above but can add multiple devices (one entry per VIDPID). Format is VIDPID in hex number -;no_merge_vidpid=0x12345678 -;no_merge_vidpid=0x11112222 - -; Dead zone radius definitions. -; Joystick movements smaller than a defined radius will be neglected. -; This is good for worn or poorly made joysticks and converters. -; Devices that match the identifier part of the string will be affected. -; You can add multiple devices (one entry per identifier). -; The identifier part is case-insensitive, and the radius can be up to 64 units. -; Identifier and radius are separated by a whitespace (' ') and/or a comma (','). -; Accepted formats are: -; -; - VIDPID as an eight digit hex number ("0x" can be omitted), then the radius (not hex). -;deadzone=0x1E8F1603, 25 -; -; - vid:VID as a four digit hex, then the radius. -;deadzone=vid:0x1e8f, 25 -; -; - pid:PID as a four digit hex, then the radius. -;deadzone=PID:1603 25 -; -; - The following formats are explained a bit further down: -;deadzone=usb-1.2/, 10 -;deadzone=7c:10:c9:15:22:33/df:47:3a:12:44:55, 8 -;deadzone=1e8f_1603_55c4dd0c, 5 - -; Permanently assign specific controller to specific player. -; Normally you don't need to use this option, but if you use arcade cabinet with integrated controllers then -; you may want to use it for specific player regardless which controller is used first. -; To assign it, you need to provide unique part of this controller ID. -; In USB debug log you may see list of input devices right after core has been loaded. -; For example: -; -; opened 0( 0): /dev/input/event8 (1915:0040) 0 "7c:10:c9:15:22:33/df:47:3a:12:44:55" "Flydigi APEX2" -; ... -; opened 7( 7): /dev/input/event3 (1997:2535) 0 "usb-ffb40000.usb-1.6/input0" " mini keyboard" -; opened 9( 9): /dev/input/event0 (046d:4024) 0 "usb-ffb40000.usb-1.2/input2:1/4024-19-a2-39-0a" "Logitech K400" -; -; following part is unique identifier in system ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -; So you need to provide part of this string identifying exactly this device. Don't include inputX part as it may change after reboot. -; Wireless devices usually have format MAC/MAC, wired devices use usb-... format. -; UPDATE: you may define up to 8 devices to the same player. Use player_1_controller in several lines to assign multiple devices to player 1. -; -; Example of such unique part of strings: -; -;player_1_controller=usb-1.2/ ;include / at the end so it won't match with something like usb-1.2.3 -;player_2_controller=7c:10:c9:15:22:33/df:47:3a:12:44:55 -;player_3_controller=1915_0040_55c4dd0c ; VID_PID_HASH - VID, PID and unique HASH -;player_4_controller=1915_0040 ; VID_PID - warning, it will assign all input devices with these VID:PID to same player! - - -; Speeds in sniper/non-sniper modes of mouse emulation by joystick -; 0 - (default) - faster move in non-sniper mode, slower move in sniper mode. -; 1 - movement speeds are swapped. -sniper_mode=0 - -; Uncomment following option if you don't want to see a second line for long file names in listing. -;browse_expand=0 - -; 0 - disable MiSTer logo in Menu core -logo=1 - -; Custom shared folder for core supporting this feature (currently minimig and ao486 only) -; Can be relative to core's home dir or absolute path. -; Path must exist before core start to use it, or it will fail. -; Make sure USB device is mounted before use shared folder on USB! -shared_folder= - -; Custom aspect ratio -;custom_aspect_ratio_1=16:10 -;custom_aspect_ratio_2=1:1 - -; use specific (VID/PID) mouse X movement as a spinner and paddle. Use VID=0xFFFF/PID=0xFFFF to use all mice as spinners. -;spinner_vid=0x1BCF -;spinner_pid=0x0005 - -; spinner_throttle with base value 100 gives one spinner step per one tick. Higher value makes spinner slower. -; Lower than 100 makes spinner faster. Negative value gives opposite direction. -;spinner_throttle=-50 - -; 0 - X axis, 1 - Y axis, 2 - wheel. -;spinner_axis=1 - -; Default filters for video scaler. Paths must be relative to "Filters" folder without leading slash. -;vfilter_default=LCD Effects/LCD_Effect_07.txt -;vfilter_vertical_default= -;vfilter_scanlines_default= - -; Default filters for audio. Paths must be relative to "Filters_audio" folder without leading slash. -;afilter_default=LPF2000_3tap.txt - -; Defines internal joypad mapping from virtual SNES mapping in main to core mapping -; Set to 0 for name mapping (jn) (e.g. A button in SNES core = A button on controller regardless of position on pad) -; Set to 1 for positional mapping (jp) (e.g. A button in SNES core = East button on controller regardless of button name) -gamepad_defaults=0 - -; Write out file name under the cursor in browser for external integration -; External application or script may parse the info and do some additional actions and/or send info to 3rd party server. -; Warning: it may slowdown the system or add lag while browsing the files in OSD depending on external app/script. -log_file_entry=0 - -; Automatically disconnect (and shutdown) Bluetooth input device if not use specified amount of time. -; Some controllers have no automatic shutdown built in and will keep connection till battery dry out. -; 0 - don't disconnect automatically, otherwise it's amount of minutes. -bt_auto_disconnect=0 - -; Reset Bluetooth dongle before pair dialog. -; Some dongles may have problem to pair if not explicitly reset. -; Some dongles (mostly CSR) have problem to pair with BLE if not reset in advance. -; Consequence of reset: some input devices get shutdown after reset. -bt_reset_before_pair=0 - -;default Shadow Mask -;shmask_default=VGA.txt - -;default shadow mask mode: -; 0 - none, 1 - 1x, 2 - 2x, 3 - 1x Rotated, 4 - 2x Rotated -;shmask_mode_default=1 - -; Wait for specific mount before start the core. -; Attention: waiting is performing BEFORE core start, so no message will be displayed on screen! -; It's useful for debugging when core is loaded from USB blaster and games folder is on USB or Network drive. -; This option cannot be used when defmra in CONFSTR is used (i.e. if arcade rbf is loaded directly not through MRA). -; This option is ignored for Menu core. -;waitmount=/media/usb0 - -; Overrides for video mode -; When the core's video mode matches the parameters in the section header, any options in the section override options from MiSTer and core sections. -; Refresh rate in header is optional and, if present, must match exactly the output from video_info or the logs. For example, if it says "60.0Hz", the header needs to be "@60.0" to match. -; When the core changes video mode, MiSTer will first look for a matching WIDTHxHEIGHT@VREFRESH section. -; If no match is found, it will fall back to a matching WIDTHxHEIGHT section with no refresh rate. -; If there is still no match, MiSTer/core options will be used without overrides. -; [video=640x400] -; ... -; [video=640x400@70.1] -; ... - -; Wheel centering force 0-100. Default is 50. -;wheel_force=50 - -; Wheel steering angle range. Supported ranges depends on specific wheel model -; If not set then default (depending on driver) range is used -;wheel_range=200 - -; Enable game mode on HDMI output. It may give you better optimization on some displays, but also -; can give worse result on others. Default is 0 (non-game). -;hdmi_game_mode=1 - -; Variable Refresh Rate control -; 0 - Do not enable VRR (send no VRR control frames) -; 1 - Auto Detect VRR from display EDID. -; 2 - Force Enable Freesync -; 3 - Force Enable Vesa HDMI Forum VRR -vrr_mode=0 -; Minimum framerate in VRR mode. -vrr_min_framerate=0 -; Maximum framerate in VRR mode (currently only used in Freesync mode). -vrr_max_framerate=0 -; VESA VRR base framerate. Normally set to the current video mode's output framerate -vrr_vesa_framerate=0 - -; disable autofire if for some reason it's not required and accidentally triggered -disable_autofire=0 - -; Specify a default video processing preset that will be applied to cores. -; Path is relative to the presets/ directory and can optionally include the .ini extension -;preset_default=General Hardware/Console - 3rdGen - -; Enable per controller and per USB port mapping, both gamepads and keyboards -; Even same model of controller connected to different USB ports will have different button sets, -; thus make sure to define buttons for all controllers if you set this option to 1. -; Option also accepts VIDPID value to define per-port mapping only for specific VID:PID device. -; It's useful for DIY controllers using off-the-shelf boards like arduino. -; You may use several controller_unique_mapping instances to assign several VID:PID. -;controller_unique_mapping=0x23418037 ; example for Arduino Micro -controller_unique_mapping=0 - - -; Protect access to the OSD when a core is running -; When attempting to access the OSD players will be prompted for an unlock code. -; U = Up, D = Down, L = Left, R = Right, A = Select, B = Back -; Setting osd_lock to DUUUD would require entering the sequence Down, Up, Up, Up, Down -;osd_lock=DUUUD - -; If osd_lock is enabled, allow the OSD to be opened without entering the unlock -; code if less than osd_lock_time seconds have passed since the OSD was closed. -; set to 0 for manual lock from OSD -osd_lock_time=5 - -; use custom main for specific core. This option should be used only inside specific core. -;main=some_binary_file