Why Can't We Have Fast N64/PSX Emulators?
Recently (the past 2 years), many emulators for various
machines have appeared, those are great events for all the
emulator lovers, those who like to recall their memories of
'the best' video games as they remember, and of course the
console gamers.
It seems that those who when born during the '80 aren't
satisfied with the current emulators, they want to have emulators
for the most recent consoles, they want to save some money (they
actually don't save a thing, since they could buy a well equipped
console with many games for the same money they paid for their computer)
in playing on emulators for saturn, N64 and PSX, that's why they keep
looking for emulators for these machines and hope that every rumor
about fast emulators for the mentioned consoles is true.
In this article, i'll explain why isn't it possible to code a fast
emulator for these machine (note; i say that it's impossible to code
a fast emulator, i'm not saying that it's impossible to code an emulator
at all).
The basic idea behind emulators is 'emulating', they take a
command that an original processor had to process and emulate it
correctly. (we must remember that a different processor cannot
interpret the command since it's a whole other processor)
In order to emulate an alien command, the processor has to
go trough several commands of his own which do interpretation
(instead of the original processor). this means (for example)
that if the PSX processor had to process 10,000 commands to
draw a line, it would take the 'emulator processor' over 500,000
commands to do the same things (x50 slower!)
In brief, for each command (CPU CYCLE) for the original
we pay much more commands on the emulator cpu!
- When we dealt with 8bit machines, which had Z80 processor that
was running at 1Mhz, our +133Mhz computers were fast enough
to emulate Z80 fast enough.
- When we deal with 16bit machines, their processor is running
at about 8Mhz (x8 then z80), this makes emulating much
slower for 2 reasons:
- The ratio between the speeds of the 'original processor'
and the 'emulator processor' is smaller, this means
that it's more difficult for the 'emulator processor'
to emulate things fast enough (As they were on the original
processor)
- Emulating a single command of advanced processor
(the 16bit processor are advanced comparing to 8bit ones)
takes more commands on the 'emulator cpu'.
Why are Emulators Written in ASM Faster?
Assembly can access the processor (emulator processor)
and the memory faster then any other programming language,
this makes emulating faster.
|
Date: Oct. 30, 1997
Author: Lost Soul
Added: Jan. 1, 1998
Sorry Lost Soul! =(
|
If you've ever wanted to write a journalistic article about emulation,
interview an author of an emulator, or write an editorial expressing
new insights on the emulation scene, then perhaps you should submit an
article to Archaic Ruins!
The criteria for having your work published is that your work must show
effort. Interviews must contain at the minimum, 10 questions. Editorials
must be at least 2 to 3 pages and quotations from multiple sources to support
your views and opinions. Humorous writings are also accepted!
- The Archaic Ruins Staff
|
|