NEXXT - a newer "NES Screen Tool"

A place for your artistic side. Discuss techniques and tools for pixel art on the NES, GBC, or similar platforms.

Moderator: Moderators

sdm
Posts: 412
Joined: Tue Apr 11, 2006 4:08 am
Location: Poland

Re: NEXXT - a newer "NES Screen Tool"

Post by sdm »

FrankenGraphics wrote: Fri Oct 21, 2022 11:39 am
Menu > Canvas > Set canvas size (Ctrl+Alt+N) lets you change the size to 32x24 (256x192).

When you save the canvas (ctrl+alt+s), it will be stored as .map, which signifies a nonstanstard size. To use it in an MSX project, you'll need to cut the last 4 bytes, which is a footer that describes the nonstandard dimension.
In fact, I didn't think about using .MAP, I thought there would be a similar limitation as with .NAM :) These 4 bytes are not a problem, they can stay and won't be loaded normally in code. But the .map 32x24 has 820 Bytes instead of 772 (768 + 4 Bytes)
User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2064
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: NEXXT - a newer "NES Screen Tool"

Post by FrankenGraphics »

Oh right, the excess are the palette attributes you don't need as well.
So, for example in ca65 you can .incbin "mymap.map" 0,768 and that should work.
sdm
Posts: 412
Joined: Tue Apr 11, 2006 4:08 am
Location: Poland

Re: NEXXT - a newer "NES Screen Tool"

Post by sdm »

That's exactly what I do. But there are specific situations where I had to trim, so I ask if it is possible to load smaller .NAM.

For example, I also use NEXXT to edit BAT / NAM files in PCE, where the PCEAS compiler does not have (similarly to NESASM) INCBIN that can specify the size of include (Here the typical screen is 32x28 (256x224) and it's nice to have 896 Bytes, but the MAP of that size is 956 Bytes).

Maybe it would be possible to add the ability to load NAM files smaller than 960 bytes and e.g. a / warrnig window will pop up asking "the loaded file is smaller than 1024/960 Bytes - are you sure to use it?"
User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2064
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: NEXXT - a newer "NES Screen Tool"

Post by FrankenGraphics »

I've just added that if you open (open canvas...) a non-.map, non-compressed binary of any extention name, and the filesize matches 768 or 896 precisely, it will get interpreted as an attribute table-less map of 32x24 or 32x28.



It'll be in the next release.

Adding support for *saving* to VDP or PCE-specific standards requires a bit more research though.

One decent document i came across separated the three tables of the VDP as PN (Pattern Name table), PG (Pattern Generator table) and CT (Colour Table), so right now i'm thinking the resulting file should be given a .PN extension to distinguish it from the composite name-attribute tables that have been canonized as .nam in the NES scene.

Then there's the question what to call PCE-targeting files.

Any links to solid documentation and usage in wikis, forums, and perhaps especially tools targeting either the VDP or PCE that can inform choices, would be helpful (I simply don't have the time to web search and slowly form a solid impression on my own).
Last edited by FrankenGraphics on Sat Oct 22, 2022 8:36 am, edited 1 time in total.
User avatar
rainwarrior
Posts: 8732
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: NEXXT - a newer "NES Screen Tool"

Post by rainwarrior »

MSX and VDP family have a bunch of quite differently packed graphics modes, not like NES where there's only one. The terminology "nametable" actually comes from the VDP Texas Instruments docts originally, AFAIK, and it was from there that it got applied to NES by homebrewers.

Ultimately I don't think file extensions will solve the problem of deciding how the data is encoded. Everybody has their own common (and inconsistent) extensions, and they don't have any concern for interoperability across unrelated platforms.

If you do want to support multiple disparate formats like this, maybe something like notepad++'s encoding menu would work, i.e. you open an image, and maybe it can guess (based on filename, size, etc. heuristics, metadata), but if it's not in the right format you go to the "format" menu and choose the correct one and it will select the new mode, non-destructively reinterpreting the same data as the new format.

Notepad++ has in the same menu also has the option to convert between encodings, rather than re-interpret.
User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2064
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: NEXXT - a newer "NES Screen Tool"

Post by FrankenGraphics »

Well, it's not something i'm going to focus a lot on right now. But if people want to import and export assets in the very limited capacity nexxt/nesst can currently work with those assets, i'm for.

That reminds me, @chocolatechnica on twitter is developing what's essentially the VDP equivalent to screen tool; 99x98Edit. I'm going to have a look at what it uses for binary saves.

The link i'm aware of is this, btw: https://onedrive.live.com/?authkey=%21A ... 0136A4D5BE
I don't think this tweet is the most recent, but it contains a lot of screenshots and info: https://twitter.com/chocolatechnica/sta ... 3559709696

I'd honestly recommend to use this tool instead, seeing as it is dedicated to the needs of the VDP, but i'm still interested in offering *some* cross-compatibility.

It's on the roadmap to add MMC5 ExRam editing along with multitable chr management.
From there, it's not too far fetched to also add a VDP mode 2 feature, but it's a *much* bigger add-on since a lot of both the GUI, underlying work memory, and various menu actions all need to have a second set written specifically for that. Basically, there are still more immediate needs to improve this tool on making NES graphics easier/better, so features that cater for other systems have pretty low priority unless it's simple.
User avatar
rainwarrior
Posts: 8732
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: NEXXT - a newer "NES Screen Tool"

Post by rainwarrior »

I had made an editor for Legacy of the Wizard a while back, but it had an MSX and MSX2 version that were very similar, and I felt like it should be able to edit all 3 with some modifications.

Since it's on github, I created branches for MSX1 and MSX2, and just made separate builds for those.

In this form, if I made changes to the main branch, using git tools makes it easier to merge those changes into the other version. Alternatively, using the branch as a workspace to experiment and figure out what needed to be different, I can do a comparison against the main branch to help figure out what might be necessary to combine them into one application.

I probably won't ever make an all-in-one application for that project, but I think that's probably how I'd go about it. Make one first, make a branch to experiment with another format, and then eventually merge the changes from the branch back into the main program.
sdm
Posts: 412
Joined: Tue Apr 11, 2006 4:08 am
Location: Poland

Re: NEXXT - a newer "NES Screen Tool"

Post by sdm »

Does manual map size "must" be in increments of 4? E.g. 20,24,28,32 - cannot be set e.g. 26?
User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2064
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: NEXXT - a newer "NES Screen Tool"

Post by FrankenGraphics »

Funny you mentioned it, because i've tentatively removed this restriction in my unreleased build. 4 is still the step count but you can enter a manual value.

I'm sure a few resulting bugs will crop up sooner or later.
User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2064
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: NEXXT - a newer "NES Screen Tool"

Post by FrankenGraphics »

NEXXT 0.18 released.

Main takeaways:
-Better cpu performance when selecting, dragging, scrolling, typing, working with the Navigator
-More buttons and freedom when setting Canvas size
-Minor fixes and improvements

Log:

Code: Select all

======
0.18
======

Overall CPU performance:
--------------------------

	-Selections, drags, scrolling and some other actions are now generally a lot smoother/quicker. 
	
	-The navigator had (and may still have some) performance problems when the canvas was/is large enough.
	In most cases, this should be more agreeable now.

	-Bugfix: holding down keys no longer cause cpu problems. This affected V-click and TypeIn mode.


Non-NES nametable support:
--------------------------
	Added support for opening non-NES nametable binaries of these precise sizes: 
	-768 bytes (32x24; TMS9918 mode 2 table, ie MSX, ColecoVision and more) 
	-896 bytes (32x28; PCE table)
	These are interpreted as maps of respective sizes. Note that no colour/attribute data is included. 

Set canvas size:
--------------------------
	-New buttons: Add or detract 32 to width, Add or detract 30 to height. This corresponds to the sizes of a standard NES screen.
	-Entering dimensions by keyboard no longer snaps to nearest attribute byte multiple (4x4). NOTE that this is largely UNTESTED.
	-bug fix: When extending the canvas, and the "use null tile" checkbox is checked, it also set attributes to this value. Now fixed.


Sort tiles:
--------------------------
	-Metasprites are now repaired when sorting by Density or Frequency. 
	-"Sort by Frequency" now takes filter search criteria into account. 


Type In mode:
--------------------------
	-While in this mode; triggering a double-click event on the tileset when trying to 
	place glyphs in rapid succession no longer opens CHR editor by mistake.
	-bugfix: No more traces from previous cursor when typing.

Navigator:
-------------------------

	-Added maximize/minimize/restore buttons to this window. 
	Maximize in particular is helpful when a map canvas is larger than your screen can show at one time,
	to be able to grab the lower right window corner. 
	-Pressing F6 while minimized restores it to normal.
	-Zooming to a smaller size now snaps the form window just like zooming to a larger size.

Scrolling:
--------------------------
	
	-Bugfix: 
	 Odd scroll offsets no longer cause "scanline out of range" error when trying to place
	 tiles along the edges of the viewport.
 
	-Performance fix:
	When scrolling by mouse {scroll wheel for y, shift+scrollwheel for x}, 
	there were redundant real time updates to the navigator. Now removed.
	

Misc:
--------------------------
	-Changed inconsistent language. Any loose mentions of finding or removing "doubles" is now clarified as "duplicates".


Edit: 0.18.1 Released.

Minor bugfix, one user reported nametables could be forced to be RLE compressed on whim. Was an unitialized bool. Now fixed.

Edit2:

0.18.3 Released.

A couple more bug fixes, and also: "Fill with numbers" (menu > patterns > generate) can now be applied selectively (box- or multi selection).
User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2064
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: NEXXT - a newer "NES Screen Tool"

Post by FrankenGraphics »

NEXXT 0.19.0 is out.
Image

Code: Select all

======
0.19
======

New, improved "swap colours..." dialogue.
-----------------------------------------

	The new dialogue lets you do the following, in order of importance:
	-Preview the result while working/before committing
	-Turn preview on/off for quick a/b comparisons
	-Rotate colour indexes left/right
	-Flip the order of the 3 "free" colour indexes
	-Flip the order of all 4 colour indexes
	-Ability to opt out of modifying the patterns to match the new colour index
	-Ability to modify just not the current subpalette set, but also: 
		-All sets (A...D)
		-Just 1 subpalette in the active set (+ ability choose which)
		-None (in case you just want to modify patterns, not palettes)
	-Right-clicking or Shift-clicking on any of the 6 "increment" buttons will instead decrement their values. 
	-Choose which of the 4 subpalettes will decide "colour 0"/ the "common colour" when making colour index changes

	The dialogue has been moved from the somewhat overcrowded "patterns" menu to the "palette" menu.
	


Bugfixes
--------

	-Swap colours: the old dialogues' action only worked as intended so long as all 4 index values were unique.
	Now working regardless which case.
	
	-TypeIn mode: Using the hotkey T to enter TypeIn mode no longer triggers typing a letter by mistake.
	
	-When selecting or deselecting tiles on the tileset, the menu actions "find duplicates" and "find unused" now reset to un-checked state, like they should.  
	
	-Incomplete .nss files could potentially crash NEXXT if opened (if an element was hand edited in text and left incomplete). 
	Now fixed through the contribution of NESdev discord user jroweboy.


Misc
-------

	Additional public domain resources are included in this versions' package:
	-25 uppercase NES fonts (designed and made available as part of a patreon milestone).
	-A set of template circles and curves.

	Find them in the "NES graphics assets" folder.
	
User avatar
dougeff
Posts: 3079
Joined: Fri May 08, 2015 7:17 pm

Re: NEXXT - a newer "NES Screen Tool"

Post by dougeff »

Nice. Good feature.
nesdoug.com -- blog/tutorial on programming for the NES
User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2064
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: NEXXT - a newer "NES Screen Tool"

Post by FrankenGraphics »

NEXXT 0.20.0 released.

Video tour of its new key features: https://www.youtube.com/watch?v=g-UByBqf58o


From the changelog:

Code: Select all

======
0.20.0
======

New features:
-------------

Flex-paste CHR:
	-If making a box selection larger than 1 tile (or 2 tiles if in 2x2 edit mode), 
	pasting tiles will place those tiles inside the boundaries of the new selection. 
	This can for example be useful to put disorganized tiles into a section, change orientation of order,
	convert a strip of tiles to a box of tiles, or vice versa. 

	Tip: Don't worry about making the selection larger for pasting: the paste won't replace more 
	tiles than what is queued up by your previous copy action.
	
	Tip: Be aware that a selection box smaller than the # of tiles copied will ignore the excess.
	The best way to proceed if dissatisfied with your first paste in this case is to make a larger selection
	and paste again - especially if you copied with cut and don't want to lose content.

	Tip: A single tile selection behaves as normal/before (representing the origin to paste to).


Screen aligned 4x4 grid option:
	-If both "x4" and "Scr" buttons are down, then the 4x4 grid aligns to the start och each screen.
	This is often useful when laying out level content or the like, 
	since an NES nametable/screen is an "imperfect" 32x30 tiles



Improvements:
-------------

Multi select + copypaste + masks:
	-Bitplane masks and colour protection masks now work for serial 
	(usually multi-selected, then copied) clipboard contents.



Putting subpalettes to clipboard:
	-If either as C or ASM data, session name and set ID is now included in the header/label by default.
	-If as ASM data, the clip is now more readable; putting each subpalette on its own .byte row.
	-From preferences (ctrl+p), you can set whether or not 
	to include session name and and subpalette set in the label/c header.


Bugfixes:
--------

Display bug:
	-Navigator, making a new selection after a paste or cut: 
	the canvas wouldn't fetch a fresh buffer, leaving traces of the old selection rectangle behind. Now fixed.

Navigator window sizing:
	-Now behaves better when you have canvas sizes larger than what fits the screen height of your main screen.

Pasting serial CHR:
	-Pasting from serial CHR clipboard contents (usually from a multiselected cut or copy) didn't set up
	and undo event. Now corrected.

Copying undo bug:
	-CHR copying set undo regardless if a cut or not was made. Now fixed.
Pokun
Posts: 2681
Joined: Tue May 28, 2013 5:49 am
Location: Hokkaido, Japan

Re: NEXXT - a newer "NES Screen Tool"

Post by Pokun »

It is turning out pretty impressive. Good job! :)
User avatar
Individualised
Posts: 310
Joined: Mon Sep 05, 2022 6:46 am

Re: NEXXT - a newer "NES Screen Tool"

Post by Individualised »

Yoshi's Island mock-up I made using this program + GIMP for the sprites/to composite everything together:
Image
Image
Icons on the status bar may not be adhering to sprites per scanline limit.
Post Reply