Funkpaint is a multi format editor supporting hires, multi, multicolour interlaced pictures. It runs on a Commodore 64/128 and supports various input devices and memory expansions.
Last test version: Funkpaint 0.46c (2023.04.16)
It's located in the top border while the zoom or view modes are active.
The colour rectangles can be used to select the drawing colour and the delete colour by clicking with the left and right mouse button.
The and icons can be used for free hand drawing. The brush and can have different shapes.
The icon shows the actual brush. Clicking multiple times on the icon selects different sizes.
The icon works like the freehand mode. However when the button is released the area is closed by a line to the starting point and then it's filled up.
The icon is for line drawing, the start point is selected by holding down the left button, the end point is set when the button is released.
The icon is for curved lines, selecting start and end is the same as for the straight line, after that the control point is placed by left clicking. Exit with STOP.
The and icons are for box drawing, the start corner is selected by holding down the left button, the end corner is set when the button is released.
The and icons draws circles. The middle point is selected by holding down the left button, the diameter is set when the button is released.
The icon activates copy mode. Area definition works like the box drawing tool (select, hold, release). Copies are created by left click, exit with STOP.
The icon fill a closed area. It fills up the area where it was started bordered by other colors.
The icon shows the current dithering mode. Clicking multiple times on the icon selects different patterns.
To select the tools from keyboard use the A, S, D, F, G and H keys, this is equivalent to clicking on them.
The CONTROL key can be used to align the endpoints of lines and corners of rectangles to the character grid.
Colors can also be selected from the keyboard by the 1, 2, 3, 4, 5, 6, 7 and 8 keys with or without shift just like in BASIC, or by pressing the Q, W, E, R, T, Y, U, O and I keys for the shifted set of colors.
The zoom editor is for doing pixel level work, so most of the screen is covered by a magnified view of the image. On hires pictures the pixel size is 4×4, for multicolour it's 8×4 and for multicolour interlace it's 8×8.
The zoom area is bordered by scrollbar which indicate the position of the edited window relative to the complete image size. It can also be used to navigate around in the image by clicking on the scroll bar which moves the area to the selected position.
Clicking the arrows will scroll the image to the respective direction. If a Micromys mouse adapter is used with a scroll wheel mouse then it's possible to scroll vertically with the scroll wheel. Horizontal scrolling is achieved by holding down the SHIFT key. The F2, F4, F6 and F8 keys are assigned for image scrolling as well.
The flashing rectangle in the zoom area is the cursor where new pixels will be set by SPACE (drawing colour) or DEL (delete colour). The cursor can be moved around by the cursor keys in the respective directions. The F1, F3, F5 and F7 keys can be used to move by 8 pixels, which is useful for fast line drawing. When moving the cursor with keys the zoom area scrolls automatically in a way that at least one character row/column is always visible ahead.
Flashing crosses near to the cursor mark the borders of the active character for hires and multicolour pictures.
Setting pixels can be done by the cursor keys while holding the SPACE or the DEL keys or by holding the left or right mouse buttons while moving the mouse. When using the mouse for drawing the cursor follows it.
The top right corner contains an original sized cut out of the edited image for multicolour and hires pictures. For multicolour interlace pictures use the ← button to preview changes.
Setting the drawing colour to the one under the cursor can also be done by using the STOP key, or the middle mouse button.
The drawing colour and the delete colour can be exchanged by pressing C. The current colours are shown in the bottom right corner in overlapping squares.
The movement speed is displayed after the K:
and M:
text. Big numbers mean faster movement. The + and
− keys can be used to adjust the pointer speed. When
SHIFT is held at the same time the keyboard repeate rate is changed.
The active pixel and character positions are displayed after the XP:
,
YP:
, XC:
and YC:
texts respectively.
The colors used in the active character are shown after the C1
(bits
%10, lower nibble), C2
(bits %01, high nibble) and C3
(bits %11,
colour memory). The background colour is displayed after BK
(bits %00),
while the foreground colour is FG
(bits set on hires images). Unused bit
combinations are indicated by two shades of gray instead of a single colour.
The bit pattern assignment is automatic. If the painted colour is present in the character, the already assigned bit pattern is used, otherwise the first free one is used from top to bottom.
It can happen that there are no more free bit patterns to assign the new colour. Then the bit pattern of the overwritten pixel will be assigned to the new colour, which will recolour all the other pixels with this bit combination in the character. On multicolour and multicolour interlace images if this was a background pixel, then no pixel is set or recolored.
On hires and multicolour images the colour to bit pattern assignment can be changed by pressing SHIFT + C. This will not change the displayed image itself, but it can be used to ensure consistent assignment of bit patterns of colors for underlaid sprites use for example. SHIFT + X toggles transparency display mode, which makes bit pattern verification easier.
Pressing the ← button takes to the view mode, while pressing M activates the disk menu.
The colour of background for multicolour and multicolour interlace pictures can be set to the drawing colour by pressing B.
The HOME key fills up the active character block with delete colour. The complete picture can be filled up using CLR.
The undo function is activated by SHIFT + Z, redo is C= + Z. The undo level depends on the available memory. There's no redo and only a limited single level of undo without a memory expansion. Simple moving and drawing with the same colour with the keyboard does not create an undo point.
The L key toggles between pixel and interlace emulation in the interlace zoom editor.
The view mode shows the whole picture at the same time. There's a tool bar made of sprites on the top border.
Setting the drawing colour to the one under the mouse can also be done by using the middle mouse button.
The drawing colour and the delete colour can be exchanged by pressing C.
The colour of background for multicolour and multicolour interlace pictures can be set to the drawing colour by pressing B. Border can be blanked by pressing SHIFT + B.
The undo function is activated by SHIFT + Z, redo is C= + Z.
The + and − keys can be used to adjust the pointer speed.
Pressing SPACE or ← takes back to the zoom editor. If the mouse was moved then the zoom editor follows it's position. If you don't want this then use the latter one, that will not alter the position.
Pressing M activates the disk menu.
Most of the screen is covered by the directory list. This can be updated by pressing D.
The active drive can be selected by pressing C.
Loading and saving is done by L and S, executable pictures can be saved by P.
Loading or saving in other picture formats are selected by pressing the keys as indicated on the right side, right now these are Koala and Art studio.
Pressing E or CRSR=> takes back to the zoom editor.
1 button only when connected to the joy port, unless the resistor hack for right/middle buttons was done on the POT lines. The mouse blocks the keyboard most of the time, but maybe it's slightly better on port 2.
3 buttons are supported on the userport classical games adapter port 3 (PB6 as right and PA2 as middle buttons). This method is recommended as the keyboard is not disturbed.
Some Amiga mouse converters may not work as they give the pulses too fast.
2 buttons, 5 with Micromys or compatible adapters.
Please note that after the mouse is connected for the first few movements the cursor jumps around. This is normal, and it starts to behave after the encoding range is determined.
Works on both ports, but port 2 is recommended to avoid unexpected interference with the keyboard (e.g. left button and right shift on port 1 blocks operation).
If not all 3 buttons exists the right button can be emulated by pressing SHIFT and the middle one by C= together with the left button.
Sideways scrolling can be achieved by pressing SHIFT while scrolling vertically.
A special keyboard handler is used to track simultaneous key presses, this allows using cursor keys in zoom mode while holding down the SPACE or DEL. It can suppress most joy port disturbance, however there's a smaller chance of invalid key presses if port 2 is used.
Extended and internal memory is used for storing undo states. The number of states depends on the memory size.
Undo sizes are:
There needs to be space for redo as well, that's why on RetroReplay there's no undo functionality for multicolour interlace pictures.
The internal minimal undo has only a very small memory and is one-way only (no redo). If it runs out of memory part of the changes will not be undone. Block changes like character erase, block copy, screen clearing or file load can't be undone with it.