fine-attribute images?

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
fine-attribute images?
by on (#192416)
Has anyone bothered yet to create things that would look better with 8x1(-7) attribute grain than 8x8?
Re: fine-attribute images?
by on (#192485)
I guess I can start working on something.
Re: fine-attribute images?
by on (#192486)
This isn't NES but your question reminds me of the "macrocom" method of using scanline slivers for more detailed CGA graphics:
http://8088mph.blogspot.ca/2015/04/cga-in-1024-colors-new-mode-illustrated.html#the_macrocom_method

Also thefox made a tool a while back that did 16 x 8 attribute regions (though I think it may have been configurable for narrower?)
http://forums.nesdev.com/viewtopic.php?f=21&t=7363
Re: fine-attribute images?
by on (#192492)
Where there a topic prior to this?
Re: fine-attribute images?
by on (#192494)
I also found this proof of concept by lidnariq:
http://forums.nesdev.com/viewtopic.php?p=113253#p113253
Re: fine-attribute images?
by on (#192552)
A 16x8 attribute table is much easier to pull off than a 8x1 attribute table. 16x8 can be done in pure software (possibly with added IRQ) over the entire two built-in nametables.
Re: fine-attribute images?
by on (#192561)
Dwedit wrote:
A 16x8 attribute table is much easier to pull off than a 8x1 attribute table.

Sure, but there's a great discrepancy between 16x8 and 8x1... 8x1 is like, 16 times finer than 16x8.

Sadly that flower image posted by lidnariq looks like a bad proof of concept, seeing as the screen is mostly just yellow, with weird green stripes that look more like VHS noise (i.e. the added detail makes the image look WORSE).
Re: fine-attribute images?
by on (#192567)
Unfortunately, I am not an artist, and any attribute zone of any size make any automated conversion a total PITA. (I even tried your heuristic of "quantize to four colors, then mask and quantize each layer to three colors" and it really didn't work)

But if anyone has any skill with art wants to figure out how to draw things with 16x1 attribute zones, loading new data into the display program is easy.

(P.S. it's an aloe. Your misidentification assuredly says more about how terrible the conversion is.)
Re: fine-attribute images?
by on (#192569)
Perhaps try converting some of the better MSX art. The TMS9918A attribute model isn't quite the same as that of the NES using a hypothetical super-mapper, but it does have the 8x1 pixel slivers.
Re: fine-attribute images?
by on (#192573)
lidnariq wrote:
Unfortunately, I am not an artist, and any attribute zone of any size make any automated conversion a total PITA.

Yeah, I'm not blaming you for the result. I'm no expert in image processing either, so it's not​ surprising that my method wasn't of much help.

Quote:
But if anyone has any skill with art wants to figure out how to draw things with 16x1 attribute zones, loading new data into the display program is easy.

I would personally love to see something that made full use of the extended attributes. Maybe something hand-made will turn out better than photographs, because even with better attribute resolution the hardware is still too weak for that.

Quote:
(P.S. it's an aloe. Your misidentification assuredly says more about how terrible the conversion is.)

Or it's just evidence of my total lack of botanical knowledge... :mrgreen:
Re: fine-attribute images?
by on (#192581)
Quote:
16 times finer than 16x8


I think you get more mileage per increase by having a 16x8 or 8x8 granularity (since 8x8 is the character format). 16 or 8x1 is however pushing the boundaries, i guess that's the whole point?

Something hand drawn will look better. I think the key may be not overusing it. In the aloe vera picture, you see the grid at every border. Assume a coarser grid and then exploit it where you can for some nice details.

Or if you want to convert a photo, you still may have some luck with either posterizing and retouching a grayscale, then apply attributes, or you can trace it in Illustrator and then convert the result back to a bitmap. A lot of time will be spent doing so, though, and autotrace never looks good, so maybe pixel painting directly over the picture will pay off better. And you'd probably still need to use sprites for finer differently coloured details to make the most of it.
Re: fine-attribute images?
by on (#192611)
Dwedit wrote:
A 16x8 attribute table is much easier to pull off than a 8x1 attribute table. 16x8 can be done in pure software (possibly with added IRQ) over the entire two built-in nametables.

Even 16x4, 16x2 or 16x1 could be done in pure software as long as we'd be reduced to a small part of the screen. For example we could imagine a title screen or a logo screen using such a technique - turning BG rendering off for most of the screen and use all (or a very large part) of the available nametable area to draw a small logo with better colours. You can get 15 tiles height (120 px) of 16x4 attributes, 7.5 tiles height (60 px) of 16x2 attributes or 3.75 tiles high (30 px) of 16x1 attributes in pure software - add RAM for 4-screen mirroring and you can get double of each.

The OP mentionned 8x7 but I don't see how it would be any practical nor feasible to have a non-power-of-2 attribute granularity. Irregular granularity (such as 3-3-2 in each tile) would be feasible though.

In practice this was almost never done because attribute table limitations are hardly the bottleneck of what can be done with NES graphics - i.e. you'll never be able to represent something with smaller colour granularity than you couldn't represent with less, it'll just look slightly better. On the other hand, more colours per tile done by overlapping sprites is a much more interesting option, so that's why NES games went that way to increase the graphics quality.
Re: fine-attribute images?
by on (#192614)
Well, I just meant <8. So, practically, 8x4, x2, x1. (There's nothing *stopping* you from doing 8x7 cartside, but it'd be a pain.)

Some thought suggested that acting like it's 8x8 and then using the slivers to get some wiggle room on edges where you need a few more or fewer pixels of one color seems like the best use of a theoretical 8x1 (shallow slopes) rather than any picture actually needing to switch on a sliver and switch back the next down.
Re: fine-attribute images?
by on (#193466)
That's right. A symmetrical ratio (16x16, 8x8) is easier to hide, so in the case of a 8x1 ratio or the like, moderate use of the fact will probably yield better looking results. Think of every change of attribute between one cell and the next as a potential grid shower. If just about every cell is different, you end up with what looks like paused tape noise, getting in the way of the picture.

Just apply it here and there, where it looks the most convincing and/or to sometimes break the coarser x8 base act-as-grid.

You could for example use three to five 8x1 slivers on top of each other to colour a tuft of grass hanging down in front of ground or rock, approximating next generation graphics.