http://www.spritesmind.net/_GenDev//forum/...topic.php?t=489 I hope this will become something really nice
Woah, that's amazing in a technical point. Can't wait till he optimizes it, maybe he could even try to get the Super Game Boy features working.
Yes, but the Super Gameboy had support in many games to have an increased pallete etc. Gameboy Color would be awesome though.
Well, this is likely as fast as it is due to the MD having a Z80 subprocessor, which the GameBoy's CPU was heavily based on.
But many instructions are different and it's prone many games would crash if the Z80 wasn't emulated. Besides the layout is probably drastically different to make that feasible, there being a total lack of MMU and the like.
I'm not really surprised this has been done. Think about it, it was only a matter of time before something Nintendo related was emulated on Mega Drive related hardware in recent times.
This thing runs solely on SH2s AFAIK... there's even a PC version of this so it cannot really be multi architecture CPU thing
It's nothing surprising. Emulating the Gameboy on the 32X is no feat. The 32x has got a normal framebuffer comparable to one of a PC videocard, and it has 256Kb of RAM. More than enough considering the GameBoy has 8KB of RAM and the length of the VRAM isn't that different, either. Now what's nice is that somebody is actually doing it. Most people only talk and talk and don't do anything at all. As for full speed, it might be almost reachable if a processor is used for display and another for emulating CPU code. The 32X is ignored and yet it's powerful enough for most homebrew games. A bit like the PS1 if you think about it.
32X is a POS. 256KB of VRAM means nothing, the memory is slow, and its 128+128K, 2 frame buffers, so you don't need double buffering at least. You may achieve 25% speed, but it requires very good code... 2 CPUs mean nothing, both are on same bus and constantly waiting for each other, unless you have put your code into cache.
I thought the whole point of the cache was to store the code into it =| EDIT: even yet, isn't the cache shared too? That means the CPUs are constantly waiting each other anyways.