Creating Pixel Art with Commodore 64 Limitations

Article / 15 June 2020


Recently I got myself into some pixelart studies by doing it with Commodore 64 Multi Color limitations.

Let me tell you about this limitations. 

1. Fixed Color Pallette

Commodore 64 has a fixed 16 color pallette. Which is a strange choice of colors that made by the developers of the product.

For more info: https://www.c64-wiki.com/wiki/Color 

2. Resolution drop on multi color painting

Standard resolution of the Commodore 64 is 320 x 200 pixel. And C64 has 2 different bitmap modes. 

a. Hi-Res Mode

Resolution that meant by "Hi-Res" is 320 x 200 screen. To paint in this resolution, normally you can only use 2 colors in every 8 x 8 pixels block. You can't put a third color into a block if there is already 2 different colors are used there without totally overriding one of the existing colors on that block.

It maybe high (!) on resolution but it's very hard to create art with switcing colors in every block smoothly.

For more info: https://www.c64-wiki.com/wiki/Standard_Bitmap_Mode

b. Multi-Color Mode

To create a bitmap with multi color combinations, C64 needs to limit it's resolution to 160 x 200 pixels by halving the horizontal pixel count by defining 1 x 1 pixel as 2 x 1 pixel.

Grid in this picture shows square area of 8 x 8 pixels. But you can see that since 1 pixels are 2 pixels wide, 8 x 8 area can only be represented by 4 x 8 pixels. I prefered to make my work on this mode.

For more info: https://www.c64-wiki.com/wiki/Multicolor_Bitmap_Mode 

3. Color Count Limitation

Third and final limitation in Multicolor Mode is the color count in every 8 x 8 pixel block. You can use up to 4 different colors in every block, but one of this 4 colors should be a pre-defined fixed color in every block. Which is called "background color". By another means, you can use 3 different colors and 1 fixed background color.

In this picture you can see that I used 3 colors and additional Black color as background color.

After this 3 limitations you can create your pixel art for Commodore 64. 

I used Multipaint Software for windows for this process. It is very useful and nice designed software for several graphics modes not just for C64 but for many 8-bit computers.

Software homapage: http://multipaint.kameli.net/ 

Next I started to create what I can do with limited pixels. My first approach to create the painting of one of my cool devices. Portable BMC 64 which is an hardware for emulating Commodore 64. 


You can see the details of my design by this link:

https://www.artstation.com/blockmind/blog/NgDK/portable-commodore-64-design-with-bmc-64-emulator 


I loaded the very C64 bitmap with using the emulator itself on the picture. Nice kind of "inception", eh?

Next I go for the Firepad 64 device which I designed before. You can see what Firepad64 is by this link:

https://www.artstation.com/blockmind/blog/zPLm/making-of-firepad64-joystick-replacement-for-commodore-64 

and this (Turkish): https://www.artstation.com/blockmind/blog/zPLm/making-of-firepad64-joystick-replacement-for-commodore-64 


This time I recorded the whole process, and created a timelapse video. As you can see on the video. I combined the Firepad64 illustration with the BMC64 image. 

Let's load the image in a Commodore 64 emulator by itself :)

Since resolution is low, color transitions are too sharp because of the pallette color count, well, scanlines and CRT effect is a necessity when it's come to pixel art. 

Or can embroidery replace the CRT effects one day? :)


(BTW you can grab your free copy of Pixel art embroidery by this link: https://www.artstation.com/artwork/0XgWnV)

My next attempt was to recreate 8-bit version of Furio Tedeshi's amazing work "Dormant".

You can check his art by this link: https://www.artstation.com/artwork/z6eYw 

I made another timelapse video:

Time to check it on real Commodore 64 and real CRT screen this time!

...and embroidery time!

It was real fun making this kind of pixel art by the limitations of 38 years old hardware. Thanks for reading. Cheers!