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

User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2064
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

NEXXT - a newer "NES Screen Tool"

Post by FrankenGraphics »

Edit: Latest version is 2.1.4, check latest post or itch for info.
----------------------------------------------------------------------------


Been posting this before in small circles, but now that it's on itch, i figured it was time for a proper thread.

NEXXT is my personal continuation of Shiru's NESST. At first i was just adding shortcuts and work safety features but as i grew more confident using c++, i started to add the features i more or less always wanted in it. 1 1/2 years later with sporadic weekend nights, here it is. More things are planned, but i'm pretty happy with where it is so far.

Link: https://frankengraphics.itch.io/nexxt
It's free and public domain just like its predecessor. Itch will ask for a tip but you're free to ignore it.

Image




In this thread i'll post news for future releases & try to help if you run into a roadblock. Happy assets drawing/constructing!
Last edited by FrankenGraphics on Mon Mar 11, 2024 12:47 pm, edited 5 times in total.
User avatar
rainwarrior
Posts: 8731
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: NEXXT - a newer "NES Screen Tool"

Post by rainwarrior »

I'm curious whether this will eventually be open source, like the original was?
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 »

rainwarrior wrote: Tue Aug 23, 2022 1:25 am I'm curious whether this will eventually be open source, like the original was?
Eventually, when i feel confident enough about it. Right now i need to treat it as a personal playground for teaching myself c++.
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 »

Some news:

Version 0.14.1 is out.

Among the more important features since last time:
-2x2 tile edit mode for the CHR Editor.
-Protect colour modes - works like individual masks for each of the 4 colour indices. Tip: Hover over a button to see the full range of modifier clicks.
-Lightbox mode (previously semi-secret via the pause button) is now properly exposed as Lightbox mode: main editor and Lighbox mode: chr editor, under the Window menu.

Lesser things:
-.maps can be NESlib RLE compressed (at yaros' suggestion). The last 4 bytes are not part of the RLE, but the regular .map dimensions footer. You may need to split it off if used directly in a NES program.
-RLE compressed files are now distinguished as mrle (maps) and nrle (nams). Saving as rle is still possible, but not default. Opening .rle will assume a nametable file.
-Sprite priority up/down now works as intended again (and can move multiple items).
-Various other minor quality improvements and fixes.

Image
Image
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 »

Just wanted to update this and say that the source is now included with the latest version.


Here's the devlog.
https://frankengraphics.itch.io/nexxt/d ... on-to-date
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 »

0.16 is out.

Video on some new feature highlights: https://www.youtube.com/watch?v=0_dQETbEEdM
Has voiceover and subtitles.

last changelog:

Code: Select all

======
0.16
======


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

New Drag Selection actions: 
	These 4 actions work equally on the tileset and screen canvas:
	
	-Move selection box: 	within selection; shift + right mouse, then begin drag.
	-Swap tiles:		within selection; right mouse, begin drag.
	-Move tiles:		within selection; right mouse, begin drag, hold ctrl. 
	-clone tiles:		within selection; right mouse, begin drag, hold ctrl+shift.
	
	These three are signified by the white selection box staying in place; while a gray "destination box" gets dragged around.
	Dropping the destination box above the selection box cancels the action. 
	

"Scan" with active tile cursor:
	-With a simple left-click on the tileset, if you begin dragging, you'll "scan" the tileset; dragging the "Active tile cursor" along.
	-This is a useful alternative method for navigating the CHR Editor quickly. 
	-Combined with the toggle button "Selected only", it's also an effective method to get a better understanding of how tiles are 
	used and in what quantity on the screen canvas. 


Show/Hide pixel grid (CHR Editor): 
	-Toggles the grid on/off in the CHR Editor.
	-Shortcut: [Ctrl+G]


Improvements & fixes:
---------------------

Box selections stay positive:
	-Expanding a box selection north or west would invert the selection coordinates which was slightly iffy and had many workarounds under the hood 
	to prevent further weirdness.
	-Now, selections remain "positive" no matter which direction you drag it; keeping the origin coordinate stable.  


CHR Editor pixel grid now easier on the eyes: 
	In the environment where NEXXT is made, the canvas which the CHR editor is painted on relied on a MS Windows-controlled theme.
	This worked well enough up until windows 7 in classic mode, but in later OSes like win 10 (i haven't tested win 11),
	this background & grid  colour was too sharp. It's now set to an absolute colour of #CFCFCF which is easier to look at when its grid is on. 


Find/Remove unused bug:
	-Discovered and resolved a NESST-old bug where the tool would not detect if tile 0xFF was unused,
	because that's the initial tile value of all 64 entries to all 256 metasprite lists.
	Now fixed by ignoring sprite list items of unused status (this is signified by a relative Y position value of 0xFF as well).

Ctrl+X/Ctrl+V bug:
	-In the context of the metasprite editor, These actions would often delete and forget CHR tiles in addition to working on metasprites. 
	This is now fixed and each works respectively on the context of what was last clicked on, as was the intention. 

View Selected Only bug:
	-Now correctly displays selection while the CHR editor is in 2x2 edit mode.

Swap Pattern tables in selection [Ctrl+Alt+X]:

	
	-Now accepts multi-selected tiles (ctrl+click)
	-Now properly sets Undo.


Tileset tab:
	-Double clicking on the big tileset now correctly opens the CHR editor.


Swap tiles - now in plural:
	-It's now possible to swap a box selection of tiles.
	-In 2x2 edit mode, you automatically swap a 2x2 constellation of tiles by this action. 
	-The destination of the tile swap is now clearly displayed with a gray "destination box" around the cursor. 
	-(right mouse button + begin drag)


Status readout:
	-The readout now updates smoother while moving the cursor over the screen canvas. 

CPU overuse bug:
	-the cpu ran needless routines continuously when holding alt or ctrl+alt, which contributed to lag when working on the screen canvas. Now fixed. 

Errata:
-------

As of 0.15, window forms now snap to the edges of your screen. I forgot to include this in the changelog.
frantik
Posts: 377
Joined: Tue Mar 03, 2009 3:56 pm

Re: NEXXT - a newer "NES Screen Tool"

Post by frantik »

looks cool, i'll give it a spin
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 »

0.17.1 is out. (EDIT: 0.17.3 is out! - see additional attached devlogs)

Short notes:
-Adds a Navigator window (which also acts as a large-scale map editor).
-Adds a new grid: "Screen grid (32x30)".
-Adds label editing to the Metasprite Manager
-Adds a handful smaller conveniences and fixes

Tour video: https://www.youtube.com/watch?v=Z-yCvC6 ... Hs&index=2

Devlog 0.17.1: https://frankengraphics.itch.io/nexxt/d ... -navigator

Edit - additional devlogs that i didn't feel warranted another new post. Mostly bugfixes and small quality of life improvements:
Devlog 0.17.2: https://frankengraphics.itch.io/nexxt/d ... fix-update
Devlog 0.17.3: https://frankengraphics.itch.io/nexxt/d ... provements
sdm
Posts: 410
Joined: Tue Apr 11, 2006 4:08 am
Location: Poland

Re: NEXXT - a newer "NES Screen Tool"

Post by sdm »

Is it possible to add the ability to load (or even save) smaller NAM files? It must currently be 960 or 1024 Bytes. I often use this program to edit screens on other systems, eg MSX (and other 256x192), where I have screens of 768 Bytes. Unfortunately, now I have to manually trim / attach files to have comfortable editing.
User avatar
nesrocks
Posts: 563
Joined: Thu Aug 13, 2015 4:40 pm
Location: Rio de Janeiro - Brazil
Contact:

Re: NEXXT - a newer "NES Screen Tool"

Post by nesrocks »

What happens to the attribute data when using Nexxt to make MSX screens? I'm unfamiliar with MSX background format.
https://twitter.com/bitinkstudios <- Follow me on twitter! Thanks!
https://www.patreon.com/bitinkstudios <- Support me on Patreon!
sdm
Posts: 410
Joined: Tue Apr 11, 2006 4:08 am
Location: Poland

Re: NEXXT - a newer "NES Screen Tool"

Post by sdm »

There is no attribute data there. There are different video modes, but in general the most important is, like in NES, one byte is the TILE number 000-255.

There is a separate place in the VRAM where the color information is stored.

For example:

MODE 1 has TILES 1BPP and the only thing that can be set is the color of the on and off Bit. Additionally, such a color is set for every 8 tiles (one byte is responsible for the colors of 8 Tiles, one Nibble for Bit "set" and one for "off"). This one I usually use (I usually have a picture with tiles in the right colors in the next window).

MODE 2 is quite specific because you can set the colors separately, as above, but for one Tile 8x1px row/line (the color memory for one Tile takes up to 8 Bytes).

There are also other modes ..

Totally different color architecture.
Attachments
msx.jpg
lidnariq
Posts: 11429
Joined: Sun Apr 13, 2008 11:12 am

Re: NEXXT - a newer "NES Screen Tool"

Post by lidnariq »

Only the TMS9918 modes, and not any of the later MSX model video modes?
sdm
Posts: 410
Joined: Tue Apr 11, 2006 4:08 am
Location: Poland

Re: NEXXT - a newer "NES Screen Tool"

Post by sdm »

Probably all newer VDPs have these modes (and Sega SG/SMS / Coleco), only cut from Sega Genesis VDP.
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 »

sdm wrote: Thu Oct 20, 2022 1:46 am Is it possible to add the ability to load (or even save) smaller NAM files? It must currently be 960 or 1024 Bytes. I often use this program to edit screens on other systems, eg MSX (and other 256x192), where I have screens of 768 Bytes. Unfortunately, now I have to manually trim / attach files to have comfortable editing.
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.

Depending on your assembler, i'd probably let it take care of that with a range statement, if it supports it. That way you keep saved .map files cross-compatible between your project and nexxt.
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 »

In other news, both 0.17.4 and 0.17.5 got released this week.

The former adds some features* and fixes, the latter solved an issue specifict to wine/linux users.

Code: Select all

======
0.17.5
======

Bugfix: Wine on Linux users should now be able to view the Main Editor correctly. Bug introduced in 0.17.2.


======
0.17.4
======

Import PPU memory dump:
-----------------------

-Found under Menu > File > Import
-Accepts any binary that is 8KiB-16KiB (nominally 16KiB) as a raw PPU memory dump 
 (which you can save from FCEUX, copy from MESEN or any other emulator with a hex editor)
-Accepts Nintendulator-style .ppumem files too. In this case, PPUOAM is ignored since NEXXT doesn't have a PPUOAM representation just yet.
-An accepted file will set the screen canvas to a map size of 64x60 (2 by 2 screens) in the process.


Invert tile selection
---------------------

-Shortcut: Ctrl+I
-Inverts a selection. 
-Side effects: Also converts a box selection to multi selection, as well as deselects any screen selection in the process. 


Find, Remove & Sort tile action fixes & improvements:
-----------------------------------------------------

-Like it was possible use Remove actions & sort action shorcuts repeatedly to undo/redo them, 
 Find actions now toggle selections on and off with repeated presses. 

-A bug where remove actions got labled "undo remove" falsely has been removed. 

-A bug where Find Unused would not be able to detect tile $ff as unused has been removed (same fix was applied to "remove unused" in an earlier version).

-All 3 sets of actions now clearly rename themselves depending on toggle state. Previously, only "remove" did that. 

-New behaviour: previously, Remove actions would *skip* a box or multi selection of tiles. 
 Now it skips anything *not* selected while there's a box- or multi selection.
 If you wish for the classic behaviour, the new "invert tile selection" action (Ctrl+I) will help. 


Minor improvements:
------------------
-Brush mask editor {Shift+F4} now allows drawing on the mask continuously (as opposed to clicking mask elements one after another). 


Misc. Bugfixes:
---------------

-[Make Metasprite from Selection] now sets Undo. 
-[Clear] under the Metasprites tab now sets Undo. 
-Changing the anchor/origin of all metasprites [ctrl+left click & drag on metapsrite canvas] is now undoable state.
Post Reply