Why no SNES homebrew scene?

Discussion of hardware and software development for Super NES and Super Famicom. See the SNESdev wiki for more information.

Moderator: Moderators

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

Re: Why no SNES homebrew scene?

Post by tepples »

Espozo wrote:The PlayStation 2 doesn't have Super Smash Bros Melee, Super Monkey Ball
Nor does any Nintendo console have Descent, Wipeout (not the adaptation of the game show), Parappa, main series Katamari, FantaVision, Amplitude, or PlayStation All-Stars Battle Royale. The GameCube doesn't have Dance Dance Revolution with actual music that people associate with the series. None of the above are RPGs. And I could rattle off plenty of PC exclusives that none of the consoles has.
or Halo 2
I've played halo two on my PlayStation.
Image
tepples wrote:She wants to work on at least N64, after which point I told her there's not really that much qualitative difference between that and a low-poly PC game.
Hopefully she's not coding in assembly, unless she likes MIPS.
N64 games were typically programmed in C, and GCC targets MIPS. But I think I made my point to her that once we go 3D, we ought to go PC Master Race.
I don't think I've ever seen any GameCube homebrew either
The GameCube version of 240p test suite is available as a GameCube disc image, a GameCube DOL, and a Wii DOL.
User avatar
Drew Sebastino
Formerly Espozo
Posts: 3496
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: Why no SNES homebrew scene?

Post by Drew Sebastino »

tepples wrote:Nor does any Nintendo console have Descent, Wipeout (not the adaptation of the game show), Parappa, Katamari, FantaVision, Amplitude, or PlayStation All-Stars Battle Royale.
Oh come on, I can list more examples if you want to. I should probably mention I'm not a fan of rhythm games either, so I don't really care about Parappa, Amplitude or Dance Dance Revolution. :lol: There are always the Donkey Konga games on GameCube, but I don't know how good they are because I don't own them. I've never heard of Descent, but it appears to be a PlayStation 1 game. F Zero GX runs circles around any Wipeout game, (actually made by the same team that made Super Monkey Ball at Sega, gotta go fast you know). I've never played Katamari, but it looks... Interesting... FantaVision looks decent, and I'm pretty sure PlayStation All-Stars Battle Royale is a PS3 game.

I think it really comes down to a matter of preference, but I wouldn't think this matter of preference is so one sided that one console is rated substantially better than the other. Well, I know a lot of people do like RPGs, so I guess that's mainly the reason?
tepples wrote:I've played halo two on my PlayStation.
You've made that joke to me before. :roll:
tepples wrote:I think I made my point to her that once we go 3D, we ought to go PC Master Race.
Uhh... On that note, can't we just say make everything on the PC? Didn't you even list some of the advantages to making a game on a console? I just feel like if we're going to say work on PC for 3D games, then why don't we do 2D games while we're at it? Don't say simplicity, because I'll tell you from working on the SNES that that's a lie.
User avatar
MottZilla
Posts: 2837
Joined: Wed Dec 06, 2006 8:18 pm

Re: Why no SNES homebrew scene?

Post by MottZilla »

Stef wrote: To make a simple reply to the subject, i think the architecture of the SNES is the main reason why we don't see much homebrew for it... The SNES is probably one of the most popular retro gaming system, i'm certain a lot of people tried "to play" with (as i did actually) but got quickly discouraged or frustrated by the complex / convoluted architecture of the system. And by complex i don't mean it in the good way, here the complexity is only a pain and affect what we can do with the system, definitely.
I think this is part of the reason. When you compare the 65816 and 68000, the 68000 is probably more simple/straight forward/easy to understand. The 65816 due to its backwards compatible design has various aspects that can confuse those new to it, and still cause problems for those somewhat familiar with it. However I am not extremely familiar with the 68000 but I do have a lot of experience with the 6502 and that helped a lot with learning the 65816. The Genesis is also probably better suited to C programming than the SNES, though I believe some people have made some SNES homebrew with it. The graphics hardware on the Genesis may also be more straight forward to deal with than the SNES. It does make it harder to produce something on the SNES in theory but I don't see either CPU or PPU as big barriers.

I really think the biggest barrier is just thinking of something worthwhile to do and following through to complete it. The separate things you need to do to make a game aren't really that hard, but you have to have everything to put together into something interesting. The first step is being able to handle all those pieces but eventually you'll need to make something with them.
User avatar
Drew Sebastino
Formerly Espozo
Posts: 3496
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: Why no SNES homebrew scene?

Post by Drew Sebastino »

MottZilla wrote:I really think the biggest barrier is just thinking of something worthwhile to do and following through to complete it.
That seems like a blanket statement, like saying the difficult part is everything difficult about it. Do you mean to say that what makes it difficult are:

1. Thinking of a concept for a game of SNES magnitude and overall design
2. Creating the assets for the game, like graphics and sound effects / instruments
3. Coding the game to be able to run 1 and 2

I haven't even concerned myself with 1 and 2, and I'm not even halfway done... I don't even really plan on releasing a game anymore, just a flexible but efficient game engine to make it easier for other people to make games. I'm not sure I'll ever finish though or if this idea of mine is realistic, but most platformers and run and guns and shmups and even fighting games can run on slightly modified versions the same code. Irrelevant, but I found out that F Zero GX runs off a modified Super Monkey Ball game engine, although I don't know how changed it is. It does go to show how you don't need to start from scratch though when designing a different style of game, as with sprite based systems, it's not like you need the metasprite code to differ much, if at all. Because I like run and guns and shmups, I have it check to see if the object is only one sprite in the metasprite code for bullets and explosions that take up one sprite to save on processing, but just checking to see how many sprites the object is takes time, so I'd get rid of that bit of code if I were using it in a beat em up were everything is just about guaranteed to be multi sprite.
User avatar
MottZilla
Posts: 2837
Joined: Wed Dec 06, 2006 8:18 pm

Re: Why no SNES homebrew scene?

Post by MottZilla »

If it helps to clarify, I mean that programming the actual game in my opinion is the easier part. The harder part is getting all of the artwork, sound, music, etc designed. But that may be because I'm not an artist. If you have the overall idea and all the artwork assets then you'll get a lot further than if you have a general idea with no artwork but decent programming skills. I mean I suppose if you lack the artistic talent you could make a game with primitive or lifted graphics and such.
tomaitheous
Posts: 592
Joined: Thu Aug 28, 2008 1:17 am
Contact:

Re: Why no SNES homebrew scene?

Post by tomaitheous »

tepples wrote: Yet the 6502 itself draws plenty of Atari 2600, Commodore 64, and NES homebrew development, even with all the weirdness of the TIA, VIC-II, and PPU.
In general, the scope of game design for those systems is not in the same league as the SNES or systems of that generation. There's also this community that has grown up around these systems (mainly the small home computer scene) with the mentality of pushing these systems as far as they will go. There's also more merit and recognition in that achievement than say the "16bit generation" - in which everything pretty much as been explored and done on a commercial level, already.

I see the complex convoluted design and interface of sPPU, coupled with the mirroring attributes of the cpu, to be the primary reason why high level stuff isn't really suited for the SNES. And in that respect, especially now for some reason, that makes it a very active deterrent for people wanting to delve into snes dev. People are afraid to write their own libraries. They want this ready made, flexible, fast lib with high level support - with maybe a dash of ASM here and there. And that's not really applicable on the snes, unless you significantly reduce the scope of your game design - limiting yourself to an overall reduction capable power/resource (getting things done). Speed/power in relation to capability, comes with customized routines specifically for said games. The more flexible and generalized a routine is, the less efficient is becomes in relation to speed.

As far as the asm coders go, the sPPU and cpu shouldn't be a problem though. Yes, it might have an initial steeper learning curve - but once that learning curve is out of the way (as with all systems), you're able to move forward with your project design. The 65x cpu design isn't holding you back. The convoluted sPPU interface/design isn't hold you back. What's holding you back, is the lack of will to learn the system's in and outs. Stef's post is a testament to that.

The Genesis requires little investment to start producing an acceptable product, but in all reality if you want a highly polished product - you're still going to have to invest roughly the same amount of time as you would on the SNES. That initial investment of becoming familiar with the SNES hardware and structure, the time involved and set aside for that, becomes a relatively small portion of what's required to put out a decent product. And I think the biggest problem is that people don't see this. Most people really don't have an accurate idea of how much time and effort goes into making a game to the standards of the commercial soft for era of that system. And it's this inaccurate perception that's, in my opinion, the reason for the lack homebrew on the snes.
__________________________
http://pcedev.wordpress.com
psycopathicteen
Posts: 3140
Joined: Wed May 19, 2010 6:12 pm

Re: Why no SNES homebrew scene?

Post by psycopathicteen »

Sik wrote: As for Treasure: something to take into account is that they were making commercial games and that meant tight deadlines. The 68000 instruction set makes it much easier to get things done (both make the code and debug it) and this means they had more room to do crazy things and still manage to stay within the deadlines. The SNES has fast multiplication hardware which should help for stuff like what they did, but the problem is everything else in that sense.
That makes a lot of sense.
Sik
Posts: 1589
Joined: Thu Aug 12, 2010 3:43 am

Re: Why no SNES homebrew scene?

Post by Sik »

Espozo wrote:But it takes a good amount of time to set up the multiplication and division because it's not internal to the 65816. I actually thought that that's where the 65816 was mostly beaten at compared to the 68000, and the lack of any 32 bit instructions doesn't help.
Multiplication on the 68000 is quite slow (38 to 70 cycles, depending on the second operand), and division is way too slow (around 140 cycles). You can usually replace division with multiplication (in some form) so that's not much of an issue. As far as multiplication goes though, the SNES should be better, at least for small numbers.
Espozo wrote:In a 2D console though, it isn't as important as it would be otherwise, but still.
It can be extremely useful for rotations, actually (even if it's just calculating positions).
Espozo wrote:as I don't think I've ever really seen any N64 homebrew.
Check this out, the guy eventually figured out how to get the N64 hardware draw stuff (using his own microcode) instead of having the CPU do it.
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Why no SNES homebrew scene?

Post by tepples »

Sik wrote:
Espozo wrote:But it takes a good amount of time to set up the multiplication and division because it's not internal to the 65816. I actually thought that that's where the 65816 was mostly beaten at compared to the 68000, and the lack of any 32 bit instructions doesn't help.
Multiplication on the 68000 is quite slow (38 to 70 cycles, depending on the second operand), and division is way too slow (around 140 cycles).
Is that 8*8 or 16*16? The memory-mapped multiplier on the Super NES finishes in about 8 cycles (equivalent of roughly 20 cycles on 68K), but it's only 8*8. There's another 15*8 multiplier that finishes faster (within the 4 cycles it takes to read the value back) but can't be used while mode 7 is active.
psycopathicteen
Posts: 3140
Joined: Wed May 19, 2010 6:12 pm

Re: Why no SNES homebrew scene?

Post by psycopathicteen »

I need to figure out a way to work around signed 16x8 while in Mode 7.
ccovell
Posts: 1045
Joined: Sun Mar 19, 2006 9:44 pm
Location: Japan
Contact:

Re: Why no SNES homebrew scene?

Post by ccovell »

Several games that use Mode 7 have a BG status bar at the top/bottom of the screen in a different Gfx mode. Does that mean the 15x8 multiplication regs could be accessible at that time?
Sik
Posts: 1589
Joined: Thu Aug 12, 2010 3:43 am

Re: Why no SNES homebrew scene?

Post by Sik »

Yes. Also don't forget that nearly every mode-7 game has a horizon showing the sky and that definitely is not mode 7 either, so that gives some more room too (i.e. you can go some more beyond vblank safely).
tepples wrote:Is that 8*8 or 16*16?
16×16 → 32, but usually one of your operands will be a rather small number anyway (unless you're doing something like multiplying by 0x5555 to divide by 3). Also you'd be naive to think that somebody like Treasure wouldn't know how to write code in such a way as to avoid getting locked out of the fast multiplier when needed.
psycopathicteen
Posts: 3140
Joined: Wed May 19, 2010 6:12 pm

Re: Why no SNES homebrew scene?

Post by psycopathicteen »

If it's mode 7 math, then yes you can do it during a HUD. If I'm using it for gameplay physics reasons, it could end up being used anywhere in the middle of the frame.
Stef
Posts: 263
Joined: Mon Jul 01, 2013 11:25 am

Re: Why no SNES homebrew scene?

Post by Stef »

Sik wrote: Multiplication on the 68000 is quite slow (38 to 70 cycles, depending on the second operand), and division is way too slow (around 140 cycles). You can usually replace division with multiplication (in some form) so that's not much of an issue. As far as multiplication goes though, the SNES should be better, at least for small numbers.
Actually i think that having that "slow" multiplication is still a big advantage definitely.
The SNES only has 8x8 multiplication (the other unit being used by the mode 7, that is not safe for a regular alternative) and I guess that using a 8x8 lookup table is almost as fast than using the multiplier unit (you have to count at least 15/16 cycles for load / read result time) so i don't see the real advantage of having it :-/
And when it comes to 16x16 multiplication (which is for me the minimum if you do real math calculations) the 68000 will be miles faster... even if it is not that fast.
psycopathicteen
Posts: 3140
Joined: Wed May 19, 2010 6:12 pm

Re: Why no SNES homebrew scene?

Post by psycopathicteen »

Another thing that is annoying is having to switch between 8-bit and 16-bit modes while doing multiplication, or have a 16-bit accumulator with 8-bit indexes.
Post Reply