nesdev.com
https://forums.nesdev.com/

Need help dumping SA1 Chip games
https://forums.nesdev.com/viewtopic.php?f=12&t=14096
Page 3 of 4

Author:  Tamanegi_taro [ Wed May 11, 2016 6:18 am ]
Post subject:  Re: Need help dumping SA1 Chip games

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.

Author:  sanni [ Wed May 11, 2016 8:30 am ]
Post subject:  Re: Need help dumping SA1 Chip games

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

Author:  Tamanegi_taro [ Thu May 12, 2016 7:18 am ]
Post subject:  Re: Need help dumping SA1 Chip games

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.

Author:  Revenant [ Thu May 12, 2016 7:30 am ]
Post subject:  Re: Need help dumping SA1 Chip games

What happens if you dump all of 400000 through 43FFFF?

Author:  sanni [ Thu May 12, 2016 8:45 am ]
Post subject:  Re: Need help dumping SA1 Chip games

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.

Quote:
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)


Quote:
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


Quote:
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

Quote:
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

Author:  Tamanegi_taro [ Fri May 13, 2016 2:32 am ]
Post subject:  Re: Need help dumping SA1 Chip games

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.

Author:  Tamanegi_taro [ Fri May 13, 2016 5:13 pm ]
Post subject:  Re: Need help dumping SA1 Chip games

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.

Author:  sanni [ Sat May 14, 2016 12:50 am ]
Post subject:  Re: Need help dumping SA1 Chip games

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

Image

From the HY6264A-(I) Series 8Kx8bit CMOS SRAM datasheet:
Quote:
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:
  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));
    }

Author:  Tamanegi_taro [ Sat May 14, 2016 7:54 pm ]
Post subject:  Re: Need help dumping SA1 Chip games

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

Author:  sanni [ Sun May 15, 2016 7:02 am ]
Post subject:  Re: Need help dumping SA1 Chip games

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.

Author:  heipp123 [ Thu Feb 16, 2017 8:10 am ]
Post subject:  Re: Need help dumping SA1 Chip games

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/Nintendo-Cart-Reader-V9-GUI-Rev1.5-Latest.rar
I also modified some of the codes such as HiROM SRAM read address.

Thanks,
Tamanegi

Author:  sanni [ Thu Feb 16, 2017 8:46 am ]
Post subject:  Re: Need help dumping SA1 Chip games

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.

Author:  heipp123 [ Thu Feb 16, 2017 9:12 am ]
Post subject:  Re: Need help dumping SA1 Chip games

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.

Author:  sanni [ Fri Feb 17, 2017 2:07 am ]
Post subject:  Re: Need help dumping SA1 Chip games

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:
// 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.

Author:  heipp123 [ Fri Feb 17, 2017 5:15 am ]
Post subject:  Re: Need help dumping SA1 Chip games

thank you.

Page 3 of 4 All times are UTC - 7 hours
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/