[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: The Perfect Emulator?
On 29 Sep 2003, Michael J. Mahon wrote:
> One of the very few examples of a program which would require this
> detailed accuracy for correct appearance is a program which uses
> software to synchronize with the video refresh in order to perform
> synchronous video mode switches. Although there are a few demo
> programs that use this technique, to my knowledge it has never been
> used in commercially-released software.
I'm sorry, Mr. Mahon, but this technique was actually used by a
commercially-released software. The game 'Drol' (by Broderbund) shows a
little animation sequence after level 3, which reads address $c050 for
synchronization with the display. Some emulators that do not emulate $c050
properly (mostly the case) or do not simply deliver random values as a read
value (like AppleWin does) will hang.
Apart from that, most emulators do not properly display the video effect
which is used during the noise routine found in the games "The Institue" or
"Lucifer's Realm". This effect consists of very fast mode flipping (hires
<-> text) that occurs many times during the display of one video frame.
Emulators usually emulate just one video mode per video frame (i.e only
50/60 mode changes per second).
In addition, many emulators (e.g. ApplePC) will almost hang when
attempting to display the (drawn) monitor sequence found with "Amazon" at
the beginning of the game. Here, a very fast page flipping (hires 1 <->
hires2) occurs to create some "noise" ouput of the (drawn) monitor. So far,
I know of two AppleII emulators only that provide enough accuracy for an
almost precise output. The first is written by Mr. Simms for Linux (cycle
exact emulation), and the other is the Dapple emulator (now called Emu][ at
dapple.sourceforge.net) by Dosius for DOS or Win9x (line exact emulation).
> Therefore, providing support for this level of cycle-counting accuracy
> would reduce emulator performance for very little practical gain.
AFAIK, Mr. Simms' emulator as well as Emu][ use some kind of cache to reduce
the amount of video bytes that have to be converted to the host machine's
display.
BTW.: Good C64 emulators like VICE or CCS64 have to use a *very* precise
cycle exact emulation of the VIC in combination with the processor for many
programs (especially games). Nevertheless they still run at a sufficient
speed even on my old PC.
Kindest regards
Holger