# GrafX2

GrafX2 is a bitmap graphics editor inspired by the Amiga programs Deluxe Paint and Brilliance. It is free software and distributed under the GPL-2.0-only license.

## History

GrafX2 was an MS-DOS program developed by Sunset Design from 1996 to 2001 . It was distributed as freeware, and was one of the most used graphics editor in the demoscene. The development stopped due the lack of time of the developers. So they released the source code under the GPL-2.0-only license.
A Windows port was done by the Eclipse demogroup and presented at the State of the art party in 2004, but the source code for this version does not seem to be available anywhere.
In 2007, a project was started to port the source code from the original MS-DOS version to the Simple DirectMedia Layer library. The goal was to provide a pixel art editing tool for Linux, but SDL also allowed easy ports to many other platforms, including Windows. The project development continued on this new version to add the features missing from the original open source release and the first Windows port.

## Features

What made GrafX2 interesting when it was released in 1996 was the ability to display pictures in most of the resolutions available on Amiga. This allowed the use of the program as a picture viewer for PC users. This was done by low-level programming of the video card, using X-Modes combined with VESA settings. The SDL port generally runs on platforms which use high resolution screens, so it can use software scaling to emulate low resolutions. The scaling options include several non-square pixels, this allows editing of pictures for displaying on old 16- or 8-bit microcomputers, which have such video modes.
All the versions of the program are designed for drawing in indexed color mode, up to 256 colors. A palette editor allows very precise operations on the image and its palette. These functions are precious for console or mobile game graphics where some specific color indices in the palette are required for special effects: Palette swap, Color cycling, transparent color for sprites.
The user interface is mouse-driven with a toolbar for common tools, and some modal dialog windows. For increased productivity with frequently used functions, an extensive system of keyboard shortcuts is available.
The user can split the editing area in two : normal size on the left, zoomed-in view on the right. Drawing in the zoomed area allows finer mouse control.
The basic drawing concepts are clearly inspired by Deluxe Paint, they involve :
* a brush : It's one of the built-in monochrome shape, or a piece of colored bitmap grabbed by the user. The brush appears 'stuck' under the mouse cursor, it gives an accurate preview.
* a tool that pastes the brush on the image at several places : Freehand drawing, straight line, circle, curve, airbrush...
* optionally, a number of Effects that change the way pixels are drawn: For example, the Shade mode ignores the brush color, it lightens or darkens the picture depending on the mouse button used (and depending on user-defined color ranges). Some of the effects are classic for a 24-bit RGB drawing program (Transparency, Smoothing, Smearing), but their effectiveness in GrafX2 is limited according to the colors pre-defined in the palette.
The SDL port currently runs on a lot of computer systems, tested on common systems such as Linux, FreeBSD, Windows, MacOS, and on less common ones such as AmigaOS 3.x on 68k, AmigaOS 4.0 on PPC, BeOS and Haiku, MorphOS on PPC, AROS on x86, SkyOS, Atari MiNT on Atari Falcon030 and Atari TT. It is even ported on the Handheld game console GP2X, and the Windows version can be used on MS-DOS thru HX DOS Extender.

## File formats

* PKM (Sunset Design) (This is a custom format used only by GrafX2. It was done in the first version as an easy way to save pictures, before the GIF format was managed perfectly.)
* BMP (Microsoft, BMP file format)
* CEL, KCF (K.O.S. Kisekae Set System)
* GIF (Compuserve)
* IMG (Bivas)
* LBM (Electronic Arts) (Support for files from Deluxe Paint, but also a lot of Amiga paint programs)
* PAL
* PCX PC Paintbrush (Z-Soft)
* PI1, PC1 (Degas Elite)
* PNG (Portable Network Graphics) (only in the Windows and SDL ports)
* SCx (Colorix)
* NEO (NeoChrome)
* C64 picture formats (Koala Painter, CDU-Paint, FLI, etc.)
* CPC picture formats (PPH, CM5, etc.)
* JPEG (only loading)
* TGA (Truevision TGA only loading)
* TIFF (Aldus Corporation)
* RECOIL can be used to load a lot of native file formats of vintage computers.