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.
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.