Why no SNES homebrew scene?

Discussion of hardware and software development for Super NES and Super Famicom.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
tepples
Posts: 21706
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Why no SNES homebrew scene?

Post by tepples » Sun Jan 31, 2016 8:17 pm

Espozo wrote:
tepples wrote:with an intended range of 128K

Wouldn't this make it an intended range of 256K? Anyway, it seems that the TG16, Genesis, and SNES could have originally intended to have 128KB of VRAM.

At 128 bytes per 16x16 tile, 10 bits cover 128K. The remaining bit is intended for the 2-bit mode and is zero otherwise.

tepples wrote:The VDC was designed to use either fast or slow VRAM.

What, were they unsure? :lol:

Yes. Hudson was probably unsure of whether RAM makers would be able to provide fast enough RAM, so it designed in both fast and slow modes. Had RAM makers not hit their target by 1986, the PC Engine would have been specced with slow memory, all games would use slow mode, and then years later, there would be hacks to solder in faster RAM and patch games to alleviate slowdown.

I was about to say how this could be useful to conserve VRAM space, but I'm guessing 4-color tiles apply to everything, not just a certain sprite or something like that...

I'm guessing it'd be like 8x8 or 8x16 pixel sprites on the NES.

UnDisbeliever
Posts: 76
Joined: Mon Mar 02, 2015 1:11 am
Location: Australia (PAL)
Contact:

Re: Why no SNES homebrew scene?

Post by UnDisbeliever » Sun Jan 31, 2016 11:35 pm

Espozo wrote:Well, I just hijacked psychopathicteen's code. :lol:
psycopathicteen wrote:This is how it was like back in the day for a developer.

Programmer 1: We need a hi-oam code fast!
Programmer 2: Why don't you just hijack psycopathicteen's code?
Programmer 1: Psycopathicteen isn't even potty trained yet!
Programmer 2: Oh NOOOOOOOOO!!!!

Add me to the list of people who use psycopathicteen's hi-oam algorithm.

Espozo wrote:Really though, making a good vram engine is much, much worse.

I just finished writing, optimising and unit testing my vram engine. It took 3 months of on-again, off-again development but it's finally complete.

Now that the boring part is done my productivity should increase.

TOUKO
Posts: 288
Joined: Mon Mar 30, 2015 10:14 am

Re: Why no SNES homebrew scene?

Post by TOUKO » Mon Feb 01, 2016 1:52 am

I am also confused by this? Why does it have 11 bits if the PCE can't use 8x8 sprites?

Like tepples said, it intended to use 128ko of VRAM ..
And those 11bits are not the same for sprite cells size, those are in another word (the fourth),it's 11 bits for sprite patterns addresses in VRAM only.

@espozo: if this can help you:

Code: Select all

Here's what a SATB entry looks like:

          +---------------------------------------------------------------+
          |15 |14 |13 |12 |11 |10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
          +-----------------------+---------------------------------------+
          |                       |             y coordinate              |
          +-----------------------+---------------------------------------+
          |                       |             x coordinate              |
          +-------------------+---+---------------------------------------+
          |                   |              pattern address              |
          +---+---+-------+---+-------+---+---+-----------+---------------+
          | Y |   |  CGY  | X |       |CGX|PRI|           | palette index |
          +---+---+-------+---+-------+---+---+-----------+---------------+

            Y -> vertical flip bit (0 = normal, 1 = reversed)
            X -> horizontal flip bit (0 = normal, 1 = reversed)
          CGY -> sprite height: 00 = 16
                                01 = 32
                                10 = invalid
                                11 = 64
          CGX -> width: 0 = 16
                        1 = 32
          PRI -> priority flag: 0 = in background
                                1 = in foreground


What, were they unsure? :lol:

Yes it's sure, you can use slow/fast VRAM with VDC(it's designed for), and you can also use a 8/16 bits CPU, you can switch all VDC's registers in 16 bits mode instead of 2 8 bits with a connected pin to +VCC .

I think the VDC was not designed specificaly for PCE, but for general uses in multiple systems .
Slow VRAM can not be used for PCE's med/hi res,even with his 100ns VRAM, still works under speed specifications for hires (93ns is required),but works .

User avatar
MottZilla
Posts: 2832
Joined: Wed Dec 06, 2006 8:18 pm

Re: Why no SNES homebrew scene?

Post by MottZilla » Tue Feb 02, 2016 10:18 pm

Sik wrote:
MottZilla wrote:For example I've thought that Sega should have outfitted the Genesis VDP with enough Color RAM for 128 Colors instead of 64 and made the Background and Sprites use different section like the NES or SNES does.

That was their original intention, but they ran out of die space ¯\(º_o)/¯ (instead we got less-used features like S/H that took up less room) There's a good reason why the VDP can use an external color DAC, but again that'd have made the console more expensive (ugh).


If they ran out of die space then I think they should have scrapped the Master System video modes if that would have allowed for 128 colors. It would have been far more useful in the long run.

tepples
Posts: 21706
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Why no SNES homebrew scene?

Post by tepples » Mon Jul 24, 2017 6:29 pm

Fekinox in the FamiTracker Discord server recommended a few sources for waves to convert to BRR:


This leaves filling BG2 and BG3 and testing on all three major variants (1/1/1, 2/1/3, 1CHIP) of each region as the remaining blockers of stepping up from NES to Super NES.

User avatar
HihiDanni
Posts: 186
Joined: Tue Apr 05, 2016 5:25 pm

Re: Why no SNES homebrew scene?

Post by HihiDanni » Mon Jul 24, 2017 7:01 pm

Filling BG2 and/or BG3 seems more like an issue for artists (and depending on the game, might not even need to be very detailed). And then you have the fact that for a lot of cases, you don't need a particularly large BG2 or BG3 either. I imagine you could just make a static tilemap and tileset, send them to VRAM once, then just adjust the BG2/3 scroll registers on VBlank, and it would be good enough. If you wanted something larger you'd need to use tile reloading like BG1, yes, but then, that's what code reuse is for.
SNES NTSC 2/1/3 1CHIP | serial number UN318588627

tepples
Posts: 21706
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Why no SNES homebrew scene?

Post by tepples » Mon Jul 24, 2017 7:07 pm

HihiDanni wrote:Filling BG2 and/or BG3 seems more like an issue for artists

Which is my point: more graphics means paying your artist for more hours of work than on 8-bit, or inflating a 1-man hobby project to one where the producer-programmer has to hire an artist in the first place.

psycopathicteen
Posts: 2901
Joined: Wed May 19, 2010 6:12 pm

Re: Why no SNES homebrew scene?

Post by psycopathicteen » Wed Jul 26, 2017 8:55 am

UnDisbeliever wrote:
Espozo wrote:Really though, making a good vram engine is much, much worse.

I just finished writing, optimising and unit testing my vram engine. It took 3 months of on-again, off-again development but it's finally complete.

Now that the boring part is done my productivity should increase.


I just added vertical and horizontal sprite runs to my animation engine, so I can have shorter metasprite data.

User avatar
Drew Sebastino
Formerly Espozo
Posts: 3503
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: Why no SNES homebrew scene?

Post by Drew Sebastino » Thu Jul 27, 2017 11:21 am

tepples wrote:
HihiDanni wrote:Filling BG2 and/or BG3 seems more like an issue for artists

Which is my point: more graphics means paying your artist for more hours of work than on 8-bit, or inflating a 1-man hobby project to one where the producer-programmer has to hire an artist in the first place.

Am I an outlier by not so much being interested in making a game, but programming instead? I think a powerful, all purpose engine could get people into making SNES games who don't have a whole lot of programming knowledge to begin with. As they get more experience, they can actually modify the game engine too. I'm envisioning something like SMW hacking except much less shitty.

Unfortunately, I haven't done any programming this whole summer. :? Now with Splatoon 2 out, I don't see that changing. :lol:

psycopathicteen wrote:I just added vertical and horizontal sprite runs to my animation engine, so I can have shorter metasprite data.

What does this mean?

tepples
Posts: 21706
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Why no SNES homebrew scene?

Post by tepples » Thu Jul 27, 2017 11:34 am

Espozo wrote:I think a powerful, all purpose engine could get people into making SNES games who don't have a whole lot of programming knowledge to begin with.

I agree, but you still need competent graphic design to make the engine's tech demo attractive to modders.

Espozo wrote: As they get more experience, they can actually modify the game engine too. I'm envisioning something like SMW hacking except much less shitty.

Essentially all Super Mario World hacks that I'm aware of leave the graphics for at least one block or character untouched. You'd need a total conversion of SMW, wiping all Nintendo graphics from existence, to form the set of graphics that will be used to demonstrate an original engine.

Espozo wrote:
psycopathicteen wrote:I just added vertical and horizontal sprite runs to my animation engine, so I can have shorter metasprite data.

What does this mean?

If it's anything like the metasprite format in The Curse of Possum Hollow, it means that if a cel is 48 pixels wide, you used to get this for each row of 16x16 pixel sprites in the cel:

Code: Select all

x, y, tile, attributes, x+16, y, tile, attributes, x+32, y, tile, attributes

And now you get this:

Code: Select all

x, y, attributes, 3, tile, tile, tile

User avatar
dougeff
Posts: 2598
Joined: Fri May 08, 2015 7:17 pm
Location: DIGDUG
Contact:

Re: Why no SNES homebrew scene?

Post by dougeff » Thu Jul 27, 2017 12:39 pm

Am I an outlier by not so much being interested in making a game, but programming instead?


I enjoy programming much more than other aspects of game design (testing, graphics design).

But, without a goal, a specific finish line, your motivation will go to crap...and you get distracted (Splatoon) and nothing gets done. Make small goals. Not, I will make a game this year. But...I will spend 2 hours programming today. I will draw some pixel art this weekend. Etc.
nesdoug.com -- blog/tutorial on programming for the NES

User avatar
Drew Sebastino
Formerly Espozo
Posts: 3503
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: Why no SNES homebrew scene?

Post by Drew Sebastino » Thu Jul 27, 2017 1:26 pm

Essentially all Super Mario World hacks that I'm aware of leave the graphics for at least one block or character untouched. You'd need a total conversion of SMW, wiping all Nintendo graphics from existence, to form the set of graphics that will be used to demonstrate an original engine.

I doubt I'd use SMW assets.

If it's anything like the metasprite format in The Curse of Possum Hollow, it means that if a cel is 48 pixels wide, you used to get this for each row of 16x6 pixel sprites in the cel:

I don't see any advantage to doing this over letting sprites be anywhere in the metasprite, other than space, unless that is the advantage.

(Splatoon)

God, I hate myself... :lol:

tepples
Posts: 21706
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Why no SNES homebrew scene?

Post by tepples » Thu Jul 27, 2017 2:52 pm

Espozo wrote:
tepples wrote:You'd need a total conversion of SMW, wiping all Nintendo graphics from existence, to form the set of graphics that will be used to demonstrate an original engine.

I doubt I'd use SMW assets.

I agree. But first we'd need to see the assets you would use. And my point is that a game comparable to those from the Super NES launch window requires a lot more such assets than a game comparable to those from the NES launch window.

psycopathicteen
Posts: 2901
Joined: Wed May 19, 2010 6:12 pm

Re: Why no SNES homebrew scene?

Post by psycopathicteen » Thu Jul 27, 2017 3:25 pm

Espozo wrote:
tepples wrote:
HihiDanni wrote:Filling BG2 and/or BG3 seems more like an issue for artists

Which is my point: more graphics means paying your artist for more hours of work than on 8-bit, or inflating a 1-man hobby project to one where the producer-programmer has to hire an artist in the first place.

Am I an outlier by not so much being interested in making a game, but programming instead? I think a powerful, all purpose engine could get people into making SNES games who don't have a whole lot of programming knowledge to begin with.


The problem is people always look at the source code of these engines (which does all the dirty work for them) and give up when they can't understand 100% of the instructions.

User avatar
HihiDanni
Posts: 186
Joined: Tue Apr 05, 2016 5:25 pm

Re: Why no SNES homebrew scene?

Post by HihiDanni » Thu Jul 27, 2017 4:22 pm

The people who know how to program in some assembly language, and the people who know how to or want to spend time programming a game engine from scratch are not necessarily one and the same group. We spend a lot of time discussing how to make DMA queues, do metasprites, etc. but not really going the extra mile and providing already working implementations of these concepts in a readily usable package. That's the whole point of making an engine.

And if all you do is just dump a bunch of source code somewhere, of course it probably wouldn't generate a ton of interest, especially if it's largely unexplained. Even experienced programmers want documentation. The best way to get people to use something is to show them how, to invite them to do so by explaining how you go about creating screens, adding objects and assets to the game, and tying everything together into a playable game. And example games are good but you also need to provide a clean template for people to use, so that they don't have to pick apart the game-specific stuff to get to the engine itself.

I think proper tools and (documented!) frameworks will go a long way towards generating homebrew interest. The less time spent banging rocks together to make fire, the better.
SNES NTSC 2/1/3 1CHIP | serial number UN318588627

Post Reply