CKeichel said:
Can you tell me which emulator is more acurate in areas such as timing then Mame? I am not aware of one arcade emulator, that has a more accurate timing, but I am sure, you will give me some examples.
Accuracy is used to mean things at several different levels? Sorry, this is much to vague. Accuracy means the goal to achieve an emulation, that is as close as possible to the original on any level.
Please see this post for instance:
http://board.byuu.or....php?f=7&t=1271
If you're qualifying and comparing MAME as an arcade emulator then yes, I'm sure it's the most popular, most accurate, generally regarded as best emulator of arcade platforms. If you qualify and compare MAME as a collection of emulators and modular cores then a great number of these cores aren't as accurate as equivalent or similar emulations in other projects. The thread I linked illustrates an example. And I don't really see a problem with this, because it's not going to be everyone's goal to make an emulator perfect. Despite that many people say that all "good" emulators put accuracy above all, the fact is that most emulator authors aren't going for the extreme levels of accuracy that emulators such as bsnes go for.
Here's another example: MESS and N64 emulation. If you followed the development of that a large distinction was made in proclaiming that MESS's was more accurate because it doesn't use HLE for RSP (or RDP) emulation and it uses software rendering for 3D. So compared to other N64 emulators it's certainly more accurate. But does that mean that it's their goal to make it as accurate as possible? They don't emulate CPU cache or memory stalls, meaning that the timing model is grossly inaccurate. And this would be simple compared to making any attempt at properly emulating timing for the other major processors on the console.
Does this mean I'm criticizing them for this? Quite the contrary, I'm actually making a point that for many emulator authors it makes no sense to dedicate the kind of enormous time and effort necessary to make an emulator as accurate as possible. But many users don't really understand what the ramifications of these decisions are, and conflate many different goals into a mere statement of whether or not the emulator is "accurate", and expect nothing less than perfection as a goal. It's not really fair to judge emulators by this perceived level of accuracy when it's not very well understood by those who don't have a thorough technical understanding of the platform (and really there's no reason why they should need one). What's judged instead is what other people say about the emulator, and terms like "accuracy" end up being used as buzzwords. That's what I meant by the shroud of hype. And for what it's worth, I'm not the only person who has done emulators and feels this way.
CKeichel said:
And of course, a low level emulation is more accurate (closer to the way the software ran on the original hardware) then a high level emulation. No doubt about that.
But not a lot of emulators use "high level emulation" to begin with. Or maybe there's a problem because the term is not well understood or even well defined. The technique originated with UltraHLE, and it has generally meant emulation of software with software, usually library routines, instead of hardware. The ramifications of this are very different from using for instance 3D acceleration to emulate a platform's 3D - that's (roughly speaking) emulating hardware with hardware. Usual the approach of an emulator is to emulate hardware with software (the final combination, emulating software with hardware, would be really unusual). LLE only means the hardware with software approach, which naturally follows into emulating hardware running software, as opposed to emulating software "directly."
HLE is usually used for emulating firmware like BIOSes, because they're unchanging. And where strict timing accuracy isn't important (and it often isn't) and where the bugs are worked out this is seen as perfectly suitable. Most GBA emulators use HLE for BIOS emulation and no one complains about it. N64 is one of the few platforms that has emulators employing HLE of user-programmable software. It was a good way to get a lot of games working quickly on old hardware, and it worked because Nintendo so rigorously abstracted the system's support hardware in software. In this case it's actual virtual machine implementations that are abstracted instead of library routines, so it's especially well suited to it, but it obviously fails when games don't use those VMs.
CKeichel said:
I don't merge things into one notion, if you want to see, what accuracy means and what advantages the Mame approach can achieve, take a look at the history of the emulation of Bubble Bobble, for a long time in every emulator the emulation of the behavior of the monsters was inaccurate, it took the low level approach of Mame (and a complete reverse engineering of one chip) to get things right.
But when you get down to it there isn't really a "MAME approach." MAME has many contributors and many cores that were made with many different goals (which may be implicit and not obvious even to the developer, but they're there). Some cores will never get the kind of attention others do. Of course if work is necessary to make a game work right there's a good chance someone will do it, but in fact the notion of accuracy extends well beyond just making games work correctly. This is what I mean when I say you merge things into one notion and I'm sorry if this offends you but I really don't think you really see my point.
Certainly MAME didn't succeed here by taking a "low level" approach, they succeeded in the way many other emulators and hardware researches have, by studying the hardware to gain a more correct understanding of how it works.
In some cases there have been chips with fixed firmware that have been HLE'd, like the DSP on SNES carts, which bsnes has only recently added LLE emulation for. But Bubble Bobble isn't an example of this, you can see its hardware doesn't have anything dedicated like that:
http://www.system16....ware.php?id=646
CKeichel said:
You have the tendency to say everybody except you is an idiot, this is rather annoying.
No I don't. Just because I argue with people doesn't mean I insult them. I'm sorry if you feel insulted. In this case I do think most emulator users are ignorant of the tradeoffs involved in emulator design, but that doesn't mean I think they're stupid or ignorant in general. I'd hardly expect them to have specialist knowledge about something like this.