This page lists the most useful keys to put in a .retroarch.cfg override file (see Configuration override for the principle and file naming). These keys only act when the game is launched with a RetroArch core (Libretro emulators).
The complete list of keys is on the Reference: every RetroArch option page — all 799 keys of RetroArch 1.22.2, with their type, default value, and which ones Recalbox drives itself.
A ✱ marks a setting that can also be done through a
.recalbox.confoverride (global.*/<system>.*keys), which is often simpler.
video_rotation = "1": rotates the rendering — 0 = normal, 1 = 90°, 2 = 180°, 3 = 270° (mind the aspect ratio).aspect_ratio_index = "23": display ratio index (23 = custom). ✱video_scale_integer = "true": integer scaling. ✱fps_show = "true": show FPS in game. ✱audio_enable = "false": mute the audio entirely.audio_volume = "0.0": volume gain in dB (0 = normal volume).See also the Overlays page — to simply enable/disable the Recalbox overlays, prefer the recalboxoverlays key in a .recalbox.conf. ✱
input_overlay = "/path/to/overlay.cfg": overlay file to use.input_overlay_enable = "true": overlay activation.input_overlay_hide_in_menu = "true": hide the overlay in the RetroArch menu.custom_viewport_width, custom_viewport_height, custom_viewport_x, custom_viewport_y: framing of the game picture inside the overlay (with aspect_ratio_index = "23").savefile_directory = "": saves directory.savestate_directory = "": save states directory.screenshot_directory = "": screenshots directory.recording_output_directory = "": video recordings directory.See the AI in-game translation page.
ai_service_enable = "true": enable the translation service. ✱ai_service_mode = "0": 0 = translated image, 1 = speech.ai_service_source_lang = "0": game language (0 = auto-detect).ai_service_target_lang = "1": target language (1 = English, 3 = French). ✱ai_service_url = "": translation service URL. ✱netplay_nickname = "": nickname shown in netplay. ✱input_playerN_analog_dpad_mode binds or unbinds player N's D-pad and sticks:
"0": unbound (required by some N64 games such as GoldenEye 007);"1": D-pad bound to the left stick;"2": D-pad bound to the right stick;"3" / "4": forced binding to the left / right stick.menu_driver = "ozone": RetroArch menu interface (ozone by default, rgui on small screens such as the GPi Case).menu_enable_widgets = "false": replace animated notifications with plain text.quick_menu_show_save_core_overrides = "false", quick_menu_show_save_content_dir_overrides = "false", quick_menu_show_save_game_overrides = "false": hide RetroArch's own "configuration override" entries in the quick menu.RetroArch has its own "configuration override" system (core/folder/game) saved from its menu. On Recalbox, prefer override files: they live with your roms and won't be wiped by an update or a factory reset.
Every shortcut (quit, screenshot, save state…) can be moved to another button for a game or a folder:
input_enable_hotkey_btn: Hotkey button.input_exit_emulator_btn: quit the game.input_screenshot_btn: take a screenshot.input_save_state_btn / input_load_state_btn: save / load state.input_menu_toggle_btn: open the RetroArch menu.input_reset_btn: reset the game.input_ai_service_btn: translate the current screen.The value to use is the button number as declared by your controller. To find it, open /recalbox/share/system/configs/retroarch/retroarchcustom.cfg (generated when a game is launched) and note the value of the key matching the button you want: input_player1_a_btn, input_player1_r_btn, input_player1_l_y_minus_axis (left stick up), and so on.
Example: The Legend of Zelda: Link's Awakening (Game Boy) saves with Start+Select+A+B. If your hotkey is on Select, that combination triggers your shortcuts instead of saving. If input_player1_r_btn = "4" in the file above, move the hotkey to R for this game only with, in Legend of Zelda, The - Link's Awakening (USA).zip.retroarch.cfg:
input_enable_hotkey_btn = "4"
These numbers depend on the configured controller: if you change controllers, the override may no longer match.
The options in the Recalbox menus (RUN AHEAD, REDUCED LATENCY, REWIND…) are written into the RetroArch configuration every time a game starts. That is why turning them off from the RetroArch menu never sticks: the setting is rewritten on the next launch.
A .retroarch.cfg override, on the other hand, is applied last — after everything Recalbox generated. It therefore wins over those options, and lets you disable them for a single game or a single system without changing anything globally.
The table gives, for each option, the keys to put in your override file:
| Recalbox option | Keys to put in .retroarch.cfg to disable it |
|---|---|
RUN AHEAD |
run_ahead_enabled = "false" |
REDUCED LATENCY |
video_max_swapchain_images = "3" |
REWIND |
rewind_enable = "false" |
AUTO SAVE |
savestate_auto_save = "false" and savestate_auto_load = "false" |
INTEGER SCALE |
video_scale_integer = "false" |
SHOW FPS |
fps_show = "false" |
SMOOTH |
video_smooth = "false" |
PRESS TWICE TO QUIT |
quit_press_twice = "false" |
To enable an option instead, use "true" — except for reduced latency, whose active value is video_max_swapchain_images = "2".
RUN AHEAD plays one frame ahead to gain responsiveness, but some games cope badly with it. To turn it off for your arcade games without disabling it everywhere, create /recalbox/share/roms/fbneo/.retroarch.cfg:
run_ahead_enabled = "false"
video_max_swapchain_images = "3"
For a single game, put the same content in a file named exactly after the rom: ddonpach.zip.retroarch.cfg.
RUN AHEADandREDUCED LATENCYonly apply to thesnes,megadrive,mastersystem,nes,gb,gbc,gamegearsystems and to thefbneocore anyway. On anything else, enabling them in the menus changes nothing.
On a CRT output — Recalbox RGB Dual or RGB JAMMA — the GAME RATIO option does not appear in the menus. That is expected: the output resolution already is the game's own, so the ratio is known and enforced. Nothing to set, and nothing to look for in the menus.
To reframe or shrink the picture, the right tool is RetroArch's CRT Calibration (HOTKEY + B → Quick Menu → CRT Calibration), which adjusts centring and width, and saves per game, per system or globally. See the RGB DUAL 2 manual.
Forcing a ratio breaks pixel perfect, whatever you do, and may introduce tearing. On a CRT the benefit is therefore very limited — the calibration above covers most needs. What follows is for those who know what they are giving up.
If you still want to force it, it goes through an override like any other RetroArch setting. In a .retroarch.cfg file next to the rom or in the system folder:
aspect_ratio_index = "23"
custom_viewport_width = "1280"
custom_viewport_height = "960"
custom_viewport_x = "0"
custom_viewport_y = "0"
aspect_ratio_index = "23" selects the custom format; the four custom_viewport_* keys then set the size and position of the picture, in pixels. The other indexes match the predefined formats — the full reference lists them.
The override is applied last, so it wins over whatever Recalbox computed for your screen. That is exactly what breaks pixel perfect: you replace a framing computed for your resolution with fixed values.