Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I see this repeated often, but if you load any 3D game side-by-side on C64 vs Spectrum, the Spectrum is significantly faster. I don't know why, but can only guess there must be optimisations availing more of the Z80's Mhz vs the 6502's.



It's a rough estimate based on clock cycles. The Z80 instructions take between 4 and 23 cycles to execute, with an average of about 13 cycles. The 6502 instructions take between 2 and 7 cycles with an average of about 4, thus the difference of about 13 / 4 = 3 times more cycles. It doesn't take into account how much is being done by each instruction or memory timing, etc.

Another reason the 6502 is faster is it was designed to utilize the bus on every other clock cycle, leaving the other cycles for a co-processor such as a video chip to read memory without impacting the speed of the processor. The C64 (1 MHz w/2 MHz RAM) and BBC Micro (2 MHz w/4 MHz RAM) both used this feature. The Atari 800 didn't and lost from 10% to 47% of its processor cycles to the video chip.

The Z80 also has more addressing modes, which speed things up. It depends on what type of computing you are doing. For most games, the 6502 @ 1 MHz is faster than the Z80 @ 3 MHz, but at maths, the Z80 is faster.


See the stack overflow answer in my sibling comment - there's a bunch of reasons. One is that the Z80 has a bunch more registers than the 6502, another is that the famed fractional cycle times of the 6502 compared to the z80 are based on highly synthetic benchmarks / cherry picked individual instruction comparisons rather than real world use cases.


Is Elite an ok comparison for you? Its ~6fps on C64 and ~8fps on Spectrum. Technically you are correct, Spectrum is whole 25% faster. Practically both are borderline playable.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: