Unfortunately, no, and there never will be.
The problem with emulating any CPU (virtual or otherwise) is that even the best emulators often take approximately 15 to 30 clock cycles per instruction emulated. This means, in the best possible case, if you wanted to properly emulate a 1MHz 6502, you'd need at least a 15MHz 8086 or 80286 processor.
(Yes, I'm aware that some virtual CPU architectures get down to 5 to 10 instructions, but those involve a dynamic recompilation pass over the code, which itself takes a non-zero amount of time. Therefore, the claimed performance figures are horribly misleading except for the inner-most, tightest loops imaginable.)
However, this is just the emulation of the CPU. Now you also need to throw in enough bandwidth to properly emulate the audio and video interfaces too. And, if necessary, any lower-bandwidth I/O chips like a VIA or some such.
In short, when all is said and done, you're not going to have any useful emulation until you somehow get your hands on a 50MHz 80286 at the least. Unless you have one of the very rare 40MHz 80286-based PC/ATs, you're almost certainly not going to have enough CPU horsepower to emulate everything.
By way of comparison, I have a dual-core AMD Athlon XP system running at 2.8GHz. Gigahertz! Yet, when executing the VICE "x64" or "x128" emulator, I get only about "25MHz" equivalent performance in warp-mode. Since my lib65816 emulator gets close to about 200 to 300MHz equivalent performance alone, I can therefore theorize that the factor of 10 loss in performance is primarily due to I/O emulation (particularly video). That my Kestrel-2 emulator with the video emulation enabled gets about 30MHz performance at full speed seems to corroborate this determination.
On top of that, you also need to consider the I/O throughput to the EGA card as well. Odds are likely, you're looking at an ISA or EISA bus, both of which have quite low throughputs to cards compared to modern buses. The time delays imposed by transferring graphics data to the EGA card must be accounted for in the video display emulation.
|