• jan@cosmigo.com

PM Plugins and Pixel Art Formats


Hi everyone,

I’d like to start a thread on custom plugins extending PM NG support for file formats, and to gather some cool ideas for DDE plugins too.

PM Assets Project

I’d like to start the thread by announcing that I’ve recently published on GitHub a project dedicated to Pro Motion assets:

It currently contains only the plugins documentation, but eventually will grow in contents. The project is open source (my gratitude to Jan for granting reusage permission of some original Cosmigo material) and everyone is welcome to participate and contribute to it.

Plugin Templates

Lately I’ve been working on a PureBasic port of the sample I/O plugin codebase, the goal being to provide a code skeleton to quickly start building plugins from. The template is basically ready, but still needs to be tested with an actual file format (i.e., have so far implemented all the basic DLL functions to comunicate with PM).

The reason I’ve chosen PureBasic is because it simplifies most of the “tedious” parts (especially memory management) and it ships with many native libraries that are very handy for this type of task, both for file I/O DLL plugins as well as for DDE plugins.

I’m planning to release as open source the various plugins and code templates, in the hope that they might be of use to others too. Being something I’m working on in spare time, it probably won’t happen very soon for spare time is in always in short supply, but eventually I shall make it (unless unforeseen technical obstacles show up).

Most Amiga users will already know about PureBasic, since it was born on the Amiga and today the Amiga version of PureBasic is free and open source (not so the current version, which is commercial). The Amiga version can be downloaded here:

So, now I’m now looking to go ahead and create some actual file I/O plugins to save and load some image formats unsupported by PM NG.

Enquiry on Pixel Art Formats

I’m really interested to get to know better retro pixel file formats, and I’m hoping to create some reusable code (or find libraries that I could bind to) that would allow me to load, manipulate and store pixel art graphis, so that I could then use them in my own apps as well. Creating PMNG plugins is a good way to start this, and it would also allow me to use PM to work on the actual images.

Right now, I’m looking into the Electronic Arts IFF format, which is really interesting and covers a variety of subformats too — but this format is going to take some time to implement, for the only bindable C library I’ve found is incompatible with the language I’m planning to use. Also, it looks like there is a wide variety of IFF extension formats that were created in the course of time, which would need to be addressed too — I’d like to learn more about these other formats from other users!

I wanted ask Pro Motion users for some insight on the various Pixel Art file formats that are being used in the wild, in particular those unsupported by PMNG (or partially supported). I’ve been away from the retro scene too long to remember or know about all the cool formats that are still in use, but I’d really love to get to know them better.

Sometimes I come across some interesting Pixel Art formats which I’ve never heard about — for example nanim and PAML (Pixel Art Markup Language). Some of these formats have interesting potentials in various fields.

The fact that PM can be extended by custom plugins is really cool, for it enables users to add support for any file format they’d like to work with — i.e. formats which wouldn’t really make sense to be natively supported by Pro Motion, but which can be handled optionally via plugins. So … sky’s the limit!

As a side note, I’d like to mention that I’ve been tinkering for quite a while with the idea of developing an app to create and share retro-style composite images (Pixel Art and Ascii/ANSI art alike), this being one of the main reasons I want to learn more all the various pixel art formats and being able to support them in PM via plugins if needed.

Some formats (e.g. PAML) would even allow converting pixel art images to ANSI Art — this type of cross-art opeartions being something I’m quite curious to explore.

Any contributions to the discussion regarding PM plugins, file formats (well known and less know alike) and ideas in that direction are much apreciated.