Exact Horizontal Interrupt Frequency


This is my first post on SEGA Xtreme forums. I have a question about what the frequency of horizontal interrupts on the SEGA Genesis is. I've heard from other sources that it's the standard NTSC 15,734Hz. However, I've calculated the frequency to be 15,720Hz instead. An NTSC Genesis has 262 lines total in a single frame (counting retrace lines, 224 active scan + 38 retrace scan). Multiplying 262 lines that must be drawn in a single frame by 60 frames, that comes to a frequency of 15,720Hz. 262 lines * 60 frames = 15,720Hz. Is this correct? PAL Mega Drives have 312 line in a frame. Would that make the horizontal interrupts 312 lines * 50 frames = 15,600Hz on PAL systems? Is this correct too?



Extra Hard Mid Boss
NTSC has 262,5 lines, and a frame rate of 29,97, which gives the 15734Hz figure. PAL has 312,5 lines, giving a 15625Hz line rate.
Thank you! I appreciate the response. I think you meant to say frame rate of 59.97 for NTSC.

But 262.5 * 59.97 = 15,742Hz?

Could anyone write out exactly how you got to the 15,734Hz | 15,625Hz frequency?

Also how can you have half a line?

Is there a resource anywhere that has this information? I've searched far and wide for a good explanation of horizontal interrupt frequency. The Genesis Technical Manual says nothing about what the horizontal interrupt frequency is.
I also have a source attached here that says a horizontal interrupt occurs every 63.7μs. This would give a frequency of:

1 / x = 0.0000637s

x = 1 / 0.0000637s

x = 15,698Hz

So weird.


  • Screenshot 2021-05-28 110026.png
    Screenshot 2021-05-28 110026.png
    35 KB · Views: 78


Extra Hard Mid Boss
In TV terminology, one frame consists of two interlaced fields. So the frame rate is 29,97Hz, and the field rate 59,94Hz.

You can get the specification e.g. here. The colour subcarrier frequency is defined as (63/88)*5MHz, and the horizontal scanning frequency is defined as 2/455 times the colour subcarrier. Plugging in the numbers gives 15734,27Hz.

I don't know how closely the Megadrive follows the specifications, or how accurate the documentation is. You can always measure it.
Thanks! I think I'll measure it too just to see. The SEGA documentation can be all over the place.

Sorry I'm new to Genesis programming and TV technicalities. But would I measure the frequency of Horizontal Interrupts from VDP pin 43? I've attached an image. It's from this site.

Screenshot 2021-05-28 122903.png

Thanks again.
Wouldn't everything be derived from the 53.693175MHz crystal? I would also guess there are a whole number of pixel clocks per line. The exact h-sync is probably different between 32 column mode and 40 column mode.
I'm not entirely sure how you would measure horizontal interrupt frequency from the master 53.693175MHz clock.

I measured the VSYNC frequency (which I assume would be the same as vertical interrupt. Correct me if I'm wrong) from pin 41 on the VDP using a multi-meter. It came to the expected value of 59.9Hz. Pin 43 is the HSYNC signal but I, for some reason, didn't get a reasonable measurement from it. :(

I did however, look at my Open Source Scan Converter which measures the HSYNC and VSYNC frequencies. Here is an image showing the VSYNC at 59.91Hz and the HSYNC at 15.69kHz from an NTSC Genesis Model 2.
These numbers stayed the same even with games running in H32 mode.

This supports what I said before. An official SEGA Technical Manual source stated that Horizontal Interrupts occur every 63.7μs. The frequency would then be:

63.7μs = 0.0000637s

1/x = 0.0000637s

x = 1/0.0000637s = 15,698.58712715856Hz ≈ 15.69kHz


The SEGA Genesis dot / pixel clock (the clock for drawing each individual pixel on a scan line) is:
6.711647 MHz (NTSC)
6.650428 MHz (PAL)

Thus for an NTSC console in H40 mode, the horizontal frequency comes out as:
6,711,647Hz / 427 DCLKs per line = 15,718.14285714286Hz 15.72kHz.

Note: There are 427 pixel total in a horizontal display for an NTSC Genesis in H40 mode including overscan.

Screenshot 2021-05-29 112138.png

Sega Mega Drive/Technical specifications - Sega Retro

Things are not adding up.
I've been working on a 68000 program that just counts the number of HBLANKs over 60 VBLANKs (which is 1 second) but I keep getting only 13,000 or so. Still figuring things out on that.