Releases: counter185/voidsprite
Releases · counter185/voidsprite
alpha30.05.2026
Full changelog
New features
- Rotate image actions
- Selection operations are now part of the undo history
- Redesigned Tab-key navigation
- GameMaker YYTEX can now be exported
Enhancements
- Filters can now be bound as keybinds
New sessionaction in File menu- Keybinds for: deselect, flip layer, flip image, switch to first/last workspace, focus on navbar, pan canvas, rotate image, new session
- Isolated section now renders in accent color
- Pasting an image now lets you choose the action (add reference, paste into layer, open in new session)
- Isolate rect now shows the selection size
- Canvas resize can now anchor the image to a selected corner
- GIF export now has an option to loop the animation
- Rect move tool now always erases the source area, regardless of the current blend mode
- VTF export can now generate a basic VMT material to go along with the texture
- Isolate rect in eraser mode now subtracts from selection
- Option to reset eraser mode to off when switching tools
- Mac now supports Network Canvas and AVIF
Fixes
- Replace color now respects opacity
- Fixed issues with deleting UTF8 characters in textboxes
- Keybinds should now ignore key repeat events
- Fixed crash when network canvas was closed in a second window
Internal
- Updated SDL and SDL_Image on all platforms
- Mac now uses CMake
- Meson has been removed
- Cleaned up really old TabbedView code
- Added UIAnchorSelect
- Launchpad's new image panel is now a separate class (reused in PopupNewImage)
alpha30.04.2026
Full changelog
New features
- Exporters can now have export options
- Brush blend modes are now a dropdown menu, and there's now 4 of them (
Replace,Overlay,Add,Multiply) - Measure tool now keeps the highlighted area after releasing Mouse Left, and Mouse Right opens a context menu with operations for the selected region (
Place guidelines,Crop to this area) - New format: GameMaker
.yytex(import-only - Editor can now have a configurable checkerboard background
Enhancements
- Split sessions now save more editor options
- When using touch, buttons can now be held to simulate right click
- Split sessions now show more detailed saving/loading progress
- Layers and frames panels are now resizable
- Reference panels are now resizable
- AVI can now export in Motion JPEG format
- When choosing an export format, the file's current format is highlighted and moved to top of the list
- Anymap PGM can now export in binary format
- Anymap PPM can now export in binary format
- Random seed is now kept from the preview while applying a filter
- Brush primary and secondary actions can now be configured as keybinds
- Tile loop preview can now be configured as a keybind
- Exporting indexed/RGB now uses the new format picker
- Noto Sans JP font was removed, the primary app font (Mplus Rounded) is now used instead
- Number input fields now clear when focused and their value is 0
- Added new inline math operations to number input fields (
#: immediate decimal value,&: bitwise AND) - Shift+Double click with Isolate Rect now selects all occurrences of color in layer
- PNG exporter lets you choose the compression level
- AVIF exporter lets you choose the quality level
- Comments can now be multiline
- Layer transform UI now lets you set the preview opacity
- The B color in the
Mixtab in the color picker can now be locked - Reference images can now be saved to .voidsn
Fixes
- Frameless window now works properly at 2x+ scaling
- Window will no longer do resize hittests when maximized
- Button VFX no longer plays when starting the editor
- Fixed mobile textfield overlay rendering below some other UI elements
- Fixed crash when using JPEG glitch filter
- Fixed file picker file list not updating after doing an operation (renaming, creating directory, etc.)
- Android now uses Java File API for renaming and creating directories (prevents broken shadowfolders that get created when using std::filesystem)
- Fixed mouse left state carrying over after longer operations
Internal
- Added ParameterStore to hopefully make parameter systems universal, currently used for filters and export parameters, ideally brush parameters will be moved to this system too
- Added libbzip2
alpha10.04.2026
This release is primarily a hotfix for the Windows version for a crash that would happen after choosing a file save format.
Full changelog
New features
- Frameless window mode
- PNG can now be used as a color palette
Enhancements
- IPC requests now raise the main window
Fixes
- Added the
SDL_HINT_VIDEO_WAYLAND_SCALE_TO_DISPLAYhint which fixes pixel scaling on Wayland - Fixed a crash that happened when saving a file with the format picker when voidsprite is built with
/O2on MSVC
alpha31.03.2026
Full changelog
New features
- New filter: blend towards color
- Layers can now be tagged with a color
- Proper single-instance mode on Windows and Linux, now also supports loading files
- New render filter: configurable pixel grid
- New templates menu, voidsn files can now have configurable template name/description metadata that appears here
- Pattern stacking: you can now shift-click patterns to combine them either additively or subtractively
Enhancements
- Extra session data can now be saved to GIF files
- Active color index is now highlighted in indexed editors
- Export formats can now be marked as favourite, appearing on top of the list
- Color palettes now support removing and reordering colors
- Minecraft skin preview is now usable with touch
- Reference images can now be colorpicked with right click
- Most image export operations are now non-blocking and show progress
- Right clicking with measure tool now places guidelines around the selected area
- Panels will now anchor to their corner of the screen when resizing the window
- Added an iteration count parameter to the JPEG Glitch filter
- OpenRaster exporter now saves a proper thumbnail
- Built-in indexed mode palettes and colorlists have been merged into one palette list
- The initial palette for indexed mode can now be chosen on the Launchpad
- Saving a palette now lets you pick its format
- New screen switching animation
- Reduced star count on Launchpad (every 35 stars get merged into a larger star)
- Slight launchpad restyle
Fixes
- Fix editor hide UI keybind causing blurred panel backgrounds to still appear
- Fixed files not being loaded when
--no-launchpadwas specified - Scrollbars should no longer react to mouse input when invisible
Internal
- A lot of old code cleanup...
- VFX now renders below notifications, tooltips and memory tracker info
alpha01.03.2026
Full changelog
New features
- New popup for choosing the export format: allows filtering and shows a description of each format. In the future it will also list the features that each format supports
- New format: APNG (import/export)
- New format: Resprite session (import only, highly experimental)
- New format: JPixel session (import only)
- New format: ASTC texture (import only)
- New filter: JPEG glitch
- Browser version now saves settings to local storage
- Android now has a self-update button that downloads the latest version from nightly.link and installs it
- Filter options can now be saved to preset files
- New render filter: TodePond's RedGreenBluegene, a variation of Huegene without herbivores
- Added session-local palettes (color list that is specific to the current editor session and gets saved to voidsn)
Enhancements
- Option to add blur behind UI panels
- Option to display the current system time near the workspace buttons
- Image read operations no longer block the main thread, some importers will also show detailed progress
- Pathfind line tool now reports progress
- The editor can now be zoomed in/out with a touch gesture
- The Rect Fill tool can now be double clicked to fill the whole tile
- The color of the tile grid can now be changed
- JPEG XL now supports exporting and importing animation
- AVIF is now manually handled and now supports exporting and importing animation. As a result of this the AVIF compression filter gives different results
- Added a button to use the system Zenity color picker on Linux
- Android can now send an image from the editor using system Share
Fixes
- Windows shell extension can now read VOIDSNv7 files
- Export scaled popup now downloads the exported file in browser build
- Frames no longer flicker when playing an animation for the first time
- Loading an invalid PNG no longer crashes
Internal
- Export scaled popup code cleanup
- Many properties of the editor have been moved to a new easily copiable
SessionEditorPrefsclass with its own functions for serialization/deserialization, this will make saving them more consistent across formats - Editor color picker code was finally cleaned up and collapsing it works properly now
- Slightly changed the way settings are saved
- Split Android CI into separate actions for every CPU architecture (speeds up build from 30 minutes to ~10)
- Removed dependency to vendored liblcf on cmake builds
- libtga code removed (wasn't used anyway)
- CMake build no longer needs a script to pull all the dependencies, git submodules are now used instead (Android needs a specific SDL build and is not affected by this)
- Flatpak now builds using CMake instead of Meson
- Added a make-release action that posts a new release and creates a tag
Release test-release
Release generated by Actions
alpha31.01.2026
Full changelog
New features
- 3-point curve tool
- Brush opacity setting in RGB mode
- New format: GIF (import/export)
- New format: AVI (export only, RGBA codec)
- Font smoothing setting
Transform current layeractionAdd reference from clipboardaction- Linux x64 AppImage builds now support Discord Rich Presence
- New format: Godot Compressed texture CTEX (import only)
Enhancements
- Windows shell extension now supports .voidsn v7
- Hue wheel now captures mouse movement out of bounds
- Added a broken graphics warning when setting the renderer to Vulkan
- Frame tracing can now use configurable color modifiers
- Tool properties are now saved to .voidsn files
- Copying to clipboard now affects only the selected region
- Quick convert now downloads the file in the web version
- Reopening voidsprite after a crash now prompts to open recovered sessions
- Frame picker now shows the minimum displayable frame time
- Opening an URL now works on Linux
- Undo timeline now shows actions on hover
- Scrollbars are now draggable
- Numeric text fields can now do inline math operations
- The patterns panel now has a background
- Transform now has a position field
- Guidelines can now be toggled between 3 modes (show in active color, show in UI color, hide)
- In-editor spritesheet preview is now collapsible
- Spritesheet timeline now has a size limit
Open file locationaction in last files context menu- Frame picker now shows the current time position when playing
Fixes
- Windows Ink tablet support should be more reliable now
- Other crash fixes
Internal
- Finally cleaned up global variables from io_png.cpp (setup for non-blocking file IO which will come at some point)
- Updated readme.md images
- Added
CONFIGURE_DEPENDSto globs in cmake files so adding a new file is significantly less annoying - Rewrote pen handling to also count as mouse clicks instead of letting SDL handle that
alpha03.01.2026
With this release, Linux x64 AppImage and Emscripten builds are now available. The browser port can be launched on the itch.io page.
Full changelog
New features
- Android: Added a DocumentsProvider letting you manage application data from the built-in file manager
- Automatic viewport scale is no longer exclusive to mobile, it's now a setting available on all platforms
- New filter: outline based on edge detection
- AppImage x64 Linux builds are now being made
- Linux: added a thumbnailer
- Windows: added a shell extension that shows thumbnails for voidsn files
- Initial work on an XNB importer. Compressed files not yet supported.
- Emscripten web builds are now being made
- Frame-based animation tools letting you create animations
- Added an importer for Flipnote Studio PPM files
Enhancements
- Gamepad buttons can now be bound to keybinds in settings
- Added a context menu to layers
- SDL_Image importer no longer converts indexed images to RGB
- Ctrl+Backspace to erase word in text fields
- Resize popups now automatically focus on the first textbox
- Added a setting to make error notifications longer
- Notifications can now be manually closed
- Keybinds tab now has a search field
- Keybinds settings now show a notification when another keybind was replaced
- The Visual tab can now use a hue wheel instead of a slider
- Added thickness and
Roundoptions to the pixel brush, rect tool and others - Renamed
Square Pixelbrush toPixel - Removed the
Round Pixelbrush, its functionality was merged into thePixelbrush'sRoundoption LineandBezier Linetools now have anIncreasing sizeoption, where the size gradually increases from start point to end point- Added a SIGTERM signal handler for Linux/Mac
- Launchpad now lets you choose the starting color for new RGB sessions (by default it is still transparent)
- More UI elements are configurable with visual configurations
- Preview panel is now resizable and shows a border around image dimensions
- Palettes can now be installed with drag-and-drop
- Color picker now has a tab that allows blending two colors together
Toggle fullscreenoption on Launchpad navbar- Closing with unsaved changes popup now has an option to save the current session
- Editor now shows position inside tile
- Split sessions now show the file name
- Aseprite and Pixel Studio importers now import all animation frames
- New voidsnv7 format that allows for animation
- GoldSrc SPR importer now imports all animation frames
Fixes
- Fixed the gamepad handler broken after the switch to SDL3
- Fixed system font detection on Linux
- Fixed crash caused by context menu
- Fixed color palette not loading in voidsnv6 files
- Other crashfixes
- Fixed most texture issues on direct3d12 and direct3d11 backends
- Fixed Launchpad last files list not being scrollable with touch
- Fixed filter preview only applying to the blue color channel
Internal
- Platform identification is now done once with the
VSP_PLATFORMdefine - Cleaned up settings code for saving on/off options
- Updated SDL on Windows and Android
- Memory tracker now tracks the number of drawables created
- Completely rewritten the undo stack
- About tab now shows the version of the compiler that was used
- Split the main loop into a separate
g_mainLoopfunction (needed for emscripten)
Animation frames preview
Preview build of the animation frames branch
AppImage test
appimage-test implement fallback fonts on linux