Go Down

Topic: ROM-Reader for Super Nintendo / Super Famicom Game Cartridges (Read 389564 times) previous topic - next topic

xybots

Hi Sanni yes I will send you the file ill be testing it more tomorrow when I get home thanks for all your help

darleiv

eprom flash 29L3211 is recorded in 8 bits. (BYTE GND) but does sanni support burn and 16 bit or not? BYTE VCC - that MD adapter writes in how many bits? SNES processor is a big 32 bit endian. already the mega drive and a big endian 16 bits how is this on the recorder :o

sanni

You can burn as 8bit with the Cart Reader and then wire as 16bit in the game cartridge without a problem.

xIceMan

I've been wondering since the cart reader can programm INL N30 carts (from what I read).
Wouldn't it be possible to add support for INL SNES carts as well?

Also, in the FLASH menu you should update the text from:
static const char flashMenuItem3[] PROGMEM = "MX26L6420";

to:
static const char flashMenuItem3[] PROGMEM = "16bit Flash adapter";

since it's not only for one 16bit Flash IC. :P

sanni

The menu entries are named after the currently available adapter PCBs on Github.

INL SNES carts use a S29GL chip so adding support should be pretty easy as long as they are just single game flashcarts and don't have a menu and as long as they follow the usual repro pinout and don't do anything fancy.

xIceMan

It has 2 FLash ROMs.
U2 being SG29L032N90TF103
U3 being SG29L064N90TF103

It supports Lo/Hi/ExHiROM and Star Ocean 12MB Hack.

PCB images of board:
https://imgur.com/a/m0gnPZI

The toggle switch is for Lo/Hi switching.

I think the XC9536XL controls the mapping.

LVC16245A being 5V to 3.3V bus transceiver and the IC on the left is 1Mbit SRAM.

sanni

The INL cart uses S29GL Model 03 Top Boot flashroms with non-uniform sector sizes(datasheet page 24), so to write the full 8MB of the first flash chip the current flash function would need to be modified but writing 4MB Lo- or HiRom could work. Maybe even 6MB ExHiRom works after increasing the defined flash size for S29GL in flash.ino.
As for writing the full 12MB for making Star Ocean repros, there you probably have to read the INL source code to see at which address the second chip is located. I'm not gonna do that because I find the INL source code kinda hard to read.


androxilogin

I've been modding a lot of PS1/PSOnes lately and got to thinking.. I already have a DexDrive and I'm thinking about making a making a MemcarDuino but how cool would it be to have this implemented into the cart reader?? I mean, to just dump to an SD card, I think that would be awesome.

Also, I printed the extended case for the battery but when I sliced and hit preview in Cura I guess my infill covered the inside where the battery is supposed to show outside. I didn't catch this until it was too late but to fit the board properly, the bigger female USB may need to be removed. Of course it will be pointless after installing it anyway so I figured I'd remove it anyway.




thebigman1106

Hi sanni,
I have a few n64 Chinese repros im trying to get recognised by they reader.

Images of the chips are here

 https://drive.google.com/file/d/18i3PAzdGjIom_39yG6Gw1IfXaBT__AAs/view?usp=drivesdk


mx29gl128eht2i-90g Vender -ff6f id:7c00 7c00 Mario kart
Chip unknown - vender b0 id 000c 000c banjo tooie
Lh28f512bfnd-ptslzi - vendtr id 000c 000c res evil

I'm guessing the unknown chip is the same as they red evil cart.

I also have a Mario party 3in1 cartwhich i would like to dump, buts its larger then a standard card (2x512mbit!!!!!)

Any help would be greatly appreciated

sanni

MemcarDuino
That should be quite easy to integrate since there is already an Atmega2560 port available in the pull requests of the Github you linked.
Basically you just have to replace all the serial stuff with the SD stuff.
You can look at the SMS.ino file in the Cart_Reader folder to see what exactly is needed to add a new system to the Cart Reader project as the SMS.ino is the smallest file so far.

covered the inside where the battery
It could also be that Sketchup did an error when exporting, you can run the STL file through Meshmixer or Windows 10 3D Builder to automatically fix errors.

mx29gl128eht2i-90g Vender -ff6f id:7c00 7c00 Mario kart
Chip unknown - vender b0 id 000c 000c banjo tooie
Lh28f512bfnd-ptslzi - vendtr id 000c 000c res evil
I have stopped working on repro carts since it takes too much time. Basically you have to read the datasheet and compare it to the current code then make some changes and try if it works and then repeat until it actually works. It's not hard it just takes time.

I also have a Mario party 3in1 cart which i would like to dump, buts its larger then a standard card (2x512mbit!!!!!)
I guess you get the screen where you have to manually select the cart size, in this case just go into n64.ino and change the  "cartSize = 64;" (line 1640) to 128 and see if it dumps the whole cart if not then you have to figure out how the mapper works in this Chinese multicart.
     

androxilogin

#1030
Jan 09, 2020, 01:07 am Last Edit: Jan 12, 2020, 01:22 am by Androxilogin
That should be quite easy to integrate since there is already an Atmega2560 port available in the pull requests of the Github you linked.
Basically you just have to replace all the serial stuff with the SD stuff.
You can look at the SMS.ino file in the Cart_Reader folder to see what exactly is needed to add a new system to the Cart Reader project as the SMS.ino is the smallest file so far.

It could also be that Sketchup did an error when exporting, you can run the STL file through Meshmixer or Windows 10 3D Builder to automatically fix errors.

I'd love to get this working unfortunately I have no idea where to begin. I suppose it's a matter of looking over the SMS.ino and basically copy/paste sort of thing. I'll attempt it as soon as I can get a chance. Hopefully this weekend.

Running the file through Meshmixer seems to be the same sort of thing.I don't know what's going on.

And I wanted to share this list of different SNES game chips as a reference for others.

[EDIT]

I began working on the diagram earlier


Enlarge

Here is what I got so far but the 7.6v threw me off, the 3.6v and 5v I wondered about the switch already on the board operating this. I began looking over the code as suggested but quickly got lost with how to go about it. The last coding I did was in Java and it's been about two years.


Enlarge

Here is a comparison if someone could even begin to walk me through it so I can get an understanding of things it would be appreciated.

sanni

Here this should get you started, I had to change AttPin from pin 53 to pin 3 since it was conflicting with the SD card.
Obviously untested and guaranteed not working since I have not read up on how the PS1 memory card actually works and just copy&pasted everything into psx.ino.
So now you have to work on said psx.ino and modify the functions until it works.

androxilogin

#1032
Jan 12, 2020, 06:09 pm Last Edit: Jan 18, 2020, 08:35 pm by Androxilogin
Oh wow. So basically you did all the work.



I started testing this morning. What's not so good is power has to be taken externally if running from usb since the socket itself will be taking pretty much all that its got. I've added a battery but I don't have a voltage divider handy so it's getting a straight 5 volts. Changed the ATTN pin from 3 to 10 which was unsuccessful and found that plugging in an unnofficial memory card causes an SD error. I'm waiting on a nano to show up (hopefully tomorrow) so I can understand how it works a little better.

[UPDATE]

Got my Arduino Nano and uploaded the code to it, soldered it all up and it's working. I tested it with official and non-official memory cards and they both worked. However, official memory cards took a bit longer to read.



The external power pin (pin three in the above diagram) is not connected to anything. I simply connected the 5 volt pin without a 3.6 voltage divider. I have a DexDrive and it copies a lot faster although I did have some trouble with my official memory cards. I'm beginning to believe the quote in the diagram calling for 7.6 volts being required for 3rd party cards is actually the other way around. I have everything taped up at the moment or I would check with a multimeter. From reading over a thread by ShendoXT, he states that the ATTN pin isn't that important although it's an old thread so asking him to elaborate the reasons why would probably go unheard. So now I'll be dissecting the original code looking at how it was ported to Atmega2560 and looking over what you have provided here.

bodgit

I've successfully built two of these readers and I've tested them with a bunch of SNES and Gameboy/Color/Advance cartridges with perfect results. It means I also now have the various save states backed up before the batteries die.

I had one question, what is the purpose of the sleeve on the N64 slot? The only N64 cartridge I have to hand is an Everdrive64 and that won't fit with the sleeve in place, (not that I'd want to dump it anyway), but I don't have any other cartridges as a reference.

I also had a bit of trouble flashing the snesCIC PIC with my programmer that I might send as a documentation PR as I needed to do it slightly differently.

Anyway thanks for the design, it was a fun build.

sanni

The N64 cartridge slot has a 2.5mm pin spacing but the Chinese vendors on Aliexpress often send a 2.54mm Sega Master System slot instead. The 2.54mm slot will still work fine as long as the N64 cartridge is perfectly centered. The N64 sleeve keeps the cart centered since the cart now barely slides onto the cart slot.
The sleeve needs to be printed with exactly 1 line wall thickness(~0.4-0.5mm) or else it will be too thick and the N64 cartridge will not fit anymore.

Go Up