-
Notifications
You must be signed in to change notification settings - Fork 372
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SNES Performance Issue: Slow Emulation #1916
Comments
Could you be more specific about the 2 setups ? Afaik it's supposed to run full speed on a 10+ years old desktop computer. |
The snes emulator is super accurate, but it runs fine on my p4 3ghz and i7, both are ancient garbage computers (no kidding, the I7 was collected from the garbage......) The only advice I can give:
best regards,
|
I’ve tried them out of curiosity, and Super Mario World (USA), (EUR), and (JAP) work perfectly. However, for some reason, the hacks Super Mario World SA-1 Pack (Hack, v1.40) and Super Mario World - 30th Anniversary Edition (Hack) do show slowdowns. I have a powerful computer, so I don’t think that’s the issue. |
Hi Neildark, edit: try turning Run Ahead off? If that don't help, please post your fbneo.ini file and I'll try to see what's wrong. best regards,
|
Isn't SA-1 supposed to be 10.74mhz ? |
@barbudreadmon, Oops, you're right - I was thinking about CX4 for some reason |
I wanted to add more details about the issue. On my side, I'm starting the emulation using the command line (to skip Rom scaning 😭): I've noticed that running the game this way seems to result in more frame drops compared to a normal run through opening the EXE. Here are my settings:
With this performance drop sometimes to 40 FPS For comparison, other systems like NeoGeo, Midway, or CPS3 perform much better. This suggests that SNES emulation has performance issues, especially when using more demanding filters. Considering how FBNeo RetroArch Core might run on devices like Android through RetroArch, this could become a bigger problem. I think adopting SNES9X tile caching solution (https://github.com/snes9xgit/snes9x/blob/master/tile.cpp), could significantly improve performance by avoiding the need to decode tiles repeatedly. Regards, |
Hi, The snes emulator doesn't have performance issues, it was designed to be highly accurate, and by that means, it's going to be a bit heavy on cpu. Hell, when I first started working on it, it used 99% of an i7/2600-era core on Demon's Crest, now it's down to half that :) For the softfx filter, use Double Pixels (3d hardware), any softfx is going to steal cpu from the emulator Also, to help me better understand what I'm dealing with: please go to Help -> System Information, and paste everything up to and including the "Input Settings" block. best regards,
|
Sorry for the delay. Yes, I just tried both games by deactivating runhead and now they are perfect. Say that I use 4xbr, maximum resolution, maximum graphic options, and now there is no type of slowdown either on the big screen or on Windows. Congratulations and sorry for the inconvenience. |
The most demanding softfx filter is the crt 4x4 1080. Even with run ahead off, there is delay and distorted sound. While 720 mode runs fine even with runahead. Same for the other softfx filters. |
That's not a problem and never will, FBNeo is written first and foremost for desktop computers. It'd be extremely delusional to expect every game we support running full speed on every devices that can install retroarch, which include ultra-low-end devices. There are plenty of other snes emulators for users that can't run highly accurate snes emulation, and there are also snes emulators with higher requirements than ours. As for implementing caching mecanisms, why not if there are no drawbacks ? But you should first start by answering the questions you have been asked. |
It runs correctly without runahead and filters, especially with the misc option you mentioned. However, SNES seems to have the lowest performance among the drives in FBNeo, currently running at ~250 FPS max when I run the emulator at maximum speed to see the FPS limit, compared to NeoGeo (~1200 FPS max, if I remember correctly, similar to SNES9X). I think SNES has by far the lowest FPS delta when compared to NeoGeo as a reference, especially considering SNES is supposed to be a lower-spec machine than NeoGeo. Implementing optimizations like tile caching and monitoring performance across drives could help bring SNES closer to the performance of other drives. NeoGeo and other drives (besides SNES and MIDWAY) in FBNeo are so optimized that they run smoothly on a Raspberry Pi (and without a doubt could run on my smart toaster 😂). Establishing a minimum acceptable delta (NeoGeo as FPS max reference) through benchmarking ensures that all drives maintain consistent performance, regardless of the hardware, preserving FBNeo's historical reputation for delivering minimalist high-quality emulation 🚀. Here my infos report: `FinalBurn Neo v1.0.0.03 system information (Mon Nov 25 11:04:49 2024). System information: OS: Microsoft Windows 10 Professional (build 19045) Physical RAM: 16351,13 MB (15,97 GB) total, 8708,51 MB (8,50 GB) avail Installed displays and display adapters: FinalBurn Neo information: Built on Nov 11 2024, 02:11:33, using GCC 14.2.0. MMX optimisations disabled. Not emulating any game. Video settings: Audio settings: Input settings: Profiling settings: Detailed process information about fbneo64.exe: fbneo64.exe (base address 0x00007FF637690000, size 219148 KB) Modules loaded by fbneo64.exe: ----------------------------------------------------------------------` |
That's irrelevant as far as emulation is concerned, you should try playing the arcade version of pong, or hundreds of pre-16bits systems tbh. On a sidenote, i tested runahead in bsnes (which is about 40% slower than us) and noticed it doesn't affect performance much, i'm wondering what's the trick behind it. |
I can at least recommend something here: Regarding Audio: try XAudio2, it also gives better performance Game: Super Mario World best regards,
|
I am not sure whether they use the same api, but there is a big difference between Windows and Linux regarding Ares run-ahead performance |
Hi , I want to thank you for your amazing work on this project, it's truly impressive! I'm reaching out to share some feedback and report an issue that might already be on your radar.
I'm experiencing performance issues with SNES emulation. Here's what I noticed:
I checked SNES9X code and noticed it might be buffering tiles for reuse instead of recalculating them. Could this be why the current version is using so much CPU?
Thanks for looking into this!
The text was updated successfully, but these errors were encountered: