Page 1 of 1

Introducing: iSNS

Posted: Sat Oct 27, 2012 10:44 pm
by Near
Introducing iSNS, the SNES equivalent to iNES :D

Code: Select all

Structure:
4-byte signature "iSNS"
1-byte Flags 4
1-byte PRG-ROM size (* 1MByte)
1-byte Flags 6
1-byte Flags 7
8-byte signature "DiskDude" [emulators should ignore this]
512-byte copier header [if present]
512-byte trainer [if present]
PRG-ROM data

Flags 4:
d7 = copier header present?
d6 = trainer present?
d5-d4 = upper two bits of PRG-RAM size (total RAM = RAM size * 16KByte)
d3 = is this the Nintendo Super System?
d2 = BS-X Satellaview base unit present?
d1 = Exertainment Bike unit present?
d0 = SFC Box hotel unit present?

Flags 6:
d7 = DSP-1 present?
d6 = SuperFX present?
d5 = SA-1 present?
d4 = Mapper (0 = LoROM, 1 = HiROM)
d3-d2 = lower two bits of PRG-RAM size
d1 = Super Game Boy slot present?
d0 = Sufami Turbo slots present?

Flags 7:
d7-d2 = reserved, set to zero
d1 = SECAM mode
d0 = NTSC or PAL mode (0 = NTSC, 1 = PAL)
No need for peer review. It's already finalized and everybody shall use it forever more.
You're welcome to work on iSNS 2.0, but don't expect something like that to ever catch on =)

Re: Introducing: iSNS

Posted: Sat Oct 27, 2012 11:50 pm
by qwertymodo
byuu wrote:Introducing iSNS, the SNES equivalent to iNES :D

Code: Select all

Flags 6:
d4 = Mapper (0 = LoROM, 1 = HiROM)
Since when do you believe in the existence of Hi/LoROM? ;)

Re: Introducing: iSNS

Posted: Sun Oct 28, 2012 12:53 am
by mic_

Code: Select all

Flags 4:
d7 = copier header present?
d6 = trainer present?
d5 = Super Game Boy slot present?
d4 = Sufami Turbo slots present?
d3 = is this the Nintendo Super System?
d2 = BS-X Satellaview base unit present?
d1 = Exertainment Bike unit present?
d0 = SFC Box hotel unit present?

Flags 6:
d7 = DSP-1 present?
d6 = SuperFX present?
d5 = SA-1 present?
d4 = Mapper (0 = LoROM, 1 = HiROM)
d3-d0 = PRG-RAM size (total RAM = RAM size * 16KByte)
Looks better IMO.

Re: Introducing: iSNS

Posted: Sun Oct 28, 2012 5:40 am
by tepples
qwertymodo wrote:Since when do you believe in the existence of Hi/LoROM? ;)
I don't know how one can ''not'' believe in A15 used/A15 skipped. The "LoROM" terminology is just a minor misnomer from early emulator developers, not unlike NES "mirroring" terminology that says which of PA10/PA11 is skipped (as opposed to Nintendo's "arrangement" terminology).

I guess this proposal is for those ROM images whose internal header is unreliable, correct?

As for PRG ROM size, a lot of Super NES games are smaller than 1048576 bytes. It's not like the NES where only Galaxian is that small. I seem to remember a bunch of Super NES games that rely on work RAM on the cart being smaller than 16384 bytes as well, largely for copy protection.

Re: Introducing: iSNS

Posted: Sun Oct 28, 2012 9:13 am
by 3gengames
Lets start out with number one thing....is the hearder going to be 16 bytes? Make it 32. We'll need it. lol. But isn't most of this info in the ROM anyway?

Re: Introducing: iSNS

Posted: Sun Oct 28, 2012 9:33 am
by nocash
Good idea!
Only one thing: I would recommend to support only one PRG ROM size (3 Mbytes).
Then games with other size could be simply rounded, up or down, to that value.

Re: Introducing: iSNS

Posted: Sun Oct 28, 2012 1:28 pm
by Bregalad
And suddenly I see SNES ROMs with DSP-1 + SA1 + SuperFX similar to how NSFs with N106 + VRC6 + VRC7 + FDS came to birth....

Re: Introducing: iSNS

Posted: Sun Oct 28, 2012 2:30 pm
by nocash
The thing I like best is support for the SECAM+NTSC combo-combination.
And, N*16Kbyte RAM is so nicely mismatched to typical SNES games :-)

Re: Introducing: iSNS

Posted: Sun Oct 28, 2012 4:32 pm
by MottZilla
tepples wrote: I guess this proposal is for those ROM images whose internal header is unreliable, correct?

As for PRG ROM size, a lot of Super NES games are smaller than 1048576 bytes. It's not like the NES where only Galaxian is that small. I seem to remember a bunch of Super NES games that rely on work RAM on the cart being smaller than 16384 bytes as well, largely for copy protection.
I'm fairly sure he's joking. I know that things like this don't pop out as a joke as easily as they would in person or in a video. But if you read the content it's pretty clear he's joking or else he's totally lost his mind.

Re: Introducing: iSNS

Posted: Sun Oct 28, 2012 6:29 pm
by blargg
byuu's been a long-time fan of headered ROMs and I think he's proud to finally give the SNES something that the NES has had for ages (including DiskDude!).

Re: Introducing: iSNS

Posted: Sun Oct 28, 2012 7:08 pm
by qwertymodo
MottZilla wrote:or else he's totally lost his mind.
Well, you know he has been under a lot of stress lately :P

Re: Introducing: iSNS

Posted: Sun Oct 28, 2012 7:09 pm
by Dwedit
Mock the 512-byte Trainer feature all you want, but that thing still has a legitimate use, since bootleg cartridges of the Super Mario Bros Swim-Cheat version are known to exist.

Re: Introducing: iSNS

Posted: Sun Oct 28, 2012 11:53 pm
by lidnariq
So Byuu, you're going to add support to the next release of bsnes, right? It should definitely automatically convert any images and delete the original.

Re: Introducing: iSNS

Posted: Mon Oct 29, 2012 6:59 am
by tepples
Dwedit wrote:Mock the 512-byte Trainer feature all you want, but that thing still has a legitimate use, since bootleg cartridges of the Super Mario Bros Swim-Cheat version are known to exist.
Aren't NROM/CNROM games that had used trainer supposed to be using NROM-368 now? I imagine it's easier to ensure NROM-368's semantics ($4800-$7FFF ROM) than the trainer's semantics ($6000-$7FFF writable, $7000-$71FF preloaded).