World exclusivity. First RAM Cassette dump.

Strictly for discussing ZSNES development and for submitting code. You can also join us on IRC at irc.libera.chat in #zsnes.
Please, no requests here.

Moderator: ZSNES Mods

Post Reply
Y~K
Hazed
Posts: 54
Joined: Mon Jan 22, 2007 3:27 am

World exclusivity. First RAM Cassette dump.

Post by Y~K »

This is highly valuable in term of preservation of the SNES hardware so I thought you might want to know a GPC ram cassette dump was available.

No emulator does seem to display anything. I hope byuu can look into it.

More infos

Image

Image
pagefault
ZSNES Developer
ZSNES Developer
Posts: 812
Joined: Tue Aug 17, 2004 5:24 am
Location: In your garden

Post by pagefault »

What does it do?
Watering ur plants.
pagefault
ZSNES Developer
ZSNES Developer
Posts: 812
Joined: Tue Aug 17, 2004 5:24 am
Location: In your garden

Post by pagefault »

On further inspection I get this on my current build.
Image
Watering ur plants.
byuu

Post by byuu »

I could extract the registers used from the cart, but the GPC is very similar to the NP carts. They basically just hold already dumped commercial titles. No protos, no new games ...

I have to agree with d4s about the viability of emulating these things. I'd honestly rather work on things like the Super System or whatever, that there's all of zero public information about.

It probably doesn't run in bsnes because of the additional hardware. Nonetheless, I'll play around with the image in the next week and let you know what I come up with.

With my new run-time memory mapping code, it should be quite possible to emulate things like NP and GPC now, though. Just not things like Game Genie that have multiple files associated with it.
pagefault
ZSNES Developer
ZSNES Developer
Posts: 812
Joined: Tue Aug 17, 2004 5:24 am
Location: In your garden

Post by pagefault »

Super System is just one register in the PPU and no one knows about the menu rom, I think it was hard switched to the SNES to just turn it off or reset it when a coin was inserted and was a seperate unit all together. But there isn't much info on it.
Watering ur plants.
Panzer88
Inmate
Posts: 1485
Joined: Thu Jan 11, 2007 4:28 am
Location: Salem, Oregon
Contact:

Post by Panzer88 »

byuu wrote:With my new run-time memory mapping code, it should be quite possible to emulate things like NP and GPC now, though.
GPC? also, are the mame/mess folks still not done much on the NSS?
[quote="byuu"]Seriously, what kind of asshole makes an old-school 2D emulator that requires a Core 2 to get full speed? [i]>:([/i] [/quote]
grinvader
ZSNES Shake Shake Prinny
Posts: 5632
Joined: Wed Jul 28, 2004 4:15 pm
Location: PAL50, dood !

Post by grinvader »

Panzer88 wrote:GPC?
Hello, big picture in OP, game processor cassette.
皆黙って俺について来い!!

Code: Select all

<jmr> bsnes has the most accurate wiki page but it takes forever to load (or something)
Pantheon: Gideon Zhi | CaitSith2 | Nach | kode54
Panzer88
Inmate
Posts: 1485
Joined: Thu Jan 11, 2007 4:28 am
Location: Salem, Oregon
Contact:

Post by Panzer88 »

I'm terrible with abriviations, so shoot me.
[quote="byuu"]Seriously, what kind of asshole makes an old-school 2D emulator that requires a Core 2 to get full speed? [i]>:([/i] [/quote]
whicker
Trooper
Posts: 479
Joined: Sat Nov 27, 2004 4:33 am

Post by whicker »

grinvader wrote:
Panzer88 wrote:GPC?
Hello, big picture in OP, game processor cassette.
cassette is a french word, right?

Isn't "cassette" technically the holder for whatever is inside, or is it considered the whole thing (container + contents)?
Panzer88
Inmate
Posts: 1485
Joined: Thu Jan 11, 2007 4:28 am
Location: Salem, Oregon
Contact:

Post by Panzer88 »

yes but we've bastardized it ever since audio cassette tapes.
[quote="byuu"]Seriously, what kind of asshole makes an old-school 2D emulator that requires a Core 2 to get full speed? [i]>:([/i] [/quote]
The Dumper
Rookie
Posts: 11
Joined: Wed Jul 28, 2004 5:03 pm

Post by The Dumper »

byuu wrote:I have to agree with d4s about the viability of emulating these things. I'd honestly rather work on things like the Super System or whatever, that there's all of zero public information about.

It probably doesn't run in bsnes because of the additional hardware. Nonetheless, I'll play around with the image in the next week and let you know what I come up with.
This is interesting. Actually there is quite good information on the GPC. d4s posted a nice writeup on it a couple of years ago in which he found a Nintendo patent describing the cart.
Here is the link: d4s description of GPC

Just looking at the chips on the cart, there is nothing special there. No special chips, just standard off the shelf simple logic. Reading the patent description tells us that we have a writable cart and that's it.

The write logic makes you write to a certain address (or address range) 15 times to unlock the write functionality. After that you can load the cart up. You should easily be able to write a program to do this on a backup unit. The cart is only 4 Mb so it's not going to hold huge games but it's still pretty cool.

So, no special registers, no nothing. Load it and go. Maybe the address map is slightly different from a standard cart (unlikely), but's that's about all I can think of that could go wrong here. So maybe the image was either corrupted or not dumped correctly. If the cart plays a game in the SNES then I'd suspect a bad dump.
byuu

Post by byuu »

Ah, nice to see you here again.

By the way, someone recently contacted me who ran the S-DD1 stuff I wrote on hardware, and I was able to figure out the bit of information I was missing -- proper emulation of register $4800 :)
So please disregard the test stuff I sent you a while back.
Actually there is quite good information on the GPC
I was meaning the Super System lacked information, but good to know there's some GPC stuff out there. Thank you for that link :)
So, no special registers, no nothing. Load it and go. Maybe the address map is slightly different from a standard cart (unlikely), but's that's about all I can think of that could go wrong here. So maybe the image was either corrupted or not dumped correctly. If the cart plays a game in the SNES then I'd suspect a bad dump.
Upon further inspection, it looks like it's just a poorly constructed demo game.

But it looks like it's reading uninitialized memory and such as well. Perhaps that hardware in the patent had a BIOS to initialize the WRAM, or it could just be like some of the commercial titles that read from uninitialized WRAM as well.

I imagine the game itself does not work on real hardware directly, but we'd probably have to ask d4s to clarify.

Sigh, so much cool hardware out there and the only thing I have is a SRAM-crippled UFO :(
pagefault
ZSNES Developer
ZSNES Developer
Posts: 812
Joined: Tue Aug 17, 2004 5:24 am
Location: In your garden

Post by pagefault »

byuu wrote:Ah, nice to see you here again.

By the way, someone recently contacted me who ran the S-DD1 stuff I wrote on hardware, and I was able to figure out the bit of information I was missing -- proper emulation of register $4800 :)
INFOZ PLZ.

If you feel like it.
Watering ur plants.
byuu

Post by byuu »

INFOZ PLZ.

If you feel like it.
Of course, I'll elaborate.

I was disingenuous. I got enough information to solve the DeJap patch problem, but not to fully understand the S-DD1 behavior.

We know there are eight registers:
$4800 = global S-DD1 DMA enable
$4801 = one-time S-DD1 DMA enable
$4802 = unused
$4803 = unused
$4804-7 = bank mapping registers

What we don't know is whether or not you can perform multiple DMAs at once. By observing all known S-DD1 code, we can see that no game ever, ever uses anything besides DMA channel 0. Can they use channel 1-7? If not, then what bit or bits indicate true or false? 1 or 0xff? We don't know.

So we have to generalize, "set" can refer to just one bit (1) or all bits (255), and "clear" can refer to just one bit (bit 0 or bit 7?) or all bits (full value = 0).

Now, with that defined, $4800 is basically a switch that enables or disables $4801, which enables or disables S-DD1 decompression.

So you end up like this:

Code: Select all

if $4800 is set {
  if $4801 is set {
    do_sdd1_decompression;
  }
  clear $4801
}
See? When you write to $4800, whatever you write stays there. The chip doesn't ever change it. But $4801 does. It's cleared immediately after the S-DD1 completes the DMA decompression.

The S-DD1 is always so silly to me. Andreas Naive spent months researching this complex compression algorithm it uses, and here I am stuck nitpicking bits of some register interface to it.
Y~K
Hazed
Posts: 54
Joined: Mon Jan 22, 2007 3:27 am

Post by Y~K »

Nice to see the zsnes dev masters are on the matter.
Even if the interest in term of gameplay is null, it still is important regarding the preservation of snes hardware.
d4s
Rookie
Posts: 28
Joined: Wed Sep 08, 2004 12:05 pm

Post by d4s »

As discussed before, the cartridge itself is a rewriteable 4Mbit sram cart, not much more.
The magic seems to lie within the host system.

I don't know if it's clear to everybody, but according to its patent, the host system was meant to let users create snes games without previous programming knowledge.
Thus, it seems unlikely that you'd ever find retail games or prototypes of retail games on these cartridges.

The dump is good in the sense that i verified the data multiple times on 2 different backup units and checked back with a memory viewer on a real snes. (to make sure it doesn't use an unusual mapping scheme)

Whether the cart once contained a working game and whether the contents have become corrupted can't be said for sure.

It doesn't run on a Snes.
Y~K
Hazed
Posts: 54
Joined: Mon Jan 22, 2007 3:27 am

Post by Y~K »

d4s wrote:As discussed before, the cartridge itself is a rewriteable 4Mbit sram cart, not much more.
The magic seems to lie within the host system.

I don't know if it's clear to everybody, but according to its patent, the host system was meant to let users create snes games without previous programming knowledge.
Thus, it seems unlikely that you'd ever find retail games or prototypes of retail games on these cartridges.

The dump is good in the sense that i verified the data multiple times on 2 different backup units and checked back with a memory viewer on a real snes. (to make sure it doesn't use an unusual mapping scheme)

Whether the cart once contained a working game and whether the contents have become corrupted can't be said for sure.

It doesn't run on a Snes.
Thanks for the infos d4s. :)

And since I'm here,
@The Dumper: Hello Good Sir. Did you send my SA-1 carts back? Altho it's not of high priority to me, I'm just asking to make sure the carts weren't lost.
The Dumper
Rookie
Posts: 11
Joined: Wed Jul 28, 2004 5:03 pm

Post by The Dumper »

Y~K wrote:And since I'm here,
@The Dumper: Hello Good Sir. Did you send my SA-1 carts back? Altho it's not of high priority to me, I'm just asking to make sure the carts weren't lost.
Thanks for reminding me. I'll get them back soon.
CZroe
Rookie
Posts: 23
Joined: Fri Jan 13, 2006 7:01 pm

Post by CZroe »

Panzer88 wrote:yes but we've bastardized it ever since audio cassette tapes.
Japan was worse... they call game cartridges "cassettes" too. It's actually printed, nay, IMprinted, on the Super Famicom.
McAffee says ZSNES has a virus in it!*nt*
im glad u think its funny a**hole o wate no im not go 2 hell
doktor_kris
Lurker
Posts: 102
Joined: Sat Feb 25, 2006 7:47 pm
Contact:

Post by doktor_kris »

CZroe wrote:Japan was worse... they call game cartridges "cassettes" too.
That goes for the Scandinavian languages as well.
Post Reply