Page 1 of 1

HDMI to VGA Adapter VGA CRT Monitor Not Working VGA Scaler Scandoubler

Posted: Thu Dec 08, 2022 1:29 pm
by NORATIO

Hello,

I have one Mister hooked to a VGA CRT monitor via an HDMI to VGA adapter / converter. The quality is just incredible and all the cores are working great except for the PSX one. I do have another Mister with the IO hat with VGA output, but the quality is not as great and I want to keep that one on my main CRT tube TV. I really want to focus on a solution for the HDMI to VGA adapter which is also cheaper and more accessible.

I know that Scandoubler is not support because of the funny resolutions switching in some games and interlaced ones and the output signal frequency is 15.7 Khz and it's not supported. VGA CRTs expect 31Khz frequency.

I opened an issue with PSX core dev on Github and the answer/solution was to use VGA Scaling. I have tried doing so without luck. The signal is still 15khz no matter what I do.

Anyone here had this issue and could help please? I will for sure do a Youtube video on it after if I can get it to work. I see many posts with no clear instructions with people in the dark like me. One of them suggest to output at 960p the PSX core video mode (where 480i X 2, which makes sense). I've tried, but it just won't do it. What is the secret sauce? Here is my Mister.ini file.

Code: Select all

[MiSTer]
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=1   ; set to 1 to run scandoubler on VGA output always (depends on core).
ypbpr=0                ; set to 1 for YPbPr on VGA output.
composite_sync=0       ; set to 1 for composite sync on HSync signal of VGA output.
vga_scaler=1           ; 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=1          ; 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.
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=2         ; 1 - use limited (16..235) color range over HDMI
                       ; 2 - use limited (16..255) color range over HDMI, for VGA converters.
direct_video=1         ; 1 - enable core video timing over HDMI, use only with VGA converters.
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. 30 seconds if not set.
                       ; Background picture will get darker after double timeout

; 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.
bootcore_timeout=10  ; 10-30 timeout before autoboot, comment for autoboot without timeout.

; 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 by keybaord. Usually it's 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

dvi_mode=0             ; set to 1 for DVI mode. Audio won't be transmitted through HDMI in DVI mode.

; 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
;
; custom mode: hact,hfp,hs,hbp,vact,vfp,vs,vbp,Fpix_in_KHz
;   video_mode=1280,110,40,220,720,5,5,20,74250
;video_mode=0

; set to 1-10 (seconds) to display video info on startup/change
video_info=5

; 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 you 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

; 1-10 (seconds) to display controller's button map upon first time key press
; 0 - disable
controller_info=6

; JammaSD keys to joysticks translation
; You have to provide correct VID and PID of your input device
;jammasd_vid=0x04D8
;jammasd_pid=0xF3AD


;fall back 960p or 640p res
;video_mode=1704,96,184,280,960,1,3,30,134630 ;1704x960
;video_mode=6

[video=368x240]
vga_scaler=1
video_mode=368,8,40,48,240,1,3,14,14370

[video=529x240]
vga_scaler=1
video_mode=529,8,56,64,240,1,3,14,20310

[video=529x480]
vga_scaler=1
video_mode=529,32,56,88,480,1,3,31,43510

[video=640x478]
vga_scaler=1
video_mode=6
;video_mode=640,40,64,104,478,1,3,31,52200

[video=384x216]
vga_scaler=1
video_mode=384,24,40,64,432,1,3,28,28510

[video=256x239]
vga_scaler=1
video_mode=256,8,24,32,239,1,3,14,9870

[video=512x216]
vga_scaler=1
video_mode=512,24,56,80,432,1,3,28,37420

[video=640x240]
vga_scaler=1
video_mode=640,16,64,80,240,1,3,14,24770

[video=512x240]
vga_scaler=1
video_mode=512,16,48,64,240,1,3,14,19810

[video=256x240]
vga_scaler=1
video_mode=256,8,24,32,240,1,3,14,9910

[video=316x240]
vga_scaler=1
video_mode=320,24,49,38,200,2,2,20,13535,0,1 

[video=320x240]
vga_scaler=1
video_mode=320,8,32,40,240,1,3,14,12380
;video_mode=320,24,49,38,240,2,2,20,13535,0,1 
;video_mode=320,8,32,40,240,3,4,6,6000
;video_mode=640,4,88,60,480,1,5,19,23876,0,0 

[psx]
vga_scaler=1

Re: HDMI to VGA Adapter VGA CRT Monitor Not Working VGA Scaler Scandoubler

Posted: Sun Dec 11, 2022 5:50 pm
by NORATIO

Alright, I got it to work and their is actually an issue in the PSX core for Direct Video. Let me explain and it's two things.

To get it to work(to output at 31KHZ, I had to disabled direct_video (=0) with a resolution higher than twice the 478i (the one that worked 1280x1024@60, no other resolution worked). This was the secret sauce right down below :

[PSX]
forced_scandoubler=0
vga_scaler=1
video_mode=4
vscale_mode=1
direct_video=0

Summary : direct_video=1 is not supported by PSX core when HDMI to VGA converter is plugged as if it's set to "1", it doesn't take the video_mode value no matter what. I have tested with two VGA monitors and both worked now! What a journey!

I hope it helps others!

Here is my full Mister INI file (all cores work now)

Code: Select all

[MiSTer]
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=1   ; set to 1 to run scandoubler on VGA output always (depends on core).
ypbpr=0                ; set to 1 for YPbPr on VGA output.
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.
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=1         ; 1 - enable core video timing over HDMI, use only with VGA converters.
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
osd_rotate=0           ; Display OSD menu rotated,  0 - no rotation, 1 - rotate right (+90°), 2 - rotate left (-90°)                  

; 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 by keybaord. Usually it's 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

; 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
;
; custom mode: hact,hfp,hs,hbp,vact,vfp,vs,vbp,Fpix_in_KHz[,hsyncp,vsyncp]
;   video_mode=1280,110,40,220,720,5,5,20,74250,0,0
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 you 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

; 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=0x04D8
jamma_pid=0xF3AD

; 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

; 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.
;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=<some_file>
;vfilter_scanlines_default=<some_file>

; 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]
; ...


[PSX]
forced_scandoubler=0
vga_scaler=1
;video_mode=640,480,60,cvt
video_mode=6
vscale_mode=1
direct_video=0

Re: HDMI to VGA Adapter VGA CRT Monitor Not Working VGA Scaler Scandoubler

Posted: Sun Dec 11, 2022 7:01 pm
by FoxbatStargazer

This is a "working as intended" even if its counter-intuitive, sorry I forgot about that...

Direct_video=1 basically disables the video scaler and instead tries to push the original resolution through HDMI in a special format (typically a very wide resolution like 2000x240). For cores that support scandoubler, this works fine on VGA monitor because the scandoubler will take that analog to 480p and then it will get converted to the direct_video format. Because scandoubler does not work on PSX however direct_video will be forever stuck at 240p.

In order for any video_mode to work, you must instead engage the scaler, and direct_video specifically disables it. On the Mister's analog out you would use vga_scaler=1, but for the hdmi out to VGA converter, direct_video=0 is all that is needed, along with a video_mode suited to your monitor.

Basically direct_video doesn't really have anything to do with analog or digital, its about on the HDMI side whether you try to output the original resolution in a special format (direct_video=1), or instead engage the scaler to adjust it to any resolution you want (direct_video=0).


Re: HDMI to VGA Adapter VGA CRT Monitor Not Working VGA Scaler Scandoubler

Posted: Sun Dec 11, 2022 9:15 pm
by NORATIO

Thanks for the info. What a journey. Almost a year of trying everything I can and the last week I spent more than 50 hours, trial and errors and reading on it, looking in the source code of PSX. At least, I've learned a bit more 🙂

Never give up!


Re: HDMI to VGA Adapter VGA CRT Monitor Not Working VGA Scaler Scandoubler

Posted: Mon Dec 12, 2022 1:57 pm
by NORATIO

Sorry, I copied the wrong Mister.ini , here is the full one with correct resolution settings for the PSX and the low latency VGA config for all the other cores.

Code: Select all

[MiSTer]
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=1   ; set to 1 to run scandoubler on VGA output always (depends on core).
ypbpr=0                ; set to 1 for YPbPr on VGA output.
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.
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=1         ; 1 - enable core video timing over HDMI, use only with VGA converters.
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
osd_rotate=0           ; Display OSD menu rotated,  0 - no rotation, 1 - rotate right (+90°), 2 - rotate left (-90°)                  

; 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 by keybaord. Usually it's 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

; 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
;
; custom mode: hact,hfp,hs,hbp,vact,vfp,vs,vbp,Fpix_in_KHz[,hsyncp,vsyncp]
;   video_mode=1280,110,40,220,720,5,5,20,74250,0,0
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 you 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

; 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=0x04D8
jamma_pid=0xF3AD

; 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

; 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.
;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=<some_file>
;vfilter_scanlines_default=<some_file>

; 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]
; ...


[PSX]
forced_scandoubler=0
vga_scaler=1
video_mode=6
vscale_mode=1
direct_video=0