Need help dumping SA1 Chip games

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.
Tamanegi_taro
Posts: 25
Joined: Sat Dec 12, 2015 3:47 am

Re: Need help dumping SA1 Chip games

Post by Tamanegi_taro »

Hi sanni,

I soldered all cables back.
All you need is REFRESH = LOW.
I guess you shouldn't supply CPU CLK. Otherwise, you get corrupted data when clock goes into CPU CLK.
So I think key feature you listed is good.

Also, I tried different frequencies for CLK0 and CLK2.
SA1 unlock flash chip very fast if I supply original 21,477,272Hz and 3,072,000Hz, respectively.

Now I got stable access to Kirby Super Deluxe too!
I hope skaman get same result with his SA1 game too.
User avatar
sanni
Posts: 44
Joined: Sat Jul 20, 2013 2:21 pm

Re: Need help dumping SA1 Chip games

Post by sanni »

Thanks alot :D

So set the master clock(pin 1) to 21Mhz, don't output a clock to Sys Clock(pin 57), output 3Mhz to Cic Clock, output a low signal to refresh(pin 33) and high to reset(pin 26).
And also make sure you got a stable power supply or at least a strong USB port.
Pushed the changes to the github repo.

Now we just need to find out how to access the sram on SA-1 carts. Maybe just set some of the registers to a specific value? http://problemkaputt.de/fullsnes.htm#snescartsa1iomap
Tamanegi_taro
Posts: 25
Joined: Sat Dec 12, 2015 3:47 am

Re: Need help dumping SA1 Chip games

Post by Tamanegi_taro »

I still can't find where is SRAM of SA1.
Maybe it is good idea to dump all banks and search save data from the dump.
I'll try it on Saturday.
Revenant
Posts: 462
Joined: Sat Apr 25, 2015 1:47 pm
Location: FL

Re: Need help dumping SA1 Chip games

Post by Revenant »

What happens if you dump all of 400000 through 43FFFF?
User avatar
sanni
Posts: 44
Joined: Sat Jul 20, 2013 2:21 pm

Re: Need help dumping SA1 Chip games

Post by sanni »

If I understand this correctly there is a register that controls if the SNES CPU (which would be the Arduino) access to the Sram, so we would need to write something to this register first.
2224h SNES BMAPS 00h SNES CPU BW-RAM Mapping to 6000h-7FFFh (W)
2225h SA-1 BMAP 00h SA-1 CPU BW-RAM Mapping to 6000h-7FFFh (W)
2226h SNES SBWE 00h SNES CPU BW-RAM Write Enable (W)
2227h SA-1 CBWE 00h SA-1 CPU BW-RAM Write Enable (W)
Super Nintendo CPU BW-RAM Address Mapping
$2224 (#$00, w, x)
---BBBBB
B = Which portion of BW-RAM to map to $00-3F:$6000-$7FFF and $80-BF:$6000-$7FFF
Super Nintendo CPU BW-RAM Write Enable
$2226 (#$00, w, x)
P-------
P = Protect BW-RAM from writes from the SNES
0 = Protect
1 = Write enabled
http://wiki.superfamicom.org/snes/show/SA-1+Registers
Register $2224 does almost the same thing as $2225, but is for the SNES CPU perspective! You can use $2224 to map the selected block ($00-$1F) from the $40-$43 region to $6000-$7FFF in banks $00-$3F and $80-$BF from the SNES CPU's perspective.
http://www.romhacking.net/forum/index.php?topic=14253.0
Tamanegi_taro
Posts: 25
Joined: Sat Dec 12, 2015 3:47 am

Re: Need help dumping SA1 Chip games

Post by Tamanegi_taro »

Revenant wrote:What happens if you dump all of 400000 through 43FFFF?
That's the second thing I did yesterday. Than I just realized that there is no way to prove if it is save data.
I will try to feed dumped data to emulator to see if game recognize it as save data.
Tamanegi_taro
Posts: 25
Joined: Sat Dec 12, 2015 3:47 am

Re: Need help dumping SA1 Chip games

Post by Tamanegi_taro »

I tried but emulator did not recognize it as save data.
Maybe SRAM battery on my carts are dead.
I need to go shopping to get real snes console to see save data on carts too.
User avatar
sanni
Posts: 44
Joined: Sat Jul 20, 2013 2:21 pm

Re: Need help dumping SA1 Chip games

Post by sanni »

I hooked up one of those cheap $5 logic analyzers:

Image

From the HY6264A-(I) Series 8Kx8bit CMOS SRAM datasheet:
Note(Read Cycle)
1./WE is high for the read cycle.
2.Device is continuously selected /CS=VIL, CS2=VIH.
3./OE=VIL.
Image

As you can see the sram is set-up correctly for reading(We high, OE low, CE1 low, CE2 high) and there is something happening on the A0 pin of the sram when I try to read the save.
Also the data is relayed from the data pins of the sram chip to the data pin of the cart edge.

Here is PGA Tour 96 (PAL): https://dl.dropboxusercontent.com/u/209 ... ATOUR9.zip
I created a player named "A" on my Super Famicom and the same player appears when I play the save with Snes9X.

And here Shining Scorpion(JPN): https://dl.dropboxusercontent.com/u/209 ... ININGS.zip

I'm reading it like this:

Code: Select all

  else if (romType == SA) {
    // Dumping SRAM on HiRom needs CS(PH3) to be high
    PORTH |=  (1 << 3);
    // Sram size
    long lastByte = (long(sramSize) * 128);
    for (long currByte = 0x0; currByte < lastByte; currByte++) {
      myFile.write(readBank_SNES(0x40, currByte));
    }
Tamanegi_taro
Posts: 25
Joined: Sat Dec 12, 2015 3:47 am

Re: Need help dumping SA1 Chip games

Post by Tamanegi_taro »

I have same shining scorpion game so I looked at your save data by running it on emulator.
Your save data has 2 save slots and one with name randomly selected.
And another with boy's name who played the game.

I also dumped my shining scorpion save data and verified that SA1 sram can be dumped.
But I can't write SA1 sram too.

I've tried following but none of them worked for writing SA1 sram.

1: WRAM = high, Refresh = high
2: WRAM = high, Refresh = high, writeBank_SNES(0x00, 0x2226, 0xFF); writeBank_SNES(0x00, 0x2227, 0xFF);
3: WRAM = low, Refresh = low
4: WRAM = low, Refresh = low, writeBank_SNES(0x00, 0x2226, 0xFF); writeBank_SNES(0x00, 0x2227, 0xFF);



Edit: oops. It wasn't EXPAND pin. It was Refresh pin.
EXPAND pin was low throughout experiments above.

Thanks,
Tamanegi
Last edited by Tamanegi_taro on Sun May 15, 2016 9:31 pm, edited 1 time in total.
User avatar
sanni
Posts: 44
Joined: Sat Jul 20, 2013 2:21 pm

Re: Need help dumping SA1 Chip games

Post by sanni »

Book2 of the Snes Dev Manual speaks alot about the different SA1 registers but even with all that knowledge I wasn't able to make /WE of the sram go high. One interesting part in there was that by default the SA1 cpu is in some sort of sleep mode and first needs to be woken up. I wonder if maybe the SA1 cpu needs to be running before writes to it's registers show any result.
heipp123
Posts: 4
Joined: Thu Feb 16, 2017 8:01 am

Re: Need help dumping SA1 Chip games

Post by heipp123 »

Hi can you reupload the Nintendo Cart Reader V9.
thank you

Tamanegi_taro wrote:Hi byuu!
byuu wrote:If you have the ability to produce hardware of that caliber, is there no chance you can make a 21fx board using defparam's open source schematics / gerber files / etc?
It look very awesome. Sorry I don't have any experience to make device like this...
Is there anybody who sell this device?

Hi sanni and skaman!
Since I didn't have any display nor SD card module to store ROM data, developed USB Serial GUI for Nintendo Cart Reader V9.
Image
Here is binary and source code:

update July 7th 2016
http://www.speedyshare.com/6Dv6D/Ninten ... Latest.rar
I also modified some of the codes such as HiROM SRAM read address.

Thanks,
Tamanegi
User avatar
sanni
Posts: 44
Joined: Sat Jul 20, 2013 2:21 pm

Re: Need help dumping SA1 Chip games

Post by sanni »

You can find the latest version here: https://github.com/sanni/cartreader
Includes all the source code and pcb files. There is also a pinout in case you want to hand wire it.
heipp123
Posts: 4
Joined: Thu Feb 16, 2017 8:01 am

Re: Need help dumping SA1 Chip games

Post by heipp123 »

hi thank you.
is it that simple that i simply connect arduino pins -snes pins together and upload Cart_Reader.ino to mega(and without any other components like sd module,oled, etc..)whit this i can read snes cartridge right? but can it also program 29F032
thanks.

sanni wrote:You can find the latest version here: https://github.com/sanni/cartreader
Includes all the source code and pcb files. There is also a pinout in case you want to hand wire it.
User avatar
sanni
Posts: 44
Joined: Sat Jul 20, 2013 2:21 pm

Re: Need help dumping SA1 Chip games

Post by sanni »

Yes all you really need is an Arduino Mega, a SNES cart slot and some wires.
But you also need to connect an SD card somehow like wiring a mircoSD adapter to the Arduino.

Image

Then you change the code like this:

Code: Select all

// If you don't have an OLED screen change  
// enable_OLED to 0 and enable_Serial to 1   
#define enable_OLED 0   
#define enable_Serial 1  
And it will output to the Arduino Serial Monitor

Image

So you don't need the OLED screen or the buttons, or a professional manufactured pcb.
heipp123
Posts: 4
Joined: Thu Feb 16, 2017 8:01 am

Re: Need help dumping SA1 Chip games

Post by heipp123 »

thank you.
Post Reply