A downloadable tool for Windows

Buy Now$19.99 USD or more

CharPad is a graphics data editing tool that facilitates the production of graphics data in a format compatible with the legendary Commodore 64 home computer.

The program runs on Windows desktop using .NET technology and allows you to design character sets, tiles, fonts and maps for 2D video games and demos.

You can start a project from scratch using the built-in freehand painting tools or import and convert any existing bitmap image into a C64 compatible tile map using various tile sizes from 1 x 1 up to 10 x 10 characters (100 different sizes).

CharPad has been in development since 2003 and has been widely considered an essential weapon in modern C64 game development ever since.

CharPad Pro Edition is an evolution of the original CharPad tool that contains some useful additional features, many of which have been commissioned by Thalamus Digital Publishing during the latter half of 2019 to assist in the development of their own games.

This special edition is now available to the public.

New features (since the 2.6 version)...

  •  Export - One-click export of all essential binaries.
  •  Project - Conversion from per-char to per-tile colouring.
  •  General - Maximum tile size is now 10 x 10.
  •  General - Countless code optimizations and bug-fixes.
  •  Compressor - Sort characters by colour (ascending).
  •  Compressor - Sort tiles by colour (ascending).
  •  Image import - Increased capacity up to 500,000 character images.
  •  Image import - Much faster algorithm.
  •  Binary/Text export - Map data by selected area only.
  •  Text export - Char/Tile usage statistics.
  •  Map editor - Box highlighting of "current" cell.
  •  Map editor - Area fill (solid/incremental).
  •  Map editor - Delete row/column.
  •  Map editor - Insert blank row/column.
  •  Map editor - Dimensions of the selected area shown in status bar.
  •  Tile editor - Char "Picker" tool.
  •  Editors/sets - Next/Previous item with keyboard shortcuts.
  •  Editors/sets - Zoom level in status bar.
  •  Editors/sets - Zoom level shortcut (CTRL + mouse wheel).
  •  Sets - Mouse wheel for vertical scroll.
  •  Sets - Box highlighting of "current" items (left/right mouse buttons).

The "Pro Edition" enhanced features include...

  • Support for the VIC-II 'Extended Colour Mode' (ECM).
  • Colour palette editing in RGB, HSL and YUV formats.
  • Typing text directly into the Map Editor using a chosen "Key map". 
  • Copy/paste between program instances.
  • Map Editor "Flexi-Grid" feature that allows map data to be subdivided.
  • Tile naming/tagging for coding convenience (labels/source code).
  • Exporting of map data in 8, 12 or 16 bit formats (ie. >256 tiles). 


* Buyers will have full and free access to all future updates of this product .

* To avoid any potential copyright issues, the full set of examples are also available as a free download from.. 


* If you would prefer to download all of the tools and examples in a single package, you will only need to download the final zip file in the list below.


Buy Now$19.99 USD or more

In order to download this tool you must purchase it at or above the minimum price of $19.99 USD. You will get access to the following files:

CharPadProEdition276.zip 268 kB
CharPadExamples276.zip 598 kB
CharPadGlaze276.zip 66 kB
SpritePadProEdition276.zip 209 kB
SpritePadExamples276.zip 114 kB
SubchristSoftware276.zip 1 MB

Development log


Log in with itch.io to leave a comment.

If CharPad is associated with CTM files or SpritePad with SPD files, opening these files starts the respective application but with an empty project. Would it be difficult to have them load the selected project file right away?

CharPad and SpritePad are both "portable" apps and so require no installation but this also means their project files are not automatically associated with any particular executable(s).

I'm sure it's possible to make an association manually which I'm guessing is what you have done.

That's fine but one problem with doing that is that when a new version is released you will likely have to make the association between the file type and the (new) executable again.

Personally I never bother associating files with portable apps but I will look into the issue for the benefit of those people that do.

Thanks for bringing this to my attention.

I'm missing a colouring method where the source of colour is the map itself, as opposed to the characters or the tiles. With this mode, a separate map-sized colour buffer would be saved (one per character or tile depending on whether tiling is enabled). Especially when working in ECM having to introduce an identical character to get a different colour seems rather wasteful.

(1 edit)


Thanks for the feedback. 

The main reason that such a colouring method is not supported is because of the sheer amount of memory it would require, ie. twice the map size in bytes.

In ECM mode you automatically get four different (background) colour versions of each of the 64 chars, but yes if you use "per char" colouring in any display mode you would potentially need to duplicate chars to get a different (foreground) colour version.

I will have a think about the problem and put it on the todo/maybe list.


Thanks for the quick response! I don't think target memory requirements are an issue per se, since it's anyway the responsibility of the developer to make the trade-offs for their particular use case. It's more of a problem in practice if an authoring tool imposes limitations that are hard to work around. However, I do see how this request can lead down a deeper rabbit hole.

In any case, thanks for your work, CharPad makes life a lot easier already!

How are the char materials encoded? Thanks


Char material values (0-15) are recorded in the upper nybbles of the character attribute bytes.

In the included Help folder, the file "File IO Exporting.htm" describes this and a few other things.

Thank you a lot. Keep up the great job.

Sorry for bombarding you with feature requests, but here is another one!

I am trying to make a very detailed background, but trying to get rid of characters that are only used once - in order to be really efficient with my character use. It would be great if the info bar in the Character Set window also showed the number of times a character was used!

Here's a mockup of how it could be:


Interesting,  that one that isn't on my todo list already (!).

I have added it to the list, in the mean-time you can try...

Import/Export... Text/Asm... Export Char Usage Statistics.

Yes it's a bit more hassle than having the usage count immediately visible in the set but should help a bit.

Excellent, another new great gem you got hidden there :D

After using CharPad Pro pretty extensively the past days, I miss a couple things on the file side:

- It would be nice to have a list in the File menu of recent projects.

- A regular save would be great, that is a save that just saves over the current project file.

- And some way of knowing if the current project has unsaved changes would be vital in m opinion. I think the Windows standard is to have an asterisk * after the project name in the top menu bar?

I accidentally lost several hours of work because I thought I had saved, and was used to working in other programs having that mentioned asterisk...

Hi Superrune, 

Thanks again for you suggestions, the addition of a "modified" flag coupled with a regular Save op have been on the todo list for a while now, it can be a tricky task in an app that stores multiple data blocks like this and doing it badly and ie. failing to flag a change in some element would be quite embarrassing. on the other hand I don't want a system that is sloppy and flags change where there is none,  ie. blue pixels painted over blue pixels. 

I will give it some thought and try and get some solution fitted soon + I'm very sorry to hear you have lost some work.

Thanks :)

I have another feature suggestion that I think would really speed up drawing. When I paint characters on the Map Editor, I switch between the Picker and Brush constantly to get and put characters. I would prefer to have the cursor in the area I am working, and not go up to the tool bar constantly. How about adding a feature similar to Photoshop eye dropper shortcut, where you can press ALT to temporarily switch to the Picker while in Brush mode?

(1 edit)

Hi Superrune, thanks for your suggestion, I will look into that for a future version (I find key handling and avoiding ie. shortcut conflicts to be a very tricky business in dot net),  in the mean-time you can click the middle mouse button (or wheel) to pick a char/tile when using the map editor (if you have one).

Didn't know you could do that. Fantastic, that solves it for me!

Would you consider adding keyboard shortcuts for choosing which colour to draw? For example, it would speed up drawing quite a bit if you could use keys 1-5 for choosing the current colour.

Hi Superrune, thanks for the suggestion, you are the 2nd person in the last few days to request that feature, so yes it's on my todo list for the next release.

Great to hear. Cheers!

Looks great, shame I don’t have windows!

(1 edit)

Thanks :) you can try running it using Mono or Wine on Linux/Mac, I don't use those systems but I know some people have had success with it.

OK thanks