Speaker 1: Get in texts with technology with tex Stuff from how
Speaker 1: stuff works dot com. Hey there, and welcome to tex Stuff.
Speaker 1: I'm your host, Jonathan Strickland, senior writer for house stuff
Speaker 1: Works dot com. And before I get into any of
Speaker 1: this episode, I would like to let you guys know
Speaker 1: I've got a cold. It's a bad one. Earlier this
Speaker 1: week I was unable to speak. The people around me
Speaker 1: rejoiced because they got peace and quiet for a minute.
Speaker 1: But just letting you guys know, in case you're wondering,
Speaker 1: like why is Jonathan sound so weird or rather more
Speaker 1: weird than he normally sounds, is because I am recovering
Speaker 1: from said cold and my voice is probably somewhere between
Speaker 1: eighty and nine percent back. So um, got that out
Speaker 1: of the way. Today's episode is actually coming to us
Speaker 1: courtesy of a little listener mail, or actually it's from
Speaker 1: a listener tweet. I remember the tech stuff twitter handle
Speaker 1: is text stuff hs W, so if you tweet me there,
Speaker 1: I will see it. Uh. And this one comes from Dan,
Speaker 1: who says I'd love to hear a show on how
Speaker 1: video game emulators work. So today we're gonna explore what
Speaker 1: an emulator is, why they're necessary, and how they work. Now,
Speaker 1: first of all, I should say there are a lot
Speaker 1: of different types of emulators. Uh, it's not just for
Speaker 1: the video game world, but I'm gonna focus specifically on
Speaker 1: video games. And you might wonder, all right, so what
Speaker 1: is an emulator. Well, it does what it sounds like,
Speaker 1: It emulates some other technology, which means it's attempting to
Speaker 1: replicate how another technology works or or what it does. Now,
Speaker 1: sometimes the emulator does this in a very different way
Speaker 1: than the original technology did. And more often than not,
Speaker 1: an emulator relies on software at least partly to replicate
Speaker 1: a particular piece of a hardware's functionality. So you can
Speaker 1: think of emulators as being at least partly of actual machine. Uh,
Speaker 1: some of the components may actually be physical parts that
Speaker 1: are original to whatever the technology you're trying to emulate was.
Speaker 1: Other components are going to be purely software. And it's
Speaker 1: helpful to use a little analogy here to understand what
Speaker 1: an emulator tries to do. So let's say you've got
Speaker 1: two people, and you know what, let's give them some
Speaker 1: random names. So, just picking out of the air, I'm
Speaker 1: gonna go with Josh and Chuck. Now, both Josh and
Speaker 1: Chuck are in a jungle, but they are separated, so
Speaker 1: they're each individually in a jungle. Both are running from something. Uh,
Speaker 1: let's say they're being chased by aggressive badgers. So both
Speaker 1: of them have managed to put some distance between themselves
Speaker 1: and the furballs of fury chasing them. And then each
Speaker 1: of them individually comes to the edge of a pit
Speaker 1: two different pits, So Josh is at one pit, Chuck
Speaker 1: is at a different pit. There's no way around the pits.
Speaker 1: There's too much overgrowth on either side, so you have
Speaker 1: to go over it somehow, but you can't go around,
Speaker 1: and they each have a short amount of time to
Speaker 1: figure out a way around or rather over, their respective pits.
Speaker 1: So Josh decides what he's gonna do is fashion a
Speaker 1: makeshift bridge out of some branches on the ground and
Speaker 1: some vines, and so he binds them together and he
Speaker 1: lays the bridge across the pit. He crosses gingerly across,
Speaker 1: because you know, we know that Josh's sense of balance
Speaker 1: is somewhat precarious under the best of circumstances, gets to
Speaker 1: the other side, and then he kicks the bridge back
Speaker 1: into the pit so that the badgers can't just follow
Speaker 1: him across, and then he continues on his merry way. Meanwhile, Chuck,
Speaker 1: on the other hand, uses a vine to tie it
Speaker 1: to a branch and use that as kind of a
Speaker 1: grappling hook. He tosses it up into the limbs overhead
Speaker 1: and it catches, and so then he swings Tarzan like,
Speaker 1: bellowing the whole time, and he gets to the other side.
Speaker 1: Then he jerks the vine and dislodges the branch so
Speaker 1: that it falls down and throws that into the pit
Speaker 1: just in case. Badgers can also swing across pits, but
Speaker 1: that's because he has not yet read how Badgers work
Speaker 1: on How Stuffworks dot Com. So both Josh and Chuck
Speaker 1: got across their respective pits, but they both did so
Speaker 1: in very different ways. The end result was the same,
Speaker 1: but the pathway was different. That's sort of what emulators do.
Speaker 1: They're meant to produce a result that's identical to another technology,
Speaker 1: even if the pathway to get there is very different.
Speaker 1: A video game emulator is really meant to replicate how
Speaker 1: a specific machine works so that you can play the
Speaker 1: games that were designed for that machine, typically on a
Speaker 1: computer a PC. So an emulator could be a specific
Speaker 1: arcade game emulator, like for a very specific title, or
Speaker 1: it could be a video game console emulator, which means
Speaker 1: it could act like a video game console virtually and
Speaker 1: you could play the games made for that console on
Speaker 1: your computer. The end result is that you can play
Speaker 1: those games meant for one device on a totally different device.
Speaker 1: And and as I said before, typically we're talking about
Speaker 1: a personal computer. Now, emulators are not the same thing
Speaker 1: as ports. Supported game is one that developers originally created
Speaker 1: for one architecture system, and then they adapt that game
Speaker 1: for a totally different system. So the easiest example is
Speaker 1: a game that originally comes out on the PlayStation might
Speaker 1: get ported to the Xbox. These are totally different architectures.
Speaker 1: The video game consoles work in very different ways, so
Speaker 1: you can't just reformat and put it on an Xbox
Speaker 1: one disc and expected to work. You actually have to
Speaker 1: redesign parts of the game. That's what porting is all
Speaker 1: about now. Because each system, whether it's Xbox or PlayStation
Speaker 1: or mac Os or Windows, works in a very specific way.
Speaker 1: Those programs are not compatible, but apport can be reworked
Speaker 1: so that it will operate on those new systems. Now,
Speaker 1: an emulator is different. An emulator can run a game
Speaker 1: mint for once system on a totally different system because
Speaker 1: the emulator is doing the work. So instead of giving
Speaker 1: a game to a new group of developers and saying
Speaker 1: I need you to make this version of the game
Speaker 1: playable for this other system, you have a piece of
Speaker 1: software that pretends that it is the other system, and
Speaker 1: that way you don't have to have developers change the
Speaker 1: code of the end of the original game. You do
Speaker 1: have to have developers create the emulator. So it really
Speaker 1: just shifts the work from adapting a game to a
Speaker 1: different system to adapting an emulator to be able to
Speaker 1: work on whatever target machine you're talking about. Like I said,
Speaker 1: typically PC, more often than not it's a Windows based PC,
Speaker 1: but you also see them for Unix and mac os,
Speaker 1: so it's not like it's it's exclusive to Windows machines.
Speaker 1: Now it's necessary because video game consoles and even arcade
Speaker 1: games like the old arcade game cabinets, they have specific
Speaker 1: hardware and software architecture to them. So some of those
Speaker 1: old arcade machines don't really even have much software at all.
Speaker 1: It's like the lightest level of software. It's mostly circuitry,
Speaker 1: like hard coded circuitry. The game itself is represented in
Speaker 1: the circuits that are on the board within the arcade cabinet.
Speaker 1: It's kind of like the old cartridge based systems if
Speaker 1: you had one of those, like the old Nintendo Entertainment
Speaker 1: System or Super Nintendo or the Tari. Those are video
Speaker 1: games that would be programmed onto a circuit board that's
Speaker 1: housed inside of a cartridge, and you insert the cartridge
Speaker 1: into the video game console and some contacts between the
Speaker 1: console and the cartridge allow the console to read that
Speaker 1: information and then you're able to play the game. Uh.
Speaker 1: Obviously you don't have, for most PCs, a cartridge based
Speaker 1: system that can accept these games in this way. Now,
Speaker 1: in the olden days, arcade games contained a circuit board
Speaker 1: unique to that particular game. So, in other words, a
Speaker 1: an Asteroids machine was an Asteroids machine. That's all there
Speaker 1: was to it, because the circuit board had the Asteroids
Speaker 1: game on it. If you opened up a Pacman machine
Speaker 1: and you opened up a Donkey Kong machine, you'd find
Speaker 1: two different circuit boards. The pac Man one of the
Speaker 1: Donkey Kong one would be unique to those arcade games.
Speaker 1: They did have a very low level of software on
Speaker 1: the machines on the circuit boards called BIOS now that
Speaker 1: stands for Basic Input output system, and really it's just
Speaker 1: a foundational software layer. It's really just meant to be
Speaker 1: responsible for managing the relationship between input devices like a
Speaker 1: push button or a joystick or that sort of stuff,
Speaker 1: and the output devices like the monitor or even just
Speaker 1: what the game is supposed to do whenever you enact
Speaker 1: on those input devices. So the input could be a
Speaker 1: jump button, for example, you press the button and the
Speaker 1: output is you see your character jumping on the display.
Speaker 1: But keep in mind, the actual output is really the
Speaker 1: code for jumping and a signal to the arcade machines display. Right,
Speaker 1: the display is not making your character jump. That's being
Speaker 1: controlled by the code of the arcade machine itself. It's
Speaker 1: reflected on the monitor in a way that you can
Speaker 1: see by having the little character jump up in the air. Now,
Speaker 1: the game's circuit board handled everything else in those old
Speaker 1: machines besides that input output. The hardware was handling everything.
Speaker 1: It was just programmed directly onto the circuit board that
Speaker 1: include the game's sound, its graphics engine. It's logic if
Speaker 1: you had an arcade cabinet and you wanted to switch
Speaker 1: out games. Let's say you've got a Pacman cabinet and
Speaker 1: you think, I'm gonna put Donkey Kong in this cabinet
Speaker 1: and I'm gonna I want to switch out the games.
Speaker 1: What you had to do was gut the machine. You
Speaker 1: had to take all that circuitry and those connections out
Speaker 1: of the machine, the pac Man machine, and replace them
Speaker 1: with the ones from a Donkey Kong machine. You couldn't
Speaker 1: just swap out a certain element. You had to do
Speaker 1: pretty extensive surgery. Uh. It took some time, usually, you know,
Speaker 1: a half hour an hour easy to to switch these
Speaker 1: things out. Later on, it got a little simplified. First
Speaker 1: it got simplified in the the adoption of some more
Speaker 1: standardized connectors. So that meant that you could start to
Speaker 1: disconnect a circuit board from the rest of a system,
Speaker 1: and assuming that the control scheme is similar from the
Speaker 1: old game to the new game, you could plug the
Speaker 1: new circuit board into a cabinet and it would work
Speaker 1: pretty well. Uh. Now, obviously that only works if your
Speaker 1: control scheme is the same. So, for example, if you're
Speaker 1: playing pac Man, there's no jump button, right, there's a
Speaker 1: player one, a player two, and then there's the joystick
Speaker 1: that has for motion control, and you just control the
Speaker 1: the pac Man character that way. But let's say you
Speaker 1: wanted to play Centipede. Centipede is a very different type
Speaker 1: of game. Has a rollerball controller, so you have a
Speaker 1: ball that you uh, you swipe and you can move
Speaker 1: your character that way, and it has a fire button
Speaker 1: where you shoot whenever you press the button. So if
Speaker 1: you were to switch out the pac Man to the
Speaker 1: Centipede boards, assuming that they had these universal connectors, you
Speaker 1: still would have to switch out the control system as well,
Speaker 1: or else you wouldn't really be able to control the
Speaker 1: game Centipede the way it was meant to be played,
Speaker 1: particularly since you wouldn't have a fire button, that would
Speaker 1: be a problem. Later on, arcade manufacturers would create machines
Speaker 1: that had the basic hardware set up so that different
Speaker 1: games could be plugged into the system, more like a
Speaker 1: video game console. So this was even simpler than the
Speaker 1: universal kind of standardized controls UH. This was more about,
Speaker 1: like uh, a set structure where you plug in a
Speaker 1: chip essentially that has the game on it and everything
Speaker 1: else remains the same, so kind of like a video
Speaker 1: game console, where if you're playing a Nintendo and you
Speaker 1: wanted to stop playing Super Mario Brothers instead play Gumshoe.
Speaker 1: Then you could turn off the console, pull one cartrid,
Speaker 1: shop put the other cartridge, and turn it on and
Speaker 1: there you go. Same sort of thing with these old
Speaker 1: arcade machines. Once they got to this level of sophistication,
Speaker 1: it was still a bit of a pain in the
Speaker 1: butt because he still had to open everything up and
Speaker 1: and get in among all the wires and stuff. But
Speaker 1: it was still way faster than the old days where
Speaker 1: you had to replace everything. Essentially. Now the games themselves
Speaker 1: are called ROMs r O M. S Now r O
Speaker 1: M is an acronym. It stands for read only memory.
Speaker 1: That meant the player or anyone else couldn't write anything
Speaker 1: to the game. Now, they might have something on the
Speaker 1: circuit board, some some temporary memory in the arcade machine
Speaker 1: that would allow players to put in initials next to
Speaker 1: high score, and that would be stored in that memory chup,
Speaker 1: but the game itself was immutable. You could not change
Speaker 1: the game. It was the computer equivalent of being set
Speaker 1: in stone. So in the emulator world we generally refer
Speaker 1: to game files as in the software that represents that
Speaker 1: game as a ROM. If you've ever used an emulator,
Speaker 1: you're probably familiar with ROMs. And there's a big legality
Speaker 1: question people have when it comes to ROMs, and I'll
Speaker 1: get to that later in the episode. At the end,
Speaker 1: I'm gonna spend time talking about the legality of read
Speaker 1: only memory files and whether or not it is legal
Speaker 1: to download them, But for now, let's just focus on
Speaker 1: the technical side of things. We'll get to the legal
Speaker 1: stuff at the end. So you've got various types of games,
Speaker 1: each designed to run on specific hardware. And there are
Speaker 1: the standalone arcade machines that each had their own pecure,
Speaker 1: your architecture. They're the later arcade machines that could accept
Speaker 1: different chips, with each chip containing a different game. And
Speaker 1: then there are the video game consoles and their proprietary
Speaker 1: game technologies. You even got old computer games that were
Speaker 1: designed to run on slower machines with much less computing
Speaker 1: power than today's PCs. Uh. A lot of those are
Speaker 1: impossible to play on on later machines because they just
Speaker 1: they can't handle the fact that they've got access to
Speaker 1: all that processing power. So you might even need an
Speaker 1: emulator for a PC based game on a PC if
Speaker 1: it's old enough. If it's an old game, you may
Speaker 1: need an emulator in order to run it a virtual
Speaker 1: machine of some sort. Emulators are what let you run
Speaker 1: those games designed for those older or other devices on
Speaker 1: a modern machine. So I've got more to say about this,
Speaker 1: but before I get into it, let's take a quick
Speaker 1: break to thank our sponsor. Alright, we're back now. There
Speaker 1: are two big categories for emulators, and this doesn't depend
Speaker 1: upon the type of console or game you're trying to emulate.
Speaker 1: It's universal. These two big categories are universal no matter
Speaker 1: what system you're trying to emulate. Um so all different systems,
Speaker 1: all different arcade games. Emulators can fall into one of
Speaker 1: two categories. There's low level emulation and there's high level emulation.
Speaker 1: And it might be a little counterintuitive what these mean,
Speaker 1: but with low level emulation, programmers are trying to create
Speaker 1: software and or hardware that can pretend to be the
Speaker 1: emulated hardware. In other words, you're trying to replicate the
Speaker 1: actual mechanics, although it's not mechanical, it's electronic, but the
Speaker 1: actual uh physical process. I guess physical process doesn't really
Speaker 1: work either, right, The actual logical process of the original
Speaker 1: game system or arcade machine. So you want your system
Speaker 1: to look from a high level as close to that
Speaker 1: original system as you possibly can get it. Sometimes that
Speaker 1: actually means including original hardware from the target machine with
Speaker 1: the emulator, so that means you're not just replicating the
Speaker 1: target machine, you're using some of its actual parts. You're
Speaker 1: you're in part rebuilding the actual original machine. In fact,
Speaker 1: the first couple of models of the PlayStation three actually
Speaker 1: contained elements of the PlayStation two inside it in order
Speaker 1: to provide some backwards capability. So if you wanted to
Speaker 1: play a PlayStation two game on one of those early
Speaker 1: PS three models, instead of it using the typical PS
Speaker 1: three equipment inside the console, it would actually hand that
Speaker 1: off to the PS two elements. So it's almost like
Speaker 1: having two different video game consoles in the same box.
Speaker 1: You didn't know it as as a consumer, like, you
Speaker 1: don't see any of that happening. It's all happening inside
Speaker 1: the console. But it wasn't a p S three system
Speaker 1: reading the information and then playing it on your screen.
Speaker 1: It was actually a PS two system housed inside that
Speaker 1: PS three um. So the p S three's core system
Speaker 1: was acting as the emulator, but it was using PS
Speaker 1: two hardware to actually read the information off of disks. Now,
Speaker 1: if you're using something like a Nintendo sixty four emulator,
Speaker 1: the emulators trying to replicate the way the in sixty
Speaker 1: four is hardware worked, and the more sophisticated that target
Speaker 1: system is, the more difficult this is to do so
Speaker 1: with low level emulation, the amount of processing power you
Speaker 1: need on your computer to run the emulator so that
Speaker 1: you can play those games the way they were meant
Speaker 1: to be played. That processing power demand increases as the
Speaker 1: complexity of the video game system you're emulating increases, which
Speaker 1: makes sense, right. The more complicated the system, the greater
Speaker 1: the demands are in processing powers, particularly if the system
Speaker 1: you're trying to emulate is remarkably different from PC architecture,
Speaker 1: because your processors having to handle all of those differences
Speaker 1: and it ends up creating a bigger drain on the
Speaker 1: processors ability. So if you've ever played a video game
Speaker 1: emulator and you've run a game and you're thinking this
Speaker 1: thing is slow as molasses. I'm barely able to get
Speaker 1: this character moving, it's probably because you're experiencing that problem
Speaker 1: that the emulator is probably a low level emulator. It's
Speaker 1: trying to replicate that original system as closely as possible,
Speaker 1: and as a result, your processor is having to work
Speaker 1: super hard to keep up, even though the game might
Speaker 1: be fairly simple. It can be very frustrating because you
Speaker 1: might be playing a game that came out in like
Speaker 1: the late eighties, and you're thinking, it's twenty seventeen. My
Speaker 1: computer should be able to run this with no problem.
Speaker 1: But the truth is the processors trying to handle a
Speaker 1: system so different from itself that that's what's causing the slowdown.
Speaker 1: I experienced this with a friend who had uh A
Speaker 1: a an arcade emulator, and he's had ghosts and goblins
Speaker 1: on there. And I love that game. I loved it
Speaker 1: when it came out, but as I started to play it,
Speaker 1: I thought, this game is way slower than I remember it,
Speaker 1: and I just remember getting incorrectly. Nope. Turned out it
Speaker 1: was because the emulator was putting too great a demand
Speaker 1: on his systems processor and as a result, the game
Speaker 1: I was playing was much slower than what it was
Speaker 1: supposed to be. And it's really hard to make low
Speaker 1: level emulators efficient. Some games and game system systems require
Speaker 1: multiple synchronization processes to make sure all the emulated components
Speaker 1: are working together properly. So the more frequently that happens,
Speaker 1: the more times an emulator has to say, hey, is
Speaker 1: everything all right and send that message out to all
Speaker 1: the different components and wait for a response, the more
Speaker 1: demands it places on that processor. Uh So, if you
Speaker 1: want to have a really good low level emulator, you
Speaker 1: need a a computer with like a screaming fast processor.
Speaker 1: And and that could be again a little counterintuitive. You
Speaker 1: might think, well, this game can run the latest computer
Speaker 1: games with no frame rate issues. Um at the highest
Speaker 1: graphics setting, everything's awesome. But when I try to run
Speaker 1: this emulated game, everything slows down. Why is that? It's
Speaker 1: because of this. Now, then you have high level emulation.
Speaker 1: This is very different. High level emulation simulates the functions
Speaker 1: of hardware, but doesn't try to replicate those functions. So,
Speaker 1: in other words, all it wants to do is get
Speaker 1: to that end result. It doesn't care if it follows
Speaker 1: the same path as the hardware. So this gets back
Speaker 1: to that Josh and Chuck example I gave at the
Speaker 1: top of the show. Both the vine and the bridge
Speaker 1: will get Chuck and Josh across the pit, but they
Speaker 1: do it in different ways. The end result is the same.
Speaker 1: That's what high level emulation aims to do, so we
Speaker 1: call this abstraction. We are able to create an environment
Speaker 1: in which a game will work even if you're using
Speaker 1: totally different hardware because of this level of abstraction. This
Speaker 1: is particularly handy for game developers, not just people who
Speaker 1: want to play games, but people who are making games,
Speaker 1: because you can develop a game for a specific system
Speaker 1: using a level of abstraction, and you can use whatever
Speaker 1: system you prefer to develop on. So let's say you're
Speaker 1: a developer and that you use a Mac as your computer,
Speaker 1: but you're developing a game for the Xbox. A level
Speaker 1: of abstract action allows you to do this on a
Speaker 1: virtual level, so that you're developing an Xbox game in
Speaker 1: a Mac environment and you don't have to have special
Speaker 1: equipment or anything like that. You've abstracted all of the
Speaker 1: elements into a virtual realm. So high level emulation uses
Speaker 1: shorthand for basic operations instead of a specific pathway. So
Speaker 1: a low level emulator would try to replicate the exact
Speaker 1: way a game saves information. For example, a high level
Speaker 1: emulator would just say save this data to the storage drive,
Speaker 1: and firmware would actually handle the transaction. So the software
Speaker 1: hands it off to the firmware that says, all right,
Speaker 1: what's the most efficient way for me to do the
Speaker 1: task I've been asked to do? That puts the least
Speaker 1: demand on the processor. It's kind of like a voice
Speaker 1: activated assistant in a way. As these systems get more robust,
Speaker 1: you can ask for the same information in many different ways.
Speaker 1: So for example, if I had an eye phone, I
Speaker 1: could ask Siri what is the weather like outside? Or
Speaker 1: I could ask Siri is it raining? Now? Both of
Speaker 1: those questions will get me a weather answer from Siri
Speaker 1: because the system can actually handle the different ways to
Speaker 1: request essentially the same information. Hardware abstraction does something similar,
Speaker 1: and it interprets a request and then it does the
Speaker 1: leg work work to fulfill that request. Now, there are
Speaker 1: three main ways that high level emulators simulate hardware functions.
Speaker 1: The first is called interpreting. The emulator will go through
Speaker 1: the code of the game line by line in chunks
Speaker 1: and replicate what the instructions are supposed to do. So
Speaker 1: interpreting makes sense right like you you It's kind of
Speaker 1: like if you were to read a story and then
Speaker 1: tell somebody what does the story say? Like, what are
Speaker 1: the what are the basic points of the story. Or
Speaker 1: you're trying to tell someone about a movie you've seen,
Speaker 1: and you're giving them kind of a high level bullet
Speaker 1: point rundown of what the plot was all about. That's
Speaker 1: what interpreting does, except it does it with code. Next
Speaker 1: is a strategy called dynamic recompiling. Now that method actually
Speaker 1: looks at blocks of code, looks at the instructions that
Speaker 1: are the processor is supposed to carry out according to
Speaker 1: that code, and then it starts looking for a more
Speaker 1: efficient or optimized way to run those same instructions on
Speaker 1: the actual computer you are using. So, in other words,
Speaker 1: it's recompiling the code for a different piece of hardware.
Speaker 1: It's kind of like saying, all right, this was written
Speaker 1: for an Atari twenty SID, I want to rewrite it
Speaker 1: so that the same result will happen on the PC
Speaker 1: that is running the software. UM very interesting that this
Speaker 1: can be done on an abstract level. And finally, there's
Speaker 1: a strategy called list interception. Now this is relevant for
Speaker 1: computers that you coprocessors and for systems that you're trying
Speaker 1: to emulate that also had coprocessors. Most PCs these days
Speaker 1: have a coprocessor. The graphics processing unit is a coprocessor. Now,
Speaker 1: those chips are meant to handle graphics, but they're also
Speaker 1: really handy for parallel processing. You might have heard that
Speaker 1: a lot of hackers use gp us in order to
Speaker 1: do brute force attacks against secure systems. This is because
Speaker 1: GPUs can process stuff in parallel, which means you can
Speaker 1: have a bunch of parallel processors all tackling the same problem,
Speaker 1: going through different potential solutions, and that cuts down on
Speaker 1: the amount of time it takes for you to find
Speaker 1: the real answer. So with list interception and emulator interrupts
Speaker 1: a command list sent to the original devices coprocessor and
Speaker 1: turns that into instructions that the actual host computers graphics
Speaker 1: processing unit can handle. So it's kind of like translating
Speaker 1: text from one language to another. It intercepts the message
Speaker 1: which says, Okay, well, the GPU can't understand this the
Speaker 1: way it's written, but I can take these instructions, rewrite
Speaker 1: it in a way that the GPU understands, and send
Speaker 1: it along. And that's how that works. The big advantage
Speaker 1: of high level emulators over low level emulators is that
Speaker 1: they require less processing power to run games. So a
Speaker 1: well designed high level emulator can run titles smoothly on
Speaker 1: a modest PC. You don't need to have a killer
Speaker 1: gaming rig, but a low level emulator would require that
Speaker 1: beefier processor to handle demands. Now, the flip side is
Speaker 1: a low level emulator tends to be more accurate when
Speaker 1: replicating a game, and a high level emulator might not
Speaker 1: be able to replicate all the things the game does
Speaker 1: because it's not as specific to that system, like, it's
Speaker 1: not replicating the system as faithfully as a low level
Speaker 1: emulator would. So their trade offs. So let's say you
Speaker 1: want to invest in an emulator and some games, and
Speaker 1: just for argument's sake, let's say that there's a legal
Speaker 1: way for you to buy the games rather than just
Speaker 1: download them willy nilly. Like I said before, I'm going
Speaker 1: to talk more about the legality of all of this
Speaker 1: at the end of the show. So what system should
Speaker 1: you go for if you want an emulator? Well, that
Speaker 1: really depends on several factors. For one, um, are you
Speaker 1: missed their money bags or miss money bags? Because if
Speaker 1: money is not an object, you might as well go
Speaker 1: bonkers and trick out a nice low level emulator system
Speaker 1: with a really really good gaming rig PC to get
Speaker 1: the most authentic experience when you PLoP down to a
Speaker 1: rousing game of Burger Time or Gauntlet. To low level emulators,
Speaker 1: particularly ones that include actual hardware used by the system
Speaker 1: you're trying to emulate, get pretty pricing. And remember you've
Speaker 1: got to have that powerful processor to run those emulators.
Speaker 1: And as opposed to the high level emulator types, high
Speaker 1: level emulators don't require as much horsepower from the host computer,
Speaker 1: which brings the cost down. You don't need to buy
Speaker 1: a super fast computer. In fact, you may already have
Speaker 1: a machine more than capable of running a high level
Speaker 1: emulator program, so you won't have to spring for that
Speaker 1: screaming gaming rig with you would like for a low
Speaker 1: level emulator. But sometimes those high level emulators cannot perfectly
Speaker 1: replicate whatever the target system is that the emulated system,
Speaker 1: so you might find certain games don't have all the
Speaker 1: bells and whistles that they should, and if you might
Speaker 1: even be unplayable, Like you might get a title a
Speaker 1: rom for a game you love, and you have an emulator,
Speaker 1: a high level emulator for that system or for that machine,
Speaker 1: and then you find out you still can't play the game. Well,
Speaker 1: it might not be that the file you got is corrupt.
Speaker 1: It may be that the emulator just isn't capable of
Speaker 1: replicating that game the way it should. Now, mostly that
Speaker 1: depends upon the way the original game developers programmed the
Speaker 1: original game. If they used a lot of weird shortcuts
Speaker 1: and hacks to create the game, that would work on
Speaker 1: the target system, it may not work on an emulated system. So,
Speaker 1: in other words, like let's say I've developed a game
Speaker 1: for the original Nintendo, and the original Nintendo could totally
Speaker 1: handle these sort of clergy hacked processes I've created because
Speaker 1: I wanted to do it to make a bunch of shortcuts.
Speaker 1: Like the code looks messy as heck. If you look
Speaker 1: at the code, but the gameplay doesn't reflect that, it's
Speaker 1: just fine. But then you pull it over onto an
Speaker 1: emulated system that's more designed to handle games that are
Speaker 1: written to the standard of Nintendo as opposed to just
Speaker 1: getting it done, and you may find out that that
Speaker 1: game isn't really playable on the emulated system. It's really
Speaker 1: frustrating if in fact, that was your goal from the start.
Speaker 1: So the more standard of games code is, the better
Speaker 1: the chances are that a high level emulator will be
Speaker 1: able to handle it. Now, arguably one of the most
Speaker 1: popular types of emulators is the multiple Arcade Machine emulator
Speaker 1: or MAIN. That's an open source emulator, and open source
Speaker 1: essentially means the code is open for anyone to look at,
Speaker 1: to alter, and even to re upload and distribute. So
Speaker 1: that means as people find better ways to emulate a
Speaker 1: particular machine, they can make adjustments to the code, and
Speaker 1: a new version of the emulator can incorporate those changes.
Speaker 1: So if it's a multiple arcade machine emulator, then you
Speaker 1: may have a specific arcade cabinet that has not been
Speaker 1: emulated yet. You might figure out how to do that,
Speaker 1: and you add that code into a and already existing
Speaker 1: MAIME emulator, which I understand is repetitive see also my
Speaker 1: tirade about a t M machines and pen numbers. Uh.
Speaker 1: But because you're able to actually take that code and
Speaker 1: change it, and you can increase the functionality for the
Speaker 1: community as a whole. Uh. Now, the stated purpose of
Speaker 1: MAME is to preserve games as an historical effort because
Speaker 1: these old arcade machines relied on physical hardware, and a
Speaker 1: lot of them are no longer in production. In fact,
Speaker 1: most of them aren't in production anymore. So creating the
Speaker 1: software that could run those games is a way to
Speaker 1: preserve the games indefinitely instead of just have them get
Speaker 1: older and older and older and eventually they just don't
Speaker 1: work anymore. They break down to the point where it
Speaker 1: doesn't matter if you have an original arcade machine, the
Speaker 1: circuit board just won't uh play the game. This way,
Speaker 1: they could be preserved indefinitely. Now just so happens that
Speaker 1: the software also allows you to play those games, because
Speaker 1: that's how the game's work, right, Like if if the
Speaker 1: software didn't allow the games to run, all you really
Speaker 1: would need to do is why in a way to
Speaker 1: preserve that random or or rather the read only memory
Speaker 1: the ROMs. If you could just preserve the ROMs period,
Speaker 1: you could have a library of unreadable files. It would
Speaker 1: be pretty unusual to do that, Like, what's the point.
Speaker 1: It would be kind of like going into a library
Speaker 1: that is filled with books written in an ancient language
Speaker 1: that no one understands anymore. So, yeah, they're historical, they
Speaker 1: have some historical significance, but there's no way to understand
Speaker 1: what is there, so you start asking the question does
Speaker 1: it really make sense to keep them if there's no
Speaker 1: way to read them. So Maine can read these files
Speaker 1: that can play those games. But the stated purpose for
Speaker 1: Main isn't to play the games, it's just to preserve them.
Speaker 1: Now you might find that that purpose is a little
Speaker 1: do not peek behind the curtain esque and that you
Speaker 1: could easily imagine Maine's design is meant to of view
Speaker 1: the chance to play those old games and not just
Speaker 1: keep them for posterity. I mean, if you can't play
Speaker 1: the video game, is it really worth keeping? But never
Speaker 1: mind that it doesn't really matter for the purposes of
Speaker 1: this discussion. I just find it amusing. So the Main
Speaker 1: software evolves over time, and part of that is just
Speaker 1: to keep up with technology. As operating systems evolve, we
Speaker 1: have to adjust the software the main software to run
Speaker 1: on new systems. So you know, if if Microsoft releases
Speaker 1: a new version of Windows that's remarkably different from previous versions,
Speaker 1: you may have to tweak the code for Main to
Speaker 1: be able to run on the new Windows platform. So
Speaker 1: it is necessary for this to be open source for
Speaker 1: the software to remain relevant, and there are lots of
Speaker 1: different versions of MAME on operating systems like Windows. On
Speaker 1: Unix mac os, there are versions for both thirty two
Speaker 1: bit and sixty four bit Windows versions. You could find
Speaker 1: people selling main machines inside either classic arcade cabinets or
Speaker 1: new cabinets designed to look like old ones, complete with
Speaker 1: special controls. So if you wanted to, you could create
Speaker 1: a computer like You could build a computer on your own,
Speaker 1: a decent one, not not like again, not a super
Speaker 1: fast one necessarily, but a decent computer with a lot
Speaker 1: of storage. You could um mount a display inside a
Speaker 1: cabinet to look like an arcade monitor. You could have
Speaker 1: the computer inside the cabinet. That's essentially the case for
Speaker 1: your computer, and you could hook up arcade controls, including
Speaker 1: ones that are more unusual like the roller balls or
Speaker 1: or some of the other um you know, yoke versions
Speaker 1: for for flight games like the old Star Wars game
Speaker 1: that kind of stuff. You could have all those sort
Speaker 1: of controls available. You can even have ones that detach
Speaker 1: from the system so that you can swap them out
Speaker 1: whenever you need to for whatever game you want to play,
Speaker 1: and you could have that in your house and you
Speaker 1: would essentially have access to all the arcade games supported
Speaker 1: by that emulator. That doesn't necessarily mean every arcade game
Speaker 1: ever invented, but it could be hundreds and hundreds of
Speaker 1: different titles. On the inside is just a PC running
Speaker 1: that main software and a collection of ROMs. So it's
Speaker 1: getting to time for me to talk about the legality
Speaker 1: of this. Like, if you wanted to do this, if
Speaker 1: you wanted to have a an emulator, whether it was
Speaker 1: a main emulator or a video game console emulator or whatever,
Speaker 1: what are the legal considerations you should make. I'm gonna
Speaker 1: tell you more about that in just a second, but
Speaker 1: first let's take another quick break to thank our sponsor.
Speaker 1: All Right, we're back. So you can technically build or
Speaker 1: buy a machine capable of providing an entire arcade's worth
Speaker 1: of gaming on one device. But is that legal? So
Speaker 1: this brings us to the legal discussion or law stuff done? Uh? Interesting? Note,
Speaker 1: there are a lot of questions about rams and their legality.
Speaker 1: So our wrong files illegal? Is it ever legal to
Speaker 1: download one? Our emulators illegal? Uh? It's good to finally
Speaker 1: kind of tackle these questions now. First, emulators in general
Speaker 1: are legal. You can own an emulator. There's nothing inherently
Speaker 1: illegal about emulators. Their software meant to emulate another technology,
Speaker 1: but in general they don't contain any proprietary code. So
Speaker 1: that means emulators, more often than not, don't have any
Speaker 1: code in them that's tacted by copyright. Since there's no
Speaker 1: copyright violation, there's no illegal nature to these emulators. That
Speaker 1: developers haven't stolen any intellectual property from the companies that
Speaker 1: made the original equipment. They're just creating new software to
Speaker 1: run programs that relied on older original equipment. So it's
Speaker 1: a fine line. But emulators on their own are totally legal.
Speaker 1: As for ROMs, that's where it gets messy. For one thing,
Speaker 1: we do not have global laws guiding our our choices
Speaker 1: about legality or illegality when it comes to rom's, so
Speaker 1: the rules in one country can be significantly different from
Speaker 1: those of other countries. Now, I'm gonna be looking at
Speaker 1: this from the viewpoint of someone in the United States
Speaker 1: because that's where I live longtime listeners of tech stuff. No,
Speaker 1: this is my m O. I will take a view
Speaker 1: from the US because that's where I'm rom and it's
Speaker 1: way easier for me to talk about this. But if
Speaker 1: I wanted to tackle the legality from every country, i'd
Speaker 1: have to do a whole series of podcasts because it's
Speaker 1: different for different places. In fact, even just the length
Speaker 1: of copyright protection is different in different countries. The US
Speaker 1: has a lengthy period of copyright protection, Like we're talking
Speaker 1: decades and decades of protection even after the death of
Speaker 1: whomever held the copyright. So something to keep in mind. Alright, So,
Speaker 1: downloading a ram of a game you do not own
Speaker 1: is violating copyright and is illegal pretty much anywhere. So
Speaker 1: if you wanted to get hold of a rom for
Speaker 1: a game, but you don't own that game, you have
Speaker 1: no legal copy of that game, Downloading it is against
Speaker 1: the law. It's no different from downloading a song you
Speaker 1: don't own, or a movie you don't own, or a
Speaker 1: television show. If you do not own a copy, you're
Speaker 1: essentially stealing. Now, in the case of arcade games, it's
Speaker 1: pretty darn common for people to steal them. Not many
Speaker 1: people actually own arcade machines. There are people who do,
Speaker 1: there are a lot of them who do, but most
Speaker 1: people do not. The average person does not own an
Speaker 1: arcade machine in their home. So unless you own a
Speaker 1: legit copy of an arcade machine, downloading the wrong for
Speaker 1: that game is pretty much illegal. But let's say you
Speaker 1: go to an auction right and you buy an old
Speaker 1: Spy Hunter cabinet for your wreck room at home. First
Speaker 1: of all, good Jobs by Hunter, awesome arcade game, one
Speaker 1: of my favorites from the arcade era. You get the
Speaker 1: machine home and you realize that the circuit board is
Speaker 1: damaged a little bit. It's it's kind of fried, and
Speaker 1: the game isn't really working properly. It's it's not it's
Speaker 1: not stable, like you can get it running every now
Speaker 1: and then, but it doesn't necessarily run flawlessly or it
Speaker 1: might crash at random intervals. So the question is, could
Speaker 1: you then download a ROM for Spy Hunter and replace
Speaker 1: the guts of the cabinet you've bought with a PC
Speaker 1: running an emulated copy of the game. So instead of
Speaker 1: having the actual Spy Hunter elements inside this cabinet, you
Speaker 1: remove those, you put a PC in there. The PC
Speaker 1: is running name and the only ROM you have on
Speaker 1: it Spy Hunter, because that's the game you bought. Would
Speaker 1: that be legal? Well, if you were to rip the
Speaker 1: game off the circuit board yourself, you could probably argue
Speaker 1: that as being totally legit. So, in other words, you'd
Speaker 1: have to make a digital copy of a hard coded game,
Speaker 1: which isn't exactly easy for the average person to do,
Speaker 1: but it would be a necessary step to use a
Speaker 1: digital ROM on another type of device. In the United States,
Speaker 1: this would likely be seen as making a legal backup
Speaker 1: cop be as in a lawful it is perfectly fine
Speaker 1: to make a backup copy of media you have purchased.
Speaker 1: It's similar to making a backup of a CD or
Speaker 1: cassette tape or or a vinyl album, either through putting
Speaker 1: it onto another medium or ripping it and making it
Speaker 1: an MP three as perfectly legal. As long as you're
Speaker 1: doing it for your own personal use without the intent
Speaker 1: to distribute, you're you're pretty much okay. You are legally
Speaker 1: allowed to make backup copies of stuff you purchased, um
Speaker 1: as long as it's for the purpose of a backup,
Speaker 1: but one about downloading a ROM from another source rather
Speaker 1: than ripping it from the circuit board you physically own.
Speaker 1: Let's say that you don't have the equipment necessary to
Speaker 1: pull the code off a hard coded circuit board and
Speaker 1: convert it into something digital that a PC could read,
Speaker 1: so instead, you're just going to download a copy from
Speaker 1: the internet. Now, arguably you could say that downloading the
Speaker 1: ROM in this instance is a case of fair use.
Speaker 1: So the argument you would make is that you already
Speaker 1: own the game. You purchased a legit copy of Spy Hunter,
Speaker 1: and you're not distributing the ROM to anyone. You're not
Speaker 1: trying to create a marketplace for the Spy Hunter game.
Speaker 1: All you want to be able to do is play
Speaker 1: the game you bought on the arcade console you you purchased.
Speaker 1: So you could argue, I'm not causing harm to the market, right,
Speaker 1: I'm not. I'm not denying a sale. I'm just trying
Speaker 1: to get access to the thing I have already purchased. Well,
Speaker 1: that could be a legit fair use argument, but you've
Speaker 1: got to remember fair use is an argument you have
Speaker 1: to make in a legal case. In other words, it
Speaker 1: doesn't protect you from getting sued. You can't say at
Speaker 1: the forefront, this is fair use, don't sue me. Instead,
Speaker 1: fair use is an argument you make once you have
Speaker 1: been sued, So fair use doesn't matter until you get
Speaker 1: to court. Chances are, though no one would sue you
Speaker 1: in the first place, unless you were distributing games, particularly
Speaker 1: for some of these old ROMs, because in some of
Speaker 1: these cases, the companies that made the games have been
Speaker 1: out of business for years, or they were acquired and
Speaker 1: sold and acquired so many times, then no one really
Speaker 1: knows what the ownership rights are for some of these games. So,
Speaker 1: in other words, there's no one to give your money
Speaker 1: to because there's no one knows who owns the copyright.
Speaker 1: And not only are no copies being sold, but there's
Speaker 1: no one who's authorized to sell them, right, no one
Speaker 1: knows who owns it. So in those cases, you're probably
Speaker 1: okay to download the ROMs, not that it's legal, but
Speaker 1: that you're probably not gonna get punished for it because
Speaker 1: there's no one to lay a claim against you. That
Speaker 1: doesn't stop companies from doing that even when they don't
Speaker 1: necessarily have a legal claim to the content. If they
Speaker 1: think they can away with it, they could totally go
Speaker 1: that route. You would have to prove in a court
Speaker 1: of law that the company suing you does not have
Speaker 1: a legal claim to the property they are arguing is theirs.
Speaker 1: So um, you know, if if video game company A says, hey,
Speaker 1: you know back in we purchased video game company B,
Speaker 1: which means we own the video game you have downloaded illegally.
Speaker 1: Uh And you say, well no because of X, Y
Speaker 1: and Z. Maybe it turns out you're perfectly fine, but
Speaker 1: it means you have to go through the whole court experience,
Speaker 1: which isn't great. Now. You may have also heard that
Speaker 1: there's a special rule that allows you to download any
Speaker 1: video game ROM and keep it for twenty four hours
Speaker 1: without it being illegal, as long as you delete the
Speaker 1: ROM after twenty four hours. Uh So generally people say, oh, yeah,
Speaker 1: you can download the game, give it a whirl, and
Speaker 1: delete it a day later, and there's no fear of
Speaker 1: someone coming after you. I am here to tell you
Speaker 1: that's not based on any actual legal grounding. From what
Speaker 1: I can tell, there is no legal foundation for this argument.
Speaker 1: It's probably just wishful thinking that's been passed along as
Speaker 1: gospel among a lot of ROM sharing communities. The truth is,
Speaker 1: if you're downloading something that doesn't belong to you and
Speaker 1: you're not purchasing it, you're just downloading it, you are stealing. It.
Speaker 1: Doesn't matter if you're keeping it forever or for twenty
Speaker 1: four hours, it's still stolen. Now complicating matters in this
Speaker 1: case is that we're talking about digital information, not a
Speaker 1: physical copy of something. I mean, if I walked into
Speaker 1: a video game store and I pocketed a copy of
Speaker 1: an actual video game that was stored on physical media
Speaker 1: like a CD or a DVD, there's no question that
Speaker 1: I stole something. Right If I walk into a game
Speaker 1: stop and I grab a box and I shove it
Speaker 1: under my jacket and I walk out, I stole that.
Speaker 1: There's a physical copy of the game that I have taken,
Speaker 1: and that means the store can't sell that physical copy
Speaker 1: because it's in my possession and I didn't buy it.
Speaker 1: But downloading a file doesn't feel like stealing, right, because
Speaker 1: the original file still exists on some server somewhere, So
Speaker 1: you didn't You didn't take the one and only existing copy.
Speaker 1: You made a copy of another file, and now you
Speaker 1: have that copy, so other legitimate customers could still purchase
Speaker 1: the game that you've taken, because it's not like it
Speaker 1: doesn't exist anymore. And so because of this, a lot
Speaker 1: of people justify their actions as being okay, because it's
Speaker 1: not like they actually took something that physically exists, except
Speaker 1: that at the end of the day, you are accessing
Speaker 1: something without paying for it, when there's an entire business
Speaker 1: based off of making games for money. If game developers
Speaker 1: didn't make money, there wouldn't be games. No one would
Speaker 1: make games, or at least not on the level that
Speaker 1: we are used to. People might make games as an
Speaker 1: expression of art and they're not trying to make any money,
Speaker 1: but there wouldn't be a video game business if we
Speaker 1: all just stole stuff, right, because there's no money in that,
Speaker 1: you would spend your time doing something else where you
Speaker 1: would actually be able to make a living. But we
Speaker 1: get even more complicated because many of the games that
Speaker 1: are in wrong form are now on obsolete systems which
Speaker 1: you cannot purchase at least not from a a primary company,
Speaker 1: Like you're not gonna be able to buy a classic
Speaker 1: Nintendo system from Nintendo. You could buy the the little
Speaker 1: ones that replicate, you know, a dozen or two dozen
Speaker 1: games on one system, but you can't just go out
Speaker 1: and buy in any s. They don't they don't make
Speaker 1: them anymore, or some of those video game systems are
Speaker 1: in limbo as far as ownership goes, and that also
Speaker 1: makes it easier for people to justify downloading the files
Speaker 1: but it doesn't make it anymore legal. Now, I'll admit
Speaker 1: it's really frustrating to be in a position in which
Speaker 1: you would happily pay for something if you could, but
Speaker 1: you have no legal way to do it. That is
Speaker 1: really frustrating. I found myself in that same position with
Speaker 1: a lot of British television series that I love but
Speaker 1: are not available for purchase in the United States. So
Speaker 1: I do the legal, grown up lame thing, which is
Speaker 1: that I don't I don't access it like I don't.
Speaker 1: I don't get it means I don't pirate the stuff
Speaker 1: I love in the hopes that one day I'll have
Speaker 1: a legal means to access it. Instead. I'll, you know,
Speaker 1: I'll post about it, I'll write to people, I'll ask questions,
Speaker 1: but I'm I have to wait until there's a legal
Speaker 1: way to purchase it. I do think this is a
Speaker 1: muddy area. If a game exists and there's no way
Speaker 1: to buy it and the company that made it doesn't
Speaker 1: even exist anymore, are you really causing harm to the
Speaker 1: market by downloading a ROM I'd say you're probably not,
Speaker 1: because there's no way to purchase that legal. But someone
Speaker 1: in court might say you undermined their attempt to make
Speaker 1: a legitimate commercial copy of the game further down the road.
Speaker 1: And because we can't see into the future and see
Speaker 1: if someone is really telling the truth in those cases,
Speaker 1: that's problematic. So if I download a bunch of ROMs
Speaker 1: from a previous publisher that no longer exists, but their
Speaker 1: intellectual property belongs to another company, and that other companies
Speaker 1: says hey, and five years we're going to release a
Speaker 1: best of compilation, UH little console that you can connect
Speaker 1: to your TV. And if you distribute these ROMs, then
Speaker 1: you devalue that system, even if they have no plan
Speaker 1: of doing that. I don't know the case right, so
Speaker 1: it's complicated. At the end of the day. It is
Speaker 1: illegal to download ROMs for any games you do not own,
Speaker 1: and you could technically get in trouble for it. And
Speaker 1: as for games you do own, it's a gray area
Speaker 1: and you could still technically get in trouble for it.
Speaker 1: So tread carefully, and if there is a legal way
Speaker 1: to buy or access the stuff you love, I urge
Speaker 1: you to do that first. It helps cut down on
Speaker 1: reactionary laws and digital rights management strategies, and it helps
Speaker 1: prevent companies from making these these these uh new systems
Speaker 1: that hurt everybody. So if there's a way to get
Speaker 1: it legally, do that. Um. And if there's not, I
Speaker 1: think really hard before you go down this pathway, because
Speaker 1: you could be causing yourself more frustration in the long term.
Speaker 1: And that's all I have on video game emulators. And
Speaker 1: there's a lot more to talk about, Like I could
Speaker 1: go into more detail about specific emulators, but there's so
Speaker 1: many different kinds of them and so many different approaches
Speaker 1: to emulation that I had to take a really high
Speaker 1: level look at this topic. No two emulators, even for
Speaker 1: the same system, are exactly alike, and some of them
Speaker 1: are remarkably different from most others. So it'd be impossible
Speaker 1: to cover them all in an episode or even a
Speaker 1: series of them. But if you guys have suggestions for
Speaker 1: future episodes of tech Stuff, please let me know about them.
Speaker 1: You can write me an email. My address for the
Speaker 1: show is tech Stuff at how stuff works dot com,
Speaker 1: or you can send me a message on Facebook or Twitter.
Speaker 1: The handle at both of those is text Stuff H
Speaker 1: s W. And I'll talk to you again, hopefully with
Speaker 1: a better voice, really soon for more on this and
Speaker 1: thousands of other topics. Is it how stuff works? Dot
Speaker 1: com