NGPC Tile Editor

Tilemap Editor → True Color Tool →
autosaved

Grid Size (tiles)

x
Resize anchor — existing content stays pinned to the highlighted point; growth or cropping happens on the opposite side(s).
Pixels = 8 × tiles, up to 256x256 tiles. Type a custom size and press Enter or click Resize.
Exact, no resampling — just trims everything outside the selected tiles.

Scale (Resample)

Resamples the pixel art itself to a new tile size (nearest-neighbor — an approximation, since palette-index art can't blend like real color can). Works on the selection if you have one, else the whole canvas. Clears per-tile palette overrides in the affected area, since tile positions no longer line up with the original art.
x
%
Percent is of the selection's (or whole canvas's) current size, rounded to whole tiles.
%
Shrinks/grows the artwork itself while the grid (or selection) size stays exactly the same — positioned using the same resize-anchor picker Resize uses (in the Grid Size panel), clipped to fit if grown past the original bounds. Good for resizing a shape without disturbing the canvas dimensions.

Tools

No selection — actions apply to whole canvas.
Left click/drag = primary color. Right click/drag = secondary. Right-click while Select is active clears the selection. Click-drag inside an existing selection to move it (snaps to whole tiles) instead of redrawing it.

Shapes

Drag on the canvas to draw. Left = primary color, right = secondary. Hold Shift while dragging Rect/Ellipse for a square/circle.

Magic Wand

Click with the Wand to select a same-color blob on the active layer. Ctrl+click adds another blob to the selection. Click-drag inside the selected pixels to move them freely (no tile snapping). Copy it, then Paste stamps just those pixels elsewhere — everything else at the destination stays untouched (right-click cancels a pending paste or clears the wand selection).

Transform

With a selection: rotates/flips just that region on the active layer. With no selection: rotates/flips every layer together (whole tileset geometry).
Requires a selection. Leaves the original alone and loads a mirrored copy into the Paste tool — click the canvas to place it wherever you like.

Slide (wrap)

Shifts pixels on the active layer by 1px per click (Alt+Arrow keys work too); pixels that fall off one edge reappear on the opposite edge. Works within the selection, or the whole canvas if none.

Perspective Guide

X Y
Lines Offset°
Evenly-spaced lines radiating from the vanishing point, starting at the offset angle. Visual reference only — never drawn into the art or exported.

Tile Usage

History

Zoom

18 px/pixel
Ctrl+scroll wheel over the canvas also zooms.
— 2x2 tiles (16x16 px)
NGPCraft C Output
Refreshes automatically as you edit. Each layer emits its own row-major (left→right, top→bottom) u16 tile array (8 words/tile, 2bpp MSB-first — matches this project's existing art.c/*_mspr.c format) plus a per-tile palette-index array. Palette words are hex literals (R | G<<4 | B<<8) — safe from the raw RGB() macro's blue-channel truncation bug on cc900.