News:

Retrode - Honey, fire up the emulator! My Retrode just arrived

Main Menu

Retrode & Star Ocean

Started by MichlK, 22/Mar/2013 11:39:07 AM

Previous topic - Next topic

MichlK

Hi!

I would like to play Star Ocean (Japanese... :) ) using an emulator, e.g. ZSNES. The cart has a S-DD1 chip for on-the-fly graphics decompression from the ROM. As stated in the Retrode-FAQs, carts with S-DD1 are currently not supported. ZSNES would have the routines to emulate the decompression like S-DD1 does (see sdd1emu.c). The problem is to get the (compressed) data from the ROM, e.g. by bypassing the S-DD1 (not possible?!) or re-compressing the data, if it can be accessed decompressed with the Retrode, right?

Is it (theoretically ;)) only a problem solvable in Retrode's firmware / software, or is it also a hardware problem, e.g. by not having connected the "outer" pins of the cart?

Is there anything a more or less skilled C-programming guy could do to help? ;D

Thanks & best regards,
M.

emuDrache

The goal of database.trurip.org is to catalogue the software of as many classic systems as possible. database.trurip.org does not and will never host ISO or ROM downloads

MichlK

#2
Thank you very much - I seem to have missed this post in my previous search...  :-[

So, I take away: Star Ocean cannot be run with Retrode and most likely will never.

Thanks again & best regards,
M

Wannado

Quote from: FelixV on 24/Mar/2013 11:10:48 PM
It was discussed in this thread awhile back.

http://forum.retrode.org/index.php/topic,12.msg56.html#msg56

That discussion was about the SA1, which has an explicit copy protection feature that hinders the Retrode from accessing the ROM at all.

The S-DD1 however is just a decompression chip. While Wikipedia says that it "also served as a copy protection chip that made these titles extremely difficult to emulate", I think that this just refers to the fact that the decompression algorithm had to be reverse engineered before S-DD1 games could be emulated. As the OP indicated, today's emulators do support S-DD1 decompression.

Still, you need the compressed data for emulation to work. The Retrode may not be able to access that. So the question remains if the Retrode could at least read the decompressed data. I guess that will require some special bankswitching.

Note that S-DD1 compression code can be found on the web: http://www.romhacking.net/documents/257/
Reconstructing the compressed ROM from the decompressed data would be worth a try.

About S-DD1 and SA1: http://en.wikipedia.org/wiki/List_of_Super_NES_enhancement_chips
About Star Ocean's use of S-DD1: http://en.wikipedia.org/wiki/Star_Ocean_%28video_game%29#Development

Regards,
Wannado

HowlingBlue

As far as I know, it is fairly unlikely that any of the special SNES chips will be readable by the Retrode.

That being said, you have now made me curious to see if one of my old parallel port dumpers can dump the S-DD1...

I will be back as soon as I can track down a copy of Star Ocean.

Wannado

Quote from: HowlingBlue on 01/Apr/2013 08:59:15 PM
I will be back as soon as I can track down a copy of Star Ocean.

I must stress that I am not an expert regarding S-DD1. All I know is from Wikipedia and the documentation that comes with the compression code. So please don't spend your money on my word alone.

I only wanted to make sure S-DD1 and SA1 are not being confused.

It is still absolutely possible that S-DD1 games have the same type of copy protection as the SA1 games. MichlK pointed me to these two posts on nesdev, which seem to contradict each other regarding this issue:
http://forums.nesdev.com/viewtopic.php?f=12&t=9479&p=102854&hilit=DD1+dump#p102854
http://forums.nesdev.com/viewtopic.php?f=12&t=9850&p=108470&hilit=DD1+dump#p108470

Regards,
Wannado

emuDrache

i am not sure if the extra 16 pins are connected or not.  i am thinking not, but matthias would have to reply since i can't seem to find the post that mentions if they are or are not connected.
The goal of database.trurip.org is to catalogue the software of as many classic systems as possible. database.trurip.org does not and will never host ISO or ROM downloads

MasterOfPuppets

He says here the extra pins were never used (and some don't have them at all).

http://forum.retrode.org/index.php/topic,102.0.html

emuDrache

thanks MoP. not sure why i couldnt find that post.

thank you for pulling my strings
thank you for twisting my mind and smashing my dreams

Blinded by you, I can't see a thing
I am calling your name 'cause you'll hear me scream
The goal of database.trurip.org is to catalogue the software of as many classic systems as possible. database.trurip.org does not and will never host ISO or ROM downloads

MasterOfPuppets

Quote from: FelixV on 02/Apr/2013 01:26:18 AM
thanks MoP. not sure why i couldnt find that post.

No problem!

Quote from: FelixV on 02/Apr/2013 01:26:18 AM
thank you for pulling my strings
thank you for twisting my mind and smashing my dreams

Blinded by you, I can't see a thing
I am calling your name 'cause you'll hear me scream

Ha ha, very nice.

emuDrache

The goal of database.trurip.org is to catalogue the software of as many classic systems as possible. database.trurip.org does not and will never host ISO or ROM downloads

Wannado

Quote from: FelixV on 01/Apr/2013 10:32:45 PM
i am not sure if the extra 16 pins are connected or not.  i am thinking not, but matthias would have to reply since i can't seem to find the post that mentions if they are or are not connected.

When trying to find out if the S-DD1/Star Ocean uses those extra pins, I stumbled upon this document:
http://nocash.emubase.de/fullsnes.txt

In a section about disabling the CIC inside the console, it says: "Games with SA-1 or S-DD1 chips won't work."
Also, there's some indication that the said extra pins are used by the S-DD1.

So, it seems that there is really no way to make the Retrode read S-DD1 games.

Regards,
Wannado

MichlK

#12
Hi all,

well, as it turns out, you do not need any special (Super-)CIC thing to read the whole Star Ocean ROM from the cart!

Two sources already pointed in that direction:
1. In uCON64 sourcecode, there are special routines for S-DD1 reading:
http://ucon64.cvs.sourceforge.net/viewvc/ucon64/ucon64/src/backup/swc.c?view=markup
2. In a nesdev-forum thread, user byuu (MatthiasH knows him for sure... ;)) confirms that S-DD1 carts can be read if you can send write commands to the cart's registers and generally describes how to do it:
http://forums.nesdev.com/viewtopic.php?f=12&t=9850

So I put the bits and pieces together:
The Star Ocean cart lets you read the original ROM-contents (including the compressed graphics!) in address area 0xf00000-0xffffff (HiROM-style although Star Ocean reports as LoROM!), but only 8 megabits at a time. To read the full 48 megabits, you need to switch between the "memory chunks" by writing 0..5 into address 0x004807. For that, set /RD and /RESET to HIGH (/CS and /WR to LOW!) and put the number on the data lines, having the correct address already set on the bank- / address-lines. After setting the chunk, you can read the corresponding data in the address area (i.e. chunk 0 gives you the first MB, chunk 1 the second MB, etc.). That's it!

Using an Arduino Uno (data lines directly connected to be able to switch between input and output) and some 74HC595 shift-out registers (to be able to write to all address- / bank- / control-lines), I could successfully finish reading the whole ROM of my Star Ocean cart (md5sum d686ba6df942084216393ada009126dc)! :)

Using this rather simple DIY-solution, it takes ~ 4 hours to read the full 48 megabits (including "verify"). I am sure, Retrode could do it much faster and in a much more convenient way... :)

Hope this helps!

Best regards,
M.

Matthias_H

Wow MichiK, thanks for doing the research! That would be wonderful. I will give it a try as soon as I manage to.
https://www.retrode.org

I no longer sell the Retrode. For sales inquiries, please contact our friends at DragonBox.