Skip to content

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).