Mame (current) 0.250 core partial run ahead?

HI, I read on the blog post about last core update that mame current 0.250 comes with partial support of the marvelous feature of run ahead. So exited to test on android shield tv because I use to play with mame2003 plus for that. Unfortunaly, the run ahead doesn t seem to be available on the option on few games I test . Is this feature is really available or still in progress ? Thanks for your clarification Regards.

I believe you would need to edit the core info file to allow it. You would need to change its savestate_features to “deterministic” to enable the feature.

On Android, I think the info files are in a root-owned location, but you can go to settings > directory and change it to a user-writeable location, then go to the online updater and ‘update core info’ to populate the new location. Once there, you can edit the files with a text editor.

Hi thanks. my shield is rooted so no problem to edit the info core file. unfortunaly, the savestate_features is ever write as “deterministic”. so any idea ? thanks again

sorry, they are 2 mame core info file: and

the has the savestate feature as “null” so i change it to deterministic but unfortunaly the run ahead option stay unavailable ans savestate don’t work too.

hmm, setting it to deterministic should be the only thing required to unlock access to the options. Whether they actually work or not depends on the individual drivers within mame, though. That is, they may work with, say, neogeo, but may not work with, say, cv1k.

ok thanks, I will test more games with different drivers to see if one has the option available. merry chrismas

The option should be available as long as the info file shows ‘deterministic’, regardless of the individual drivers’ capabilities. RetroArch doesn’t have any way for the core to communicate whether an individual driver is compatible or not.

that said, if the option still isn’t showing, you may need to look for an info.cache file in your core info directory and delete it.

ok I will see that. could you please confirm me witch info files between and is relative to the current mame core 0.250 , thanks

it’s whichever one has the same name as the core library. In this case, it’s mame_libretro

1 Like

so I delete the info.cache and you know what. it works !! thank you so much for your support. I hope it would work without problrm because I read this post:

that inform us it could be some problems. so I will see. thank you so much and merry chrismas

1 Like

Hi, So I made some test about run ahead using the mame “current” core on android shield tv. It works without the 2nd instance activated. But some games become laggy so with activating the 2nd instance, all games are smooth again. unfortunaly, with the 2nde instance option activated, some games don’t boot and crash retoarch (unless I disable it). So is it a limitation of the run ahead feature or is there some tweaks to prevent crash from the 2nd instance option actived on mame ? thanks regards

That has more to do with the core not liking the state to move around while it’s initializing. I think there may be a way to delay runahead from starting for a few frames to compensate for this. I’m not sure, though. I’ll look into it.

1 Like

thanks, yes it seems the the crash occurs during initializing. it would be amazing if you could delay the run ahead feature during first launch. hope you could do this, it would be marvelous to play arcade games without latency with this 2nde instance activated. thanks again regards

Hi huntrek, I don’t know if you find the time to see the problem of run ahead during inizializing but I encounter an new strange problem: NEO GEO games don’t launch at all. When I have run ahead feature activated, I have a Z80 ERROR whitch appears with a freeze. If I disable run ahead, the neo geo games just crash. I use a perfect set 0.251 mame with 0 missing set (corrected with clrmamepro). the same Neo geo games and works like a charm on pc version of retroach but crash on android shield tv with the same roms. I have ever clear the core option lines file and delete my previous mame cfg file but no luck. all others roms games launch correctly. Could you confirm me that you are able to launch neo geo games on shield without problem ? I would like to post a log but I can’t manage on android to produce it. could you indicate me how can I do it with an application for exemple (I have ever read the log post for android) ? thanks for your time and help regards

This is a placebo effect, the thing with the current implementation of 2-instances runahead is that there is no rollback happening as long as you don’t press inputs, unlike single instance that always has the rollback happening. As soon as you press inputs (which you are supposed to do while playing), both methods perform the same.

hi, I understand but I m very sensitive about scrolling and slowdown and even If I don’ knows anything about run ahead behaviour, I can swear that activated the 2nd instance on black tiger for exemple make disappear the several slowdown during gameplay and music on shield tv android. (I made test on the same first stage with both settings) nevertheless, I love your work made on FBNEO witch works nicely with run ahead activated even with 4 frames on certain neo geo games to give a perfect timing. thanks.

About neo geo crashes, I backup my retroarch.cfg file and delete it to start on a new config. So the neo geo games works. I need to compare with notepad++ (compare plugin) the 2 retroarch.cfg to see what setting make neogeo crashes. The weird things is that other non neogeo games works. I need to investigate more. thanks. hope huntrek would have a look about run ahead feature on mame. regards

I just gave it a try in MAME and you are right: 2-instances outperforms single instance even when you press buttons. I suppose there is something else at work here since it’s not a normal runahead behavior.

FBNeo is twice faster on this game, with no noticeable difference between single instance and 2-instances.

The reason why runahead support is so good in FBNeo is that we have been optimizing it for years, nowaday single instance runahead is even available in standalone FBNeo. The MAMEdevs on the contrary have been extremely hostile towards that feature, so don’t expect too many improvements about this in the future.


Ok thanks for the clarification. maybe Hunterk have a look to delay the 2nd instance at boot rom as he seems to says before on earlier post in order to launch games without crash. Hope it could be possible thanks regards

Delaying runahead is impossible with the current libretro api, and i’m not convinced it would be a good idea to implement a workaround over another workaround, since 2-instance’s purpose is already to be a workaround for cores that don’t properly support single instance.

My 2 cents about the real problem happening here : savestate size is increasing after nvram finish initializing, retroarch hates that and especially second instance runahead. If the core’s logic doesn’t handle this properly, it will cause buffer overflow (potentially corrupting data) and crashes.

1 Like

Ok thanks for the explanation. I was so happy when I read that mame support run ahead. What a pity it couldn t work at 100%. I have to deal without 2 instance. Thanks again