Retroarch: Request/3DS: Remain in Retroarch menu while a savestate is saved.

Created on 19 Aug 2017  路  13Comments  路  Source: libretro/RetroArch

A few revisions back, retroarch began to resume the game while savestates were created or overwritten.
Before, it would remain in menu until the saving process was completed.

At least for 3DS and I would suppose other, weaker hardware, this causes mild issues.

For one, writing a savestate takes longer while emulation is running.

While writing to memory, emulation slows down. In less resource heavy cores (with smaller state size) like picodrive, only by about 10 frames for about 2 seconds, but with occasional half-second freezes around the 95% mark. Sound gets a little scratchy.

With more resource heavy cores and larger savestates, like gpsp, framerate is half or less, for about 5 to 6 seconds, occasionally longer. Sound stutters and cracks.

If its not too much work, any option to prevent retroarch from going back to the game before writing is finished would be greatly appreciated.

All 13 comments

This should be an option for all platforms, I would prefer this even on my phone and pc.

Writing the save file should normaly be done on its own cpu, so since most devices even very cheap ones have 4 or more this wont happen.

The issue with the 3ds(old 3ds has 2 and 1 cant be used by applications, so retroarch only has 1 268mhz armv6 cpu) could be that there are not enough cpus available to run the game and write the save file at the same time.

Ah could be optional... but more options....
People already give us shit for having too many.

Speaking of 3DS port... never mind.

I find that if I Pause the game before making a save point it helps avoid this issue.

going into the pause menu really just alleviates the problem slightly. the system is still actively running a game and trying to save, slowing down both of these processes.

since a strong framedrop makes most games garbage to play, even if just for a few seconds, just remaining in the retroarch menu without advancing emulation makes the most sense. at least for the 3ds.

I added support for using the other CPUs on a 3DS awhile back but it is off by default right now.
Turn on "User Interface" -> "Show Advanced Settings"
Go back and reload "User Interface" tab.
Turn on "User Interface" -> "Threaded Tasks"

Ok, with that on, there don't seem to be any slowdowns and at most a very short skip of a frame.
At least on a N3DS.

OK so I can enable threaded tasks by default on a 3DS?

i mean, i can't vouche for o3ds compability, but it seems to work fine on n3ds on the games i tested. didn't do too much testing though, as the random crashing in gpsp started to get too much.

The o3ds still has 2 CPUs so it should still be faster, at worst it should be just as slow as before.

I read somewhere that you can run one thread in the OS designated CPU even on o3ds but cant verify if its true because I dont have one.

Does the threading apply only to the UI? Not the emulator interface?

The emulator can support it but most dont, if it doesnt the ui will still run on a separate thread.

@meepingsnesroms says this can be closed now.

Was this page helpful?
0 / 5 - 0 ratings