miker00lz wrote:
well, it's possible but no it's not practical at all. the CPU and PPU in the NES need to be closely synchronized for games to run properly.
True, but the only points of synchronization are
- when the upper bits of $2002 change (two to four times per frame, and fairly predictable),
- when the CPU writes to $2000-$2007 (not very often barring raster effects, except during vblank when the sync need not be as tight),
- when the PPU fires an NMI (once per frame, and predictable), and
- when the PPU's memory access pattern causes the mapper to fire an IRQ (not very often barring raster effects, and still usually predictable).
These are why
catch-up style emulation works. A multithreaded emulator would just do all the catching up in a separate thread that waits for batches of timestamped writes from the CPU.
Quote:
besides, today's CPUs are so powerful
Except on mobile, where you want to reduce the clock frequency even as you increase the cores so that the backlight remains the biggest current sink. Or except if you want to do something like a Wii Menu or a virtual arcade with
twelve or more simultaneous emulation instances.
Quote:
i used to play NES games in FCEU at full speed on a Pentium 1 MMX at 233 MHz.
True, but the more accurate "new PPU" of FCEUX needs a faster host CPU. Still, even Nestopia still fits into a P3 at 866 MHz.