libretro/mupen64plus-libretro-nx

Earthworm Jim 3D demo/intro runs too fast (all RSPs/RDPs)

Opened this issue · 8 comments

This was reported to me some time back by a Windows user, but I unfortunately forgot about it until just now. I verified the issue on x86_64 Linux. Earthworm Jim 3D runs notably faster than it should, to an unplayable degree by default, on all RSPs and RDPs. Changing CountPerOp to 5 -almost- brings it down to the correct speed, but still doesn't quite get there.

While this video doesn't explicitly say it's real hardware, timings seem to match other videos that do, and this video shows part of the title sequence. Time the wall section movements for an easy example:
https://youtu.be/rrjSfPUi2VA?t=35

The intro/demo sequence runs too fast on any known emulator in existence. Same with Goldeneye and Quake 2 gameplay demos. Along with a few other games. Its a long standing issue with N64 emulation in general.

I hope some day it will get fixed but i wouldn't hold my breath.

Ah. Is it just the intro then, not the rest? I may not have tested far enough. The user who reported it to me claimed it was gameplay as well. I'll have to verify later.

The main game doesn't run at fast forward speed like the intro demo does, it would be unplayable like Knife Edge, which is the only game im aware of that runs at fast forward. But there could be some more subtle timing/speed issues in game.

I'll still try to make some time later to verify, but I'll take your word for it for the time being. Thanks for the heads up. Title has been updated.

Yeah, there are some elements that run too fast other than the demo. Snot (the green blob character) seems to bounce up and down too fast. Some cutscenes (like Jim entering a new area from a door) are also fast. But otherwise it feels normal to me for the few minutes i tested but feel free to test and compare with original hardware since it's been years i played it on my N64.

nfp0 commented

Since this is such an old standing issue in N64 emulation that affects multiple games, is there no interest in solving it?
Or is it an unknown hardware perk that stops us from finding a solution?

It's a timing issue. A bunch of games have similar timing issues like this and they run their demos at the wrong speed. Goldeneye and Quake 2 for instance. A lot of other games run at the wrong speed or frame rate. It's a general N64 core issue that affects all emulators.

However, currently there is some work being done to fix this. Ares has a completely new N64 core (that isn't based on Mupen or PJ64) that aims for accuracy. It solves many of these timing issues but the compatibility is around 70-80%. There's also Simple64 (the renamed m64p emulator) where it's author tries to fix some of these timing issues as well.

I don't expect any of these fixes to find their way to Mupen64puls-next. Or any other current emulator. But i hope Ares gets a RetroArch core someday because it's N64 core will be the near future replacement of all N64 emulators.

nfp0 commented

@Tasosgemah Thank you for the sit rep!
I was getting worried N64 emulator development might be stagnating, but learning about Ares and Simple64 gives me hope.
I really hope they get libretro cores soon.