Almost all old home computers tend to offer non-square pixels, from wide-pixel graphics modes on the C64/CPC/BBC Micro to CGA's weird not-quite-square 320x200 mode with a pixel aspect ratio of 5:6.

What software do people use nowadays for creating pixel art for such systems? Even Aseprite, the kitchen sink of retro image editors, doesn't support this.

  • This is in no way trying to invalidate your question, but non-square pixels need a display unit to show them - With CRT monitors (literally) dying out and being replaced by square-pixel LCDs, I think for the mid-term we need to be getting used to square-pixel displays. But that is maybe a different question.
    – tofro
    Jul 23, 2018 at 7:51
  • 4
    @tofro Although I guess a modern hi-res LCD could, at least in theory, make a reasonable stab at showing a low-res, non-square-pixel image accurately.
    – TripeHound
    Jul 23, 2018 at 9:06
  • It is actually a good question: what are non-square pixels, provided that virtually any CRT monitor had independently adjustable X and Y sizes.
    – lvd
    Jul 23, 2018 at 9:54
  • 1
    @lvd What you change on a CRT is just what is displayed - Lots of retrocomputers do, however, have a model of how the x- and y- aspect ratios of pixel should differ - This becomes increasingly obvious when you try to display a circle. My Sinclair QL (that originally used non-square pixels with an aspect ratio of ~1:1.4), for example, will only produce egg-shaped circles on a modern LCD monitor.
    – tofro
    Jul 23, 2018 at 10:49
  • 1
    Pedantically, the BBC and CPC have exactly the same pixel aspect ratios and neither has square pixels in any mode. Assuming the PAL visible area of 52μs x 288 lines, I make them 13/12 — about 1.08:1 at their closest-to-square.
    – Tommy
    Jul 23, 2018 at 23:50

2 Answers 2



  1. It is not a trivial problem to solve because you need to use an image editor that allows you to display and edit based on a X,Y DPI for the image that is different than the X,Y DPI (aspect ratio) of your work display.
  2. The Gimp is a possible solution, as it is a free, open-source, multi-platform tool that supports this type of image editing.

The key is that Gimp, and other similarly sophisticated image editors, will let you set the DPI (or, PPI, "pixels-per-inch") for the image, then respect this in your display and editing of the image. You do this via the Image | Print Size... menu option. So you unlock the PPI settings in the dialog, and set them to respect the 5:6 (or whatever) aspect ratio of the retro computer/display that you are targeting. So the X,Y PPI in this dialog will be different than your square pixel display you are working on. Then, you can toggle the View | Dot for Dot menu option to edit your image in its native PPI, and to view the image in scaled mode on your modern display. Thus you can edit the native pixels and approximate the results easily on your modern display. When you eventually export the image, the PPI settings of the image should be respected, so you get an image that displays correctly on the retro system.

  • 2
    Does Gimp make it easy to create perfect circles and squares in the target aspect ratio, or do you have to calculate the dimensions ahead of time and keep a close eye on the X and Y values as you create the circle or square? Jul 23, 2018 at 20:11
  • 5
    @traal Yes. A perfect circle will appear as an oval in the native PPI ("Dot for Dot" disabled) and as a circle in the scaled PPI ("Dot for Dot" enabled).
    – Brian H
    Jul 23, 2018 at 20:50
  • This is beautiful. I've used Gimp for years but had no idea about this feature.
    – hexwab
    Jul 24, 2018 at 5:34

GrafX2 (http://grafx2.chez.com/) is an open-source palettized-color paint program in the style of Deluxe Paint. It also supports graphics modes with non-square pixel ratios of 1:2 or 2:1, and I believe in the latest version 3:4. (Though in the version I tried out, 2.3, support wasn't 100%; a circle drawn in tall mode was an ellipse)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .