Um recurso que foi adicionado há pouco tempo no Retroarch e que, pra mim, deu um passo gigante na evolução da latência nos emuladores foi o Run Ahead. Tem um vídeo simples mostrando como configurar isso para cada jogo (acho que só vale a pena se realmente for jogar, pois é importante usar o valor correto para cada jogo).
Como mostrado no vídeo, para configurar é facílimo. Basta rodar um jogo, clicar a tecla "P" do teclado para pausar o jogo, depois segurar o botão de pulo (ou qualquer outra ação imediata) e depois ir clicando a tecla "K" do teclado até perceber uma mudança de frame do sprite que corresponde a ação que escolheu. Se você teclou 3 vezes o K até que a mudança de frame tenha começado, significa que o jogo tem um atraso de 3 frames entre o seu apertar de botão e a ação na tela. Nesse caso, vc deve configurar o run ahead para pular 2 frames (sempre conta um a menos), pois são dois frames antes da ação começar a acontecer. Por exemplo, no Super Mario World, eu testei com botão de pulo e realmente a ação aconteceu depois de clicar 3x no "K". Já o MegamanX e o DKC a ação aconteceu após clicar 2x no "K", sinal de que o run ahead desses deve ser configurado para 1 apenas.
Não são todos os núcleos que pode usar essa feature. Em alguns fica desabilitado. Eu testei no SNES9X. Além disso, é sempre bom desabilitar depois que jogar determinado jogo, pois outros núcleos podem apresentar problema no som caso esteja habilitado. Daí o ideal é usar em config apenas para determinado núcleo em vez de habilitar de forma global. E claro, se o jogo for um RPG, não precisa dessa opção. É uma feature para jogos que exigem um tempo de resposta quase imediato, como em jogos de luta e alguns de ação. Se você estiver travado em determinado jogo que exige reação rápida, vale a pena habilitar essa opção e ver se o jogo se torna mais responsivo, caso contrário, é você que é ruim mesmo, hehehe!