bsnes and Mesen-S add newly developed SNES overclocking method

icon.png

bsnes had already made news back in April with its well-received HD Mode 7 mod, however, it looks like a new retrogame enhancement feature will soon be added to its arsenal. Overclocking is now available in the emulator's nightly builds and, while it's true that other emulators have included it a long time ago, this implementation is severely different from the others in many ways.

Byuu, the developer behind bsnes, has explained the feature accurately in a Reddit post. Unlike before, where fixed overclocking could introduce sound/framerate issues or crashes in some games, this new method's goal is to counter slowdowns without any audiovisual compromises while also keeping compatibility as high as possible. The inspiration came from a technique already used in NES emulators, where more scanlines would be inserted in the CPU thread while pausing video and audio in the meantime; and everything described so far can also be used with the SA-1 and SuperFX coprocessors (others don't need it as they're implemented via HLE). The end result can be seen in the videos below, and it really speaks for itself (also, while not showcased in the videos, this method is also compatible with HD Mode 7!)



However, byuu warns users to keep overclocking settings to reasonable levels, otherwise, it can have an adverse effect on resource usage (if set too high, you will likely end up wasting CPU cycles between frames for no reason). As such, mitigations or limits for popular games are reportedly being experimented with at the moment.

As previously mentioned, the feature is available in bsnes' nightly builds and will be officially added in the next stable release. The same implementation has also been picked up by a different, relatively new SNES emulator, Mesen-S. There's a high chance it will also be ported over to the respective Retroarch/libretro cores sometime in the future.

:download: Download
:arrow: Source (bsnes \ Mesen-S)
 

Jayro

MediCat USB Dev
Developer
Joined
Jul 23, 2012
Messages
12,884
Trophies
4
Location
WA State
Website
ko-fi.com
XP
16,777
Country
United States
In theory eliminating loading times is much simpler, if the emulator knows when the ROM is "loading", they can just max out emulation speed at that time(+ frameskip), then drop back to standard speed once the load is done. A more extreme example of the Switch's boost mode more or less. I doubt Capcom bothered with anything as complex as these new techniques, when its easy enough to just flag the loading times in a handful of games.
Doom and Out of this World have load times on the SNES. Quite long too.
 

RupeeClock

Colors 3D Snivy!
Member
Joined
May 15, 2008
Messages
6,495
Trophies
1
Age
34
Website
Visit site
XP
2,928
Country
Seeing emulators provide options to emulate an overclocked system to eliminate slowdown that would've occurred on real hardware is always a treat. Dolphin Emulator has had it for a long while (also including the option to underclock), but that implementation seems more straight forward than what's here in BSNES and Mesen-S. All since changing the CPU timing of real hardware would not reduce in performance changes, but actually changing the timing entirely.

I gave the nightly build a try and it seems like my machine isn't quite powerful enough to get a solid 60 FPS when using overclocked CPU or SA1 processors, but I did notice something curious when testing it out with the opening intro for Kirby Superstar.

rys7ZiM.png
RrP2LFo.png

Pictured left is 100% CPU speed, pictured right is 200% CPU speed.
The changed CPU timing seemed to cause a bug where the mode-7 grassy fields became detached from the background layer, resulting in a blue line separating them.
The improved SNES emulated CPU timing also meant that the music was no longer in-sync with the intro. The music is timed so that the last beat is in sync with the Kirby graphic appearing on the title screen logo. At 100% speed, this is on time, but at 200%, Kirby would appear before the music finished. This is interesting because it shows that HAL Laboratory were compensating for the slowdown on hardware when sequencing the intro.
Some older emulators with performance issues, usually caused by SA1, are also notorious for getting the opening intro timing wrong and having Kirby appear after the music finished playing. It's a good benchmark for checking emulator performance.

Aside from the overclocking feature, I also briefly tried the HD Mode 7 hack, and this seemed to break the panning of the grass field in the intro, at one point turning solid dark green when it couldn't draw properly.

Of course hacks by nature aren't hardware accurate, and there's a degree of guesswork for achieving the desired results when the games were never originally programmed for such effects or enhancements. It shows that the hacks still need work, but they're exciting nonetheless.
 

the_randomizer

The Temp's official fox whisperer
Member
Joined
Apr 29, 2011
Messages
31,284
Trophies
2
Age
38
Location
Dr. Wahwee's castle
XP
18,967
Country
United States
Seeing emulators provide options to emulate an overclocked system to eliminate slowdown that would've occurred on real hardware is always a treat. Dolphin Emulator has had it for a long while (also including the option to underclock), but that implementation seems more straight forward than what's here in BSNES and Mesen-S. All since changing the CPU timing of real hardware would not reduce in performance changes, but actually changing the timing entirely.

I gave the nightly build a try and it seems like my machine isn't quite powerful enough to get a solid 60 FPS when using overclocked CPU or SA1 processors, but I did notice something curious when testing it out with the opening intro for Kirby Superstar.

rys7ZiM.png
RrP2LFo.png

Pictured left is 100% CPU speed, pictured right is 200% CPU speed.
The changed CPU timing seemed to cause a bug where the mode-7 grassy fields became detached from the background layer, resulting in a blue line separating them.
The improved SNES emulated CPU timing also meant that the music was no longer in-sync with the intro. The music is timed so that the last beat is in sync with the Kirby graphic appearing on the title screen logo. At 100% speed, this is on time, but at 200%, Kirby would appear before the music finished. This is interesting because it shows that HAL Laboratory were compensating for the slowdown on hardware when sequencing the intro.
Some older emulators with performance issues, usually caused by SA1, are also notorious for getting the opening intro timing wrong and having Kirby appear after the music finished playing. It's a good benchmark for checking emulator performance.

Aside from the overclocking feature, I also briefly tried the HD Mode 7 hack, and this seemed to break the panning of the grass field in the intro, at one point turning solid dark green when it couldn't draw properly.

Of course hacks by nature aren't hardware accurate, and there's a degree of guesswork for achieving the desired results when the games were never originally programmed for such effects or enhancements. It shows that the hacks still need work, but they're exciting nonetheless.

You'd think with the extra CPU power in the SA-1, slowdown wouldn't have been an issue for the intro.
 

RupeeClock

Colors 3D Snivy!
Member
Joined
May 15, 2008
Messages
6,495
Trophies
1
Age
34
Website
Visit site
XP
2,928
Country
You'd think with the extra CPU power in the SA-1, slowdown wouldn't have been an issue for the intro.
Well the overclocked primary CPU or SA-1 coprocessor would eliminate the slowdown on the system, but the device emulating this system needs sufficient processing power to emulate that system at fullspeed.
 

the_randomizer

The Temp's official fox whisperer
Member
Joined
Apr 29, 2011
Messages
31,284
Trophies
2
Age
38
Location
Dr. Wahwee's castle
XP
18,967
Country
United States
Well the overclocked primary CPU or SA-1 coprocessor would eliminate the slowdown on the system, but the device emulating this system needs sufficient processing power to emulate that system at fullspeed.

Yeah, not the biggest fan of emulators that require tremendous clockspeed.
 

kirokun

Well-Known Member
Member
Joined
Jan 31, 2008
Messages
200
Trophies
1
XP
336
Country
United States
Overclocking snes emulator, w.e it sounds all good n shit, but...


Can I see a side by side video of Normal vs Overclocking Simcity SNES when you scroll through map 061!
 

Fat D

Well-Known Member
Member
Joined
Nov 18, 2006
Messages
1,136
Trophies
0
XP
454
Country
Germany
Is this about that disproved pirated rom theory?
What sort of disproved theory? It is a fact that most people who get roms download them.

Either way, yes, Nintendo's rationale focusses around circumventing the copy protection inherent in proprietary media, not so much the legal situation of the emulator's code itself.
 

Lumstar

Princess
Member
Joined
Mar 6, 2006
Messages
4,104
Trophies
1
Location
Darling
Website
eonhack.blogspot.com
XP
1,843
Country
United States
What sort of disproved theory? It is a fact that most people who get roms download them.

Either way, yes, Nintendo's rationale focusses around circumventing the copy protection inherent in proprietary media, not so much the legal situation of the emulator's code itself.

Nintendo has been accused of using pirated roms for their official releases. Due to the presence of iNES headers.

However... chances are ANYONE who's ever included NES roms in a commercial product (whether or not said product is in fact an emulator), uses roms with the headers.
 

Fat D

Well-Known Member
Member
Joined
Nov 18, 2006
Messages
1,136
Trophies
0
XP
454
Country
Germany
To be fair, implementing a file format designed by a community whose legitimacy you question displays a certain degree of hypocrisy as well, just like using fan emulators would. Completely irrespective of whether the ROM data itself was taken from scene dumps or from the official master images.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    SylverReZ @ SylverReZ: @salazarcosplay, Morning