For what it's worth, I differentiate "cycle correct" from "real time".
That is, if you're talking about emulating non-mechanical devices, "cycle correct" emulation should be fairly straightforward, but making it "real time" (i.e. implementing an emulator such that it's indistinguishable by an observer from the real thing) is considerably more difficult. Putting it another way, one can maintain a cycle counter in an emulator whose contents are updated when certain tasks have been accomplished. The real time needed to accomplish those tasks can vary widely, yet the cycle count will still be quite accurate. My .02 only Chuck