Skip to content

Releases: leissler/modular-sprite-editor

0.6

Choose a tag to compare

@leissler leissler released this 12 Oct 17:07

Downloads

Editor SGDK exporter
Windows (x64) ModularSpriteEditor-windows.zip export_sgdk-windows.zip
macOS (Apple Silicon) ModularSpriteEditor-macos.zip export_sgdk-macos.zip
Linux (x64, glibc 2.35+, e.g. Ubuntu 22.04) ModularSpriteEditor-linux.tar.gz export_sgdk-linux.tar.gz

export_sgdk bakes a project into the SGDK demo (examples/sgdk/sgdk_demo in the repo):
export_sgdk --project-json my.json --output-demo-dir path/to/sgdk_demo, then build the demo with SGDK.
See examples/sgdk/README.md.

The builds are not signed. Windows: "More info" › "Run anyway". macOS: right-click › Open the first time
(or xattr -dr com.apple.quarantine ModularSpriteEditor.app export_sgdk).

Every build was tested in CI: unit tests; the built editor drives every tab against the PoP_WW and Sonic examples
(--smoke-test); the built exporter writes exactly what the Python exporter writes. On Windows the SGDK demo ROMs
were built from the packaged files with the bundled SGDK.

What's new since 0.5

A mapping per timeline object (Timeline inspector ▸ Mapping)

A guard drawn from the hero's animations can now fight the hero in one scene.

  • Each object inherits its parent's mapping (top level: the preview mapping) or uses one of its own, or the original
    modules. The stage, the budget overlay and the SGDK export draw every object with its mapping.
  • New example scene in examples/sgdk/PoP_WW.json: Swordfight, the Prince against a guard with the "Normal" mapping
    (it replaces the old test scene).

Timeline choreography

  • An animation swapped in at a key now plays from that key (it used to count from the scene start).
  • Root motion follows the object: a mirrored fighter steps forward to the left instead of backwards.
  • The screen guide shows the screen the way the SGDK demo draws scenes (origin centred, three quarters down).
  • Swap labels in the timeline no longer run into each other.

SGDK runtime (examples/sgdk/sgdk_demo in the repo)

  • ms_draw_anim_player_mapped(player, mapping, x, y): draw characters with different mappings from one set of
    animations, the way AuroraGT games do. The demo's START+B shows two mappings side by side.

Animations: the preview shows the current step's events and lights them up when they fire.

Faster, smoother canvases: the checkerboard backdrop is drawn in one call instead of one per tile (about 35×
faster per repaint), and playback no longer floods the Windows event queue when a frame takes long to draw.

Fix: projects given by a relative path on the command line open again.

File format 4. Older files are upgraded when opened. Version 0.5 opens format 4 files with a warning and drops
the objects' mappings when it saves.

0.5

0.5

Choose a tag to compare

@leissler leissler released this 12 Oct 09:51

Downloads

Editor SGDK exporter
Windows (x64) ModularSpriteEditor-windows.zip export_sgdk-windows.zip
macOS (Apple Silicon) ModularSpriteEditor-macos.zip export_sgdk-macos.zip
Linux (x64, glibc 2.35+, e.g. Ubuntu 22.04) ModularSpriteEditor-linux.tar.gz export_sgdk-linux.tar.gz

export_sgdk bakes a project into the SGDK demo (examples/sgdk/sgdk_demo in the repo):
export_sgdk --project-json my.json --output-demo-dir path/to/sgdk_demo, then build the demo with SGDK.
See examples/sgdk/README.md.

The builds are not signed. Windows: "More info" › "Run anyway". macOS: right-click › Open the first time
(or xattr -dr com.apple.quarantine ModularSpriteEditor.app export_sgdk).

Every build was tested in CI: unit tests; the built editor drives every tab against the PoP_WW and Sonic examples
(--smoke-test), including a full Auto Modularize run whose frames must stay pixel-identical; the built exporter
writes exactly what the Python exporter writes. On Windows the SGDK demo ROMs were built from the packaged files with
the bundled SGDK.

What's new since 0.4

Auto Modularize, redesigned (Modules tab: Slice ▾ or the inspector button; Tools ▸ Auto Modularize Image)

Cuts an image's whole sprites into hardware-sized parts they share, on a new image, and rebuilds the frames from
them pixel for pixel.

  • Shared parts are found at any position, also mirrored horizontally or vertically. Every part is a tight Mega Drive
    hardware sprite (at most 32×32), and the result is judged by what the console pays: VRAM tiles and hardware sprites.
  • A preview window: the sprites with their parts, the selected sprite cut into its parts (shared parts in colour,
    hover shows where else a part is used) or the new parts sheet, and the cost now → after. One slider trades fewer
    tiles against fewer hardware sprites; it re-plans in the background (about a second for 200 sprites). Apply is one
    undo step.
  • Results on the examples (VRAM tiles / hardware sprites per frame, from whole sprites): Sonic 869 / 2.7 → 655 / 2.6,
    fewer tiles and sprites than its hand-cut version (658 / 2.9); Adventurer 192 → 88 / 1.3.
  • The old modulariser could lose pixels (38 of 207 Prince of Persia frames) and its Mega Drive mode used more VRAM
    than doing nothing; it is gone.

New example: examples/adventurer — a sheet of 15 whole sprites to try Auto Modularize on.

tools/automod_bench.py measures the modulariser on any project (exactness, tiles, hardware sprites).

0.4

0.4

Choose a tag to compare

@leissler leissler released this 11 Oct 20:23

Downloads

Editor SGDK exporter
Windows (x64) ModularSpriteEditor-windows.zip export_sgdk-windows.zip
macOS (Apple Silicon) ModularSpriteEditor-macos.zip export_sgdk-macos.zip
Linux (x64, glibc 2.35+, e.g. Ubuntu 22.04) ModularSpriteEditor-linux.tar.gz export_sgdk-linux.tar.gz

export_sgdk bakes a project into the SGDK demo (examples/sgdk/sgdk_demo in the repo):
export_sgdk --project-json my.json --output-demo-dir path/to/sgdk_demo, then build the demo with SGDK.
See examples/sgdk/README.md.

The builds are not signed. Windows: "More info" › "Run anyway". macOS: right-click › Open the first time
(or xattr -dr com.apple.quarantine ModularSpriteEditor.app export_sgdk).

Every build was tested in CI: unit tests, the built editor drives every tab against both example projects
(--smoke-test), and the built exporter writes exactly what the Python exporter writes. On Windows the SGDK demo
ROMs were built from the packaged files with the bundled SGDK.

What's new since 0.3

  • Editors redesigned from scratch: Modules, Frames, Animations, Timeline (scenes) and Mappings, with one
    layout (browser · canvas with view bar · inspector), project-wide undo/redo, drag and drop between them.
  • Animations: playback exactly like the Mega Drive runtime (loop, ping-pong, backwards, repeat count),
    step events, loop-from step, follow-up animation, onion skin, GIF export.
  • Timeline: dopesheet with layer tree, Auto-Key, easing, spline paths, source switches per key.
  • Mega Drive hardware budget overlay: hardware sprites, per-line limits and tiles as the exporter makes them.
  • SGDK runtime about 5× faster: tiles stay in VRAM and drawing only writes the sprite table (about 7 % of a
    frame per character, measured in BlastEm; was 39 % with dropped frames). Hitboxes and points with types and
    roles are exported, with a C API for game logic.
  • Project format v3 (older files upgrade on load), importer fixes for AuroraGT / RetroAnimator, Sonic example.

0.3

0.3

Choose a tag to compare

@github-actions github-actions released this 05 Mar 13:39

Full Changelog: 0.2...0.3

0.2

0.2

Choose a tag to compare

@github-actions github-actions released this 05 Mar 12:55