Are there any SNES graphics converters beside Pcx2SNES?

Discussion of hardware and software development for Super NES and Super Famicom.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
Post Reply
User avatar
Drew Sebastino
Formerly Espozo
Posts: 3503
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Are there any SNES graphics converters beside Pcx2SNES?

Post by Drew Sebastino » Tue May 07, 2019 11:39 pm

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.

lidnariq
Posts: 8791
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: Are there any SNES graphics converters beside Pcx2SNES?

Post by lidnariq » Wed May 08, 2019 12:34 am

Well, there's this recent thread- https://forums.nesdev.com/viewtopic.php?t=18755 - where Optiroc's been working on something.

calima
Posts: 1021
Joined: Tue Oct 06, 2015 10:16 am

Re: Are there any SNES graphics converters beside Pcx2SNES?

Post by calima » Wed May 08, 2019 12:42 am

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

Optiroc
Posts: 129
Joined: Thu Feb 07, 2013 1:15 am
Location: Sweden

Re: Are there any SNES graphics converters beside Pcx2SNES?

Post by Optiroc » Wed May 08, 2019 1:24 am

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.

User avatar
koitsu
Posts: 4216
Joined: Sun Sep 19, 2004 9:28 pm
Location: A world gone mad

Re: Are there any SNES graphics converters beside Pcx2SNES?

Post by koitsu » Wed May 08, 2019 1:26 am

You didn't specify any details really, so you get this:

Code: Select all

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.

Optiroc
Posts: 129
Joined: Thu Feb 07, 2013 1:15 am
Location: Sweden

Re: Are there any SNES graphics converters beside Pcx2SNES?

Post by Optiroc » Wed May 08, 2019 1:30 am

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

tepples
Posts: 21755
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Are there any SNES graphics converters beside Pcx2SNES?

Post by tepples » Wed May 08, 2019 5:35 am

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.

User avatar
Drew Sebastino
Formerly Espozo
Posts: 3503
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: Are there any SNES graphics converters beside Pcx2SNES?

Post by Drew Sebastino » Wed May 08, 2019 10:09 am

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: Select all

00 02
01 03
rather than

Code: Select all

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.

tepples
Posts: 21755
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Are there any SNES graphics converters beside Pcx2SNES?

Post by tepples » Wed May 08, 2019 10:31 am

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.

calima
Posts: 1021
Joined: Tue Oct 06, 2015 10:16 am

Re: Are there any SNES graphics converters beside Pcx2SNES?

Post by calima » Wed May 08, 2019 11:16 am

That looks like Genesis ordering.

Post Reply