would screen splitting give extra 13 colours for tiles?

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

Moderator: Moderators

lidnariq
Posts: 11432
Joined: Sun Apr 13, 2008 11:12 am

Re: would screen splitting give extra 13 colours for tiles?

Post by lidnariq »

rainwarrior wrote:A clean palette change during normal background rendering is elite tier.
Since I already went to the effort of marking it up, I'm providing an annotated version of the Indiana Jones title screen here (made because I feel like it got glossed over earlier)
Indiana Jones and the Last Crusade-title-screen-with-cpu-ppu-activity-marked.png
Indiana Jones and the Last Crusade-title-screen-with-cpu-ppu-activity-marked.png (6.15 KiB) Viewed 12727 times
As stated, advanced technique. Very difficult to use with anything going on at the same time. (The entire top two-thirds of the screen is carefully timed loops for almost-pixel-exact writes to the PPU).

What's interesting, and a tangent, is that it hadn't occured to me that we could write the first half to $2006 before we disable video.
Sik wrote:Wait, how do the emphasis bits work? Because that looks a tad more washed out than I expected.
It looks washed out because the greyscale bit is set at the same time, which turns all colors $XY (for 0≤Y≤$D) into $X0.Colors $xE and $xF are preserved so that black can stay black, even when the greyscale bit is set.
Last edited by lidnariq on Mon Jan 26, 2015 1:23 pm, edited 1 time in total.
User avatar
hawken
Posts: 79
Joined: Sun Jan 25, 2015 6:51 pm
Location: Tokyo
Contact:

Re: would screen splitting give extra 13 colours for tiles?

Post by hawken »

rainwarrior wrote:There are all sorts of permutations of weird technical possibilities that you could pull off on the NES, but a lot of them really aren't typical. Like, if you're trying to faithfully "fake" the look of an NES game, you probably don't want to be trying special tricks that aren't really part of the NES experience.

For instance, MMC5 8x8 pixel attributes were only used in 1 game, to my knowledge (Just Breed), and it was a Japan-only RPG. It's a thing you could technically pull off on an NES, but it's not characteristic of NES games at all. Part of the reason it wasn't used is that having 8x8 pixel granularity in the world can quadruple the complexity of your map (ROM size constraints, RAM constraints, extra collision tests required, etc.) so even if you had the special MMC5 hardware for 8x8 attributes, it's a significant burden on the NES to make a world that puts it to use!

A palette change for a status bar is an advanced and atypical technique. A clean palette change during normal background rendering is elite tier. Something like this usually comes with weird design constraints, and these are things you don't really consider when you're just looking at one technical issue; you only find them when you try to build a whole game. Suddenly you find this one technical feature you implemented is dictating how you have to design your maps, etc. A lot of these techniques aren't seen much for good reason (though sometimes it's just that we have better knowledge and tools now than back then).

An emphasis change like Noah's ark is fairly easy to implement. It's not typical, but it's very doable. Your water line has to be straight, this way, though.

Anyhow, I don't really understand the point of trying to push the NES graphical capabilites to the limit without actually using an NES. It doesn't matter what was technically possible or not. Just make a nice game, and if you like the NES look, imitate the parts of it that feel good to you, and ignore the rest. If it's important to you that it be NES-faithful, for some reason, you should probably stick to normal techniques that look and feel like real NES games, not technical obscurities... but... never mind my opinion. I don't know what motivates you. If you can make a good game out of it, do whatever suits you.
Thanks for the honest feedback. :beer: Sounds like you have had to go through this on a programming level and why one might avoid it.

The motivation for myself as designer is to get a feel for the limits (believe it or not having limits makes pixel art easier) so I can make a base. I'm quite interested in how far the NES was pushed in it's sunset years, and what the true limits are. Hopefully this will then be a defining factor in the look of the game.
twitter: http://twitter.com/hawkun
Pirate Pop Plus - gameboy styled game for 3DS, WiiU & Steam
User avatar
thefox
Posts: 3134
Joined: Mon Jan 03, 2005 10:36 am
Location: 🇫🇮
Contact:

Re: would screen splitting give extra 13 colours for tiles?

Post by thefox »

lidnariq wrote:Colors $xE and $xF are preserved so that black can stay black, even when the greyscale bit is set.
Is this true? If so, the wiki is wrong:
wiki wrote:When grayscale is turned on, the PPU ignores the lower nibble of each palette entry. This causes a bitwise AND with $30 on any value read from PPU $3F00-$3FFF, both on the display and through PPUDATA ($2007).
I've always thought black turns into $00 (gray) as well when gr[a|e]yscale mode is turned on.
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: fo.aspekt.fi
User avatar
Bregalad
Posts: 8056
Joined: Fri Nov 12, 2004 2:49 pm
Location: Divonne-les-bains, France

Re: would screen splitting give extra 13 colours for tiles?

Post by Bregalad »

No, the wiki is right and lidnariq is wrong.
User avatar
tokumaru
Posts: 12427
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: would screen splitting give extra 13 colours for tiles?

Post by tokumaru »

Sik wrote:Wait, how do the emphasis bits work? Because that looks a tad more washed out than I expected.
Yeah, that's because in grayscale mode all colors get to look like the grays in the first column of the palette, which actually has 2 whites and 2 grays. Not the best selection to represent a grayscale image (only 3 colors: white, gray, darker gray).
lidnariq wrote:Colors $xE and $xF are preserved so that black can stay black, even when the greyscale bit is set.
Never heard of this. Did you test this behavior anywhere?
User avatar
OneCrudeDude
Posts: 276
Joined: Fri Aug 23, 2013 2:14 am

Re: would screen splitting give extra 13 colours for tiles?

Post by OneCrudeDude »

I understand some people's concerns, namely Rainwarrior's where he says that emulating obscure NES tricks would be pointless if this were not to be made on the NES. Moreso since these tricks often impact game design in some cases. Though what if someone (or a team) wanted to make a prototype for an NES game using any possible technique to greatly enhance the experience in a higher, quicker to develop language? Of course, you can accomplish certain things much easier with the modern engine, without even using NES tricks.

And as for the MMC5 single tile attribute, one other game uses this also, though I'm not sure if you should really count it since it was not a proper commercial release. ROM City Rampage.
User avatar
Dwedit
Posts: 4924
Joined: Fri Nov 19, 2004 7:35 pm
Contact:

Re: would screen splitting give extra 13 colours for tiles?

Post by Dwedit »

The Game Boy Color, on the other hand, allowed you to rewrite the palette whenever you wanted without needing to disable rendering or anything like that. They used it for static screens like title screens, or other games like Wacky Races pushed it to the limit for use during gameplay.
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!
User avatar
Drew Sebastino
Formerly Espozo
Posts: 3496
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: would screen splitting give extra 13 colours for tiles?

Post by Drew Sebastino »

Not really important to the conversation, but can the Game Boy color have a different palette every 8x8 block, or every 16x16 like the NES? also, how many palettes does it have?
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: would screen splitting give extra 13 colours for tiles?

Post by tepples »

Game Boy Color has 8x8 pixel (per-tile) palette selection, like the MMC5, Super NES, or GBA. It has eight 4-color background palettes (with distinct color 0 in each) and eight 3-color sprite palettes. The palettes are RGB with 32 levels per channel, but the gamma is kind of screwy.
User avatar
Drew Sebastino
Formerly Espozo
Posts: 3496
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: would screen splitting give extra 13 colours for tiles?

Post by Drew Sebastino »

The Game Boy Color uses 15bit RGB (same as SNES, GBA, and might as well include Neo Geo, even if it did have a seemingly unused 16th bit) but has all tiles being 2bpp and 49 colors on screen without changing palettes mid scan line? (Talk about mixed priorities. :roll: )
Sik
Posts: 1589
Joined: Thu Aug 12, 2010 3:43 am

Re: would screen splitting give extra 13 colours for tiles?

Post by Sik »

Probably on the screen type, really. The Game Gear has 4 bits per component for instance (despite still only showing 31 colors), when the Mega Drive, an otherwise superior system, only had 3. Make what you want out of that. And yeah, the gamma in the GBC screen is crap, to the point that the suggestion is to ditch away half of the entire range (effectively making it 4 bits per component in practice).

Also pretty sure the Neo Geo used the 16th bit for something, although whether it was useful or not is a different issue.
User avatar
Drew Sebastino
Formerly Espozo
Posts: 3496
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: would screen splitting give extra 13 colours for tiles?

Post by Drew Sebastino »

The Neo Geo had the 16th bit decreased the color by a "half bit", meaning that you can have a color like R:12 G:20 B:4, (24bit color) but not something like R:12 G:24 B:4, if that makes sense. I've just looked at a bunch of colors from the graphics from Metal Slug, and none that I've noticed are not perfectly divisible by 8. The half brightness bit could be really useful for a black and white screen, but with having 4bpp 16x16 tiles, you cant really use all the colors that easily, unless you have something like a gradient going down the length of the screen. 8bpp graphics is one reason I think that the SNES can look about as good as the Neo Geo, but it leaves quite a dent in vram... (Which, obviously, isn't a problem on the Neo Geo.)
User avatar
TmEE
Posts: 960
Joined: Wed Feb 13, 2008 9:10 am
Location: Norway (50 and 60Hz compatible :P)
Contact:

Re: would screen splitting give extra 13 colours for tiles?

Post by TmEE »

The 16th bit decreases the output to around half of all the color channels, and it is done in analog domain. I don't remember the exact circuit though, there's probably some non-linearity involved...
User avatar
Drew Sebastino
Formerly Espozo
Posts: 3496
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: would screen splitting give extra 13 colours for tiles?

Post by Drew Sebastino »

TmEE wrote:The 16th bit decreases the output to around half of all the color channels,
So I was right.
TmEE wrote: and it is done in analog domain. I don't remember the exact circuit though, there's probably some non-linearity involved...
Meaning that the 16th bit is calculated after all the other bits in a different process? I guess that is why the SNES, GBC, and GBA don't have a sixteenth color bit, despite having the space to do so. Seems like quite a bit (no pun intended :wink: ) of work for one measly bit...
lidnariq
Posts: 11432
Joined: Sun Apr 13, 2008 11:12 am

Re: would screen splitting give extra 13 colours for tiles?

Post by lidnariq »

No, it's a quite simple circuit in analog ... Assuming the attenuation is linear, it's not even particularly redundant: of the 33k new colors, only 1/8 of them are redundant with the original 33k. I'm just not certain whether it's particularly useful.
Post Reply