[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Ignore 6502 Cycles on Emulator



    I have been analyzing many 6502 emulator source code, but I know that
they do not look very good.  One of them do not use cycle counter.  All 256
opcodes ignore cycle counters.  It always starts at integer 60.  Each opcode
is executed before integer one is subtracted from integer 60.  After it
reaches to integer 0, emulation will be suspended in order to allow video
and sound to be updated.
    I wonder how can video and sound be so accurate without cycle counter.
Lets say, 60 * 2 = 120 cycles, 60 * 3 = 180 cycles, 60 * 4 = 240 cycles, 60
* 5 = 300 cycles, and 60 * 6  = 360 cycles.  If 60 opcodes have only two
cycles, then 60 opcodes is times 2 cycles that equals to 120 cycles.  120
cycles is truly accurate, but 60 opcodes may have 2, 3, 4, or 5 cycles so it
will not be complete accuracy.
    I assume that the programmer does not want to add cycle counter so they
can allow the emulator to run much faster without forcing to throttle back
to 1MHz.  I do see that many programmers write source codes that are very
bad.  Please tell me what you think if emulation can do without cycle
counter???

-- 
Bryan Parkoff