A Quest For the Perfect SNES Emulator 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."
ZSNES is perfect (Score:2)
I don't care how many times the triforce spins. Seriously.
Re:ZSNES is perfect (Score:5, Funny)
Re: (Score:2)
The real question is: When will we have a JavaScript emulator ?
Re: (Score:2)
Re:ZSNES is perfect (Score:5, Funny)
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: (Score:3)
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: (Score:2)
no, but he does cite a more practical example. Speedy Gonzales doesn't work right on most emulators it seems.
Re:ZSNES is perfect (Score:4, Interesting)
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: (Score:3)
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 v
Re: (Score:2)
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: (Score:2)
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: (Score:2)
I'd love to know how you got crisp blocky pixels from your NES in the 1980s, because I certainly didn't. I got a wonderfully softened image from the 1980s TV tubes, and "crisp blocky pixels" are the opposite of fidelity.
True fidelity would also simulate the display presentation. The simple TV filters provided with most emulators do an OK job, although they normally just do horizontal linear interpolation and then simulate a scanline effect for the vertical. But some people out there go farther than that and
Re: (Score:2)
You have a point there. Pixel perfect display is not fidelity, but that's one case where I think it's actually an improvement. In fact, I go as far as to upgrade my actual console's video-out to get the best display I can. RGB out on a CRT is really a thing of beauty.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
There are a few xbox emulators. The most famous of which is Cxbx, which is still semi-actively maintained (in a fork after the original author abandoned it):
http://shogun3d-cxbx.blogspot.com/ [blogspot.com]
It's not the only one. There was another one that came out early on that emulated Halo (and only Halo). Like Cxbx, it was also a high-level emulator. I don't remember the name of that one. Another is DxBx, which has a handful of playable games. There might be some others.
Overall, the reason why XBox emulation is so prim
Re: (Score:2)
There are a few chances the game gives you to get the lantern. There's also a chest very shortly after you get the sword and shield, that will contain the lantern if you don't already have it.
Chipsets (Score:4, Interesting)
Not really emulation then (Score:2)
That's not emulation, that's having the actual hardware. You may as well just build a whole snes...
Re: (Score:2)
Add a "turbo" button.
Re: (Score:2)
You don't know how the NES and SNES games were programmed, do you? HEAVILY dependent upon clock cycle.
Re: (Score:2)
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 cl
Re: (Score:2, Funny)
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: (Score:2)
Spoiler: It wasn't actually a "turbo" button. It was really an "anti-turbo" button for intentionally slowing your computer down.
Re: (Score:2)
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 whe
Re: (Score:2)
if it had hardware that was way more powerful than necessary it wouldn't be a homebrew snes, would it? it'd be a somewhat similar arrangement of hardware that you hoped would run the software more or less okay. thus kinda defeating the point.
Re:Chipsets (Score:5, Informative)
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: (Score:2)
Re: (Score:2)
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: (Score:2)
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: (Score:2)
Depends how long the bursts are. Afaict the norm is one burst per frame but there is no real reason the bursts couldn't be shorter than that if desired.
Re: (Score:2)
If the device itself was running all of the processing, the latency shouldn't be an issue. USB gamepads do not have noticeable latency, so theoretically a program could be written to pass a ROM to the USB device, handle the sound and video output (SNES were rather low-resolution, bandwidth on USB shouldn't be an issue), handle battery-backed RAM (for saves and such), and send control input from the keyboard or gamepad(s).
The real question I would ask is if this is even emulation at this stage, so much as a
Re: (Score:2)
Re: (Score:2)
You can, but the reproduction quality is universally poor. You're better off emulating than you are using any clone console.
Re: (Score:2)
But are these running hardware chips or are they running general purpose CPU's with emulators?
Re: (Score:3)
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 h
BSNES is perfect (Score:2)
Re: (Score:3)
Re: (Score:2)
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: (Score:2)
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.
Re: (Score:2)
Actually, a command-line interface would be *better*, because then it would be easy to write your own GUI launcher
But with a command-line interface, how would one reconfigure game controls after having already started the game?
Re: (Score:2)
That isn't the problem. Most emulators do have extensive command-line configuration. The problem is that most users don't go near these settings and they aren't well documented. If all you want to do is enjoy a couple of classic games now and then it's hardly worth trying to get your head around the obscurity.
If you're willing to invest a couple of hours you might be able to configure your perfect emulator, but with a nice GUI you could have everything you want in minutes.
Too much attention to detail (Score:3)
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: (Score:2)
Re: (Score:2)
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 rend
Re: (Score:2)
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: (Score:2)
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 SN
Re: (Score:2)
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
Re: (Score:2)
GoodSNES (and all the other Good* sets) are shit. I'd recommend No-Intro sets if you can find them - I don't necessarily agree with all their positions but their main goal is 100% known good dumps of retail cartridges. Good* is so inaccurate, there are broken ROMs listed as [!], hoax betas labeled as real, and other such problems.
Attention to detail, or games will crash (Score:5, Informative)
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: (Score:2)
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: (Score:2)
Touch Fuzzy, Get Dizzy
Re: (Score:2)
Wikipedia says the German name for the level is "Lustiges Sporen Drama" - "Funny Spore Drama", the initials of which are LSD. LSD starts with ergot spores =)
Re: (Score:3)
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.
MAME (Score:2)
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: (Score:2)
Nothing new, same was done for speciality chips in SNES cartridges.
Re: (Score:2, Informative)
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 year
Re: (Score:2)
Can you give examples of the inefficient functions and gross hacks in MAME?
Always been a fan of ZSNES (Score:3)
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: (Score:2)
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 (Score:3, Insightful)
3GHz is a measure of frequency, not power. Words mean things, use them correctly.
Re: (Score:2)
Re: (Score:2)
His objection is almost certainly that work per cycle is not constant. Why assume something that is clearly false?
Re: (Score:2)
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: (Score:2)
His objection is almost certainly that work per cycle is not constant.
To me, the wording of AC's comment sounded like a pedantic "Quantity X and quantity Y are not commensurable [wikipedia.org] and thus can never be compared" retort. So I offered a unit conversion by which they could be made commensurable. A proper response, like Osgeld's below [slashdot.org], would begin to explain why this conversion factor is not constant.
Re: (Score:3)
so your saying that processors have not gotten more powerful over the last 2 decades
An Atom CPU, the kind of CPU likely to be found in a nettop PC that might be hooked up to a large monitor, does about the same amount of work per cycle as a P4 did.
and if I could overclock my pentium90 to 3ghz it would perform exactly the same as a i7
That's exaggerating things a bit, but a dual core doesn't speed up multiple processes; it just lets you run more than one process at once. I don't see how the core of a cycle-accurate emulator can be multithreaded. If you emulate each component of a system (65816, PPU1+PPU2, SPC700, DSP) in a separate thread, the overhead of locking to ensure syn
Re: (Score:2)
An Atom CPU, the kind of CPU likely to be found in a nettop PC that might be hooked up to a large monitor, does about the same amount of work per cycle as a P4 did.
That's not really a fair example, since Intel hasn't touched the Atom's microarchitecture since 2008 when it first came out, and the architecture itself is a throwback to processor designs from the late 80s to early 90s (i486/i586). It's reportedly half the performance of a Pentium-M, and that's about how much faster the Pentium-M was compared to the Pentium 4, so it makes sense that the performance of Atom would be about on-par with with P4 clock-for-clock. Of course, the Pentium-M is much less performant
So I guess you're right: i7 IPC is four times Atom (Score:3)
Of course, the Pentium-M is much less performant clock-for-clock than a modern Sandy Bridge i7
By how much? After many blind alleys on Google, sandy bridge "pentium M" benchmark eventually brought me to this comparison [notebookcheck.net]. I chose Intel Core i7 2657M, Intel Core Duo T2250 (representative of Pentium M microarchitecture), and Intel Atom D525, all dual core and all at roughly the same 1.6-1.8 GHz clock. Performance for the i7 appears twice that of the Core Duo, which in turn is twice that of the Atom.
To which new functionality do you refer? (Score:2)
while being X times smaller and using 1/3rd of the power
That's progress, I agree. (For the avoidance of doubt, by "work" I was referring to progress through a computation, not dissipated heat.)
it was designed using the P4 and it does not represent modern technology
Then what set-top boxes do represent modern technology? I was under the impression that products such as Acer Veriton still had Atom CPUs. Or are you in the "set-top PCs don't exist" camp?
and no other functionality was introduced into the i386 architecture
To which specific new functionality introduced between Atom and Core i series do you refer?
Re: (Score:3)
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: (Score:2)
I assumed he was referring to the emulated CPU.
Re: (Score:2)
somehow i think the gp knows better
Slow ROM vs. fast ROM (Score:3)
Emulation of TV screen or PC CRT often forgotten (Score:2)
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 wi
Re: (Score:2)
TV emulation (Score:2)
Atari ST emulators! (Score:2)
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)
i prefer snes9x (Score:3)
over zsnes. the sound dev for zsnes if i remember correctly is also the head dev for bsnes. both now require oss4.0 on linux for sound, he infact refuses to code zsnes to the specs and documentation on zsnes on purpose to push people to oss4(as in he calls the devices directly rather then through alsa-lib so library can do sound mixing on non hardware sound mixing cards for example). This is a no go for me due to what the company behind oss and oss4 did. years ago oss was the only sound system for linux, what people in the foss movement and people running linux in particular did not know was the company behind oss was just using them for free code debugging and feature improvement. Once the code matured to something that they could sell they closed off any more code improvements to the foss crowed and started selling their work. this royally pissed off a lot of people, enough that alsa was made so linux would always have a sound system that can't be yanked out from under them like that.
years later the same company comes out with oss4, promising they won't do what they did before. the past experience plus the fact that some of the code in oss4 uses stuff that the kernel devs have now decided does not belong in the kernel as it could allow a single program to hard lock the machine. prevents it from being allowed in and not get the tainted kernel status which means your bug reports will be ignored. because of this the oss4 people like the one who makes bsnes and codes the sound system for zsnes cry 'i'm being prosecuted for using a Superior system!' alsa isn't perfect but it's better then the alternative that can and will get yanked out from under people once they deem it so after pulling the same trick again.
so in short if oss4 is required for 'accuracy' i will take inaccurate but functional any day.
Re: (Score:2)
nope. this is about practicality, imagine if windows had to rely on a sound system that could be taken out from under them by the whims of a third party? this is exactly what happened with linux and oss years ago. Alsa was made to stop that so they would have a stable and permanent sound system.
This is not comparable to the gnome vs kde or vi vs emacs wars where both programs work equally as well and just out of spite don't work together. This is instead where there is one now widely adopted and standardize
Why emulate when you can have the real thing (Score:2)
http://www.fpgaarcade.com/ [fpgaarcade.com]
More focused on older arcade systems at the moment, but since it's powerful enough to "be" an Amiga computer I figured it's probably powerful enough to be a NES, SNES, TurboGrafx-16, Neo-Geo, etc
Re: (Score:2)
It's mentioned in TFA. Really. Go read it. If you're so lazy you can't be bothered, here's a summary: the author reckons FPGAArcade is great, but accessible to relatively few people.
synching between threads (Score:2)
TFA makes it sound like syching between threads is an open problem.
It's not.
And pipelining / OOO execution has next to nothing to do with synching between two cores, which operate on a much, much coarser level of granularity.
Re: (Score:2)
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: (Score:2)
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: (Score:2)
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.
Feel difference and lag (Score:2)
Mario slides just a bit too far or jumps a bit too fast.
I program NES games as a hobby, and I've never had a substantial problem with the physics in my own games differing between when the game is run on an emulator and on an NES.
I can suggest two different causes for what you observe. It could be failure in muscle memory due to not using an authentic controller. A keyboard will have a completely different feel than a gamepad, and the directional pad on many PC gamepads (even Microsoft's own Xbox 360 controller) makes it too easy to press diagonally when you'
Re: (Score:2)
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.
Re: (Score:2)
Not to spout "RTFA", but the author addressed this exact point. He points to DICE, the Discrete Integrated Circuit Emulator, which simulates classic games on the transistor level (including propagation). So, this is pretty much as accurate as you can possibly get, unless you want to emulate on the atomic level.
How is performance? Well, one of the primary games it emulates (on the physical circuitry level, of course) is Pong. The original. Modern computers aren't quite fast enough to run it at full speed, al
Re: (Score:2)
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: (Score:2)
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.
Earthbound (Score:2)
Have you ever heard of the Wii Virtual Console?
Grandparent mentioned "rare or impossible to find titles". Let me know when Earthbound makes it to VC.
Re: (Score:2)
I had Earthbound on my Wii a while ago, played through the entire game. Oh, you meant a Nintendo-approved VC game.
Softmodders can inject a SNES ROM into another VC image (I think it has to be the same memory size) and it generally works fine, albeit with the old game's picture in the channel.
Re: (Score:2)
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: (Score:2)
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.
Re: (Score:2)
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]
The problem with both of these issues, and IMO the point behind emulators, is that hardware does not have an infinite life. You're already seeing NES consoles out there with dead PPUs, controllers so worn that they're unusable, hell, I'd wager 90% of the machines out in the wild need their capacitors replaced. I'm picking on the NES, sure, but it's well along the path that all our beloved console stuff will travel down. There were a huge number produced, but that number is certainly not infinite. Eventually
Re: (Score:2)
"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 dang
Re: (Score:2)
Picture a curve at about 3.5mhz. Now picture approximating that curve digitally, which you can never do exactly as the sample size approaches infinity close to 0.
The closer you get to being accurate (the "graph hole" where sample size is 0) the faster and faster you need to perform these calculations if you wish to do this all in realtime.
Does this make more sense?
Re: (Score:2)
Driving a Ferarri at about the same speed as a bicycle isn't all that hard. Driving the Ferarri behind a bicycle at *exactly* the same speed such that the front bumper of the Ferarri is always exactly 1mm away from touching the spinning rear wheel of the bicycle, that's a lot harder. Now add a motorcycle behind your Ferarri trying to do the same thing, and a segway behind the motorcycle, and a battle tank behind the segway, and a skateboard behind the battle tank, and you might start to appreciate how hard
Re:Is there an actual article here? (Score:4, Informative)
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.
Re: (Score:2)
RTFA. You're working on entirely different levels. The amount of 'thinking' involved in emulating a 20 year old video game console is, obviously, below trivial for a modern PC (or graphing calculator, frankly). If we're going to continue with the metaphor, accurately emulating a NES is more a problem of emulating the precise eccentric way in which it thinks. Anyway, there's a perfectly good technical explanation of why it's a problem right behind the link in the summary. It's written by a guy who's been doi