Emulation
Introduction

Imagine the following scenario: you're playing Super Mario 64, a popular game for the Nintendo 64 video game system. You're close to dispatching Bowser the dragon, your evil nemesis -- when suddenly an instant message from ICQ, the widely used Windows 95 Internet communications program, pops up and obscures your view of the action.

The above would have been considered nonsensical several years ago, when the predominant view in computing circles was that computer platforms were mutually exclusive: prevailing wisdom then was that a computer program compiled on one platform, like a Nintendo 64, could not run on another platform, like an Intel PC. However, that viewpoint is now obsolete, thanks in no small part to the recent upsurge in popularity of a class of programs called emulators.

Simply put, an emulator is a program that simulates the operations of one computer platform on another. For example, a Nintendo 64 emulator for the PC simulates the operation of a Nintendo 64 on an IBM-compatible computer. This enables the user to play Nintendo 64 games on a PC and makes scenarios such as the above possible.

While the prospect of simulating one platform on another may seem harmless at first glance, it in fact raises significant ethical and legal questions. To cite just one: should emulators be banned because they indirectly encourage the piracy of software written for the platform being emulated, as we will see later? This, and other questions involving the quickly-growing field of software emulation, are among the issues that we will explore and resolve in this section of the website.

NEXT: Background


MPEG Layer 3   |   Search Engines and Directories
Reverse Engineering   |   CD Burners

Introduction


Ted LeVan   |   Huat Chye Lim   |   Marissa Mayer   |   Ann Rose Van

Computer Science 201 Final Project
Stanford University, March 1999