ZX PixelPaste – Help

This page contains a full English help and a full Czech help. Use the language switch in the top-right corner to toggle between them.

The application supports both classic ZX Spectrum mode (256×192 bitmap, 32×24 attribute grid) and ZX Spectrum Next Layer 2 mode (256×192, 256 colors, 8bpp indexed). Dedicated workflows exist for screens, sprites, fonts, masks, text objects, and BIN/ASM/SPR export.

ZX PixelPaste – Nápověda

Tato stránka obsahuje plnou anglickou i plnou českou nápovědu. Mezi jazyky přepínáš tlačítky vpravo nahoře.

Aplikace podporuje klasický ZX Spectrum režim (bitmapa 256×192, atributová mřížka 32×24) i ZX Spectrum Next Layer 2 mód (256×192, 256 barev, 8bpp indexed). Jsou tu samostatné workflow pro obrazovky, sprity, fonty, masky, textové objekty a export BIN/ASM/SPR/NXI.

1. General basics

Main tabs

  • Screen Editor – full ZX screen editing with bitmap, attributes, selections, layers, text objects, and dithering. Also supports Next Layer 2 mode.
  • Sprite Editor – sprite frames, optional masks, animation preview, BIN/ASM export. Also supports Next 8bpp/4bpp sprite mode.
  • Font Editor – font or UDG editing, glyph transforms, preview, BIN/ASM export.

How drawing works

  • Left mouse button draws or confirms the current tool operation.
  • Right mouse button erases in bitmap-based editors.
  • Middle mouse button samples the visible attribute (classic) or color index (Next) under the cursor in Screen Editor.
  • Selections can become floating selections that can be moved before being committed.
  • All drawing tools use Bresenham interpolation on drag, so no pixels are skipped even on fast movements.
Important: the editor stores bitmap and attribute data separately. In Screen Editor, a visible pixel and its colors are related but not identical. In Sprite and Font editors, the bitmap is primary while palette and mask behavior depends on the current mode.
ConceptMeaning
INKForeground color (classic ZX: 0–7, bright variants via Bright flag).
PAPERBackground color.
BrightUses bright variants of the ZX palette.
FlashSets the ZX FLASH attribute bit.
MaskAuxiliary per-pixel layer for sprites and fonts.
Text layerA live, editable text object that appears as a separate entry in the Layers panel and is rendered on top of bitmap layers.
ASM previewGenerated assembly text preview of current data, updated after each stroke.
Layer 2ZX Spectrum Next full-color screen mode — 256×192, 256-color indexed palette, no attribute grid.
NXINext screen file format: 49152 bytes of pixel data + optional 512-byte palette.
SL2Alternative Next Layer 2 binary format (raw pixel data only, no header).
Theme switcherThree buttons in the top-right of the header bar (🌙 / ⚡ / 🔄) that control the visual theme and layout density. See General basics → Theme switcher below.

Theme switcher

The three buttons in the header bar let you control the application's visual theme and the layout density of the three-column workspace:

ButtonThemeEffect
🌙 DarkDefault dark themeFull-width side columns (left 320 px, right 340 px). The right column collapses below the canvas at viewports narrower than 1620 px.
CompactDark compact themeNarrower side columns (left 230 px, right 240 px), reduced padding and font sizes. The three-column layout holds until the viewport is narrower than 1200 px — useful on smaller monitors or lower resolutions.
🔄 AutoAutomaticThe theme is chosen automatically based on the current window width: Dark at ≥ 1620 px, Compact between 981–1619 px, and Dark again below 981 px (mobile). The selection updates live as you resize the window.
Manual override: clicking 🌙 or ⚡ locks that theme regardless of window width. Clicking 🔄 removes the lock and re-enables automatic switching. The chosen theme is remembered in localStorage between sessions.

2. Screen Editor

The Screen Editor is the main workspace for building a ZX Spectrum screen. It combines a 256×192 bitmap, a 32×24 attribute layer, selection tools, paint tools, dithering, text objects, layer management, and SCR/ATTR/NXI import-export. Switch between classic ZX and Next Layer 2 modes via the screen mode selector at the top.

Top controls

ControlWhat it doesHow to use it
Screen nameName of the current screen item.Type directly into the text field.
Screen modeSwitches between Classic ZX Spectrum and ZX Spectrum Next Layer 2. When switching modes, text object colors are automatically converted to the nearest equivalent.Select from the dropdown. Switching converts the current canvas including all text layers.
↶ Undo / ↷ RedoUndo or restore the last action.Use the buttons or Ctrl+Z / Ctrl+Y.
− / +Zoom out or in.Use buttons or keyboard shortcuts.
?Opens the help dialog.Click once.
StatusShows what the editor is currently doing.Read-only.

Toolbox

GroupToolsPurpose
SelectionRect sel, Oval sel, Free sel, MoveCreate and manipulate selected areas. Move turns a selection into a floating selection that can be dragged before committing.
DrawPencil, Brush, Erase, Spray, Line, TextBitmap drawing and direct painting. Spray applies continuously on drag. Text places editable text objects directly on the canvas.
ShapesRect, Fill rect, Ellipse, Fill ovalDrag-based geometric drawing with live preview while dragging.
Paint & ColorFill, Dither, Attr, PickFill areas, apply dithering, paint attribute cells, or sample values from the canvas.

Canvas and color controls

ControlMeaningHow to use it
Show Attrs / Layer 2Toggles attribute coloring (classic) or shows Layer 2 label (Next).In classic mode: useful when checking ZX color clash.
INK swatchesSelect foreground color (classic mode). While a text object is being edited, clicking an INK swatch instantly changes its color.Click one of the 8 ZX colors. In Next mode, use the 256-color palette grid.
PAPER swatchesSelect background color (classic mode only).Click one of the 8 ZX colors.
BrightAttribute switch (classic mode). While a text object is being edited, toggling Bright instantly updates its color.Toggle on or off.
FlashAttribute switch (classic mode only).Toggle on or off.
Transparent PAPERMakes the current layer background transparent in the current 8×8 attribute cell.Best used on upper layers in classic mode. Not available in Next mode.
INK ⇄ PAPERSwaps the current foreground and background colors.Useful for fast color inversion.
Hover attrShows the final visible INK/PAPER under the cursor (classic) or color index (Next).Useful when working with multiple layers.
Brush / Spray / DensityTool-specific sliders for size and density.Adjust to match the active tool.
Dither len.Controls the fade-out distance of the Dither tool stroke.Higher values produce a longer gradient trail.
Dither modeSelects the dither pattern: Solid, Checker, Sparse, or Radial.Choose from the dropdown next to the Dither length slider.
Attr OnlyEdits only the 32×24 attribute map (classic mode only).Use for recoloring without changing bitmap pixels. Left-click writes the current INK+PAPER. Right-click writes with INK and PAPER swapped — useful for quickly inverting a cell's colors without changing the editor palette.
1×1 / 8×8 / 16×16Grid overlays (classic mode only). 1×1 shows individual pixel boundaries. 8×8 shows attribute cell boundaries (the ZX 8×8 color constraint grid). 16×16 shows a coarser 16×16 pixel grid — handy when designing sprites or tiles intended for ZX Spectrum Next, where hardware sprites are 16×16 pixels.Toggle each overlay independently. 16×16 is off by default.
Canvas resize handleA thin drag strip located immediately below the canvas area. Drag it up or down to change the visible height of the canvas viewport (range: 100–1200 px). Useful on smaller screens or when working at high zoom levels where the canvas would otherwise scroll out of view.Hover over the strip (a horizontal bar appears) and drag vertically.
Transparent PAPER workflow: use transparent PAPER mainly on upper layers for highlights, text, overlays, or details. Overlay is the simpler compositing mode, while Smart remap tries to find a more suitable ZX attribute remap for the final visible result. When you start drawing with Transparent PAPER into an already occupied area of the same layer, the editor may automatically create a new overlay layer above the active one and redirect the stroke there.

Text tool

The Text tool places live, editable text objects directly on the canvas. Each text object is a separate entry in the Layers panel and is rendered on top of all bitmap layers. Text objects can be moved, hidden, renamed, and deleted independently. When Merge Layers is used, visible text objects are rasterized into pixels.

Basic usage

  1. Select the Text tool from the Draw group in the toolbox.
  2. Click anywhere on the canvas — a floating editor box appears and gets focus immediately. Start typing right away.
  3. The text is rendered live on the canvas as you type — no need to confirm to see it.
  4. Press Ctrl+Enter or Esc to close the editor box. Clicking elsewhere on the canvas also closes it.

Text editor box

When editing, a floating editor box appears near the text. It has a drag handle (⠿) at the top — grab it to drag the editor anywhere in the canvas area so it doesn't cover what you're working on. The editor box is positioned automatically below or above the text depending on available space.

Control / shortcutWhat it does
Ctrl+EnterCloses the text editor and confirms all edits. The text remains as a live layer.
EscCloses the text editor. Edits are preserved (text is stored live on every keystroke).
Click on canvasCloses the text editor without creating a new text object at the click position.
Drag the ⠿ handleMoves the editor box to any position within the canvas area.
Multiline supportPress Enter inside the editor for multi-line text.

Text tool panel

When the Text tool is active, a panel appears below the canvas controls with the following options:

OptionWhat it does
FontChoose between Tiny 5×7 (compact pixel font), ZX ROM 8×8 (the original ZX Spectrum font), or Font editor (uses the font currently open in the Font Editor tab).
BoldRenders each glyph one pixel wider for a bold effect.
ItalicApplies a slight horizontal slant to each glyph.
Delete textPermanently removes the currently selected text object.

Changing text color

ModeHow to change color
Classic ZX modeWhile the text editor is open, click any INK swatch or toggle Bright — the text color updates instantly. The selected INK + Bright combination becomes the text color.
Next Layer 2 modeWhile the text editor is open, click any color in the 256-color palette grid or the quick-pick row — the text color updates instantly to that palette index.

Moving text on the canvas

With the Text tool active, click and drag any existing text object on the canvas to reposition it. The text moves in real time. You can also move it via the Layers panel — select the text layer and use the Up/Down buttons.

Editing existing text

With the Text tool active, double-click any text object on the canvas (or click the ✎ button next to it in the Layers panel) to reopen the editor box and change the content.

Workflow tip: compose your text objects freely, adjust colors and fonts, then use Merge Layers when you're satisfied. Merge rasterizes all visible text objects into the merged bitmap layer — after that the text is permanent pixels. Use Undo to go back if needed.
Note: text objects are stored separately from bitmap data. They are saved in the project JSON file and survive Save/Load Project. However, SCR/BIN/NXI exports always include the rendered text (as if merged) — text is always baked into exports.

Next Layer 2 mode

This section applies only when ZX Spectrum Next Layer 2 is selected as the screen mode.

In Next mode the 256×192 canvas uses a fully indexed 256-color palette — no attribute grid, no INK/PAPER, no color clash. Each pixel stores a palette index (0–255). This maps directly to the ZX Spectrum Next Layer 2 screen format.

FeatureDescription
256-color paletteThe palette grid shows all 256 Next colors. Left-click assigns Color A (main draw color), right-click assigns Color B (secondary / erase color).
Color A / Color B chipsThe two chips above the palette show the currently selected Next indices, their swatches, and numeric palette IDs.
Middle mouseMiddle-click on the canvas samples the color index under the cursor and assigns it to the active draw color.
Text color in Next modeWhile editing a text object, clicking any color in the palette instantly changes the text color to that palette index.
Next preview adjustmentsBelow the palette are three live preview sliders: Brightness, Contrast, and Saturation (all −100…+100). They affect only the Screen Editor preview until applied.
Apply to layerCommits the current Brightness / Contrast / Saturation preview changes permanently into the active Next bitmap layer. The editor remaps each painted pixel to the nearest Next palette entry and then resets the sliders back to 0.
ResetClears the Next preview adjustment sliders back to zero without modifying layer data.
Import L2Loads a raw Layer 2 file (49152 bytes of 8bpp indexed data, no header). Replaces the canvas pixel data.
Export L2 RawExports 49152 bytes of raw indexed pixel data. Load directly into Next Layer 2 memory at address $C000 (bank 8).
Export PALExports the 512-byte Next palette block (256 × 2 bytes in RRRGGGBB + B format).
Export SL2Exports an SL2 file — same pixel layout as L2 Raw, alternative extension used by some Next tools.
Export NXIExports an NXI file: 49152 bytes of pixel data followed by the 512-byte palette. This is the most complete Next screen format and can be loaded directly by NextBASIC or Z80 loaders.
Export NXI + NXP (compat)Exports a compatibility pair for workflows that want screen data and palette as separate files.
Import NXILoads an NXI file. If the file contains palette data (≥ 49664 bytes) it is also applied to the editor palette.
Convert to NextConverts the current classic ZX screen to Next Layer 2 format. Text object colors are also converted to the nearest Next palette index.
Convert to ClassicConverts the current Next Layer 2 canvas back to classic ZX Spectrum format. A conversion dialog appears with a live before/after preview and the following options:

Method: Direct conversion (nearest ZX colour per pixel, fast), Dithering — Ordered Bayer (dot patterns simulate mid-tones within each 8×8 attribute cell), or Floyd-Steinberg dithering (error diffusion — see below).
Dither strength (0–100 %): how strongly the Bayer pattern is applied. At 0 % it behaves like direct conversion; at 100 % full dithering is used.
Matrix: Bayer 2×2 (finer), 4×4 (recommended), or 8×8 (coarser texture).
Diffusion strength (0–100 %): intensity of error diffusion (Floyd-Steinberg only).
Brightness / Contrast / Saturation (-100…+100): pre-process the source image before conversion. The preview updates live as you move the sliders.

Text object palette indices are mapped to the nearest ZX ink color.
NXI workflow: draw in Next mode → Export NXI → load from NextBASIC with LOAD "screen.nxi" LAYER 2 or from Z80 with a standard Layer 2 loader. The NXI format bundles pixels and palette together so the colors are exactly as you designed them.

Palette Tools (Next)

In ZX Spectrum Next Layer 2 mode, the button 🎨 Open Palette Tools appears above the 256-color palette. It opens a dedicated dialog for editing the working Next palette and for remapping classic ZX SCR colors to Next indices.

Area / controlWhat it does
Palette Editor tabMain tab for editing the current 256-color Next palette used by the editor.
Preview — click pixel for infoShows the current screen preview with the currently active palette. Clicking a pixel displays color information for that pixel.
Show used onlyFilters the palette grid so you only see slots currently used on the canvas.
🔍 Scan canvasScans the current Next canvas and marks used palette slots. Useful before enabling Show used only.
Palette slot clickClick any slot in the 256-color grid to open a popup editor for that slot.
RGB modeEdit the selected slot directly with R, G, B sliders in the 0–7 Next range.
Grid modeInstead of sliders, choose a color from a compact preset color grid and copy that color into the edited slot.
✓ Apply (slot popup)Confirms the edited color for the selected palette slot in the dialog’s working palette.
🗑 Clear (slot popup)Clears/resets the currently edited slot in the working palette.
💾 Save JSONSaves the current palette as a JSON file with all 256 entries, including palette bytes and RGB values.
📂 Load JSONLoads a palette from a JSON file into the dialog’s working palette. The change is not final until you confirm the dialog.
📤 Export NXPExports the palette in NXP binary form for ZX Next workflows that expect a raw palette file.
📥 Import NXPImports an NXP / raw palette file into the working palette.
↺ Reset paletteRestores the default Next palette inside the dialog.
✓ Apply (dialog)Commits all Palette Tools changes back into the editor palette. Until then, edits remain only in the dialog’s working copy.
✕ CancelCloses the dialog and discards unapplied palette edits.

SCR Recolor tab

The second tab, 📺 SCR Recolor, is meant for remapping classic ZX Spectrum SCR / ULA colors to Next palette entries. It is available from the same Palette Tools dialog and works as a conversion helper for Next mode.

Area / controlWhat it does
📂 Load SCRLoads a classic SCR file and analyzes which ULA colors are present.
🎨 Load default ZX colorsInitializes the mapping with the standard 16 ZX colors even without loading an SCR file.
ULA color gridShows the 16 classic ZX colors (normal + bright). Selecting one highlights its mapping row.
Color mapping tableEach ULA color can be assigned to a specific Next palette color. This lets you define how classic colors should translate into Layer 2.
Next color pickerAfter selecting a ULA color, choose the replacement Next color from the Next grid.
✓ Apply RecolorApplies the current ULA → Next mapping to the loaded SCR preview / conversion workflow.
↺ Reset mappingRestores the default remapping table.
Import / status boxesShow import summary, used colors, and workflow messages while building the remap.
Important: Palette Tools are available only in Next Layer 2 screen mode. Palette edits change how indexed colors are interpreted; they do not repaint pixels by themselves. The final palette is saved into PAL and NXI exports.
Classic ↔ Next conversion: use Convert to Next to move a finished classic screen into full-color Next mode for further editing. Use Convert to Classic to go the other way — colors will be quantized to the nearest ZX attribute pair per 8×8 cell, so some color detail will be lost. Text object colors are converted automatically in both directions.

Layers and text layers

The Layers panel shows all bitmap layers and all text objects together in a unified list. Bitmap layers are marked with a filled square (⬛); text layers are marked with a blue T badge and show a preview of their content in quotes.

ControlApplies toWhat it does
AddBitmapCreates a new bitmap layer with transparent attributes.
DuplicateBothCopies the active layer. For text layers, creates a copy offset by 4 pixels.
DeleteBothDeletes the active layer or text object (with confirmation). At least one bitmap layer always remains.
ClearBitmapClears all pixels and attributes from the active bitmap layer.
↑ Up / ↓ DownBothChanges layer order. For text layers, changes their z-order relative to other text objects.
Merge LayersBothMerges all visible bitmap layers into one, and rasterizes all visible text objects into the merged result. Text objects are permanently converted to pixels — use Undo to reverse.
Rename (✎)BitmapOpens a dialog to rename the selected bitmap layer.
Edit text (✎)TextOpens the text editor box for the selected text layer.
Visibility checkboxBothShows or hides a layer. Hidden text layers are excluded from rendering and exports.
Click on layer nameBitmapActivates the layer for drawing.
Click on text layerTextSelects the text object and switches to the Text tool.
Double-click on text layerTextOpens the text editor box immediately.
Transform (⟳)BitmapOpens the Transform Layer dialog for the selected bitmap layer. Allows non-destructive rotation, scaling, and panning with a live preview before applying.
⋯ (layer menu)BitmapOpens the layer context menu with additional options: Rename, Transform, Dither export…, Color to transparency…, and Merge with layer below…. Click ⋯ again to close the menu.

Transform Layer

The Transform Layer dialog opens via the button next to a bitmap layer in the Layers panel. It provides non-destructive rotation, independent X/Y scaling, and free panning of the layer content, with a live preview that is applied only when you confirm with Apply.

ControlWhat it does
RotationEnter an angle in degrees (−3600 … +3600) or drag the range slider (−180 … +180). Quick-pick chips: 0°, ±45°, ±90°, 135°, 180°.
Scale X / Scale YIndependent scale factors (0.05× … 32×). Drag the sliders or type directly. Quick-pick chips: ¼×, ½×, ¾×, 1×, 1.5×, 2×, 3×, 4×.
🔒 Lock X:YWhen active, X and Y scale always change together proportionally (uniform scaling). Click to toggle.
Attribute behaviour (classic mode)Scale attrs with pixels — attribute cells are transformed together with the bitmap. Discard attrs — attribute data is ignored; only transformed pixel data is kept.
Live previewShows the result of the current settings on the full 256×192 canvas in real time. The preview is non-destructive — nothing is changed in the layer until you click Apply.
Pan (drag in preview)Drag inside the live preview canvas to offset the layer content. The current offset is shown as Pan: X, Y.
⊞ Snap 8×8When active, panning snaps to multiples of 8 pixels — useful for keeping content attribute-cell aligned.
ApplyCommits the transform permanently into the layer bitmap (and attribute data, depending on the attribute mode setting). Can be undone with Undo.
ResetResets all transform controls (angle, scale, pan) back to their defaults without modifying the layer.
CloseCloses the dialog. If Apply was not clicked, no changes are made to the layer.
Non-destructive workflow: pixels outside the canvas boundary during a transform are temporarily preserved inside the dialog session — you can pan or re-scale and they reappear. Only after clicking Apply are pixels outside the 256×192 canvas clipped permanently.
Layer ordering: text layers are always displayed above the bitmap layer they belong to (the layer that was active when the text was created). Bitmap layer order is controlled by Up/Down buttons. You can have multiple text layers interleaved with bitmap layers.

Dither Export

The Dither Export dialog opens via the menu next to any bitmap layer → Dither export…. It converts the layer's colour content into a ZX Spectrum attribute-constrained representation using Ordered Bayer dithering, then writes the result back into that layer.

The Original panel shows a composite of all visible layers as they currently look. The Result panel shows the same composite but with the active layer replaced by its dithered version — so you can see exactly how the final result will look in context before confirming.

ControlWhat it does
Colour ditheringOrdered Bayer dithering. For each 8×8 attribute cell the algorithm selects the best ZX ink+paper colour pair (using perceptual colour distance), then applies the Bayer matrix to distribute pixels between those two colours and simulate mid-tones.
B&W ditheringMonochrome mode. Uses white ink on black paper. The same Bayer matrix and strength settings apply. Useful for creating clean halftone patterns.
Floyd-Steinberg ditheringError diffusion dithering inspired by the Image Spectrumizer algorithm. Works in two passes: first, the best ink+paper colour pair is selected for each 8×8 cell (same perceptual selection as Bayer); then Floyd-Steinberg error diffusion is applied pixel by pixel within each cell — quantisation error is spread to neighbouring pixels using the classic 7/3/5/1 weights. Compared to Bayer, it produces smoother gradients with fewer regular dot patterns and generally looks better on photographs and continuous-tone images. Error diffusion is kept within each cell boundary to prevent colour bleeding across attribute borders.
Dither strengthControls the intensity of the Bayer pattern (0–100 %). At 0 % the result is equivalent to a direct nearest-colour conversion. At 100 % the full dither pattern is applied. 70 % is a good starting point.
MatrixSelects the Bayer matrix size: Bayer 2×2, Bayer 4×4 (recommended), or Bayer 8×8. Larger matrices produce finer patterns with more tonal gradations; smaller matrices are coarser but cleaner at low zoom.
Diffusion strengthControls the intensity of the Floyd-Steinberg error diffusion (0–100 %). At 0 % the result is equivalent to a direct conversion; at 100 % the full error is propagated. 80 % is a good starting point. Only visible when Floyd-Steinberg is selected.
Brightness / Contrast / SaturationPre-processing adjustments applied to the source image before dithering. Increasing contrast or saturation often improves colour cell selection. These adjustments are temporary and only affect the conversion — the original layer pixels are not modified by them.
Auto tuneAutomatically finds the best brightness/contrast/saturation combination for the current dither method and strength. Useful as a starting point — you can fine-tune manually afterwards.
Split / Result only / Source onlySwitches the preview between a split view (Original left, Result right), result only, or source only.
Apply to layerWrites the dithered result into the layer. Paper pixels of the dithered cells are set to transparent — only the ink (dither pattern) pixels are written, so underlying layers show through the gaps. Original transparent cells (TRANSPARENT_ATTR) are always preserved as transparent.
CancelCloses the dialog without modifying the layer.
Ink-only overlay behaviour: after applying, the dithered layer acts as an ink-only overlay — paper pixels are transparent and lower layers show through them. This means the dither pattern blends naturally with layers underneath. If you want to fill the paper gaps with a solid colour, paint the background on a lower layer first.
Classic ZX mode only: Dither Export is available for classic ZX 48k bitmap layers. In Next Layer 2 mode the layer already stores full 8bpp colour per pixel so dithering is not needed.

Color to Transparency

The Color to Transparency dialog opens via the menu next to any bitmap layer → Color to transparency…. It lets you pick one colour used in the layer and make every pixel of that colour fully transparent — useful for removing backgrounds or unwanted fills from a layer without affecting other colours.

The Original panel shows the layer composite as it currently looks. The Result panel shows the same composite with the chosen colour replaced by transparency, so you can judge the effect in context before applying.

ControlWhat it does
Used colors in layerLists every visible colour present in the active layer with a colour swatch and the pixel count. Click a colour to select it.
Selected colorShows the currently selected colour. The Result preview updates immediately when you pick a different colour from the list.
Split / Result only / Source onlySwitches the preview between a split view (Original left, Result right), result only, or source only.
Apply to layerPermanently removes all pixels of the selected colour from the layer (sets them to transparent). Can be undone with Undo.
CancelCloses the dialog without modifying the layer.
Workflow tip: Color to Transparency works in both classic ZX and Next Layer 2 modes. In classic mode it removes all pixels of the chosen ZX ink/paper colour; in Next mode it removes all pixels matching the selected palette index. This is a one-step operation — for gradual or partial transparency you can combine it with the Transparent PAPER workflow or manual erasing.

Merge with Layer Below

Merge with Layer Below is available via the menu next to any bitmap layer → Merge with layer below…. It composites the active bitmap layer onto the layer immediately below it and removes the active layer. The result is stored in the lower layer.

Conditions: the option is only available when there is at least one bitmap layer below the active layer. Text layers cannot be merged with this operation — use Merge Layers (the global button in the Layers panel) to rasterize text layers. The operation can be undone with Undo.

Selection panel

ControlWhat it doesWhen to use it
Copy / Paste / CutClipboard-based selection operations on bitmap data.Use for duplication and repositioning of bitmap content.
To LayerMoves or copies selected content into a new layer.Useful for separating screen elements.
DeleteDeletes the selected contents.Use after confirming the selected area.
MoveTurns the selection into a movable floating selection.Use for repositioning.
Move 8 pxSnaps movement to 8-pixel steps.Useful for attribute-aligned placement.
Floating selection: after Paste or Move, the result is not final yet. Drag it into place, then press Enter to commit or Esc to cancel.

Import / export / project files

When loading a project with Load Project, a progress overlay shows the loading stages. This is useful for large projects with many layers or text objects.

ControlModePurpose
Import ImageBothConverts a regular image (JPG, PNG, …) to ZX-compatible screen data. In classic ZX mode a conversion dialog appears with a live before/after preview and these options:

Crop / selection (Source panel): If the source image is larger than 256×192 px, a selection overlay appears directly on the Source preview. Drag the white rectangle to choose which part of the image to import. Resize it by dragging any of the 8 corner or edge handles. The info bar below the preview shows the current selection position and size in source pixels. The checkbox Lock 4∶3 constrains the selection to the exact 256∶192 aspect ratio — if the selection covers most of the image, a centered crop is placed automatically; for smaller selections only the shorter dimension is adjusted.

Method: Direct conversion (two most common ZX colours per 8×8 cell), Dithering — Ordered Bayer (dot patterns simulate gradients and mid-tones), Black & White dithering (monochrome, white ink on black paper), or Floyd-Steinberg dithering (error diffusion — see below).
Dither strength (0–100 %): intensity of the Bayer pattern (Bayer methods only).
Matrix: Bayer 2×2 / 4×4 / 8×8 (Bayer methods only).
Diffusion strength (0–100 %): intensity of error diffusion (Floyd-Steinberg only).
Brightness / Contrast / Saturation (-100…+100): adjust the image before conversion. The preview canvas updates live.
Auto tune: automatically finds a good brightness/contrast/saturation combination for the selected crop and conversion method.

In Next mode the same crop overlay and Lock 4∶3 option are available. The conversion converts the selected region to the nearest Next palette index.
Import SCR / Import L2Classic / NextLoads SCR/BIN screen data (classic) or raw 49152-byte Layer 2 data (Next).
Export SCR / Export L2 RawClassic / NextExports a standard 6912-byte SCR (classic) or raw Layer 2 pixel data (Next). Text objects are baked into the exported image.
Export ATTR / Export PALClassic / NextExports only the attribute block (classic) or the 512-byte Next palette (Next).
Export SL2Next onlyExports an SL2 file (raw Layer 2 data, alternative extension).
Export NXINext onlyExports pixels + palette as a single NXI file. Text is baked in.
Import NXINext onlyLoads an NXI file including its palette.
Save Project / Load ProjectBothSaves or loads project JSON with all editor state including text layers. Load shows a progress bar overlay.

3. Sprite Editor

The Sprite Editor handles frame-based sprite work. It supports two main modes: Classic ZX Spectrum (1bpp monochrome or color with ZX attributes) and ZX Spectrum Next 8bpp (indexed 256-color). Select the mode from the Sprite mode dropdown in the setup panel.

Classic ZX sprite mode

AreaWhat it does
Sprite setupSet sprite name, palette, bright, width (multiples of 8), height (any), zoom, monochrome/color mode, mask and grid.
Monochrome / ColorMonochrome stores only a 1bpp bitmap. Color additionally stores a ZX attribute per 8×8 cell.
Mask: ON/OFFWhen on, generates or lets you manually edit a 1bpp mask (1 = transparent, 0 = opaque). Classic sprite routines use OR/AND masking.
Frame controlsNew Frame, Duplicate Frame, Delete Frame — build multi-frame animations.
Sprite toolsShift and rotate the active frame or all frames at once. See Sprite tools below.
Sprite canvasLeft draws, right erases. Dragging interpolates missing pixels. Middle-click picks color.
Mask panelEdit mask pixels manually. Restore auto-generated mask with ↺ Auto.
Animation previewPlays frames at the configured delay (ms).
Export BINBinary export of all frames: bitmap rows then mask rows per frame.
Export ASMAssembly DB listing, one row per line, with frame labels and optional mask.
Import ASM / BINRe-imports previously exported data back into frames.
Mask editing: manual mask edits override auto-generated masks until you restore them with ↺ Auto.

Sprite tools — shift & rotate

The Sprite tools section in the Sprite Setup panel provides pixel-level shift and 90° rotation for the current frame or all frames at once. Both classic ZX and Next 8bpp modes are fully supported. If a mask is active, it is transformed together with the pixel data.

ButtonWhat it does
← / → / ↑ / ↓ shiftMoves all pixels of the current frame one pixel in the chosen direction. Pixels that overflow the edge are discarded — the operation does not wrap around. In classic color mode the per-pixel color data moves with the pixels; the attribute grid (8×8 cells) stays anchored to the canvas.
⟲ / ⟳ rotRotates the current frame 90° counter-clockwise or clockwise. Only works on square sprites (width = height). If the sprite is not square, a warning appears in the Sprite Setup panel. In classic mode, attribute cells are rotated together with the pixel data when the attribute grid is itself square.
← / → / ↑ / ↓ allSame as the single-frame shift buttons, but applied to every frame in the set.
⟲ / ⟳ allSame as the single-frame rotate buttons, but applied to every frame in the set.
Mask behaviour: if a manual mask exists on the frame it is shifted or rotated together with the pixel data. Auto-generated masks are always recomputed from the current pixels after the operation, so no extra steps are needed.
Undo: all shift and rotate operations are recorded in the undo history (Ctrl+Z).

Next 8bpp sprite mode

Select ZX Spectrum Next 8bpp from the Sprite mode dropdown to enable this mode.

In Next mode each pixel stores a palette index (0–255). Index 0 is the hardware transparent color by default. The editor uses the 256-color Next palette for drawing.

FeatureDescription
Width / HeightBoth must be multiples of 16 (step 16). Minimum 16×16. The Next hardware sprite unit is always 16×16 pixels.
256-color paletteLeft-click a color to set the draw color. Right-click to set the transparent index.
Middle mouse on canvasPicks the color index under the cursor.
Transparent indexPixels with this index are treated as transparent by the Next sprite hardware. Default is index 0.
Export Next SPRExports an SPR file. For a 16×16 sprite: 256 bytes. For larger sprites see below.
Export ASMDB listing in Next 8bpp format with sub-sprite labels for multi-tile sprites.
Export format8bpp raw — one byte per pixel (standard). 4bpp packed — two pixels per byte (uses hw4 format, 128 bytes per 16×16 tile).

Large / multi-tile sprites

The ZX Spectrum Next hardware supports only 16×16 pixel sprites. To create larger characters or objects you combine multiple hardware sprites, each 16×16, positioned adjacent to each other in software.

The editor supports this directly: set any canvas size that is a multiple of 16 in both dimensions (e.g. 32×32, 32×48, 64×64). The editor then:

  • Draws the info badge showing the sub-sprite grid, e.g. "Next sprite: 2×2 = 4× 16×16 sub-sprites".
  • SPR export outputs all hardware tiles sequentially: left-to-right, top-to-bottom. A 32×32 sprite produces 4 × 256 = 1024 bytes (8bpp), ready for SPRITE CONTINUE calls.
  • ASM export produces a separate label for each 16×16 tile: sprite_frame0_sub0_0:, sub1, sub2, etc., with a comment showing the pixel offset of each tile.
Using multi-tile sprites on Next: use SPRITE N,X,Y,PAL,ID for the first tile, then SPRITE CONTINUE for subsequent tiles at X+16, X+32 offsets. The SPR file from this editor is laid out in exactly the order Next expects for sequential loading.
Size locking in Next mode: when Next mode is active, the Width and Height inputs step in increments of 16 and snap to multiples of 16. Switching from classic to Next mode automatically rounds the current canvas size up to the nearest 16×16 multiple.

4. Font Editor

The Font Editor manages either the standard character set (32..127) or UDGs (A..U). It supports glyph editing, mask editing, transforms, ZX ROM import, and ASM preview. The active font in the Font Editor can be used directly by the Text tool in the Screen Editor — select Font editor from the Text tool font dropdown.

AreaWhat it does
Font setupSet font name, width, height, zoom, mask mode, and grid.
Glyph toolsShift and rotate the active glyph or the entire set; load ZX 8×8; import ROM/CH8/ASM-like input.
Character setSwitch between standard printable characters and UDGs.
Glyph canvasMain glyph editor. Left-click draws; right-click erases.
Mask editorWorks like sprite mask editing when mask mode is enabled. Manual edits override the auto-generated mask until you restore it with ↺ Auto.
Mask fit previewVisible when mask mode is on. Shows a composited preview of the active glyph rendered over a checkerboard background using the AND/OR mask technique — the same way a classic ZX sprite routine would draw the character. The checkerboard represents arbitrary background pixels. Use this to verify that the mask correctly hides the background around the glyph edges.
Glyph previewEnlarged view of the active glyph at the current zoom.
Mask previewShows the current mask bitmap for the active glyph alongside the glyph preview.
Preview / ExportLarge preview, mask preview, ASM preview, plus BIN/ASM import-export for both font and UDG sets.
Download ZX RoutinesGenerates a ready-to-use Z80 assembly file with DrawFontGlyph (and optionally DrawFontGlyphMasked) routines tailored to the current font dimensions.
Use in Screen EditorSelect Font editor from the Text tool's font dropdown to render screen text using the currently edited font.

5. Keyboard and mouse controls

Shortcut / controlAction
Left mouseDraw / place / confirm most editor actions. In Text tool: click canvas to create a new text object with immediate focus.
Right mouseErase in bitmap editors. In Attr Only mode: writes the current attribute with INK and PAPER swapped — useful for inverting cell colors. In Next sprite mode: sets the transparent color index.
Middle mouseScreen Editor: samples the visible attribute (classic) or color index (Next) under the cursor. Next Sprite Editor: picks the color index under the cursor.
Ctrl + ZUndo.
Ctrl + YRedo.
Ctrl + Shift + ZRedo.
Ctrl + C / V / XCopy / Paste / Cut selection in Screen Editor.
Enter / EscCommit / cancel floating selection. In text editor: Esc closes the text editor box.
Ctrl + EnterConfirm and close the text editor box.
Delete / BackspaceDeletes the active text object when the Text tool is selected and no editor box is open.
+ / -Zoom in / out in Screen Editor.
W A S DScroll around the zoomed screen canvas.

6. Recommended workflows

Classic full-screen workflow

  1. Start in Screen Editor (Classic ZX Spectrum mode).
  2. Set INK, PAPER, and Bright; use INK ⇄ PAPER for quick reversal.
  3. Turn on the 8×8 grid to monitor attribute boundaries.
  4. Use layers for background, foreground, and overlays. Use Transparent PAPER on upper layers when lower-layer background should remain visible.
  5. Use Attr Only to fine-tune ZX attribute cells without damaging bitmap structure.
  6. Export with Export SCR when finished.

Text overlay workflow

  1. Select the Text tool from the toolbox.
  2. Click on the canvas where you want to place text — the editor opens immediately with focus, start typing.
  3. Change color by clicking an INK swatch (classic) or a palette color (Next) while the editor is open.
  4. Use Bold or Italic from the text panel for styling. Switch Font to ZX ROM 8×8 for authentic look.
  5. Drag the ⠿ handle to move the editor box if it covers your work.
  6. Press Ctrl+Enter to close the editor.
  7. Click and drag the text on the canvas to reposition, or use the Layers panel to manage visibility and order.
  8. When satisfied, use Merge Layers to rasterize the text into pixels for final export.

Dithering workflow

  1. Select the Dither tool from the Paint & Color group.
  2. Choose a dither pattern from the Dither dropdown: Solid, Checker, Sparse, or Radial.
  3. Adjust the Dither len. slider to control the fade-out distance of the stroke.
  4. Paint over the canvas — the tool progressively blends INK and PAPER within the attribute constraints.

Layer Dither Export workflow

Use this when you have a layer with solid or semi-transparent areas and want to convert its colours to ZX Spectrum attribute-constrained dithering — turning the layer into a dithered ink-only overlay that blends naturally with layers underneath.

  1. In the Layers panel, click next to the bitmap layer you want to dither.
  2. Choose Dither export… from the context menu.
  3. In the dialog, select the method: Colour dithering (default) for full colour work, or B&W dithering for monochrome halftone effects.
  4. Set Dither strength — 70 % is a good starting point. Lower values produce cleaner, less noisy results; higher values better approximate mid-tones.
  5. Choose a Matrix: Bayer 4×4 is recommended for most work. Use 2×2 for a coarser, bolder look.
  6. Use the Brightness / Contrast / Saturation sliders to pre-process the source if needed, or click Auto tune to let the editor find a good starting point automatically.
  7. Check the Result panel — it shows the composite with all other visible layers, exactly as the final result will look.
  8. When satisfied, click Apply to layer. The dithered ink pattern is written to the layer; paper pixels become transparent so underlying layers show through.
Layered dithering tip: for multi-layer compositions, work from bottom to top. Keep a solid-colour base layer at the bottom, then dither each overlay layer separately. Because applied dither layers use ink-only transparency, the colours of lower layers will show through the paper gaps and blend with the dither pattern — giving you a natural, composite ZX halftone effect across all layers.

Next Layer 2 screen workflow

  1. Switch to Screen Editor and select ZX Spectrum Next Layer 2 from the mode dropdown.
  2. Pick Color A with left-click and Color B with right-click in the 256-color palette grid. Middle-click on the canvas picks the color under the cursor.
  3. Draw freely — no color clash, no attribute grid.
  4. Use the Brightness / Contrast / Saturation sliders under the palette for temporary preview tuning. Use Apply to layer only when you want those changes baked permanently into the active layer; otherwise use Reset.
  5. Use Import NXI to load an existing Next screen, or Import L2 for raw pixel data.
  6. When done, use Export NXI for a complete file (pixels + palette), Export NXI + NXP (compat) for split compatibility output, or Export L2 Raw / Export SL2 for raw pixel data only.
  7. To load in NextBASIC: LOAD "screen.nxi" LAYER 2.

Image import and Next → Classic conversion with dithering

  1. In classic ZX mode, click Import Image and select a JPG/PNG file — or switch the screen mode from Next Layer 2 to Classic ZX Spectrum. A conversion dialog opens.
  2. The dialog shows a live preview with the source image on the left (Source) and the converted ZX result on the right (Result). Both update automatically as you change any setting.
  3. If the source image is larger than 256×192 px, a selection overlay appears on the Source preview. Drag the white rectangle to select the region you want to import. Resize it using the corner or edge handles. The info bar below shows the current position and size in source pixels. Use Lock 4∶3 to snap the selection to the correct ZX aspect ratio.
  4. Choose the conversion method: Direct for speed and clean solid areas, or Dithering (Ordered Bayer) for photos and complex graphics where gradients matter.
  5. If dithering is selected, set the dither strength (70–100 % is a good starting point) and pick a matrix: Bayer 4×4 is the best general-purpose choice.
  6. Use the Brightness / Contrast / Saturation sliders to pre-process the source image. Increasing contrast often improves ZX conversion results by making colours more distinct. Click Auto tune to let the editor find a good starting point automatically.
  7. When the preview looks good, click Import. The conversion is applied to the canvas and can be undone.
Dithering tips: the algorithm selects the best ink+paper pair for each 8×8 attribute cell using perceptual colour distance (weighted for human vision), then applies the Bayer pattern within each cell. Increasing contrast before conversion, or using Saturation +20–40, often produces crisper attribute choices. If the result looks too noisy, reduce the dither strength or try Bayer 2×2 instead of 4×4.
Crop tips: for portrait photos, enable Lock 4∶3 — the editor automatically places a centered landscape crop that matches the ZX screen ratio. You can then drag it to the area of interest. The selected region is always scaled to exactly 256×192 on import, regardless of its original pixel size.

Classic → Next conversion workflow

  1. Design your image in classic ZX Spectrum mode including any text layers.
  2. Use Convert to Next — each visible pixel is mapped to the nearest Next palette color. Text object colors are also converted automatically.
  3. Continue editing in Next mode with full 256-color freedom.
  4. Export as NXI.

Next sprite workflow (single 16×16)

  1. Switch to Sprite Editor, select ZX Spectrum Next 8bpp mode.
  2. Set size to 16×16 (default). Select palette colors and transparent index.
  3. Draw your sprite. Use middle-click to pick colors.
  4. Add frames for animation with New Frame.
  5. Export as Next SPR — 256 bytes per frame, load with LOAD SPRITE or your own loader.

Next sprite workflow (large / multi-tile)

  1. Switch to Sprite Editor, select ZX Spectrum Next 8bpp mode.
  2. Set width and height to multiples of 16 (e.g. 32×32 for a 2×2 tile character). The info badge will show "2×2 = 4× 16×16 sub-sprites".
  3. Draw on the full canvas — the editor handles the internal tile split automatically.
  4. Export as Next SPR. The file contains all hardware tiles sequentially (left-to-right, top-to-bottom).
  5. In your Z80 code, load consecutive sprites with LOAD SPRITE / NEXTREG calls and position them at X, X+16, X+32, Y, Y+16, Y+32 as appropriate.
  6. Alternatively use the ASM export which provides per-tile labels for direct inclusion in your sjasmplus or ASW source.

Classic sprite workflow

  1. Switch to Sprite Editor.
  2. Set width (multiple of 8), height, zoom, and mode (Monochrome or Color).
  3. Create frames with New Frame.
  4. Draw frames and preview them with Play.
  5. Use mask mode if your target routine requires explicit mask data.
  6. Export as BIN or ASM.

Typical font workflow

  1. Switch to Font Editor.
  2. Select Standard 32..127 or UDG A..U.
  3. Import an existing font, load ZX 8×8, or draw from scratch.
  4. Edit glyphs from the thumbnail grid one by one.
  5. Apply shift and rotate tools where needed.
  6. To use your font in the Screen Editor, go to the Text tool and select Font editor from the font dropdown.
  7. Export in BIN or ASM format.

1. Základní přehled

Hlavní režimy

  • Screen Editor – kompletní editace ZX obrazovky včetně bitmapy, atributů, výběrů, vrstev, textových objektů a ditheringu. Podporuje i Next Layer 2 mód.
  • Sprite Editor – práce se sprity po framech, volitelné masky, náhled animace a export BIN/ASM/SPR. Podporuje i Next 8bpp/4bpp mód.
  • Font Editor – editace fontu nebo UDG, transformace znaků, náhled a export BIN/ASM. Editovaný font lze přímo použít v textovém nástroji.

Jak funguje kreslení

  • Levé tlačítko myši kreslí nebo potvrzuje akci aktivního nástroje. U textového nástroje kliknutí na canvas okamžitě otevře editor s focusem.
  • Pravé tlačítko myši maže v bitmapových editorech.
  • Prostřední tlačítko myši ve Screen Editoru přebírá viditelný atribut (klasický) nebo index barvy (Next) pod kurzorem.
  • Výběry se mohou změnit na plovoucí výběr, který jde před potvrzením přesunout.
  • Všechny kreslicí nástroje při tahu používají Bresenhamovu interpolaci, takže se při rychlém pohybu nevynechávají pixely.
Důležité: editor ukládá bitmapová data a atributová data odděleně. Ve Screen Editoru spolu viditelný pixel a jeho barvy souvisejí, ale nejsou to stejné informace. Ve Sprite a Font editoru je hlavní bitmapa, zatímco paleta a maska závisí na zvoleném režimu.
PojemVýznam
INKBarva popředí (klasický ZX: 0–7, světlé varianty přes Bright).
PAPERBarva pozadí.
BrightPoužije světlé varianty ZX palety.
FlashNastaví ZX atribut FLASH.
MaskPomocná pixelová vrstva pro sprity a fonty.
Textová vrstvaŽivý, editovatelný textový objekt zobrazený jako samostatná položka v panelu Vrstvy, vykreslovaný nad bitmapovými vrstvami.
ASM previewGenerovaný textový náhled assembly dat, aktualizuje se po každém tahu.
Layer 2Plnobarevný režim obrazovky ZX Spectrum Next — 256×192, 256barevná indexovaná paleta, bez atributové mřížky.
NXINext formát obrazovky: 49152 bajtů pixelových dat + volitelná 512bajtová paleta.
SL2Alternativní Next Layer 2 formát (jen surová pixelová data, bez hlavičky).
Přepínač tématTři tlačítka v pravé části záhlaví (🌙 / ⚡ / 🔄) pro změnu vizuálního tématu a hustoty layoutu. Viz Základní přehled → Přepínač témat níže.

Přepínač témat

Tři tlačítka v záhlaví ovládají vizuální téma aplikace a hustotu třísloupového layoutu pracovní plochy:

TlačítkoTémaEfekt
🌙 DarkVýchozí tmavé témaPlná šířka postranních sloupců (levý 320 px, pravý 340 px). Pravý sloupec se přesune pod canvas při šířce okna menší než 1620 px.
CompactKompaktní tmavé témaUžší postranní sloupce (levý 230 px, pravý 240 px), menší padding a velikosti písma. Třísloupový layout se zachová až do šířky okna 1200 px — vhodné pro menší monitory nebo nižší rozlišení.
🔄 AutoAutomatickéTéma se volí automaticky podle šířky okna: Dark při ≥ 1620 px, Compact pro 981–1619 px a Dark pod 981 px (mobil). Výběr se aktualizuje živě při změně velikosti okna.
Ruční přepnutí: kliknutím na 🌙 nebo ⚡ se téma uzamkne bez ohledu na šířku okna. Kliknutím na 🔄 se zámek odstraní a automatické přepínání se obnoví. Zvolené téma se ukládá do localStorage mezi relacemi.

2. Screen Editor

Screen Editor je hlavní pracovní plocha pro sestavení celé ZX Spectrum obrazovky. Kombinuje bitmapu 256×192, atributovou vrstvu 32×24, výběry, kreslicí nástroje, dithering, textové objekty, vrstvy a import/export SCR/ATTR/NXI. Mezi klasickým ZX a Next Layer 2 módem přepínáš pomocí selektoru módu nahoře.

Horní ovládání

PrvekCo děláJak se používá
Screen nameNázev aktuální obrazovky nebo položky projektu.Píše se přímo do textového pole.
Screen modePřepíná mezi klasickým ZX Spectrum a ZX Spectrum Next Layer 2. Při přepnutí se automaticky konvertují i barvy textových objektů.Výběr z rozbalovacího menu. Při přepnutí se canvas konvertuje včetně textových vrstev.
↶ Undo / ↷ RedoVrátí nebo obnoví poslední akci.Tlačítky nebo Ctrl+Z / Ctrl+Y.
− / +Oddálení nebo přiblížení.Tlačítkem nebo klávesovou zkratkou.
?Otevře nápovědu.Kliknout jednou.
StatusUkazuje, co editor právě dělá.Jen pro čtení.

Toolbox

SkupinaNástrojeÚčel
SelectionRect sel, Oval sel, Free sel, MoveVytváření a manipulace s výběrem. Move změní výběr na plovoucí, který lze přesunout před potvrzením.
DrawPencil, Brush, Erase, Spray, Line, TextPřímé kreslení do bitmapy. Spray při tahu stříká kontinuálně. Text vkládá editovatelné textové objekty přímo na canvas.
ShapesRect, Fill rect, Ellipse, Fill ovalGeometrické tvary s živým náhledem při tažení.
Paint & ColorFill, Dither, Attr, PickVýplně, dithering, malování atributů a přebírání hodnot z canvasu.

Canvas a barvy

PrvekVýznamJak se používá
Show Attrs / Layer 2Přepíná zobrazení atributů (klasický) nebo ukazuje popisek Layer 2 (Next).V klasickém módu: hodí se při kontrole color clash.
INK swatchesVolba barvy popředí (klasický mód). Při editaci textového objektu klik na INK okamžitě změní barvu textu.Klik na jednu z 8 ZX barev. V Next módu použij 256barevnou paletovou mřížku.
PAPER swatchesVolba barvy pozadí (jen klasický mód).Klik na jednu z 8 ZX barev.
BrightAtributový přepínač (klasický mód). Při editaci textového objektu přepnutí Bright okamžitě změní barvu textu.Zapnout nebo vypnout.
FlashAtributový přepínač (jen klasický mód).Zapnout nebo vypnout.
Transparent PAPERPrůhledné pozadí v aktuální 8×8 buňce (jen klasický mód).Nejlépe ve vyšších vrstvách. V Next módu není k dispozici.
INK ⇄ PAPERProhodí aktuální foreground a background.Hodí se pro rychlé otočení barev.
Hover attrUkazuje výsledný viditelný INK/PAPER (klasický) nebo index barvy (Next) pod kurzorem.Užitečné při práci s více vrstvami.
Brush / Spray / DensityNastavení velikosti a hustoty aktivního nástroje.Uprav podle potřeby.
Dither len.Řídí vzdálenost, na které dithering postupně doznívá.Vyšší hodnota = delší přechodový efekt.
Dither módVybírá vzor ditheringu: Solid, Checker, Sparse nebo Radial.Vyber z rozbalovacího menu vedle slideru.
Attr OnlyUpravuje jen atributovou mapu 32×24 (jen klasický mód).Použij pro přebarvení bez změny bitmapy. Levé tlačítko zapíše aktuální INK+PAPER. Pravé tlačítko zapíše atribut s prohozeným INK a PAPER — hodí se pro rychlé otočení barev buňky bez změny nastavení editoru.
1×1 / 8×8 / 16×16Mřížky (jen klasický mód). 1×1 zobrazuje hranice jednotlivých pixelů. 8×8 zobrazuje hranice atributových buněk (ZX barevné omezení). 16×16 zobrazuje hrubší 16×16 mřížku — hodí se při návrhu spritů nebo dlaždic pro ZX Spectrum Next, kde má hardwarový sprite vždy 16×16 pixelů.Každou mřížku lze zapnout/vypnout nezávisle. 16×16 je ve výchozím stavu vypnutá.
Posuvník výšky canvasuTenký táhnutelný proužek umístěný těsně pod canvasem. Tažením nahoru nebo dolů měníš viditelnou výšku výřezu canvasu (rozsah: 100–1200 px). Hodí se na menších obrazovkách nebo při vysokém přiblížení, kdy by canvas jinak „přetékl" mimo viditelnou oblast.Najeď na proužek (objeví se vodorovný pruh) a táhni svisle.
Transparent PAPER workflow: Transparent PAPER používej hlavně ve vyšších vrstvách pro světla, text, overlaye nebo detaily. Overlay je jednodušší režim skládání, zatímco Smart remap se snaží najít vhodnější ZX remap atributů pro výsledný viditelný obraz. Když začneš kreslit s Transparent PAPER do už obsazené oblasti té samé vrstvy, editor může automaticky vytvořit novou overlay vrstvu nad aktivní vrstvou a tah do ní přesměrovat.

Textový nástroj

Textový nástroj vkládá živé, editovatelné textové objekty přímo na canvas. Každý textový objekt je samostatná položka v panelu Vrstvy a vykresluje se nad všemi bitmapovými vrstvami. Textové objekty lze přesouvat, skrývat, přejmenovat a mazat nezávisle. Při použití Merge Layers se viditelné textové objekty rasterizují do pixelů.

Základní použití

  1. Vyber nástroj Text ze skupiny Draw v toolboxu.
  2. Klikni kamkoliv na canvas — plovoucí editor se otevře a okamžitě dostane focus. Začni rovnou psát.
  3. Text se živě vykresluje na canvasu při každém stisku klávesy — není třeba nic potvrzovat, abys viděl výsledek.
  4. Stiskni Ctrl+Enter nebo Esc pro zavření editoru. Kliknutí na jiné místo canvasu také editor zavře.

Editor textového objektu

Při editaci se zobrazí plovoucí editor box u textu. Nahoře má ouško pro tažení (⠿) — chyť ho a přetáhni editor kamkoliv v editační oblasti, aby nepřekrýval to, na čem pracuješ. Editor se automaticky umístí pod nebo nad text podle dostupného místa.

Ovládání / zkratkaCo dělá
Ctrl+EnterZavře textový editor a potvrdí všechny úpravy. Text zůstane jako živá vrstva.
EscZavře textový editor. Úpravy jsou zachovány (text se ukládá průběžně při každém stisku klávesy).
Klik na canvasZavře textový editor bez vytvoření nového textu na místě kliku.
Tažení za ouško ⠿Přesune editor box na libovolné místo v editační oblasti.
Víceřádkový textStiskni Enter v editoru pro nový řádek.

Panel textového nástroje

Když je aktivní nástroj Text, zobrazí se pod ovládáním canvasu panel s těmito možnostmi:

MožnostCo dělá
FontVýběr mezi Tiny 5×7 (kompaktní pixelový font), ZX ROM 8×8 (originální font ZX Spectrum) nebo Font editor (použije font aktuálně otevřený ve Font Editoru).
BoldVykresluje každý znak o jeden pixel širší pro efekt tučného textu.
ItalicAplikuje mírné horizontální zkosení na každý znak.
Delete textTrvale smaže aktuálně vybraný textový objekt.

Změna barvy textu

MódJak změnit barvu
Klasický ZX módPři otevřeném textovém editoru klikni na libovolný INK swatch nebo přepni Bright — barva textu se okamžitě změní. Zvolená kombinace INK + Bright se stane barvou textu.
Next Layer 2 módPři otevřeném textovém editoru klikni na libovolnou barvu v 256barevné paletové mřížce nebo v rychlovýběrovém řádku — barva textu se okamžitě změní na daný index palety.

Přesun textu po canvasu

Při aktivním nástroji Text klikni a táhni libovolný textový objekt na canvasu pro změnu jeho polohy. Text se pohybuje v reálném čase. Textové objekty lze také přesouvat v panelu Vrstvy pomocí tlačítek Nahoru/Dolů.

Editace existujícího textu

Při aktivním nástroji Text dvakrát klikni na textový objekt na canvasu (nebo klikni na tlačítko ✎ u něj v panelu Vrstvy) pro znovuotevření editoru a změnu obsahu.

Tip pro workflow: sestav textové objekty volně, uprav barvy a fonty, pak použij Merge Layers až budeš spokojený. Merge rasterizuje všechny viditelné textové objekty do sloučené bitmapové vrstvy — po tomto kroku je text trvalými pixely. Undo tuto operaci vrátí.
Poznámka: textové objekty jsou uloženy odděleně od bitmapových dat. Ukládají se do projektového JSON souboru a přežívají Save/Load Project. Exporty SCR/BIN/NXI vždy obsahují i vykreslený text — text je vždy zahrnut do exportů.

Next Layer 2 mód

Tato sekce platí pouze pokud je zvolen mód ZX Spectrum Next Layer 2.

V Next módu používá canvas 256×192 plně indexovanou 256barevnou paletu — žádná atributová mřížka, žádné INK/PAPER, žádný color clash. Každý pixel ukládá index palety (0–255). To přímo odpovídá formátu Layer 2 obrazovky ZX Spectrum Next.

FunkcePopis
256barevná paletaMřížka palety zobrazuje všech 256 Next barev. Levý klik nastavuje Color A (hlavní kreslicí barvu), pravý klik nastavuje Color B (sekundární / mazací barvu).
Indikátory Color A / Color BDva čipy nad paletou zobrazují aktuálně vybrané Next indexy, jejich swatche a číselné ID palety.
Prostřední tlačítkoProstřední klik na canvasu sejme index barvy pod kurzorem a nastaví ho jako aktivní kreslicí barvu.
Barva textu v Next móduPři editaci textového objektu kliknutí na libovolnou barvu v paletě okamžitě změní barvu textu na daný index.
Next preview adjustmentsPod paletou jsou tři živé preview slidery: Jas, Kontrast a Saturace (vše −100…+100). Ovlivňují jen náhled ve Screen Editoru, dokud je neaplikuješ.
Apply to layerNatrvalo zapíše aktuální preview úpravy Jas / Kontrast / Saturace do aktivní Next bitmapové vrstvy. Editor přemapuje všechny vykreslené pixely na nejbližší barvy Next palety a potom vrátí slidery na 0.
ResetVynuluje slidery Next preview úprav bez změny dat vrstvy.
Import L2Načte raw Layer 2 soubor (49152 bajtů 8bpp indexovaných dat, bez hlavičky).
Export L2 RawExportuje 49152 bajtů surových indexovaných pixelových dat.
Export PALExportuje 512bajtový Next paletový blok.
Export SL2Exportuje SL2 soubor — stejné rozložení pixelů jako L2 Raw.
Export NXIExportuje NXI soubor: pixelová data + paleta. Jde načíst přímo přes NextBASIC nebo Z80 loader.
Export NXI + NXP (compat)Exportuje kompatibilní dvojici souborů pro workflow, které chtějí obrazová data a paletu odděleně.
Import NXINačte NXI soubor včetně palety.
Konverze Classic → NextKonvertuje klasickou ZX obrazovku do Next Layer 2 formátu. Barvy textových objektů jsou také automaticky konvertovány na nejbližší index Next palety.
Konverze Next → ClassicKonvertuje Next Layer 2 canvas zpět do klasického ZX formátu. Zobrazí se konverzní dialog s živým náhledem před/po a těmito možnostmi:

Metoda: Přímý převod (nejbližší ZX barva per pixel, rychlé), Dithering — Ordered Bayer (tečkované vzory simulují střední tóny v rámci každé 8×8 atributové buňky) nebo Floyd-Steinberg dithering (difuze chyb — viz níže).
Síla ditheringu (0–100 %): intenzita Bayer vzoru. Na 0 % se chová jako přímý převod, na 100 % plný dithering.
Matice: Bayer 2×2 (jemnější), 4×4 (doporučeno) nebo 8×8 (hrubší vzor).
Síla difuze (0–100 %): intenzita difuze chyb (jen Floyd-Steinberg).
Jas / Kontrast / Saturace (-100…+100): předúprava zdrojového obrázku před konverzí. Náhled se aktualizuje živě při pohybu sliderů.

Indexy palety textových objektů jsou namapovány na nejbližší ZX barvu inkoustu.
NXI workflow: nakresli v Next módu → Export NXI → načti v NextBASIC pomocí LOAD "screen.nxi" LAYER 2 nebo Z80 loaderem.

Palette Tools (Next)

V módu ZX Spectrum Next Layer 2 se nad 256barevnou paletou objeví tlačítko 🎨 Open Palette Tools. Otevírá samostatný dialog pro editaci pracovní Next palety a pro přemapování klasických barev SCR / ULA na Next indexy.

Část / ovládáníCo dělá
Tab Palette EditorHlavní karta pro úpravu aktuální 256barevné Next palety, kterou používá editor.
Preview — click pixel for infoZobrazuje náhled aktuální obrazovky s právě aktivní paletou. Kliknutím na pixel získáš informaci o jeho barvě.
Show used onlyOdfiltruje mřížku palety tak, aby zůstaly viditelné jen sloty aktuálně použité na canvasu.
🔍 Scan canvasProjede aktuální Next canvas a označí použité sloty palety. Hodí se před zapnutím Show used only.
Klik na slot paletyKlikni na libovolný slot v 256barevné mřížce a otevře se popup editor daného slotu.
RGB módVybraný slot upravíš přímo pomocí sliderů R, G, B v Next rozsahu 0–7.
Grid módMísto sliderů můžeš vybrat barvu z kompaktní předvolené mřížky a tu zkopírovat do editovaného slotu.
✓ Apply (popup slotu)Potvrdí upravenou barvu vybraného slotu do pracovní palety v dialogu.
🗑 Clear (popup slotu)Vymaže / resetuje právě editovaný slot v pracovní paletě.
💾 Save JSONUloží aktuální paletu do JSON souboru se všemi 256 položkami včetně paletových bajtů a RGB hodnot.
📂 Load JSONNačte paletu z JSON souboru do pracovní palety dialogu. Změna není finální, dokud ji nepotvrdíš.
📤 Export NXPExportuje paletu v binárním formátu NXP pro workflow ZX Next, která očekávají raw paletový soubor.
📥 Import NXPNačte do pracovní palety soubor NXP nebo jiný raw paletový dump.
↺ Reset paletteObnoví v dialogu výchozí Next paletu.
✓ Apply (dialog)Propíše všechny změny z Palette Tools zpět do editorové palety. Do té doby jsou úpravy jen v pracovní kopii dialogu.
✕ CancelZavře dialog a zahodí všechny nepotvrzené úpravy palety.

Tab SCR Recolor

Druhá karta, 📺 SCR Recolor, slouží k přemapování klasických ZX Spectrum SCR / ULA barev na barvy z Next palety. Je dostupná ve stejném dialogu Palette Tools a funguje jako převodní pomocník pro Next mód.

Část / ovládáníCo dělá
📂 Load SCRNačte klasický SCR soubor a zjistí, které ULA barvy jsou v něm použité.
🎨 Load default ZX colorsInicializuje mapování standardní sadou 16 ZX barev i bez načtení SCR souboru.
ULA color gridZobrazuje 16 klasických ZX barev (normální + bright). Výběrem barvy zvýrazníš odpovídající řádek mapování.
Color mapping tableKaždé ULA barvě lze přiřadit konkrétní barvu Next palety. Tím určíš, jak se mají klasické barvy převádět do Layer 2.
Next color pickerPo výběru ULA barvy zvolíš její náhradu v mřížce Next barev.
✓ Apply RecolorAplikuje aktuální mapování ULA → Next na načtený SCR náhled / převodní workflow.
↺ Reset mappingVrátí výchozí tabulku přemapování.
Import / status boxyZobrazují shrnutí importu, použité barvy a stavové zprávy během vytváření mapování.
Důležité: Palette Tools jsou dostupné jen v režimu Next Layer 2. Úpravy palety mění interpretaci indexovaných barev; samy o sobě nepřemalují pixely. Výsledná paleta se ukládá do exportů PAL a NXI.
Konverze Classic ↔ Next: při konverzi se automaticky konvertují i barvy textových objektů — ZX ink (0–15) na nejbližší Next paletový index a zpět.

Vrstvy a textové vrstvy

Panel Vrstvy zobrazuje všechny bitmapové vrstvy i všechny textové objekty v jednom sjednoceném seznamu. Bitmapové vrstvy jsou označeny vyplněným čtverečkem (⬛); textové vrstvy jsou označeny modrým odznakem T a zobrazují náhled obsahu v uvozovkách.

OvládáníPlatí proCo dělá
AddBitmapaVytvoří novou bitmapovou vrstvu s průhlednými atributy.
DuplicateObojíZkopíruje aktivní vrstvu. U textových vrstev vytvoří kopii posunutou o 4 pixely.
DeleteObojíSmaže aktivní vrstvu nebo textový objekt (s potvrzením). Alespoň jedna bitmapová vrstva vždy zůstane.
ClearBitmapaVyčistí všechny pixely a atributy z aktivní bitmapové vrstvy.
↑ Nahoru / ↓ DolůObojíMění pořadí vrstev. U textových vrstev mění jejich z-pořadí vůči ostatním textovým objektům.
Merge LayersObojíSloučí všechny viditelné bitmapové vrstvy do jedné a rasterizuje viditelné textové objekty do výsledku. Textové objekty jsou trvale převedeny na pixely — operaci lze vrátit pomocí Undo.
Přejmenování (✎)BitmapaOtevře dialog pro přejmenování vybrané bitmapové vrstvy.
Editace textu (✎)TextOtevře textový editor pro vybranou textovou vrstvu.
Checkbox viditelnostiObojíZobrazí nebo skryje vrstvu. Skryté textové vrstvy jsou vyloučeny z vykreslování i exportů.
Klik na název vrstvyBitmapaAktivuje vrstvu pro kreslení.
Klik na textovou vrstvuTextVybere textový objekt a přepne na nástroj Text.
Dvojklik na textovou vrstvuTextOkamžitě otevře textový editor.
Transform (⟳)BitmapaOtevře dialog Transform Layer pro vybranou bitmapovou vrstvu. Umožňuje nedestruktivní rotaci, škálování a posun obsahu vrstvy s živým náhledem před potvrzením.
⋯ (menu vrstvy)BitmapaOtevře kontextové menu vrstvy s dalšími volbami: Rename, Transform, Dither export…, Color to transparency… a Merge with layer below…. Druhým kliknutím na ⋯ menu zavřeš.

Transform Layer

Dialog Transform Layer se otevírá tlačítkem u bitmapové vrstvy v panelu Vrstvy. Umožňuje nedestruktivní rotaci, nezávislé škálování v ose X a Y a volný posun obsahu vrstvy. Živý náhled zobrazuje výsledek v reálném čase — do vrstvy se zapíše teprve po kliknutí na Apply.

PrvekCo dělá
RotationZadej úhel ve stupních (−3600 … +3600) nebo táhni posuvník (−180 … +180). Rychlé volby: 0°, ±45°, ±90°, 135°, 180°.
Scale X / Scale YNezávislé koeficienty škálování (0,05× … 32×). Táhni posuvníky nebo zadej hodnotu ručně. Rychlé volby: ¼×, ½×, ¾×, 1×, 1,5×, 2×, 3×, 4×.
🔒 Lock X:YKdyž je zapnuto, mění se X a Y vždy společně (proporcionální škálování). Kliknutím přepínáš.
Attribute behaviour (klasický mód)Scale attrs with pixels — atributové buňky se transformují spolu s bitmapou. Discard attrs — atributová data se ignorují; zachovají se jen transformované pixely.
Živý náhledZobrazuje výsledek aktuálního nastavení na celém canvasu 256×192 v reálném čase. Náhled je nedestruktivní — vrstva se nemění, dokud neklikneš na Apply.
Pan (tah v náhledu)Táhni v ploše živého náhledu pro posun obsahu vrstvy. Aktuální offset se zobrazuje jako Pan: X, Y.
⊞ Snap 8×8Pokud je zapnuto, posun se uchytí na násobky 8 pixelů — vhodné pro zachování zarovnání na atributové buňky ZX Spectra.
ApplyZapíše transformaci trvale do bitmapy vrstvy (a atributových dat dle zvoleného nastavení atributů). Operaci lze vrátit přes Undo.
ResetVrátí všechna nastavení transformace (úhel, škálování, posun) na výchozí hodnoty bez jakékoli změny vrstvy.
CloseZavře dialog. Pokud nebyl stisknut Apply, vrstva zůstane beze změny.
Nedestruktivní workflow: pixely, které při transformaci přesáhnou hranici canvasu, jsou v rámci dialogu dočasně zachovány — po posunutí nebo změně škálování se znovu zobrazí. Teprve po kliknutí na Apply se pixely mimo 256×192 trvale oříznou.
Pořadí vrstev: textové vrstvy se vždy zobrazují nad bitmapovou vrstvou, ke které patří (ta byla aktivní při vytvoření textu). Pořadí bitmapových vrstev ovládáš tlačítky Nahoru/Dolů. Textové vrstvy lze mít prokládané s bitmapovými vrstvami.

Dither Export

Dialog Dither Export otevřeš přes menu u bitmapové vrstvy → Dither export…. Převede barevný obsah vrstvy na reprezentaci odpovídající atributovým omezením ZX Spectra pomocí Ordered Bayer ditheringu a výsledek zapíše zpět do vrstvy.

Panel Original zobrazuje kompozit všech viditelných vrstev v jejich aktuálním stavu. Panel Result zobrazuje tentýž kompozit, ale s aktivní vrstvou nahrazenou jejím ditheringovým výsledkem — takže přesně vidíš, jak bude výsledek vypadat v kontextu ostatních vrstev ještě před potvrzením.

PrvekCo dělá
Colour ditheringOrdered Bayer dithering. Pro každou atributovou buňku 8×8 algoritmus vybere nejlepší dvojici ZX ink+paper barev (pomocí percepční vzdálenosti barev) a pak aplikuje Bayerovu matici k rozložení pixelů mezi tyto dvě barvy a simulaci středních tónů.
B&W ditheringMonochromatický mód. Používá bílý ink na černém paperu. Platí stejná Bayerova matice i nastavení síly. Vhodné pro vytváření čistých polotónových vzorů.
Floyd-Steinberg ditheringDithering s difuzí chyb, inspirovaný algoritmem Image Spectrumizer. Funguje ve dvou průchodech: nejprve se pro každou 8×8 buňku vybere nejlepší dvojice ink+paper barev (stejný percepční výběr jako u Bayeru); pak se pixel po pixelu aplikuje Floyd-Steinbergova difuze chyb v rámci buňky — chyba kvantizace se šíří na sousední pixely klasickými vahami 7/3/5/1. Oproti Bayeru produkuje hladší přechody bez pravidelných tečkových vzorů a obecně vypadá lépe na fotografiích a plynule tonálních obrázcích. Difuze chyb probíhá uvnitř každé buňky, takže nedochází ke krvácení barev přes hranice atributů.
Dither strengthŘídí intenzitu Bayerova vzoru (0–100 %). Při 0 % je výsledek ekvivalentní přímé konverzi nejbližší barvou. Při 100 % se plně aplikuje dithering vzor. Jako výchozí bod dobře funguje 70 %.
MatrixVybírá velikost Bayerovy matice: Bayer 2×2, Bayer 4×4 (doporučeno) nebo Bayer 8×8. Větší matice produkují jemnější vzor s více tónovými přechody; menší matice jsou hrubší, ale čistší při nízkém zoomu.
Diffusion strengthŘídí intenzitu Floyd-Steinbergovy difuze chyb (0–100 %). Při 0 % je výsledek ekvivalentní přímému převodu; při 100 % se šíří plná chyba. Jako výchozí bod dobře funguje 80 %. Zobrazuje se jen při výběru Floyd-Steinberg metody.
Brightness / Contrast / SaturationPředúpravy zdrojového obrázku před ditheringem. Zvýšení kontrastu nebo saturace často zlepší výběr atributových barev. Tyto úpravy jsou dočasné a ovlivní pouze konverzi — původní pixely vrstvy se jimi nemění.
Auto tuneAutomaticky najde nejlepší kombinaci jasu/kontrastu/saturace pro aktuální metodu a sílu ditheringu. Vhodné jako výchozí bod — poté lze ručně doladit.
Split / Result only / Source onlyPřepíná náhled mezi rozděleným pohledem (Original vlevo, Result vpravo), pouze výsledkem nebo pouze zdrojem.
Apply to layerZapíše ditheringový výsledek do vrstvy. Paper pixely ditheringových buněk jsou nastaveny jako průhledné — zapíší se jen ink (dithering vzor) pixely, takže spodní vrstvy prosvítají mezerami. Původně průhledné buňky (TRANSPARENT_ATTR) jsou vždy zachovány jako průhledné.
CancelZavře dialog bez úpravy vrstvy.
Ink-only overlay chování: po aplikaci funguje ditheringová vrstva jako ink-only overlay — paper pixely jsou průhledné a spodní vrstvy prosvítají. Ditheringový vzor se tak přirozeně prolíná s vrstvami pod ním. Pokud chceš paper mezery vyplnit plnou barvou, nakresli pozadí na spodní vrstvě předem.
Pouze klasický ZX mód: Dither Export je dostupný pro bitmapové vrstvy klasického ZX 48k. V Next Layer 2 módu vrstva již uchovává plnou 8bpp barvu na pixel, takže dithering není potřeba.

Color to Transparency

Dialog Color to Transparency otevřeš přes menu u bitmapové vrstvy → Color to transparency…. Umožňuje vybrat jednu barvu použitou ve vrstvě a všechny její pixely nahradit průhledností — vhodné pro odstraňování pozadí nebo nechtěných výplní bez dotyku ostatních barev.

Panel Original zobrazuje aktuální kompozit vrstev. Panel Result zobrazuje tentýž kompozit s vybranou barvou nahrazenou průhledností, takže efekt posoudíš v kontextu ještě před potvrzením.

PrvekCo dělá
Used colors in layerVypíše všechny viditelné barvy přítomné v aktivní vrstvě s ukázkou barvy a počtem pixelů. Kliknutím barvu vyber.
Selected colorZobrazuje aktuálně vybranou barvu. Náhled Result se okamžitě aktualizuje po výběru jiné barvy ze seznamu.
Split / Result only / Source onlyPřepíná náhled mezi rozděleným pohledem (Original vlevo, Result vpravo), pouze výsledkem nebo pouze zdrojem.
Apply to layerTrvale odstraní všechny pixely vybrané barvy z vrstvy (nastaví je jako průhledné). Lze vrátit zpět přes Undo.
CancelZavře dialog bez úpravy vrstvy.
Tipy k použití: Color to Transparency funguje jak v klasickém ZX, tak v Next Layer 2 módu. V klasickém módu odstraní všechny pixely vybrané ZX ink/paper barvy; v Next módu odstraní všechny pixely odpovídající vybranému indexu palety. Jde o jednorázovou operaci — pro postupnou nebo částečnou průhlednost lze kombinovat s workflow Transparent PAPER nebo ručním mazáním.

Merge with Layer Below

Merge with Layer Below je dostupná přes menu u bitmapové vrstvy → Merge with layer below…. Zkompozituje aktivní bitmapovou vrstvu s vrstvou těsně pod ní a aktivní vrstvu odstraní. Výsledek se uloží do spodní vrstvy.

Podmínky: volba je dostupná pouze pokud se pod aktivní vrstvou nachází alespoň jedna bitmapová vrstva. Textové vrstvy touto operací sloučit nelze — pro rasterizaci textových vrstev použij globální tlačítko Merge Layers v panelu Vrstvy. Operaci lze vrátit přes Undo.

Selection panel

PrvekCo děláKdy použít
Copy / Paste / CutOperace s bitmapovým výběrem přes interní schránku.Pro kopírování, přesouvání a duplikování bitmapového obsahu.
To LayerPřesune nebo zkopíruje vybraný obsah do nové vrstvy.Hodí se pro oddělení prvků obrazovky.
DeleteSmaže obsah výběru.Až po kontrole správné oblasti.
MoveZmění výběr na plovoucí a přesunutelný.Pro posun výběru.
Move 8 pxPohybuje po krocích 8 pixelů.Vhodné pro zarovnání na atributy.
Plovoucí výběr: po Paste nebo Move ještě není výsledek definitivní. Přesuň ho na místo a potvrď Enter, nebo zruš Esc.

Import / export / projektové soubory

Při načítání projektu přes Load Project se zobrazí překryvný ukazatel průběhu s jednotlivými fázemi načítání. To je užitečné u větších projektů s mnoha vrstvami nebo textovými objekty.

PrvekMódÚčel
Import ImageObaPřevede běžný obrázek (JPG, PNG, …) na ZX kompatibilní screen data. V klasickém ZX módu se zobrazí konverzní dialog s živým náhledem před/po a těmito možnostmi:

Výběr / výřez (panel Source): Pokud je zdrojový obrázek větší než 256×192 px, zobrazí se na náhledu Source interaktivní výběrový rámeček. Tažením bílého obdélníku vybíráš, která část obrázku se importuje. Velikost měníš tažením libovolného ze 8 rohových nebo hranových úchytů. Informační lišta pod náhledem zobrazuje aktuální pozici a rozměr výběru ve zdrojových pixelech. Zaškrtávátko Lock 4∶3 zamkne výběr na přesný poměr stran 256∶192 — pokud výběr pokrývá většinu obrázku, umístí se centrovaný výřez automaticky; u menšího výběru se jen minimálně upraví kratší rozměr.

Metoda: Přímý převod (dvě nejčastější ZX barvy na 8×8 buňku), Dithering — Ordered Bayer (tečkové vzory simulují přechody a střední tóny), Černobílý dithering (monochromatický, bílý inkoust na černém papíru) nebo Floyd-Steinberg dithering (difuze chyb — viz níže).
Síla ditheringu (0–100 %): intenzita Bayer vzoru (jen Bayer metody).
Matice: Bayer 2×2 / 4×4 / 8×8 (jen Bayer metody).
Síla difuze (0–100 %): intenzita difuze chyb (jen Floyd-Steinberg).
Jas / Kontrast / Saturace (-100…+100): úprava obrázku před konverzí. Náhled se aktualizuje živě.
Auto tune: automaticky najde dobrou kombinaci jasu/kontrastu/saturace pro zvolený výřez a metodu konverze.

V Next módu je stejný výběrový rámeček a volba Lock 4∶3 k dispozici také. Konverze převede vybranou oblast na nejbližší index Next palety.
Import SCR / Import L2Klasický / NextNačte ZX screen data (klasický) nebo raw Layer 2 data (Next).
Export SCR / Export L2 RawKlasický / NextExportuje SCR (klasický) nebo raw Layer 2 pixelová data (Next). Textové objekty jsou zahrnuty v exportu.
Export ATTR / Export PALKlasický / NextExportuje jen atributový blok (klasický) nebo 512bajtovou Next paletu (Next).
Export SL2Jen NextExportuje SL2 soubor.
Export NXIJen NextExportuje pixely + paletu jako jeden NXI soubor. Text je zahrnut.
Import NXIJen NextNačte NXI soubor včetně palety.
Save Project / Load ProjectObaUloží nebo načte JSON projektu včetně textových vrstev. Načítání zobrazuje ukazatel průběhu.

3. Sprite Editor

Sprite Editor slouží pro práci se sprity po jednotlivých framech. Podporuje dva hlavní režimy: klasický ZX Spectrum (1bpp monochromatický nebo barevný se ZX atributy) a ZX Spectrum Next 8bpp (indexovaných 256 barev). Mód vyberáš z rozbalovacího menu Sprite mode v setup panelu.

Klasické ZX sprity

OblastCo dělá
Sprite setupNastavení jména, palety, bright, šířky (násobky 8), výšky (libovolná), zoomu, režimu mono/color, masky a gridu.
Monochrome / ColorMonochrome ukládá jen 1bpp bitmapu. Color navíc ukládá ZX atribut na každých 8×8 pixelů.
Mask: ON/OFFPři zapnuté masce se generuje nebo lze ručně editovat 1bpp maska (1 = průhledný, 0 = neprůhledný).
Frame controlsNew Frame, Duplicate Frame, Delete Frame — vytváření animací po framech.
Sprite toolsPosun a rotace aktivního framu nebo celé sady najednou. Viz Sprite tools níže.
Sprite canvasLevé kreslí, pravé maže. Při tahu se interpolují mezilehlé pixely. Prostřední klik přebírá barvu.
Mask panelRuční editace masky. Obnov auto-generovanou masku tlačítkem ↺ Auto.
Animation previewPřehrává framy v nastaveném intervalu (ms).
Export BINBinární export všech framů: řádky bitmapy pak řádky masky per frame.
Export ASMAssembly DB výpis s labely framů a volitelnou maskou.
Import ASM / BINZnovu načte dříve exportovaná data zpět do framů.
Editace masky: ruční úprava masky přepíše automaticky generovanou, dokud ji neobnovíš tlačítkem ↺ Auto.

Sprite tools — posun a rotace

Sekce Sprite tools v panelu Sprite Setup umožňuje posun pixelů o 1 pixel a rotaci o 90° — buď pro aktuální frame, nebo pro celou sadu najednou. Funkce fungují jak v klasickém ZX režimu, tak v Next 8bpp režimu. Pokud je aktivní maska, transformuje se spolu s pixely.

TlačítkoCo dělá
← / → / ↑ / ↓ shiftPosune všechny pixely aktuálního framu o 1 pixel daným směrem. Pixely, které přetečou za okraj, se ztratí — operace nepřetéká. V klasickém barevném režimu se s pixely posouvají i data barev (per-pixel color); atributová mřížka (8×8 buněk) zůstává ukotvená na canvasu.
⟲ / ⟳ rotOtočí aktuální frame o 90° doleva nebo doprava. Funguje pouze pro čtvercové sprity (šířka = výška). Pokud sprite není čtvercový, zobrazí se varování přímo v panelu Sprite Setup. V klasickém režimu se atributové buňky rotují spolu s pixely, pokud je atributová mřížka sama čtvercová.
← / → / ↑ / ↓ allStejné jako shift pro jeden frame, ale aplikuje se na každý frame v sadě.
⟲ / ⟳ allStejné jako rotace pro jeden frame, ale aplikuje se na každý frame v sadě.
Chování masky: pokud frame obsahuje ručně editovanou masku, posouvá nebo rotuje se spolu s pixely. Automaticky generované masky se vždy přepočítají z aktuálních pixelů, takže není potřeba dělat nic navíc.
Zpět (Undo): všechny operace posunu a rotace jsou zaznamenány v historii změn (Ctrl+Z).

Next 8bpp sprity

Vyber ZX Spectrum Next 8bpp z rozbalovacího menu Sprite mode pro aktivaci tohoto módu.

V Next módu každý pixel ukládá index palety (0–255). Index 0 je standardně průhledná barva hardwaru.

FunkcePopis
Šířka / VýškaObě musí být násobky 16 (krok 16). Minimum 16×16.
256barevná paletaLevý klik vybírá barvu kreslení, pravý klik nastavuje průhledný index.
Prostřední tlačítko na canvasuPřebírá index barvy pod kurzorem.
Průhledný indexPixely s tímto indexem jsou HW hardwarem považovány za průhledné. Výchozí je index 0.
Export Next SPRExportuje SPR soubor. Pro 16×16 sprite: 256 bajtů.
Export ASMDB výpis v Next 8bpp formátu s labely sub-spritů.
Export formát8bpp raw — jeden bajt na pixel. 4bpp packed — dva pixely na bajt (hw4 formát).

Větší / víceblokové sprity

ZX Spectrum Next hardware podporuje pouze 16×16 pixelové sprity. Pro větší objekty se kombinuje více HW spritů softwarově.

Editor to podporuje přímo: nastav libovolnou velikost canvasu jako násobek 16 v obou osách (např. 32×32, 32×48, 64×64). Editor pak:

  • Zobrazí info badge s mřížkou sub-spritů, např. "Next sprite: 2×2 = 4× 16×16 sub-spritu".
  • SPR export vypíše všechny HW tile sekvenčně: zleva doprava, shora dolů.
  • ASM export generuje samostatný label pro každý 16×16 tile s komentářem pixel-offsetu.
Víceblokové sprity na Nextu: použij SPRITE N,X,Y,PAL,ID pro první tile, pak SPRITE CONTINUE pro následující tile na offsetech X+16, X+32 atd.
Uzamčení velikosti v Next módu: inputy Šířka a Výška se pohybují po krocích 16. Při přepnutí z klasického do Next módu se velikost automaticky zaokrouhlí na násobek 16.

4. Font Editor

Font Editor spravuje standardní znakovou sadu (32..127) nebo UDG (A..U). Editovaný font lze přímo použít v textovém nástroji Screen Editoru — vyber Font editor z rozbalovacího menu Font v panelu textového nástroje.

OblastCo dělá
Font setupNastavení jména fontu, šířky, výšky, zoomu, masky a gridu.
Glyph toolsPosuny a rotace aktivního znaku nebo celé sady, načtení ZX 8×8 a import ROM/CH8/ASM.
Character setPřepínání mezi standardní znakovou sadou a UDG.
Glyph canvasHlavní editor znaku. Levé tlačítko kreslí, pravé maže.
Mask editorPři zapnuté masce funguje podobně jako u spritů. Ruční úpravy masky přepíší automaticky generovanou, dokud ji neobnovíš tlačítkem ↺ Auto.
Mask fit previewZobrazuje se, když je zapnutá maska. Ukazuje složený náhled aktivního znaku vykresleného přes šachovnicové pozadí technikou AND/OR masky — stejně, jak by znak vykreslila klasická ZX rutina. Šachovnice představuje libovolné pozadí. Slouží k ověření, že maska správně zakrývá pozadí kolem okrajů znaku.
Glyph previewZvětšený náhled aktivního znaku v aktuálním zoomu.
Mask previewZobrazuje bitmapovou masku aktivního znaku vedle náhledu znaku.
Preview / ExportVelký náhled, náhled masky, ASM preview a import/export BIN/ASM pro font i UDG.
Download ZX RoutinesVygeneruje hotový Z80 assembly soubor s rutinami DrawFontGlyph (a volitelně DrawFontGlyphMasked) přizpůsobenými aktuálním rozměrům fontu.
Použití ve Screen EditoruVe Screen Editoru vyber Font editor z rozbalovacího menu Font v panelu textového nástroje pro vykreslování textu aktuálně editovaným fontem.

5. Klávesy a myš

Zkratka / ovládáníAkce
Levé tlačítkoKreslení / umístění / potvrzení většiny akcí. U textového nástroje: klik na canvas vytvoří nový textový objekt s okamžitým focusem.
Pravé tlačítkoMazání v bitmapových editorech. V režimu Attr Only: zapíše atribut s prohozeným INK a PAPER — hodí se pro rychlé otočení barev buňky. V Next sprite módu: nastavuje průhledný index barvy.
Prostřední tlačítkoScreen Editor: přebírá viditelný atribut (klasický) nebo index barvy (Next) pod kurzorem. Next Sprite Editor: přebírá index barvy pod kurzorem.
Ctrl + ZUndo.
Ctrl + YRedo.
Ctrl + Shift + ZRedo.
Ctrl + C / V / XCopy / Paste / Cut výběru ve Screen Editoru.
Enter / EscPotvrzení / zrušení plovoucího výběru. V textovém editoru: Esc zavře editor.
Ctrl + EnterPotvrdí a zavře textový editor.
Delete / BackspaceSmaže aktivní textový objekt, pokud je aktivní nástroj Text a editor není otevřen.
+ / -Přiblížení / oddálení ve Screen Editoru.
W A S DPosun po přiblíženém canvasu ve Screen Editoru.

6. Doporučené workflow

Klasická celá obrazovka

  1. Začni ve Screen Editoru (klasický ZX Spectrum mód).
  2. Nastav INK, PAPER a Bright; pro rychlé otočení dvojice použij INK ⇄ PAPER.
  3. Zapni 8×8 grid pro kontrolu hranic atributů.
  4. Používej vrstvy pro pozadí, popředí a overlaye. Transparent PAPER používej ve vyšších vrstvách tam, kde má zůstat viditelné pozadí ze spodních vrstev.
  5. Attr Only používej pro jemné doladění atributů bez poškození bitmapy.
  6. Po dokončení exportuj přes Export SCR.

Workflow pro textové vrstvy

  1. Vyber nástroj Text v toolboxu.
  2. Klikni na canvas kde chceš umístit text — editor se okamžitě otevře s focusem, začni psát.
  3. Změň barvu kliknutím na INK swatch (klasický) nebo barvu v paletě (Next) při otevřeném editoru.
  4. Použij Bold nebo Italic v panelu pro stylování. Přepni Font na ZX ROM 8×8 pro autentický vzhled.
  5. Přetáhni ouško ⠿ pro přesunutí editoru, pokud překrývá tvou práci.
  6. Stiskni Ctrl+Enter pro zavření editoru.
  7. Klikni a táhni text na canvasu pro přemístění, nebo použij panel Vrstvy pro správu viditelnosti a pořadí.
  8. Až budeš spokojený, použij Merge Layers pro rasterizaci textu do pixelů před finálním exportem.

Workflow pro dithering

  1. Vyber nástroj Dither ze skupiny Paint & Color.
  2. Zvol vzor ditheringu z rozbalovacího menu Dither: Solid, Checker, Sparse nebo Radial.
  3. Nastav slider Dither len. pro ovládání vzdálenosti doznívání tahu.
  4. Maluj po canvasu — nástroj postupně prolíná INK a PAPER v rámci atributových omezení.

Workflow pro Layer Dither Export

Použij tehdy, když máš vrstvu s plnými nebo průhlednostmi ošetřenými oblastmi a chceš její barvy převést na atributový dithering ZX Spectra — vrstva se tak stane ditheringovým ink-only overlajem, který se přirozeně prolíná s vrstvami pod ní.

  1. V panelu Vrstvy klikni na u bitmapové vrstvy, kterou chceš ditherovat.
  2. Z kontextového menu vyber Dither export…
  3. V dialogu zvol metodu: Colour dithering (výchozí) pro barevnou práci, nebo B&W dithering pro monochromatický polotónový efekt.
  4. Nastav Dither strength — 70 % je dobrý výchozí bod. Nižší hodnoty dávají čistší, méně zašuměný výsledek; vyšší lépe aproximují střední tóny.
  5. Zvol matici: Bayer 4×4 je doporučena pro většinu práce. 2×2 dává hrubší, výraznější vzhled.
  6. Podle potřeby předuprav zdroj slidery Jas / Kontrast / Saturace, nebo klikni na Auto tune pro automatické nalezení dobrého výchozího nastavení.
  7. Zkontroluj panel Result — zobrazuje kompozit se všemi ostatními viditelnými vrstvami přesně tak, jak bude výsledek vypadat.
  8. Až jsi spokojený, klikni na Apply to layer. Ditheringový ink vzor se zapíše do vrstvy; paper pixely budou průhledné, takže spodní vrstvy budou prosvítat mezerami.
Tip pro vícevrstvý dithering: u kompozic s více vrstvami pracuj odspoda nahoru. Ponech dole vrstvu s plnými barvami jako základ, poté ditheruj každou overlay vrstvu samostatně. Protože aplikované ditheringové vrstvy používají ink-only průhlednost, barvy spodních vrstev budou prosvítat přes paper mezery a prolínat se s ditheringovým vzorem — výsledkem je přirozený ZX polotónový efekt napříč všemi vrstvami.

Next Layer 2 obrazovka

  1. Přepni Screen Editor do módu ZX Spectrum Next Layer 2.
  2. V paletě nastav Color A levým klikem a Color B pravým klikem. Prostřední klik na canvasu sebere barvu pod kurzorem.
  3. Kresli libovolně — žádný color clash, žádná atributová mřížka.
  4. Slidery Jas / Kontrast / Saturace pod paletou slouží pro dočasné doladění náhledu. Apply to layer použij jen tehdy, když chceš tyto změny napevno zapsat do aktivní vrstvy; jinak dej Reset.
  5. Pro načtení existující Next obrazovky použij Import NXI, nebo Import L2 pro raw pixelová data.
  6. Po dokončení exportuj přes Export NXI (pixely + paleta), Export NXI + NXP (compat) pro kompatibilní oddělený export, nebo Export L2 Raw / Export SL2 pro samotná pixelová data.
  7. Načtení v NextBASIC: LOAD "screen.nxi" LAYER 2.

Import obrázku a konverze Next → Classic s ditheringem

  1. V klasickém ZX módu klikni na Import Image a vyber JPG/PNG soubor — nebo přepni mód obrazovky z Next Layer 2 na Classic ZX Spectrum. Otevře se konverzní dialog.
  2. Dialog zobrazuje živý náhled: zdrojový obrázek vlevo (Source) a výsledek ZX konverze vpravo (Result). Oboje se automaticky aktualizuje při každé změně nastavení.
  3. Pokud je zdrojový obrázek větší než 256×192 px, zobrazí se na náhledu Source výběrový rámeček. Tažením bílého obdélníku vyber oblast, která se bude importovat. Velikost měň tažením rohových nebo hranových úchytů. Informační lišta pod náhledem ukazuje pozici a rozměr výběru ve zdrojových pixelech. Zaškrtni Lock 4∶3 pro zamknutí výběru na správný poměr stran ZX obrazovky.
  4. Zvol metodu: Přímý převod je rychlý a vhodný pro čisté ploché barvy; Dithering (Ordered Bayer) je lepší pro fotografie a složitou grafiku, kde záleží na přechodech.
  5. Při ditheringu nastav sílu (70–100 % je dobrý výchozí bod) a vyber matici: Bayer 4×4 je nejlepší pro obecné použití.
  6. Slidermi Jas / Kontrast / Saturace předuprav zdrojový obrázek. Zvýšení kontrastu před konverzí často zlepší výsledek tím, že ZX barvy jsou výraznější. Tlačítko Auto tune automaticky najde dobrý výchozí bod.
  7. Až náhled vypadá dobře, klikni Import. Konverze se aplikuje na canvas a jde vrátit pomocí Undo.
Tipy pro dithering: algoritmus vybírá nejlepší dvojici ink+paper pro každou 8×8 atributovou buňku pomocí perceptuální vzdálenosti barev (vážená pro lidské vnímání), poté aplikuje Bayer vzor uvnitř každé buňky. Zvýšení kontrastu nebo saturace +20–40 před konverzí často dává čistší atributové volby. Pokud výsledek vypadá příliš zašuměně, sniž sílu ditheringu nebo zkus Bayer 2×2 místo 4×4.
Tipy pro výřez: u fotek na výšku (portrait) zapni Lock 4∶3 — editor automaticky umístí centrovaný landscape výřez odpovídající poměru ZX obrazovky. Pak ho přetáhni na požadovanou oblast. Vybraná oblast se vždy při importu škáluje přesně na 256×192, bez ohledu na její původní pixel-rozměry.

Konverze Classic → Next

  1. Nakresli obrazovku v klasickém ZX Spectrum módu včetně textových vrstev.
  2. Použij Konverzi do Next — každý viditelný pixel se namapuje na nejbližší barvu v Next paletě. Barvy textových objektů jsou také automaticky konvertovány.
  3. Pokračuj v editaci v Next módu s plnou 256barevnou svobodou.
  4. Exportuj jako NXI.

Next sprite (single 16×16)

  1. Přepni se do Sprite Editoru, vyber mód ZX Spectrum Next 8bpp.
  2. Nastav velikost 16×16. Vyber barvy palety a průhledný index.
  3. Kresli sprite. Prostředním tlačítkem přebírej barvy.
  4. Přidávej framy pro animaci přes New Frame.
  5. Exportuj jako Next SPR — 256 bajtů per frame.

Next sprite (velký / víceblokový)

  1. Přepni se do Sprite Editoru, vyber mód ZX Spectrum Next 8bpp.
  2. Nastav šířku a výšku jako násobky 16 (např. 32×32). Badge zobrazí "2×2 = 4× 16×16 sub-spritu".
  3. Kresli na celém canvasu — editor interně řeší rozdělení na tile automaticky.
  4. Exportuj jako Next SPR (sekvenčně, zleva doprava, shora dolů).
  5. Alternativně použij ASM export s labely per tile pro sjasmplus nebo ASW.

Klasické sprity

  1. Přepni se do Sprite Editoru.
  2. Nastav šířku (násobek 8), výšku, zoom a režim (Monochrome nebo Color).
  3. Vytvářej framy přes New Frame.
  4. Nakresli framy a zkontroluj je přes Play.
  5. Masku použij tehdy, když ji cílová rutina vyžaduje explicitně.
  6. Exportuj jako BIN nebo ASM.

Typické workflow pro fonty

  1. Přepni se do Font Editoru.
  2. Vyber Standard 32..127 nebo UDG A..U.
  3. Naimportuj existující font, načti ZX 8×8 nebo kresli od nuly.
  4. Upravuj znaky jeden po druhém přes náhledovou mřížku.
  5. Podle potřeby používej posuny a rotace.
  6. Pro použití ve Screen Editoru přejdi na nástroj Text a vyber Font editor z rozbalovacího menu Font.
  7. Exportuj do BIN nebo ASM.