Joined: 6/13/2022
Posts: 3
Hey everyone, hoping to find some help here. I've scoured the internet and found little to help with this problem. I recently downloaded Bizhawk 2.8 so I could play Ocarina of Time randomizer, but I found that my movement was not at all as responsive as I was used to. I turned on the "Display Lag Counter" option (which I assume is the latency) and it showed 82ms. I've run this many times in the past without a problem, so I know it isn't "just me" or something I need to get used to, but I have completely wiped/reset my computer since then. Troubleshooting info
  • I have input lag while playing on Bizhawk 2.8, Bizhawk 2.3.1 (copy-pasted from former laptop), Project 64, and Modloader64
  • I don't understand all that well how "cores" relate to Bizhawk, but I believe the N64 emulator is actually Mupen64plus running through Bizhawk?
  • I have input lag while playing Ocarina of Time and Super Mario 64 (I haven't tried any other games) *I DO NOT have input lag while playing emulators for other consoles. I tried Super Mario Sunshine on Dolphin and it was very responsive
  • I'm using a DualShock 4 controller. I have tried this connecting directly via bluetooth and using DS4Windows
  • Laptop info: Acer Predator Helios 300 Gaming Laptop, Intel i7-10750H, NVIDIA GeForce RTX 2060 6GB, 15.6" Full HD 144Hz 3ms IPS Display, 16GB Dual-Channel DDR4, 512GB NVMe SSD, Wi-Fi 6, RGB Keyboard, PH315-53-72XD
  • I'm running the emulator from a partitioned internal SSD (D: drive), but I had the same problem after trying to copy to C: and run from there
Any help in resolving this would be incredibly appreciated!
Emulator Coder, Judge, Experienced player (609)
Joined: 2/26/2020
Posts: 698
Location: California
"Lag counter" refers to the emulated game lagging (generally it's when it doesn't poll input, although by default Mupen is set so it's for "VI Lag", or more simply GPU lag). It's simply a counter for the amount of emulated frames that had so far been lag frames (so it's not "82 ms", it's "82 frames out of all the frames emulated so far were lag frames"). The N64 is a tricky one for input lag, as the games actually often do have a lot of input lag in them in reality (due to games often doing double or even maybe triple buffering for the graphics, causing 2-3 frames of input lag right there)... although inaccurate emulation can mask this off and not do this buffering and thus decrease lag. The default graphics plugin (GLideN64) does have this buffering anyways. There's also just games might just lag anyways, which would cause further input lag. Some less accurate graphics plugins might have "less" input lag (I imagine what you remember was some old version of hawk where GLideN64 wasn't the default plugin), but of course you'll probably get more graphic issues with those anyways so /shrug
Bigbass
He/Him
Moderator
Joined: 2/2/2021
Posts: 156
Location: Midwest
Some things to note first.. Project64 should absolutely not be used a reference to what the n64 should be doing. It has horrible accuracy. Mupen64 and any other derivatives like m64p, shouldn't be trusted for accuracy either, especially timing-related accuracy. Both PJ64 and mupen employ game-specific hacks and patches to attempt to run them (a real console doesn't do this). Also, keep in mind that the rate that a game runs on an emulator, can be different than how fast the emulator runs on your computer.
The definition of lag on the n64 doesn't really match other systems. And how that lag affects inputs can differ depending on how the game is programmed, in addition to any timing inaccuracies. All official n64 games, except Namco Museum, use a part of the system called the RDP to generate each new frame of graphics, which gets saved to the system's shared memory (to one or more "framebuffers"). Separately, another part of the system called the Video Interface (VI), is (usually) periodically reading from the current framebuffer and outputting video data (e.g. to a TV screen). To my knowledge most, if not all, games will use a double or triple buffer design. So the framebuffer that the VI is currently reading from, is swapped to the next, once the next image has been generated and saved. This usually happens after the VI reaches a certain (programmable) scanline, causing a "VI Interrupt". If the game logic, and/or the RDP takes too much time to generate the next frame, the framebuffer is not swapped, and thus the VI will re-output the same video frame. Where do inputs come in.... This is where it gets tricky. Most games appear to poll controllers during the VI interrupt, regardless whether the framebuffer was swapped or not. So which poll does the game actually use? That's hard to tell without investigating the game logic. By contrast, a few games such as Super Mario 64, will instead poll for input based on its own game loop, which is why despite timing inaccuracies, it's very easy to console verify TASes for such games. Any timing differences between emulator and console don't really matter in regards to inputs; as long as the game logic still works the same.
The input lag you're experiencing could just be from inaccurate emulation, or the game itself simply is very laggy in regards to its game loop. My suggestion would be to try the Ares emulator. Ares still has timing problems, overall it is much closer to how hardware behaves than the other emulators (cores) you've tried. Don't think the rando stuff is compatible, but at least you can use it to compare. If you still experience the same input lag, then I'd suspect it's just the game itself that's to blame. Or perhaps, something is still missing from all the emulators (which wouldn't surprise me).
TAS Verifications | Mastodon | Github | Discord: @bigbass
Joined: 6/13/2022
Posts: 3
Hey, just getting the chance to check in now. There's a ton of info here, and I can't say it all makes sense to me, but I appreciate it nonetheless haha. I gave the Ares emulator a try, and while I felt that the video quality was a noticeably worse than the others and the frame rate was slower than I seemed right, it did at least seem responsive. Does this mean, then, that the issue lies with the emulators I've been using? Are there options available to me where I'd be able to fix them? Naturally I'd like to have the clean image and no input lag. Side note, I loathe P64 and tried it only out of desperation/necessity to compare 😄
Joined: 6/13/2022
Posts: 3
We can close this. The poor responsiveness was due to the analog not picking up angles others than 8 directions, so platforming felt unresponsive because I couldn't fine tune my movement. Collective facepalm. Thanks again for the help!