[As cbmeeks said](//retrocomputing.stackexchange.com/a/2577/409), it's going to be nearly impossible with a microcontroller. A Raspberry Pi would be fast enough, but not with an operating system. [It's possible to run code directly on a Raspberry Pi without an OS](https://github.com/dwelch67/raspberrypi), like a microcontroller. You don't even need to worry about cycle timing to emulate a NES rom; you can rely on the M2 signal to know when to read the value on the bus. You're going to run out of I/O pins -- the Raspberry Pi only has 26 -- but you can reuse pins with latches/multiplexers. If you only want to emulate NROM games, you could use two Pis -- one for the CPU address space and one for the PPU (and maybe the CIC chip too, since you'll have a couple of spare pins.) Another option might be something from the [BeagleBoard family](http://beagleboard.org), such as the [BeagleBone Black](http://beagleboard.org/black). These normally run Linux, like the Raspberry Pi, but [it seems like it's easier to use them without an OS](https://beagleboard.org/project/starterware/). The BeagleBone Black doesn't have enough GPIOs even for just the CPU, but you can always multiplex, and you *might* be able to repurpose some of the other pins, especially if you're running without an OS.