These seem to fix a lot of the issues, such as slowdown and low frame-rate in these games. It’d be neat if emulators could eventually replicate this. Zsnes plays SFX games at twice the speed by accident due to poor SFX emulation. I don’t know if that’s been fixed yet.
Even zSNES did not play Stunt Race FX and Star Fox at such smooth framerates as seen in those videos.
I’d love to be able to play those games at such fluid framerates, but unfortunately I think it would take quite the speed hit for emulating a SuperFX overclocked at 48/50Mhz.
How big a hit are we talking here? I mean, I’m sure low power devices, netbooks, and other assorted toasters would probably chug, but what about more capable PCs?
This seriously looks damn cool, and I’ve been wishing for something like this to be possible for a while. IIRC some N64 and Dreamcast emulators have an overclock function, so I thought, why isn’t there one for SNES for improving framerate on games like Star Fox?
On an related note, I’d also love an overclock function for PS1, but that seems like a very distant dream, not to mention you never know if overclocking will speed up the framerate or the entire game. For instance, overclocking the Gameboy makes everything run super fast.
The games look playable now. I rather like the graphic style of these 3D SFX games. I’d be neat if, after overclocking became a feature in snes emulators, that people began to develop their own games.
Stunt Race FX at that framerate begins to come close to resembling a non-Gouraud shaded version of Motor Toon Grandpix on PS1 - except run in a tiny window and drastically less geometry.
It’s still amazing how I could be playing those games back then and be none the wiser as to just how awful the framerate was of those games - for Star Fox 1 it was easily 8fps most of the time with 10/11fps being max.
Ok, just compiled the core and tested it. It’s actually a bit of a mixed bag. I tried Star Fox, and man, the game runs FAST. The framerate is great, and the inputs are so much more responsive. And the music runs on pitch, so it’s not sped up or anything. The problem? It does appear the game itself isn’t just playing at a faster framerate, but is rather playing faster overall, so sometimes the music lags behind. An example is the intro where the Star Wings are exiting out of the base. The cutscene ends before the EMERGENCY EMERGENCY chatter and the alarm ends. Sound effects are all on cue, though, so those are not a problem.
Overall, it’s a pretty cool enhancement, but it might actually make the game a bit harder because of how goddamn fast it is now.
Any way to get this from the regular Snes9x or bsnes as well? I’d like to at least test and see if it works at full speed using a decent rig.
Actually, the framerate is faster - that is also why the music can’t run for its full duration during cutscenes - in the case of the intro where the Wings are exiting out of the base, it’s a timed cutscene - I suppose they timed the ‘audio track’ and the cut scene in general to be exactly in tune with the slow speed of the original game - so overclocking it would obviously not make it possible for you to hear anything after ‘Emergency Emergency’ because the framerate is so much faster that the scene is already done by the time you hear ‘Emergency Emergency’ in the audio track.
Or change the 40.5e6 to 60.5e6 (but since you’re already thinking it’s far too fast - might be best not to make it even faster - although it gets rid of some of the remaining dips in the framerate).
Funnily enough, this hack also exposed the shoddy nature of SNES9x’s SuperFX emulation code -
if you try Stunt Race FX (USA NTSC) with the regular SNES9x Git (or SNES9x Next), go to the course selection screen and view the DIalog screen. It will be flickering like mad which is not how it’s supposed to be.
This doesn’t happen with the PAL version.
Now try out this ‘patch’ and you’ll notice the dialog screen will no longer flicker. There is also something similar in Doom where less pixel garbage is displayed onscreen when changing 10.5e6 to 40.5e6. I talked about this with OV2 but unfortunately nobody understands the C SuperFX code in SNES9x and byuu’s bSNES SuperFX emulation code seems unlikely to be ported to SNES9x due to the lack of cothreading in SNES9x and other issues -
<Squarepusher> might as well gut this SFX code then and replace it with bsnes’
<Squarepusher> Doom is a similar mess
<Squarepusher> at least here is an actual case of where accuracy needs to be improved
jedivulcan has quit (Quit: Gone.)
<OV2> it’s not that easy, you’d need a basic understanding of how the superfx works, understand how it’s implemented in bsnes and then transfer it over to s9x
<Squarepusher> I’d take it byuu could do that righT?
<OV2> he’d have to understand the s9x code parts first
<OV2> and then it’d have to be adjusted since we obviously don’t have cothreading
<Squarepusher> yeah - there’s that
<Squarepusher> who did the SFX code parts?
<Squarepusher> anomie?
<OV2> no
<OV2> the asm core was from zsnes
<OV2> the c core from some other guys
<OV2> but I don’t know if that was a conversion or completely different
<Squarepusher> I knew the ASM core was from zSNES at least - or zsKnight in particular
<Squarepusher> but I dunno about the C one
<Squarepusher> I thought it was just a direct port of the ASM code
<Squarepusher> line by line
<OV2> three people are credited in the header
This is now a runtime option in SNES9x Next. You can select between various SuperFX overclock levels (Disabled, 40MHz, 60MHz, 80MHz and 100MHz).
You can change this option ingame in RetroArch by using either the built-in RGUI ingame menu (on PC, Android, Blackberry, iOS, Wii) or RMenu (PS3, Xbox 1, Xbox 360).
RGUI will be one of the prominent new features in RetroArch 0.9.9.
Sweet! Any chance this GUI option also gets implemented on vanilla Snes9x? I have a compiled core running at 60MHz, but it’d be great to be able to configure it in-game like with Snes9x-Next.
Haha it actually freezes at 60 mhz on other routes. However 57 mhz it’s stable through the entire game. I accomplished this by reprogramming the game rom a little. I made it so the superfx chip enable certain hardware modes that allow the game to overclock faster.
Reprogrammed the game itself to run properly at faster speeds.