drewying wrote:
Is it possible to get those timings right without implementing a CPU that executes cycle by cycle microcodes? Has anyone successfully written an emulator that executes a whole instruction in one cycle, runs the PPU by the timing of that instruction * 3, repeat with next instruction, and still gets through Battletoads, doesn't shake Bart's status bar, and passes ppu timing tests without PPU hacks?
FCEUX operates like that. But it's full of hacks to make things work. What's worse is that you won't be able to reproduce those hacks. It took many many years of incremental tuning until FCEUX was able to play virtually all games. And that tuning was the effort of many many contributors. As an individual emulator developer, if you want to make something that can run all games, then you'll have to strive for the highest accuracy. It's the only practical path to that goal. In other words, introduce microcodes.