libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.3k stars 1.84k forks source link

Audio glitches on almost every core #15456

Closed TanyaEleventhGoddess closed 1 year ago

TanyaEleventhGoddess commented 1 year ago

Description

ROMs audio stutters horribly on most cores

Expected behavior

Sound clear at least as much as the correspondent emulator

Actual behavior

Audio glitches if not an outright cacophony, sometimes no audio at all. Audio sounds distorted, as if sampled with an incorrect sampling rate or something

Steps to reproduce the bug

  1. Use a regular audio daemon on Linux such as pulseaudio or pipewire
  2. Run retroarch
  3. Run a ROM with the following cores: bsnes, nestopia, mgba
  4. Enjoy

Bisect Results

Difficult to say, I remember retroarch version on buster (1.7.3) worked properly, I'm certain on bullseye (samve version) libretro-mgba had said problem, from bookworm (1.14.0) it happens on every core

Version/Commit

Environment information

Edit: Caused by run-ahead on some cores

RobLoach commented 1 year ago

You might want to check your audio sync settings. VSYNC can mess things up. https://forums.libretro.com/t/perfect-audio-video-synchronization/12072

Also check your frameskip settings and all the options under Latency. Pressing START on the menu items will reset them to their default.

TanyaEleventhGoddess commented 1 year ago

You might want to check your audio sync settings. VSYNC can mess things up. https://forums.libretro.com/t/perfect-audio-video-synchronization/12072

Also check your frameskip settings and all the options under Latency. Pressing START on the menu items will reset them to their default.

Gotta thank you for your advice, after disabling vsync the subsequent cores started working properly:

Still some cores seem to have audio issues and it seems to depend on performance requests:

Edit: for Snes9x seems to still happen occasionally on some games (No audio on pocky and rocky (USA) on first run, proper audio on core reboot)

gouchi commented 1 year ago

Hi,

Can you try to provide some log ? Did you try to make some test using another audio driver ?

Also you might try to update RetroArch using your own compiled latest stable version so that you can use latest updated cores from the online updater.

Thank you.

TanyaEleventhGoddess commented 1 year ago

Hi,

Can you try to provide some log ? Did you try to make some test using another audio driver ?

Also you might try to update RetroArch using your own compiled latest stable version so that you can use latest updated cores from the online updater.

Thank you.

Log generated just now while running Lamborghini American Challenge with bsnes_mercury_performance with no audio, I trimmed lines describing my CPU, GPU and screen resolution


[INFO] === Build =======================================
[INFO] Capabilities: MMX MMXEXT SSE SSE2 SSE3 SSE4 SSE4.2 AES AVX
[INFO] Built: Jan 13 2023
[INFO] Version: 1.14.0
[INFO] Git: b2ceb50
[INFO] =================================================
[INFO] [Input]: Found input driver: "x".
[INFO] [Environ]: SET_PIXEL_FORMAT: RGB565.
[INFO] [Core]: Version of libretro API: 1, Compiled against API: 1
[INFO] [Audio]: Set audio input rate to: 48000.00 Hz.
[INFO] [Video]: Set video size to: 960x720.
[ERROR] [Wayland]: Failed to connect to Wayland server.
[INFO] [GLX]: GLX_EXT_swap_control_tear supported.
[INFO] [GL]: Found GL context: "x".
[INFO] [GLX]: X = 0, Y = 0, W = 960, H = 720.
[INFO] [GLX]: Found swap function: glXSwapIntervalEXT.
[INFO] [GL]: Version: 4.6 (Compatibility Profile) Mesa 22.3.6.
[INFO] [GL]: Default shader backend found: glsl.
[INFO] [Shader driver]: Using GLSL shader backend.
[INFO] [GLSL]: Checking GLSL shader support ...
[WARN] [GL]: Stock GLSL shaders will be used.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] Setting up menu pipeline shaders for XMB ...
[INFO] [GLSL]: Compiling ribbon shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling simple ribbon shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling snow shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling modern snow shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling bokeh shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling snowflake shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GL]: Using 4 textures.
[INFO] [GL]: Loaded 1 program(s).
[INFO] [GL]: Using GL_RGB565 for texture uploads.
[INFO] [Joypad]: Found joypad driver: "udev".
[INFO] [DBus]: Suspended screensaver via DBus.
[INFO] [Video]: Found display server: "x11".
[INFO] [PulseAudio]: Requested 24576 bytes buffer, got 18432.
[INFO] [Display]: Found display driver: "gl".
[INFO] [Playlist]: Loading history file: "/home/user/.config/retroarch/content_history.lpl".
[INFO] [Playlist]: Loading history file: "/home/user/.config/retroarch/content_music_history.lpl".
[INFO] [Playlist]: Loading history file: "/home/user/.config/retroarch/content_video_history.lpl".
[INFO] [Playlist]: Loading history file: "/home/user/.config/retroarch/content_image_history.lpl".
[INFO] [Playlist]: Loading favorites file: "/home/user/.config/retroarch/content_favorites.lpl".
[INFO] [PulseAudio]: Pausing.
[INFO] [Environ]: SET_SUBSYSTEM_INFO.
[INFO] Subsystem ID: 0
Special game type: Super GameBoy
  Ident: sgb
  ID: 4356
  Content:
[INFO]     GameBoy (required)
[INFO]     Super GameBoy BIOS (required)
[INFO] Subsystem ID: 1
Special game type: Sufami Turbo
  Ident: sufami
  ID: 4355
  Content:
[INFO]     Sufami A (optional)
[INFO]     Sufami B (optional)
[INFO]     Sufami BIOS (required)
[INFO] Subsystem ID: 2
Special game type: BSX
  Ident: bsx
  ID: 4353
  Content:
[INFO]     BSX ROM (required)
[INFO]     BSX BIOS (required)
[INFO] Subsystem ID: 3
Special game type: BSX slotted
  Ident: bsxslot
  ID: 4354
  Content:
[INFO]     BSX ROM (required)
[INFO]     BSX BIOS (required)
[INFO] Subsystems: 4
[INFO] [Core]: Using content: "/home/user/Games/ROM/SNES/Lamborghini American Challenge/Lamborghini - American Challenge.sfc".
[INFO] [Core]: Content ran for a total of: 00 hours, 00 minutes, 00 seconds.
[INFO] [Core]: Unloading core..
[INFO] [Core]: Unloading core symbols..
[INFO] [XINERAMA]: Xinerama version: 1.1.
[INFO] [XINERAMA]: Xinerama screens: 1.
[INFO] [XINERAMA]: Saved monitor #0.
[INFO] [Video]: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.
[INFO] RetroArch 1.14.0 (Git b2ceb50)
[INFO] === Build =======================================
[INFO] Capabilities: MMX MMXEXT SSE SSE2 SSE3 SSE4 SSE4.2 AES AVX
[INFO] Built: Jan 13 2023
[INFO] Version: 1.14.0
[INFO] Git: b2ceb50
[INFO] =================================================
[INFO] [Input]: Found input driver: "x".
[INFO] [Core]: Loading dynamic libretro core from: "/usr/lib/x86_64-linux-gnu/libretro/bsnes_mercury_performance_libretro.so"
[INFO] [Environ]: SET_VARIABLES.
[INFO] [Environ]: GET_LOG_INTERFACE.
[INFO] [Environ]: SET_SUBSYSTEM_INFO.
[INFO] Special game type: Super GameBoy
  Ident: sgb
  ID: 4356
  Content:
[INFO]     GameBoy (required)
[INFO]     Super GameBoy BIOS (required)
[INFO] Special game type: Sufami Turbo
  Ident: sufami
  ID: 4355
  Content:
[INFO]     Sufami A (optional)
[INFO]     Sufami B (optional)
[INFO]     Sufami BIOS (required)
[INFO] Special game type: BSX
  Ident: bsx
  ID: 4353
  Content:
[INFO]     BSX ROM (required)
[INFO]     BSX BIOS (required)
[INFO] Special game type: BSX slotted
  Ident: bsxslot
  ID: 4354
  Content:
[INFO]     BSX ROM (required)
[INFO]     BSX BIOS (required)
[INFO] [Environ]: SET_CONTROLLER_INFO.
[INFO]    Controller port: 1
[INFO]       SNES Joypad (ID: 1)
[INFO]       SNES Mouse (ID: 2)
[INFO]    Controller port: 2
[INFO]       SNES Joypad (ID: 1)
[INFO]       SNES Mouse (ID: 2)
[INFO]       Multitap (ID: 257)
[INFO]       SuperScope (ID: 260)
[INFO]       Justifier (ID: 516)
[INFO]       Justifiers (ID: 772)
[INFO] [Overrides]: Redirecting save file to "/home/user/.config/retroarch/saves/Lamborghini - American Challenge.srm".
[INFO] [Overrides]: Redirecting save state to "/home/user/.config/retroarch/states/Lamborghini - American Challenge.state".
[INFO] [Environ]: GET_VARIABLE: bsnes_crop_overscan = "disabled"
[INFO] [Environ]: GET_VARIABLE: bsnes_gamma_ramp = "disabled"
[INFO] [Environ]: GET_VARIABLE: bsnes_region = "auto"
[INFO] [Environ]: GET_VARIABLE: bsnes_aspect_ratio = "auto"
[libretro DEBUG] superfx_freq_orig: 0
[libretro DEBUG] SuperFamicom::superfx.frequency: 0
[libretro DEBUG] Overscan mode: 0
[libretro DEBUG] Region mode: 0
[libretro DEBUG] Aspect ratio mode: 0
[INFO] [Content]: Loading content file: "/home/user/Games/ROM/SNES/Lamborghini American Challenge/Lamborghini - American Challenge.sfc".
[INFO] [Environ]: SET_INPUT_DESCRIPTORS:
[INFO]    RetroPad, Port 1, Button "B (bottom)" => "B"
[INFO]    RetroPad, Port 1, Button "Y (left)" => "Y"
[INFO]    RetroPad, Port 1, Button "Select" => "Select"
[INFO]    RetroPad, Port 1, Button "Start" => "Start"
[INFO]    RetroPad, Port 1, Button "D-Pad Up" => "D-Pad Up"
[INFO]    RetroPad, Port 1, Button "D-Pad Down" => "D-Pad Down"
[INFO]    RetroPad, Port 1, Button "D-Pad Left" => "D-Pad Left"
[INFO]    RetroPad, Port 1, Button "D-Pad Right" => "D-Pad Right"
[INFO]    RetroPad, Port 1, Button "A (right)" => "A"
[INFO]    RetroPad, Port 1, Button "X (up)" => "X"
[INFO]    RetroPad, Port 1, Button "L" => "L"
[INFO]    RetroPad, Port 1, Button "R" => "R"
[INFO]    RetroPad, Port 2, Button "B (bottom)" => "B"
[INFO]    RetroPad, Port 2, Button "Y (left)" => "Y"
[INFO]    RetroPad, Port 2, Button "Select" => "Select"
[INFO]    RetroPad, Port 2, Button "Start" => "Start"
[INFO]    RetroPad, Port 2, Button "D-Pad Up" => "D-Pad Up"
[INFO]    RetroPad, Port 2, Button "D-Pad Down" => "D-Pad Down"
[INFO]    RetroPad, Port 2, Button "D-Pad Left" => "D-Pad Left"
[INFO]    RetroPad, Port 2, Button "D-Pad Right" => "D-Pad Right"
[INFO]    RetroPad, Port 2, Button "A (right)" => "A"
[INFO]    RetroPad, Port 2, Button "X (up)" => "X"
[INFO]    RetroPad, Port 2, Button "L" => "L"
[INFO]    RetroPad, Port 2, Button "R" => "R"
[INFO]    RetroPad, Port 3, Button "B (bottom)" => "B"
[INFO]    RetroPad, Port 3, Button "Y (left)" => "Y"
[INFO]    RetroPad, Port 3, Button "Select" => "Select"
[INFO]    RetroPad, Port 3, Button "Start" => "Start"
[INFO]    RetroPad, Port 3, Button "D-Pad Up" => "D-Pad Up"
[INFO]    RetroPad, Port 3, Button "D-Pad Down" => "D-Pad Down"
[INFO]    RetroPad, Port 3, Button "D-Pad Left" => "D-Pad Left"
[INFO]    RetroPad, Port 3, Button "D-Pad Right" => "D-Pad Right"
[INFO]    RetroPad, Port 3, Button "A (right)" => "A"
[INFO]    RetroPad, Port 3, Button "X (up)" => "X"
[INFO]    RetroPad, Port 3, Button "L" => "L"
[INFO]    RetroPad, Port 3, Button "R" => "R"
[INFO]    RetroPad, Port 4, Button "B (bottom)" => "B"
[INFO]    RetroPad, Port 4, Button "Y (left)" => "Y"
[INFO]    RetroPad, Port 4, Button "Select" => "Select"
[INFO]    RetroPad, Port 4, Button "Start" => "Start"
[INFO]    RetroPad, Port 4, Button "D-Pad Up" => "D-Pad Up"
[INFO]    RetroPad, Port 4, Button "D-Pad Down" => "D-Pad Down"
[INFO]    RetroPad, Port 4, Button "D-Pad Left" => "D-Pad Left"
[INFO]    RetroPad, Port 4, Button "D-Pad Right" => "D-Pad Right"
[INFO]    RetroPad, Port 4, Button "A (right)" => "A"
[INFO]    RetroPad, Port 4, Button "X (up)" => "X"
[INFO]    RetroPad, Port 4, Button "L" => "L"
[INFO]    RetroPad, Port 4, Button "R" => "R"
[INFO]    RetroPad, Port 5, Button "B (bottom)" => "B"
[INFO]    RetroPad, Port 5, Button "Y (left)" => "Y"
[INFO]    RetroPad, Port 5, Button "Select" => "Select"
[INFO]    RetroPad, Port 5, Button "Start" => "Start"
[INFO]    RetroPad, Port 5, Button "D-Pad Up" => "D-Pad Up"
[INFO]    RetroPad, Port 5, Button "D-Pad Down" => "D-Pad Down"
[INFO]    RetroPad, Port 5, Button "D-Pad Left" => "D-Pad Left"
[INFO]    RetroPad, Port 5, Button "D-Pad Right" => "D-Pad Right"
[INFO]    RetroPad, Port 5, Button "A (right)" => "A"
[INFO]    RetroPad, Port 5, Button "X (up)" => "X"
[INFO]    RetroPad, Port 5, Button "L" => "L"
[INFO]    RetroPad, Port 5, Button "R" => "R"
[libretro INFO] BML map:
[libretro INFO] cartridge region=PAL
[libretro INFO]   rom name=program.rom size=0x80000
[libretro INFO]   map id=rom address=00-7f,80-ff:8000-ffff mask=0x8000
[libretro INFO] [Memory]: ID 7, Request "manifest.bml".
[libretro INFO] Complete load request.
[libretro INFO] [Memory]: ID 8, Request "program.rom".
[libretro INFO] Load ROM.
[libretro INFO] Complete load request.
[libretro INFO] [Memory]: ID 6, Request "".
[libretro INFO] Complete load request.
[INFO] [Environ]: SET_MEMORY_MAPS.
[INFO]            ndx flags  ptr              offset   start    select   disconn  len      addrspace
[INFO]            001 M1A1bC (nil) 00000000 00802188 00C0FFE8 00000000 01000000 
[INFO]            002 M1A1bC (nil) 00000000 00002188 00C0FFE8 00000000 01000000 
[INFO]            003 M1A1bC (nil) 00000000 00802100 00C0FFC0 00000000 01000000 
[INFO]            004 M1A1bC (nil) 00000000 00002100 00C0FFC0 00000000 01000000 
[INFO]            005 M1A1bc 0x7ff55bf598dc 00000000 007E0000 00FE0000 00000000 00020000 
[INFO]            006 M1A1bc 0x7ff55bf598dc 00000000 00800000 00C0E000 003F0000 00002000 
[INFO]            007 M1A1bc 0x7ff55bf598dc 00000000 00000000 00C0E000 003F0000 00002000 
[INFO]            008 M1A1bC (nil) 00000000 00804300 00C0FF80 00000000 01000000 
[INFO]            009 M1A1bC (nil) 00000000 00004300 00C0FF80 00000000 01000000 
[INFO]            010 M1A1bC (nil) 00000000 00804200 00C0FFE0 00000000 01000000 
[INFO]            011 M1A1bC (nil) 00000000 00004200 00C0FFE0 00000000 01000000 
[INFO]            012 M1A1bC (nil) 00000000 00804016 00C0FFFE 00000000 01000000 
[INFO]            013 M1A1bC (nil) 00000000 00004016 00C0FFFE 00000000 01000000 
[INFO]            014 M1A1bC 0x55ca45dfdb70 00000000 00808000 00808000 00708000 00080000 
[INFO]            015 M1A1bC 0x55ca45dfdb70 00000000 00008000 00808000 00708000 00080000 
[INFO]            016 M1A1bC (nil) 00000000 00000000 00000000 00000000 01000000 
[libretro INFO] SRAM memory size: 0.
[INFO] [SRAM]: Skipping SRAM load..
[INFO] [Core]: Version of libretro API: 1, Compiled against API: 1
[libretro DEBUG] Base height: 224
[libretro DEBUG] Base width: 256
[libretro DEBUG] Aspect ratio: 1.584216
[libretro DEBUG] FPS: 50.006979
[INFO] [Environ]: SET_PIXEL_FORMAT: XRGB8888.
[INFO] [Audio]: Set audio input rate to: 32040.50 Hz.
[INFO] [Video]: Timings deviate too much. Will not adjust. (Display = 59.00 Hz, Game = 50.01 Hz)
[INFO] [Video]: Set video size to: 768x672.
[ERROR] [Wayland]: Failed to connect to Wayland server.
[INFO] [GLX]: GLX_EXT_swap_control_tear supported.
[INFO] [GL]: Found GL context: "x".
[INFO] [GLX]: X = 0, Y = 0, W = 768, H = 672.
[INFO] [GLX]: Found swap function: glXSwapIntervalEXT.
[INFO] [GL]: Version: 4.6 (Compatibility Profile) Mesa 22.3.6.
[INFO] [GL]: Using resolution 768x672.
[INFO] [GL]: Default shader backend found: glsl.
[INFO] [Shader driver]: Using GLSL shader backend.
[INFO] [GLSL]: Checking GLSL shader support ...
[WARN] [GL]: Stock GLSL shaders will be used.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] Setting up menu pipeline shaders for XMB ...
[INFO] [GLSL]: Compiling ribbon shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling simple ribbon shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling snow shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling modern snow shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling bokeh shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling snowflake shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GL]: Using 4 textures.
[INFO] [GL]: Loaded 1 program(s).
[INFO] [Joypad]: Found joypad driver: "udev".
[INFO] [DBus]: Suspended screensaver via DBus.
[INFO] [Video]: Found display server: "x11".
[INFO] [PulseAudio]: Requested 24576 bytes buffer, got 18432.
[INFO] [Display]: Found display driver: "gl".
[INFO] [Environ]: SET_SUBSYSTEM_INFO.
[INFO] Subsystem ID: 0
Special game type: Super GameBoy
  Ident: sgb
  ID: 4356
  Content:
[INFO]     GameBoy (required)
[INFO]     Super GameBoy BIOS (required)
[INFO] Subsystem ID: 1
Special game type: Sufami Turbo
  Ident: sufami
  ID: 4355
  Content:
[INFO]     Sufami A (optional)
[INFO]     Sufami B (optional)
[INFO]     Sufami BIOS (required)
[INFO] Subsystem ID: 2
Special game type: BSX
  Ident: bsx
  ID: 4353
  Content:
[INFO]     BSX ROM (required)
[INFO]     BSX BIOS (required)
[INFO] Subsystem ID: 3
Special game type: BSX slotted
  Ident: bsxslot
  ID: 4354
  Content:
[INFO]     BSX ROM (required)
[INFO]     BSX BIOS (required)
[INFO] Subsystems: 4
[INFO] [Playlist]: Loading history file: "/home/user/.config/retroarch/content_history.lpl".
[INFO] [Playlist]: Loading history file: "/home/user/.config/retroarch/content_music_history.lpl".
[INFO] [Playlist]: Loading history file: "/home/user/.config/retroarch/content_video_history.lpl".
[INFO] [Playlist]: Loading history file: "/home/user/.config/retroarch/content_image_history.lpl".
[INFO] [Playlist]: Loading favorites file: "/home/user/.config/retroarch/content_favorites.lpl".
[INFO] [Playlist]: Written to playlist file: "/home/user/.config/retroarch/content_history.lpl".
[INFO] [Config]: Saved new config on "/home/user/.config/retroarch/retroarch.cfg".
[libretro INFO] SRAM memory size: 0.
[INFO] [Core]: Content ran for a total of: 00 hours, 00 minutes, 21 seconds.
[INFO] [Runtime]: Saving runtime log file: "/home/user/.config/retroarch/playlists/logs/bsnes-mercury Performance/Lamborghini - American Challenge.lrtl".
[INFO] [Core]: Unloading game..
[INFO] [PulseAudio]: Pausing.
[INFO] [Core]: Unloading core..
[INFO] [Core]: Unloading core symbols..
[INFO] [Core]: Saved core options file to "/home/user/.config/retroarch/config/bsnes-mercury/bsnes-mercury.opt".
[INFO] [XINERAMA]: Xinerama version: 1.1.
[INFO] [XINERAMA]: Xinerama screens: 1.
[INFO] [XINERAMA]: Saved monitor #0.
[INFO] [Video]: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.```
gouchi commented 1 year ago

I trimmed lines describing my CPU, GPU and screen resolution

Why did you remove them ? It can be useful information for troubleshooting.

Also, you should provide some log with audio enabled.

Thank you.

RobLoach commented 1 year ago

Try either the GLCore or Vulkan drivers?

TanyaEleventhGoddess commented 1 year ago

I trimmed lines describing my CPU, GPU and screen resolution

Why did you remove them ? It can be useful information for troubleshooting.

Also, you should provide some log with audio enabled.

Thank you.

Privacy. It's old hardware though

Try either the GLCore or Vulkan drivers?

I don't know how to activate Vulkan, either way I found out it wasn't the issue

Seems the issue is run-ahead (latency reduction), after resetting the configuration I found out removing it made all cores work properly and without any issue, thus audio wasn't distorted anymore. Disabling vsync also helped.

What's weird about run-ahead is that it's effect on cores remains after disabling it and rebooting retroarch 1-2 times, at the third attempt everything seems fine

RobLoach commented 1 year ago

Privacy. It's old hardware though

Noone is going to fault you for running RetroArch on a potato. If anything, you'll get praise :wink:

Looks like we have the performance hit highlighted in the docs, so I believe we can close this.

https://docs.libretro.com/guides/runahead/

The higher the number of frames you are going to run ahead of emulation, the higher demands it places on your CPU.