Even then... the C64 is 'just' a C64 right. Emulating is at least emulating the MSX1, MSX2, MSX2+ and turboR. Most emulators have even chosen to emulate all (or some) of the subtle differences between different brands and types of MSX computers as well. Last but not least, as several impressive demo's show, the way the timing of the CPU and VDP are related to each other in the MSX has proven to be very tricky to emulate indeed. Does the C64 have these (or similar) problems as well? I felt the C64 fans were underestimating MSX emulation quite a bit.
I don't think C64 is harder to emulate than MSX1. What makes it look like that is that C64 has a lot more and better written demos and games that utilizes more of the computer. MSX really doesn't have much software that pushes the limits. There may be a couple of games, the Bandwagon demos and MSX Unleashed. C64 have hundreds of these games and demos that require more from an emulator.
So I think its easier to create an MSX1 emulator that runs most MSX1 apps correctly than to create a C64 emulator that runs most C64 apps.
Btw, when developing MSX Unleashed and its sequel, I noticed that no MSX emus emulates the timing in the VDP very accurate. There are quite big timing problems which makes many demo parts I've done lately to fail.
Even then... the C64 is 'just' a C64 right. Emulating is at least emulating the MSX1, MSX2, MSX2+ and turboR. Most emulators have even chosen to emulate all (or some) of the subtle differences between different brands and types of MSX computers as well. Last but not least, as several impressive demo's show, the way the timing of the CPU and VDP are related to each other in the MSX has proven to be very tricky to emulate indeed. Does the C64 have these (or similar) problems as well? I felt the C64 fans were underestimating MSX emulation quite a bit.
Do not think that things are so easy on c64. there are some subtle things, for example:
Did you know that (as in msx) the cpu clock comes from the video circuitry ? (VIC II)
Did you know that, because vram is contented the VIC places a variable number of bus requests on CPU?
The number of wait states vary a lot and depends of:
current scan line (bad lines)
number of sprites on the same scanline... (more sprites == more fetch cycles ==> more waits for the CPU)
How you manage some internal VIC register when you do tricks...
So, non so easy to emulate perfectly...
Did you know that, because vram is contented the VIC places a variable number of bus requests on CPU?
The number of wait states vary a lot and depends of:
current scan line (bad lines)
number of sprites on the same scanline... (more sprites == more fetch cycles ==> more waits for the CPU)
How you manage some internal VIC register when you do tricks...
Thats the same with the MSX VDP too but no MSX emulator even attempts to emulate it. Its just that the C64 demo and game developers utilizes more of the computer which puts higher requirements on the emulator.
Its quite easy to make a little demonstration on MSX that shows that the MSX emus are in fact not that accurate.
Some C64 fanatics keep complaining about the SID accuracy stilll..
Oh, but I can point out sound errors in msx emulators. I can't hear the SID differences that well, because I don't know the SID as well as PSG and SCC.
I think that in the past the C64 emus (VICE in particular) was much better than MSX emus. One reason why I started blueMSX was that at the time there wasn't an MSX emulator even close as good as VICE, which I thought was sad because MSX deserved better. So my goal was to do an MSX emulator at least as good as VICE. Now I think that both blueMSX and openMSX are at least as good as VICE if not better.
I'm sure some people would disagree but these statements but that's what I think when comparing the emu scene for C64 and MSX.
Considering the more powerful C64 was there before MSX1,
Not so powerful, c64 was better than msx on sprite support, and had omni-dir hw scroll registers.
In games where those features are useless like 3d isometric games, c64 prove to perform worse than msx1 or ZX Spectrum, because of less powerfull CPU, sound wise the systems are on the same range of magnitude
But you must agree if the differences like the above are not sooooo hard to emulate nowadays....
Timing issues and sync between components are the real challenge and both msx1 & c64 had those interesting things on this ......
Considering the more powerful C64 was there before MSX1,
Not so powerful, c64 was better than msx on sprite support, and had omni-dir hw scroll registers.
In games where those features are useless like 3d isometric games, c64 prove to perform worse than msx1 or ZX Spectrum, because of less powerfull CPU, sound wise the systems are on the same range of magnitude
But you must agree if the differences like the above are not sooooo hard to emulate nowadays....
Timing issues and sync between components are the real challenge and both msx1 & c64 had those interesting things on this ......
Yes, it's true the MSX's Z80 is a bit faster than the C64, I'll give you that. Some of that I suppose was balanced by the fact that VRAM access on MSX was a bit slow, which is why the formentioned isometric games performed better on the speccy compared to MSX. But then again the C64 had those magnificent ninja isometric games (can't remember the name), which both MSX and Spectrum had no hope of putting it on screen as beautifully.
I'd say the C64 hardware beat the crap out of (standard) MSX both in sound and graphics. There's no way the AY8910 can be compared with the SID.
Back to emulation, it's true that the real challenges are related to timing issues and hardware quirks, and not so much in the power of the machine.
Depending on what you're after (real accuracy or being able to run most software), the large amount of software available can be both a challenge and a benefit.
You could argue that an MSX emulator is more difficult to test because there isn't that much software available for it that drove the machine to it's limits like on C64.
For example JEmu2 also supports Sega Y-Board hardware, which has 4 CPU's, 16 channel stereo PCM, YM2151, 6 math chips, 2 layers of zooming sprites etc. But it turned out much easier to emulate because there's only a handful of games for it (and MAME has documented the sega hw drivers pretty well in the source). OTOH, if I wanted really accurate emulation, I wouldn't have any hope in getting it to the same level of accuracy as Blue/OpenMSX or VICE.
Not so powerful, c64 was better than msx on sprite support, and had omni-dir hw scroll registers.
In games where those features are useless like 3d isometric games, c64 prove to perform worse than msx1 or ZX
Spectrum, because of less powerfull CPU, sound wise the systems are on the same range of magnitude
Yes, it's true the MSX's Z80 is a bit faster than the C64, I'll give you that. Some of that I suppose was balanced by the fact that VRAM access on MSX was a bit slow, which is why the formentioned isometric games performed better on the speccy compared to MSX. But then again the C64 had those magnificent ninja isometric games (can't remember the name), which both MSX and Spectrum had no hope of putting it on screen as beautifully.
I do not know this game, but i'm rather sure that in those games , where hires graphics is used (320x200) and the C64 cannot count in sprite HW or scrolling register, all is done on C64 could be better done on ZX and /or MSX.
Regarding the relative slowness VRAM speed of the MSX, in that situation is not a big penalty: those games works in a RAM backbuffer, then copy a ram block from RAM to VRAM; there is no much difference between an OTIR or LDIR.
the real difference is if you do a lot of VRAM access randomly, but is not the case...
I'd say the C64 hardware beat the crap out of (standard) MSX both in sound and graphics. There's no way the AY8910 can be compared with the SID.
Again differences are if you compare the chips capabilities, but there is no so much difference if you think only on the emulation perspective.
Saying that if emulating the AY has a difficulty factor of 1, emulating a SID could not be harder than 1.5...
Regarding the relative slowness VRAM speed of the MSX, in that situation is not a big penalty: those games works in a RAM backbuffer, then copy a ram block from RAM to VRAM; there is no much difference between an OTIR or LDIR.
The big problem is that you can't use OTIR on MSX1 if you're in the display area. If you are, you need to have 28 Z80 cycles between each out to the VDP. Thats a big problem. Not only does it slow down the copy. You're also wasting CPU cycles on nops.