ImageMagitek Versions Save

ImageMagitek is a work-in-progress .NET library for retro videogame system graphics.

v0.992

2 years ago

Runtime Changes

TileShop now runs on .NET 6 and requires the .NET 6 x64 Desktop Runtime to be installed

Major Added Features

Reintroduced viewing and editing support for direct color images and arrangers Added codec support for Rgba24, Rgba32, N64 Rgba32, N64 Rgba16, and Bmp24 Re-enabled support for PSX 16 and 24bpp codecs Reimplemented "New Project From Existing File" menu option Added rotate and flip operations for Scattered Arrangers (square elements only, enable in appsettings.json via enableArrangerSymmetryTools)

UI Changes

Add hot key descriptions to tooltips Improved resource removal dialog appearance

Fixes

Fixed a bug where copying pixels from a subimage would always copy pixels offset from the upper left corner of the originating arranger Fixed Recent Projects listing when a new Project has been added Fixed zoom in editors when using ctrl+mouse wheel Fixed a bug where Recent Projects would list the old, missing project locations after renaming or moved Fixed UTF-16 XML header to UTF-8 Fixed a bug related to scattered arranger resizing Fixed a bug where changing a Palette's FileColorSource endian could be mismatched between read and write operations when toggling via GUI Fixed a regression bug where non-square elements could not be encoded Fixed a regression bug where non-square direct arrangers could not be saved Renamed Bgr12 to Bgr9

Other (GitHub repo only)

Added FF5 monster sprite sample to show programmatic use of ImageMagitek for command line and WPF apps Add plugin sample for Marmalade Boy's font

v0.991

2 years ago

Major Added Features

Add Flood Fill tool to PixelEditor Add Recent Projects menu option Resource nodes in Project Tree can now directly navigate to the resource's XML file in Windows Explorer Add Endian option for File Color Sources Add initial implementation for Bgr12 (Game Gear) and Bgr6 (Master System) color models Add Element Layouts for Sequential Arrangers

UI Changes

Toolbar improvements to all editors Improved toolbar button styling Sequential Arrangers now hide the Palettes ComboBox if there is only one global Palette Removed delete button from numeric input boxes

Fixes

Fixed the loading of ZeroIndexTransparent setting in Palette Editor Fixed a crash when adding a new Palette Fixed a bug where a Project could be opened multiple times simultaneously Fixed a bug where renaming a Resource did not trigger a resorting of items in the Project tree Fixed a crash when discarding a modified Pixel Editor Fixed a bug where Arranger shortcuts to select all Elements would not enable the edit button Fixed author attributions in global Palette JSON files

v0.990

2 years ago

Multiple File XML Projects

TileShop's XML resources are now contained within individual XML files rather than one XML file for an entire project. This was done to promote extensibility and upcoming import/export features. All old, single file projects must be recreated or manually transitioned to the new XML system. The existing project samples have been updated. "name" attribute removed from resources. Now the filename will be used to infer the resource name. The project name itself is no longer included in resource path keys.

Color Sources

Color Sources are a palette system feature that allows the user to specify palette colors coming from a file, a user-defined native color (RGBA), or a user-defined foreign color (Bgr15, NES, etc) based on the palette's color model. They can be mixed-and-matched within a single palette, so scenarios like non-contiguous palettes and directly specifying palette colors from an emulators are possible. This information is stored in the Palette's XML resource.

Minor Features

Added default codec associations for .gbc, .gba, .ncgr, .ncbr Palette FileOffsets are now in hexadecimal in TileShop's Palette Editor Improved error messages when XML parsing fails due to XSD schema validation errors Improve XML errors when a resource can't be loaded due to a missing referenced palette

Bug fixes

File extensions for default codecs in appsettings.json are now case insensitive Fix a bug regarding creating a ScatteredArranger from a SequentialArranger with single layout

TileShopCLI breaking changes and minor features

Transitioned to multiple file projects -f force overwrite flag for Export and ExportAll is now the more explicit --overwrite Added --log option to TileShopCLI to redirect logs Added -f and r options to Import and ImportAll to skip missing files and bad resource keys respectively

v0.981

3 years ago

Major Changes

TileShop is now bundled with TileShopCLI -- a command line tool to automate importing/exporting of TileShop project resources Upgraded to .NET 5 so users will need to upgrade their runtime. The Pixel Editor has been reimplemented as a document tab. Multiple can be opened simultaneously.

General Improvements

Added Zero Index Transparency flag to Add New Palette dialog. Reworked Palette Editor dialog to better show its source and zero index transparency. Added app icon to taskbar. Added menu option to Open Data File As New Project. This is experimental and may be removed when the project structure is redesigned.

Bug fixes

Fix a bug where Drag+Drop did not paste onto the correct elements when non-square pastes were pasted. Added more checks to restrict mouse operations to within the ScatteredArranger editor image bounds to fix an exception. Fixed a bug where resizing a ScatteredArranger would not update its ArrangerPixelSize.

v0.98

3 years ago

Major Features

Added support for XML pattern codecs which are based on Feidian Added support for viewing and editing contiguous, in-game NES Palettes

General Improvements

Importing an image now automatically updates the display of opened Scattered Arrangers Saving a Palette now automatically updates the display of opened Scattered Arrangers Removed focusability from most SequentialArranger toolbar items because they interfered with hotkeys Small redesign of "Add New Palette" dialog Add height/width labels to "Add a Scattered Arranger" dialog

Bug fixes

Fixed a crash when AssociatePalette was used without any project palette resources Fix resizing of arrangers for non-element-resizing codecs Fixed some bugs where flowcodecs did not properly respect mergepriority upon encoding elements (this affected the GBA codec and maybe some others) Fixed byte down hotkey for the + in Sequential Arrangers.

Breaking Changes

Renamed existing color models for palettes.

This will require existing project files containing custom palettes to be hand-edited. All sample projects have been updated. The following changes were made:

  • "RGBA32" -> "Rgba32"
  • "BGR15" -> "Bgr15"
  • "ABGR16" -> "Abgr16"

Redesigned XML Codec System

All existing codecs contained within TileShop have been updated to the new XML codec spec.

v0.97

3 years ago

User Experience Improvements

Selection and Element/Pixel Transfer System Redesign

Fully redesigned for a much better experience Element-aligned and pixel selections Pastes now show an image preview of the pending paste instead of an ambiguous purple overlay Pending Pastes are now applied with the Enter key or by creating a new selection Many related fixes to editing selections

Arrangers

Scrollbar for fast file browsing for Sequential Arrangers Automatically refreshes image when pixel data has changed via the Pixel Editor Undo/Redo added to ScatteredArrangers for the following operations: Delete Selection, Apply Paste, Apply Palette, Resize Added 8x8 Gridlines for Single Arrangers

Pixel Editor

Color Picker changes to the correct palette when a color is picked Pixel Editor can now make selections Element-aligned Gridlines for edited pixel selections Added Scrolling for large pixel images Show hovered pixel information

General

Tooltips are now shown when hovering disabled controls Open arrangers automatically when added to project Undo/Redo/Save hotkeys (Ctrl+Z, Ctrl+Y, Ctrl+S) Gridlines for Single Arrangers and edited pixel selections

Bug Fixes

Fixed an exception when dragging mouse to apply palettes to individual elements Fixes to keep project synchronized when adding resources Fix create new arranger from selection adding to the wrong project Fixed the menu close option for Pixel Editor Fixed a crash when edit selection triggered an edited pixel arranger to be saved/discarded Fixed Gridlines after resizing a Scattered Arranger Prevent drag+dropped element images across projects

Performance

Large performance enhancements when drawing to large arrangers in the Pixel Editor

Role Redesigns for Editors

Sequential Arrangers are now view-only and no longer accept pastes of any type. You can still edit the pixels in the Pixel Editor. This may be reworked in the future.

Scattered Arrangers still accepts element pastes but no longer accepts pixel pastes. This was done to eliminate conflicts when the Scattered Arranger Editor contained modified pixels, but the Pixel Editor saved conflicting pixel data. Additionally, the option to paste as pixels or as elements was confusing and poorly presented.

The Pixel Editor only accepts pixel pastes and is now the exclusive way to modify pixel data.

To summarize, Sequential Arranger - Views, Scattered Arranger - Arranges, Pixel Editor - Edits Pixels Data.

Breaking changes

Project files now require all arrangers to have a defaultpalette attribute

v0.96

3 years ago

Major Bug Fixes

Exceptions related to modifying Scattered Arrangers (resizing, removing elements, etc) have been fixed Fixed automatic loading/saving of GUI-related settings such as theme, main window size, etc. More layout settings will be saved in a future version.

UI Changes

Close All Projects is now enabled if you create a new project Increased width of TextBoxes within the Resize Scattered Arranger dialog

Features

Apply Palette can now apply the current palette to an entire selection by clicking the selection

v0.95

3 years ago

UI Changes

Extensive User Interface makeover with light/dark theme, new icons, and more modern styled controls Merged TitleBar and Menu to save vertical screen space Changed the Color Remapper dialog to have a horizontal layout instead of vertical Some menu options were removed or moved to account for multiple projects

Features

Added support for opening multiple, independent projects at once Improved project saving -- Project XML should always be in sync now without manual saving Detect and save/unload editors when they are no longer available due to the project being closed Added Element Inspector to Scattered Arranger Editor to inspect the source of the image and palette data used Associating a Scattered Arranger with a Palette can now be done with a button in the editor (previously only drag and drop from the Project Tree) Added ability to reset selected elements in Scattered Arranger Editor with the Delete key Added support for multiple global default Palettes (Add to _pal and edit appsettings.json. New global palettes coming in a later version) Added GBA 4bpp Codec Better performance while scrolling Sequential Arranger Editors (reduced memory allocations and copies) Top-level exception handler now shows a Message Box instead of exiting the application upon errors

Breaking changes

Some old project files may not load correctly due to the multiple global default Palettes changes

v0.93

4 years ago

Bug fix for importing single layout arrangers

v0.92

4 years ago

Features

Implemented undo/redo for the pixel editor. Added import image into existing arrangers Project files now use relative disk paths instead of absolute paths for DataFile Locations. New hotkey and context menu to select the entirety of an arranger New hotkey to edit selection Hotkeys for codec changing and expanding/shrinking arrangers were changed New context menu option within sequential arrangers to add selections as a new scattered arranger

Bug fixes

Schemas are no longer mislocated due to the project file being outside of the TileShop directory Disabled zero area selections and fixed related editing crash