RetroArch on Pi 2 - All audio lags behind video in all cores

I compiled RetroArch myself on a Pi 2 running Arch Linux.

After lots of messing around, I got it to run at full speed, yet my audio lags about 250ms (guessing) behind the video. For example, in Super Mario Bros on the NES, the jump sound effect plays only after Mario lands on the ground.

I’ve enabled audio sync, which did nothing to help, and I’ve tried various settings to no avail.

Does anyone have any advice? I’m so frustrated with this, I’ve been trying to fix it for days. :frowning:

Here’s my config file:

config_save_on_exit = "true"
input_max_users = "5"
input_menu_toggle_gamepad_combo = "0"
input_axis_threshold = "0.500000"
ui_companion_start_on_boot = "true"
video_gpu_record = "false"
input_remap_binds_enable = "true"
back_as_menu_toggle_enable = "true"
netplay_client_swap_input = "true"
input_descriptor_label_show = "true"
autoconfig_descriptor_label_show = "true"
input_descriptor_hide_unbound = "false"
load_dummy_on_core_shutdown = "true"
builtin_mediaplayer_enable = "false"
builtin_imageviewer_enable = "true"
fps_show = "false"
ui_menubar_enable = "true"
suspend_screensaver_enable = "true"
libretro_directory = "~/.config/retroarch/cores"
libretro_info_path = "~/.config/retroarch/cores"
content_database_path = "~/.config/retroarch/database/rdb"
cheat_database_path = "~/.config/retroarch/cheats"
cursor_directory = "~/.config/retroarch/database/cursors"
rewind_enable = "false"
audio_latency = "64"
audio_sync = "true"
audio_block_frames = "0"
rewind_granularity = "1"
video_shader_enable = "false"
video_aspect_ratio = "-1.000000"
video_aspect_ratio_auto = "false"
video_windowed_fullscreen = "true"
video_scale = "3.000000"
autosave_interval = "0"
video_crop_overscan = "true"
video_scale_integer = "false"
video_smooth = "false"
video_threaded = "false"
video_shared_context = "false"
video_force_srgb_disable = "false"
video_fullscreen = "false"
bundle_assets_extract_enable = "false"
video_refresh_rate = "50.000000"
video_monitor_index = "0"
video_fullscreen_x = "0"
video_fullscreen_y = "0"
video_driver = "gl"
record_driver = "null"
camera_driver = "video4linux2"
location_driver = "null"
threaded_data_runloop_enable = "true"
dpi_override_enable = "true"
dpi_override_value = "200"
menu_driver = "rgui"
menu_pause_libretro = "true"
menu_mouse_enable = "false"
menu_pointer_enable = "false"
menu_timedate_enable = "true"
menu_core_enable = "true"
menu_dynamic_wallpaper_enable = "false"
menu_boxart_enable = "false"
video_vsync = "true"
video_hard_sync = "true"
video_hard_sync_frames = "3"
video_frame_delay = "0"
video_black_frame_insertion = "false"
video_disable_composition = "false"
pause_nonactive = "true"
video_swap_interval = "1"
video_gpu_screenshot = "true"
video_rotation = "0"
screenshot_directory = "~/.config/retroarch/screenshots"
aspect_ratio_index = "19"
core_updater_buildbot_assets_url = "http://buildbot.libretro.com/assets/"
core_updater_auto_extract_archive = "true"
camera_allow = "false"
cheevos_enable = "false"
cheevos_test_unofficial = "false"
audio_rate_control = "true"
audio_rate_control_delta = "0.000000"
audio_max_timing_skew = "0.000000"
audio_volume = "0.000000"
audio_driver = "alsathread"
audio_enable = "true"
audio_mute_enable = "false"
audio_out_rate = "48000"
location_allow = "false"
video_font_size = "32.000000"
video_font_enable = "true"
ups_pref = "false"
bps_pref = "false"
ips_pref = "false"
system_directory = "default"
input_remapping_directory = "~/.config/retroarch/remap"
audio_resampler = "sinc"
savefile_directory = "default"
savestate_directory = "default"
video_shader_dir = "~/.config/retroarch/shaders"
video_filter_dir = "default"
audio_filter_dir = "default"
core_assets_directory = "~/.config/retroarch/downloads"
assets_directory = "~/.config/retroarch/assets"
dynamic_wallpapers_directory = "default"
boxarts_directory = "default"
playlist_directory = "~/.config/retroarch/playlists"
rgui_browser_directory = "default"
rgui_config_directory = "default"
rgui_show_start_screen = "false"
menu_navigation_wraparound_horizontal_enable = "true"
menu_navigation_wraparound_vertical_enable = "true"
menu_navigation_browser_filter_supported_extensions_enable = "true"
menu_show_advanced_settings = "true"
menu_entry_normal_color = "ffffffff"
menu_entry_hover_color = "ff64ff64"
menu_title_color = "ff64ff64"
content_history_path = "~/.config/retroarch/content_history.lpl"
content_history_size = "100"
joypad_autoconfig_dir = "~/.config/retroarch/autoconf"
input_autodetect_enable = "true"
overlay_directory = "~/.config/retroarch/overlay"
input_overlay_enable = "true"
input_overlay_enable_autopreferred = "true"
input_overlay_hide_in_menu = "true"
input_overlay_opacity = "0.700000"
input_overlay_scale = "1.000000"
osk_overlay_directory = "~/.config/retroarch/overlay"
input_osk_overlay_enable = "true"
video_message_pos_x = "0.050000"
video_message_pos_y = "0.050000"
gamma_correction = "false"
soft_filter_enable = "false"
flicker_filter_enable = "false"
console_resolution_width = "0"
console_resolution_height = "0"
flicker_filter_index = "0"
soft_filter_index = "0"
current_resolution_id = "0"
custom_viewport_width = "1440"
custom_viewport_height = "1080"
custom_viewport_x = "240"
custom_viewport_y = "0"
video_font_size = "32.000000"
block_sram_overwrite = "false"
savestate_auto_index = "false"
savestate_auto_save = "false"
savestate_auto_load = "false"
history_list_enable = "true"
fastforward_ratio = "0.000000"
slowmotion_ratio = "3.000000"
sound_mode = "0"
state_slot = "0"
user_language = "0"
custom_bgm_enable = "false"
input_driver = "udev"
input_joypad_driver = "udev"

I fixed it! The emulators seem to all work perfectly now.

I solved the audio lag by uninstalling the packages: pulseaudio and pulseaudio-alsa

For whatever reason, pulseaudio was giving me lots of audio latency that I couldn’t fix, but uninstalling those made it perfect.

Hopefully this helps someone on google at some point! Getting RetroArch to run properly has been insanely frustrating!