Need help dumping SA1 Chip games
Moderator: Moderators
Forum rules
- For making cartridges of your Super NES games, see Reproduction.
-
- Posts: 25
- Joined: Sat Dec 12, 2015 3:47 am
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.
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.
Re: Need help dumping SA1 Chip games
Thanks alot
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
![Very Happy :D](./images/smilies/icon_biggrin.gif)
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
-
- Posts: 25
- Joined: Sat Dec 12, 2015 3:47 am
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.
Maybe it is good idea to dump all banks and search save data from the dump.
I'll try it on Saturday.
Re: Need help dumping SA1 Chip games
What happens if you dump all of 400000 through 43FFFF?
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.
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
http://wiki.superfamicom.org/snes/show/SA-1+RegistersSuper 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://www.romhacking.net/forum/index.php?topic=14253.0Register $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.
-
- Posts: 25
- Joined: Sat Dec 12, 2015 3:47 am
Re: Need help dumping SA1 Chip games
That's the second thing I did yesterday. Than I just realized that there is no way to prove if it is save data.Revenant wrote:What happens if you dump all of 400000 through 43FFFF?
I will try to feed dumped data to emulator to see if game recognize it as save data.
-
- Posts: 25
- Joined: Sat Dec 12, 2015 3:47 am
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.
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.
Re: Need help dumping SA1 Chip games
I hooked up one of those cheap $5 logic analyzers:
![Image](https://dl.dropboxusercontent.com/u/20912715/snes/Snes_Cart_Reader_Mega_Shield/sa1_logic1.jpg)
From the HY6264A-(I) Series 8Kx8bit CMOS SRAM datasheet:![Image](https://dl.dropboxusercontent.com/u/20912715/snes/Snes_Cart_Reader_Mega_Shield/sa1-sram.jpg)
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:
![Image](https://dl.dropboxusercontent.com/u/20912715/snes/Snes_Cart_Reader_Mega_Shield/sa1_logic1.jpg)
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](https://dl.dropboxusercontent.com/u/20912715/snes/Snes_Cart_Reader_Mega_Shield/sa1-sram.jpg)
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));
}
-
- Posts: 25
- Joined: Sat Dec 12, 2015 3:47 am
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
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.
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.
Re: Need help dumping SA1 Chip games
Hi can you reupload the Nintendo Cart Reader V9.
thank you
thank you
Tamanegi_taro wrote:Hi byuu!
It look very awesome. Sorry I don't have any experience to make device like this...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?
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.
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
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.
Includes all the source code and pcb files. There is also a pinout in case you want to hand wire it.
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.
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.
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](https://abload.de/img/img_2815n7u3g.jpg)
Then you change the code like this:
And it will output to the Arduino Serial Monitor
![Image](https://abload.de/img/untitledbiup8.jpg)
So you don't need the OLED screen or the buttons, or a professional manufactured pcb.
But you also need to connect an SD card somehow like wiring a mircoSD adapter to the Arduino.
![Image](https://abload.de/img/img_2815n7u3g.jpg)
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
![Image](https://abload.de/img/untitledbiup8.jpg)
So you don't need the OLED screen or the buttons, or a professional manufactured pcb.
Re: Need help dumping SA1 Chip games
thank you.