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

TOUKO wrote:No, it has 11 bits :)
You mean it goes by 8x8, although the minimum sprite size is 16x16?
TOUKO wrote:Yes ,and you lose some sprite bandwidth when only 8x8 sprites are needed .
Well, most things aren't even that small to begin with, aside from bullets which can be a problem. I still think 16x16 and 32x32 is the best sprite size on the SNES, because if you're using 8x8 and 16x16, instead of having to worry about sprites being clipped, you'll have to worry about sprites actually disappearing.
TOUKO wrote:You absolutely can not comparing nowadays stuff with 90's ones .
That's exactly why I don't get why people are trying to be so stingy with things that don't matter anymore, like cartridge size. What you do is you just don't judge games with a lot of memory graphically to ones that do, just like I wouldn't compare an SNES game that tries to do 3D by the CPU to one that's using the Super FX.
TOUKO wrote:Of course, and with big balls :P
Are all of them male? I mean, you got to have a female to reproduce... :lol:
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:
TOUKO wrote:Yes ,and you lose some sprite bandwidth when only 8x8 sprites are needed .
Well, most things aren't even that small to begin with, aside from bullets which can be a problem.
With a username that close to TOUHOU, bullets were probably at top of mind.
Espozo wrote: I still think 16x16 and 32x32 is the best sprite size on the SNES, because if you're using 8x8 and 16x16, instead of having to worry about sprites being clipped, you'll have to worry about sprites actually disappearing.
Why? Because of the 128 sprite limit of OAM or the 32 sprite limit? The 32 sprite limit isn't really that much lower than the 34 sliver limit.
I don't get why people are trying to be so stingy with things that don't matter anymore, like cartridge size.
It's also expensive to use a 16-bit memory like 29F322 with an 8-bit data bus. Memories with an 8-bit mode, which can directly interface with the thing, are limited to 16 Mbit. The other option is to build a "poor man's PowerPak": a 4 Mbit PSRAM, an eMMC, and an interface chip that reads the eMMC and holds the CPU in reset until the boot sector is copied to RAM.
lidnariq
Posts: 11432
Joined: Sun Apr 13, 2008 11:12 am

Re: Why no SNES homebrew scene?

Post by lidnariq »

tepples wrote:It's also expensive to use a 16-bit memory like 29F322 with an 8-bit data bus. Memories with an 8-bit mode, which can directly interface with the thing, are limited to 16 Mbit. The other option is to include a RAM on the cartridge, an eMMC, and an interface chip that reads the eMMC and holds the CPU in reset until the boot sector is copied to RAM.
Only (edit: new) 5V parallel NOR ROMs are limited to 2 MiB/16Mibit. It's for now still cheaper to just add the voltage translation circuitry with a 3V NOR ROM (up to 128 MiB) than the complexity of adding a bootloader.
Last edited by lidnariq on Sat Jan 30, 2016 4:16 pm, edited 1 time in total.
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:Why? Because of the 128 sprite limit of OAM or the 32 sprite limit? The 32 sprite limit isn't really that much lower than the 34 sliver limit.
Oh, I should have been more clear. I mean games running out of sprites because they're using so much and then there's sprite flicker. When I said no game uses more than 80, I was thinking of 16x16 and 32x32, not 8x8 and 16x16.

The game that comes to mind is Super R-Type. On the 3rd level at the part with the ships that fly forward upon being hit, the game will somethimes go crazy and things will appear and disappear out of existence. The diffusion wave beam is also a lot lamer than it is in R-Type II because they were more cautious of how many sprites were being used.
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 »

lidnariq wrote:It's for now still cheaper to just add the voltage translation circuitry with a 3V NOR ROM (up to 128 MiB) than the complexity of adding a bootloader.
To allow saved games, is it cheaper to make the voltage translation bidirectional to allow writing back to flash or to include a battery-backed RAM?
psycopathicteen
Posts: 3140
Joined: Wed May 19, 2010 6:12 pm

Re: Why no SNES homebrew scene?

Post by psycopathicteen »

Bad coding exist on all systems, doing a good one (in any department) needs a big amount of time.Now we are coding for pleasure, with no deadlines, we have time, and it's easy to optimise our stuffs like hell,redoing code if it's not good enough,etc ..
You absolutely can not comparing nowadays stuff with 90's ones .
I always find it weird when people say this. Do people think I spend all my time optimizing code?
User avatar
TmEE
Posts: 960
Joined: Wed Feb 13, 2008 9:10 am
Location: Norway (50 and 60Hz compatible :P)
Contact:

Re: Why no SNES homebrew scene?

Post by TmEE »

Good chunk of your posts are about making some bit faster/better, so it kinda gives people that impression :P
psycopathicteen
Posts: 3140
Joined: Wed May 19, 2010 6:12 pm

Re: Why no SNES homebrew scene?

Post by psycopathicteen »

TmEE wrote:Good chunk of your posts are about making some bit faster/better, so it kinda gives people that impression :P
Well it makes no sense to get my game to run at 70fps if neither the TV or the system can output 70fps.


EDIT: When I was younger I think I wasted a lot of time optimizing code when I didn't really need to. A lot of my old code had a lot of ugly unrolled loops.
User avatar
Memblers
Site Admin
Posts: 4044
Joined: Mon Sep 20, 2004 6:04 am
Location: Indianapolis
Contact:

Re: Why no SNES homebrew scene?

Post by Memblers »

tepples wrote:
lidnariq wrote:It's for now still cheaper to just add the voltage translation circuitry with a 3V NOR ROM (up to 128 MiB) than the complexity of adding a bootloader.
To allow saved games, is it cheaper to make the voltage translation bidirectional to allow writing back to flash or to include a battery-backed RAM?
Bidirectional translation can be as simple as using the CPU R/W pin on the 'direction' input of something like a 74LVC245. That's my plan anyways, I expect it'll work (I think the Everdrive does something similar as well). That's about a 10 cent part, 3 of those is most of what you'd need (if your mapper is 3V). For a battery you'd have a 30 cent battery clip, 25 cent battery, 25 cent voltage supervisor, some extra diodes, caps, resistors, and possibly a larger PCB to hold that big ol' battery. The price difference isn't huge if you already have the RAM onboard, but it is more parts and the battery will fail sooner or later (much later if you select the right SRAM and diodes). Yeah, I've been pricing all this stuff in the past few days.. guess why. :P

Anyways, writing to flash on-cart is almost necessary, as the alternative is programming them before soldering, which is a terrible idea.
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 »

psycopathicteen wrote:Well it makes no sense to get my game to run at 70fps if neither the TV or the system can output 70fps.
I see "70fps" and immediately think of VGA mode 13h. But "70fps" in the sense of ensuring that 16 percent of CPU time is almost always free might help avoid dropping from 60 to 30 fps in worst cases.
Memblers wrote:Anyways, writing to flash on-cart is almost necessary, as the alternative is programming them before soldering, which is a terrible idea.
How "terrible"? Mask ROMs were "programmed" (that is, fabricated) before soldering, and EPROMs during the Super NES's commercial era were programmed before socketing. But you're right that writable flash is useful. It is probably more practical on Super NES than on NES because a Super NES game probably doesn't also need the work RAM onboard for other things, as it has the absurdly spacious (by NES or TG16 standards) area at $7E2000-$7FFFFF.
lidnariq
Posts: 11432
Joined: Sun Apr 13, 2008 11:12 am

Re: Why no SNES homebrew scene?

Post by lidnariq »

tepples wrote:How "terrible"? Mask ROMs were "programmed" (that is, fabricated) before soldering, and EPROMs during the Super NES's commercial era were programmed before socketing.
TSOP/SSOP ZIF adapters for putting in a programmer are expensive and fiddly. It's far easier to get a PCB assembly place to just put the not-pre-programmed memories on, because they will have access to much better soldering tools than you (probably), and using a card edge connector to program is much easier.
User avatar
TOUKO
Posts: 306
Joined: Mon Mar 30, 2015 10:14 am
Location: FRANCE

Re: Why no SNES homebrew scene?

Post by TOUKO »

You mean it goes by 8x8, although the minimum sprite size is 16x16?
11 bits for sprite patterns, a complete sprite attributes is 4 words, 1st word for Y position,2nd for X position, 3rd for pattern, and 4th for size,flip, palette .
On the 3rd, 11 bits is used .
psycopathicteen
Posts: 3140
Joined: Wed May 19, 2010 6:12 pm

Re: Why no SNES homebrew scene?

Post by psycopathicteen »

I am also confused by this? Why does it have 11 bits if the PCE can't use 8x8 sprites?
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 »

According to pcetech.txt, the TG16's nametable format is oversize, with an intended range of 128K, presumably for future expansion:

Code: Select all

FEDC BA98 7654 3210  Nametable entry
|||| ++++-++++-++++- 8x8 tile number (0-2047 valid; 2048-4095 unspecified)
++++---------------- Palette
The tile number register for sprites also addresses 128K:

Code: Select all

FEDC BA98 7654 3210  Sprite attribute 2
      ||| |||| |||+- CG mode bit (used in 2-bit sprite mode)
      +++-++++-+++-- 16x16 tile number (0-511 valid; 512-1023 unspecified)
The VDC was designed to use either fast or slow VRAM. The TG16 shipped with fast VRAM, but the VDC retains the bits in register 9 specifying memory speed alongside the bits that specify nametable size. One of the slow modes apparently produces 4-color tiles instead of 16-color ones, and the CG mode bit specifies which half-tile to use.
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: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.
tepples wrote:The VDC was designed to use either fast or slow VRAM.
What, were they unsure? :lol:
tepples wrote:the VDC retains the bits in register 9 specifying memory speed alongside the bits that specify nametable size. One of the slow modes apparently produces 4-color tiles instead of 16-color ones, and the CG mode bit specifies which half-tile to use.
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...
Post Reply