Log In  

Cart #picodraw-1 | 2021-06-07 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Mouse and Keyboard are required!

New release of PicoDraw, the tool I created to draw all backgrounds in my Masters of the Universe cart and the huge scrolling objects in R-Type, in a special compressed format.

What's new:

  • sprite tools
  • clone groups
  • H/V mirroring of subshapes
  • revamped UI

It uses a mixture of primitives/sprites/tile-maps. Maybe someone else will find it useful too or just contribute to further development.

I will update this post with some tutorials as soon as possible, here's a demo cart showing how to use the created data in a game. check the code and the included sprites.

Cart #picodraw_test-2 | 2021-06-08 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

The reason for its creation is explained in this devlog

Thanks to @JadeLombax for his triangle functions!

Code needs some further optimization and the tool is missing a couple of final features but it's quite usable. According to my plan, this is what left to do:

-palette remapping tool
-string tool
-variable length commands for optimization

Keyboard commands:

Left mouse button  - draw filled shape
Right mouse button - draw outline shape
(only for rectangles and ovals, other shapes are the same with both buttons)

Keyboard shortcuts (capital letters means shift+letter, * means available in 'Select All' mode)

Ctrl+f -- show prompt for sprites/map import from another cart

Ctrl+a -- toggle Selct All mode (move all shapes at once)

;   -- *toggle background layer
'   -- *toggle foregroudn layer
Ctrl+h -- *toggle unselected shapes visibility
u   -- *toggle UI visibility

1   -- rectangle drawing tool
2   -- oval drawing tool
3   -- line drawing tool
4   -- map drawing tool
5   -- shape select tool
6   -- triangle drawing tool
7   -- pixel drawing tool
8   -- sprite drawing tool
9   -- clone drawing tool
0   -- cycle tools

Backspace -- Delete selected shape
c   -- toggle palette tool

f   -- toggle selected shape fill/outline
g G -- cycle selected shape gradient fill
h  -- *flip current shape horizontally (in omni mode flip all canvas horizontally)
i   -- toggle selected shape selection filter (so tab and ` will only cycle through the same shape as the one selected)

j   -- show shape list for current drawing layer
, . -- scroll shape list

k   -- clone shape (makes a copy of the selected shape over itself)
l   -- switch active layer
Ctrl+l -- move shape to other layer (BG->FG or FG->BG, as last shape of the level)
m   -- enable bg horizontal mirroring (as used in Masters of the Universe, see: -- link -- )

Ctrl+n -- clear canvas (preserving undo to get back to existing drawing)

r   -- toggle 8x8 pixels Grid
t   -- selected shape mutation (cycle through shapes while preserving all parameters)
*v  -- flip current shape vertically (in omni mode flip all canvas vertically)
Ctrl+v -- paste command strings as new drawing (sanitized as much as possible)
Ctrl+y -- redo (256 levels)
Ctrl+z -- undo (256 levels)

` Tab  -- *cycle selected shape
= -    -- increase/decrease shape drawing priority

up    -- *move selected shape up 1 px
left  -- *move selected shape left 1 px
down  -- *move selected shape down 1 px
right -- *move selected shape right 1 px

w      -- decrease selected shape height by 1  (pixel for primitives, unit for sprite and maps)
a      -- decrease selected shape width by 1  (pixel for primitives, unit for sprite and maps)
s      -- increase selected shape height by 1  (pixel for primitives, unit for sprite and maps)
d      -- increase selected shape width by 1  (pixel for primitives, unit for sprite and maps)

W      -- for map/sprite decrease index by 1 row
A      -- for map/sprite decrease index by 1 col
S      -- for map/sprite increase index by 1 row
D      -- for map/sprite increase index by 1 col
[ ]    -- cycle selected shape color

You can draw 256 shapes on each of the 2 layers, when you reach the limit the toolbar turns purple

After the drawing is done, I quit to the prompt and just Ctrl+V paste the drawing data, it's always copied to the clipboard after every operation and it's automatically escaped/unescape

P#81235 2020-08-27 02:26 ( Edited 2021-06-08 05:25)

Glad to see this out so soon, I'll have to give it a whirl. =)

P#81237 2020-08-27 02:36 ( Edited 2020-08-27 02:39)

That's reminds me of MacDraw!

I am again convinced that in the days when removable media with less capacity than today, such as floppy disks, were the norm, the method of creating drawing data using only shapes was useful.

btw, how many shapes did you use for the background map of the "Masters of the Universe"?
From the devlog, it looks like they're also using a combination of sprites, but the graphics are still wonderfully realistic!

P#81286 2020-08-28 06:05

@shiftalow yes, I used a mixture of sprites for the very detailed parts. For shapes from around 40 for Grayskull to 92 for the throne, and then a lot get mirrored.

This is what I draw with shapes, it uses 602 bytes (including the tileamp info, hidden in the pic)

This is with the tilemap, mirroring, palette changes and animated effects

I will soon post an advanced video on how to use the map functions.

P#81290 2020-08-28 08:40 ( Edited 2020-08-28 08:47)

Thanks for answering my trivial interest!
It's well worth it!
Not right now, but I would like to use it if I get a chance. While considering adding features and such...!

P#81331 2020-08-29 07:54

[Please log in to post a comment]