Shiru has pushed another version of the perhaps most essential tool for making nes graphics, NESST. You can get it here. As a side note, the nifty tool NES space checker has been updated too.
So what are the differences? There are actually a lot of features added; too many to go over here. Some very useful, some occasionally useful and one that is perplexing to me.
Perhaps of most importance, there are several new import options, especially for converting PC bitmaps (bmp:s) to nametables and character tables. For instance, you now have the option to offset the imput 0-8 pixels, which can save you a lot of time searching for the leanest tile count.. this bodes well for drawing freehand, rather than tile-for-tile, in a tool more suitable for that sort of work (think cutscenes and such).
Another new feature i’m foreseeing i’ll be using quite a bit is palette copy/paste. It basically allows you to move-copy all 4 palettes between slots A, B, C and D. Practically, this means that you can quickly make a temporary backup of your preferred palettes, edit one of the copies, and A/B test them quickly against your background or metasprite.
This is something i’d normally do from time to time, but now it’s even more convenient. Thanks, shiru!
There is also a ”reset” option which restores all palettes to some preset slot. I’m imagining these are user configurable, but the readme won’t say how. The ”factory” presets aren’t too useful; being monochromatic within each subpalette.
The readme file has gotten some extra attention too. For example, a feature that was always there was the right-click drag and drop-sorting of tiles, but now it is properly documented! To check the two readme versions side to side, go here:
The new readme is to the right.
The meta sprite editor has become more user friendly, and versatile. It provides you a basic instruction for selecting and moving individual sprite tiles, which i suppose is one of the thresholds for starting to use this side of the tool. There’s also a snap to grid option now, which could be useful for games that imply sprite positions on an x8 basis, such as SMB and many others did. There’s also a new offset tool that lets you move around the metasprite as a whole entity relative to its anchorpoint. You could achieve the same end result before, but it has been made more convenient in this version!
Among the the many feature updates, one stands out as pretty odd: ”generate 4×4 chunks”. The readme describes it as follows:
”Generates a set of 4×4 chunks that contain all possible color combinations.
A very specific function that may come handy for some effects or blocky
In practice, it just replaces your CHR file with a set pattern that would be best provided as a .chr file separate to the program. I know it said specific, but this feels way too specific! The patterns themselves actually seem to be based on 2×4 chunks (a bug, maybe?). I can’t think of any use for it, and it adds to the drop down menu clutter, which has started to get a little encumbering in total.
not quite sure how this new pattern generation could be useful
Nitpicks aside, there are several more minor additions to NESST, so be sure to go over the readme to find something that you think could be useful to your process!
Let’s end with a few quick NESST tricks. These aren’t new, but maybe not widely known either.
Nametable quick swaps
This isn’t new, but probably not widely known either.
Say you have several nametables using the same tiles and want to switch quickly between them. Maybe they’re cutscene keyframes or static levels or something.
In windows explorer, name them like so: myNametable_NNN.nam, where NNN is a three-digit ID.
In NESST, press ctrl + three digits on your numpad to call the nametable up directly.
Merge CHR tables
If you load a CHR file smaller than 4kB, it will start loading in from the position of your currently selected CHR tile. AFAIK, the size can’t be arbitrary – it must be at 1kB (quarter of a CHR table) or 2kB (half a CHR table). If you need finer control over cutting and merging binaries, i recommend looking at my ca65 example in this post.
Paint more fluidly.
Painting one tile at the time can be very resource efficient; which is something you need to be most of the time when drawing for the NES in the context of making an actual game. But sometimes you want to draw a bit more freeform-like.
To do that, click-drag on the tileset a square, empty portion of it. Ctrl+C. Then shift-click on the nametable, so one square is marked. Ctrl-V. Now an area corresponds to the marked tiles in your CHR table.
In the CHR editor, draw as usual and click on the sides of the upscaled tile to move to the next neighboring tile. You’ll see your result on the nametable directly, almost as if drawing free-hand.
That’s about all for now. If you’d like to support Shiru’s contributions to the nesdev scene, there’s a patreon where you can get news and details more frequently.