It is currently Mon Nov 20, 2017 9:07 pm

All times are UTC - 7 hours



Forum rules


Related:



Post new topic Reply to topic  [ 46 posts ]  Go to page Previous  1, 2, 3, 4  Next
Author Message
PostPosted: Wed May 11, 2016 6:18 am 
Offline

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


Top
 Profile  
 
PostPosted: Wed May 11, 2016 8:30 am 
Offline
User avatar

Joined: Sat Jul 20, 2013 2:21 pm
Posts: 43
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


Top
 Profile  
 
PostPosted: Thu May 12, 2016 7:18 am 
Offline

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


Top
 Profile  
 
PostPosted: Thu May 12, 2016 7:30 am 
Offline

Joined: Sat Apr 25, 2015 1:47 pm
Posts: 331
Location: FL
What happens if you dump all of 400000 through 43FFFF?


Top
 Profile  
 
PostPosted: Thu May 12, 2016 8:45 am 
Offline
User avatar

Joined: Sat Jul 20, 2013 2:21 pm
Posts: 43
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


Top
 Profile  
 
PostPosted: Fri May 13, 2016 2:32 am 
Offline

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


Top
 Profile  
 
PostPosted: Fri May 13, 2016 5:13 pm 
Offline

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


Top
 Profile  
 
PostPosted: Sat May 14, 2016 12:50 am 
Offline
User avatar

Joined: Sat Jul 20, 2013 2:21 pm
Posts: 43
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));
    }


Top
 Profile  
 
PostPosted: Sat May 14, 2016 7:54 pm 
Offline

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

Top
 Profile  
 
PostPosted: Sun May 15, 2016 7:02 am 
Offline
User avatar

Joined: Sat Jul 20, 2013 2:21 pm
Posts: 43
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.


Top
 Profile  
 
PostPosted: Thu Feb 16, 2017 8:10 am 
Offline

Joined: Thu Feb 16, 2017 8:01 am
Posts: 4
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


Top
 Profile  
 
PostPosted: Thu Feb 16, 2017 8:46 am 
Offline
User avatar

Joined: Sat Jul 20, 2013 2:21 pm
Posts: 43
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.


Top
 Profile  
 
PostPosted: Thu Feb 16, 2017 9:12 am 
Offline

Joined: Thu Feb 16, 2017 8:01 am
Posts: 4
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.


Top
 Profile  
 
PostPosted: Fri Feb 17, 2017 2:07 am 
Offline
User avatar

Joined: Sat Jul 20, 2013 2:21 pm
Posts: 43
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.


Top
 Profile  
 
PostPosted: Fri Feb 17, 2017 5:15 am 
Offline

Joined: Thu Feb 16, 2017 8:01 am
Posts: 4
thank you.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 46 posts ]  Go to page Previous  1, 2, 3, 4  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: Yahoo [Bot] and 9 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group