Wednesday, 24 February 2016

Multipaint for drawing 8-bit images


Multipaint, a drawing program that works on PC/Mac/Linux has finally been released. Multipaint allows you to draw pictures with the colour limitations of some typical 8-bit computer platforms. The display formats supported are C64 high resolution, C64 multicolour, ZX Spectrum, MSX 1, Commodore Plus/4 hires, Commodore Plus/4 multicolor and Amstrad CPC mode 0. The images can be exported as files that run directly on the target platforms or emulators. (.PRG on Commodore models, .TAP on Spectrum and .COM for MSX) Currently the software also supports some 8-bit paint program formats, such as (Advanced) Art Studio on the C64, SCR (SCREEN$) on Spectrum, (Multi) Botticelli on the Plus/4 and SC2 on the MSX.

I started this project in 2013 with the idea that a single program could easily collect together multiple 8-bit drawing formats. It turned out more difficult than I thought, especially after adding the C64 Multicolour mode which follows different rules than the other screen formats. The program idea is greatly indebted to Deluxe Paint, but the tool palette has been adjusted with 8-bit drawing in mind. 


Mocking up a game screen in ZX Spectrum format

Automatic colour adaptation


One feature that took a long time to figure out was how the program could help with managing the foreground/background colours in a more intuitive way. With Multipaint, I wanted to create a paint program rather than an editor. Typically, 8-bit paint programs would have the pixels and colours almost as separate "layers". When editing a complex picture it would be easy to forget which colours are foreground or background in any particular character area. Multipaint treats the more prominent colour as the "background" on each square character, so you can focus more on drawing and less on keeping track of colours. This new system is not totally perfect either, but it is helpful in many situations.

Edit: The new feature, "force colour" (hold down ctrl/cmd) helps in detailed pixel editing. The colour under the pointer inside the character area will be directly altered to the current colour.


Demonstrating the ZX Spectrum border


Some features:

  • Immediate color/character attribute update while drawing
  • Platform-relevant export (.prg, .tap and .com output)
  • Import and export .png images
  • Import and export 8-bit paint program formats
  • Fast switching between main and spare page, just like in Deluxe Paint
  • Multi-step undo buffer, separate for main and spare pages
  • Tile paint mode and small sprite animation
  • All tools work with custom cut brushes
  • Simple raster, color replace and brush recolor modes
  • Tooltips with key shortcuts
X/Y mirror tools with a custom brush on C64 multicolour.

Links


The current version is 22.5.2016, which is the third released version.
The website with download links, information and image gallery: 
http://multipaint.kameli.net/


Multipaint at CSDb: http://csdb.dk/release/?id=145506

Multipaint at Pouet: http://www.pouet.net/prod.php?which=66976

Related project PETSCII, a cross-platform text art editor: http://www.kameli.net/marq/?page_id=2717

Related project Pixel Polizei, a cross-platform multi-format graphic tool: http://www.kameli.net/marq/?page_id=4557

A video introducing some of the tools and features of Multipaint:


3 comments:

  1. Is it possible to add additional (floating?) window with preview?

    It'd be useful with magnification.

    ReplyDelete
    Replies
    1. Hello, thanks for the comment. It is possible and I have seen an example of that. I need a bit thinking to make it properly.

      In the meantime you can maybe try to keep open an image viewer that is intelligent enough to reload the picture when it has been changed. Then save a PNG from Multipaint over that image. I know it's not the same thing, though...

      Delete
  2. Fantastic tool! I used the 2016 release for a long time, but this 2019 version is a great improvement with a lot of nice features.
    Thank you for supporting Plus/4 platform! :-)

    ReplyDelete