Releases: RetroNick2020/raster-master
Release list
Raster Master v8.1 R137
New update brings Tiled tmx/tsx support, you can export single maps or all maps at once. sprite/tiles can be exported as sprite sheets or collections. Please choose format that is best for your game library/engine. Most expect the sprite/tile formats to be sprite sheets so try that first. Tiled can be used to test your exports, if it loads there it should be ok. You can also resave from Tiled just in case I missed something, but i doubt it, i am such a great programmer I don't make mistakes.
Font Sheet Export formats have been enhanced.
Some refactoring in the code to make future features easier to implement, nothing visible in the interface or performance.
Raster Master Plus available on itch.io if you would like to help out. Plus package includes a few bonus programs.
New ResEditor for Plus package. This is not a windows RES editor, just something to allow you to change some things from Raster Master RES Binary export format. Was using this for myself but thought maybe some users would appreciate. nothing big.
Raster Master v8.0 R136
Raster Master — Development Summary
Period covered: approximately 26 July – 9 August 2026
Files touched: rmcore · rmtools · rmthumb · rmmain · mapcore · mapeditor · rwmap · rwjson · rres · rmexportprops · animate
Sprite Editor
New features
Symmetry (mirror) drawing — Tools → Symmetry, with Off / Left-Right / Top-Bottom / Four Way. Implemented as a wrapper around PutPixel, so every tool gains it at once: pencil, line, all four shape tools, spray, text and flood fill. A red dashed axis guide shows the mirror line on the zoom canvas, positioned correctly for both odd and even sprite dimensions.
Eyedropper tool — Tools → Eyedropper (I). Left click picks into Colour 1, right click into Colour 2, and the palette highlight follows.
Rotation — Tools → Rotate: 90° clockwise, 90° counter-clockwise, 180°. Operates on the selection if one is active, otherwise the whole sprite. 90° rotations require a square region and refuse with an explanation otherwise; 180° works on any shape.
Multi-level undo / redo — 32 levels, per sprite, replacing the previous single-level swap. Ctrl+Z / Ctrl+Y, with a Redo item on the Edit menu. Snapshots are sized to the sprite rather than the full 256×256 buffer, which is what makes per-sprite history affordable. Resizing clears the history, with a warning first.
Hit boxes — a complete subsystem mirroring the map editor's:
- Panel below the sprite thumbnails with a live count, list (
# X Y X2 Y2 Size) and+/−/ Delete All / Show buttons - Overlay drawn in the same style as the map editor — hatched fill, cycling colours, index label, thicker border on the selected box
- Move tool for dragging boxes (Tools → Move Hit Box)
- Coordinates are pixels, where the map editor's are tiles
- View → Show Hit Boxes and View → Show Hit Box List
Keyboard shortcuts — Ctrl+N/O/S, Ctrl+Shift+O/S (projects), Ctrl+Z/Y, Ctrl+C/V, Ctrl+Shift+V, Ctrl+Del, Ctrl+D, Ctrl+E, Ctrl+M. Single-letter tool keys: P L R C E F S T I M G B, with Shift for the filled variants.
Export properties — Apply to All — tick Compiler, Image Type, Mask Type and/or Palette Type to push just those properties to every image.
Status bar — now shows the active tool, palette, draw method, dither pattern, brush state and symmetry mode.
Bug fixes
Project open ignored the saved zoom level. RefreshAfterProjectOpen called SetZoomSize(1) immediately after the image's GridArea had been restored, so every project opened at 1× regardless of how it was saved. The trackbar was never resynced either.
Symmetry corrupted the actual-size view. UpdateActualArea replays the pixel buffer through PutPixel, so with symmetry on it overwrote one half of the image with a mirror of the other. Symmetry now joins dither/gradient/brush in that routine's save-disable-restore block.
Hit boxes stored garbage coordinates. A with block in AddHitBox shadowed the x, y, x2, y2 parameters with the record fields of the same name, making each assignment a self-assignment.
Clone didn't copy hit boxes. AddImage copies the core (pixels, palette, grid), and hit boxes live in the props record.
Menu shortcuts fired across windows. Ctrl+D cloned a sprite while the map editor had focus. Menu shortcuts are application-global and are processed before any form's OnKeyDown, so an IsShortCut override on the sprite editor now declines unless it is the active form.
Map Editor
New features
Path lines — a full system for enemy patrol routes and flight paths:
- Plot with left click, snapping each segment to one of 8 directions; right click closes the loop,
Escends it open - Rubber-band preview, colour-cycled overlay, larger marker on the start waypoint
- Per-path name, closed flag, mode (once / loop / ping-pong), speed, plus separate
activeandvisibleflags - Per-waypoint delay and event id
- Paths tab with list and Delete / Vis / Active / Mode / Rename controls
- Top-level Paths menu with tool, finish-open, finish-closed, delete-all and overlay toggle
Layers moved into the tabbed panel — Layers is now the first tab alongside Hit Boxes and Paths, freeing the left column for tiles. The View → Show Layers Panel toggle is gone, and each tab caption shows a live count.
Move tool — drag a whole hit box or path and drop it. Whole objects only, deliberately: shifting every waypoint by the same amount keeps each segment on its 8-direction axis, where dragging a single waypoint would create an angle the exporter cannot represent.
Multi-level undo / redo — 16 levels per map, covering tiles across all layers plus hit boxes and paths. Ctrl+Z / Ctrl+Y.
Copy Current Layer — Ctrl+Shift+C, alongside the existing all-layers copy. A single-layer paste lands on the destination's current layer, so a layer can be copied from one layer onto another.
List view copy / paste — right-click popups on the Layers, Hit Boxes and Paths lists. Pasting into the same map offsets a hit box or path by one tile and names a layer "… Copy"; pasting into a different map keeps the position and names the layer "… Copy from Map 1".
Hit box buttons — + / − / Delete All on the Hit Boxes tab, wired to the existing menu actions.
Keyboard shortcuts — Ctrl+N/O/S/Z/Y/C/V/P/D, plus tool letters P L R C E F S M G and A for the path tool.
Status bar — expanded to four panels: position and tile index, selection, map/tile/zoom sizes, and tool / layer / counts / mode flags.
Maze solver is layer-aware — with more than one layer, a cell is blocked if any layer holds the wall tile, so the solution can be drawn onto its own empty layer. Single-layer maps behave exactly as before. Start and end positions are now validated against walls, and the solve is undoable.
Bug fixes
Clone only cloned one layer and lost hit boxes and paths entirely — it copied tiles through the current-layer accessors.
Copy / paste only carried one layer. Both sides now carry all layers, clamped to the destination's layer count.
The three panels went stale. Layers, hit boxes and paths lists were not rebuilt after Delete All, project load, or undo. Consolidated into RefreshMapPanels, and the status bar refresh moved into each individual list refresher so no path can miss it.
A saved selection was treated as a live one. The clip-status flag lives in the props record and is written to file, so a reopened project reported a selection the user never made — and Add Hit Box would use its stale coordinates. Selections are now cleared on load, and Add Hit Box requires the Select Area tool to actually be active.
Zoom and scroll were not restored per map. Both are saved in MapPropsRec, but the editor restored scroll from a form-level variable left over from the previous session.
Status bar never updated on tile size, map size, zoom, or layer/hit box/path add and delete.
Undo didn't refresh the panels even though an undo level carries layers, hit boxes and paths.
Export and File Formats
New
Path Data Statements — a new export across all 22 language targets, plus JSON. One flat integer array holds the path count, an offset table and each path's header and segments, so a program needs no parallel arrays. Segments are unit steps with a pixel count, making path following a signed add and a decrement per frame — no division and no fixed-point.
PATHTEST.BAS — a QBasic/QB64 reference program that walks the exported data, handling all three modes, per-waypoint delays and ping-pong.
Sprite hit box export — RES binary (new resource type), RES text include, single-sprite include, JSON and JSON RES.
Map paths in RES — text include and binary, which previously had no path support at all.
Layered map export — the export properties dropdown gained a Layered option alongside Simple.
Clipboard export — path and hit box exports honour the sprite editor's export-to-clipboard setting.
Fixes
RES map size was wrong twice over. It ignored the layer count, and used sizeof(integer) where the writer emits smallint — so even a single-layer ma...
Raster Master v7.2 R135
Sprite Animation improvements. The FPS and Speed controls are independent now, more control of how
your sprite/tile is animated.
Palette Editor now has CGA/Mono Palettes. This is a VGA Palette editor adapted to be used in these modes.
When exporting Palette commands the current code will generate Palette commands that are not valid in CGA/Mono
screen modes when using gwbasic/qbasic and other supported languages. Will be offering VGA DAC OUT commands
that can work in any VGA supported mode. This allows Mono/CGA/EGA screens to change Palette. This is
not some hack, this is the just the way VGA cards work. If you try to run strictly on original Mono/CGA/EGA
adapters this method will not work.
Brush Open/Save options.
New Materials Menu. All options will impact current sprite data. Use Select Tool to mark area to
apply any of the materials. You can do rock, grass, dirt, crates, floors, etc
New Palette Settings. Set Palette to Default, Sort Colors. We now also switch between Palette and
Raster Master will try to preserve your sprite data to work with the new palette. This does not work
well when going down to Mono/CGA palettes from 256 color palettes. Does work well if you are in 256 color
palette and are only using a small number of colors. You can easily switch to 16 color palette without
much impact.
New Brush Draw Method. That's right, now you can select the brush as a draw method, which allows using
with the standard tools and paint as well.
Raster Master v7.1 R134
Release 7.1 brings dither patterns to main toolbar. Dither/Gradient selection has been
simplified with Draw method selection in main toolbar. Select Color as always to draw using color
1 and color 2. Use dither and select a dither pattern + color 1 + color 2 + draw tool. The gradient
tool uses color ramp/spread from color 1 to color 2. Works like dither but only with colors. You can
select how color ramp/spread is used (horiz/vert/circular). The paint tool has been updated to
support dither and gradient options. A draw preview is also in the main tool area now, this shows the
color/dither/gradient pattern
Raster Master v7.0 R133
Huge release! Raster Master 7, we move up to a major version number
- Brush stamp mode and brush effects dialog (scaling, rotating, shearing, flip, gradient, color operations)
These features can be accessed from Brush menu and new "B" and "Bfx" buttons - Many of the draw tools now have gradient and dithering support under Tools menu
- When using Text Tool you can now copy the preview text bitmap to clipboard. Just use copy from edit menu
while using Text tool.
Please star this application to help promote it. If you use this app to create a game or pixel art assets
please send me a link or an email (nickshardware2020@gmail.com), always interested to see what everyone
is creating.
Many of these features were first implemented in RetroDP (my Deluxe Paint inspired paint program)
RetroDP, VecDraw and RetroConvert are available on my itch.io, these apps are not open source but
completely FREE. Additional bonus apps if you make a small donation.
Raster Master v6.5 R132
-made some changes to Sprite Animation - slight improvement, still not what i want. I need to think about this a little more
-Font Sheet Export Improvements - More language exports/JSON - shadow color, padding options now
-Map Editor gets Maze generation - create random mazes with solution by selecting wall tile, path tile, and
path solution tile. The maze generator is just a quick way of building a maze, you can make modifications to
make maze better
-Improved Zoom in/out in Sprite Sheet Import/Export
Raster Master v6.4 R131
Its raining and I'm stuck inside. Here's a new release!
-Sprite Animator gets a status bar with some more useful info. I still need to fix the speed gauge/tracker
-When Importing sprites in transparent mode, new sprites imported in sprite were blank in listview- fixed now!
-Sprite Importer gets massive speeds improvements, almost instant now. Was taking up long time on bigger images to hash list (more like ordered list)
-Sprite Imported gets a palette preview. Now you see how the palette looks before importing anything
-Sprite Clipping without snap grid is now centered
-Sprite Imported Status bar
Raster Master v6.3 R130
JSON support all around! Save/Open Project in JSON now!
All Export options Now Include JSON format. Palette/Sprites/Maps/Animations
When Exporting sprites in JSON you can set the format from Index color based to, RGB, and RGBA. This allows for easy integration into gaming libraries like raylib. So with the combination of raylib+json you can use sprites/maps/animations in as many platforms as raylib+json are supported. All that is needed is a simple loader!
Zoom improved in Sprite/Map editor. Can use scroll wheel now and zoom in/out should be more fluid
Raster Master v6.2 R129
Fixed Transparency Mode issues. In some instances the some listview/map items were not being rendered correctly.
Fixed Some Palette issues. When attempting to load incompatible palette than selected error would cause next valid palette not to load.
Added Full Compiler/Interpreter source generating for Map Editor.
I have added some claude generated documentation, this does not cover full usage. See Examples folder for actual code. There are many options in Raster Master.
If you would like to contribute $$$ to this project I have began hosting on itch.io. For those who make a small donation I have added a few more programs to make your retro experience easier. Otherwise everything else stays the same.
https://retronick2020.itch.io/
I will only be uploading one file now. Just RM.zip - this has all exe/docs/examples
Raster Master v6.1 R128
Its been a while! Transparent Color support! From Sprite/Map/Animation View Menu - you can enable Transparent support for Color/index 0. This is as good we are going to get in an index based sprite editor. Anything drawn with color 0 (R0 G0 B0) will be displayed as transparent. if you change color 0 to anything else (R1 G0 B0), even though it might look black its not considered. its not just color 0, its actually any index with complete black value. So what if I want to show black and have transparent. just use another of the other color indexes with a near to black value as listed previously.
Main Sprite editor has improved Palette support. From the palette menu you can load a few more palette formats. And now we use JASC format for copying and pasting from Windows clipboard.
Sprite Animation - Redesigned with better drag and drop support, now a yellow outline shows the current sprite you have selected, and when you drag to move its order you will see a green indicator where it will be inserted. This is much improved from previous version. Now you know exactly where your sprite is going to be moved.
Main Sprite editor has improved Palette support. From the palette menu you can load a few more palette formats. And now we use JASC format for copying and pasting from Windows clipboard.
Probably many minor things have been fixed! Enjoy and don't forget to give stars!