Jump to content
IGNORED

Does the backdrop colour and HDMA basically give SNES a simple extra background layer. . . .


Recommended Posts

I was looking at the video below a moment ago and it occured to me, if you draw an entire simple background using nothing but the main backdrop colour and HDMA to constantly change the colours down the screen to fake say a simple [perspective] ceiling, wall [with some protruding and sunken row elements, like a skirting board for example, as per the example in the video below) and [perspective] floor effect, you could then use one real scrolling background layer on top of that to create a basic overlapping parallax effect that only uses a single background layer in total (and the fake layer basically costs very little and takes up no VRAM resources on SNES, as it's just changing the colour during HBlank using HDMA):

 

 

That would still leave 2-3 additional background layers to play with too, and it adds up to a max of five overlapping parallax background layers before any row/line scrolling effects and the like are used. And, additionally, if you also use the two window/shape masks the SNES can draw, you could even fake another one or two simple silhouette layers in the foreground or whatever there too. There's also the more common method of sacrificing some sprites to fake some overlapping parallax layer element as well, which was something the Genesis often did to create the illusion that it actually had three overlapping parallax layers (and PC Engine did in quite a few games too, in order to get over its single background layer limit). Really, in the right hands, you could simulate a whole load of properly overlapping parallax layers on SNES.

 

So, here's the challenge, can you find more examples of the SNES using the backdrop colour plus HDMA and/or window/shapes masks to fake additional overlapping parallax layers and the like?

Edited by Kirk_Johnston
Link to comment
Share on other sites

One very simple I idea I have right out the gate, before adding any other actual layers, is that you could draw a simple room background like the one seen in the video above using the backdrop colour plus HDMA, and then use the two window/shapes masks to draw a couple of simple shapes on the "wall" to maybe fake very basic solid window or picture rectangles, or potentially even slightly more complex solid silhouette statues or whatever shapes in the background (which could move horizontally very slowly when the camera moves to create a bit of simple parallax), and that kind of thing. And then you would layer all the other stuff on top of that. Or, as a slight variation, the silhouette statues/shapes could be the very foreground instead, which would work very well with that kind of look and was actually seen in a few games on these consoles but usually by sacrificing either one of the background layers or some of the sprites to get basically the same effect.

 

Here's a link to an example of the window/shape masks and the kind of thing you can draw with them: https://forums.nesdev.org/viewtopic.php?p=281662#p281662

 

And you can maybe imagine a couple of giant chess pieces like that scrolling past close-up to the camera in a level like this for example, just for an extra bit of cool parallax in the very foreground, which wouldn't cost either a background layer or any sprites:

 

Edit: Ha, I just realised it was me I was quoting in that post, which just shows I actually had this same idea a while back. Ah, well, I'm sharing it again now with you guys. Lol

 

Edit 2: Now, I'm not sure how much processing it requires to draw and then move around two window/shape masks (hopefully it's not just sprites), especially more complex ones, but I think this game is drawing those two moving circle lights using window/shape masking, and it seems to be running fine:

 

 

You have to always be aware of what stuff like this costs on the old CPU and so on, but I think the SNES can put the two window/shapes masks to decent use in-game and probably achieve the kind of things I'm thinking without too much trouble. The SNES can run eight HDMA actions every HBlank, as far as I'm aware, and I would assume the colour changing on the backdrop and the two window/shapes masks being updated every scanline would take up three of those, but that's just me assuming there as it all gets a bit complex and convoluted at that proper coding level.

 

Still, I enjoy thought exercises like this, and I'd love to see more experimentation around this kind of stuff on the system in modern times.

Edited by Kirk_Johnston
Link to comment
Share on other sites

19 minutes ago, Gemintronic said:

I'd be interested in your findings by experimentation.  Here's a very useful C library to do just that:

 

https://github.com/alekmaul/pvsneslib

Sadly, I can't program on SNES specifically (although I can in RAGE, GML, and whatever Unity uses, probably some variation of C too). I've had a look at SNES, including a brief skim of that PVSnesLib page on github, and it's just far too convoluted and complex for me to grasp (a classic case of designed by programmers for programmers). But, given everything I've learned about the SNES and how most of its features work over the last two or three years, what I'm suggesting should fit within all of its capabilities. It would take a proper SNES programmer to actually run said tests directly though. For now, I'm just sharing some ideas I have with people in the SNES forum who hopefully share the same enthusiasm and passion for the console, and I'm really just looking to have some conversation around it and put those ideas out there rather than have them sit in a void. Because, despite all the programming talent out there, there's not a lot of actual interesting stuff going on in the SNES development space right now that I can see, and maybe that's a symptom of brains over creativity or something. Anyway, I think the SNES can use the tricks I mentioned to fake those additional layers, and I'd be interested in seeing any examples people can find in real SNES games [or demos] that basically show/prove the idea is sound in principle, which is the thing I specifically asked about here. And, of course, I'll go try and find some good examples myself too (like the one I just posted above).

Edited by Kirk_Johnston
Link to comment
Share on other sites

Here are some more uses of the window/shapes masks to fake simple moving and [smoothly] scaling shapes in a handful of games (and the second part of the Geomon boss is doing the fake wall trick using HDMA, with a few sprites faking the parallax pillars):

 

So, although none of these examples are using complex shapes, you can definitely draw a couple of them to the screen and move them around nice and smoothly at a solid framerate too, and even in 3D space too.

 

There's a similar fake background plus couple of sprites to add extra mountain details used in this Goemon battle too, just made to look like it's outdoors:

 

It's a very simple example, but you can get an idea of how it works.

 

And it looks like the growing and shrinking snowball in this level uses the window/shape mask feature too:

 

This one uses the HDMA colours in the background plus some sprites for mountains and the window/shape masks for the laser blasts:

 

You get the idea.

 

Still can't find any good examples of the window/shape masks being used to draw large silhouette shapes scrolling past near the camera to fake parallax though, and definitely not in conjunction with the faux extra background layer using the backdrop colour and HDMA.

Edited by Kirk_Johnston
Link to comment
Share on other sites

28 minutes ago, Gemintronic said:

I've found that theory without proof of effort topics get ignored or chastised. 

 

Didn't want you to learn the hard way :)

 

I need to put up or shut up myself as SNES dev is something I need to do.

Well, that's just sad if the community thinks in such a limited and rather elitist way. Hopefully, since this isn't a programmer-only forum, not everyone will ignore or chastise people who can't code [for one specific system] or actually don't want to code [for one specific system] yet would like to talk about what can be done on these systems. I mean, there a many great game directors, game designers, artists and musicians out there who can't code or don't want to code, and it would be rather pathetic if certain people devalue their input because they aren't programmers, just like it would be rather pathetic if any of those directors, game designers, artists and musicians ignored or chasted any programmer input just because they are maybe bad at game design, art or music, which many/most of them are in my experience, although geniuses at coding for sure. So, I guess we'll see how that plays out in here and what type of people I'm talking to.

 

But, here's "effort", if that's what people are looking for: 

 

https://www.youtube.com/@inceptional/videos

 

https://inceptionalnews.wordpress.com/inceptionals-games/

 

https://inceptionalnews.wordpress.com/anims-by-kirk-d-johnston/

 

https://inceptionalnews.wordpress.com/kirk-d-johnston-artwork/

 

https://inceptionalnews.wordpress.com/kirk-d-johnston-stories/

 

https://gta.fandom.com/wiki/Kirk_Johnston

 

So, with any of those said people who like to make people feel ignored or chastised just because they aren't programmers like them, I hope they really can put up or shut up too.

 

Or, are said people basically trying to imply you only have a right to talk about ideas for SNES if you program for SNES--because that really would be pathetic.

Edited by Kirk_Johnston
  • Like 1
Link to comment
Share on other sites

5 hours ago, Kirk_Johnston said:

Because, despite all the programming talent out there, there's not a lot of actual interesting stuff going on in the SNES development space right now that I can see, and maybe that's a symptom of brains over creativity or something

The way I see it, some people just don't like being in the spotlight.  For example I heard nocash spent 10 years working on fullsnes in secret before he released it.

Link to comment
Share on other sites

26 minutes ago, jeffythedragonslayer said:

The way I see it, some people just don't like being in the spotlight.  For example I heard nocash spent 10 years working on fullsnes in secret before he released it.

I have no doubt about it. I just like to point that out anytime someone alludes to this notion that somehow people shouldn't be allowed to talk about ideas for SNES games/demos/effects/tools/whatever unless they can program directly for the system, like programming is all there is and only programmers are valid. But, yes, there are without doubt some programmers and other types of creative people working on amazing stuff for SNES. There's also not a lot of it coming out at present. I'm genuinely looking forward to the day the SNES development community hits its stride.

Edited by Kirk_Johnston
Link to comment
Share on other sites

One additional observation in the clip below: Along with the scaling laser effect using a window/shape mask, the shadow on the big ship thing when it moves in close to the screen is also using a window/shape mask:

 

So this is a nice example of the backdrop colour and HDMA being used for the simple faux background layer (with faux scrolling ground too), some sprites to add some extra mountain details into that simple background layer (and some for the trees as well. Although those looks a bit meh imo), and also window/shape masks on the lasers and large ship's shadow (and colour math to make them semi-transparent).

Edited by Kirk_Johnston
Link to comment
Share on other sites

Some people don't have the brain mapped in just the right way to handle all the complexities of mixing math, logic, logic skills/application, and memorization of all those variables and figures to code anything, Hello World and beyond.  I learned that the hard way over 20 years ago, only D I got or anything near a D in college...f that class, partly was a mindless ass of a teacher who refused to allow people to get the result by any other means than he wanted, but still, if it doesn't make sense, it can likely NEVER make sense.

 

That should never, ever, be used as a brick over the head to silence someone with a good idea.  Perhaps someone can understand every creeping complexity of something say like the SNES and what the hardware can spit out according to the documents, doesn't make them too stupid and lazy that they refuse to put up or shut up, they just can't physically put up.  *I* can't put up, but I  int he 90s never had to put up with that shit line of thinking in the NES/FC/FDS and SNES community.  I ended up on multiple key development teams due to the (for the time) large library of games, unique games due to weird shit they pulled off(both US and JP stuff at that), and I really understood all the weird complexities of that stuff back then.  I've forgotten more than most know it all types now probably claim to get, get to get attention and coins on youtube begging for it.  But that's how things have shifted over the decades, and if the SNES community is a bunch of supposed elitist d-bags who refuse to think outside the box or take any reasoned rational argument and test it for someone who can't physically do it -- they're pathetic, they're worse than pathetic, they're parasites holding back things from progress the utter worst type of leech.  Now I'm NOT attacking them, this is a big fat WHAT IF...not a big fat F U (unless that really is without a doubt happening.)

 

I used to refer to docs, give ideas on approaches, did a lot of product/feature/compatibility testing and did it through 1996-earlier 00s emulator such as FWNES(first FDS emulator), SNES96/96 with sound/9x, ZSNES to name the most noteworthy and was friends with the primary authors back in the day, also tipped off some early development to GBC as it got stuck and I had developer docs to the hardware ;)  Yeah that kind of goes into making a DIY emulator into a using covered docs illegal as shit, but that's then and now I don't remember (and if I did) won't say which it was either since others developed off of it. :D

 

That's why I follow all of kirks rantings and digging.  I did the same shit in my late teens well into my 20s, got very deep into that stuff, so I get it, I really do.  If he's onto something, respect it, if you have the natural ability to test it... make time, try.

  • Thanks 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...