Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!cbmvax!daveh From: daveh@cbmvax.commodore.com (Dave Haynie) Newsgroups: comp.sys.amiga.emulations Subject: Re: C128 emulator? Message-ID: <19332@cbmvax.commodore.com> Date: 27 Feb 91 04:41:14 GMT References: <930@caslon.cs.arizona.edu> <91054.231708JKT100@psuvm.psu.edu> <1991Feb25.211337.16437@fwi.uva.nl> <91056.225758JKT100@psuvm.psu.edu> Reply-To: daveh@cbmvax.commodore.com (Dave Haynie) Organization: Commodore, West Chester, PA Lines: 62 In article <91056.225758JKT100@psuvm.psu.edu> JKT100@psuvm.psu.edu (JKT) writes: >In article <1991Feb25.211337.16437@fwi.uva.nl>, groenewo@fwi.uva.nl (Ferry van >het Groenewoud) says: >>It's so funny. Simulating a good old C64 turns out to be more difficult >>and slower than emulating IBMs, Atari STs, or Macs. >Well.... IBM "emulation" on Amiga is done by putting an entire IBM >in the box. If you are referring to Transformer, it's not all that >compatible and IS slow. Transformer is a bad example. There are much better ones being popularized on various workstations these days. Thing is, a PC emulation IS easier than a C64 emulation in many respects. The C64 has more sophisticated video hardware than an PC, for example (don't read that as "better"; obviously a PC with a VGA display has a much better display for many purposes, but it is more architecturally primitive in some ways). And "C64" is a very, very precise description of a piece of hardware. Basically, the speed of CPU execution, VIC chip raster timing, sprite behavior, the entire ROM code (including character ROM), etc. are a required part of the C64 hardware specification. And any deviation from these things will cause a C64 program to fail. A PC, on the other hand, can be an original XT with MDA display, or a '486 with gobs of cache and a TIGA display. So, in general, PC programs have been forced to tolerate a bit more difference in underlying hardware. Any visible difference between C64 revisions is generally a problem. These are both true emulations. First of all, you're emulating the 6510 from the C64 or the 8088 from the PC. Secondly, since both of these machines rely completely on the underlying hardware, you're emulating various chips, at the register level. That, especially, is why full emulations are hard to do. On the C64, for example, there are quite a few programs out there that use hardware in a rather evil way. For example, a VIC raster interrupt, which calls a software timing loop hand calculated to maybe split the screen or double-time a sprite. That's practically impossible to emulate, since it all must be done at a the VIC's register level -- there's no way to detect "intent" and use the Copper for this, even though that kind of thing would be a slam dunk for the Copper to do. On PC emulators, you get evil things like programs that constantly strobe the keyboard for interrupts, rather than using the MS-DOS input routine. Since it takes lots of CPU time just to emulate the changing register bits, this kind of program can run 10 times slower in an emulator, or possibly even break the emulation, versus a program that calls the proper routine. >Mac "emulation" has hardware involved, and Mac and Atari emulators >have three distinct advantages over a C64 emulator: [...] Mac and Atari "emulators" really aren't emulators. The only thing that's emulated, if any, is a small bit of hardware or display stuff. I call those things "hostile ports" -- A-MAX is really a port of the Mac OS to the Amiga. Only, since Apple doesn't want anyone to port the Mac OS to the Amiga like one would UNIX, ReadySoft had to be clever about it. Pretty much the same is true about running GEM and Tramiel Operating System on the Amiga. You're not emulating much, if anything, simply patching the OS to replace Mac or ST specific routines with Amiga specific routines. >|| Kurt Tappe (215) 363-9485 || With. Without. And who'll || -- Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests" {uunet|pyramid|rutgers}!cbmvax!daveh PLINK: hazy BIX: hazy "What works for me might work for you" -Jimmy Buffett