Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

A Quest For the Perfect SNES Emulator

Soulskill posted about 3 years ago | from the do-a-barrel-roll dept.

Nintendo 227

An anonymous reader sends this excerpt from the Opposable Thumbs blog: "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. ... As an example, compare the spinning triforce animation from the opening to Legend of Zelda on the ZSNES and bsnes emulators. On the former, the triforces will complete their rotations far too soon as a result of the CPU running well over 40 percent faster than a real SNES. These are little details, but if you have an eye for accuracy, they can be maddening. ... The primary demands of an emulator are the amount of times per second one processor must synchronize with another. An emulator is an inherently serial process. Attempting to rely on today's multi-core processors leads to all kinds of timing problems. Take the analogy of an assembly line: one person unloads the boxes, another person scans them, another opens them, another starts putting the item together, etc. Synchronization is the equivalent of stalling out and clearing the entire assembly line, then starting over on a new product. It's an incredible hit to throughput. It completely negates the benefits of pipelining and out-of-order execution. The more you have to synchronize, the faster your assembly line has to move to keep up."

cancel ×

227 comments

Sorry! There are no comments related to the filter you selected.

ZSNES is perfect (1)

vga_init (589198) | about 3 years ago | (#37042044)

I don't care how many times the triforce spins. Seriously.

Re:ZSNES is perfect (4, Funny)

FhnuZoag (875558) | about 3 years ago | (#37042100)

Haha, yes. I can't wait for the new wave of emulators that make you blow on your hard drives before your roms will work.

Re:ZSNES is perfect (1)

Pieroxy (222434) | about 3 years ago | (#37042326)

The real question is: When will we have a JavaScript emulator ?

Re:ZSNES is perfect (2)

laederkeps (976361) | about 3 years ago | (#37042350)

It's been done [slashdot.org] for the gameboy. There was also an article series [slashdot.org] about how it might work featured on slashdot a while back.

Re:ZSNES is perfect (4, Funny)

genner (694963) | about 3 years ago | (#37042432)

The real question is: When will we have a JavaScript emulator ?

It's called the Opera browser. It's runs JavaScript but it's not quite the real thing.

Re:ZSNES is perfect (2)

VGPowerlord (621254) | about 3 years ago | (#37043362)

The real question is: When will we have a JavaScript emulator ?

It's called the Opera browser. It's runs JavaScript but it's not quite the real thing.

Internet Explorer's JScript would be a better example.

Re:ZSNES is perfect (1)

RyuuzakiTetsuya (195424) | about 3 years ago | (#37042148)

no, but he does cite a more practical example. Speedy Gonzales doesn't work right on most emulators it seems.

Re:ZSNES is perfect (0)

Anonymous Coward | about 3 years ago | (#37042246)

Try to play Mario Kart. You'll change your tune.

Re:ZSNES is perfect (3, Interesting)

ObsessiveMathsFreak (773371) | about 3 years ago | (#37042410)

Well, there is a difference. Here's a ZSNES emulation of the LTTP intro [youtube.com] , which you can compare with the Speed Demos Archive run [speeddemosarchive.com] . SDA don't actually accept emulator runs, so the video there is from an actual SNES.

Now, the TAS videos run [youtube.com] doesn't display the same problem, but that was probably run from Snes9x, not ZSNES(technically from a custom Snes9x build supporting re-recording). So the issue is not the processing power required but simply the fact that the Snes9x and ZSNES developers focused on different features.

Overall, it can be seen from all three videos that in general, a good emulator can emulate the underlying hardware with extremely high fidelity for the vast majority of games and gameplay.

Fidelity isn't a burning issue in modern 8 or 16 bit emulation. Emulators are now literally concerned with advanced features like recording, "rewinding", and video and audio filters that actually improve the games graphics and sound beyond what the hardware was capable of. The only outstanding feature I personally feel is missing from most emulators is cross platform support.

Re:ZSNES is perfect (0)

Anonymous Coward | about 3 years ago | (#37042684)

Holy crap, I thought I knew EVERYTHING about LTTP, I never knew if you skipped the lantern in your house that the chest next to Zelda would have one.

Anyway, bsnes is an emulator that focuses on being as accurate as possible to the SNES, it requires significantly higher system specs than your average SNES emulator, and brags of near perfect emulation of every single SNES game, save one, which has an internal flash chip that has not been dumped.

Re:ZSNES is perfect (2)

Hatta (162192) | about 3 years ago | (#37043224)

Fidelity isn't a burning issue in modern 8 or 16 bit emulation.

Fidelity is the only thing that matters. Compare any emulator besides Nestopia or bsnes to the real thing. It's not there yet.

Emulators are now literally concerned with advanced features like recording, "rewinding", and video and audio filters that actually improve the games graphics and sound beyond what the hardware was capable of.

They really shouldn't be. Recording can be done by external apps. Rewinding, meh, that's just cheating. And video and audio filters never look or sound as good as the real thing.

The only outstanding feature I personally feel is missing from most emulators is cross platform support.

I can think of more emulators with cross platform support than emulators without. In almost every case the best emulator for a platform is open source and cross platform. The only exception I can think of is SSF.

Personally, I think emulators are very important. And accuracy is especially important. But while the hardware is still here and in working condition, I play everything I can on real systems. With the help of mod chips or flash carts as needed. It's superior in every way to emulation.

Re:ZSNES is perfect (1)

LordLimecat (1103839) | about 3 years ago | (#37043680)

And video and audio filters never look or sound as good as the real thing.

I still have an SNES, and used to play a ton of ZSNES. I also used to play a lot on a GBA emulator. After using some of the graphics filters, I completely disagree. Try blowing a GBA game up to 800x600 without a filter, and then try it with a filter, and tell me theres not a world of difference.

Re:ZSNES is perfect (1)

Hatta (162192) | about 3 years ago | (#37043870)

I like nice crisp pixels more than I do a blurry mess. I don't even like the filter that comes with the GBA player.

I never do anything but nearest neighbor scaling, unless it's actually rendering the source at higher resolution, e.g. ePSXe in high res. That works well because the 3d models are vector in nature. For sprites, I don't care whether it's bilinear filtering or if it's HQ3x, I'll pick the nice crisp blocky pixels every time.

Re:ZSNES is perfect (-1)

Anonymous Coward | about 3 years ago | (#37044132)

Rewinding, meh, that's just cheating.

It's ok, Grandpa. You don't have to use the rewind function if you don't want to.

Re:ZSNES is perfect (0)

Anonymous Coward | about 3 years ago | (#37044032)

Did you not see people talking in other places about games that freeze up or otherwise break gameplay? It's not just unpopular games like Speedy Gonzales, popular games like Mario RPG have in-game freezes too.

Is there an actual article here? (0)

Anonymous Coward | about 3 years ago | (#37042054)

Or is this just some guy's blog about how emulators aren't up to par with actual hardware? There's no question being asked here.

Re:Is there an actual article here? (1)

Polarn (83690) | about 3 years ago | (#37042506)

This is News. News for nerds, stuff that matters.

Re:Is there an actual article here? (0)

ynp7 (1786468) | about 3 years ago | (#37043268)

Some guy's blog. Almost as poorly written as Destructoid, too. Pretty pathetic.

Re:Is there an actual article here? (3, Informative)

Hatta (162192) | about 3 years ago | (#37043336)

Some guy? Byuu is the author of the finest emulator yet created. He's not asking a question because he knows the answer. He's speaking from his own expertise.

Chipsets (3, Interesting)

WorBlux (1751716) | about 3 years ago | (#37042056)

Isn't the chipsets used just about out of patent, and thus allowing perfect emulation by including a copy of the chips used on a USB device?

Re:Chipsets (0)

Anonymous Coward | about 3 years ago | (#37042114)

What does that even mean? A "copy of the chips"?

Re:Chipsets (0)

Anonymous Coward | about 3 years ago | (#37042134)

He means make a reproduction of the processors and put them on a usb device, so it does hardware emulation.

Re:Chipsets (0)

Anonymous Coward | about 3 years ago | (#37042144)

Ah fair enough, that's a bit more clear.

Re:Chipsets (2)

Moryath (553296) | about 3 years ago | (#37043414)

Basically, that's already done. NES-on-a-CHIP and SNES-on-a-chip solutions [blogspot.com] can be found at any anime convention; if you want a really cheap, crappy version you can go to your local shopping mall around christmas and find some really sleazy-skeezy looking Indian or Latino guy hawking the GameStation3D, which has "10,000 games in one" (actually probably about 50 NES and 50 SNES roms with the game numbers on a repeating loop) all crammed into a base station and badly fashioned Chinese-made "controller" where half the buttons don't work. He may also be selling something like this [i-am-bored.com] or something like this crappy-ass GBA ripoff called a 'PVP' [dhgate.com] .

Not really emulation then (1)

AC-x (735297) | about 3 years ago | (#37042160)

That's not emulation, that's having the actual hardware. You may as well just build a whole snes...

Re:Not really emulation then (1)

madmayr (1969930) | about 3 years ago | (#37042248)

and you would loose the nifty feature of an emulator: temporary emulation speed boost (which is why i really like them)

Re:Not really emulation then (1)

ByOhTek (1181381) | about 3 years ago | (#37042376)

Add a "turbo" button.

Re:Not really emulation then (1)

madmayr (1969930) | about 3 years ago | (#37042582)

Add a "turbo" button.

and how should this hardware magically run faster just because of a turbo button?

Re:Not really emulation then (1)

Khyber (864651) | about 3 years ago | (#37042618)

You don't know how the NES and SNES games were programmed, do you? HEAVILY dependent upon clock cycle.

Re:Not really emulation then (1)

Tacvek (948259) | about 3 years ago | (#37042676)

Considering that in all likelihood when you remade the processor, you used a smaller process size than the original[1], and that when you use a smaller process size you generally scale the elements to fit[2], the maximum stable clock rate of your remake should be higher substantially greater than the clock rate of the original If the turbo button was a simple clock rate switch, it could speed things up.

The only particularly tricky parts are sound and video, since if you don't compensate for the increased clock rate, these output would be garbled. (I'm assuming that this hypothetical USB device includes the audio video hardware, connected to a a modern video/audio capture chip for display/reproduction on the computer.

[1] Since it can be hard to find a fab for the original process size.
[2] While you could use the smaller size to make the chip at the original scale, that is wasteful.

Re:Not really emulation then (0)

Anonymous Coward | about 3 years ago | (#37042764)

Add a "turbo" button.

and how should this hardware magically run faster just because of a turbo button?

my 486 had a turbo button

Re:Not really emulation then (1, Funny)

ByOhTek (1181381) | about 3 years ago | (#37042782)

The turbo buttons on PCs of the 90s weren't magic, but they worked. If you really need an explanation of why/how, slashdot may not be the best place on the net for you. Have you tried digg or /b/? they may be more suited for individuals of your... needs.

Re:Not really emulation then (1)

dintech (998802) | about 3 years ago | (#37043240)

Because 'turbo' is actually a misnomer. It's really a 'go slow' button that's on most of the time. In days gone by it was added to new PCs to aid compatibility with much older software that used the processer clock speed in timing operations, like cursor blink rate and so on. Your new zippy 100Mhz 486 could be switched to run at 25MHz or whatever.

It follows that the homebrew SNES would have hardware that is way more powerful than necessary. It would normally be in in 'slow' mode and only fully unleashed when you pressed the 'turbo' button.

Re:Chipsets (4, Informative)

AmiMoJo (196126) | about 3 years ago | (#37042290)

Latency on USB is terrible. It just isn't designed for that sort of thing.

The problem that the summary alludes to is context switching, changing from one task to another. Every time you do it you have to save data from one task to memory and reload data for the next one. Most operating systems do that and it isn't a problem when you are only switching 1,000,000 times per second even for a fairly low end console.

Amiga emulation was thought to be nearly impossible because of this, but some clever chap realised that you can do a fairly close approximation and get a reasonably good result while running at the speed of the original machine. TFA doesn't make it clear but I think what it is trying to demonstrate is how the CPU can end up running too fast because in an actual SNES the other hardware causes wait states for memory access and the like which effectively slows it down. Say the CPU wants to access video memory but the graphics chip also needs to use it. Since the graphics hardware can't wait (it would cause corruption on the display) it gets priority and the CPU has to wait instead. The delay is handled internally by the CPU so there is no hint in the game's code that this is happening and a traditional emulator would not take account of it.

Re:Chipsets (1)

NJRoadfan (1254248) | about 3 years ago | (#37042358)

What everyone looks for in an emulator is a "cycle accurate" simulation of the hardware. Its pretty tough to do with any system loaded with custom chips, even more so when its clocked at an oddball speed (relative to PC clocks) like typical NTSC/PAL timings. Both the SNES and Amiga meet both criteria.

Re:Chipsets (1)

petermgreen (876956) | about 3 years ago | (#37042454)

The emulators I have experiance with work by running in bursts. The "emulation clock" runs much faster than real time for the duration of the burst then stop until the next burst is due so there is no real problem with the emulation clock being a weird speed relative to PC clocks.

Afaict the main problem is determining all the performance interdependencies of the real hardware and then coding those interdependencies without adding unacceptable performance pentalties to the main emulation loop.

Re:Chipsets (1)

Hatta (162192) | about 3 years ago | (#37043396)

The emulators I have experiance with work by running in bursts. The "emulation clock" runs much faster than real time for the duration of the burst then stop until the next burst is due so there is no real problem with the emulation clock being a weird speed relative to PC clocks.

Seems like that would cause problems with input latency.

Re:Chipsets (1)

Darkness404 (1287218) | about 3 years ago | (#37042828)

Yes, and you can buy reproduction SNES consoles (and even NES/Mega Drive/SNES combo consoles) online for about $30-50.

Re:Chipsets (1)

Hatta (162192) | about 3 years ago | (#37043366)

You can, but the reproduction quality is universally poor. You're better off emulating than you are using any clone console.

Re:Chipsets (1)

omnichad (1198475) | about 3 years ago | (#37043410)

But are these running hardware chips or are they running general purpose CPU's with emulators?

BSNES is perfect (1)

iYk6 (1425255) | about 3 years ago | (#37042068)

I love bsnes. Performance mode only takes about a Pentium 4. It performs perfectly. No crashing or heavy visual glitches. The sound works great. The qt UI was nice, much better than the hacked together UI of zsnes, but I haven't tried the newer phoenix UI. If you have the processing power, there is no reason to put up with zsnes's glitches, crashes, sound problems, or any other quirks any more.

Re:BSNES is perfect (2)

CastrTroy (595695) | about 3 years ago | (#37042566)

But how much time do you seriously spend in the GUI of the emulator? As long as it plays the game, I would be happy running it from the command line.

Re:BSNES is perfect (1)

Gordonjcp (186804) | about 3 years ago | (#37042866)

Actually, a command-line interface would be *better*, because then it would be easy to write your own GUI launcher, or call it from XBMC or whatever.

Think in terms of a little shell script that just meant you could run a ROM as if it was a normal app.

Re:BSNES is perfect (1)

omnichad (1198475) | about 3 years ago | (#37043422)

That's the way I run mine on MythTV. I wrote my own menus, and when the emulators are launced from the menus, the Exit button on my universal remote is mapped to the keys to exit the emulator.

Too much attention to detail (2)

Windwraith (932426) | about 3 years ago | (#37042102)

I played a lot of SNES games when I was a kid. Then I played those games when I was older in an emulator (it's easier than dusting off the console).

Any difference is pretty much minor detail. Your memory won't really tell you stuff you see in a modern emulator is wrong, because most people doesn't memorize the amount of time a triforce takes to spin around, and probably doesn't care as long as it shows OK.

I think you only need emulation that faithful when you are actually writing software for the SNES using an emulator. (Hey, it happened for the NES, why not?)

Re:Too much attention to detail (1)

xouumalperxe (815707) | about 3 years ago | (#37042186)

You evidently didn't RTFA, where the author enumerates a few cases where the glitches in emulation make for either unwinnable games (like Speedy Gonzales) or for materially worse gameplay (like Air Strike Patrol).

Re:Too much attention to detail (1)

Windwraith (932426) | about 3 years ago | (#37042334)

Yeah you got me. I saw the news in the RSS feed and posted without having my morning coffee. Now I did, read the article, and wondered why Slashdot doesn't have a delete comment option.

Either way, seems I am pretty lucky, because I never got such misbehavior when playing emulators. Much less a crash, even under PSP or other homebrew+lowend emulators.
At most I notice some sound effects sounding different than in TV, and I recently saw someone playing Doom in an emulator and it had rounding errors in the rendering (causing a strange mishmash of pixels, but considering the math involved, it's surprising it even works), but yeah, been lucky.

Re:Too much attention to detail (1)

Luckyo (1726890) | about 3 years ago | (#37042502)

That's not luck. As author notes in the article, popular speed-focused emulator have game-specific hacks for about 50-100 most popular titles, that enable them to work "good enough".

Re:Too much attention to detail (1)

Windwraith (932426) | about 3 years ago | (#37042672)

I honestly doubt I am playing "50-100 most popular titles", precisely one of the beauties of SNES is the incredibly good software that never left Japan or was too obscure to hit cult status, or software never released in Europe.

Out of the games I play often, I think the only ones having speedhacks are Terranigma and Illusion of Time/Gaia, I guess Earthbound. I can assert without any doubt that stuff like Great Battle V, Nightmare Busters, Wild Guns, Ninja Warriors Again, Thunder Spirits (sort of like the SNES port of the arcade port of Mega Drive's Thunder Force III), Paladin's Quest (it's kind of lame but there's something about it I like, maybe the HP=MP mechanics), Arcana, Alcahest...those are pretty obscure and still work exactly as the console version that I did try beforehand, and there isn't really any glitch on any of the 3 emulators I played them with.
The few games I know that glitch, already did in the cartridge version (Lufia 2 US).

So yeah, I guess it's a bit of luck. Or maybe those games happen to not use specific hacks and/or enhancement chips that might cause glitches in this situation.

Re:Too much attention to detail (1)

Luckyo (1726890) | about 3 years ago | (#37042776)

Not "50-100 most popular titles in retail", but "50-100 most popular among those who emulate".

In most cases it's a pretty good guess that whatever you're playing is also played by many others. There are obviously exceptions to this, and it's quite possible that you are among the small minority that really does need games that no one else plays.

There's also an issue of people hacking roms themselves to get them to work with zsnes. Many of the huge torrented libraries you find on the net in fact include such versions of games.

Re:Too much attention to detail (1)

VGPowerlord (621254) | about 3 years ago | (#37043548)

There's also an issue of people hacking roms themselves to get them to work with zsnes. Many of the huge torrented libraries you find on the net in fact include such versions of games.

That's funny, because there are tools like GoodSNES that have lists that say which roms have been modified by checking their SHA-1 signatures against a known good database. Roms that are known good are marked with [!], ones that are known to have been "fixed" for emulators are marked with [f], ones that are known to have other hacks applied are marked with [h]. I forget how fan translations are marked.

The only game that's not a known good in my SNES collection is Terranigma. That has the previously mentioned speed hack applied because Enix had the nasty habit of slowing emulation down when porting games to PAL territories... and the only English version of Terranigma is the UK release (Terranigma was available in Japan and Europe, but not North America).

Attention to detail, or games will crash (5, Informative)

iYk6 (1425255) | about 3 years ago | (#37042190)

You seem to be missing the point. The triforce spinning was probably a bad example, since it's not that important. The problems with inaccurate emulators range from annoying visual glitches, to crashes, to actually making a game unbeatable. Star Ocean, for example, will sometimes crash in zsnes, but I haven't experienced that in bsnes. The battles run at double speed, much like the triforce in LTTP. Playing Yoshi's Island in zsnes, any level with those giant fuzzballs will tick every time you move. It's nauseating to get through. In zsnes, Super Mario RPG battles will sometimes de-sync to the point that the music and animations will continue, but your input will no longer work and you have to reset the game.

In Speedy Gonzales - Los Gatos Bandidos, if you're playing with zsnes, you can't even beat the game, because it doesn't emulate everything necessary to do so. In Sink or Swim, the room fills with water, and you need to swim above it. But because of timing and speed issues, the room fills up much too fast and you will drown instantly.

You can read about some of these issues, and many more, here: http://byuu.org/bsnes/accuracy [byuu.org]

Re:Attention to detail, or games will crash (1)

Windwraith (932426) | about 3 years ago | (#37042282)

I admit I didn't RTFA, although I never experimented such issues...for whatever reason.
Although you happen to mention games I only played on real hardware...never really tried emulating them. But I will take your word for it.

Re:Attention to detail, or games will crash (1)

hansamurai (907719) | about 3 years ago | (#37042986)

Touch Fuzzy, Get Dizzy

Re:Attention to detail, or games will crash (0)

Anonymous Coward | about 3 years ago | (#37043248)

Best. Level name. Ever.

I don't know if it's a reference to sex or drugs or both, but I'm for it.

Re:Attention to detail, or games will crash (0)

Anonymous Coward | about 3 years ago | (#37043034)

The battles running at double speed in StarOcean ruins the game, but most emulamers don't even know it any other way.

Re:Attention to detail, or games will crash (0)

Anonymous Coward | about 3 years ago | (#37043198)

"Byuu" also misses the point. The point of hardware emulation is ultimately about facility in accessing old software. Okay, so I can't play Speedy Gonzales correctly. What I can do in Snes9x or ZSNES is play *every game I actually care about*. With the Byuu emulator, I can't play *anything at all* because my 2.5 GHz dual-core computer is too slow to run it. So in my case, which of those emulators are successful?

Re:Attention to detail, or games will crash (2)

jez9999 (618189) | about 3 years ago | (#37043618)

I have an Athlon 64 and I can just about play SNES games smoothly with bsnes... so it's definitely usable. Things will only get better as CPU speeds increase.

No emulator is perfect (0)

Anonymous Coward | about 3 years ago | (#37042106)

It doesnt matter what platform the emulator is running on (pc, ps3, Wii, even the official virtual console titles) or what's being emulated (nes, snes). The timing is off on every single one. It's close, payable most of the time, but it isn't a full 100% accurate reproduction.

Re:No emulator is perfect (1)

tepples (727027) | about 3 years ago | (#37042724)

It doesnt matter what platform the emulator is running on (pc, ps3, Wii, even the official virtual console titles) or what's being emulated (nes, snes). The timing is off on every single one.

What NES game glitches up in Nintendulator? Or which timing test ROM shows different results in Nintendulator vs. on an NES?

Re:No emulator is perfect (1)

0100010001010011 (652467) | about 3 years ago | (#37042860)

Super Mario Bros 3.

We didn't have NES, but that was the only game me and my friends consistently played. Even 20 years later I still can play the original on NES like nothing happened. The emulators are 99.9% there, but in tricky spots or when jump timing counts, they don't work right. Mario slides just a bit too far or jumps a bit too fast.

Re:No emulator is perfect (1)

JDeane (1402533) | about 3 years ago | (#37043206)

Or a game like Ninja Gaiden on the NES, where your jumps and attacks had to be perfect down to the millisecond... I have used many emulators and the game is completable but you have to compensate for the lag or extra speed depending on the emulator and its a pain.

I think FCE Ultra on the Wii with no filters turned on is pretty close to perfect NES emulation with the Wiimote. Like you say 99.9% but still not perfect.

Re:No emulator is perfect (1)

X0563511 (793323) | about 3 years ago | (#37044178)

We'd need to emulate the physical circuitry. That would be expensive CPU-wise, but should be somewhat parallel-able (?) and as CPUs get better, this might become closer to reality.

MAME (1)

Rik Sweeney (471717) | about 3 years ago | (#37042112)

3GHz for a SNES? Makes you wonder just how accurate MAME actually is.

Then again, when you go as for as photographing a rom chip under a microscope [blogspot.com] , I guess there's no doubting the level of dedication.

Re:MAME (1)

Luckyo (1726890) | about 3 years ago | (#37042516)

Nothing new, same was done for speciality chips in SNES cartridges.

Re:MAME (2, Informative)

Anonymous Coward | about 3 years ago | (#37042936)

MAME isn't accurate, it's just badly coded. Accuracy is an excuse the current developers use because they're not actually very good programmers, and many of the performance issues just boil down to poorly implemented core features.

To get a like-for-like comparison, MESS is a side-project of MAME using the MAME code to emulate consoles. It has to rank as one of the worst in terms of both performance AND compatibility. It's actually slower than BSNES and has a compatibility rate worse than ZSNES of 10 years ago.

The MESS emulation of the SNES is using code from MAME because MAME emulated the SNES for the Nintendo Super System arcade system. This demonstrates how MAME is a prime example of an emulator where the developers have adopted a 'good enough is good enough' mentality. Once the software they want to run works the developers consider it consider it 'good enough'

With arcade platforms that approach holds up in 99% of cases, each platform usually has only a small number of games running on it, and most users don't have the prior knowledge of the titles to analyse them with extreme scrutiny. When their code is taken and used to emulate systems like the SNES where details are important, it fails. It fails in a similar way when it comes to Playstation, Jaguar, Sega, Amiga and the majority of others too. All you read about Tekken 3 being slow in MAME because the emulator is focused on accuracy holds no weight when you look at the actual accuracy and compatibility rate of the Playstation emulation provided by MAME via the MESS project.

BSNES is slow because Byuu has masterfully crafted an accurate emulator which emulates the SNES at a level indistinguishable from the real hardware, comparisons with MAME which is just the fruit of shoddy programming, ill-designed subsystems and a poorly conceived development vision are disrespectful.

I say this as somebody who has submitted code to MAME to fix issues found in MESS and has observed some of the horrors and inexplicably gross hacks and inefficient functions to be found in the MAME code while they continue to claim 'accuracy' as the reason for performance woes.

Always been a fan of ZSNES (2)

neokushan (932374) | about 3 years ago | (#37042130)

I must have been using ZSNES for over a decade now, possibly even longer. Snes9x was pretty good, too. I never had much of an issue with either emulator, as far as I was concerned, it played the games and it played them just fine. The odd glitch, maybe, but nothing that put me off completing a whole bunch of games I played as a kid, or missed out on.

However, I do agree with the author of bsnes that "just fine" isn't really acceptable when you want to preserve the computer you're emulating, not just play some games. I believe MAME takes a similar approach, aiming for accuracy rather than speed (Which is why it runs mostly in software and not hardware, hence 3D games like Tekken run very slowly) as MAME is primarily about preserving the games and not just playing them.

Computing power isn't really an issue, computers will only get faster and faster over time. The computers in use 10 years ago would be eclipsed by even a mid-ranged smartphone today. In 10 years from now, when there's even fewer working SNESes out there, it's good to know that the code will be portable to whatever machines we have at the time and that it'll run games as they're intended. It's not unthinkable that someone might unearth a previously unknown SNES game cartridge only to not be able to find a SNES to play it on. bsnes may well be the only emulator capable of playing it, for one reason or another.

Re:Always been a fan of ZSNES (0)

Anonymous Coward | about 3 years ago | (#37042180)

The only thing I never really liked about ZSNES was how, when playing Super Mario RPG: Legend of the Seven Stars, the game would stop accepting input in menus for no reason and would require a restart to start playing again.
The fix was always remembering to open the ROM in PAL mode, but when you've played other games for awhile in between playthroughs, it can easily be forgotten. This was so frustrating that I renamed the ROM "Super Mario RPG PUT IN PAL MODE" because, on many occasions, I would have to restart the game and, having forgotten to save, would have to redo an entire area.

Re:Always been a fan of ZSNES (1)

jez9999 (618189) | about 3 years ago | (#37043828)

Every now and then, when entering/exiting a room/cave in Secret of Evermore, in ZSNES the game just hangs at a black screen. For this reason (and various other important accuracy issues mentioned in byuu's page), I started using bsnes as my SNES emulator and never looked back.

I would like to see bsnes have recording functionality but you can't have everything. ;-)

Hz != Power (3, Insightful)

Anonymous Coward | about 3 years ago | (#37042142)

3GHz is a measure of frequency, not power. Words mean things, use them correctly.

Re:Hz != Power (1)

M0j0_j0j0 (1250800) | about 3 years ago | (#37042184)

Correct , could not agree more, Triforce is the real power, and it cannot be measured !!

this comment powered by linux (0)

decora (1710862) | about 3 years ago | (#37042204)

on a website powered by apache!
on a computer powered by AMD.

on a system created by software 'engineers'

Re:Hz != Power (1)

tepples (727027) | about 3 years ago | (#37042746)

Power is work per unit time. Frequency is cycles per unit time. Assuming work per cycle is constant, power is proportional to frequency. So what was your objection?

Re:Hz != Power (1)

smallfries (601545) | about 3 years ago | (#37043042)

His objection is almost certainly that work per cycle is not constant. Why assume something that is clearly false?

Re:Hz != Power (1)

X0563511 (793323) | about 3 years ago | (#37044206)

But it is constant, once you get the time per cycle to be granular enough.

Think of it as approximating a curve. The more "samples" per second, the closer and closer to the actual curve you get. Except in this case, the curve really is stepped once you get close enough, which means it's not an "approaching infinity" problem any more.

Re:Hz != Power (1)

Osgeld (1900440) | about 3 years ago | (#37044122)

so your saying that processors have not gotten more powerful over the last 2 decades and if I could overclock my pentium90 to 3ghz it would perform exactly the same as a i7

right

Re:Hz != Power (2)

catmistake (814204) | about 3 years ago | (#37042762)

hmm... ya caught that but didn't cathch this?

as a result of the CPU running well over 40 percent faster than a real SNES. These are little details, but if you have an eye for accuracy, they can be maddening.

SNES CPU frequency is 3.58MHz,
40% faster than that is 5.01MHz

There's the problem! He's using CPU's from the late 1970's to emulate a console from the early 1990's!

Re:Hz != Power (1)

Sancho (17056) | about 3 years ago | (#37043358)

I assumed he was referring to the emulated CPU.

snes9x? (0)

Anonymous Coward | about 3 years ago | (#37042154)

No love for snes9x ? I may be behind the times but it was awesome.

Re:snes9x? (0)

Anonymous Coward | about 3 years ago | (#37042214)

It was awesome in that it was C and thus portable to non-x86 architecture, but there are rumors the next iteration of ZSNES will dispense with the minimal reliance on assembly. Awesome will be had that day if true (if it ever comes out! Arrrrrrrr, the developers are quite secretive).

To summarize the summary (-1, Troll)

MrEricSir (398214) | about 3 years ago | (#37042538)

"Computers need to be very fast to emulate something slow enough to be accurate."

Yeah, I don't see anything wrong with that theory. It's kind of like how I always drive my Ferrari at 5 miles an hour because it's more accurate than riding a bicycle.

Re:To summarize the summary (1)

vlm (69642) | about 3 years ago | (#37042824)

"Computers need to be very fast to emulate something slow enough to be accurate."

Yeah, I don't see anything wrong with that theory. It's kind of like how I always drive my Ferrari at 5 miles an hour because it's more accurate than riding a bicycle.

A much better /. car analogy is the "best" most "modern" way to emulate a ford model T, oddly enough involves a very elaborate and expensive CNC machine shop, because you can clone replica parts. If the engine block casting had a 0.0001 warp, the CNC mill can include that "mistake" in the new part. If there was a slag inclusion in the piston, the CNC lathe can take a little divot out to screw up the balance to maintain "prototype" vibration levels. If the prototype way to build something was dumb or dangerous, the robot will do it exactly.

Emulation of TV screen or PC CRT often forgotten (1)

Kanel (1105463) | about 3 years ago | (#37042544)

If you take an old game that ran on a TV screen and emulate it in fullscreen on a modern PC, you will see every pixel clearly.
You never saw those on the TV. The pixellated Super Mario character was designed with the signal to noise ratio of an old TV in mind. When a modern emulator does not blend these pixels together like old blurry TVs did, the graphics look more blocky than they ever did originally. I can still see this in emulated computer games as recent as monkey island 2, which I originally played with a CRT monitor.

AFAIK, the resolution and post-processing needed to emulate the old screens faithfully is actually a bit demanding.

Re:Emulation of TV screen or PC CRT often forgotte (2)

caius112 (1385067) | about 3 years ago | (#37042616)

Do you mean something like this [byuu.org] ?

TV emulation (1)

tepples (727027) | about 3 years ago | (#37042786)

I know some games' graphics appear to have been designed with TV output in mind. Old consoles take shortcuts in generating a composite video signal. These shortcuts produce visible artifacts, and a few games take advantage of these artifacts by placing pixels in odd places to produce richer textures with more apparent colors than the system can produce at once. NES emulators at least have been emulating TVs [slack.net] for years. I almost can't tell the difference between a game running on an NES displayed on my Vizio TV and the same game running in Nestopia on a PC hooked up to the same TV.

you need to get yourself a girlfriend...... (0)

Anonymous Coward | about 3 years ago | (#37042590)

seriously you do, they are great fun and can do things with (to) you..... over time you will stop thinking about such matters as spinning triforce animations....

imagecfg (0)

Anonymous Coward | about 3 years ago | (#37042594)

I had problems with grim fandango that were solved by forcing it to use one core in windows with imagecfg. Or does the problem sit deeper than just the number of cores?

Forget emulation (0)

lyinhart (1352173) | about 3 years ago | (#37042620)

If you want perfection, use the real games and the actual hardware, preferably with an RGB mod and a CRT display: http://www.chrismcovell.com/gotRGB/index.html [chrismcovell.com]

To play rare or impossible to find titles, just download the ROMs and use something like this to play it on the actual hardware: http://krikzz.com/severdrive.html [krikzz.com]

But if you want portability and don't care about accuracy, you go with emulation.

Re:Forget emulation (0)

Anonymous Coward | about 3 years ago | (#37042730)

Does the Super Ever drive support the translation of Star Ocean, or SoM 3?

Re:Forget emulation (1)

tepples (727027) | about 3 years ago | (#37042808)

preferably with an RGB mod

Unless your game is like Blaster Master for NES and uses the composite artifacts to fake more colors. I'll grant that this was less common on the Super NES than on the Genesis and NES due to the bigger palette of the Super NES.

To play rare or impossible to find titles, just download the ROMs

Which publishers offer such lawful downloads?

Re:Forget emulation (1)

VGPowerlord (621254) | about 3 years ago | (#37043632)

To play rare or impossible to find titles, just download the ROMs

Which publishers offer such lawful downloads?

Have you ever heard of the Wii Virtual Console [wikipedia.org] ?

There's a list of publishers that use it somewhere, I'm sure.

Re:Forget emulation (1)

Stormwatch (703920) | about 3 years ago | (#37043008)

If you want perfection, use the real games and the actual hardware, preferably with an RGB mod and a CRT display

There's a downside to perfect picture quality. Developers relied on the crappiness of composite video; they used dithering to create transparencies and extra colors, especially on the Mega Drive. [chrismcovell.com]

Re:Forget emulation (1)

c0d3g33k (102699) | about 3 years ago | (#37043136)

If you want perfection, use the real games and the actual hardware, preferably with an RGB mod and a CRT display

It's possible you didn't read the TFA thoroughly, because the author discusses this point. One of the reasons to strive for perfect emulation is preservation (of the original gaming experience) as the (abundant, for now) hardware becomes scarce. At some point, very few people will have the actual working hardware. What then?

From TFA:

Take a look at Nintendo's Game & Watch hardware. These devices debuted in 1980, and by now most of the 43 million produced have failed due to age or have been destroyed. Although they are still relatively obtainable, their scarcity will only increase, as no additional units will ever be produced. This same problem extends to any hardware: once it's gone, it's gone for good. At that point, emulators are the only way to experience those old games, so they should be capable of doing so accurately.

Newfags can't triforce! (-1)

Anonymous Coward | about 3 years ago | (#37042688)

Wow, a story about not being able to triforce on Slashdot, welcome to /b/.

Not a problem at all (0, Troll)

vlm (69642) | about 3 years ago | (#37042780)

Attempting to rely on today's multi-core processors leads to all kinds of timing problems.

No, not at all, unless you're practically trying intentionally to screw it up. I've done a lot of work on emulators, admittedly mostly for DEC and IBM big iron, and the other extreme of emulating embedded microcontrollers, rather than video games. But video games are pretty simple compared to a large virtual mainframe installation.

The way you use multi-cores is the same way you use multi-cpus. One core/cpu does all the "thinking" and the other cores/cpus do ALL the behind the scenes heavy lifting. For example, the cpu emulator process/thread/hardware cpu does NOT handle local file access, it does NOT handle the real machine's "audio interface of the month", it does NOT handle whatever video-graphical-console interface the real machine provides, it does NOT interact with the real machines window manager, it does NOT process the real world machine's network packets. If your "CPU emulator" core/proc is also responding to pings from the real LAN, you're doin it wrong (or at least you need to buy more cores/procs, etc).

If the emulated machine had multiple processors or some peripheral processor, then you can run the FPU or keyboard controller or graphics proc or whatever on a separate real core/processor. Each call involves a tick counter, and each call ends with a loop waiting for the tick counter to hit the correct value before returning "done" status to the main.

Even the main machine needs a tick counter, and some sleepy calls. Crude systems do some arithmetic on the RTC to see how many ticks have been processed vs should have been processed and then sleep till then, maybe every X ticks. Advanced systems have a sleepy routine each and every tick, and a synthetic PID controller that adjusts the sleepy routine rather often. The fanciest systems which are usually too slow for videogames or realtime use "real time" for each instruction, including modeling of the current position of the disk drive arm and the suction level of the tape drive pumps and such.

Someone who's challenged by the concept of atomic transactions is going to be confused by them in emulators, just like they'll be confused by them in database transactions or any other app. Same deal with semaphores, fixing deadlocks, etc. There's nothing "really tricky" about programming emulators vs anything else.

Power (0)

Anonymous Coward | about 3 years ago | (#37042918)

Power is measured in watts, not hertz.

Use an old PC.... (0)

madhatter256 (443326) | about 3 years ago | (#37043156)

Get a hold of a 200mhz Pentium Pro... I played ZSNES on that computer when I was younger as that was my first PC. All of my 8/16bit emulators ran fine. When I upgraded to a SocketA Athlon XP 2500+ years later, I noticed that games ran faster than on my old PC.... so it could be that your PC is just too fast...

Atari ST emulators! (1)

Gunstick (312804) | about 3 years ago | (#37043580)

Just check the Atari ST emulators which are capable of doing overscan. This is so timing dependent that the CPU has to be emulated cycle precise.
Most do it scanline by scanline, only one, AFAIK does the real job: SainT (windows only)

This is "news" from 15 years ago (-1)

Anonymous Coward | about 3 years ago | (#37043968)

snes9x-gtk (or zsnes) does the job.

End of story.

Or.... (-1)

Anonymous Coward | about 3 years ago | (#37044164)

Go to ebay, spend $100, get an actual sodding SNES.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>