Pmotion2svg makes pro motion not start anymore

Hi

When you install pmotion2svg in pro motion 8.0.10, the program doesn’t start anymore. If you remove it again, it starts again. Is there a bug?

Hi @pixel-art-girl ,

it is currently not compiled for 64 bit applications, so it only works for Pro Motion NG before 8.x. But PM should ignore invalid plugins. I tested this and it just shows a message box that this plugin file has been ignored.
What happens on your system?

-Jan

If I double click the shortcut, NOTHING happens. It just doesn’t start up anymore.
If I remove the DLL, it starts again as normal. (Windows 10)

Hmm, can’t duplicate :confused:
But anyway, it’s not yet compatible. Maybe @tajmone could create a 64Bit dll :slight_smile:

Yes, indeed when PMNG became available in 64-bit edition I hadn’t updated the plugin to 64-bit, so that’s the problem — although, I think that PM should gracefully handle the problem rather than crash or fail to start. Isn’t there a way to check that a DLL is of the correct architecture type @jan.cosmigo? IRC there are two ways to load DLLs in Windows, one of them is more flexible since it’s done at runtime and allows to handle similar errors.

As for the 64-bit version of the plugin, I simply didn’t create it since I wasn’t getting much feedback on it and simply assumed it wasn’t being used much or at all. I’ve recently experienced a major PC crash which forced me to reinstall Windows from scratch, so I’m still in the process of installing all the working tools and configuring them. It might take me some time to be up and running as before, but when I’ve managed to setup the PureBasic tools and find some free time I’ll look into (the free time part is going to be challenging one, though).

@pixel-art-girl, if you really need to access the plugin and can’t wait for me to setup the whole toolchain up again, here’s a quick fix for you.

You only need to remove (delete or comment out) the compiler IF block from lines 4 to 10 (included) in “definitions.pbi”:

These lines were originally added when PMNG was 32-bit only, since the PureBasic IDE defaults to compiling for 64-bit on 64-bit Windows, and these lines were added to ensure the correct compiler was being used (32-bit).

Once you have deleted those lines you should be able to compile the plugin to 64-bit from the PureBasic IDE (no need to do anything special, just open the main source file “pmotion2svg.pb” and compile it.

I’m not entirely sure about this, but I think that the plugin program might be small enough so that you are able to compile it even with the free demo edition of PureBasic, without having to buy a license. But I don’t remember exactly how many lines of code you can compile with the free edition and if comments count too. You could give it a try though… The free edition can be downloaded here:

I don’t know anything about code!

Actually, when I copy the file to the plugins folder, it shows the respective error message, like it should be:
image

Currently I have now idea, what’s going on with @pixel-art-girl 's system.

If the plugin was 64Bit, then I could check it and add it to the news. I could also include it with the program, if you would give permission.

I don’t know too hihi :smiley:
I would like to use it in inkscape so it would be great if it’s included.

You don’t need my permission, it’s MIT licensed so any use is allowed really.

For a 64-bit version of the plugin I might need some more time — I haven’t had a chance to install PMNG again on my machine after the crash (no graphic editing tools for that matter), and I still need to install and configure quite a few digital editing tools which I need for work, which include the “infamous scanner”. whose drivers gave me so many problems with PMNG in the past. But for anyone who has access to PureBasic, there isn’t much to be done for creating the 64-bit version, except remove the code that prevents it (it dates back to the 32-bit era of PM).

It’s been a while I haven’t played around with plugins, I do remember that one of the two types of PM plugings need to be registered in the dedicate “.ini” file first, else PM won’t even look for it, but I don’t remember which was.

As a quick fix you could also download an earlier version of PMNG 32-bit. The Beta versions didn’t even require installation, you could just unpack them somewhere and run them. With the 32-bit version the old plugins (32-bit) will all work, so you could use it just to export your images.

I’m not sure if you can install both version of PMNG, i.e. 32-bit and 64-bit, and if that’s even a good idea, but if the 64-bit version installs to “Program Files” instead of “Program Files (x86)” you probably can. But again, you can always just unpack it in a folder and launch it from there.

64-bit Plug-in Now Released

I took the night off (literally), installed the latest PMNG and all required tools, and updated the plugin repository so that it now builds both 32-bit and 64-bit versions of the plug-in DLL, which means that it can now be used with Pro Motion NG V8 as well as with older 32-bit versions of Pro Motion too.

@pixel-art-girl, you can now download the compiler version of the updated plugin (v1.1.1) at this link:

The Zip file now contains both the 64-bit version (pmotion2svg_x64.dll) along with the 32-bit version (pmotion2svg_x32.dll). Be sure to pick the x64.dll version and drop it in your “plugins” folder, and the delete the old version. I’ve tested it with both PMBG 64- and 32-bit, and it works fine.

@jan-cosmigo, please enable Discussions from the repository settings, which will allow us to engage in general discussion on PMNG related topics without cluttering Issues (which should be restricted to tracking practical tasks for the repository development).

The Discussions feature wasn’t available at the time the repository was created, and I forgot to enable it. Now I don’t have access to the Settings panel, so I have to ask you to enable it.

Also, please enable Travis CI, which makes my life a lot easier on GitHub and could have automated the entire release process, instead of having to manually create and upload the Zip files — not to mention that the repository lacks code validation since I transferred it from my account to your Cosmigo organization on GitHub. I’ve been asking you to enable Travis CI for almost four years now (see Issue #1), both on the repository as well as across many discussions in this forum.

The whole idea of having an official Cosmigo GitHub organization was to act as an umbrella for Cosmigo related projects, in order to avoid dilution of efforts and having individual projects scattered all over the Internet, not to degrade repositories functionality by loosing access to Continuous Integration services or features like community Discussions, and thus making harder for developers to ensure quality code.

Thanks.

1 Like

Thanks so much!!! And so fast :slight_smile:
Everything is working great :heart_eyes:

Thanks for updating to 64Bit. Will have a look at it.

I enabled “discussions”.
Travis CI requires a paid subscription, if I’m not mistaken.

I just did some tests. Works great for small sized graphics. I also tried to store an image with 384x272 screen. It took a couple of minutes to create the 1.4MB SVG file. Maybe some performance improvement could be done.
Something that would be awesome is support for animation.

I just saw it, thanks!

No, I don’t think so. I created my free account years ago, but never paid for it, I just have to accept that there are monthly limits and when I hit them Travis freezes until the next month, but that’s fine for small projects.

I have no idea why it took so long. The algorithm is fairly naive, but attempts to optimize it might be rather complex in SVG, for you’d have to consider which of the many combinations of rectangles to cover any area of color might lead to smaller text … I wouldn’t even know where to start tacking such a problem (probably falls under graphs theory, but that’s beyond my know how), and probably it would become much slower.

The plugin doesn’t really do much in term of workload: it just scans the image twice, once using the X axis, the other using the Y axis, and tracks pixel sequences in each “row” in terms of rectangles interrupted by open spaces, one pass for each palette color. At the end, it keeps the version which uses less text (less memory).

So there isn’t much in terms of file I/O, computations, etc. Mabye it’s the anti-virus? they often block DLLs and processes to check they are doing “safe stuff”, slowing down the PC (at least the first run, only once).

Running the generated SVGs through the SVG optimizer is even slower, which indicates that optimizing multi-color SVGs is rather challenging.

It would, but SVG animations are still not widely supported. Some browsers support them (but mostly only in part) but very few graphic tools do. I’m not even sure that Inkscape fully supports them at present.

Anything beyond the original SVG spec is at risk of not being displayed properly.

Will it be added to pro motion in the future? It would be great to have it included

I personally have no objections to this (it’s MIT Licensed, so it can be included in commercial projects, and even be sold for that matter). But it’s customary that plug-in and extra assets which don’t strictly belong to the application are rendered available for download (e.g. from the Cosmigo website or via links to third parties).

The plugins section still contains downloads for the historical third party plugins, but since they are 32-bit they work only with older versions.

I think that the rationale for not including plugins in the distribution is to avoid bloating both the distribution package and the application (plugins do consume resources at runtime, and having many plugins could slow down PMNG and add extra RAM consumption). The whole idea behind plugins is to implement extended features which, usually, don’t belong in the native app in the first place (e.g. they might not be used by most).

I’ve transferred all my PMNG plugins and assets from my personal GitHub account to Cosmigo’s organization account on GitHub, hoping this will help to somehow create a central point of reference, rather than having resources scattered all over the place. Also, it will allow Jan to appoint new project maintainers in the future, e.g. if I can’t (or won’t) be updating them anymore (since it’s now his account, he can appoint new collaborators at any time).

It would be nice to see more community efforts in that direction. It doesn’t have to be plugins, it could be any assets (pixel fonts, colour palettes, free/FOSS graphics assets found around the web that can be freely distributed and reused, e.g. sprites, tiles, and other game assets, and so on). It could even be tutorials, since GitHub is also great for storing and building documentation.

While the forum is the ideal place to share information, news and links, the risk is that any assets advertised here will eventually end up buried among the continuous flow of new posts and threads, whereas the Cosmigo GitHub account acts more like a long-tern umbrella for gathering projects and assets, always ensuring access to the latest version of any such assets. GitHub repositories also allow discussions which are related to the specific project.