Jump to content
IGNORED

Another eye-melting SNES mockup


Recommended Posts

1 hour ago, Kirk_Johnston said:

Yeah, I think on SNES the secret is finding novel ways of sneaking the various modes and lesser-used effects liberally throughout each level and such, and multiple of them at the same time.

 

Like in a SNES platformer where the player is a security guard or thief walking through a room full of 8bpp paintings and shining his yellow tinted colour window/shape mask torch in one of eight directions (or more with smooth transitions) looking for thieves in the shadows, then into another primarily Mode 0 room with loads of overlapping parallax and crates and rare artifacts everywhere where the thieves and guard constanlty move behind and in front of all the crates and stuff as the guard searches for the thieves, and then having a later section in the same room switch mode and have part of the floor violently undulating using Mode 2 as charges that the thieves placed to blow up one of the glass cases go off and shakes the whole room, mabye even with Mode 7 in the top half of the screen to rock the room smoothly at the same time, which then awakens a few multi-coloured semi-transparent museum ghosts that start flying around the room and smashing everything as the lights flicker on and off, then a lantern falls and smashes on the floor, setting the room on fire, and the whole scene starts to glow using some fixed colour effect or whatever and slowly wave and ripple using HDMA, and so on.

 

If you have a SNES game that's already striking with great art design and gameplay to start, and have some very cool effects and cool moments happening one after other, I think the potential is there to do some stunning stuff. Rare did much of this in principle in its DKC games, which are some of the most impressive games from that generation, and Genesis developers tended to do this kind of showy thing a lot more moment to moment, possibly to overcome the colour and background layer limitations compared to the SNES there, the Batman and Robin game is a great example, and I think there's even more that could be done on SNES in modern times in the right hands rather than just the typical three full background layers and little else. I'm hoping to see a lot more stuff like that from SNES in the future. :)

 

Note: That's just a totally random sequence of examples I thought about as I typed, so not to be taken too directly and analysed and scrutinised to any great depth.

When people say they are intimidated to develop on the Snes due to not reaching high expectations, what do you think that means? Would they be talking about production value, lacking manpower, impact on gaming culture, just making a fun game, pushing the system, etc., and is it in comparison to the late greats (they had big budgets and big teams), other Snes homebrew, other console homebrew?

 

Edit: legitimately curious, btw. I've seen that brought up a few times before, and I am not sure if this is an actual thing that plagues Snes dev. Is it classic Snes style graphics that must be achieved? Dkc or FF3 style symphonies? Innovative gameplay ala Yoshi's Island? I must know! 😱

 

Edit 2: this is in regards to devs who have gotten over the initial hump of learning the Snes, so I imagine it must be something that is more than that

Edited by JurassicDope
  • Like 2
Link to comment
Share on other sites

1 hour ago, JurassicDope said:

When people say they are intimidated to develop on the Snes due to not reaching high expectations, what do you think that means? Would they be talking about production value, lacking manpower, impact on gaming culture, just making a fun game, pushing the system, etc., and is it in comparison to the late greats (they had big budgets and big teams), other Snes homebrew, other console homebrew?

 

Edit: legitimately curious, btw. I've seen that brought up a few times before, and I am not sure if this is an actual thing that plagues Snes dev. Is it classic Snes style graphics that must be achieved? Dkc or FF3 style symphonies? Innovative gameplay ala Yoshi's Island? I must know! 😱

 

Edit 2: this is in regards to devs who have gotten over the initial hump of learning the Snes, so I imagine it must be something that is more than that

Super Mario World graphics don't even need to be achieved, but people expect it.

  • Like 1
Link to comment
Share on other sites

2 hours ago, Kirk_Johnston said:

Note: That's just a totally random sequence of examples I thought about as I typed, so not to be taken too directly and analysed and scrutinised to any great depth.

 

Soon he'll need to add a new section to his signature "Note: My pseudo-technical posts about what's possible on the SNES should not be scrutinized to point out these things aren't actually possible on the SNES."

  • Like 2
  • Haha 4
Link to comment
Share on other sites

2 hours ago, JurassicDope said:

When people say they are intimidated to develop on the Snes due to not reaching high expectations, what do you think that means? Would they be talking about production value, lacking manpower, impact on gaming culture, just making a fun game, pushing the system, etc., and is it in comparison to the late greats (they had big budgets and big teams), other Snes homebrew, other console homebrew?

 

Edit: legitimately curious, btw. I've seen that brought up a few times before, and I am not sure if this is an actual thing that plagues Snes dev. Is it classic Snes style graphics that must be achieved? Dkc or FF3 style symphonies? Innovative gameplay ala Yoshi's Island? I must know! 😱

 

Edit 2: this is in regards to devs who have gotten over the initial hump of learning the Snes, so I imagine it must be something that is more than that

I think it could be and indeed is a bit all of those things. That's for each person to decide for themselves what they want to do and what they're capable of though. Personally, I'm just discussing what I'm most interested in seeing when it comes to new SNES content and/or what I think could grow the SNES development community. Absolutely any authentic contribution to the SNES community is 100% valid, and each individual should do exactly what they feel comfortable with and not let anyone intimate them either way. Even just genuinely posting in here is great to see. But can you imagine if I let some of the people online intimidate me into just giving up bringing anything to the SNES scene just because I can't directly program on SNES with my own bare hands [for now], and if that applied to anyone and everyone trying to contribute to the SNES community. However, people should still be allowed to dream and say out loud what they want though, and indeed ask for it, even if it comes with high expectations. As long as it's genuine and authentic, it's all worthy.

 

Edit: Of course, if it's a developer asking you to pay money for their new SNES game(s), I think then you have the right to both praise and criticize as you choose as a paying customer (or even potential customer), and indeed say exactly what you want and don't want. And I think any developers asking for money, which means it's a business at that point, should be thick-skinned enough to be able to deal with whatever their customers bring to them (with the realms of sanity and the law, obviously). Business is serious business.

Edited by Kirk_Johnston
Link to comment
Share on other sites

39 minutes ago, jeffythedragonslayer said:

Super Mario World graphics don't even need to be achieved, but people expect it.

Yeah, I would say absolutely nothing needs to be achieved, and no one should ever feel like it has to be just to be worthy of being part of the SNES community. But I personally still want to be blown away with new SNES content, just because that's what exites me, and I subscribe to the idea that people shoud also be allowed to freely ask for what they want without harrassment, however grand it may be. And each person can choose similarly what floats their boat. I'll personally take simple authentic positive chat around SNES in the SNES sub-forum. And I'll personally take brand new SNES games that blow people's expectations out of the water. It's all great and adds to the continued awareness and positivity around SNES. The later is what I personally dream of though. :)

Link to comment
Share on other sites

23 minutes ago, Kirk_Johnston said:

Yeah, I would say absolutely nothing needs to be achieved, and no one should ever feel like it has to be just to be worthy of being part of the SNES community. But I personally still want to be blown away with new SNES content, just because that's what exites me, and I subscribe to the idea that people shoud also be allowed to freely ask for what they want without harrassment, however grand it may be. And each person can choose similarly what floats their boat. I'll personally take simple authentic positive chat around SNES in the SNES sub-forum. And I'll personally take brand new SNES games that blow people's expectations out of the water. It's all great and adds to the continued awareness and positivity around SNES. The later is what I personally dream of though. :)

Well, as i said on another thread (IIRC), things are looking up in the SNES homebrew scene with games like Dottie Flowers and Rex Nobilis.

 

https://www.timeextension.com/news/2023/06/round-up-every-game-showcased-at-the-first-homebrew-summer-showcase-2023

 

The main sticking point for all homebrew devs is the lack of a SGDK equivalent on SNES, which would ease game development on the console.

  • Like 1
Link to comment
Share on other sites

12 minutes ago, KidGameR186496 said:

Well, as i said on another thread (IIRC), things are looking up in the SNES homebrew scene with games like Dottie Flowers and Rex Nobilis.

 

https://www.timeextension.com/news/2023/06/round-up-every-game-showcased-at-the-first-homebrew-summer-showcase-2023

Yeah, two great examples that I'm excited to see more of too.

 

12 minutes ago, KidGameR186496 said:

 

The main sticking point for all homebrew devs is the lack of a SGDK equivalent on SNES, which would ease game development on the console.

Agreed.

 

There are some early examples of this on SNES with things like PVSnesLib, but they do need some more time to fully mature imo. And I'd still personally rather see a self-contained SNES game development tool that's as accessible and intuitive as GameMaker 8.1. Not that the other options aren't totally useable for those people who are so inclined.

 

Edited by Kirk_Johnston
Link to comment
Share on other sites

That showcase is a start for better after market projects, or at least if it's a bit light, homebrew.  I know I brought it up in text if not maybe a visual aide in here awhile back or another thread, but there are more recent and more further back past representations of what a quality home made after market game can be for the system and it makes it more tragic we do NOT see this happen now.

 

For the distant past... Hind Strike, Piko Interactive for a time had a limited license to sell these, and it wasn't cheap because it uses harvested DSPs sadly from good games like Pilotwings to achieve it.  But in that very bit of robbery it took the Helicopter end game reward and turned it into a full game with similar aspects of the missions and prep to the Strike series.  2015 Bubblezap did this, and it's amazing.

 

And then more modern there's the 2020 release of Nekotako from PA Games and wow did I luck into actually obtaining this one.  This is one from the Japanese side and as such so is the website. http://pagam.es/ 

 

This one is more traditional and cute, good fun, a bit more brief I suppose but totally worth the play and happy to have it.  I do not usually pursue aftermarket games but there are these cases where they hit a level of retail of the era quality I crack, this is one, just as is the case with the NES release of Leisure Suit Larry 1 I have, and also on there the translated re-release of Holy Diver but that was retail in Japan.

 

NekoTako can be bought still, not on US shores easily, but an amazon japan version does pop up both the US copy of the game (3 copies left of this post) and the JP release which I have.  https://www.amazon.co.jp/s?k=nekotako+sfc&ref=nb_sb_noss_2

 

 

Also I just realized Cotton 100% SFC is being re-released in a couple days, stumbled on it looking for Nekotako which is nuts, even the mini audio CD of it too.  Not sure how to quite order this but wow, sure as hell beats the gougy loser prices ebay has crapped the bed for it: https://www.kadenken.com/view/item/000000001597   I'm tempted, but I do own a loose cart.

  • Like 4
Link to comment
Share on other sites

13 hours ago, JurassicDope said:

More Translucency effects / parallax layers for the SNES, eh??? That's OP! Planar manipulation sounds like a cutting edge technique, is there a video of it out on YouTube? Sounds like it would really be useful for PCE too.

It is haha. It involves some careful planning, definitely in the bandwidth area but also vram layout. I was talking with a homebrew snes dev last week about it, and they're going to see if they can implement it in their snes project. Once you wrap your head around it, you can start to think of clever ways to use it. There are no videos on it that I know of, but you can think of it as hardware accelerated transparency because of the nature of planar format. While not exactly planar, the Titan demo (I forget which one) on the Megadrive uses the same idea - it turns on a debug mode feature on the MD that OR's the two BG planes together (early models of the MD don't support this tho, but all PAL models do). For planar, think of 4bpp graphics as the OR'ing of 1bit planes (albeit with the 1bit values in specific slots), and then set the corresponding sub-palette to dictate what that looks like. Funny enough, Ninja Spirit on the PCE does this for the 2nd level (Forest area).. with the leaves of the trees and the far pseudo BG layer. It's pretty minimal, but was surprised to see it done in a commercial PCE game.

 

 

Quote

For the most part we've seen the majority of Snes bg modes as "use case" scenarios, to accommodate the overarching gameplay styles of Mode 1 and 7. It's not difficult to imagine making any traditional kind of game with any of the modes (like a platformer), but to really make them worth doing over mode 3 or 7? I admit I haven't really put much thought into, can find something spicy there...

 

An easy way to find artists adjusted to mode 0 art would perhaps be looking into the Gameboy Color scene, as I'm sure they've accumulated a lot of imagination working on those 2bpp gfx with 15bit rgb (or even Kirk himself, he's pretty good). Also certain art styles can lend itself well, like a Pokemon or M&L: Super Star Saga kind of rendering.

 

 It's definitely going to dictate art direction IMO. Maybe even to the point where it doesn't look like a SNES game anymore, but something indie retro with 8bit flare.. but obviously more capable. I think I mentioned it before, but something like Shovel Knight. There's no way that would be an 8bit game (I remember the authors trying to justifying it as near NES capable because of.. "mappers" haha). But something along those lines, place nice with art design that doesn't need color fidelity packed into a tight area. IMO, transparency is sort of off putting for that design too, but doing vertical "copper" gradients would fit right in (ala HDMA). I think you can safely do 8 color changes per line (though that might be back-to-back, and random slots being less).. but that would give you the ability to apply it to different BG planes (or sections within them). Something like that would be aesthetically pleasing. I had a few pics that represented that look. 

 

Quote

4 fully free planes of parallax is pretty big. May need to be careful not to make the background too busy with parallax, distracting from gameplay. Using one of the layers like a very "On-Screen" hud, or saving it for boss would be nice. I would have fun pulling off something like that scene from the SFC game S.O.S. lol. Maybe I can mockup something that tries to keep a 16bit look with 4 2bpp parallax layers...

 

 Yeah, the issue becomes a balance between making the 4 individual planes blatantly apparent, but at the same time not clobbering your art/level design and/or make the screen too "busy".  If you're trying to make 2bpp tiles look 16bit, then you're definitely in for a challenge haha. But, I'm totally not against it - would love for it to be proven otherwise. I spent a lot of time studying Amiga games that tried to do a lot with just 7 colors per playfield. Or even Agony - which uses 1bit playfields (AFAIK).. but a copper gradient. I was trying to do a version of Agony for PCE because of the planar trick and unlimited writing to vram during active display. But I don't think Agony looks good compared to anything SNES can do even in mode 1, but it's a demonstration of 1bit and 2bit playfields. If you do some mockups, please post! Here, twitter, snes dev discord (or my dev discord), etc. Would love to see it!

 

 

Quote

 Prerendered gfx on the other hand would be somewhat tough in mode 0, coordinating colors would be tricky. Though 8bpp would be a great fit for that graphic style. Imagine doing a Survival Horror like how GBC handled Alone In The Dark, still screens, but with either Snes's 8bpp or your Tg16's high res method 💪

 Funny enough, GBC was my first console that I dev'd on back in late 1999. I really liked that lil' console. Was both happy and sad when the GBA came out - it meant the end of the GBC. But yeah.. unfortunately 8bpp and PCE high res 4bpp (both take up the same amount of space) eat up a TON of memory (rom) for unique large graphics. TG has the CD unit (and arcade card), but SNES dev potentially would need the MSU-1 or a custom mapper. I had played through Zelda's Adventure on the CD-I, ripping the BG screens, and experimented with making a demo on the TG16. TG16 having 16 palettes made it nice in that each screen would have a dedicated 8 subpalettes, meaning you could scroll between two screens and each having their own color "space", but the amount of storage needed for those BGs in high-res mode really added up. So much so, that I decided to experiment with 352px and 256px instead to save on storage space. They looked really good even in the lower res, but still took up a lot~.

 

 Everyone always forgets about the PC-Engine Super Grafx.. but I have plans for it. Now that SHD3, Mister, emulators, etc support it - I think it's a viable platform since "niche" seems to be gaining popularity in retro dev these days. People want something special/different/alternate-universe-fantasy, etc. That means that "Bonk's Adventure" demo I made for the PCE... would be 4 layers of 4bpp graphics on the SGX! I think an "SGX" add-on for core PCE consoles is more or less trivial, and also an option. But that's neither here nor there; we need an actual SGX homebrew game first.

 

 

 

 Anyways, yeah - I think MD getting a LOT of attention for its more advanced homebrew and demos.. is already having an effect on SNES dev. People are already asking.. so what's available on SNES for dev'ing tools. And the resurgence of GB with GB Studio too. All this homebrew/dev attention will indirectly drive that tool and environment development on SNES. While I'm not interestied in a SNESmaker for SNES, I think a mature "C" solution with modular library support is what's needed for more serious development. C won't be as performant as assembly, but that's where in-line assembly comes along for the ride. I've already seen how HUGE performance gains can be made with just a little bit of sprinkled ASM in TG16 "C" (HuC) projects, and how well that worked out, so I know the same would apply to SNES. I've jokingly threatened to port HuC over to SNES if a "C" solution isn't figured out by the next year hahah. Luckily, a LLVM is being worked-on/adapted for SNES.

 

 

 

  • Like 4
Link to comment
Share on other sites

2 hours ago, turboxray said:

People want something special/different/alternate-universe-fantasy, etc.

Something in this category: Ian Michael, the most prolific dev in the Dreamcast scene, created some "Amiga16" games. That is, standard Amiga games with CD audio & FMV - a fantasy console which runs on the Dreamcast. Pretty cool IMO, pretty creative.

 

It even runs the backgrounds at a higher framerate - he says the original scrolling ran at 16FPS, he's got it up to 30FPS!

 

 

  • Like 2
Link to comment
Share on other sites

6 hours ago, Biff Burgertime said:

Something in this category: Ian Michael, the most prolific dev in the Dreamcast scene, created some "Amiga16" games. That is, standard Amiga games with CD audio & FMV - a fantasy console which runs on the Dreamcast. Pretty cool IMO, pretty creative.

 

It even runs the backgrounds at a higher framerate - he says the original scrolling ran at 16FPS, he's got it up to 30FPS!

 

 

As a longtime AMIGA fanboy who sadly owns no hardware BUT has 4 DREAMCASTS I am definitely looking into this and this guy works. Thanks for posting. 

  • Like 1
Link to comment
Share on other sites

10 hours ago, turboxray said:

New drinking game; every time Kirk mentions authentic and snes sub-forum in a post...

 

8 hours ago, Austin said:

You'd be dead five minutes into that game. 🤷‍♂️

Yeah, you'd be in a space having more of an alcohol blood level to measure than blood alcohol.  Perhaps the best way to do this safely and to our benefit.  Each time he does that, we create a new post in this forum to discuss the system, but fun stuff, the games, favorite music bits, quirky visuals, something related to anything but programming, speculation, and dreaming about stuff that the hardware would choke attempting or outright fail at.  He drags the place down with the kool aid fire hose he has going, and we clean it up with some nice things to actually discuss.  Perhaps even pick a game and pick apart things about it, lots of material to take a swing at.

  • Like 1
Link to comment
Share on other sites

19 hours ago, Tanooki said:

That showcase is a start for better after market projects, or at least if it's a bit light, homebrew.  I know I brought it up in text if not maybe a visual aide in here awhile back or another thread, but there are more recent and more further back past representations of what a quality home made after market game can be for the system and it makes it more tragic we do NOT see this happen now.

 

For the distant past... Hind Strike, Piko Interactive for a time had a limited license to sell these, and it wasn't cheap because it uses harvested DSPs sadly from good games like Pilotwings to achieve it.  But in that very bit of robbery it took the Helicopter end game reward and turned it into a full game with similar aspects of the missions and prep to the Strike series.  2015 Bubblezap did this, and it's amazing.

 

And then more modern there's the 2020 release of Nekotako from PA Games and wow did I luck into actually obtaining this one.  This is one from the Japanese side and as such so is the website. http://pagam.es/ 

 

This one is more traditional and cute, good fun, a bit more brief I suppose but totally worth the play and happy to have it.  I do not usually pursue aftermarket games but there are these cases where they hit a level of retail of the era quality I crack, this is one, just as is the case with the NES release of Leisure Suit Larry 1 I have, and also on there the translated re-release of Holy Diver but that was retail in Japan.

 

NekoTako can be bought still, not on US shores easily, but an amazon japan version does pop up both the US copy of the game (3 copies left of this post) and the JP release which I have.  https://www.amazon.co.jp/s?k=nekotako+sfc&ref=nb_sb_noss_2

 

 

Also I just realized Cotton 100% SFC is being re-released in a couple days, stumbled on it looking for Nekotako which is nuts, even the mini audio CD of it too.  Not sure how to quite order this but wow, sure as hell beats the gougy loser prices ebay has crapped the bed for it: https://www.kadenken.com/view/item/000000001597   I'm tempted, but I do own a loose cart.

Beautiful! This gives me a good idea of reception for Snes homebrew!

It feels like a crime to harvest original cartridges 🥺 I did a little bit of searching, and I'm not sure if there is yet a solid FPGA solution to emulate enhancement chips that we can distribute with new cartridges. There is a general consensus that it will be costly, but that's easily offset as prices can be adjusted for a luxurious item. There would be an audience, who wouldn't want new games that push the SA1 / GSU / DSP to the limit? ;) To keep with authenticity, hopefully there are community members with test carts using real chips that could test compatibility.

15 hours ago, turboxray said:

It is haha. It involves some careful planning, definitely in the bandwidth area but also vram layout. I was talking with a homebrew snes dev last week about it, and they're going to see if they can implement it in their snes project. Once you wrap your head around it, you can start to think of clever ways to use it. There are no videos on it that I know of, but you can think of it as hardware accelerated transparency because of the nature of planar format. While not exactly planar, the Titan demo (I forget which one) on the Megadrive uses the same idea - it turns on a debug mode feature on the MD that OR's the two BG planes together (early models of the MD don't support this tho, but all PAL models do). For planar, think of 4bpp graphics as the OR'ing of 1bit planes (albeit with the 1bit values in specific slots), and then set the corresponding sub-palette to dictate what that looks like. Funny enough, Ninja Spirit on the PCE does this for the 2nd level (Forest area).. with the leaves of the trees and the far pseudo BG layer. It's pretty minimal, but was surprised to see it done in a commercial PCE game.

 

Ahhh, that sounds awesome! I will look into planar gfx soon, to see if I can make any sense of it. So... let's say I am working on a Snes BG mode that has 4bpp backgrounds (like mode 1). And I pixel art a tiled image as pseudo 3bpp gfx (using just the first 8 entries in the palette). The other half of the palette would be matching colors of the 1st half, but faded because it's pre-blended with a fog color. Then we make animated 1bpp gfx of "scrolling fog". Are we basically OR'ing the animated fog bitplane with the other 3 bitplanes to create this effect? If this is correct (or at least the gist of it), I imagine we could apply a fog bitplane on any tile no matter the palette, as long as it's got that pre-blended half?

I've seen that weird PAL MD thing, it's such an awesome effect XD Would take advantage of that with a game that can detect the device (NTSC / PAL)

Quote

 It's definitely going to dictate art direction IMO. Maybe even to the point where it doesn't look like a SNES game anymore, but something indie retro with 8bit flare.. but obviously more capable. I think I mentioned it before, but something like Shovel Knight. There's no way that would be an 8bit game (I remember the authors trying to justifying it as near NES capable because of.. "mappers" haha). But something along those lines, place nice with art design that doesn't need color fidelity packed into a tight area. IMO, transparency is sort of off putting for that design too, but doing vertical "copper" gradients would fit right in (ala HDMA). I think you can safely do 8 color changes per line (though that might be back-to-back, and random slots being less).. but that would give you the ability to apply it to different BG planes (or sections within them). Something like that would be aesthetically pleasing. I had a few pics that represented that look. 


Retro styled indie titles would be great for mode 0. There was a youtube video that gave these kinds of games a name, forgot what it was, but basically they appear retro but are embellished in many ways impossible on actual retro consoles. It would be fun to develop something on NES, then porting it to SNES with all the fixings of HDMA gradients, parallaxes, color math, mode 7, particles, etc.

 

Quote

 Yeah, the issue becomes a balance between making the 4 individual planes blatantly apparent, but at the same time not clobbering your art/level design and/or make the screen too "busy".  If you're trying to make 2bpp tiles look 16bit, then you're definitely in for a challenge haha. But, I'm totally not against it - would love for it to be proven otherwise. I spent a lot of time studying Amiga games that tried to do a lot with just 7 colors per playfield. Or even Agony - which uses 1bit playfields (AFAIK).. but a copper gradient. I was trying to do a version of Agony for PCE because of the planar trick and unlimited writing to vram during active display. But I don't think Agony looks good compared to anything SNES can do even in mode 1, but it's a demonstration of 1bit and 2bit playfields. If you do some mockups, please post! Here, twitter, snes dev discord (or my dev discord), etc. Would love to see it!

Hahaha, yeah, I will soon take a jab at it... but looking at some other examples again (like the ones converted with the Rilden quantizer), it's already not lookin' so hot for even the top-tier AAA pixel art 🤣 3 colors per a tile is not boding well for a highly detailed classic look, but stylized stuff that appeared a lot during the GBA era and beyond may have a better chance.

Quote

Everyone always forgets about the PC-Engine Super Grafx.. but I have plans for it. Now that SHD3, Mister, emulators, etc support it - I think it's a viable platform since "niche" seems to be gaining popularity in retro dev these days. People want something special/different/alternate-universe-fantasy, etc. That means that "Bonk's Adventure" demo I made for the PCE... would be 4 layers of 4bpp graphics on the SGX! I think an "SGX" add-on for core PCE consoles is more or less trivial, and also an option. But that's neither here nor there; we need an actual SGX homebrew game first.

 

Super Grafx! All of those sprites per a scanline, and matched with the arcade card and cd... Very niche, but a very dedicated crowd 💪

 

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

7 hours ago, JurassicDope said:

Beautiful! This gives me a good idea of reception for Snes homebrew!

It feels like a crime to harvest original cartridges 🥺 I did a little bit of searching, and I'm not sure if there is yet a solid FPGA solution to emulate enhancement chips that we can distribute with new cartridges. There is a general consensus that it will be costly, but that's easily offset as prices can be adjusted for a luxurious item. There would be an audience, who wouldn't want new games that push the SA1 / GSU / DSP to the limit? ;) To keep with authenticity, hopefully there are community members with test carts using real chips that could test compatibility.

I didn't dig into it, because I didn't like how it played on evercade when I had one, but Xenocrisis is using some self made special chip from my understanding, not sure if it's a FPGA or whatever but I think it handles the audio among other little things.  If that's true, something has been now commercially done in that realm and people didn't get sour over it.

  • Like 1
Link to comment
Share on other sites

On 9/28/2023 at 2:53 AM, JurassicDope said:

I will look into planar gfx soon, to see if I can make any sense of it. So... let's say I am working on a Snes BG mode that has 4bpp backgrounds (like mode 1). And I pixel art a tiled image as pseudo 3bpp gfx (using just the first 8 entries in the palette). The other half of the palette would be matching colors of the 1st half, but faded because it's pre-blended with a fog color. Then we make animated 1bpp gfx of "scrolling fog". Are we basically OR'ing the animated fog bitplane with the other 3 bitplanes to create this effect? If this is correct (or at least the gist of it), I imagine we could apply a fog bitplane on any tile no matter the palette, as long as it's got that pre-blended half?

The nice thing, is that you don't need to do the OR'ing part, right? Just write to that plane and the hardware takes care of it - free hardware assist. So yeah, if you use the lower 3 planes for lower 7 colors, and you setup the palette in such a way that when any bit is set in plane #4, then it would use the upper 7 colors. Should be able to DMA just a byte at a time to vram on the SNES (that was something I never tested years ago). You could also apply dither to the 4th plane to get more than just a single on/off transparency difference. That's one way. Another would be to divide it into two 2bit planes. This works in the 16 color subpalette too.

 

 I'll give away a lil' bit of my secrets. Here's an example on the PCE (that's directly portable to the SNES, even tho it's trying to replicate the snes original hahah).

This is SMW ghost house room for one of the bosses. I converted it to 2bpp tiles on PCE (it's a quick and dirty conversion; light rays could use some manual touch up but it's decent enough for proof of concept).

MzwsFxdQGX0t.png?o=1

 

And here's the 8 palettes of 4 colors.

image.png

And here's the ghost 2bpp layer that I'll composite over:

image.png

Normally, you only have 3 colors for drawing on the "upper" 2bpp "layer" because you need the base color #0 so that normal stuff shows underneath it - basically the upper 2bpp layer is like a sprite and needs an invisiable/see-thru color slot. But in that ghost pic I have 4 colors (the extra 4th color is the mouth). Since I have an extra set of 8 palettes I didn't use, I can have alt set for the mouth color. But it also requires setting subpalettes dynamically (changing them for that overlapping area on the tilemap). Originally, I was doing this with sprites. As in, manually creating a sprite layer that just has the image data underneath it, and then it gets paired with this. It's a small section, so doesn't require much CPU resource per frame to do it. I had done a similar approach with replicating the first boss of Mystical Ninja on the PCE. It required two sprite layers with a manual cut-out and one set of translucent color pixels for each layer (and then overlaid to the original 3bpp + 1bpp layer). If I had taken the sprite approach for the mouth in the above example, then I would have 8 more palettes for 4bpp.. so mixing modes as long as the translucent ghost doesn't over lay on them (I would clip for that anyway) - basically I could have done that with the bricks layer on the side walls, making them not part of the transparency tile sets - and save a couple 2bpp palette entries.

 

 And lastly, since the translucency effect relies on the colors in the subpalettes - I can control the type of transluceny (color, tint, etc).. as well as fading between no translucency (solid colors), to any levels in between (fading in and out).

 

 On top of that, if you have vram to spare, you can setup the normal 8x8 tiles associated with a palette.. to 8x4, 8x2, or even 8x1 if you clip the screen a little bit. Though that also means more cpu overhead if you're also changing the palette associations on the fly. Leaving them static just requires an HDMA (or interrupt) to do X|Y line adjustment every X num of lines. But it would give you a little bit more color freedom. If you're trying to do an 8x1 approach in mode 0 though, for all 4 layers (and for full screen).. that's going to each up a chunk of vram. But you could have sections of the map "high-res" palette block association and other areas lower res or base res (8x8), to save on vram.

 

 Just a side note: The way I have the tiles laid out in vram and how I write to them - I only need the ghost tilesets to be pre-shifted 8 pixels to the right (so 8 copies of 2bpp images).. an old ST trick. I don't have to waste time trying to shift the planar pixels via manual cpu resource. And I get Y starting point/position for free.

 

 I had some ideas of how to do this on the MD, but it wouldn't be the planar approach and would involve quite a bit more cpu resource too - but I'm sure I could pull off the ghost house effect at 60fps.

 

On 9/28/2023 at 2:53 AM, JurassicDope said:

Hahaha, yeah, I will soon take a jab at it... but looking at some other examples again (like the ones converted with the Rilden quantizer), it's already not lookin' so hot for even the top-tier AAA pixel art 🤣 3 colors per a tile is not boding well for a highly detailed classic look, but stylized stuff that appeared a lot during the GBA era and beyond may have a better chance.

 

 Rilden's tool is great, but I found for stuff like this it was better to do it by hand. Maybe Rilden's tool to get a rough estimate or first-pass. I don't use it for 2bpp stuffs, even when I do want a first-stage lossy conversion. I use my own palette sorting and conversion tool. Rilden's tool is amazing, but for conversions that need attention to detail and when you need the ability to make corrections to the tile and palettes - then I use my own tool. I use my own tool for either loss-less conversions or taking in Rilden's output as a first-pass for further tweaking purposes.

 

On 9/28/2023 at 2:53 AM, JurassicDope said:

Super Grafx! All of those sprites per a scanline, and matched with the arcade card and cd... Very niche, but a very dedicated crowd 💪

 And hardware window reg/area transparency! Basically like the snes.

Edited by turboxray
  • Like 2
Link to comment
Share on other sites

12 hours ago, turboxray said:

The nice thing, is that you don't need to do the OR'ing part, right? Just write to that plane and the hardware takes care of it - free hardware assist. So yeah, if you use the lower 3 planes for lower 7 colors, and you setup the palette in such a way that when any bit is set in plane #4, then it would use the upper 7 colors. Should be able to DMA just a byte at a time to vram on the SNES (that was something I never tested years ago). You could also apply dither to the 4th plane to get more than just a single on/off transparency difference. That's one way. Another would be to divide it into two 2bit planes. This works in the 16 color subpalette too.

 

 I'll give away a lil' bit of my secrets. Here's an example on the PCE (that's directly portable to the SNES, even tho it's trying to replicate the snes original hahah).

This is SMW ghost house room for one of the bosses. I converted it to 2bpp tiles on PCE (it's a quick and dirty conversion; light rays could use some manual touch up but it's decent enough for proof of concept).

MzwsFxdQGX0t.png?o=1

 

And here's the 8 palettes of 4 colors.

image.png

And here's the ghost 2bpp layer that I'll composite over:

image.png

Normally, you only have 3 colors for drawing on the "upper" 2bpp "layer" because you need the base color #0 so that normal stuff shows underneath it - basically the upper 2bpp layer is like a sprite and needs an invisiable/see-thru color slot. But in that ghost pic I have 4 colors (the extra 4th color is the mouth). Since I have an extra set of 8 palettes I didn't use, I can have alt set for the mouth color. But it also requires setting subpalettes dynamically (changing them for that overlapping area on the tilemap). Originally, I was doing this with sprites. As in, manually creating a sprite layer that just has the image data underneath it, and then it gets paired with this. It's a small section, so doesn't require much CPU resource per frame to do it. I had done a similar approach with replicating the first boss of Mystical Ninja on the PCE. It required two sprite layers with a manual cut-out and one set of translucent color pixels for each layer (and then overlaid to the original 3bpp + 1bpp layer). If I had taken the sprite approach for the mouth in the above example, then I would have 8 more palettes for 4bpp.. so mixing modes as long as the translucent ghost doesn't over lay on them (I would clip for that anyway) - basically I could have done that with the bricks layer on the side walls, making them not part of the transparency tile sets - and save a couple 2bpp palette entries.

 

 And lastly, since the translucency effect relies on the colors in the subpalettes - I can control the type of transluceny (color, tint, etc).. as well as fading between no translucency (solid colors), to any levels in between (fading in and out).

 

 On top of that, if you have vram to spare, you can setup the normal 8x8 tiles associated with a palette.. to 8x4, 8x2, or even 8x1 if you clip the screen a little bit. Though that also means more cpu overhead if you're also changing the palette associations on the fly. Leaving them static just requires an HDMA (or interrupt) to do X|Y line adjustment every X num of lines. But it would give you a little bit more color freedom. If you're trying to do an 8x1 approach in mode 0 though, for all 4 layers (and for full screen).. that's going to each up a chunk of vram. But you could have sections of the map "high-res" palette block association and other areas lower res or base res (8x8), to save on vram.

 

 Just a side note: The way I have the tiles laid out in vram and how I write to them - I only need the ghost tilesets to be pre-shifted 8 pixels to the right (so 8 copies of 2bpp images).. an old ST trick. I don't have to waste time trying to shift the planar pixels via manual cpu resource. And I get Y starting point/position for free.

 

 I had some ideas of how to do this on the MD, but it wouldn't be the planar approach and would involve quite a bit more cpu resource too - but I'm sure I could pull off the ghost house effect at 60fps.

 

 

 Rilden's tool is great, but I found for stuff like this it was better to do it by hand. Maybe Rilden's tool to get a rough estimate or first-pass. I don't use it for 2bpp stuffs, even when I do want a first-stage lossy conversion. I use my own palette sorting and conversion tool. Rilden's tool is amazing, but for conversions that need attention to detail and when you need the ability to make corrections to the tile and palettes - then I use my own tool. I use my own tool for either loss-less conversions or taking in Rilden's output as a first-pass for further tweaking purposes.

 

 And hardware window reg/area transparency! Basically like the snes.

... Amazing! Will have to go over this a few times to try to understand it, it's very advance, deep into hardware knowledge, and layered with multiple tricks 🙀 I still have much to study!

 

Been occasionally learning the past few years. Fundamentals are important, though it's hard to not get ahead of myself trying jump straight in to game devving... retro game devving! So far my experience with homebrew has been very similar to Domeshtan:

 

...except for Sega Genesis.

 

I have a limited "hacky" way of getting a simple translucency effect on MD (can send you a build if you want). My 2 current methods are wasteful, though better ways are being worked on 😎

image.thumb.png.7675f19ab3da2cd0fcd4e51e234a6b35.png

 

Here's my WIP so far for the mode 0, definitely very restrictive. I currently have maybe 6 bg layers (all 2bpp), I need to figure out what's best to get it down to 4 layers, and then will have to clean it up since some tiles are over 3 colors... will probably make some cuts.

 

image.thumb.png.000ab0503a76b61b79a332526961b28f.png

Edited by JurassicDope
  • Like 3
Link to comment
Share on other sites

4 hours ago, JurassicDope said:

Here's my WIP so far for the mode 0, definitely very restrictive. I currently have maybe 6 bg layers (all 2bpp), I need to figure out what's best to get it down to 4 layers, and then will have to clean it up since some tiles are over 3 colors... will probably make some cuts.

 

image.thumb.png.000ab0503a76b61b79a332526961b28f.png

A lovely start.

 

Keep in mind that you can use the backdrop colour to help with the lowest background layer, so you effectively have 4 visible colours per tile minimum, and possibly more depending on whether/how you use HDMA to change the colour down the screen. Also, if there's any horizontal chunks of the screen where you're never seeing the four layers at any point anyway, you can effectively combine multiple layers into a single layer, so you have quite a few more colours there too (this was my approach in the SotN mockup below). You can also still use colour math, which means you can have a bit of multi-coloured semi-transparency in places for both cool effects and also more colours on-screen in those areas where it's visible too. Switching background modes down the screen is ever a potential option too, depending on the situation, as we mentioned previously. And, obviously, if you have them spare, a few sprites used here and there in the backgrounds can visually convey an overall scene with more colours too. This is basically the approach I used in my various Mode 0 tests and mockups:

 

And in my shump examples, there's often a few palettes spare, and still loads of unique tiles free, so still more can be done there with the colour and details too.

 

You just have to get creative. And keep in mind that the typical point of Mode 0, imo, is all the extra parallax it allows, so try to get as much of that in there as possible, both using actual overlapping layers with priority changes and also lots of row/line scrolling to add even more parallax, to really justify using the mode in the first place.

 

Lastly, Maxwell demonstrated and confirmed to me that you can also use HDMA to change the colours in the palette of say a 2bpp HUD down the screen to make it have more colours and overcome some of the limitations there too, which you can see the smooth gradient in the energy bar and all the text for example:

 

Note: I actually did some tests--can't remember if I sent them to Maxwell--but they effectively showed that Mode 0 plus a bit of HDMA on the backdrop colour could replicate the backgrounds in the example level he was using very effectively (Rilden's Tile Palette Quantization tool has been a Godsend for this kind of stuff), which means someone who wanted to could have a fighting game with visuals that looked basically the same in the background you see above, to a very reasonable degree, but also with say three overlapping parallax layers plus use one for the HUD as he has done there. Or, technically, you could even have a single 256-colour Mode 7 background there and have it smoothly zooming in and out like the original game, although you'd then have to do the HUD with sprites or via some other method. There's always lots of options with SNES, especially when it comes to the backgrounds.

 

Just some things to think about. :)

Edited by Kirk_Johnston
Link to comment
Share on other sites

3 hours ago, Kirk_Johnston said:

A lovely start.

 

Keep in mind that you can use the backdrop colour to help with the lowest background layer, so you effectively have 4 visible colours per tile minimum, and possibly more depending on whether/how you use HDMA to change the colour down the screen. Also, if there's any horizontal chunks of the screen where you're never seeing the four layers at any point anyway, you can effectively combine multiple layers into a single layer, so you have quite a few more colours there too (this was my approach in the SotN mockup below). You can also still use colour math, which means you can have a bit of multi-coloured semi-transparency in places for both cool effects and also more colours on-screen in those areas where it's visible too. Switching background modes down the screen is ever a potential option too, depending on the situation, as we mentioned previously. And, obviously, if you have them spare, a few sprites used here and there in the backgrounds can visually convey an overall scene with more colours too. This is basically the approach I used in my various Mode 0 tests and mockups:

 

And in my shump examples, there's often a few palettes spare, and still loads of unique tiles free, so still more can be done there with the colour and details too.

 

You just have to get creative. And keep in mind that the typical point of Mode 0, imo, is all the extra parallax it allows, so try to get as much of that in there as possible, both using actual overlapping layers with priority changes and also lots of row/line scrolling to add even more parallax, to really justify using the mode in the first place.

 

Lastly, Maxwell demonstrated and confirmed to me that you can also use HDMA to change the colours in the palette of say a 2bpp HUD down the screen to make it have more colours and overcome some of the limitations there too, which you can see the smooth gradient in the energy bar and all the text for example:

 

Note: I actually did some tests--can't remember if I sent them to Maxwell--but they effectively showed that Mode 0 plus a bit of HDMA on the backdrop colour could replicate the backgrounds in the example level he was using very effectively (Rilden's Tile Palette Quantization tool has been a Godsend for this kind of stuff), which means someone who wanted to could have a fighting game with visuals that looked basically the same in the background you see above, to a very reasonable degree, but also with say three overlapping parallax layers plus use one for the HUD as he has done there. Or, technically, you could even have a single 256-colour Mode 7 background there and have it smoothly zooming in and out like the original game, although you'd then have to do the HUD with sprites or via some other method. There's always lots of options with SNES, especially when it comes to the backgrounds.

 

Just some things to think about. :)

Why don't you actually breakdown how you would go about doing these things you claim you could do with better tools. How would you use HDMA for these effects? How would you switch the background modes mid screen and what would it look like?

 

And as stated previously, none of your Mode 0 demos require mode 0. Most if not all could be done on 3 layers or even 2.

  • Like 1
Link to comment
Share on other sites

9 hours ago, Kirk_Johnston said:

Keep in mind that you can use the backdrop colour to help with the lowest background layer, so you effectively have 4 visible colours per tile minimum

You absolutely do not have 4 colors per-tile on the lowest background layer. At best, it's 3 colors per tile, then the 4th color can be changed per-scanline, assuming there's an HDMA channel open for that.

 

9 hours ago, Kirk_Johnston said:

Also, if there's any horizontal chunks of the screen where you're never seeing the four layers at any point anyway, you can effectively combine multiple layers into a single layer, so you have quite a few more colours there too (this was my approach in the SotN mockup below)

This will require some coordinating to get to work: you need at least one HDMA channel to set the vertical/horizontal scroll partway down the screen, and you also have to keep in mind that there aren't enough priority bits to arbitrarily layer all 4 layers/sprites, which might limit the exact way you can do splits like this. The ordering can be found here: https://snes.nesdev.org/wiki/Backgrounds

 

9 hours ago, Kirk_Johnston said:

You can also still use colour math, which means you can have a bit of multi-coloured semi-transparency in places for both cool effects and also more colours on-screen in those areas where it's visible too

Keep in mind that turning on color math for a layer means it's on for the whole layer; if you want to switch color math on/off for a horizontal segment of the screen, that needs an HDMA channel. I'm emphasizing the need for HDMA channels in all this because you will likely only have 7 available at the very most, and even some of those might be needed for other purposes -- in my engine, for example, there are only 5 for screen effects. A big part of effects design on the SNES is figuring out how to allocate the HDMA channels effectively.

 

9 hours ago, Kirk_Johnston said:

And, obviously, if you have them spare, a few sprites used here and there in the backgrounds can visually convey an overall scene with more colours too

You have to be REALLY careful with this, because sprites used for BG decorations are gonna eat into your 16KB budget for sprite graphics, and there may not be enough bandwidth to stream in new graphics as needed. This would need to be determined when planning the layout for your sprite segment in VRAM, which would need to be coordinated with your programmer. You also cannot put sprites behind the 3rd or 4th layer if those layers are low priority.

 

While I'm here, I suppose I'll address the effect in the original post too...

The two windows can't be different colors, they both are using the fixed color to bend onto the background. That means you would definitely need your sprite overlays, and the solid color window layer portion of the goomba would be semitransparent over top of the HDMA background color effect you're doing. You're also scrolling this thing horizontally, which means that at the very least (assuming no vertical scrolling on that object), you have to update the HDMA table on every single line where the window shapes change. It would probably be fine for a blocky shape like this, but anything with more definition, you're potentially updating up to 446 different table entries, which is gonna be a non-negligible CPU cost. Any vertical scrolling will pretty much require rewriting an entire screen's worth of table entries completely every frame...so this is definitely not the cheapest effect. This is why I'm only vertically scrolling my window layers, since that just requires changing the offset in the HDMA table instead of any costly rewriting.

  • Thanks 1
Link to comment
Share on other sites

1 hour ago, KulorXL said:

You absolutely do not have 4 colors per-tile on the lowest background layer. At best, it's 3 colors per tile, then the 4th color can be changed per-scanline, assuming there's an HDMA channel open for that.

I agree, you don't literally have four colours per tile.

 

And, yeah, I basically achieved a result that looks like there's more than three colours in certain tiles in the furthest background layer in my shmup using the method you described (see the tiles with the fire on the buildings for example):

 

1 hour ago, KulorXL said:

 

This will require some coordinating to get to work: you need at least one HDMA channel to set the vertical/horizontal scroll partway down the screen, and you also have to keep in mind that there aren't enough priority bits to arbitrarily layer all 4 layers/sprites, which might limit the exact way you can do splits like this. The ordering can be found here: https://snes.nesdev.org/wiki/Backgrounds

Yes, exactly. And, if the coordination is too much work, there's always the possible option to switch to another background mode and just use more colours per tile as per normal on that part of the screen, assuming the circumstances are conducive to that. It's important to pick the method that is best for the desired result, and ideally the least amount of hassle too.

 

1 hour ago, KulorXL said:

 

Keep in mind that turning on color math for a layer means it's on for the whole layer; if you want to switch color math on/off for a horizontal segment of the screen, that needs an HDMA channel. I'm emphasizing the need for HDMA channels in all this because you will likely only have 7 available at the very most, and even some of those might be needed for other purposes -- in my engine, for example, there are only 5 for screen effects. A big part of effects design on the SNES is figuring out how to allocate the HDMA channels effectively.

Precisely. You have to keep in mind how many HDMA channels there are, allocate them effectively, and make sure not to go over them.

 

1 hour ago, KulorXL said:

 

You have to be REALLY careful with this, because sprites used for BG decorations are gonna eat into your 16KB budget for sprite graphics, and there may not be enough bandwidth to stream in new graphics as needed. This would need to be determined when planning the layout for your sprite segment in VRAM, which would need to be coordinated with your programmer. You also cannot put sprites behind the 3rd or 4th layer if those layers are low priority.

Yeah, sprite management on SNES really is very important, and it needs a lot of patience and good problem solving skills to get the best out of the limited sprite VRAM (Rare seemed especially good at that imo). True that you can't put sprites behind the lowest background layer on the lowest priority, so something to keep in mind.

 

1 hour ago, KulorXL said:

 

While I'm here, I suppose I'll address the effect in the original post too...

The two windows can't be different colors, they both are using the fixed color to bend onto the background. That means you would definitely need your sprite overlays,

 

 

I suspected it may indeed not be possible to have two different coloured windows on the same scanline, so I made sure to provide a few alternatives of how to go about this in my blog post just in case. And, I can't remember if I mentioned this there, but the main thing is the end result of just having that extra Goomba along with everything else on-screen rather than thinking I have to absolutely to stick to only one very precise way of doing the effect to achieve the result.

 

1 hour ago, KulorXL said:

 

and the solid color window layer portion of the goomba would be semitransparent over top of the HDMA background color effect you're doing.

Yeah, that was something I thought might be an issue, specifically whether it would display correctly over the backdrop colour, so I had already come up with what I think is a simple alternative method there just in case that was the case: The coloured lines would just be combined onto the same background layer as the giant Goomba at the far back of the scene, and the lines would then be palette shifted and/or changed with HDMA down the screen to create the same visual end result of it looking like they are scrolling separately to the giant Goomba. And then, assuming I have this correct, because the colour window Goomba would now be done entirely on top of a full background layer at all times, I think it would display as originally intended. Basically, something like that.

 

So, the combined furthest background layer would look something like this:

Combined.png.0d7b290492caa7e069b6f167d3b527e5.png

 

Feel free to clarify if this alternative method would work or not.

 

1 hour ago, KulorXL said:

 

You're also scrolling this thing horizontally, which means that at the very least (assuming no vertical scrolling on that object), you have to update the HDMA table on every single line where the window shapes change. It would probably be fine for a blocky shape like this, but anything with more definition, you're potentially updating up to 446 different table entries, which is gonna be a non-negligible CPU cost. Any vertical scrolling will pretty much require rewriting an entire screen's worth of table entries completely every frame...so this is definitely not the cheapest effect. This is why I'm only vertically scrolling my window layers, since that just requires changing the offset in the HDMA table instead of any costly rewriting.

True. You need to be careful with how this is done so as not to waste too much CPU time. This is part of the reason for a simple Goomba shape only moving left and right here rather than something very complex. So that's a good reminder for me and anyone else trying such methods.

 

It's also important to keep in mind the SNES has a lot of different and often convoluted ways of getting to the end result. So, sometimes the initial idea you come up with might not be achievable in exactly the method you envisioned out the gate, but it can usually still be achieved via one or more other ways, and it's important not to just give up on a potentially cool idea before trying a few different approaches to hopefully overcoming any sticking points there.

 

So, regarding the eye melting example, it looks like the same end result is achievable as shown with a few minor tweaks. Good good.

 

Thanks for all the feedback.

Edited by Kirk_Johnston
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...