Garhoogin / NitroPaint

General Purpose DS Sprite, BG, and Texture Editor
BSD 2-Clause "Simplified" License
61 stars 5 forks source link

More support for NCBR files #13

Open Zilten opened 11 months ago

Zilten commented 11 months ago

Hi! I am writing to request more support for NCBR files. Currently, they import as if they were NCGR files, and when saving they get saved as NCGR files too. However, they differ from NCGR files in that they can have tiles of different sizes, which can cause issues when trying to view them in the editor, though I have noticed most editors struggle with this.

Another issue I have noticed is that you cannot choose between showing the image pattern Lineal or Horizonal, which I have noticed makes some sprites appear garbled, if they are not in the right configuration. If you need a visual demonstration of this, let me know.

Garhoogin commented 11 months ago

Hi! Glad that this program could be of use to you.

For the case of NCBR files opening as though they were NCGR files, NitroPaint was written originally to be more of a character editor than a bitmap one, so I decided later in to allow opening bitmap graphics but to just edit them in the character editor. Since NCBR files are just NCGR files containing bitmap data, this was the most sensible way I thought to do it, and most (as far as I know) editing features should be same enough.

I'm not sure what you mean exactly by different tile sizes, since the only tile size supported by the 2D graphics engine is 8x8. If you could elaborate on this that would be helpful.

I'm also not entirely sure by lineal and horizontal display; it would help if you could expand on this a bit as well perhaps.

Thanks for your time! Declan

Zilten commented 10 months ago

What I mean by tile sizes, is the size of the OEM cells and how some NCBR's use two differing widths for each cell. Size 16 OEM 0 Size 8 OEM 1 In the two images attached, we can see that the sprite has two associated widths which correspond with the widths the assigned OEM uses. If, somehow, the sprite was able to be split into its two differing widths, and respliced on export this would be a huge time save for editing sprites such as these.

As for Lineal and Horizontal display, these two images should convey what I mean the best,

TinkeLinealComparedtoNitroPaint TinkeHorizontalComparedtoNitroPaint In Tinke, there is the option to lay out each 8x8 horizontally or vertically. Notice how in Horizontal mode it matches up with how NitroPaint displays it, where as in Lineal mode it displays the sprite as intended (with the caveat that again the sprite is actually split into two widths, however the effect was not as prominent here)

I know this could be a big ask, but I feel it would be really useful.

I really appreciate your continued work on this program!