• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Cycle accurate emulators

snes-emu-acc-introzbjpx.jpg


It doesn't take much raw power to play Nintendo or SNES games on a modern PC; emulators could do it in the 1990s with a mere 25MHz of processing power. But emulating those old consoles accurately—well, that's another challenge entirely; accurate emulators may need up to 3GHz of power to faithfully recreate aging tech. In this piece we'll take a look at why accuracy is so important for emulators and why it's so hard to achieve.

Put simply, accuracy is the measure of how well emulation software mimics the original hardware. Apparent compatibility is the most obvious measure of accuracy—will an old game run on my new emulator?—but such a narrow view can paper over many small problems. In truth, most software runs with great tolerance to timing issues and appears to be functioning normally even if timing is off by as much as 20 percent.

So the question becomes: if we can achieve basic compatibility, why care about improving accuracy further when such improvement comes at a great cost in speed? Two reasons: performance and preservation.

First, performance. Let's take the case of Speedy Gonzales. This is an SNES platformer with no save functionality, and it's roughly 2-3 hours long. At first glance, it appears to run fine in any emulator. Yet once you reach stage 6-1, you can quickly spot the difference between an accurate emulator and a fast one: there is a switch, required to complete the level, where the game will deadlock if a rare hardware edge case is not emulated. One can imagine the frustration of instantly losing three hours of progress and being met with an unbeatable game. Unless the software does everything in the exact same way the hardware used to, the game remains broken.

Or consider Air Strike Patrol, where a shadow is drawn under your aircraft. This is done using mid-scanline raster effects, which are extraordinarily resource intensive to emulate. But without the raster effects, your aircraft's shadow will not show up, as you see in the screenshot below. It's easy to overlook, especially if you do not know that it is supposed to be there. But once you actually see it, you realize that it's quite helpful. Your aircraft has the ability to drop bombs, and this shadow acts as a sort of targeting system to determine where they will land.—something that's slightly more difficult without this seemingly minor effect.
More at:
http://arstechnica.com/gaming/2011/...-3ghz-quest-to-build-a-perfect-snes-emulator/

The accuracy of these emulators puts every emulator that tries to emulate the hardware using hacks to speed up the emulation and the Nintendo Virtual Console to shame.

Why it matters:
http://web.archive.org/web/20120724122435/http://byuu.org/bsnes/accuracy

Emulators:
  • Higan (SNES / NES / GB / GBC / GBA)
higan is an emulator for multiple Nintendo video game consoles, including the Super Nintendo Entertainment System and NES. Originally called bsnes,[1] the emulator is available for Microsoft Windows and Linux operating systems, and aims to emulate the original hardware as accurately as possible through low-level emulation. higan claims to be able to run every commercial Super NES title ever released by virtue of cycle-accurate emulation[2] with no known bugs.
http://byuu.org/higan/

Some games need additional roms to work like Mario Kart (needs the dsp1b.rom). Just google it if you own the game.


Comparsion videos:
https://www.youtube.com/watch?v=jWZ7Q6U2x-c

https://www.youtube.com/watch?v=dOxns6OjAcs


  • Nestopia (NES)

Nestopia is an open source NES/Famicom emulator designed to emulate the NES hardware as accurately as possible, and is widely considered the most advanced cycle-accurate NES emulator. Originally for Windows only, Nestopia has been ported to the Mac OS X and Linux operating systems.
Undead edition:​


  • Exodus (Genesis / Mega Drive)

Hardware Requirements:
Windows XP or above
4GB+ RAM
64-bit quad-core CPU
2.8GHz per core minimum. 3.4GHz+ recommended.

  • Gambatte
Gambatte is an accuracy-focused, cross-platform Game Boy / Game Boy Color emulator. It is based on hundreds of corner case hardware tests, as well as previous documentation and reverse engineering efforts.


1538-dqzmqqviic.jpg


1538-ecoezxjdkx.jpg


In development:

  • cen64 (N64):
So far it got open sourced but no official release yet. It can open comercial roms so far.
http://www.emutalk.net/threads/54131-Announcement-Cycle-accurate-N64-development-underway

Videos of the development status:
https://www.youtube.com/watch?v=hjuoDVSCzN4

https://www.youtube.com/watch?v=A3I4ivqz72g
 

BAW

Banned
Interesting topic. However I think that the general public prefers fast emulators with game-specific patches than using a very precise emulator that requires a beast of a machine to run.
 

Aeana

Member
Interesting topic. However I think that the general public prefers fast emulators with game-specific patches than using a very precise emulator that requires a beast of a machine to run.

Cycle-accurate emulation is ultimately for the sake of absolute preservation. We're already at the point where a machine you put together today can run Higan no problem, and it was only a couple of years back that it was a rarity.
 
Cycle-accurate emulation is ultimately for the sake of absolute preservation. We're already at the point where a machine you put together today can run Higan no problem, and it was only a couple of years back that it was a rarity.

Higan runs with no problems so far on my machine:
Core i7 3770k
16 GB Ram
GF 680 GTX
;)

 

SparkTR

Member
Is there much use for them if you're not a Tool-assisted speedrunner?

I guess if you want the best of the best, identical to playing it the actual hardware. As it stands other emulators give 99% the same results while being much less hardware intensive.
 

Holden

Member
Is there much use for them if you're not a Tool-assisted speedrunner?

In speedrunning, some emulators are banned for being to fast and not accurat enough like project 64 2.0

most speedrunners want the emulator to be the same to an official copy
 
In speedrunning, some emulators are banned for being to fast and not accurat enough like project 64 2.0

When cen64 is released im some years speed runners will be happy :D

Is there much use for them if you're not a Tool-assisted speedrunner?

When you play games that are not so popular on emulators like ZSNES you can run into game breaking bugs that are caused by the inaccurate emulation. Or music that sounds totaly wrong.
 

Holden

Member
When cen64 is released im some years speed runners will be happy :D

ya, i'm pretty sure no n64 emulator emulates perfectly, pause buffering is one the main thing that changes

dolphin loads much faster which can help alot in games like metroid prime and barely in wind waker
 
I wish Higan was more front end friendly. I have my Steam Big Picture mode set up so I can select individual emulator games from it that starts in full screen and I can close them usually with a hotkey from my iPhone with MobileMouse, and it works great with SNES9X, Nestopia, PCSX2 and Xebra, but I really wish I could replace SNES9X with Higan.

SNES9X works okay, but stuff like jerky diagonal scrolling in Super Mario World, incorrect sprite priority in Zelda ALTTP and other little quirks stand out as not running properly.

Also, it'd be nice if more emulators supported auto save and load state like ZSNES does.
 

NekoFever

Member
Interesting topic. However I think that the general public prefers fast emulators with game-specific patches than using a very precise emulator that requires a beast of a machine to run.

But you don't need a particularly beastly machine to run Higan now, and the bar's only coming down. It won't be long before the hardware requirements for accurate emulation become trivial, in which case it becomes pointless to save some CPU cycles for less than perfect emulation.

Also I love the bit in that Ars story about the emulator that's accurate down to the transistor level. 3GHz CPU to get 5-10fps in Pong. Good lord.
 

nkarafo

Member
SNES GT is more accurate than ZSNES and snes9x and at the same time is much faster than Higan, although it's still not as accurate as the later.
 

Shaneus

Member
I've always wanted to try out dolphin. This makes me want to see it in action on a beefy rig even more.
Dolphin is FAR from a cycle-perfect emulator. From what I can gather, we are a very, very long ways off from seeing anything post-SNES/MD. Once you start getting into 3D stuff and messy architectures like 3DO and Saturn, it'll be like pushing shit uphill.

I still don't know if there's a truly solid Saturn emulator yet, and that's only talking relatively HLE-type stuff.

I really should try getting Exodus running again. I tried not long ago, but had a problem where the video window wasn't displaying anything :/ But I posted on their forum and haven't checked back since (someone else had the same issue). Guy's from Australia too, which is rad.
 

Daedardus

Member
Using GHz as a measure of power, really? Pretty sure my 2,4GHz Ivy Bridge is a bit more powerful than my old 3,4GHz Pentium IV.
 
SNES GT is more accurate than ZSNES and snes9x and at the same time is much faster than Higan, although it's still not as accurate as the later.

I don't think that's true anymore. Byuu & the 9x devs are pretty friendly, and a number of bsnes's advances have made it into snes9x. 9x devs are also still working on 9x while GT has been dead for a while.

I think byuu recommends snes9x to people who can't run bsnes.
 

nkarafo

Member
I don't think that's true anymore. Byuu & the 9x devs are pretty friendly, and a number of bsnes's advances have made it into snes9x. 9x devs are also still working on 9x while GT has been dead for a while.

I think byuu recommends snes9x to people who can't run bsnes.
I don't know all this, all i know is that the super FX emulation is still bad on snes9x. Doom on the latest version (for instance) has many graphical artifacts for some reason. SNES GT doesn't have issues in any super FX game i tried (i tried them all i think). Both emulators run the game at the correct speed though.
 

Shaneus

Member
SSF is great.
Has it improved recently (as in, the last two years or so) or is it because it worked well in the past, but PCs were generally too slow to run it well? It's been a while since I looked into it, but I just remember emulation being fairly sketchy and temperamental.
 

nkarafo

Member
Has it improved recently (as in, the last two years or so) or is it because it worked well in the past, but PCs were generally too slow to run it well? It's been a while since I looked into it, but I just remember emulation being fairly sketchy and temperamental.
I only have a Pentium4 3.0 ghz and emulation is slow, but almost every game i tried works on the latest version (released recently). A couple of games that didn't work initially (Duke Nukem, Clockwork Knight 2) did work by using the PAL versions.
 
I don't know all this, all i know is that the super FX emulation is still bad on snes9x. Doom on the latest version (for instance) has many graphical artifacts for some reason. SNES GT doesn't have issues in any super FX game i tried (i tried them all i think). Both emulators run the game at the correct speed though.

Ah. Not an FPS fan, so not something I would ever have come across.

Has it improved recently (as in, the last two years or so) or is it because it worked well in the past, but PCs were generally too slow to run it well? It's been a while since I looked into it, but I just remember emulation being fairly sketchy and temperamental.

It's incrementally improved for at least as long as I've been using it, which is around ten years, and compatibility has been great for ages - even eight years ago it ran Shining Force 3 almost perfectly. My AMD 3000+ back then was just too slow to run it, but ever since the core 2 duo era it's been fine spec-wise.
 
Before Higan i only used ZSNES and i thought its pretty great. But now after playing F-Zero on Higan. It feels more like the real thing.
 
I wanted to play Metroid Prime on dolphin, but while the framerate was fine, it stuttered. And therefore made the experience unplayable.
 

Sixfortyfive

He who pursues two rabbits gets two rabbits.
Has it improved recently (as in, the last two years or so) or is it because it worked well in the past, but PCs were generally too slow to run it well? It's been a while since I looked into it, but I just remember emulation being fairly sketchy and temperamental.
It was mostly passable in 2005 on my then-outdated desktop. It's been capable of running the majority of my library more than well ever since dual-core setups became the norm.

I certainly wouldn't put it in the same league as the specific sort of emulators that this thread is focusing on, but "Saturn emulation is rough" is some kind of myth that just won't die.
 

Shaneus

Member
I certainly wouldn't put it in the same league as the specific sort of emulators that this thread is focusing on, but "Saturn emulation is rough" is some kind of myth that just won't die.
It's more an ingrained thing because while PS1 and 2 emulation was jumping leaps and bounds, for the longest time it felt like the Saturn didn't really get anywhere. I'm glad it's now not the case at all and will do my best to get myself up to speed :)

This is a thread about absolute accuracy of emulators and you throw in some SweetFX shaders? :p
Hey, I mentioned we'd be a LONG ways off emulating anything post-MD/SNES (specifically mentioning the Saturn, let alone the Dolphin which was mentioned in one of the first replies), which gives me cart blanche to post whatever the hell I want ;)
(That's all I'll mention of it now, I swear. Now, back to getting Exodus working...)


On that note, it should be pointed out that Exodus is worth highlighting even moreso because (as I understand) it provides the framework for creating cycle-accurate emulators for pretty much anything, on the condition that core components of the device can be replicated perfectly on PC. But I have a very high-level of understanding of that, perhaps someone here could be more detailed in what it is capable of.
 

big_z

Member
i always though emulated games felt off. im happy i wasn't crazy and that emulators like these exist.

I now use bsnes v88 when i replay my old snes games. its the last version before byuu went crazy and started screwing around with the file system. higan takes apart roms and leaves behind the bits on your pc, bsnes doesn't.

it's too bad mother 3 doesn't save with bsnes/higan.(if you know of a fix let me know) would be nice to play it without the lag issues of other emulators.
 

Yoshichan

And they made him a Lord of Cinder. Not for virtue, but for might. Such is a lord, I suppose. But here I ask. Do we have a sodding chance?
So ZSNES is actually a bad emulator or what? Been using it for ages and it seems damn near flawless to me and I'm (well, I was) a speedrunner at some games.
 
So what emulator does the Wii use to run SNES games? Nintendo's own? And presumably it is inaccurate because the Wii is not a powerhouse...
 

Anony

Member
i always though emulated games felt off. im happy i wasn't crazy and that emulators like these exist.

I now use bsnes v88 when i replay my old snes games. its the last version before byuu went crazy and started screwing around with the file system. higan takes apart roms and leaves behind the bits on your pc, bsnes doesn't.

it's too bad mother 3 doesn't save with bsnes/higan.(if you know of a fix let me know) would be nice to play it without the lag issues of other emulators.

what
care to elaborate?
 
So what emulator does the Wii use to run SNES games? Nintendo's own? And presumably it is inaccurate because the Wii is not a powerhouse...

I'm curious about this as well. I have a lot of Virtual Console games, and while I know they can't be meticulously emulated, they seem very solid. What's the status on those? Do we know how they hold up compared to bsnes/higan?
 

nkarafo

Member
So ZSNES is actually a bad emulator or what? Been using it for ages and it seems damn near flawless to me and I'm (well, I was) a speedrunner at some games.
Ζsnes is bad. Yoshi's Island has weird graphical glitches in many parts, the latest version breaks one of the levels completely. Doom and Starfox, as well as some other Super FX games run at the wrong speed (too fast). These are some of the examples that come in my mind as these are some of my most played SNES games (yes, even that crappy Doom port).

It was the best in 1999 but now just about every other emulator is better.
 

gngf123

Member
So what emulator does the Wii use to run SNES games? Nintendo's own? And presumably it is inaccurate because the Wii is not a powerhouse...

Correct on both counts, but since Nintendo have full documentation and know what each game needs to run, they can build a pretty good emulator and send out a slightly different set of settings/hacks for each game to get each one working almost flawlessly.

This is how it works on the 3DS for VC games, I imagine it is also how it works on the Wii.

And people, Dolphin and the like are not cycle accurate, they aren't for discussing in this thread.
 

nkarafo

Member
So what emulator does the Wii use to run SNES games? Nintendo's own? And presumably it is inaccurate because the Wii is not a powerhouse...
For VC games Nintendo built their own emulator. Which should be better than any other since its made by Nintendo themselves and not just some hobbyist. Same goes for N64. There is no way for a homebrew emulator to work as fast and glitch free on the Wii for N64 games. Only the people who actually made the N64 know how to do it.
 
Shit... all this time spent with ZSNES :(

Not your fault, you will still find people who stick with zsnes and recommend it to other people even though they know its flaws because they're used to it, which mean it's been a lot slower to die then it should have been.

what
care to elaborate?

From memory Byuu got fed up with crappy roms and created a tool that cleans them up and deconstructs them into component parts in a folder. Higan will only read those folders.

It's not very intuitive to use though, so a lot of people stuck with earlier versions.
 

big_z

Member
what
care to elaborate?

when you run bsnes it creates one hidden folder else where to store your emulator settings. roms are opened from the folder you have them in and the save file gets created in the same folder.

when you run higan it creates a hidden folder for the emulator settings, a hidden folder for game roms and a hidden folder for save files. there might be another hidden folder but I cant remember. anyway in the hidden rom folder each game gets its own folder where the rom is copied then another folder within where the rom is split apart.

all this crap isn't necessary and isn't removed unless you go in manually. since bsnes v88 runs games as well as higan but with a less messy file structure and no junk files i'll stick with it.



So what emulator does the Wii use to run SNES games? Nintendo's own? And presumably it is inaccurate because the Wii is not a powerhouse...

I read somewhere Nintendo uses it's own custom emulator that is setup specifically for each game. It should be accurate but who knows. It would make an interesting comparison piece. digital foundry get on it.
 

honorless

We don't have "get out of jail free" cards, but if we did, she'd have one.
For VC games Nintendo built their own emulator. Which should be better than any other since its made by Nintendo themselves and not just some hobbyist.
"Should be"...okay, yeah.

"Is" is the question.

As gngf123 said, Nintendo's emulators are probably quite good when it comes to accuracy. They are nowhere near cycle accurate, which is what this thread is concerned with—in part because their console hardware is not powerful enough for that, and in part because the returns garnered by demanding perfect accuracy are vanishingly small to anyone with a bottom line to think about. Or even to the vast majority of the potential audience.

"Just some hobbyist" can turn out a hacked-together mess because they've got no one to answer to, yeah. But a particularly driven and skilled hobbyist (or team of hobbyists) can agonize over the edge cases that require uncompromising accuracy for the exact same reason.

...Is Speedy Gonzales: Los Gatos Bandidos still unbeatable in every emulator other than higan? I haven't been keeping up with the scene and am now curious.
 
...Is Speedy Gonzales: Los Gatos Bandidos still unbeatable in every emulator other than higan? I haven't been keeping up with the scene and am now curious.

Still unbeatable in Snes9x, and I don't think any other major snes emulator has even been updated since that article. Maybe MESS?
 
Top Bottom