libretro / libretro/parallel-n64

[Feature Request] Improvements to input latency and/or Runahead support

Open
#670 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
407
Forks
151
Avg merge
11h 53m
Merged PRs (30d)
11

Description

I am opening this more as a general discussion on latency with this core, since I don't know if and how an improvement might be viable.

This request comes from having played yesterday with an N64 on a CRT and noticing once again a substantial difference in latency and responsiveness between the real hardware and all the Mupen cores. I have yet to measure the difference, but there have been several reports on the matter already, both here and on the Libretro forums, and it would be great to shave off at least 1-2 frames compared to what we have right now.

These are a few links and references I could gather on the matter. People mention specifically that framebuffer emulation seems to increase latency quite a lot compared to when it's disabled, but then others pointed out that with framebuffer emulation active the latency is faithful to real hardware:

https://www.reddit.com/r/emulation/comments/7qh9hb/psa_reduce_input_lag_in_mupen64plus_retroarch/
https://forums.libretro.com/t/mupen-core-has-more-input-lag-than-parallel/14279

I'm wondering if something akin to the modification that Brunnis did to the SNES cores a few years ago could be applicable.

In addition to this, the ultimate icing on the cake would be to have Runahead support. Currently when enabling Runahead Parallel slows down to a crawl (probably because the savestates are too big to support that functionality?) while enabling Secondary Instance will trigger a message stating that Runahead could not be activated and was disabled automatically.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by measuring the reported input latency with framebuffer emulation enabled and disabled, then reproduce the Runahead failures for Parallel and Secondary Instance. Investigate the core's savestate behavior and compare the results with the linked latency reports. Done means a documented, tested reduction in latency and working Runahead support, but the issue names no files or tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
game-dev, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.