The world of perfect video game emulation
August 9, 2011 6:30 PM Subscribe
Accuracy takes power: one man's 3GHz quest to build a perfect SNES emulator. The author of the SNES emulator bsnes talks about the difficulties in creating emulators that accurately simulate classic game consoles, and why it will take lifetimes to generate enough computer power to perfectly recreate the most modern consoles.
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.
I can only tip my hat to this level of obsessiveness in a good and interesting cause — this is an interesting historical-preservation endeavor as well as a bunch of good hacks. And he's right that there's a very thorny and interesting issue about the archiving and preservation of games (or software in general). All hardware eventually breaks, and most breaks quickly; but we want to keep as much software as possible around, since it's part of our cultural history.
But even putting Moore's Law aside entirely, at some point doesn't it become a more efficient use of time and money just to re-create the hardware? I think we're less than a decade away from someone putting together a boutique "retro" chip fab for things like this.
posted by RogerB at 6:55 PM on August 9, 2011 [4 favorites]
I can only tip my hat to this level of obsessiveness in a good and interesting cause — this is an interesting historical-preservation endeavor as well as a bunch of good hacks. And he's right that there's a very thorny and interesting issue about the archiving and preservation of games (or software in general). All hardware eventually breaks, and most breaks quickly; but we want to keep as much software as possible around, since it's part of our cultural history.
But even putting Moore's Law aside entirely, at some point doesn't it become a more efficient use of time and money just to re-create the hardware? I think we're less than a decade away from someone putting together a boutique "retro" chip fab for things like this.
posted by RogerB at 6:55 PM on August 9, 2011 [4 favorites]
"Take the case of DICE, the digital integrated circuit emulator. Here is an emulator that works at the transistor level for absolutely perfect recreation of the very first video games ever created. To run Pong at about 5-10fps, DICE requires a 3GHz processor. Yes, you read that right: no computer processor at this time that can run Pong at the circuit level at full speed. It's not that DICE is a slow program; indeed, it is very well optimized. It's that there is enormous overhead to simulating every last transitor propagation delay."
Fascinating. If you'd asked me before I read this article if my Macbook Pro would emulate Pong at full speed, I would have said "of course."
Has some implications for how likely it is we're going to be doing anything like faithfully simulating brain action or the physics of a room anytime soon.
posted by weston at 7:00 PM on August 9, 2011 [6 favorites]
Fascinating. If you'd asked me before I read this article if my Macbook Pro would emulate Pong at full speed, I would have said "of course."
Has some implications for how likely it is we're going to be doing anything like faithfully simulating brain action or the physics of a room anytime soon.
posted by weston at 7:00 PM on August 9, 2011 [6 favorites]
Fascinating. If you'd asked me before I read this article if my Macbook Pro would emulate Pong at full speed, I would have said "of course."
Me too. And when told it wouldn't, I would say "so build the hardware, don't simulate it".
posted by DU at 7:07 PM on August 9, 2011 [2 favorites]
Me too. And when told it wouldn't, I would say "so build the hardware, don't simulate it".
posted by DU at 7:07 PM on August 9, 2011 [2 favorites]
Fascinating. If you'd asked me before I read this article if my Macbook Pro would emulate Pong at full speed, I would have said "of course."
Me three. It's been kind of boggling my mind for a few minutes now.
posted by kbanas at 7:13 PM on August 9, 2011
Me three. It's been kind of boggling my mind for a few minutes now.
posted by kbanas at 7:13 PM on August 9, 2011
Fascinating. If you'd asked me before I read this article if my Macbook Pro would emulate Pong at full speed, I would have said "of course."
Has some implications for how likely it is we're going to be doing anything like faithfully simulating brain action or the physics of a room anytime soon.
Okay, the problem he's talking about here is emulation of transistor-level logic, totally in software, on an x86 processor. This requires that the x86 processor sequentially simulate a number of things that really should be happening simultaneously and semi-instantaneously in some situations. And then also retard itself for other, slower things to finish.
For a pong game, just build a copy of the circuit. That's your emulation right there.
For the NES's z80, you can far more easily do a faithful simulation of the chip if you allow any hardware, and not just dominant desktop CPUs. Use an FPGA to simulate the original z80 chip, and you can do much better than a desktop computer.
For a brain simulation, or high-fidelity physics, an insanely parallel system is preferable. I expect a faithful brain simulator will look like billions of nano cells, each no more capable than any given neuron is, all linked up in an ad-hoc lattice. Much like an organic brain.
posted by Netzapper at 7:15 PM on August 9, 2011 [3 favorites]
Has some implications for how likely it is we're going to be doing anything like faithfully simulating brain action or the physics of a room anytime soon.
Okay, the problem he's talking about here is emulation of transistor-level logic, totally in software, on an x86 processor. This requires that the x86 processor sequentially simulate a number of things that really should be happening simultaneously and semi-instantaneously in some situations. And then also retard itself for other, slower things to finish.
For a pong game, just build a copy of the circuit. That's your emulation right there.
For the NES's z80, you can far more easily do a faithful simulation of the chip if you allow any hardware, and not just dominant desktop CPUs. Use an FPGA to simulate the original z80 chip, and you can do much better than a desktop computer.
For a brain simulation, or high-fidelity physics, an insanely parallel system is preferable. I expect a faithful brain simulator will look like billions of nano cells, each no more capable than any given neuron is, all linked up in an ad-hoc lattice. Much like an organic brain.
posted by Netzapper at 7:15 PM on August 9, 2011 [3 favorites]
How much further do FPGA and similar technologies need to improve before you can just flash a chip into an SNES?
Basically not at all? The real issue is that we don't all have an FPGA in our computers.
Which is really just a matter of time.
posted by Netzapper at 7:19 PM on August 9, 2011
Basically not at all? The real issue is that we don't all have an FPGA in our computers.
Which is really just a matter of time.
posted by Netzapper at 7:19 PM on August 9, 2011
At some point, the secrecy surrounding 3D graphics hardware is going to get in the way of doing low-level emulation. And reverse engineering these chips is way more than a one-person job.
posted by miyabo at 7:20 PM on August 9, 2011 [1 favorite]
posted by miyabo at 7:20 PM on August 9, 2011 [1 favorite]
But even putting Moore's Law aside entirely, at some point doesn't it become a more efficient use of time and money just to re-create the hardware? I think we're less than a decade away from someone putting together a boutique "retro" chip fab for things like this.
The original PS3 included hardware emulation of the PS2, I believe. For the hobbyist, I think it's fair to say that this is impossible. Modern graphics processors are now into the billions of transistors; good luck reverse engineering.
posted by eddydamascene at 7:20 PM on August 9, 2011
The original PS3 included hardware emulation of the PS2, I believe. For the hobbyist, I think it's fair to say that this is impossible. Modern graphics processors are now into the billions of transistors; good luck reverse engineering.
posted by eddydamascene at 7:20 PM on August 9, 2011
At some point, the secrecy surrounding 3D graphics hardware is going to get in the way of doing low-level emulation. And reverse engineering these chips is way more than a one-person job.
For a couple years in there, you're right.
However, more modern games are written to an API.
One of the reasons that the N64 emulator requires so much less horsepower to get things right is that it can offload 3D graphics to the 3D card. The most basic rendering of polygons on a screen hasn't changed in probably twenty years. Just get the settings right, and you can emulate pretty much any 3D graphics layer in any other.
posted by Netzapper at 7:26 PM on August 9, 2011
For a couple years in there, you're right.
However, more modern games are written to an API.
One of the reasons that the N64 emulator requires so much less horsepower to get things right is that it can offload 3D graphics to the 3D card. The most basic rendering of polygons on a screen hasn't changed in probably twenty years. Just get the settings right, and you can emulate pretty much any 3D graphics layer in any other.
posted by Netzapper at 7:26 PM on August 9, 2011
NetZapper: there's enough gates to literally do a pretty-much gate-level recreation of all the chips inside a SNES on FPGAs that exist today?
I have no idea. I didn't mean that. But, you could do parts of it on FPGA, and do the rest in software. And it's only a short matter of time before FPGAs have enough gates for it. And, besides, you can use more than one--the SNES wasn't one chip.
My point was really about brain simulation, though. If you're out of the realm of 90's video games, and into the realm of cybernetic simulations, I don't think it's fair to draw conclusions on possible states of the art from comparison with Javascript Pong emulations.
posted by Netzapper at 7:32 PM on August 9, 2011
I have no idea. I didn't mean that. But, you could do parts of it on FPGA, and do the rest in software. And it's only a short matter of time before FPGAs have enough gates for it. And, besides, you can use more than one--the SNES wasn't one chip.
My point was really about brain simulation, though. If you're out of the realm of 90's video games, and into the realm of cybernetic simulations, I don't think it's fair to draw conclusions on possible states of the art from comparison with Javascript Pong emulations.
posted by Netzapper at 7:32 PM on August 9, 2011
there's enough gates to literally do a pretty-much gate-level recreation of all the chips inside a SNES on FPGAs that exist today?
Sure. The biggest FPGAs available today can simulate ~4.5 million ASIC gates per FPGA, and you can get boards with multiple FPGAs on them. That's more gates than a SNES or even an N64 has.
posted by jedicus at 7:35 PM on August 9, 2011 [2 favorites]
Sure. The biggest FPGAs available today can simulate ~4.5 million ASIC gates per FPGA, and you can get boards with multiple FPGAs on them. That's more gates than a SNES or even an N64 has.
posted by jedicus at 7:35 PM on August 9, 2011 [2 favorites]
This requires that the x86 processor sequentially simulate a number of things that really should be happening simultaneously and semi-instantaneously in some situations.
This isn't true at all. Transistors have a very measurable propagation delay.
This is why CPUs and most electronic components have clocks that "tick" no faster than the propagation time of the slowest transistor of the system, so that everything is lined up in time for each cycle.
If you've got a 3.0GHz processor emulating a 3.56MHz chip, you've got enough time to do nearly a thousand operations for each cycle of the chip being emulated. Emulating the delay (especially when emulating multiple chips with different clocks) might be difficult, but I'm not entirely convinced that it's difficult enough to rail a 3.0GHz CPU...
I'm not quite ready to call bullshit on the bsnes guy, but it'd be nice to hear somebody else talk about the subject, rather than claiming his own invention to be the holy grail of emulation. The guy kind of talks like an audiophile, which is generally does not inspire confidence.
posted by schmod at 8:08 PM on August 9, 2011 [7 favorites]
This isn't true at all. Transistors have a very measurable propagation delay.
This is why CPUs and most electronic components have clocks that "tick" no faster than the propagation time of the slowest transistor of the system, so that everything is lined up in time for each cycle.
If you've got a 3.0GHz processor emulating a 3.56MHz chip, you've got enough time to do nearly a thousand operations for each cycle of the chip being emulated. Emulating the delay (especially when emulating multiple chips with different clocks) might be difficult, but I'm not entirely convinced that it's difficult enough to rail a 3.0GHz CPU...
I'm not quite ready to call bullshit on the bsnes guy, but it'd be nice to hear somebody else talk about the subject, rather than claiming his own invention to be the holy grail of emulation. The guy kind of talks like an audiophile, which is generally does not inspire confidence.
posted by schmod at 8:08 PM on August 9, 2011 [7 favorites]
The Amiga 500 was implemented on an FPGA 6 years ago with the Minimig, using a Spartan 3, a mid-level device. So doing a SNES is absolutely in the realm of possibility these days.
posted by zsazsa at 8:08 PM on August 9, 2011 [1 favorite]
posted by zsazsa at 8:08 PM on August 9, 2011 [1 favorite]
Now I want to know how accurate Nintendo's own emulators, for the virtual console on the wii, really are. I assume there's a good amount of ROM hacking going on there, otherwise they would have made a lot more titles available a lot more quickly, right?
posted by thecaddy at 8:14 PM on August 9, 2011 [1 favorite]
posted by thecaddy at 8:14 PM on August 9, 2011 [1 favorite]
The guy kind of talks like an audiophile, which is generally does not inspire confidence.
Yeah, I've found him a bit too sure of himself, and a bit self righteous about the whole thing.
See this post.
That led me to my next epiphany. I've been wasting years of my life chasing some foolish dream, all for nothing. The people who could ever care already do, the rest never will. All I've done was get upset and depressed at the constant barrages about how bad my emulator is because it won't run on their eMachines PC from 1999, and what a jerk I am for posting about why accuracy matters. All I've done was compromise my own values by trying to build bridges and meet at the middle ground. All in vain.
Why? Why bother anymore? I don't have it in me to care anymore. I've given up. bsnes is no different from any of my other projects: doomed to obscurity. But you know what drives me to spend seven years on Der Langrisser, only to have about 1,000 people download it? What drives me to work on bsnes for six years only to have about 7,000 people download it? It's because I do it for myself, and not for anyone else. I personally enjoy it.
Huh, they just don't understand his genius.
posted by zabuni at 8:32 PM on August 9, 2011 [3 favorites]
Yeah, I've found him a bit too sure of himself, and a bit self righteous about the whole thing.
See this post.
That led me to my next epiphany. I've been wasting years of my life chasing some foolish dream, all for nothing. The people who could ever care already do, the rest never will. All I've done was get upset and depressed at the constant barrages about how bad my emulator is because it won't run on their eMachines PC from 1999, and what a jerk I am for posting about why accuracy matters. All I've done was compromise my own values by trying to build bridges and meet at the middle ground. All in vain.
Why? Why bother anymore? I don't have it in me to care anymore. I've given up. bsnes is no different from any of my other projects: doomed to obscurity. But you know what drives me to spend seven years on Der Langrisser, only to have about 1,000 people download it? What drives me to work on bsnes for six years only to have about 7,000 people download it? It's because I do it for myself, and not for anyone else. I personally enjoy it.
Huh, they just don't understand his genius.
posted by zabuni at 8:32 PM on August 9, 2011 [3 favorites]
Now I want to know how accurate Nintendo's own emulators, for the virtual console on the wii, really are. I assume there's a good amount of ROM hacking going on there, otherwise they would have made a lot more titles available a lot more quickly, right?
I haven't played around with the virtual console at all, so I can't say how accurate or good the emulation is, but the reason that Nintendo releases games so slowly for it is twofold.
1. They don't want to flood the market with 100s of games. People are way more likely to buy second-rate games (Adventure Island 2, or something) if there isn't a Super Mario World on there.
2. Nintendo doesn't understand online at all, which is why their wii stores are so utterly awful in general.
posted by graventy at 8:35 PM on August 9, 2011 [5 favorites]
I haven't played around with the virtual console at all, so I can't say how accurate or good the emulation is, but the reason that Nintendo releases games so slowly for it is twofold.
1. They don't want to flood the market with 100s of games. People are way more likely to buy second-rate games (Adventure Island 2, or something) if there isn't a Super Mario World on there.
2. Nintendo doesn't understand online at all, which is why their wii stores are so utterly awful in general.
posted by graventy at 8:35 PM on August 9, 2011 [5 favorites]
Now I want to know how accurate Nintendo's own emulators, for the virtual console on the wii, really are. I assume there's a good amount of ROM hacking going on there, otherwise they would have made a lot more titles available a lot more quickly, right?
I think I read somewhere that each virtual console game is a self-contained executable; the wii doesn't have emulation APIs. That would mean they have developers porting the source code of each game to run on the wii.
posted by wayland at 8:36 PM on August 9, 2011
I think I read somewhere that each virtual console game is a self-contained executable; the wii doesn't have emulation APIs. That would mean they have developers porting the source code of each game to run on the wii.
posted by wayland at 8:36 PM on August 9, 2011
When it comes to CPUs, the rules are pretty simple. Manufacturers keep the internal design of the CPU a secret, but they make the binary interface public for anyone who asks. They keep that binary interface constant for years or decades at a time, and eventually someone somewhere writes a book on how to make your own or releases an open-source VHDL implementation. Life is still difficult if you're emulating games that are really dependent on that secret internal design, but at least you can get to 95% compatibility without too much trouble.
GPUs are a completely different story. Manufacturers keep the design of the GPU and its binary interface secret; they only expose a software API. In addition to the internal design, the binary interface also changes radically from version to version. So to emulate a modern game at the hardware level, you need to have binary compatibility with something that's pretty much undocumented. I'm sure someone will try it, but I doubt they'll be nearly as successful as present-day emulator writers.
It's much easier to emulate just the console CPU, and send graphics calls to a real graphics driver talking to a real graphics card. I believe that's what the N64 and PS2 emulators already do. But it doesn't get you the kind of accuracy described in the article.
posted by miyabo at 8:43 PM on August 9, 2011 [2 favorites]
GPUs are a completely different story. Manufacturers keep the design of the GPU and its binary interface secret; they only expose a software API. In addition to the internal design, the binary interface also changes radically from version to version. So to emulate a modern game at the hardware level, you need to have binary compatibility with something that's pretty much undocumented. I'm sure someone will try it, but I doubt they'll be nearly as successful as present-day emulator writers.
It's much easier to emulate just the console CPU, and send graphics calls to a real graphics driver talking to a real graphics card. I believe that's what the N64 and PS2 emulators already do. But it doesn't get you the kind of accuracy described in the article.
posted by miyabo at 8:43 PM on August 9, 2011 [2 favorites]
For the NES's z80, you can far more easily do a faithful simulation of the chip if you allow any hardware, and not just dominant desktop CPUs.
The NES doesn't contain a Z80; that's the Master System and Genesis. It contains a Ricoh 2A03, a work-alike of the 6502 without the decimal instructions.
Wii Virtual Console games are largely self-contained, but I think games from the same system share emulator software. That's why, if you install a Virtual Console game and it says it'll take 22 blocks, it'll actually take up far fewer blocks than that if you already have a game from that system already installed.
Surprisingly at the time, there were workable N64 emulators during the N64's own lifecycle. The thing is they didn't run every game; they used some quirks of Nintendo's compilers to translate instructions at a higher level than instruction for instruction.
posted by JHarris at 9:21 PM on August 9, 2011 [1 favorite]
The NES doesn't contain a Z80; that's the Master System and Genesis. It contains a Ricoh 2A03, a work-alike of the 6502 without the decimal instructions.
Wii Virtual Console games are largely self-contained, but I think games from the same system share emulator software. That's why, if you install a Virtual Console game and it says it'll take 22 blocks, it'll actually take up far fewer blocks than that if you already have a game from that system already installed.
Surprisingly at the time, there were workable N64 emulators during the N64's own lifecycle. The thing is they didn't run every game; they used some quirks of Nintendo's compilers to translate instructions at a higher level than instruction for instruction.
posted by JHarris at 9:21 PM on August 9, 2011 [1 favorite]
I only read the first paragraph of the article and I had to think of Heidegger immediately. Let me explain.
First, what is accuracy supposed to mean here? Yes, I didn't read on, so, in a certain sense, I don't know, but I guess in this context it has something to do with a kind of longing for objectivity that connects physical timing with game play feeling. This is where good old Heidegger comes into play. Normal emulators aren't that far off, at least if everything works alright, i.e. they don't cause lag or any other problems that stand between the tips of your fingers and some onscreen pixel action, at least not in an irritating way. And even if there is a slight delay, when you are committed to a game and its objectives, doesn't this always allow you to desist from any merely real world physical obstructions? I mean, come on…
posted by quoquo at 9:27 PM on August 9, 2011 [1 favorite]
First, what is accuracy supposed to mean here? Yes, I didn't read on, so, in a certain sense, I don't know, but I guess in this context it has something to do with a kind of longing for objectivity that connects physical timing with game play feeling. This is where good old Heidegger comes into play. Normal emulators aren't that far off, at least if everything works alright, i.e. they don't cause lag or any other problems that stand between the tips of your fingers and some onscreen pixel action, at least not in an irritating way. And even if there is a slight delay, when you are committed to a game and its objectives, doesn't this always allow you to desist from any merely real world physical obstructions? I mean, come on…
posted by quoquo at 9:27 PM on August 9, 2011 [1 favorite]
That was an interesting read... I guess I kinda knew how emulators worked, but this was a good, somewhat lower level look at it. Pretty neat, if a little crazy...
posted by ph00dz at 9:32 PM on August 9, 2011
posted by ph00dz at 9:32 PM on August 9, 2011
The Wii virtual console games use an emulator - it's possible with a little bit of trickery to take an existing virtual console SNES game and modify it to play other ROM files.
posted by Veritron at 9:33 PM on August 9, 2011 [1 favorite]
posted by Veritron at 9:33 PM on August 9, 2011 [1 favorite]
I don't know, but I guess in this context it has something to do with a kind of longing for objectivity that connects physical timing with game play feeling.
No.
Yes, I didn't read on
Obviously. Since you didn't bother to read the article or understand what you're talking about, there isn't really much reason to bother with the rest of your post, which was based on an incorrect premise.
posted by delmoi at 9:50 PM on August 9, 2011 [2 favorites]
No.
Yes, I didn't read on
Obviously. Since you didn't bother to read the article or understand what you're talking about, there isn't really much reason to bother with the rest of your post, which was based on an incorrect premise.
posted by delmoi at 9:50 PM on August 9, 2011 [2 favorites]
Huh, they just don't understand his genius.
Yeah, it's very interesting on some levels but having worked on OSS and free projects, this has the tone and timbre of a "People just don't understand how hard it is to do X to a level of perfection only I desire" post.
I appreciate the preservationist impulse, but archival simulation and recreational simulation are two very different things.
posted by verb at 9:57 PM on August 9, 2011
Yeah, it's very interesting on some levels but having worked on OSS and free projects, this has the tone and timbre of a "People just don't understand how hard it is to do X to a level of perfection only I desire" post.
I appreciate the preservationist impulse, but archival simulation and recreational simulation are two very different things.
posted by verb at 9:57 PM on August 9, 2011
The premise is solid.
There's a game -- Axelay -- that I haven't played on a real SNES for more than a decade. It's a game with a heavy focus on audio visual atmosphere over top of a solid-ish schmup. It is in the upper echelons of those games that sought to create an emersive and emotive environment.
There's a level where you're on a floating space station and the music *should* come to a crescendo just as earth becomes visible for the first time in a gap of the space station. I've never had an emulator time the music and the graphics correctly, and it's one of those things where the whole is diluted to a noticeable amount.
posted by sleslie at 10:09 PM on August 9, 2011 [5 favorites]
There's a game -- Axelay -- that I haven't played on a real SNES for more than a decade. It's a game with a heavy focus on audio visual atmosphere over top of a solid-ish schmup. It is in the upper echelons of those games that sought to create an emersive and emotive environment.
There's a level where you're on a floating space station and the music *should* come to a crescendo just as earth becomes visible for the first time in a gap of the space station. I've never had an emulator time the music and the graphics correctly, and it's one of those things where the whole is diluted to a noticeable amount.
posted by sleslie at 10:09 PM on August 9, 2011 [5 favorites]
Here's how I would describe the progress of "accuracy" issue of emulation as we know it.
The first video game emulation goals were simply to make things work at all. This would be akin to watching Bob Ross on TV, buying a cheap paint set, and trying to paint some happy little trees. This worked about as well as you might think. A few games could be emulated, but not many. One of the first emulators, iNES, actually used default MIDI sound. We could tell these were trees, but they weren't too happy.
As time went on, breakthroughs occurred. NESticle opened up NES emulation to the majority of games rather than a handful. SNES9x and ZSNES tackled the enhancement chips in certain SNES games. VGEN started the ball rolling on CD platforms, namely the Sega CD. Bleem! put forth commercial Playstation emulation during the actual Playstation console support lifetime. Of course, that last one was killed by unsuccessful yet financially draining lawsuits. These were happy little trees indeed. They weren't quite the same as the ones Bob Ross painted, but the hand of emulation was becoming steady. The scenery looked right, the paintings were something people could look at and enjoy.
Current video game emulation goes in many directions. MAME covers thousands of different hardware sets, so emulation is incremental. The accuracy is limited by pragmatic time constraints and a desire to cover as many systems as possible. There are dozens of developers working at any time as well, it's a huge project. This would be akin to a roomful of artists working to paint those happy little trees along with every other commercially released painting in history, from the Picasso classics to the pieces in a Hong Kong alley mart that are signed by a man who nobody has seen in twenty years.
Other systems add on all manner of functionality. ZSNES had TCP/IP netplay at one point, most emulators include debug code viewing, hex edit (Game genie) insertion, and even LUA scripting in game. The latter is often used for tool-assisted emulation runs, such as that "no human could do that" Super Mario Bros. 3 run that has made the rounds, or speed runs of games where luck manipulation gets so ridiculous that the odds of just getting that response from the game's RNG reaches ten digits within a few minutes of play. This would be akin to watching Bob Ross then deciding to weld spraypainters and stencils to a '76 Chevy and go through a stunt course that would make Hollywood weep in order to paint happy little trees quickly, easily, and in ways that boggle the mind.
What this man is doing is watching intently to get every muscle twitch the same, use the exact same kind of brush in the same order to get just the right results, and try to paint happy little trees accurately enough that Bob Ross himself would not have been able to tell the difference. Seeing how as the hardware itself is not being built anymore and we aren't cloning Bob Ross yet, this accuracy is the best practical approach. Plenty of people don't care about the difference between 99% and 99.999%, but this guy does. This isn't wide audience appeal, it's the work of an archivist. Not everyone has to enjoy it, but this is a valuable project indeed. Your happy little trees are great and this project does not take anything away from them, but this is a guy who wants to make sure we remember as much as we can about how to make those happy little trees.
posted by Saydur at 11:44 PM on August 9, 2011 [31 favorites]
The first video game emulation goals were simply to make things work at all. This would be akin to watching Bob Ross on TV, buying a cheap paint set, and trying to paint some happy little trees. This worked about as well as you might think. A few games could be emulated, but not many. One of the first emulators, iNES, actually used default MIDI sound. We could tell these were trees, but they weren't too happy.
As time went on, breakthroughs occurred. NESticle opened up NES emulation to the majority of games rather than a handful. SNES9x and ZSNES tackled the enhancement chips in certain SNES games. VGEN started the ball rolling on CD platforms, namely the Sega CD. Bleem! put forth commercial Playstation emulation during the actual Playstation console support lifetime. Of course, that last one was killed by unsuccessful yet financially draining lawsuits. These were happy little trees indeed. They weren't quite the same as the ones Bob Ross painted, but the hand of emulation was becoming steady. The scenery looked right, the paintings were something people could look at and enjoy.
Current video game emulation goes in many directions. MAME covers thousands of different hardware sets, so emulation is incremental. The accuracy is limited by pragmatic time constraints and a desire to cover as many systems as possible. There are dozens of developers working at any time as well, it's a huge project. This would be akin to a roomful of artists working to paint those happy little trees along with every other commercially released painting in history, from the Picasso classics to the pieces in a Hong Kong alley mart that are signed by a man who nobody has seen in twenty years.
Other systems add on all manner of functionality. ZSNES had TCP/IP netplay at one point, most emulators include debug code viewing, hex edit (Game genie) insertion, and even LUA scripting in game. The latter is often used for tool-assisted emulation runs, such as that "no human could do that" Super Mario Bros. 3 run that has made the rounds, or speed runs of games where luck manipulation gets so ridiculous that the odds of just getting that response from the game's RNG reaches ten digits within a few minutes of play. This would be akin to watching Bob Ross then deciding to weld spraypainters and stencils to a '76 Chevy and go through a stunt course that would make Hollywood weep in order to paint happy little trees quickly, easily, and in ways that boggle the mind.
What this man is doing is watching intently to get every muscle twitch the same, use the exact same kind of brush in the same order to get just the right results, and try to paint happy little trees accurately enough that Bob Ross himself would not have been able to tell the difference. Seeing how as the hardware itself is not being built anymore and we aren't cloning Bob Ross yet, this accuracy is the best practical approach. Plenty of people don't care about the difference between 99% and 99.999%, but this guy does. This isn't wide audience appeal, it's the work of an archivist. Not everyone has to enjoy it, but this is a valuable project indeed. Your happy little trees are great and this project does not take anything away from them, but this is a guy who wants to make sure we remember as much as we can about how to make those happy little trees.
posted by Saydur at 11:44 PM on August 9, 2011 [31 favorites]
So, is he busy emulating the wood-veneer TV set your parents bought in the late 1970s with the slight vertical-hold problem, as well?
All part of the experience...you can't fake that.
posted by Jimbob at 1:20 AM on August 10, 2011 [1 favorite]
All part of the experience...you can't fake that.
posted by Jimbob at 1:20 AM on August 10, 2011 [1 favorite]
They can simulate all of the vertical-hold issues they want as long as they don't include a simulation of me tripping over the power cord, pulling the whole thing down off the TV, causing poor Mario and his Princess to die in the depths of Bowser's lair. (I would be slightly more OK if they neglected to simulate the part where I was totally unaware of SMB's "restart on the level you died on" feature which I just discovered like 2 years ago(!?!).)
posted by feloniousmonk at 3:04 AM on August 10, 2011 [1 favorite]
posted by feloniousmonk at 3:04 AM on August 10, 2011 [1 favorite]
Yes, you read that right: no computer processor at this time that can run Pong at the circuit level at full speed. It's not that DICE is a slow program; indeed, it is very well optimized. It's that there is enormous overhead to simulating every last transitor propagation delay."
The correct solution to this problem would be to emulate the hardware in Minecraft.
Also, this whole thing reminds me of the empire in that Borges story where cartography had become such an exact science that "the Cartographers Guilds struck a Map of the Empire whose size was that of the Empire, and which coincided point for point with it." Except the guy in question seems to be aiming to cover the whole planet with the map of a city.
posted by daniel_charms at 3:23 AM on August 10, 2011 [3 favorites]
The correct solution to this problem would be to emulate the hardware in Minecraft.
Also, this whole thing reminds me of the empire in that Borges story where cartography had become such an exact science that "the Cartographers Guilds struck a Map of the Empire whose size was that of the Empire, and which coincided point for point with it." Except the guy in question seems to be aiming to cover the whole planet with the map of a city.
posted by daniel_charms at 3:23 AM on August 10, 2011 [3 favorites]
I think he's not going far enough. Observe:
posted by Malor at 5:52 AM on August 10, 2011 [2 favorites]
Take the case of DICE, the digital integrated circuit emulator. Here is an emulator that works at the transistor level for absolutely perfect recreation of the very first video games ever created. To run Pong at about 5-10fps, DICE requires a 3GHz processor. Yes, you read that right: no computer processor at this time that can run Pong at the circuit level at full speed.I mean, clearly, even that's not good enough, because that simulator isn't handling the individual atoms that make up the transistors. It's emulating the idea of a Pong game. But it's not emulating my exact Pong machine from the 1970s, and that's just not good enough, dammit.
posted by Malor at 5:52 AM on August 10, 2011 [2 favorites]
I love the emulation scene oh so much. It takes my childhood whims and collecting compulsions, adds years of hard work and dedication and focus, and results in something that benefits everyone.
I am not interested in the emulation of any post-95 hardware, but good luck on those future projects.
For me, I'm still riding on the joy of the moment they first started emulating the Capcom arcade machine boards that ran Street Fighter 2. And the Neo Geo chipsets.
posted by Theta States at 6:47 AM on August 10, 2011
I am not interested in the emulation of any post-95 hardware, but good luck on those future projects.
For me, I'm still riding on the joy of the moment they first started emulating the Capcom arcade machine boards that ran Street Fighter 2. And the Neo Geo chipsets.
posted by Theta States at 6:47 AM on August 10, 2011
Yes, you read that right: no computer processor at this time that can run Pong at the circuit level at full speed.
All unnecessary. There's no need to simulate every transistor delay. To extend the Bob Ross analogy above: you're trying to recreate Bob's painting. To do so, you don't have to recreate the PBS affiliate studio in Muncie and grow your hair into a great orange 'fro.
posted by rocket88 at 7:09 AM on August 10, 2011 [1 favorite]
All unnecessary. There's no need to simulate every transistor delay. To extend the Bob Ross analogy above: you're trying to recreate Bob's painting. To do so, you don't have to recreate the PBS affiliate studio in Muncie and grow your hair into a great orange 'fro.
posted by rocket88 at 7:09 AM on August 10, 2011 [1 favorite]
Plenty of people don't care about the difference between 99% and 99.999%, but this guy does. This isn't wide audience appeal, it's the work of an archivist. Not everyone has to enjoy it, but this is a valuable project indeed. Your happy little trees are great and this project does not take anything away from them, but this is a guy who wants to make sure we remember as much as we can about how to make those happy little trees.
I'd be fine with that if he didn't wail about how all the emulators are wrong and wouldn't listen, and he doesn't care about fame, while he does an ars technica interview. The hipster emulator writer protesteth too much.
Still, free country, and if someone had to pick a console to emulate as close to the original as possible, the SNES would be the one, considering it's architecture was peculiar enough that those bugs would constantly show up. Even the normal emulators took forever to get the sound right, given the particulars of the sound chip.
I'm glad he fights the good fight, but railing against the world's apathy is a futile task and usually makes you look silly.
posted by zabuni at 8:05 AM on August 10, 2011
I'd be fine with that if he didn't wail about how all the emulators are wrong and wouldn't listen, and he doesn't care about fame, while he does an ars technica interview. The hipster emulator writer protesteth too much.
Still, free country, and if someone had to pick a console to emulate as close to the original as possible, the SNES would be the one, considering it's architecture was peculiar enough that those bugs would constantly show up. Even the normal emulators took forever to get the sound right, given the particulars of the sound chip.
I'm glad he fights the good fight, but railing against the world's apathy is a futile task and usually makes you look silly.
posted by zabuni at 8:05 AM on August 10, 2011
What a great article! Thanks for posting it. Emulation seems really important to me; I hate the idea that our first 50 years of software are mostly unrunnable.
posted by Nelson at 8:22 AM on August 10, 2011
posted by Nelson at 8:22 AM on August 10, 2011
I'd be fine with that if he didn't wail about how all the emulators are wrong and wouldn't listen, and he doesn't care about fame, while he does an ars technica interview. The hipster emulator writer protesteth too much.
That's looking at it in exactly the worst light. I don't see him ever denying that there aren't benefits to the more popular, faster emulators. He also never says that the fact that bsnes is somewhat obscure didn't bother him, it's just that he doesn't want it to bother him too much. That just seems like a healthy point of view in any case.
Also, calling him a hipster is kinda beyond the point and really annoying!
posted by The Devil Tesla at 8:25 AM on August 10, 2011 [2 favorites]
That's looking at it in exactly the worst light. I don't see him ever denying that there aren't benefits to the more popular, faster emulators. He also never says that the fact that bsnes is somewhat obscure didn't bother him, it's just that he doesn't want it to bother him too much. That just seems like a healthy point of view in any case.
Also, calling him a hipster is kinda beyond the point and really annoying!
posted by The Devil Tesla at 8:25 AM on August 10, 2011 [2 favorites]
Also, calling him a hipster is kinda beyond the point and really annoying!
I don't see it as beside the point. I used the term hipster to signify the fetishism of authenticity, which is a damn perfect description of the article.
posted by zabuni at 9:36 AM on August 10, 2011
I don't see it as beside the point. I used the term hipster to signify the fetishism of authenticity, which is a damn perfect description of the article.
posted by zabuni at 9:36 AM on August 10, 2011
I used the term hipster to signify the fetishism of authenticity, which is a damn perfect description of the article.
Civil War Recreationists: the new hipster.
posted by Theta States at 9:42 AM on August 10, 2011 [5 favorites]
Civil War Recreationists: the new hipster.
posted by Theta States at 9:42 AM on August 10, 2011 [5 favorites]
You're talking about two completely forms of "authenticity." Regardless of the artisianship of his product, this person is a preservationist at heart, not an artist. The sort of authenticity you describe is an attempt to replicate a past attempt at art, claiming the original held something other current attempts lack. This guy is doing something closer to fencing in a national park or drafting legislature to prevent the extinction of a species.
posted by griphus at 10:15 AM on August 10, 2011 [2 favorites]
posted by griphus at 10:15 AM on August 10, 2011 [2 favorites]
Surprisingly at the time, there were workable N64 emulators during the N64's own lifecycle.
After a few years of talking about "N64 Emulators" being the equivalent of sending newbies on a snipe hunt, I'll never forget the amazement of seeing Mario 64 running full speed in Corn on my 400 Mhz Celeron & Voodoo3 card.
I'm also shocked at how quickly the emulation scene got Wii emulators running games at full speed. Meanwhile, there seems to be no prospect of a working emulator for the original Xbox, which seems bizarre given how much more similar the hardware is to a PC.
Emulation seems really important to me; I hate the idea that our first 50 years of software are mostly unrunnable.
Do you mean "unrunnable apart from emulation?" Because it seems like if you count emulation, an amazing amount of that history is available and runnable, particularly compared with, say, the early days of film or TV or radio.
posted by straight at 11:17 AM on August 10, 2011 [1 favorite]
After a few years of talking about "N64 Emulators" being the equivalent of sending newbies on a snipe hunt, I'll never forget the amazement of seeing Mario 64 running full speed in Corn on my 400 Mhz Celeron & Voodoo3 card.
I'm also shocked at how quickly the emulation scene got Wii emulators running games at full speed. Meanwhile, there seems to be no prospect of a working emulator for the original Xbox, which seems bizarre given how much more similar the hardware is to a PC.
Emulation seems really important to me; I hate the idea that our first 50 years of software are mostly unrunnable.
Do you mean "unrunnable apart from emulation?" Because it seems like if you count emulation, an amazing amount of that history is available and runnable, particularly compared with, say, the early days of film or TV or radio.
posted by straight at 11:17 AM on August 10, 2011 [1 favorite]
Do you mean "unrunnable apart from emulation?" Because it seems like if you count emulation, an amazing amount of that history is available and runnable, particularly compared with, say, the early days of film or TV or radio.
Very much so. It's never been easier to relive the glory days of the Commodore 64 and Amiga 500.
posted by Theta States at 1:31 PM on August 10, 2011
Very much so. It's never been easier to relive the glory days of the Commodore 64 and Amiga 500.
posted by Theta States at 1:31 PM on August 10, 2011
I wanted a Game Boy/GBA emulator that could do VSync properly: VBA-M is that emulator
posted by East Manitoba Regional Junior Kabaddi Champion '94 at 1:53 PM on August 10, 2011 [1 favorite]
posted by East Manitoba Regional Junior Kabaddi Champion '94 at 1:53 PM on August 10, 2011 [1 favorite]
I'm also shocked at how quickly the emulation scene got Wii emulators running games at full speed. Meanwhile, there seems to be no prospect of a working emulator for the original Xbox, which seems bizarre given how much more similar the hardware is to a PC.
It is kinda weird, but there are good reasons for it. The fact that the Xbox hardware is basically a PC is kinda irrelevant. The closest thing we have to an Xbox emulator is actually a piece of software that turns the Xbox program into a Windows executable (Cxbx), which is really the only way to take advantage of the simularity. It didn't work too well. To actually completely emulate a full computer, which was what an Xbox was, is a complex task that no one has got around to, and now that the entirely different Xbox 360 is around people may ignore it. Bye bye xbox.
As for why the Wii is already being emulated, it is my understanding that the Gamecube was able to be emulated without too much complication because it was somewhat simple in design. Since the Wii is close to the Gamecube in design, the Wii is also now being emulated.
On a side note, the PS2 has only been able to run well recently, and not very well at that. This forum post goes over that, where they list just how many parts of the thing they had to account for. I imagine that the PS3 and Xbox360 are even more complex, which is why we probably won't see them around for a good long while.
posted by The Devil Tesla at 5:49 PM on August 10, 2011
It is kinda weird, but there are good reasons for it. The fact that the Xbox hardware is basically a PC is kinda irrelevant. The closest thing we have to an Xbox emulator is actually a piece of software that turns the Xbox program into a Windows executable (Cxbx), which is really the only way to take advantage of the simularity. It didn't work too well. To actually completely emulate a full computer, which was what an Xbox was, is a complex task that no one has got around to, and now that the entirely different Xbox 360 is around people may ignore it. Bye bye xbox.
As for why the Wii is already being emulated, it is my understanding that the Gamecube was able to be emulated without too much complication because it was somewhat simple in design. Since the Wii is close to the Gamecube in design, the Wii is also now being emulated.
On a side note, the PS2 has only been able to run well recently, and not very well at that. This forum post goes over that, where they list just how many parts of the thing they had to account for. I imagine that the PS3 and Xbox360 are even more complex, which is why we probably won't see them around for a good long while.
posted by The Devil Tesla at 5:49 PM on August 10, 2011
Would it be fair to say that the simpler a system is to emulate, the simpler it is to write software for?
I remember hearing grumbles from developers over the complexity back in the PS2 days...
posted by Theta States at 6:01 AM on August 11, 2011
I remember hearing grumbles from developers over the complexity back in the PS2 days...
posted by Theta States at 6:01 AM on August 11, 2011
Would it be fair to say that the simpler a system is to emulate, the simpler it is to write software for?
No.
Modern games are written to a very high level API. It's simpler to put a game on the screen with an XBox than it is to put it on the screen with an NES.
The eternal grumbling people do over console development is largely due to *weird decisions* made by the console designers that piss off people working at the edge of hardware limits, and not so much because actually writing generic stuff is hard.
Doing transistor-level emulation of an XBox would not be even remotely possible at the moment. So, you basically can't emulate an XBox.
However, you can implement the API/ABI that the games use, and provide capabilities identical to (or exceeding) the original XBox. But, it won't be a faithful reproduction--for instance, polygons might render in a different order on your emulator than on the XBox.
For an example of that kind of approach, check out WINE. It does a great job of (not) emulating windows simply by implementing the Windows API.
A similar thing can be done for modern console systems.
posted by Netzapper at 4:44 PM on August 11, 2011
No.
Modern games are written to a very high level API. It's simpler to put a game on the screen with an XBox than it is to put it on the screen with an NES.
The eternal grumbling people do over console development is largely due to *weird decisions* made by the console designers that piss off people working at the edge of hardware limits, and not so much because actually writing generic stuff is hard.
Doing transistor-level emulation of an XBox would not be even remotely possible at the moment. So, you basically can't emulate an XBox.
However, you can implement the API/ABI that the games use, and provide capabilities identical to (or exceeding) the original XBox. But, it won't be a faithful reproduction--for instance, polygons might render in a different order on your emulator than on the XBox.
For an example of that kind of approach, check out WINE. It does a great job of (not) emulating windows simply by implementing the Windows API.
A similar thing can be done for modern console systems.
posted by Netzapper at 4:44 PM on August 11, 2011
Netzapper, it seems to me that the ideal Xbox emulator would be a driver for VirtualBox or some other virtualization solution. Then you could take advantage of the similarity of the instruction set while simulating different hardware.
posted by JHarris at 6:49 PM on August 11, 2011
posted by JHarris at 6:49 PM on August 11, 2011
The PS2 is incredibly complicated, but it did come with near complete hardware documentation (which I suspect has leaked into the wild).
The PS3 and both XBox's hide significant parts of their graphics hardware behind closed source drivers. NVidia and ATI like to keep their secrets.
posted by inpHilltr8r at 11:16 PM on August 11, 2011
The PS3 and both XBox's hide significant parts of their graphics hardware behind closed source drivers. NVidia and ATI like to keep their secrets.
posted by inpHilltr8r at 11:16 PM on August 11, 2011
Back to emulating classic systems again:
Plenty of people don't care about the difference between 99% and 99.999%, but this guy does.
The thing is, due to the nature of computers, if you don't get 100%, then you won't be able to run all software, because the error caused by a single emulation flaw can propagate throughout the virtual machine and cause a result that could eventually break the game. He even gives an example of this in the article, how the SNES game Speedy Gonzales turns out to rely on a hardware edge case late in the game upon flipping a switch. The switch must be hit to finish the level, but hitting it crashes the game.
posted by JHarris at 10:07 AM on August 13, 2011
Plenty of people don't care about the difference between 99% and 99.999%, but this guy does.
The thing is, due to the nature of computers, if you don't get 100%, then you won't be able to run all software, because the error caused by a single emulation flaw can propagate throughout the virtual machine and cause a result that could eventually break the game. He even gives an example of this in the article, how the SNES game Speedy Gonzales turns out to rely on a hardware edge case late in the game upon flipping a switch. The switch must be hit to finish the level, but hitting it crashes the game.
posted by JHarris at 10:07 AM on August 13, 2011
« Older Free Coffee, anyone? | E-books Antitrust Litigation Newer »
This thread has been archived and is closed to new comments
posted by griphus at 6:51 PM on August 9, 2011 [1 favorite]