Best workaround for brief pauses when using PSX core?[POSSIBLY SOLVED]

After much experimentation, I finally settled on the mednafen_psx_hw core, as it was the only one that 1) used hardware acceleration, 2) successfully overclocked the CPU (ePSXe provides this option but it does nothing, at least for me), and 3) didn’t crash outright (PCSX did, notwithstanding my considerable troubleshooting). It also seems to have the best arsenal of improvement tweaks, so that works out.

Unfortunately, it also has a sort of dealbreaking flaw that I am hoping can be worked around. Evidently whenever any sort of asset is first accessed by the emulation, everything is put on hold while the necessary data is accessed. You probably already know what I’m talking about, but I’ll elaborate by way of example. Booting up a game with BIOS unskipped, the Playstation logo first appears with an orange diamond taking up much of the middle of the screen. The initial appearance of this diamond causes a micro-pause lasting maybe 100ms, during which everything freezes, including audio. Another micro-pause occurs soon after when “Sony Computer Entertainment” appears, followed immediately by a temporary freeze lasting about 5 full seconds (which doesn’t cut the audio in this case, for some reason). Later, during the game itself (RayStorm), there is an intro sequence featuring a space battle, during which there are about a half dozen moments when something new (a new kind of laser, or Earth in the background, etc.) has to be referenced for the first time, and there are pauses in the game each time this happens, lasting about 100ms each, except for the big attack at the end, which freezes the game for almost half a second.

Playing a game under these conditions is unthinkable.

I need to get the usual “did you do x?” out of the way. Yes, the BIOS file is crc/sha/etc. checked to be accurate. Yes, this and other games play without this particular hitch in other emulators such as ePSXe. Yes, I tried seeing if the cdimagecache would make any difference. (It didn’t have an effect, not that I thought it would, since even the PS1 intro logo suffers from this problem and that has nothing at all to do with a CD image.)

It would be a crying shame if I had to retreat to ePSXe after discovering how great this core can make 3d games look. Really the only other thing it’s missing that I can think of would be a way to customize the internal resolution, since nobody is using a display with exactly 2x or 4x the PS1’s internal resolution.

Edit: This problem seems to have vanished after I grabbed a nightly build (2017-07-19).

what system are you using?

in my case i had almost the same problems on linux but found that using a single core get rid of almost all of these stutterig, on windows it plays perfectly fine.

beetle psx hw requires a more powerful cpu that other emulators, on windows I can play almost all games up to 4x internal resolution and nearest filtering without hiccups, if any other filtering metod is enabled i get stuttering on audio and video depending on the game scene then reducing the internal resolution to 2x improves performance but it look more "ugly

my pcu is a phenom x2 555 3.2Ghz and gpu gtx 550ti, i dont have any problems using epsxe to max settings (without pgxp), same for pcsxr.

On a note the psx logo using the beetle psx hw always stutter while using opengl, since my gpu is old cant test vulkan.

what system are you using?

Mednafen_psx_hw_libretro. It’s the one that lets me define 32bpp dithering and can enable that texture tweak that prevents the classic PS1 vertex inaccuracies. It’s actually these two things, offered exclusively by this core, which are the reason why I don’t just jump right back to ePSXe and stick with it, since the latter emu can after all do everything else without issue.

in my case i had almost the same problems on linux but found that using a single core get rid of almost all of these stutterig, on windows it plays perfectly fine.

Any tips on how to force it to use just one core? Definitely willing to give anything a try.

beetle psx hw requires a more powerful cpu that other emulators, on windows I can play almost all games up to 4x internal resolution and nearest filtering without hiccups

While it’s true that reducing what I demand of mednafen_psx_hw does seems to reduce the problem, it doesn’t go away, even if I run the emu raw with no tweaks. The problem also occurs in mednafen_psx (non-hw), again regardless of whether or not I’ve upped the CPU demand. At certain points in any game, the whole game just jolts to a brief stop. It’s the cutout of the audio that makes this really jarring and dealbreaking.

On a note the psx logo using the beetle psx hw always stutter while using opengl, since my gpu is old cant test vulkan.

It seems to default to Vulcan and it seems I can use it. Not sure if that’ll still be the case when I migrate everything to an old laptop. We’ll see.

Is the refresh rate properly set in retroarch? an incorrect value can cause stuttering during gameplay, other cores works well? are only the beetle psx core afected?

Edit on linux to run retroarch in one core run “taskset 0x00000001 retroarch”

Is the refresh rate properly set in retroarch? an incorrect value can cause stuttering during gameplay

I need to re-stress that this stuttering is not random, nor is it regular; it is conspicuously tied to events during gameplay which entail the first appearance of new visual assets or effects, which makes it sort of easy to intuit the cause of the stutter. That said, the kind of stuttering you seem to be referring to – a regular stutter caused by refresh rate sync issues – does not manifest in any of the many RetroArch cores I use, including mednafen_psx_hw, which, apart from the 100% predictable asset-loading hiccups I’ve described, gives me a rock solid 60fps.

other cores works well? are only the beetle psx core afected?

Mednafen_psx and mednafen_psx_hw are the ones which have this issue. I suppose whatever is responsible for engendering the phenomenon is present in both cores. PCSX, I’m afraid, I have not been able to get to work, though that’s a bit moot since the second best solution right after mednafen_psx_hw would be ePSXe itself.

I wanted to provide an update on this issue.

On a whim, I grabbed the nightly 64-bit build (2019-07-19) and tried it out. I was prompted by my recognition that other CD-loading cores (TurboGrafx CD, Sega Saturn) were having the same hiccuping issues.

Whatever the cause was, it seems it was addressed at some point between the 1.6.0 build I was using and the nightly build I freshly downloaded. Haven’t done thorough testing but I think you can consider this case closed.

Apologies for bumping because I had no idea where to throw this thread on the fly but I’m running into the exact same issue, and can’t find a build where this is fixed. I’m having an effect issue with every game I play. Final Fantasy, Metal Gear, Resident Evil, Tekken, Wipeout. As soon as a new artifact or effect come into play, the game hangs without audio for a few seconds then gets back to it. It is incredibly annoying and I’m not using anything different to the default Beetle HW & retroarch settings. It’s not a stuttering or a staggering performance wise, it’s just taking too long for the system to recognise an effect or artifact and hangs for a few seconds. Absolutely no idea to fix it. Anyone ran into a similar problem?

edit: It’s quite hard to test for also due to it being fine next time around until another artifact/effect triggers it so It’s not as easy to play around with the settings.

Have you tried setting the cd access method to “precache”?

Yep. Made absolutely no difference unfortunately.

Does it happen with the non-HW core, as well? It’s possible your shader compiler is just super-slow. If you have your OS’ resource monitor window open while playing, does anything spike when it happens?

When this happens on emu, I turn some settings down or either use 720p desktop with a high rez internal emu graphics setting. If I turn the rez down, it allows me more shader usage without the stutter. So basically some settings are too high for the machine that youre on.