We are going to strive to use the NES processor as much as possible, and not rely on a microcontroller to do all the heavy lifting. This means that the program must be executed from a real cartridge, just like it would back in the day.
Some of the expansion pins are mapped to the directly to the cartridge. Since the NES CPU has very little periphals, we could place any needed peripherals (for example, a timer) in the cartridge itself.
Right now, we are programming the cartridge using Atmel EEPROM chips and a hand modified cartridge.