Has anyone ever considered making a GB emulator for the NES? It would obviously not run anywhere near 60fps, since no matter how you approach rendering the graphics, just emulating a (slightly crippled) Z80 on a (slightly crippled) 6502 will be painfully slow. Still, I think this would be interesting to see, but I wonder what the best way to handle the graphics would be...
Considering that the NES can do almost everything the GB can, the logical solution would be to use the capabilities of the PPU directly. There are a couple of small problems that are easily solvable (or can be ignored!), like the 32x32 tile maps (which can be done by making all palettes the same and forcing the vertical scroll past 240) and the 10 sprites per scanline limit (the result will be more flickery than on a real GB). There is however something I consider a big problem, which is the inability to mask the sides of the screen. Having garbage around the game play area is too off-putting IMO. Another big problem is the window, which can't really overlap the screen.
The other approach, which would make things significantly slower, would be to do everything in software. Reserve 360 tiles (a split will be necessary) for drawing the 160x144 gameplay area and dynamically render everything there. In addition to the speed issue, there's also the fact that 8KB of CHR is not enough to hold a second 160x144 off-screen buffer, but nothing stops us from using more CHR, even though that's not very common in iNES ROMs.
What are your thoughts on this? There are many points to consider regarding the CPU and audio as well.
Considering that the NES can do almost everything the GB can, the logical solution would be to use the capabilities of the PPU directly. There are a couple of small problems that are easily solvable (or can be ignored!), like the 32x32 tile maps (which can be done by making all palettes the same and forcing the vertical scroll past 240) and the 10 sprites per scanline limit (the result will be more flickery than on a real GB). There is however something I consider a big problem, which is the inability to mask the sides of the screen. Having garbage around the game play area is too off-putting IMO. Another big problem is the window, which can't really overlap the screen.
The other approach, which would make things significantly slower, would be to do everything in software. Reserve 360 tiles (a split will be necessary) for drawing the 160x144 gameplay area and dynamically render everything there. In addition to the speed issue, there's also the fact that 8KB of CHR is not enough to hold a second 160x144 off-screen buffer, but nothing stops us from using more CHR, even though that's not very common in iNES ROMs.
What are your thoughts on this? There are many points to consider regarding the CPU and audio as well.