> I don't know StarScream, but I could imagine it maybe doesn't lend itself very
> well to wrap it up in a class? Other than that, I wouldn't know why you wouldn't
> be able to run 2 megadrives at once using OO if the rest of the megadrive
> emulator is OO too...
I'm not sure what the incentive would be to attempt to emulate the system emulation state of two megadrives using the same process when you can just run an emulator executable twice. Emulating multiple processors is a completely different story. There is no reason that an object oriented implementation of a processor core should be particularly inefficient. I use a class for my Nuon processor core and have four of them running at the same time. The indirect-pointer overhead is negligable compared to overhead associated with interpretation and multi-processor synchronization. When you emit native code, all of this overhead can go away if you use a separate code buffer for each processor.