Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
RetroArch fullscreen video mode config template
## Fullscreen video mode config template for RetroArch.
## Can be appended on top of an existing config or used by itself.
## Note: This config will not overwrite by default to preserve comments. To enable saving changes from the menu, set config_save_on_exit to true.
# Fullscreen resolution. Resolution of 0 uses the resolution of the desktop.
# Note, you must create the modeline in your OS video driver settings for this to work.
video_fullscreen_x = 3840
video_fullscreen_y = 480
# Refresh rate of the resolution mode.
# As of 1.3.0, this is used to set the video mode refresh rate on Windows.
# If using black frame insertion, set this to 1/2 of the actual display refresh rate.
video_refresh_rate = 60.0
# A floating point value for video aspect ratio (width / height) used when aspect_ratio_index is 19 (Config)
# If this is not set, aspect ratio is assumed to be automatic.
# If using a superwide CRT resolution, set this to (video_fullscreen_x / video_fullscreen_y)
# Note: If you want to force a specific pixel aspect ratio on a superwide resolution, set video_aspect_ratio = ((video_fullscreen_x / video_fullscreen_y) * (((base_width * (pixel_aspect_ratio)) / base_height) / (display_aspect_ratio)))
video_aspect_ratio = 8.0
# Video driver to use. gl, xvideo, sdl, sdl2, d3d, vulkan
# The availablity of a video driver depends on the platform and build you are using.
# Use gl or vulkan drivers for best results.
video_driver = gl
# Index of the aspect ratio selection in the menu.
# 19 = Config, 20 = 1:1 PAR, 21 = Core Provided, 22 = Custom Viewport
aspect_ratio_index = 19
# Which monitor to prefer. 0 (default) means no particular monitor is preferred, 1 and up (1 being first monitor),
# suggests RetroArch to use that particular monitor.
video_monitor_index = 2
# Start in fullscreen. Can be changed at runtime.
video_fullscreen = true
# If fullscreen, prefer using a windowed fullscreen mode.
# Must be set to false for video_fullscreen_x and video_fullscreen_y to be used.
video_windowed_fullscreen = false
# Inserts a black frame in between frames.
# Useful for 120 Hz monitors who want to play 60 Hz material with eliminated ghosting.
# video_refresh_rate should still be configured as if it is a 60 Hz monitor (divide refresh rate by 2).
# The video mode selected will have a refresh rate of twice the value of video_refresh_rate when this is set to true.
video_black_frame_insertion = false
# Interval at which a Vsync swap is performed.
# 1 is normal, 2 is doubled frames, 3 is tripled frames, etc.
video_swap_interval = 1
# Video swapchain images. This is used with OpenGL with DRM/KMS context on Linux, or with the Vulkan video driver.
# This has no effect on OpenGL on other contexts, use video_hard_sync on those instead.
video_max_swapchain_images = 2
# Custom viewport dimensions that are used if aspect_ratio_index is 22 (Custom Viewport)
custom_viewport_width = 3840
custom_viewport_height = 448
# Custom viewport offsets used for defining the position of the viewport.
# These are ignored if video_scale_integer is true, it will automatically be centered.
custom_viewport_x = 0
custom_viewport_y = 0
# Only scales video in integer steps.
# The base size depends on system-reported geometry and aspect ratio.
# Automatically centers custom viewports as well
video_scale_integer = true
# Allows libretro cores to set rotation modes.
# Setting this to false will honor, but ignore this request.
# This is useful for vertically oriented content where one manually rotates the monitor.
video_allow_rotate = true
# Forces a certain rotation of the screen.
# The rotation is added to rotations which the libretro core sets (see video_allow_rotate).
# The angle is <value> * 90 degrees counter-clockwise.
video_rotation = 0
# Path to shader. Shader can be either Cg, CGP (Cg preset) or GLSL, GLSLP (GLSL preset)
# Recommended to set this to point to [config_filename].cgp, so it will simply load your working shader preset for this config so you can easily save changes to your shader even if config_save_on_exit is false.
#video_shader = :\shaders\shaders_cg\cgp\tvout+interlacing\tvout+interlacing.cgp
video_shader = :\shaders\480p.glslp
# CPU-based video filter. Path to a dynamic library.
video_filter =
# Load video_shader on startup.
# Other shaders can still be loaded later in runtime.
video_shader_enable = true
# Video vsync.
video_vsync = true
# Attempts to hard-synchronize CPU and GPU. Can reduce latency at cost of performance. Only works with OpenGL.
video_hard_sync = true
# Sets how many frames CPU can run ahead of GPU when using video_hard_sync.
# Maximum is 3. Recommended setting is 1 or 0 depending on a core's performance on your machine.
video_hard_sync_frames = 1
# Sets how many milliseconds to delay after VSync before running the core.
# Can reduce latency at cost of higher risk of stuttering.
# Maximum is 15. The optimal value of this setting depends heavily on how a core performs on your hardware.
video_frame_delay = 0
# Forces cropping of overscanned frames.
# Exact behavior of this option is implementation specific.
# Set this to false when using a CRT, since it is technically more accurate to draw the complete image and use the CRT geometry controls to physically crop those areas.
# Note: This option is considered to be deprecated as most cores use core options for enabling/disabling overscan cropping now instead of this global option
video_crop_overscan = false
# Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders.
video_smooth = false
# Use threaded video driver. Using this might improve performance at possible cost of latency and more video stuttering.
video_threaded = false
# Screenshots output of GPU shaded material if available.
# Set to false if using superwide resolutions unless you don't mind your screenshots being superwide and squished.
video_gpu_screenshot = false
## Audio options that affect video timing
# Audio driver backend. Depending on configuration possible candidates are: alsa, pulse, oss, jack, rsound, roar, openal, sdl, xaudio, wasapi.
# JACK or WASAPI drivers recomended if possible for lowest latency
audio_driver = wasapi
# Override the default audio device the audio_driver uses. This is driver dependant. E.g. ALSA wants a PCM device, OSS wants a path (e.g. /dev/dsp), Jack wants portnames (e.g. system:playback1,system:playback_2), and so on ...
audio_device =
# WASAPI settings (Windows only)
audio_wasapi_exclusive_mode = true
audio_wasapi_float_format = true
audio_wasapi_sh_buffer_length = 0
# Enable audio rate control.
audio_rate_control = true
# Will sync (block) on audio. Recommended.
audio_sync = true
# Controls audio rate control delta. Defines how much input rate can be adjusted dynamically.
# Input rate = in_rate * (1.0 +/- audio_rate_control_delta)
audio_rate_control_delta = 0.002000
# Controls maximum audio timing skew. Defines the maximum change in input rate.
# Input rate = in_rate * (1.0 +/- max_timing_skew)
audio_max_timing_skew = 0.050000
# Audio output samplerate.
audio_out_rate = 48000
# Desired audio latency in milliseconds. Might not be honored if driver can't provide given latency.
audio_latency = 8
## Miscellaneous RetroArch settings
# Menu driver to use. rgui, glui, xmb etc.
# Use rgui if you are using superwide resolutions on CRT. The other menu drivers don't display correctly due to using rendered truetype fonts instead of scaled bitmap fonts.
# Note: hot swapping configs in the menu that use different menu drivers can cause a crash currently.
menu_driver = rgui
# Input driver. Depending on video driver, it might force a different input driver.
input_driver = raw
# Joypad driver. (Valid: linuxraw, sdl, dinput, xinput)
input_joypad_driver = xinput
# Maximum amount of users supported by RetroArch.
input_max_users = 4
# Swap buttons for OK/Cancel
# use "false" for A=confirm, B=back.
menu_swap_ok_cancel_buttons = false
# allow any RetroPad to control the menu
all_users_control_menu = true
# RetroPad button combination to toggle menu
# 0 = none, 1 = L + R + Y + D-Pad Down, 2 = L3 + R3, 3 = Start + Select
input_menu_toggle_gamepad_combo = 3
# Allow RetroArch to save to the config file on exit.
# Comments will not be preserved if enabled.
config_save_on_exit = false
# Show startup screen in menu.
# Is automatically set to false when seen for the first time.
# This is only updated in config if config_save_on_exit is set to true, however.
# Set to false so it doesn't show every time you launch RetroArch with this config.
rgui_show_start_screen = false
# Show advanced settings in the menu
menu_show_advanced_settings = true
# Autosaves the non-volatile SRAM at a regular interval. This is disabled by default unless set otherwise.
# The interval is measured in seconds. A value of 0 disables autosave.
autosave_interval = 5
# If enabled, the libretro core will keep running in the background when we
# are in the menu.
menu_pause_libretro = true
# Pause gameplay when window focus is lost.
# If using a multi monitor setup, set to false if you don't want RA to be paused in one monitor while working in the other.
pause_nonactive = false
# Audio DSP plugin that processes audio before it's sent to the driver. Path to a dynamic library.
audio_dsp_plugin =
##Path settings
##Set these to match your own RetroArch installation, if not already correct.
core_options_path = :\config\retroarch-core-options.txt
content_history_path = :\playlists\
content_history_dir =
content_music_history_path = :\playlists\
content_video_history_path = :\playlists\
content_image_history_path = :\playlists\
rgui_browser_directory = D:\Games
libretro_directory = :\cores
screenshot_directory = :\screenshots
rgui_config_directory = :\config
assets_directory = :\assets
overlay_directory = :\overlays
joypad_autoconfig_dir = :\autoconfig
system_directory = :\system
audio_filter_dir = :\filters\audio
video_filter_dir = :\filters\video
video_shader_dir = :\shaders
savefile_directory = :\saves
savestate_directory = :\states
playlist_directory = :\playlists
libretro_info_path = :\info
content_database_path = :\database\rdb
cursor_directory = :\database\cursors
cheat_database_path = :\cheats
core_assets_directory = :\downloads
input_remapping_directory = :\config\remaps
osk_overlay_directory = :\overlays\keyboards
recording_output_directory = :\records
recording_config_directory = :\record_config
cache_directory = :\cache
resampler_directory =
thumbnails_directory = :\thumbnails
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment