NES.emu is an open-source NES emulator and one of the few left that gets consistent updates. You get the usual stuff like fast forward, save and load states, hardware controller support ...