Deathsmiles on lr-mame2015 : Any performance tips?
-
@Darksavior think I found it.
Enable Cheats in libretro Options, then restart. <--yes, this will enable Overclock CPU in MAME Tab Menu Slider ControlsTip: To update the overclock value more rapidly, hold Ctrl while moving left or right.
(and what shader are you using? those scanlines look perfect)
-
@roslof Thanks, that did it. Underclocking seems to help a bit. I'll do more testing later.
I use the crt-pi shader, then I modify it by setting both curvature settings to zero and increasing mask brightness to 1.00, the max. -
I've been following along with this thread, and underclocking the CPU in MAME definitely helps a lot for several games (though Ibara in particular still has some pretty bad slowdown/audio stuttering). Question though: Is there any way to get MAME to save the CPU underclock setting? Seems like every time I start a game I have to re-set the CPU clock again.
-
@SeraphisCain I'm guessing Overclock CPU settings cannot be saved:
https://www.reddit.com/r/MAME/comments/4i0cjp/can_you_save_overclock_cheat_settings/I know the thread I linked is old, but I haven't been able to find anything to the contrairy.
It kind of blows my mind a little. Things like "Beam Width" for vector games can't be saved either. :|
-
Can anyone suggest an optimal/recommended underclock seeing for these games, or will it depends on the game?
A question: what is the underclock actually meant to do? Will it make things slower than they were in the real cab?
Thanks.
-
@SeraphisCain I find Ibara a problem, and Pink Sweets even worse. I'm going to go and play with my settings and see if I can get DeathSmiles better, and maybe Muchi Muchi Pork!
-
@roslof Let us know it you find any overclock settings which really work for you. :)
-
@AdamBeGood This might help:
I tried DoDonPachi Dai-Fukkatsu 1.5 and... it seemed to indeed be better at 37%? Is this just a tremendous placebo effect? Can someone confirm or tell me how could I confirm this empirically - what to expect, FPS to stay closer to 60fps most times, or is it really just a "feeling" thing?
-
@roslof @AdamBeGood @Darksavior @SeraphisCain
Ok, since I'm a sucker for pain and whatnot, I tried to implement/hack away the overclock setting as a core option. I don't even imagine what else this may break, but from my limited testing it seems to work.
I'd appreciate your testing - I may end up submitting it upstream, though I have little hopes of it being approved as I am fairly sure that someone who actually knows the MAME and libretro code architecture would have much better ways of accomplishing it - not to mention that they may also find that this is not something they'd want as a core option.
https://mega.nz/file/FAM3Xa5L#m572GTiMsLOt8cJrjZj0Ay1r1Ds-huEMlox_Z8gMg9g
Very much open to feedback - I tested it briefly on Deathsmiles and DoDonPachi Dai-Fukkatsu and at least the value shown on the slider seems to change accordingly (if you have that menu open, though, you'll need to close it and open again for it to refresh).
If you can test and see if it effectively works as intended, I'd appreciate it. Also, if anyone actually knows the ins and outs of libretro architectures, feel free to say how I should have actually done this right from the get go.
Just extract it to your own
/opt/retropie/libretrocores/lr-mame2016
folder, or create a new system (probably a good idea).If it crashes, just run in verbose and send it my way, but it shouldn't. I just don't know if the default clock for everything is 100%, but from reading the code, it seems to be. That's also what I'm using as a default, but I'm afraid whether it might break games with non-100% default timings, if they exist.
-
@pjft brilliant!
I'll devote some time with this today.Per the post I listed above, I understand that it's possible to set this and have the game fail to boot, but I'd know how to fix this if that happens, I think this is a great option to have.
-
@roslof Cool. Just to be clear, as this is a core option, do make sure to create per-game save files before changing it, otherwise any other game you boot with this core will share that same (changed) overclock.
-
@pjft understood.
Minor (a non-issue for me): If you mess with the MAME slider option, it will visually lock to whatever value is set. But the slider at the bottom of the screen always matches the core setting. I think this is fine... Impressive that this actually works!Will continue to verify the core value sticks and that performance is affected, but overall, looking great!
-
@roslof Ah, what you're saying is that MAME slider option changes will not reflect in the core options, is that it? Or can you elaborate?
Thanks.
-
@pjft sure:
STEPS:
- Boot game
- Change core setting
- TAB/Check slider value for CPU (changes correctly)
- Adjust slider value until CPU value changes
- Return to core setting (it won't match the slider value)
- Change core setting to a new value
- TAB/Check slider value for CPU (will not match core; remains visually unchanged)
- Observe the actual MAME slider bar at the bottom of the screen. (it WILL match core)
So I believe this is just a visual issue with the TAB/Slider menu not updating if you manually override in MAME. Minor. Would only likely cause confusion to people tuning both Options and TAB/Slider settings simultaneously, which I believe would be low-to-zero folks. #8 above (the bar at the bottom) always seems to be in-sync. So yay!
-
@roslof Yeah, I'm not going to worry about that one. Especially as this specific slider/option is hidden by default - only shows up if you actually enable the cheats - but, if the core option is available, it should make the need to go to that menu redundant.
Also, because I don't want to be hacking away (even further) a sync between MAME-options and libretro-options. :)
-
@pjft This is great, thank you! I'll test it out later today and let you know if I have any issues.
-
@pjft said in [Deathsmiles on lr-mame2015 :
Also, because I don't want to be hacking away (even further) a sync between MAME-options and libretro-options. :)
I could only imagine!
I tested your 2016 build extensively (>4hrs now). Very solid. Absolutely no notable issues, and only added benefit. Now I have to keep this version of MAME locked down so I don't override it with a newer MAME-2016. ;-)
Worth a shot creating a PR upstream. Your change could also [captain-obviously] benefit lr-mame2015 and lr-mame (currently at 0.220).
If I have time, will play around with DoDonPachi Dai-Ou-Jou Tamashii and DoDonPachi III on lr-mame (MAME 0.220) and see if there are similar benefits.
-
@pjft Maybe a stupid question, but how do you create a new system? I am so disorganized that I am unsure which games I have running on lr-mame2016 and not sure I want this setting on all of them.
It's cool that you managed to work out how to see the slider via the config, clever stuff.
-
@roslof isn't 3 pretty much Daioujou?
I might be making things up, but I don't see why those wouldn't work 100% speed in lr-mame. As far as I understand it, it's just that the ROM dumps are recent, but the system itself is even emulated at 100% on FBNeo on the Pi3, if I recall correctly.
Have you tried them already, and are they slow? Let me know.
@AdamBeGood it is hacky, but the short version is to add a second line to the emulators.cfg file that points to the location where you place this binary. I have mine in the same path but on a separate lr-mame2016-pjft folder. On my phone, so apologies if I'm not more thorough here at the moment.
-
It sounds like you already have lr-mame2016 installed, so you shouldn't need a new system. Just launch the ROM and tap a joystick button to enter the runcommand menu. Don't change the default emulator. Use option #2 (Select emulator for ROM) and choose lr-mame2016. So that way, all ROMs you didn't specify will use the default emulator, but only the ROM(s) you choose can use an alternative emulator like lr-mame2016.
To add PJFT's file
Not sure if you completed this series of steps. Again, assuming you have lr-mame2016 installed, you may choose to make a backup of the original binary.sudo cp /opt/retropie/libretrocores/lr-mame2016/mamearcade2016_libretro.so /opt/retropie/libretrocores/lr-mame2016/mamearcade2016_libretro.so.bak
then extract @pjft 's file mamearcade2016_libretro.so into that directory.
You'll then need to set its permission to execute:sudo chmod +x /opt/retropie/libretrocores/lr-mame2016/mamearcade2016_libretro.so
Hope some or all of this helps.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.