NES gimmicks, 50% Transparency. Impossible feat? Maybe not?

Basty

Active member
So here I was brainstorming again and was thinking... What if we could generate actual transparency for the NES?
In a technical level, it should be possible in a way.

"Oi'aight yo crazy baasted what ye got in mind this time around?" you might ask.

And I am glad you asked even though you didn't!

High speed flickering: Yeah, this is pretty obvious option for transparency but it is limited to whole sprite being "transparent".
Partial high speed flickering: Now we're getting closer to true intention and purpose of the use. Making one 8x8 module flicker in 16x16 sprite could technically be called as "transparent" when used in certain environments like underwater 'n such. Though it'd look really bulky and silly in the end especially when entering in and out of areas.

Now what other options do we have?
Palette swapping 8x8 by 8x8 is one way to do it though it sounds like it'd bloat the code real fast if used for more than one or two purposes. "Correct me if I'm wrong."
Plus the fact that it's just 8x8 block, it'd look even worse than the flickering effect to be honest.

Now one other way to handle this would be that every sprite and background graphics would constantly flicker, like... Everything!
Meaning that sprites would flicker from frame 1 of the 60fps and bg from frame 2. Now that'd actually be something and I don't even know if making BG to do that would be feasible without crashing the entire console! I can also already see it in my mind's eye that it'd be rather eye straining to see whole screen constantly flicker while playing the game so maybe it's a terrible idea in general? Though, I might program something like that with gamemaker just to see how terrible of an idea it is in general as hilarious as it sounds.

In this case, I'm not even going to go in to semi transparency aka 1 pixel exists and second doesn't because that's god awful even in old games that uses that and with limited colors per sprites it's even more awful. Even in newer Sega systems it looked awful that didn't have proper transparency available in their chipsets. I mean sure, that's an easy way to generate illusion of transparency but it's also pretty much lazy one in my... *COUGH*humble*COUGH* opinion.

Alrighty, so from pseudo transparency to true transparency and how it could technically be possible? I mean... NES is still just a computer after all.
I'll try not to be all over the place about this so I'm sorry if it sounds like if I am.

Now it all boils down to sprites themselves being registered from one layer to another till it reaches 8x8 pixels.
Technically, if I am not entirely wrong, this should take at least two sprites overlapping each other and some programming gimmicks to replace one layer with a palette to second layer with a different palette or at best programming each and every layer 1x8 to be a different palette. If I'm calculating this right, it should at least give vertical transparency to sprites given NES color palette but it would require some programming magic to do that.

What are your thoughts and how would you approach this problem?
What do you agree and disagree with me on these issues? Am I just a crazy person?

Let me know in the comments, down below.
 

Knietfeld

Member
I like that you're questioning the limits of the NES and trying to push boundaries, but I don't quite follow what you're trying to say. Are you talking about, for example, your character walks behind a tree branch and his head disappears behind the branch but not the rest of him?
 

Basty

Active member
I like that you're questioning the limits of the NES and trying to push boundaries, but I don't quite follow what you're trying to say. Are you talking about, for example, your character walks behind a tree branch and his head disappears behind the branch but not the rest of him?
Rather, his head goes behind the branches and changes color semi pixel perfectly as he does so with in NES limits.

Though, that'd be a silly example.

I am more talking about character changing color when he's submerges in to a water for an example and making it look smooth.
 

Knietfeld

Member
I see.

On a game I was working on a long time ago I tried changing the palette of the character when he went into water but I didn't want to go through the trouble of changing individual sprites based on how far into the water the character was. Just changing the whole character (trying to hide the change behind a splash animation) didn't look very good so I didn't do it.

I'd have to do some tests to see if my interpretation of your sprite stacking method would work the way I want. I think that would make pixel perfect transitions possible but not worth the time in an actual game.
The easier route would be to have the alpha background color above and below the waterline and have the waterline be a tile thick colored with anything other than the alpha color so you could have your character draw behind the background layer as it falls in and the palette shift would happen to each sprite when it was fully behind that waterline.

I know that's not what you're going for, exactly, though.
 

Basty

Active member
It's alright. This is all about theorizing about how it could work and how to make it possible.

If someone has better means to make it work... Well... Heck... Even better.
But yeah, it seems like that aside for changing palette for 8x8 pixels, making it pixel perfect "transparency" can be a challenge.

I don't think it's impossible and I have few ideas in my head how to make it to work but it would mostly slow down the game itself to 1fps per second.

As for your idea. Hmm... Well, that'd be dithering effect wouldn't it?
Never thought that you could have BG graphics in front front of sprites though.
 
Top Bottom