Emulation/What is Emulation?

Emulation, is quite simply the translation of software written for a different subset of hardware or for a different operating system into software which will run on the current platform. To put it quite simply it's any computer program that mimics the behavior of any other piece of computer hardware, such as an older computer or video game console. Why would one want to do this? Here are some reasons:


 * 1) Maintaining Investment in Older Software - Software isn't cheap these days, yet most of us have investments in older software that is still perfectly functional, except for incompatibilities with newer hardware and operating systems. Why throw it away?
 * 2) Experimentation - Oftentimes when writing drivers for a piece of hardware or when writing software to run on a microprocessor one often wants to make sure they have a working piece of software before writing it onto the hardware.  Sometimes the hardware you're writing the software for may not even exist yet.  In either case emulation software is invaluable as it allows you to debug errors in your program without risking the hardware device, emulators can also provide more detailed information on errors that occur, thus they are ideal for testing software without risking the hardware.
 * 3) Nostalgia - Let's face it. We all have old games or operating systems that we know and love. Perhaps it is no longer practical to use them full time, but it's always pleasant to play around with them once in a while.