[Solved] Retroarch`s performance

One thing I always loved about Retroarch and its cores is that, among lots of nice things, it used to be as fast as standalone emulators, I`m, not comparing Retroarch or its cores to other emulators, but I need to mention some things to make my experience clearer.

In short, since Retroarch 1.5 and the updated cores ever since, Ive notice huge performance loss, specially in my Android device, what it means technically I dont know, I`m not too technical, but in practice, almost all systems I used to run in this device now struggles to keep up consistent 60 FPS, strangely, hitting a fast forward key, makes some cores like SNES 9x and PicoDrive or Even FBA to go over 150 FPS and suddenly drop below to 50 (keeping the fast forward key pressed), I also noticed that in-game, something makes the CPU dances around the high and low clocks for no apparent reason.

The latest Mupen64 build I use for Nintendo 64, for example, can handle games like DOOM 64 flawlessly, and I can fast it forward as I please, without the huge drops Retroarch has been causing lately, while the Mupen core for Retroarch may be totally different compared to the standalone APK, I cant even think about using Retroarch to emulate N64, and I dont know why the difference is so distant. I also tested Reicast (standalone), DraStic (standalone DS emulator for Android) and Android specific games, specially heavy GPU games, while I cant compare the latter, its just to make sure that the unstable CPU handling is not buried somewhere in my Android OS, in the end of the tests I can assure that the CPU doesn’t drop in any of the mentioned standalone emulators or Android games, all them run flawlessly, with solid 60 FPS and no sound cracks.

PCSX Rearmed literally flies in Retroarch, probably because it’s an ARM-specific emulator, I don’t know, but it’s so much smoother than genesis plus gx or snes 9x, that it just confuses me, PCSX rearmed won’t drop under 60 fps, but I also noticed that in fast forward it, the FPS oscillation tells me that the same thing that drops the performance in other systems I emulate in Retroarch is there as well.

I remember Hunterk, I believe, told us once that Android is a bad system for emulation in general. I believe he’s right, but, if I use standalone emulators for all the systems I mentioned, I won’t have any of the performance loss I’m having in Retroarch, so it’s definitely something to be looked at to figure out why it’s happening.

I would like to know why Retroarch or its cores are demanding so much CPU now? I’m specially talking about 8, 16 bit consoles and retro arcade games.

In Windows, I really tried to keep up with Mednafen Saturn and Reicast, waited for lots of updated builds of these cores to see if I could continue my older saves in Retroarch, but I had to drop them, I’m happy again with SSF and NullDC, I can continue playing without any frame drops all games I was playing before, while the new cores are really promising, they can’t compare with these yet. I mean, SSF can run in any old dual core notebook while Mednafen requires an i5 and even so it can’t compare with SSF on an overall basis, there are also tests in i7 CPUs, if put side by side SSF using a dual core CPU and mednafen using an i7, SSF still makes mednafen eat dust. I’m not comparing, and not even saying it has to do with Retroarch (in the Saturn comparison), just talking about emulation. Reicast is smooth as butter on the other hand, but lacks in stability and compatibility if compared to the likes of NullDC.

I really love Retroarch and am always following all updates you guys work on, I also watch 4:3 movies, cartoons using Retroarch, because it’s just amazing how easy it is to use for overall emulation and as a media player.

Personally I’d prefer focus on better performance it had in the past than spending time on specific little game cores which I have no interest in.

Thanks

Dunno what to tell you for the Android stuff. I use RetroArch on Android almost daily and have none of the issues you describe. Maybe your ROM does something weird with native apps that it doesn’t do to Java apps /shrug.

But there’s not much we can do with that report. I/we don’t have any performance changes between 1.5 and 1.6 on our devices, so someone who does would have to pinpoint when it started happening and then we could try to track down the cause.

For the Saturn/DC cores, sure, go ahead and use standalones. We’re doing our own thing but you do you.

Personally I’d prefer focus on better performance it had in the past than spending time on specific little game cores which I have no interest in.

This is a problematic statement for a few reasons: 1.) you haven’t established that there is a performance issue for anyone but yourself 2.) we would like for RetroArch to be used for more than just emulators; porting game engines is a step toward that 3.) this is a hobbyist project built on volunteer labor; we work on what we want when we want.

2 Likes

you said on first paragraph that this is not a retroarch+cores vs other emu comparison, but you do mention a lot of standalones there. have you even tried to at least isolate whats causing the slowdowns?

I remember there’s a thread where it is discussed, to focus on cores that already exists or to add new ones. I will repeat myself there, should make more sense. It may have sounded like a demand, it’s just a suggestion.

Thanks for all the effort you guys put into it, while it’s a hobbyist project, so is the likes of Kodi, the latter is the pinnacle of a media center, Retroarch started few years ago and it’s the emulation center of millions, including myself.

I’m an user, stating my experience.

Yeah I said I needed to mention them while I didn’t want to compare, since it’s not my point, I need to state my experience and test standalone ones and compare with Retroarch cores so the post will make more sense.

I can’t tell technically since I’m not a programmer or something, but in my Android device, using Retroarch for emulation had better days.

SSF is closed-source, Mednafen Saturn is just slow in general. Standalone is slow, so is the libretro core. Nothing we can do about that so far.

I think if anything, RetroArch has gotten faster inbetween v1.5.0 and v1.6.0, not the opposite. It might just be the case that what you are running into is some kind of driver configuration that is less than ideal for RetroArch. I know on nvidia there is always something in the control panel you need to toggle to make RetroArch run well with nvidia. It really sucks you have to do that and it’s not our fault either, it’s usually driver-side optimizations that just don’t agree well with certain programs.

EDIT: Read that you’re on Android. In any case, if you say RetroArch has gotten worse in terms of performance inbetween 1.5.0 and 1.6.0, I’d like to see some basic comparisons done at least to rule out if this is down to RA or not. Other factors that could be playing a role in this would be the Android OS upgrade, or video driver updates, etc.

While of course many would say I say this from a biased perspective, in my experience RetroArch with most cores always manages to outperform the standalone core, in most instances at least. Performance is one of our watch words and I don’t think we make many sacrifices there at all if any over the years.

@Twinaphex, thanks for the input. Yeah I know SSF is closed source and it’s for Windows only, my original post is probably a little confusing regarding what OS I was talking about. And the mednafen part should be applied to the standalone version too, it was just a side note that I dropped Saturn and Dreamcast for a while in Windows.

I’m up for the Android testing, I’m going to test older versions of Retroarch and possibly the cores as well. I want to nail this problem since it played smoothly in older versions, it’s probably something in my end.

Is there some kind of test that you suggest to easily identify this? From what I can tell, it seems the CPU seems to be changing drastically its speed down an up using Retroarch, I don’t see this happening in any other application, game or emulator outside RA. Even if I set the battery profile to Performance (I have Battery Save, Standard and Performance), the latter doesn’t seem to fix this in Retroarch.

I have made a few tests with an app called Kernel Adiutor, tweaking the CPU and GPU performance and created two profiles, one called Battery Saver, the other Performance, testing all cores that had hiccups as mentioned in my first post with Performance profile ON, all games and cores performed smooth just like it was performing in past versions. I also ran some tests in native Android games and emulators, I haven’t noticed improvements with the Performance profile, but in Retroarch it totally nailed the performance issue.

Conclusion, my Android OS wasn’t managing correctly the CPU demand for better performance, for some reason, and it was solved using Kernel Adiutor. I can’t be more technical, but the OS profiles weren’t working as it should, both saving, standard and performance profiles didn’t seem to make any difference until I use a third party software to do so. I removed the shortcuts for the OS performance profiles and I’m now using the mentioned app profiles I created, they are working like a charm now.

Thanks for all the help, sorry for any inconvenience and I hope it helps more people that are facing or may face similar issues like this one.

1 Like

That’s great! I’m glad you got it working well again :slight_smile:

1 Like

Yeah, I’m happy again Hunter, everything is smooth like it always was, thanks!

I just remembered a weird issue I had in Windows, it had some hiccups, mostly in games in general, I noticed the CPU was being used by a ghost process, it’s hard to believe, but it was a bad HDMI cable, replacing by a new one, the problem was solved, but it took me some time to figure out what was happening.