5
have a NES, preventing many people from using the software. In addition, all hardware has a
limited lifespan and eventually there will be no working NES consoles to still play the games
on. The games themselves often featured battery backed RAM to enable progress to be
saved and Nintendo only predicted the battery life as five years. There are multiple options
which allow the continued use of NES games and these are described here.
1.2 Conversion
Although the exact implementations of computer systems is different, many of the principles
are the same. A PC cannot execute the instructions written for the NES because it does not
understand them. However, it is likely that comparable instructions do exist for the PC.
Therefore, it is possible to rewrite the software for a different system and to replicate the
graphics and sound of the original. Converting the software in this way is essentially
simulation [17]. The software appears to behave the same as the original but the
implementation may be quite different.
Converting the software has the advantage that the resulting software will perform well, since
it is produced for the target architecture. However, the process is time consuming and needs
to be done for each game individually.
1.3 Emulation
Emulation is the process of simulating hardware to enable the software developed for it to be
used on an otherwise incompatible system. The following definition is by the British
Computer Society and is taken from [18]:
“Emulation is a very precise form of simulation which should mimic exactly the
behaviour of the circumstances that it is simulating. An emulator may enable
one type of computer to operate as if it were a different type of computer.“
Emulation is often used by the videogame industry to allow developers to begin writing
software for a new system before it is released. However, it can also be used to allow the
continuing use of old systems.
Hardware emulation involves producing a system with hardware compatible with the original.
In the case of the NES it would be possible to produce a system using a compatible
processor and to allow it to play the original game cartridges. This technique can also
provide good performance, provided compatibility is ensured, but few people have the skills
and resources required to construct the system.
Using hardware simulation software it is possible to half implement this technique. Software
is available which allows simulation of a detailed hardware design and this can be used to
recreate the system from a design without having to produce a real implementation. Such a
system is described in [19].
Software emulation requires producing software which will emulate the functions of a given
system. There are three approaches to software emulation [17]:
• Interpretation involves reading in the next instruction for the system being emulated,
translating it to an instruction (or a number of instructions) for the target architecture and
executing it. Though this is accurate, due to translating during execution the process can
lead to noticeable degradation of performance compared to the original system if the
speed of the target system is low.