Yes, you’ll most likely need to limit the speed, if you want it to run at 1mhz.
I highly recommend a test-driven approach to your 6502 emulation, using Klaus Dormann’s amazing tests.
Since you’re aiming for cycle-stepping from the outset (as did I), you can also do fun things like run the same test suite on your emulator and on visual6502’s gate-level emulation, and verify that you generate the exact same sequence of reads and writes. This might involve porting perfect6502 from C to your language of choice, but, hey, you’re already in it for the fun, right?
Test roms are super useful... I've written about 1/3rd of a NES emulator, the first part being the CPU, and nestest.rom was pretty helpful for making that. (Although, nestest wasn't really looking for cycle accurate read and write).
I highly recommend a test-driven approach to your 6502 emulation, using Klaus Dormann’s amazing tests.
Since you’re aiming for cycle-stepping from the outset (as did I), you can also do fun things like run the same test suite on your emulator and on visual6502’s gate-level emulation, and verify that you generate the exact same sequence of reads and writes. This might involve porting perfect6502 from C to your language of choice, but, hey, you’re already in it for the fun, right?
Good luck, and welcome :-)
(zellyn@ on most services if you need help)