Are there any SNES graphics converters beside Pcx2SNES?

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Are there any SNES graphics converters beside Pcx2SNES?
by on (#238512)
Sorry if this has been asked before; I don't remember. It's pretty well known Pcx2SNES is pretty bad (files are padded to be at least 1KB, palette conversion is broken, etc.) and was wondering if anyone knew of any alternative. I'm asking because the lack of a good converter for SNES graphics has also extended to the Irem M92 for me (as graphics are converted to the SNES format to edit in yychr). If no one is aware of anything better than Pcx2SNES, I at least now have the knowledge to create something better, which I can share on GitHub if needed.
Re: Are there any SNES graphics converters beside Pcx2SNES?
by on (#238514)
Well, there's this recent thread- viewtopic.php?t=18755 - where Optiroc's been working on something.
Re: Are there any SNES graphics converters beside Pcx2SNES?
by on (#238515)
Optiroc's superfamiconv is the best available converter. I'm not entirely happy with it, given the many bugs in its map and palette parts, but he's been fixing bugs lately, so things may be better now.

My workflow is thus palettes placed manually in the source via my pal2gen tool (not .incbin'd, as C constants - they're also easier to change that way), maps handled via my tilecoords tool, leaving just the tile to chr conversion for superfamiconv. Even there I have to be careful to convert the PNGs to 8-bit before passing them to superfamiconv (this bug may also be fixed now).
Re: Are there any SNES graphics converters beside Pcx2SNES?
by on (#238518)
I've been fixing bugs, but also added features with possible new bugs. :)

Please report any bugs (especially in map generation) on GitHub! And if so, *please* attach relevant data files to reproduce the bug. I got a bunch of bug reports last year for which the user refused to attach data files for whatever reason.

Now that I've been actively working on the tool again for a bit, I hope to be able to make it useful for more people than myself.
Re: Are there any SNES graphics converters beside Pcx2SNES?
by on (#238519)
You didn't specify any details really, so you get this:
Code:
1996-11-16  08:16            18,960 GFXCONV.EXE
1993-07-12  17:30            37,845 GIF2SNES.EXE
1993-11-24  13:05            47,630 GIF2SOPT.EXE

If you want something present-day (that uses PNG, not PCX), use Optiroc's SuperFamiconv.
Re: Are there any SNES graphics converters beside Pcx2SNES?
by on (#238520)
calima wrote:
Optiroc's superfamiconv is the best available converter. I'm not entirely happy with it, given the many bugs in its map and palette parts, but he's been fixing bugs lately, so things may be better now.

More specifically, I believe a lot of the bugs / unexpected behaviour was due to how I handled transparency and the 0th color. It should behave better now. (But I need to work on my very limited test suite, and make that part of the build process.)
Re: Are there any SNES graphics converters beside Pcx2SNES?
by on (#238525)
If you just need 2, 4, or 8bpp tiles, not tilemaps or multiple palettes in one image, my Super NES project template includes a suitable Python program called pilbmp2nes.py.

What is the graphics format of the Irem M92? I'd like to figure out if the format spec of pilbmp2nes.py is flexible enough to cover it.
Re: Are there any SNES graphics converters beside Pcx2SNES?
by on (#238533)
lidnariq wrote:
Well, there's this recent thread- https://forums.nesdev.com/viewtopic.php?t=18755 - where Optiroc's been working on something.

That's perfect! :)

calima wrote:
Optiroc's superfamiconv is the best available converter. I'm not entirely happy with it, given the many bugs in its map and palette parts, but he's been fixing bugs lately, so things may be better now.

I've created my own palette conversion tool and maps obviously won't work for the M92, so it's fine for me.

Optiroc wrote:
Now that I've been actively working on the tool again for a bit, I hope to be able to make it useful for more people than myself.

I've got lots of requests for making it more useful, but they're all only useful for a particular obscure arcade machine. :lol:

tepples wrote:
What is the graphics format of the Irem M92? I'd like to figure out if the format spec of pilbmp2nes.py is flexible enough to cover it.

Graphics are split by bitplane into 4 separate files. The only reason the SNES graphics format was chosen over anything else is so I could use the same tools for both the SNES and the M92. Something bizarre, is that while sprite tiles are 16x16, in yychr, they are arranged in the format

Code:
00 02
01 03

rather than

Code:
00 01
02 03

as you might expect. That's fine, because yychr can deal with that, but what is a major annoyance that I haven't been able to solve, is that the 16x16 sprite tiles themselves in (non 16x16 sized) sprites are arranged this way too, if that makes any sense. I have no idea how you'd deal with this other than by manually moving every 16x16 tile in a sprite in yychr. There doesn't appear to be any functionality in the program to automatically arrange tiles to some specific pattern either; it would be a godsend if you could apply a pattern internally to the area in the right window.

I don't remember who was generous enough to make the converter for SNES to M92 graphics and vice versa, but I don't have the source, and I've started to become more conscious of the fact that not everyone uses Windows, so I may go ahead and reprogram it and make the source available.
Re: Are there any SNES graphics converters beside Pcx2SNES?
by on (#238536)
If the tiles making up a sprite are arranged in what amounts to 8x16-pixel units, like NES/GB 8x16-pixel sprite tiles except in Super NES format instead of NES/GB format, then pilbmp2nes.py -H 16 --planes "0,1;2,3" in.png out.chr will convert a PNG to Super NES tiles in this order.
Re: Are there any SNES graphics converters beside Pcx2SNES?
by on (#238539)
That looks like Genesis ordering.