24

Are "tile pixels" the same size as "sprite pixels", and are they both square (ignoring the rule that multicolor sprites can only be colored in groups of two pixels)?

By "square" I mean that the pixels have a 1:1 aspect ratio.

If the answer depends on the display, then I am asking about the ubiquitous 1702 monitor.

EDIT: I am asking so that I can configure the graphics editor on my modern laptop for creating Commodore 64 artwork. In my case, I am using an NTSC system.

10
  • 5
    Using a 4:3 monitor the pixels (408x284 including the border) should have been nearly square. Please note that CRT monitors had a knob that allowed adjusting the aspect ratio of the image. The 1702 had this inside the case intended to be used by repair shops only. Commented Feb 20, 2020 at 22:11
  • @MartinRosenau that's assuming 50Hz timings?
    – Tommy
    Commented Feb 20, 2020 at 22:30
  • 6
    Ugh. This is one of those questions where more context on what you hope to accomplish is needed to prevent the answer being rather complicated. For example, are you targeting PAL or NTSC C64? Are you exporting graphics created on a modern system (versus drawing graphics on a real C64)? Do you just want to know something really specific, like "How should I setup The Gimp for C64 artwork"?
    – Brian H
    Commented Feb 20, 2020 at 22:34
  • @BrianH i actually am trying to set up my sprite editor for c64 artwork. Commented Feb 21, 2020 at 15:10
  • I am wondering how the 'squareness' of pixels is defined in TV standards? For example, is there a pixel clock definition, such that pixels at that pixel clock must be square? Is there a requirement to tune vert. vs horiz. picture size (both easily adjustable at CRT TVs) in a specific way for the 'square' pixels to become actually square?
    – lvd
    Commented Feb 22, 2020 at 10:36

4 Answers 4

28

The pixels are not exactly square, the actual aspect ratio depends on the TV system. For PAL-B, the pixel aspect ratio is 0.937:1, the pixels are a bit higher than they are wide. For NTSC, the ratio is 0.75:1. At this ratio it can be clearly seen that the cursor block is definitely higher than wide.C64 NTSC model rendered by VICE emulator

2
  • so if i'm setting up my graphics editor for artwork on an NTSC c64 with the 1702, i should use 0.75:1 pixel aspect ratio. for PAL, i should use 1:1. thank you! Commented Feb 21, 2020 at 15:15
  • 13
    VICE is an emulator so it might not be accurate :-/ Commented Feb 21, 2020 at 15:39
24

In standard bitmap mode the C64 outputs 320 pixels in 40µs.

The visible portion of a line is ~52µs; in 60Hz regions ~240 lines are considered 'visible', but in PAL regions it's ~288 lines.

So if there were no borders, there'd be around 52/40*320 = 416 pixels across the visible portion of a line.

Given that each line is 4/3rds as wide as a hypothetical vertical scan, you can compute that 416 * 3/4 = 312, implying that so you would have square pixels in a hypothetical 312 line display.

A PAL screen has only 288 lines, so it's like taking that 312 line display and stretching out only 288 lines of it. Therefore the pixels will be very slightly taller than wide. Around 288/312 = ~92% as wide as tall.

An NTSC screen has only 240, so its pixels would be more like 240/312 = ~77% as wide as tall.

Heavy caveats apply: different screens are calibrated differently, to numbers usually near to those above but subject to being only as close as the engineer turning the dials could get.

A further nuance is that total line time may be 64µs or 65µs (depending on revision) in 60Hz world, but will be 63µs in 50Hz world. Your screen will have a PLL of some sort to bring itself into synchronisation with the horizontal sync period, but often that'll result in the line contents being slightly stretched or slightly compressed, further throwing off the arithmetic.

You therefore might as well say that PAL pixels are square, as 92% is within the margin of error given the effective approximations of all the other numbers. But NTSC pixels shouldn't be close.

2
  • 8
    Yet another nuance is that some monitors have an easily-reachable vertical-height knob, and people in the US who play games written for PAL may very well adjust their monitors to show more of the overscan, shrinking the aspect ratio.
    – supercat
    Commented Feb 21, 2020 at 15:36
  • 1
    I'm wondering what was the calibration on 1702 or 8833 monitors -- did they have C64 pixels square? Was it easy to adjust picture height and width of those monitors?
    – lvd
    Commented Feb 24, 2020 at 22:43
5

As for the first part of your question, yes, for sprites as well as characters or bitmap images the same principle holds: either you can be in single colour/hi-res mode (320x200, 1 bit of foreground colour info per logical pixel) or multi colour mode (160x200, 2 bits of colour info per logical pixel).

In practice, for PAL, a single colour pixel that is rendered is very close (0.936:1) to being a square.

2

EDIT: Disregard the stuff below as regards PAL. I failed to take account of the fact that the PAL C64 uses a slightly non-standard line frequency, which causes the lines on an an analogue PAL screen to be slightly further apart from each other than the standard has them. See here: Pixel Aspect Ratio

Taking that into account, the pixel aspect ratio for a PAL C64 is a much simpler value. It is 59:63.

Here's a table of pixel aspect ratios of different Commodore and Apple machines (as they are after power on without any register tweaking), taking this into account. E.g. "118:71" means, 118 lines high equals 71 pixels wide. I've also given the maximum sized perfect square you can draw on the main screen area of that machine, with the register settings as they are after normal power on reset (i.e. without tricks such as opening borders, changing frequencies, adjusting timing registers, putting the VDC in 40-chars-per-line mode etc.). You can use that to adjust your screen height and width.

Machine   | TV System  | Pixel aspect ratio | Maximum Square
----------+------------+--------------------+-------------------
VIC-20    |  NTSC      |  3:2               |  X=122   Y=183
VIC-20    |  PAL       |  118:71            |  X= 71   Y=118
C64,C128  |  NTSC      |  3:4               |  X=264   Y=198
C64,C128  |  PAL       |  59:63             |  X=189   Y=177
C128 VDC  |  NTSC      |  195:508           |  X=508   Y=195
C128 VDC  |  PAL       |  59:128            |  X=384   Y=177
C16,Plus/4|  NTSC      |  65:76             |  X=228   Y=195
C16,Plus/4|  PAL       |  59:57             |  X=171   Y=177
Apple II+ |  NTSC      |  65:76             |  X=152   Y=130
Apple II+ |  PAL       |  59:57             |  X=171   Y=177

The Apple II+ values are also valid for all other Apple II machines (including the IIgs) as long as they are in II+ compatible display modes, i.e., 40-column text, standard hires, and the mixed mode combining those two. In the //e and above Double-Hires or the IIgs Super-Hires modes, double the 76 or the 57.

The values for PET (with and without CRTC) and CBM-II are missing. I'm not sure about their dot-clock and cycles-per-line values.

DISREGARD THE FOLLOWING AS REGARDS PAL: The best way to calculate the answer is by using the dot clock values. Industry standards mandate that for a full-frame 480 line NTSC picture at a dot clock of exactly 13.5 MHz, the pixel aspect ratio is exactly defined as 11 dots wide equal 10 lines high, so for square pixels, you need a dot clock of 135/11≈12.27272 MHz. For a 576-line PAL frame, the same dot clock gives pixels where 54 dots wide equal 59 lines high, so for square pixels the required dot clock is 59/4=14.75 MHz. With the C64 dot clocks, PAL color clock times sixteen over nine, which is 709379/90000≈7.882 MHz, or NTSC color clock times sixteen over seven which gives 90/11≈8.182 MHz, and the fact that the Commodores use non-interlaced modes that are half as many lines high as full frames, the NTSC C64’s pixel aspect ratio comes out as (135/11)/(90/11)/2, exactly 3:4 or 0.75, three lines high equal four pixels wide. The PAL C64 gives (59/4)/(709379/90000)/2, the rather unwieldy exact value of 663750:709379, which comes out at about 0.93568; that means that 160 lines high almost exactly equal 171 pixel wide; the error is less than 1/1000 pixel, far below the limit of how well even professional equipment can be adjusted.

6
  • The definitions for 13.5 MHz sampled video aspect ratios are arbitrary and later additions for digital component video. NTSC or PAL isn't even sampled at that rate. But based on similar math, it is still safe to say that no, C64 did not use square pixels, not for PAL or NTSC. Also the C64 output timing is not conformat to standard PAL or NTSC to begin with, the signal being progressive instead of interlaced, so half a line is missing per video field.
    – Justme
    Commented May 14 at 19:00
  • @Justme well 13.5 MHz is a common multiple of both the PAL and the NTSC line frequencies, in fact that common multiple that is closest to square pixels for both standards, so I wouldn’t call it arbitrary. And the 10:11 and 59:54 values are at least close to the analogue standards, so not so very arbitrary either. Of course analogue NTSC is not sampled at 13.5 MHz because it is not sampled at all.
    – TeaRex
    Commented May 14 at 20:33
  • 13.5 MHz sampling is for digital RGB/YUV/YPbPr component sampling for 525i60 and 625i50 TV scanning systems. NTSC and PAL existed well before common 13.5 MHz sampling was found to be useful and standardized in 1982. It can be encoded into PAL/NTSC. NTSC is generally sampled at 4xFc of 14.318 MHz and PAL at 4xFc of 17.734515 MHz where there is even not an integer amount of samples per scanline. But you are correct, industry standard square aspect sampling are 12.2727 MHz and 14.75 MHz. The 10:11 and 59:54 aspects are for some specific purpose and these have changed over time.
    – Justme
    Commented May 14 at 20:58
  • If you now noticed the PAL C64 uses a non-standard line rate; so does the NTSC C64. There are at least two versions of the VIC-II chip and they use different line frequency (cycles per line) and different amount of lines too.
    – Justme
    Commented May 16 at 9:11
  • @Justme Yes, I Ignored the "OLD NTSC" Variant of the VIC-II because I had the impression that it is quite rare. Is that wrong? (I'm from a PAL country myself). And as far as I could tell, the NTSC C64 in the "NEW NTSC" variant does use the standard line rate (30*1000/1001 frames per second, times 525 lines per frame).
    – TeaRex
    Commented May 16 at 11:14

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .