CharPad C64 Pro
A downloadable tool for Windows
CharPad C64 Pro is also available as a twin-pack with SpritePad C64 Pro for a reduced overall price, for more info click here
CharPad C64 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 accurately simulates the C64's video formats and allows you to comfortably 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 C64 has been in development since 2003 and has been widely considered an essential weapon in modern C64 game development ever since.
CharPad C64 Pro is an evolution of the original CharPad tool that contains 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
Includes many great features such as...
- Support for *ALL* the standard C64 (VIC-II) display modes.
- High quality interactive image import.
- Flip/Reflect/Scroll/Rotate all/any items.
- Automatic data/colour conversion between display modes.
- Typing text directly into the Map Editor using a chosen "Key map".
- Map Editor "Flexi-Grid" feature that allows map data to be subdivided.
- Tile naming/tagging.
- Interactive ripping of graphics from VICE snapshots.
- Exporting of map data in 8, 12 or 16 bit formats (ie. >256 tiles).
- Colour palette editing in RGB, HSL and YUV formats.
- Copy/paste between program instances.
- Portable apps, run on Windows or Mac/Linux using ie. WINE/Crossover.
- Includes 3 executables, Win32, Win64 and .NET builds.
- Buyers will have free access to all future updates of this product.
CharPad Pro is also available as a twin-pack with SpritePad Pro for a reduced overall price, for more info click here
In order to download this tool you must purchase it at or above the minimum price of $9.99 USD. You will get access to the following files:
- CharPad C64 Pro 3.42Dec 14, 2022
- CharPad C64 Pro 3.40Nov 30, 2022
Log in with itch.io to leave a comment.
Hi, I've bought the double package and it works fine under wine. Maybe I could not find how to do it, but I have, besides a big font/map setup, several screens (40x25) with specialized fonts and a full color ram (D800).
So, I would like to draw on the map giving individual colors to each character. As I have the colors as .bin, I would ideally just import them, like can be done for fonts and maps.
Thanks for a nice set of tools, spares me to figure out how my own from 1987 worked, documentation then had a lot to be desired. :-)
Vic-20 support to Charpad?
In normal mode, one draws in the font and places that in the Map. In Tilemode you draw the tiles and place that in the map.
Isn't there a need for an option to draw a bigger area also in the normal mode? Let's say my game is in normal/non-tile mode and I would like to draw a bigger object. Here an editor such as the tile editor would be helpful, wouldn't it? Let's say I want to draw an object and there would be a function where I could draw an object of arbitrary size. The chars would be placed in the font and the object would be possible to paste into the game map.
(As always, downplaying the amount of work needed to do something is a lot easier if you don't have to do it yourself, but I'm here thinking that you already have the tile editor, so that part of such a function is already done).
Just bought the double package, for use in a project. I would need my level designer to be able to make edits to the map and font (no tiles in this one) to the relevant locations used in the game and then just import them from the running game . I would hence like to request the feature to set an address of the font and map (possibly also tiles) and then be able to export to PRG using these addresses. Worth considering?
Thank you for your support Bacchus, it really is greatly appreciated.
I've been having a think about your request.
It seems to me that things like PRG load addresses are very project specific and so would really demand to be saved IN the project file as opposed to as some general CharPad settings.
I'm not sure I would want to expose all users to this sort of programming detail or even make them think about it, this is a graphics application after all.
CharPad already supports export to (raw) binary files (obviously), a whole export section is devoted to it and I wouldn't really want to basically duplicate this section just for PRG export .
So, on balance I would have to conclude that a better solution would be to handle conversion from BIN to PRG with a simple command-line tool.
A batch script could be tailored to perform the conversions very conveniently for any set of exported binaries and would allow very easy/quick modifications to be made (ie. in NotePad).
I would be surprised if such a tool doesn't already exist but if not then I can make one.
This may not be the reply you were hoping for but I genuinely do think this is would be a better way.
I do agree that it needs to be saved with the project and not as a general setting.
Making something that solves the issue at hand might be easy, but in a project I would allow the graphician to be able to iterate his tests. For that he runs the main executable, enters the the VICE monitor and executes a load.
I must humbly admit that I had missed the BLOAD option in the VICE monitor. If he uses that, we are good.
As a general help for other people, I could just hint that KickAssembler is the ultimate tool for just about anything - including this. (The only issue is having the graphician setup the environment ;-)
# Convert from PRG to BIN - strip the first two bytes
.segment Main [outBin="GameMap.bin"]
.import c64 "gamemap.prg"
# Convert from BIN to PRG - add a two byte startaddress
.segment Main [outPrg="GameMap.prg"]
*=$2000 // Or whatever start you want
.import binary "gamemap.bin"
Thanks for making this charmap and tile editor as well as the sprite editor, they're really useful for my project. I'm making a vampire survivors style game for the commodore 64.
Question - is it possible to export to a .c file? I'm using cc65, so when I export to assembly I need to manually adjust the output to match the c language format.
Thanks for your comment, your game idea sounds cool! :)
It's not currently possible to export data as C source code, only as binary and (65xx) assembly files.
I like the idea though, C programming on 8-bit systems seems quite a rare thing but I have added it to the list for a future version.
Thanks for the reply!
Just got your fantastic toolset and started my long overdue "finally make that damn C64 game" journey.
Is there a way to use multiple monitors with charpad?
Hey, thanks for supporting these projects! it is really appreciated.
So there is nothing particularly built in to support multiple monitors, the apps use the classic multi-document interface (MDI), ie. child forms arranged in a parent window.
There is nothing to stop you from simply enlarging the parent window into/over a second monitor.
If you have any particular suggestions in this realm then I am happy to listen.
Thanks for the quick reply! I totally overlooked the possibility to enlarge the parent window. The autistic part in me always needs to press the maximize button and then its all on one screen :)
So this totally fits my needs. Thank!
Thank you so much for this new CharPad 3.40 update. It's amazing. It has made my life so much easier when working with the maps in my game.
Thank you baardbi for your appreciation! I'm guessing the "consolidated sub-map export" is helping quite a bit?
Yes. It's perfect :)
Is there a way to import a Commodore format hires file? Like Doodle or Art Studio?
Not directly at this time (only Koala Painter), but if you can get a bmp or png of the image it can be imported (as BitmapHR) using the image importer.
I will look into this for a future version.
Suggestion. add an option to remove spaces from the filenames of "export all" I prefer to use makefiles, unfortunately spaces in filenames breaks things, so I have to rename them first.
Thanks for the suggestion MGB, yes, that sounds useful. Added to the todo list.
Thank you again Subchrist for all your hard work. That's a great suggestion by MGB. I have had the same issue. I also noticed that when doing big maps, the "Export Flexi-Gridded Sub-Maps" exports numbers like this 0,11 9,12, 3,2 and so on. I need to rename the files to get them in the correct order: 00,11 09,12 03,02 and so on. If that leading zero could be added in the file names it would be very useful.
Thank you for your appreciation, I've just had a look at the numbering issue you mention but really can't seem to see the problem, the numbering in the files is in [y,x] format for each exported sub-map.
On my system (Win 10) even if I export ie. several hundred sub-maps they all appear in correct order in the directory (without any leading zero).
It would be easy enough to add (the next update will make use of an ini file for minor settings tweaks) but I'm just not seeing it.
Sorry for the confusion. I'll give you an example. Here is a listing of a few lines from my map list. Since the macOS Terminal only looks at the first number and doesn't treat numbers as values, 1 will always come before 2 (10 comes before 2).
Rooms - SubMap (8bpc, 10x8) [1,5].bin
Rooms - SubMap (8bpc, 10x8) [1,6].bin
Rooms - SubMap (8bpc, 10x8) [1,7].bin
Rooms - SubMap (8bpc, 10x8) [10,0].bin
Rooms - SubMap (8bpc, 10x8) [10,1].bin
Rooms - SubMap (8bpc, 10x8) [10,2].bin
Rooms - SubMap (8bpc, 10x8) [10,3].bin
Please consider a Mac version, and from there perhaps an iPad version…
Thanks for the suggestions, I am reliably informed that it already works very well on Mac using WINE or Crossover, not sure about iPad but the same solution may be possible.
With current sales barely enough to keep a cat in munchies, don't hold your breath for any alternative native versions, sorry.
Haha, fair enough! Precious little stuff like this for Apple users, possibly a bigger market there than you think, used to paying a bit more too.
Fantastic stuff, just gets better and better 👌🏻
Hi, great tool, purchased it a few months ago. One thing I'm missing though - am I not able to set individual Color Matrix Colors on the map screen for non tiled charset ? didn't figure a way to do it. I think it either requires an additional tilemode of 1x1 and then using "per tile" coloring, or an additional coloring mode "per map-char".
the colorram-data gets exported correctly, so it's there, you just can't edit it properly yet.
Hi, thanks for the feedback, yes the decision was taken many years ago purposefully NOT to include a "per-map-cell" matrix colouring method, with CharPad being primarily designed as a game-map editor the feeling was that few games would need/use such a method due to the effective doubling (or at least a 50% increase, 1 nybble per cell) in the size of required map data.
This and also the requirement for the user to manually paint the map colours as well as the map characters were the main reasons for it's omission.
However it actually IS something that has remained on the todo/maybe list and while it might not get added as a general feature, it MIGHT get added as an export option at some point,
ie. if you have a project using the "per-char" colouring method, we may add an option/tool that would create a converted set of data for a "per-map-cell" colouring method (for export/use/viewing on the C64), this would obviously allow a reduced number of character images in most cases as all of the colour data would be pushed over to the map.
It may not be the solution you were hoping for but it's the one that is most likely to happen as adding such a colouring method (and probably also "per-tile-cell" would likely take years to complete as general features.
I've has the option for "independent colours for every character" in my generic engine code for quite a long time: https://github.com/martinpiper/C64Public/blob/master/Scroller/ScrollEntry_MultiD...
But I don't think anyone is really using it because it's very memory hungry. :)
Also worth mentioning is the fact that while the addition of 'per-map-cell' (and/or per-tile-cell) colouring methods + the abilty to directly paint colour to the map/tiles might be intuitive enough for the text modes (just 1 matrix colour), it almost certainly would not be for the bitmap modes (2 / 3 matrix colours).
So on balance, I would have to conclude that offering 'per-cell' matrix colouring as a project data export option (only) would be the right choice.
I must agree with The Syndrom, that an export of the colors from a non tile map would be very useful. Even though, the program is not intended for this case of use, it is a good tool, for just editing char based screens, that do not depend on tiles. Just deporting the colour information of a map, as the are , would be very useful
Ok thanks for your input on this subject.
Yes I would be happy to provide an "export map (char) cell colour data" option.
This would export a block of colour data of equal size to the map (in chars) by simply translating each map cell into a colour depending on the contained char.
The thing I really want to avoid is adding "per map cell" (and "per tile cell") as basic colouring methods as this would really complicate things and demand a whole world of new converters and design features to be added.
So you would have to settle for the existing colouring methods at design time and just use the export option when needed.
I imagine this would mainly be used from the "per char" colouring method, so after exporting the colour map you could switch to "per project" and compress any differently coloured duplicates out of the char set and then export the (optimized) chars/map.
If you understand this I will try and get this option into the next update.
Hi! Thanks for your quick reply! An export option as described by you would be perfect!
Hi, any planned support for animated characters? It would be nice to be able to preview characters which may be animated. I have flags which are moving in the wind in my Hunchback Redux game and smoke escaping from a chimney in my Christmas Caper game I'm working on, it would be a nice addition. This feature was available years ago in Firebird graphic editor on the C64, so I don't think it would be too difficult for you to implement. Thanks.
A superb bit of software that I use for all my C64 games.
One option I'd love to be added to the compress data is 'only clear un-used chars' or perhaps even the option to specify a character index to start from other than 0.
What I mean by that is often I'll have my A-Z, 0-9 and a few other common symbols in my set, in the correct place to be used programatically. If I want to retain those I can just draw them in an un-used part of the map.
But when I compress data, any currently un-used chars in between those sub-sets are deleted and now the symbols and numbers are in the wrong place. So it would be nice if un-used chars were just optionally cleared rather than deleted.
Is there any chance that you could add a bit of code to snapshot the window position? Every time I load Charpad (and Spritepad) I have to scale and resize the window when it opens. It would be useful if the Window x,y and x2,y2 size was saved upon exit, ready for the next session. Thanks.
When you say you have to scale and resize "the window", which window do you mean? the map, the charset?, the whole thing?
As every project is using different size charsets, tilesets, maps then I don't quite see how this would be helpful unless a layout were somehow saved for every project.
The main (parent) window itself should be starting maximized.
I have to resize everything. I don't like windows which start maximised, it's not to my liking. I have Kickassembler and VICE behind Charpad whilst working and I switch to them by clicking on titlebars - I like to scale the windows to what I'm working on, so I can see a set number of characters in a tilemap, or a set number of sprites in Spritepad, but it would be good if it just memorised the positions upon exiting the program. Lots of other programs remember their last position, e.g. Sublime, OBS Studio, VICE etc., it's a time-saver more than anything. Thanks.
Thanks for clarifying that.
Hi. CharPad Pro 3.01. Is it possible and if not are there any future plans to not have to select the Export location for Flex Gridded Sub Maps from scratch everytime (i.e. leave you in the last location the Flex Grid was exported to)?
Hi, thanks for the suggestion, we will look into it asap.
Hi. CharPad Pro 3.01. There seems to be issues with Copy/Paste, either in the same or between instances in Charpad Pro. If I copy/paste four chars from instance one to instance two, only three characters get pasted. Likewise with copy/paste in the same instance. Also, if I select all characters in say a 128 char set, not all 128 will be copied and pasted. Plus if I select the very last single char of a char set from instance one and paste into instance two, nothing gets copied / pasted at all.
Hi thanks for the report, we found this bug a few weeks ago and it has been fixed for the next release, it is present in CharPad 3.01 and related to some internal changes with the number of colours stored per char.
An update is coming in a week or two.
Hi, I use Charpad Pro 3.0 Beta#3 and it seems it has a problem with saving or exporting to older CTM versions if the only change after opening file is editing tile tag or tile name.
Hi, thanks for posting.. could you be a bit more specific? which CTM version are you exporting to? what is the resulting problem? if exporting to CTM5 then I can tell you that this format does not support tile tags or names, I should probably put in some friendly warnings about unsupported features when exporting to older project formats.
I will examine this and post more symptoms.
There is one thing slightly related to this, check this file:
(click "Raw" to download binary CTM).
it is CTM 8, text mc, with tiles. Charpad 3.0 BETA#3 shows three tiles with tags 0, 0, 4 respectively. But it fact it is 0, 2, 4 (it is how it is stored in CTM file, I'm pretty sure about it. By some reason, tag for second tile is shown as 0.
Thanks for the bug report Maciej, I have tracked down the problem and nailed it. The tile editor's constructor was zeroing the current item (1) after loading a new project. The fault was present in the Win32/64 versions and also affected SpritePad and the last released CharPad 2.xx releases. I will put out some updates in a few days. Nice catch ;)