Hello,
No there have been no reported problems with it (Z-Rotate) and I do not see any problems with it myself.
Please tell me what you are trying to do and the steps you are taking.
Also which version are you using? (3.80, W64) ?
Subchrist Software
Creator of
Recent community posts
Thank you for your appreciation.
In answer to your question, no, there is currently no way to move a block of characters to a new location (without disturbing the map data) other than swapping them one by one.
The reason being that any cut operation (or resizing to fewer items) in the charset will always update the map to account for the change (the now unavailability of those chars).
There may be exceptions in simple cases involving copying map data, then cutting/pasting char ranges in the set (to swap them) and then repasting the copied map data, but you will probably find that one of the two ranges that need to be cut from the set (in order to swap them) will end up with their references being lost from the map.
As for your suggestion about "inter-char scrolling", I do know what you mean, we already have the power to do this, it is used in the tile editor when scrolling tiles around, with the caveat that the project must be in a state of decompression (one unique char per tile cell) before it can be done, ie. to remove the possibility that other tiles will be affected.
It is a function that also exists in CharPad Glaze as an essential ingredient in making parallax scrolling backgrounds.
But it does not exist as a general option no, I personally have yet to come across a general use-case where such a function would be needed.
(you have obviously found one!)
Cheers.
No worries, it is a 100% valid and reasonable enquiry.
The reality though is "months of work for a human being" which ultimately would bring very little reward (for our business or for the majority of our users).
It is really the "system-wide integration" of a new matrix colouring method into CharPad (its whole eco-system) which is too painful.
A far simpler project however would be a separate app that takes a CharPad project as input and allows the very thing you are seeking, allowing the user to paint/colourize the colour RAM and export the (colour) data.
This could then just be dropped into your game and used, the input project might be designed in CharPad using "per map" matrix colouring to keep the charset usage to a minimum before you use the new app to colourize it.
I will have a think about that one :)
+ also please check out the existing CharPad (binary/text) export option...
'Export Colour Map (per map char cell, CmLo)'
It may be capable of providing the data you require, albeit not quite as conveniently as you desire.
I will have a proper and careful read through your previous post and reply but right now is not really the time (my Saturday eve is about to begin!).
I would say though, as simple as it may seem (on the C64), adding a whole new matrix-colouring method into CharPad is considerably less simple than you (people) might imagine.
CharPad is itself a very complex system that already supports 5 display modes (the peculiarities and complexities of each one) and 3 matrix colouring methods (15 configurations right there, all of which need to be considered for most ops), untiled and tiled projects in 250+ different shapes/sizes, tens of different transformation ops and conversions between modes/methods, interactive image import and general file imports/exports etc etc etc.
All of these things (hundreds of C# and C++ classes) all need to be painstakingly reworked in order to add the one thing you need.
It is months of work, potentially a year or more to make perfect something that perhaps 4 people have asked about in the last 20 years.
The result? an even more complicated piece of software to use and maintain, financial gain for us? little to none I would say.
I'm not even saying "No", I guess I'm saying "Why would we bother?"
Answers welcome! :)
Enjoy your weekend.
Hello,
Thank you for your feedback, it's appreciated.
In answer to the second part of your request..
On the Tile Editor you should find a "Char Brush" tool (the 2nd item from the left), this lets you paint the tile's cells with any character you already have in the set.
ie. you can build tiles the traditional way using the Char Brush tool.
ie. make a charset, make some tiles specifically built from those chars.
Otherwise you can use the Tile Editor's pen/flood tools but these necesarily require that the charset be decompressed to provide one unique char for every tile cell or the technique itself would not even be possible.
Many people enjoy/prefer the freedom of being able to paint tiles (at the the pixel level) as if they were just single images but it does require that you give up control of the char-set whilst you are doing it.
Re: "colourize" mode for the map...
No this is not currently possible in the way that you mean, it would basically require a whole new matrix colouring method, "Per Map Cell".
We don't have it (yet),
it does not exist,
it is a very uncommon technique,
it would use a lot of memory,
it would over-complicate the program.
I could go on but I'm sure you have heard it all before.
What you might find useful as a work-around though is to use a 1x1 tile-set, this will allow you to use any single character in different colours because you are now able to make multiple tiles using the same character.
ie. 1x1 tileset + per-tile matrix colouring.
Ok, I will just leave that there.
I'm glad you like, we aim to please :D
CharPad supports around 500,000 character images for the image import if I recall correctly.
Only 256 are allowed in a single char set on the C64 of course.
CharPad already supports export in formats greater than 8-bit but these exports are currently only available as text/asm exports as I recall so take a look at that part of the Import/Export menu.
8-bit, 12-bit, 16-bit are fully supported.
Formats larger than 8-bit can be useful for tile-maps where > 256 tiles may be used or for the bitmap modes where 1000 character images are effectively made available/viewable on the C64.
Funny you should ask :)
Some years ago I started a Linux port (of CharPad C64) using Qt4 (or 5), the biggest problem I ran into was that the resulting binary only seemed to run on my own machine and no amount of tinkering seemed to fix it.
I ended up with the distinct feeling that the only viable solution was to release all of the source code so users could build it for their own machine too.
Well, that didn't seem like a very good idea for a commercial project!
So, it got shelved.
I still have the source for that port and might well dust it all off and see if anything has changed in the Qt world these last few years.
If so then a native Mac version also becomes possible I guess.
Frankly I've lost track of all of the cross-platform options these days.
Mostly I just remind people that our existing apps seem to run quite well using WINE.
Hello,
There are no tutorials, I would just direct you to take a look at the bundled example "Sprite Animations (game rips)/Quedex (ball).spd" for a good simple example of how to animate with overlays.
Basically you need to keep the overlays and underlays separate rather than interleaved, and adjust the "Sprite overlay distance" value in the Project window to suit your quantities.
As far as the animator is concerned, you are just animating a single (underlay) sequence, the renderer adds the overlays according to "Sprite overlay distance".
I hope that helps.
Yes I think I see what you mean, this kind of thing can really get extremely complicated! :D
Where there is a need to combine different char based elements, ie. a 2x2 tile -set (and it's chars) and another simple charset, the best CharPad can currently offer is the option to manually copy/paste between projects.
ie. If project 'A' contains a tile-set (+chars) of your game's large letters and project 'B' contains your 1x1 alphanumerics (chars)...
..to combine them you could copy project B's chars, then load project A and paste the copied chars to the front of the charset.
The paste will push forward the existing chars (and automatically refactor the char references in the tiles) of project A.
This would give you a single charset that contains all of the images for your 1x1 and your 2x2 elements.
I'm sure you can appreciate just how complex this kind of thing can get!
At some point I may begin work on a separate tool that just deals with the problem of CharPad project combinations, although it would be better if such things could be done dynamically by the C64, then your game could shuffle things around as needed at run-time.
The thing you are asking for is kind of a Holy Grail!
Hi,
I'm not quite sure what you are asking..
CharPad uses a pretty simple structure, you can design a single charset, a single tile-set (if desired) and a single map (of chars OR tiles if you have created a tile-set).
ie. The map will always be a tile-map if you have a tile-set.
There is no support for layers or adding additional objects into a map or combining a char map with a tile-map.
Hi,
No you are not missing it, it just doesn't exist, sorry.
While I understand that it could be useful for adding a few sprites as data in BASIC, it is generally more useful and greatly more optimal to load sprite data from a separate (PRG, binary) file from a BASIC program than to have hundreds of PETSCII text decimal values (DATA statements) written/pinned on to the end of your program.
It is something I might add at some point but most users are either building their projects using the data files exported from SpritePad/CharPad (ie. with the data "baked in") or explicitly loading them (from disk/tape) at run-time.
ie. 10 LOAD "SPRITEDATA",8,1
I will consider adding it but it's kind of a pain in the butt with so many different exports possible (from CharPad, SpritePad) for something that is not needed by many people.
Lines/lists of decimal values never align neatly either, unlike hex :)
Will consider further.
Ps. It may be possible to find a hex editor (or some other standalone tool) that can export a file's byte values as a list of comma separated decimal values .
Hi,
Thank you very much for your support and feedback,
So I think you have basically just run into one of the few features that are not currently supported, ie. a "per map cell" colouring/attribute method.
CharPad currently supports 3 colouring methods, 'per project', 'per tile' and 'per char'.
ie. a colour (or set of colours for the bitmap modes) can be attributed to either the whole project or each tile or each char.
L1 attributes (bytes) are Material (nybble) + 1 colour nybble (Colour RAM).
L2 attributes (bytes) are for the bitmap modes (each byte = 2 colour nybbles for each Video RAM cell).
'Per map cell' colouring/attributing has never been supported, mainly due to it being very uncommon, probably due to the amount of memory it would consume, ie. one extra byte for every map cell (potentially two for the bitmap modes), I have yet to find any commercial game that uses it.
But you are not the first person to ask about it and almost certainly will not be the last!
Other reasons for its exclusion simply come down to the complexity that it would add to an already very complex piece of software, it may seem simple but CharPad supports 5 display modes and 3 colouring methods, that's already 15 configurations that need to be considered for most operations, adding 'per map cell' and possibly also 'per tile cell' would raise that to 25.
In a nutshell, if it were simple, it would have been done, believe me.
Maybe some future version will support it but the work and complexity involved to add it has just not been considered worthwhile thus far.
I am sorry to disappoint.
Ps. the 'Project' window contains the tools you need to control the colour and material values for each char (in 'per char' colouring method) and likewise for the other colouring methods.
ie. select a char (or a tile if using per tile colouring) and you can change it's own matrix colour(s) using the the Project window.
nb. Materials (0-15) are always 'per char'.
nb. If you really want to use the same char with different colours you could try creating a 1x1 tile set and using that instead of a simple char map.
I'm sure you can appreciate just how complex things can become and how we have done our best to accommodate the most commonly useful configurations.
Cheers.
Ok, I know that the apps do work on Ubuntu with WINE as I've personally done it many times.
The .net builds probably won't work unless you have the correct .net version (4.0 i think) installed in WINE but the Win32 and Win64 builds should run just fine with only a basic install of WINE available.
I'm not sure what more I can add.
Have you managed to run any other Windows apps on that laptop using WINE?
Hey, thank you for your appreciation!
So in the last public release it is already possible to export map binaries in bit-depths greater than 8...
- Import/Export >> Binary >> Export All (essentials, multiple files, configurable)
There you can select between 8, 12 or 16 bit and also between whole map, selected area and sub-maps.
Does this solve your request? or maybe you are wanting a single binary file containing lo,hi,lo,hi,lo,hi bytes etc
This is not yet available, having two arrays for the low, high bytes of 16-bit values seems to be the most commonly used way but there are definitely some further options that could be added to the current Import/Export system in future releases.
Cheers.
Hello,
We don't do sales.
The prices have not really changed in 4/5 years so in fact it could be argued that our products have only got cheaper (ie. inflation) as they have got better and better.
We would love your support!
Join the party! We are #1 and worth every penny (2 killer apps, 3 versions for each, $20+tax).
-Designed for Windows but also WINE tested (Linux, Mac).
-Free updates forever.
It's a win-win, step into the matrix :D
+ New versions coming soon!
Hi, apologies for the delayed response.
So when you create a tile-set, each cell of each tile would ideally be blank to give you a nice blank set to work with, but that is only possible if a blank character is available to use to fill the new tiles.
So rather than trying to find an existing blank character (which may not always be desirable), the program just fills the new tiles with character 0, but if we find that character zero is not blank then we offer to insert one for you.
If you say yes then all of the existing characters will be pushed forward by one to make room for the new blank character (as you have discovered), but if you say no then you will not get blank tiles, they will all be filled with whatever is visible in character 0.
So the choice is really up to you, generally speaking it is a good idea to keep character zero blank when using tiles as whenever you create a new tile it will be filled with that character.
Following the linked tutorial video, you/he could just clear the @ sign (CTRL+DEL) to make that a blank character.
Personally, when I make a tile-set I use the pen tools to draw directly into the tiles and not worry about what is happening in the character set, if I need a character font then I would add that in at the very end when I was happy with the tile-set and the map, by ie. copying/pasting from an existing project which contains only the font that I need.
The way Baardbi is doing it in the tutorial is really quite "old-school", ie. using a very "char-centric" approach, this is definitely worth learning but CharPad has special powers that allow you to pixel your tiles directly and not worry about individual chars.
I hope that helps ;)
Thanks for the bug report (and your appreciation!) I have found and fixed the chars copy/paste problem (it affected the win32/64 builds, the .NET build works fine) but can't seem to reproduce the tile editor shortcuts issue, any ideas how i can reproduce it?
nb. in the tile editor, if the Tag or Name text box has focus, CTRL+C, CTRL+V will copy/paste only the text from those controls, not from the tile, could that be the issue?
Hi,
Thanks for the suggestion, I don't entirely see the value in it though, I mean surely the colour of the chars is already visible just by looking at the map + the compressor has the ability to reset the colour(s) of any char that is not actually using it's assigned colour(s).
Also I think it would only be (theoretically) useful for some of the display modes and colouring methods, ie. in the bitmap modes each char has multiple native colours (2 in hi-res, 3 in multi-colour).
It would be a lot of work and I will need some convincing.
No problem.
Yes it's just a very tricky thing to work into an "all-in-one" tool like this without making it incredibly complicated, we already need to handle 5 display modes in 3 possible matrix colouring methods, so that's 15 possible configurations that each need to be carefully handled in most of the operations, adding 2 more colouring methods (per tile cell, per map cell) would raise that to 25.
Some kind of dedicated tool is probably the answer, one that can take a CharPad project, strip out any "per char" colours/materials and recompress, then allow free colouring/attributing of the map cells.
Ps. you might find some use from the existing "Export Colour Map" option, it allows you to export a "per map char cell" array of colour data (colour matrix data) regardless of whether the project is tiled or not.
See...
'Import/Export >> Binary >> Export colour map (per map char cell, CmLo)'.
'Import/Export >> Text/Asm >> Export colour map (per map char cell, CmLo)'.
Thanks for your suggestions.
Yes such modes (per tile cell + per map cell) have been suggested many times before, usually because people want to be able to use the same character in different colours without needing to duplicate the character in the precious char-set (256 items max on the real machine).
While this may seem simple to do, it is absolutely not, there are several good reasons why we chose not to .
1. Memory usage - whatever size (in bytes) the tile-set or the map may be, using such a mode would instantly double the storage needed.
For multi-colour bitmap mode this could be triple (x3) as two colour/attrib bytes would be needed for each cell. It's very wasteful and unpractical for most games.
2. Char/tile editing - when editing a char or tile we can easily find the correct colour(s) for the item as they each store their own native colour value(s).
ie. In a 'per tile cell' or 'per map cell' mode there would need to be some kind of "default colour(s)" used instead. Possible but complicated/confusing.
3. Such modes would add a lot of complexity to an already very complex system and the chance of something (or probably many things) breaking is very high, potentially requiring years of further testing/debugging for very little reward.
The last releases of CharPad/SpritePad added support for 1x1 tiles, if you want to use the same char/sprite with different colours we would suggest using this feature as a work-around.
ie. a tile-set is not limited to only 256 items like the char-set (on a real machine).
I hope that helps.
Cheers.
Hi,
Interesting question! Quite honestly, I have no idea, I have never attempted to run any of our stuff on Windows 98.
While we do include "Win32" builds with CharPad/SpritePad it is really no guarantee of it working on an old OS, what they called "Win32" or "Windows API" back then is probably quite different to what it is now on Windows 10/11.
For instance, Windows 98 did not feature any support for Unicode strings and the Windows graphics library we use for 2D (GDI+) probably didn't exist back then either.
I would quite like to have a functional Windows 98 or Windows XP machine myself for testing purposes but these OSes won't even install on a modern motherboard/CPU (ie. no hardware drivers available, no UEFI, no 64-bit etc).
It's a complicated problem with probably 100's of reasons why it won't work, couple that with trying to do it virtually using a Mac and it really is a recipe for a headache!
I would be very interested to know if you have any success but my instinct says "no", not without a complete rewrite/rebuild using a very old PC.
Hi,
Yes this can be a problem when editing tiles using "Per char" matrix colouring.
The tile editor has a '?' button explaining a solution, ie. you can just click with the middle mouse button on a tile cell to instantly select the pixel colour and the character in the set, this loads the pen(s) with the matrix colour(s) for that cell so you can paint with it/them + if you change the matrix colour(s) it will only affect that one cell/char.
Auto-selecting the first char of a clicked tile may help slightly but is not really a solution.
Thanks for your feedback though, I will have a think about it.
Hi Martin,
Thanks for your suggestion (+ apologies for the late reply), the next release will at least support 1x1 tiles, separate colour maps are kind of tricky to implement, a "per-map cell" colouring method has been requested several times by various people but it's kind of a deep rabbit-hole of complexity that I would prefer to avoid.
Hopefully 1x1 tiles will be sufficient!
Good morning!
Yes tile tag data can be exported from CharPad Pro although currently only in the form of an asm/text file...
File >> Import/Export >> Text/Asm >> Export Tile Set (and attributes)
If it would be more convenient to have the data as a raw binary file then you could just trim out the tile data section in that file, assemble it and trim off the first two bytes of the resulting PRG file (the load address).
A binary export option might be useful though I guess, I will add it to the todo list.
Hello,
Exporting colour maps is currently quite limited, you can only do it for the whole map right now and only for the Colour RAM values (so it is not so useful in the bitmap modes as they use 3 matrix colours).
The easiest way to export a colour map (file) for just a selected area of a map is probably this...
1. Select the desired map area.
2. in the Map menu (visible when the map form is focused), choose Crop.
3. File -> Import/Export -> Binary -> Export Colour Map (per map char cell, CmLo).
The Export Colour Map option is also available as a text file...
File -> Import/Export -> Text -> Export Colour Map (per map char cell, CmLo).
Then you can undo the map crop and select a different area for export if required.
I hope that helps!
Ps. the "per map char cell" colour map can also be exported from a project that uses tiles, CharPad figures out the correct char colour values.
Hello,
Thank you for supporting us and for your suggestion, it's a good one.
I will definitely be looking into expanding the code examples in a future release, we already include a little video basics library in the Help files to get you started but it could use some expansion for sure.
In the mean-time it shouldn't be too hard to find some example code online for drawing bitmap images and scrolling tile maps.
I would be very surprised if there was not already some good example code on ie. GitHub, I will be taking a look into this myself soon.
Cheers!
Hello,
Sorry yes I know you posted this question before, I didn't mean to ignore you, I've been thinking about it.
It is definitely something I'm going to consider for the next release, in fact you can already do it (sort of)...
What I mean is that if you have a project file that is configured for 16x16 tiles, CharPad should load it and let you use/edit it, you just can't currently create such a project in CharPad, so it's probably not very useful to you!
(hex editing an existing project's tile dimensions can be done very easily but you would still need the file size to be correct, it could be done).
I have added your request to the todo list and will do some tests very soon.
Thanks for the suggestion!





