With Multipaint, you can draw pictures with the color limitations of some typical 8-bit and 16-bit computer platforms.
Some of the screen formats supported are Commodore 64 hires/multicolor, Commodore Plus/4 Hires/multicolor, Commodore Vic-20 Hires/multicolor, ZX Spectrum, ZX ULAplus, ZX Spectrum Next, MSX 1, Amstrad CPC mode 0/1 (and 0 with Overscan), Sinclair QL, Commodore Amiga and Atari ST.
VIC-20 hires mode and the Extras window
ZX Spectrum Next mode
Multipaint 2023.7 (Version 13.2.2024)
Apparently, the unique character counter in C64 multicolor could on occasions cause a crash, if switching to another mode. I am hoping this is now 100% fixed.
Multipaint 2023.6 (Version 24.1.2024)
With the ZX Next mode, a bug surfaced where a border color index larger than 127 could crash Multipaint.
In C64 multicolor mode, a count of Unique Characters ("UQ" at the corner) for valid multicolor characters has been added. You have to ensure the screen passes the test, though. You should be able to use colors 0-7 for individual characters, and the test infers the two additional global colors if they are valid.
The count is updated in semi-realtime, and merely shows ??? if something in the screen doesn't pass the test. This is a feature for future development. Thanks to Shine for testing!
Multipaint 2023.5 (Version 16.1.2024)
Moving towards what will become Multipaint 2024, hopefully all is not tangled before that.
I added Tutorial mode (from mode selection) and a key cheat sheet from Other->Keysheet. Added SL2 support to ZX Spectrum Next (NextBASIC likes that), fixed a bug with color selection. Can now pipette the 2nd color.
Multipaint 2023.4 (Version 13.1.2024) adds ZX Spectrum Next layer 2 modes (256x192 or 320x256 with 256 colors).
This is the first 256-color mode in Multipaint, hopefully it doesn't break apart! Keep in mind the toolset in Multipaint was originally aimed at 8-16 color images, and can appear limited for 256 color work. There are no layers or complex filter functions, you need to pixel your way through.
Multipaint is not really intended for conversion work, but with 256 colors they seem to turn out ok.
The default palette is the same as the ZX Next default, I strongly recommend exploring that before changing anything.
You can use any existing palette color for border, but it should conform to the 8-bit palette colors (4 blue steps). All default colors are 8-bit.The Next mode supports NXI, SPR sprite banks and Palette load/save. The full image can be exported as a NEX executable.
General Multipaint .BIN files are recommended as Project files, as the contained format (256 or 320) is recognized and Multipaint can open them in the correct mode.
In addition, ZX Next modes support following formats:
.NXI: 49152 / 81920 bytes of raw bitmap data in the display order. With palette, 49664 / 82432 bytes. These have to be opened in the correct display mode.
.SL2: Only for 256x192 mode. 128 byte PLUS3DOS header and 49152 bytes of raw bitmap data in the display order. NextBASIC can load these easily using LOAD "filename" LAYER.
.SPR: 16384 bytes of bitmap data. This just saves the top third of the screen, so be careful not to lose the rest. Not available in 320x256 mode!
.PAL: 512 bytes of 9-bit RGB palette data.
.NEX: 66048 / 98816 byte executable, with bitmap, palette and border data. The NEX shows the image and waits for Break key to soft reset.
See also:
A blog post about Multipaint and the Spectrum Next
Some general improvements:
2023.4 : png import repalette is on by default on relevant modes. Turning it off could cause confusion if you use PNG as primary file format!
2023.3 : The png/jpg import should be a little faster now.
The png/jpg import has simple dither option. This is found from File->Settings.
The png/jpg imports can conform to current palette in adjustable palette modes. The option is in File->Settings.
A filename bug related to scripts, Export and SAVE was fixed.
Behavior: One-directional Export (executables, tape files etc.) never sets your default filename.
Added one more dither pattern to facilitate the horizontal line dithering technique I like to use :)
Multipaint 2023.2 (Version 10.7.2023) increases undo steps to 30. Added a warning if using shift+j to Copy to Spare. Improved the ellipse code somewhat (thanks again Marq!). Fixed a bug relating to behavior after Load .ACT palettes.
Multipaint 2023.1 fixes a few things in plus/4 export modes. I adopted the .p4i extension for Botticelli exports. Multipaint now inserts a MULT stamp to Multi Botticelli files. The plus/4 palette window is now more ordered.
I also fixed a bug some modes had with the custom brush dither, added Ptoing palette to C64 modes (palette dialogue) and added a provisional PC CGA mode to the Extras window. Check the palette dialogue to adjust CGA alternatives.
Tooltip box shows attribute coordinates below the pixel coordinates, not relevant to all modes.
Multipaint 2023 is the eighth major release of Multipaint. New modes include VIC-20 hires and multicolor modes, and finally the Amiga mode has been made "official". Pan tool has been added, which works in magnify mode either using the dedicated tool or by dragging the middle mouse button. There are various user interface touches, such as using Upper/lowercase text for dialogues and menus, and an option to force the window scale.
All the target platform exports and imports are handled by external scripts in the data folder. This is the largest change for this version, although not very visible to the user. Currently I don't encourage the modification of the scripts but it is possible.
Some less complete modes can be tried from the menu "Extras" found under "File" menu. Here are for example Amstrad GX4000/plus mode and Tandy Coco3 modes. Also the C64 hires free has been moved here. I wanted to give easier access to these experimental modes without cluttering the main selector.
VIC-20 export note: There are different exports for unexpanded VICs and with expansion. With unexpanded VIC exports, you need to provide a 10 LOAD "image",8,1 loader or use PuCrunch.
See also:
Multipaint features common drawing tools, color clash emulation, cut brushes, dither patterns, grid / snap, 30-step undo, spare page, magnify modes, direct executable export, export as source, import/export in native formats and much more.
Download Multipaint application for Windows/Linux/Mac (zip)
Multipaint manual at Google Docs. (The manual is no longer included with the zips.)
Download Multipaint Processing 3 sketch, v. 16.1.2024 (zip, no manuals)
As Multipaint is written in Processing, it should run in Windows, Mac OS X and Linux 32/64 bit systems. For running the application, you need the Java Runtime Environment. It may turn out you already have it. For some systems, installing something like Arduino might also install a version without further hassle.
From what I know, open variants of Java might not work.
If an error message demands an exact version of Java, I cannot guarantee it actually means what it says. I don't have that much control over the matter, an older version of Java might even be better.
Processing binaries cannot be guaranteed to work correctly across all operating system versions. The ultimate solution may be to install Processing 3 and run the sketch instead or export the application to your system.
I developed Multipaint with a two-button mouse where the wheel works as the third, middle mousebutton. The wheel zooms/pans and the middle button works as an instant pipette. This might be the ideal mouse for using Multipaint.
For old school pixel work, it might be better to slow down the pointer movement in your system.
Wacom-style tablets or a Cintiq display should be ok, but I can't promise it.
/data/prefs.txt handles some of the general preferences of the software, such as the default path for your images. On Mac, the data folder is probably "inside" the application, and you can get there with "show Package contents".
Keysheet with highlighted important options
You can also use a few common shortcuts, such as Ctrl-Z for undo, Ctrl-S to save, Ctrl-X to activate Cut brush, Ctrl-A to select&cut all. (cmd instead of ctrl with Mac)
Tested on Yosemite 10.10.5, Catalina 10.15.7 and El Capitan 10.11.6.
There may be security/ file quarantine related issues with the Macintosh. You may need to allow the file to run separetely from your privace/security settings. Depending on your Mac OS and Java version, the application may have problems with finding the prefs.txt file. This should no longer be a problem with the 2020 version. See further below for more information.
I have disabled the specific file selector for Windows, because it apparently caused some trouble. If you want to enable the better fileselector for Windows, check the prefs.txt file in the data folder and alter the line to read FSELECTOR=1
Windows 10: If you encounter a problem where resizing the Multipaint window makes the window unresponsive (immobile, non-resizable) or otherwise crashes the program, you may need to update your Windows. On a 20H2 it seemed to work fine.
Your security software may tag the Multipaint archive as a potential malware/virus just in principle, which ALMOST certainly is a false positive. Furthermore, like with Mac, your security settings may prevent you from running web-downloaded content. Take care!
Special thanks to Compyx and Shine for testing and patience.
As an additional note, it might be good to install libcanberra-gtk-module, if Multipaint says it is missing. This reveals itself when running ./multipaint from the command line. It shouldn't be necessary, though.
My experiences have shown the program can run on Raspberry Pi 3B+. Run the 32-bit linux version included. However it is not especially fast, and the new 2020 version is likely to be even slower. If there's really some need to run Multipaint on Pi 3, you could revert to the 2019 version. I believe a Raspberry Pi 4 might be fast enough to run Multipaint ok.
Most of the Mac problems should have gone by the 2020 version. However, if Multipaint warns you that the prefs.txt could not be found, this should indicate something is wrong.
The prefs.txt is now situated at a Java/data/ folder, but you may need to "show package contents" instead of opening the application to access it.
If you run Multipaint through the terminal, you likewise need to get into the multipaint.app/Contents/MacOS folder structure and launch ./multipaint from there. The console log can give some clues on where the application is trying to get its files from. However this might be different than running it from the icon!
Here are a couple of related software. Especially if you now have Java runtime environment installed you can have a try at these:
Here are some works where Multipaint has been put to use.
Facet told me that all his C64 pixeling from around 2018 has been done on Multipaint. Thanks!
Special thanks to Jonathan Eggelton who gave permission to include his work. Jon takes inspiration from C-64 game covers and loading screens. You can view more of his work through this CSDb page.
I have also permission to include works by Andy Green. Andy has been very prolific in creating ZX Spectrum art, both re-imagined loading screens and new images. To see more, check Andy's ZXart gallery and his Facebook page.
The demogroup GOTU made a demo on Commodore plus/4 called Promised Land, and told me they used Multipaint for the graphics. See the entry at plus4world!
There are also loading screens for an add-on to the multi-platform text adventure Hibernated 1: This Place is Death, which is called Eight Feet Under. The pictures were made by Rail Slave. Get Hibernated from here, it's quite an atmospheric game.
Stefan Vogt, the author of Hibernated, has been testing the Atari ST mode for making the screens for The Curse of Rabenstein. I'm told all the modes (Amiga, DOS, ST) are based on the ST Degas images. Thanks Stefan! Check Curse of Rabenstein.
TITAN (Eric Cubizolle) gave permission to include some of his Amstrad CPC works on this page. More of his output can be found from this page. (Scroll to the bottom to see the Multipaint images)
Eric has been more than active, as he has made graphics for a game, and a Christmas demo, all with Multipaint.
Davide Bucci has used Multipaint to create loading screens for his multi-platform text adventure The Queen's Footsteps. For more information, go to this page.
Inside the Box (C64) by Facet
Too Young to Die (C64) by Facet
Queen's Footsteps (C64) by Davide Bucci
MarioCPC (CPC) by TITAN
Barbarian II (CPC) by TITAN
Screen from The Curse of Rabenstein (Atari ST) by Stefan Vogt
Ken 3 (CPC) by TITAN
Cobra (CPC) by Deckard
Powerdrome (ZX ULAplus) by Dr. TerrorZ
Eight Feet Under (C64 multicolor) by Rail Slave
Eight Feet Under (Amstrad CPC) by Rail Slave
Eight Feet Under (ZX Spectrum) by Rail Slave
Red Heat (C64 multicolor) by JonEgg
River Raid (C64 multicolor) by JonEgg
Toki (ZX Spectrum) by Andy Green
Doomsday Castle (ZX Spectrum) by Andy Green
Amazon (ZX Spectrum) by MacRune
From Promised Land (C plus/4) by DLST/GOTU
Für Desire (C64 multicolor) by Dr. TerrorZ
Fixertron (C64 hires) by Dr. TerrorZ
Remote (C64 hires) by Dr. TerrorZ
Queen (C64 multicolor) by Dr. TerrorZ
Infestation (C64 multicolor) by Dr. TerrorZ
Boabots (C64 hires) by Dr. TerrorZ
Lawless of the West (C64 hires) by Dr. TerrorZ
Countryside (C64 hires) by Dr. TerrorZ
Star Kerk (MSX) by Dr. TerrorZ
Imjarvi UFO Incident (C64 multicolor) by Dr. TerrorZ
Sommaren e Kårt (C64 multicolor) by Marq
Inside Job (C64 hires) by Dr. TerrorZ
Battlecat Action Figure (C64 hires) by Dr. TerrorZ
Unhanged (ZX Spectrum) by Dr. TerrorZ
Multipaint 2016-2024 by Tero Heikkinen AKA Dr. Terrorz. Comments and queries can be sent to the address below: