The Commodore 64 scene is divided into two sections, based on
incompatibility differences in the machines. These are based upon
differences in the video standards of the different countries. Most
European countries use the PAL standard, while the countries in the
Americas primarily use the NTSC standard. Because of these
differences, software designed on European 64's often fails to work
correctly on an American 64 and vice versa. To cope with these
problems, a discipline known as fixing has arisen. In this article, I
will attempt to cover the basic differences in the 64 and what
problems arise.

The first difference is in the screen refresh rate. PAL screens are
redrawn 50 times a second, while NTSC screens are redrawn 60 times per
second. This usually does not prevent software from working properly,
but anything which is synced to the screen refresh will occur at
different rates when run on the different systems. The place this is
most obvious is in music players. Most European tunes are fine, as
they sound ok when played a bit faster. Some NTSC tunes may seem too
slow when played on a European 64. The difference is noticeable but
not usually a problem, as PAL routines will run about 20% faster on an
NTSC machine and NTSC routines will run about 16% slower on a PAL
machine. This does not apply to all processing, only to movements or
other routines that make on cycle on every screen refresh.

Two other differences account for most of the problems related to the
PAL/NTSC division. PAL systems have 312 raster lines and 63 processor
cycles on each raster line. The most common NTSC systems have 263
raster lines and 65 cycles on each line. This means that PAL systems
have 19,656 cycles per frame, while NTSC systems have only 17,095. PAL
systems thus have about 15% more processing time for each video frame.
Any PAL routine which uses up most of the available processing time
will not complete in a single frame on an NTSC machine and will
probably have a distorted display. Note that this only applies to
routines that work with the graphics chip and are synced to the
refresh rate. The problem becomes even worse when the processing must
be done outside of the visible display area. Since the normal display
area is 200 raster lines high, there are 112 left over on a PAL
machine, but only 63 on an NTSC 64.

Another problem arises due to the differing number of raster lines. If
a program wishes to perform a task at some raster line greater than
263, it will work fine on a PAL 64, but will wait in an endless loop
on an NTSC machine. If interrups are used instead of a busy wait, the
interrupts will never occur.

Also, with the differing number of cycles per raster line, raster
routines -- routines that need to perform one or more operations on
each raster line and thus need to take up exactly 63 or 65 cycles in
each interation, in the simplest case -- will become out of sync,
looking distorted or not displaying at all. Thus an FLI routine for a
PAL machine will often work like an FLD routine instead when run on a
NTSC machine.

One final difference exists, which causes a display distortion, but
which is less troublesome than the others. The sprite coordinates
above 404 are displayed at the left of a PAL screen, while coordinates
above 412 are displayed at the left of an NTSC screen. Often these
coordinates are used with a hyperscreen routine to display continuous
graphics even in the left and right borders. But a PAL routine will
have an eight pixel wide gap between two of the sprites when run on an
NTSC 64 and an NTSC routine will have an eight pixel overlap will run
on a PAL computer.