P. 1
Study of the techniques for emulation programming by Victor Moya del Barrio

Study of the techniques for emulation programming by Victor Moya del Barrio

4.4

|Views: 12,422|Likes:
Published by Moe B. Us
In the time I started to learn about how an emulator is programmed I found that there was a limited amount of documentation. Documentation about how an emulator should be programmed or about the characteristics of the machines to be emulated. Thinking about how to contribute to the emulation I found that the second part would mean the construction of a database with all the information available of a large amount of computers and systems. This wasn’t very suited neither with a university project for
with my own preferences, and there are a few sites in Internet which more or less serve to that purpose. The first part meant to study and learn the various techniques and knowledges related to emulator programming. Since I like a lot learning and also writing I thought that could be my way to contribute. So I thought it would be nice to have a large, ordered and precise documentation about how to program an emulator. That is the purpose of this document and my work in the last months
In the time I started to learn about how an emulator is programmed I found that there was a limited amount of documentation. Documentation about how an emulator should be programmed or about the characteristics of the machines to be emulated. Thinking about how to contribute to the emulation I found that the second part would mean the construction of a database with all the information available of a large amount of computers and systems. This wasn’t very suited neither with a university project for
with my own preferences, and there are a few sites in Internet which more or less serve to that purpose. The first part meant to study and learn the various techniques and knowledges related to emulator programming. Since I like a lot learning and also writing I thought that could be my way to contribute. So I thought it would be nice to have a large, ordered and precise documentation about how to program an emulator. That is the purpose of this document and my work in the last months

More info:

Published by: Moe B. Us on Jun 04, 2007
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

01/04/2016

pdf

text

original

It could be said that the first emulator was created when the first computer was to be replaced by a new
computer which was compatible with the first one. The programs on the old computer should be ported
to the new one. There are diverse ways to port those applications: if the source code was available
recompile them in the new machine, but this it is not always an easy task because of the difference
between the machines; to rewrite the applications in the new machine; to translate directly the application
binary to the object code of the new machine, translating system calls at the same time; and the last to
build an emulator of the old machine and run it in the new one.

The first emulator as we have defined them was an IBM emulator created by the 60th decade.

In next years, last 80 and early 90th with the rise of the RISC architectures it was needed to port many
applications from old CISC architectures to the new RISC machines. That time binary translators (most
of them in static time) were investigated and produced to perform this change.

The first emulators were designed in the early 90 for systems like the Amiga and they were more or less
used. But the systems those days were not enough powerful to handle real emulation at full speed. There
were C64 emulators or PC emulators for example.

Later in the middle 90 it started what now it is called the ‘emuscene’. The first emulators were from old
8-bit machines but with the time and the increasing power of the PCs now there are emulators for 32 bit
and 64-bit machines.

Lately emulation and dynamic binary translation has moved to the professional field with researchs for
dynamic translators for the new IA64 architecture or the Crusoe’s Transmeta processors.

Transmeta processors uses a layer of ‘emulation’ or dynamic binary translation to provide a x86
compatible service to the applications and OSes running over them. The real CPU is a VLIW with
explicit ILP. A software layer translates on the fly (dynamic translation), at run-time, the x86 code into
VLIW instructions. This software is called Code Morpher and it has a profile system, an interpreter, a
binary translator and an optimizer.

Other commercial products which use emulation or binary translation are Ardi’s Executor, a MAC
emulator for x86 and FX!32, an impressive static translator of x86 NT applications for Alpha NT. Lately
two commercial console emulators, both for PSX, Bleem from Bleem Co. and Virtual Game Station from
Connectix. Bleem emulates the Sony PlayStation for PCs and VGS for MACs and PCs. Both companies
are in legal issues with Sony. Emulating a proprietary system is a task related with reverse engineering
and has more or less the same legal problems.

12

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->