Talk:Emulator

From Wikipedia, the free encyclopedia
Jump to: navigation, search
WikiProject Computing / Software / Hardware (Rated C-class, Mid-importance)
WikiProject icon This article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
C-Class article C  This article has been rated as C-Class on the project's quality scale.
 Mid  This article has been rated as Mid-importance on the project's importance scale.
Taskforce icon
This article is supported by WikiProject Software (marked as Mid-importance).
Taskforce icon
This article is supported by Computer hardware task force (marked as Mid-importance).
 

Repeated Reference[edit]

The Gregory Muira reference is repeated three times (appears three times in the list of references). Is there any reason, or could one instance be referenced from three places? —Preceding unsigned comment added by 76.231.47.26 (talk) 19:08, 7 June 2009 (UTC)

Extreme Emulation[edit]

The "emulators taken to the extreme" mentioned in the second paragraph of "Types Of Emulation" sound a bit sci-fi for wikipedia. Are there any examples of it? 79.102.44.55 (talk) 08:59, 19 April 2009 (UTC)

Legal controversy[edit]

the article that links to Console Emulation is not a good redirect. Since the target link talks about console emulators only. emulators in general are much more than consoles onl

WINE[edit]

from shd: WINE is not an emulator. It should be removed.

Excuse me for being ignorant then, but... what is it if it isn't an emulator? Kinitawowi 11:19, Aug 27, 2004 (UTC)
A compatibility layer. That said, Darwine will contain an emulator - David Gerard 23:19, 27 Aug 2004 (UTC)
It emulates Windows, so in that sense it's an emulator. It's just not the kind of emulation you usually think of when you say emulator, like DosBox, ScummVM, or VMWare.

"for which" vs "... for"[edit]

I'm not a native speaker, however I'd like to know what was wrong with the phrase "... other than they were going to poop in a bag and set it on fire". To me, "... other than the one for which they were originally looked at funny" looks harder to read (even though my own language would use this latter contruction!), and while it sounds more Latin-like, I always thought that the former construction was correct English, as well. LjL 23:40, 14 July 2005 (UTC)

There's nothing wrong with the first line, other than it violates the rule that a sentence will not end with a preposition, in this case "for". (Whoops! I just ended a sentence with a preposition!)(Am I a geek? Go to www.geekssRcool.com to answer the question) In truth this is an old carry over from Latin, and is hardly used in modern English. One particular example of supposedly "correct" English was given by P.M. Winston Churchill: "This is the sort of nonsense up with which I shall not put!." Grammatically, this is correct, but it sounds horrible. -- VederJuda 16:51, 23 October 2005 (UTC)
It seems like a clumsy read to me, as well. Since this is a technical article, it might be appropriate to use a technical term to simplify the grammar. Perhaps the word "native" might be of help? Matt Fitzpatrick 09:31, 8 December 2005 (UTC)

RPGe[edit]

Why does RPGe redirect here? It is not mentioned anywhere in the article.

simulator vs. emulator[edit]

I made an edit that reversed the sense of the statement in the intro comparing simulation and emulation. Now I'm aware that a "simulator" is an especially accurate emulator, but in the more general sense when you're comparing simulation and emulation I think the distrinction I draw is accurate. A simulator, one which is not an emulator, is an attempt to mimic the behavior, rather than the state of the machine. Emulators, on the other hand, attempt to emulate the machine's state, to varying degrees, the most strict of which are called "simulators". Unfortunate terminology or am I just wrong? Hcs

According to the article on simulation, simulation can be less accurate than emulation. I think the main difference is that emulation focuses on exect imitation of external behaviour, while simulation is everything else. I've restored this distinction to the top of the article (since the title of the article is generic "emulator"/"emulation"). LachlanA 23:54, 26 May 2007 (UTC)
Lach is correct: Emulation must be precise so that it's indistinguishable from the real thing. Simulation merely creates a pretend environment without any degree of specificity.
--UnicornTapestry (talk) 14:50, 13 December 2007 (UTC)
I made a change to the resulting sentence. Let me know how you like it. WalterGR (talk) 12:44, 3 January 2008 (UTC)

The confusion addressed is the clue to the topic. It confused me for a long time before I started to understand the difference. It is not so much about structure/function, as I believe. A widespread misconception is that it is about HW/SW difference. No. It is about application. One uses an emulator when he/she wants to use a device but does not have the original object at hand. The emulator comes to rescue. The user does not care about the emulator's behavior as long as it matches the original device. The simulator relates to a model (of a device or a process). It is used when user wants to know its reaction on the inputs. The response on applying some stipulation on the model, the analysis of the system behavior interest the user. You may know or may not know the internal structure of the model. One can build an emulator from a simulator or use an emulator as a simulator. A model of not yet existing device may be simulated. The only important thing is that you are interested in analyzing its behavior when simulating. --213.168.26.170 (talk) 22:46, 15 January 2008 (UTC)

I think a problem is there is no agreed-upon definition. A historical definition is "emulation" uses hardware support. That's not typical usage today, but was typical for a long time. "Simulation" is sometimes used to mean "works like a device which is not yet built", while "emulation" is sometimes used to mean "works like a device which is no longer built." Again, that's not an agreed-upon definition, but I hear it used. Also "emulator" as a way to "work like the original", while simulator as a way to "measure something like the original". Also, notions of accuracy, where "emulator" may be either less or more accurate than a simulator. The dictionary definitions suggest "emulate" is more accurate than "simulate". Perhaps the clearest approach is to list the various (confusing and sometimes contradictory) uses, so when people use a term speakers are included to say "simulator, by which I mean..." and listeners are inclined to ask "emulator, by which you mean...?" —Preceding unsigned comment added by 76.231.47.26 (talk) 19:17, 7 June 2009 (UTC)

Steal This Idea[edit]

Hey has anybody in the emulation community thought of making an emulator that anyone can edit, a la Wikipedia? A good open-sourced, open-ended platform that anyone can add a layer of emulation to? I know this would be a bit more difficult than adding a sentence to Wikipedia, but perhaps some method of massive cooperation could make it possible. Imagine a page that you can plug any non-copyrighted ROM into (because of course we would not want to advocate copyright infringement) so that you or anyone else can test it; or, edit the page to improve the emulation. Or, copy the page and test the emulation in private. Massively multi-user programming! I would try to do it myself, but my programming skills need to be improved first. (Of course one advantage to open programming would be that many more people could learn to program, too.) But, a good home for such a thing might be Wikicities, or some other sister project of Wikipedia. Discussion? oneismany 10:54, 8 December 2005 (UTC)

Sourceforge+CVS. There's a good bit of open source emulators out there. Nezbie 00:35, 11 December 2005 (UTC)

How does it actually work?[edit]

How are they able to simulate another computer if they cannot know how its components work in the inside? Many console machines include custom made top secret microchips no one has documentation about.

It's not as bad as you stated. For example, most consoles uses standard CPUs, simply because the more widely used, the most tested they have been (and therefore likely to be reliable), not to mention cheaper. Plus to actually be able to write programs that can run on the CPU, the CPU manufacturer has to provide at least docs on the machine instructions, if not other specs (eg. temporature tolerance etc.).
What is more likely to be custom are things like the graphics and audio processing units. Of course, in order for other people to write games for it, at a minimum they need to know how to talk to those units and roughly how they work and what they do. So the documentation for custom chips will generally exist even if not widely available. Then it's up to someone to leak it out, and the longer the console has been around, the more likely that will happen. Also, in some cases the custom chips might just be based on existing chip designs with some modifications, so you don't necessarily need to reverse engineer it from scratch.
Beyond that, there's the trial and error and experimentation that one does for reverse engineering in general. For chips, this can mean hooking up your digital analyzer or oscilloscope to the actual electrical/electronic components involved. Also helpful would be to reverse engineer the program code for some game and use the information gained to help deduce how the various graphics and sound components work, and possibly compile your own programs to help test out the workings of the custom chip in question.
For some platforms such as the Nintendo 64, instaed of trying to emulate at the hardware level, another approach would be high-level emulation (HLE), which is a little like emulating the OS functionalities rather than the hardware.
131.107.0.73 02:29, 13 June 2006 (UTC)

Additionally, the article right now doesn't say how emulation is really done. I think of a bunch of CPUs and wires simulated in the host computer, all wired together.

That's actually not too far off from the truth, roughly speaking. 131.107.0.73 02:29, 13 June 2006 (UTC)
With software emulation, we don't do it with wires (but you knew that).
With one exception, emulation is not as difficult as the article describes. Architecture manuals are readily available from manufacturers and the trick is to mimic the target machine precisely. I first got into emulation when a failed project was handed over to me. I quickly realized the original team had taken a number of shortcuts and misunderstood other aspects of the target machine.
Some problems can be quite a challenge. It is tricky when the bit ordering of the target machine doesn't match that of the host machine. That can get ugly.
The difficult exception mentioned above is that of proprietary ROMs. For example, Macintoshes are noted for having huge ROMs, naturally proprietary. Indeed, the earliest Macs had ROMs larger than the entire memory in competitive PCs. That's when reverse engineering comes into its own. Again, manuals are a necessity, but ROMs can be tricky because they seem so much more amorphous.
--UnicornTapestry (talk) 15:07, 13 December 2007 (UTC)
It seems like HLE and/or waiting for docs to come out would be difficult, error-prone and time-consuming for more complex systems like PS3 or GC. For something like timing for example it seems being able to observe the actual system at work would be invaluable. Have people thought much about using oscilloscopes/analyzers for RE in these situations? Is that practical, and what other tools would be used to do it?

External Links[edit]

Anyone else think the latter 2 links look to be shameless plugs, rather than useful sources of information?

console games[edit]

Why was "[[console game]]s" changed to "console games"[1]--E-Bod 00:50, 5 April 2006 (UTC)

Sorry i did'n notice the link was also on the picture--E-Bod 00:57, 5 April 2006 (UTC)


Server emulators[edit]

Please wikipedians object here to the server emulator addittion. Jestix 23:31, 7 July 2006 (UTC)

Terminal emulators are not emulators in the computer science sense of the word. Nobody in the unix world refers to terminals as terminal emulators anymore because it's an archaic, legacy term. The first software terminals were actually software emulating serial hardware, but these days it is simply not the case. The term is still so widely used because that is what they were originally called. Strictly speaking, it is not accurate anymore.
Server emulators are even less appropriate for this article because at no time in the history of this phrase has any actual emulation ever taken place. It's a usage error that became colloquially accepted. Like terminal emulator, The term is widespread enough now that it does indeed deserve its own Wikipedia article, but it has no place in this article.
At the very least, it does not belong because this article's scope is describing the process of emulation, not different types of software emulators. Even if I agreed with you that "server emulator" was a valid term, it is not in the same class of "hardware emulator" and "software emulator" because in that case, a "server emulator" would just be another type of software emulator.
Think about it, if niche terms like "terminal emulator" and your newly coined "server emulator" belonged in this article, someone would have added it already. They don't belong. Kethinov 00:24, 10 July 2006 (UTC)
Kethinov this is your second revert without priour discussion. Discussing and at the same time reverting - it's rude. Maybe just wait a few days until a consensus would have been made! It seems we both wont get a consensus, so what about to let just the usual editors of this article decide whats aproperiate/inaproperiate! I would let faith in 3rd opinion on this, and ask you to do the same. Jestix 05:31, 10 July 2006 (UTC)
For the Terminal emulator its just another proove that in computer science the word "emulator" is not that narrow as what you think of. As you see that word phrase has been used a long time already. You can call the whole world to be not correct, but I don't think that wikipedia is the right place for this. As wikipedia reflects what is, not what should be. (Altough I don't even think that the usage of the world emulator even should be so narrow as you want it to be). Jestix 05:40, 10 July 2006 (UTC)

Accidentally truncated the article (please help revert it)[edit]

Hi guys, Just now I added a link to Indonesian language in Emulator. But when I refreshed the page, my post truncated some of the article. I did a search on Google and it is said that there is a known bug in Firefox with Google Toolbar installed (I'm using those). My deepest apology on this mistake. Can anyone please revert the article? Because I don't want to add more mess into it.

Thanks a lot guys:)

"Hardware emulation"?[edit]

Is this really emulation? Printers just provide the same interface as HP printers - does that really mean they "emulate" them, in the computer science sense of the word? I think this bit should be removed as its confusing a colloquial use of the word "emulation" with the technical meaning of simulating execution of a processor. Trious 13:24, 4 January 2007 (UTC)


I too thought a printer discussion was a poor opening to the article since we usually think of CPU emulation rather than simulating printers. My vote wouldn't be to eliminate the text, but move it down– way down– to a more appropriate location.
That said, I'm more familiar with Postscript, but I believe HP printers have some sort of 'control language', which apparently can be emulated (or at least simulated).
--UnicornTapestry (talk) 15:15, 13 December 2007 (UTC)

Fair use image to be replaced[edit]

Considering that the emulated SNES image has to go, would it be possible and appropriate to get a screenshot of an emulated Vectrex? I remember reading something to the effect that the makers of that system have released all copyrights to the public. Robotman1974 03:05, 11 March 2007 (UTC)

I've also added the {{Replacethisimage}} tag to that screenshot again. Obviously there are copyright concerns. Robotman1974 04:08, 13 March 2007 (UTC)
It would be impossible to replace this image without losing encyclopedic quality. A free software demo wouldn't do, it has to be an actual snes (or other console) game, otherwise the point isn't made. If you can find a console game that has been released (all of it) to the public under a free license, then we can talk. --Oskar 21:27, 27 March 2007 (UTC)
A while ago, I replaced the image with an image of DosBox running in Linux. There's no unique copyrighted GUI, the program and the operating system it's running under are both free software so the image is free. Using images of video game emulators is problematic - even if the emulator is free software, the game that is running almost certainly isn't free software. Also, using a video game screenshot on top feeds the misconception that emulation only involves video games. --Jtalledo (talk) 21:54, 29 June 2007 (UTC)

Poorly written sentence[edit]

The following sentence is quite poorly written :

"This is so that software can be produced and tested before the final hardware exists in large quantities, so that it can be tested without taking the time to copy the program to be debugged at a low level without introducing the side effects of a debugger."

Notice it has in its construction twice 'so that' then twice 'without', such that by the end of the sentence it becomes quite difficult to actually understand what the writer is trying to say. I can only assume the meaning is threefold; that the benefits of using a 'simulator' are to test software before the hardware it runs on is mass-produced, to test it without copying it onto hardware, and to test it without introducing a debugger to hardware which might have side effects. Perhaps if this is the right meaning, the sentence could be improved to better convey it? Kevoreilly 29 December 2007

See also[edit]

I deleted the following paragraph from the bottom of the See Also section:


Use of Emulators in the Modern Gameing Society

the current use of emulators is for gameing. Playstaion, X-box,Gameboy,and Nintendo all have vareious free Emulators for Download but in order to use such emulators u must have a fairly fast computer. u must also download ROMs which is basicly the game "cartrigde" in computer data form, all of this is easy to download and dosent take much memory to use.

"Software emulation"[edit]

I suggest this article be renamed to "Software emulation". SharkD (talk) 03:43, 27 July 2009 (UTC)

Oppose: "Software emulation" already has an accepted meaning that does NOT mean emulation of software. Likewise "hardware emulation" does not mean "plug compatable", as with a printer (hardware) which does the same thing with the same data as a competing computer printer (hardware). The distinction being made is focused on how the emulation is done, not on the results. Most emulation involves a processor that executes emulation software that is written in a different native code E than the program binary code P being emulated. This is "software emulation" in the sense that emulation software is used. "Hardware emulation" means that no emulation software is used other than internal processor (hardware) microcode to execute the instruction set.

For example, imagine company X makes a computer that has a generic CPU 123 that executes programs in native code P. Company X's computer also has a proprietary graphic processor G2 that executes graphics program G. Competing company Y makes a similar computer that has a different CPU 456 that executes programs in native code Q and emulates programs in code P by executing an emulation program E (in native code Q) that interprets instructions in code P to produce exactly the same results as company X's computer. Company Y's graphics processor cannot emulate program G, and company Y's computer uses a different graphics processor G7 that executes a graphics program that provides similar but not exactly the same graphics results as company X's computer. The emulation being done in CPU 456 is "software emulation" because it uses emulation software E to simulate/interpret code P. No hardware emulation is done in this example. Alternatively, if company Y's graphics processor G7 were modified to include microcode to execute graphics program G as native code, that would be "hardware emulation" because graphics processor G7 hardware would not be executing external emulation software. Greensburger (talk) 05:16, 27 July 2009 (UTC)

Emulation (Software) vs. Emulation (Hardware)[edit]

This page covers emulation software. But there are different hardware emulators usually used by (embeded) software developers -->Hardware_emulation, HP_64000. Background: hardware emulators usually emulate the CPU or a part of a computer board for debugging purpose. They were used in former times, when CPUs did not provide a debuiuging Interface. Example: Intel 80486

I suggest to give a hint in the introduction of the article.BerndSinger (talk) —Preceding undated comment added 19:29, 30 July 2009 (UTC).

Virtual Machine[edit]

Why is Virtual Machine not appearing anywhere here? Doesn't a VM emulate something? Isnt a VM a kind of emulator? I'll take my answer in the article, if you are willing. Stephen Charles Thompson (talk) 17:51, 25 June 2010 (UTC)

While I wouldn't agree that a virtual machine is an emulator, calling it one is no worse than many of the other uses to which the word has been put. If you are going to add any material on Virtual Machines in this article, I would suggest that you research the Start Interpretive Execution (SIE) instruction on the IBM 3081, IBM 3090 and subsequent machines; the only reference I have is IBM, 370/Extended Architecture/Interpreter Execution, SA22-7095.  Shmuel (Seymour J.) Metz Username:Chatul (talk) 13:58, 28 June 2010 (UTC)

Level of detail[edit]

I'm considering adding a description of the emulators on the IBM System/360 and IBM System/370, but am not sure of the appropriate level of detail. My preference would be to cite both the feature descriptions and the logic manuals, but not the CE manuals. What would be TMI in this context? Do I need to cite specific page numbers, or is that only fior cases where disputes are likely? Shmuel (Seymour J.) Metz Username:Chatul (talk) 09:50, 28 June 2010 (UTC)

Opcode[edit]

Does the CPU simulation translate opcode? --Christopher Forster (talk) 00:17, 6 June 2011 (UTC)

Yes. In emulation, all opcodes, addresses, and data bytes are simulated exactly the way binary instructions would be executed in native code, except for input/output which would closely approximate the original hardware. Greensburger (talk) 13:41, 6 June 2011 (UTC)

For the "emulator vs simulator" section.[edit]

Here is a much better explanation i found:

"A simulation is a system that behaves similar to something else, but is implemented in an entirely different way. It provides the basic behavior of a system but may not necessarily abide by all of the rules of the system being simulated. It is there to give you an idea about how something works.

Think of a flight simulator as an example. It looks and feels like you are flying an airplane, but you are completely disconnected from the reality of flying the plane, and you can bend or break those rules as you see fit. E.g.; Fly an Airbus A380 upside down between London and Sydney without breaking it.

An emulation is a system that behaves exactly like something else, and abides by all of the rules of the system being emulated. It is effectively a complete replication of another system, right down to being binary compatible with the emulated system's inputs and outputs, but operating in a different environment to the environment of the original emulated system. The rules are fixed, and cannot be changed or the system fails.

The M.A.M.E. system is built around this very premise. All those old arcade systems that have been long forgotten, that were implemented almost entirely in hardware, or in the firmware of their hardware systems can be emulated right down to the original bugs and crashes that would occur when you reached the highest possible score."

If someone could use that to improve the article, that would be great. Source: http://programmers.stackexchange.com/questions/134746/whats-the-difference-between-simulation-and-emulation — Preceding unsigned comment added by 188.73.252.78 (talk) 15:47, 16 November 2012 (UTC)

Too focused on hardware emulation[edit]

I find this article is too focused on "legacy hardware emulation" and does not properly describe the abstract concept of "emulation" as opposed to "simulation". Some phrases do mention this, but I would rather see it as the main point of the article and not as a side-note. To better understand what I mean, here is a discussion from stackoverflow:

Emulation is the process of mimicking the outwardly observable behavior to match an existing target. The internal state of the emulation mechanism does not have to accurately reflect the internal state of the target which it is emulating.
Simulation, on the other hand, involves modeling the underlying state of the target. The end result of a good simulation is that the simulation model will emulate the target which it is simulating.
Tthe goal of an emulation is to able to substitute for the object it is emulating. A simulation's focus is more on the modelling of the internal state of the target -- and the simulation does not necessarily lead to emulation. In particular, a simulation may run far slower than real time. SPICE, for example, cannot substitute for an actual electronics circuit (even if assuming there was some kind of magical device that perfectly interfaces electrical circuits to a SPICE simulation.)

--Cristiklein (talk) 09:35, 13 August 2013 (UTC)

Historically, "emulation" referred to a simulation that used a hardware or microcode assist; the term was later extended to refer to any simulation. Shmuel (Seymour J.) Metz Username:Chatul (talk) 19:31, 13 August 2013 (UTC)

IBM 704 compatibility[edit]

The IBM 704 compatibility support for the 709 was a sandbox rather than a simulator. The 709 ran the 704 code at full speed, but disabled access to certain instructions and to upper memory. I question whether it belongs in the article at all, but if it is to remain than there should be enough detail to make its status clear. I'm undecided whether to delete it or to add an explanatory footnote.Shmuel (Seymour J.) Metz Username:Chatul (talk) 19:57, 25 November 2013 (UTC)