Go Down

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

Parodius316

So is there an easy way to add additional flash chips (GBA specifically) to the program?

Side Note: I also tested out 4 authentic GB games.  Two worked, Tetris and TMNT, 2 didn't, Zelda Links Awakening and Super Mario Bros Deluxe (Well this one was GBC).  I tested all 4 of those just dumping the file to a ROM to play on an emulator. 

sanni

Zelda and Mario are both MBC5 carts so they should dump without any problems. Maybe try cleaning the contacts with some IPA and a cotton swab. Check the GB slot for shorts and also insert a GB cartridge a few times to mechanically clean the contacts of the slot. And then also switch the config switches around a little bit just to make sure they make good contact and provide a stable 5V to the GB cart slot.

You might also want to check this list of issues I have encountered so far: https://github.com/sanni/cartreader/wiki/Known-issues

Adding new GBA flash chips can be very easy or very hard depending on the flash chip.
First you need to find out what chip is in the repro exactly and then if you're lucky there is already code for that particular chips in the flashrom.ino or n64.ino part of the code. Then you can just change one of the existing gba flash functions until flashing your chips is working.
If you're not that lucky and the chip is not already supported somewhere in the code then you have to search for a datasheet of the chip, read it and then apply what you have learned.
And if you're unlucky there won't be a datasheet at all and you have to resort to trial and error which can take a while.

One shortcut is to look at the code of other open-source GBA flashers like the very good GBxCart by insidegadgets: https://github.com/insidegadgets/GBxCart-RW
If they support the chip then you can just port the code over and don't have to spend all the time reading datasheets.

dragynfyre

I'm interested in building this with only the N64 cart slot and I have a couple questions.

1) Is the clock generator only needed for the SNES SA1 cartridges? I think it would be great if you could clarify why it's optional on the part's list wiki page.

2) Is it okay for me to omit the PIC12F629 if I don't need SNES compatibility? Would I also omit the 100nF capacitor as well? Sorry if this seems obvious but I'm a new at this.

3) The RGB LED part in your excel sheet is discontinued so you may want to update that.

4) Do you have any plans to make a Digikey list for these parts? In one of your earlier forum posts you mentioned it but I don't see it on the wiki page.

5) Do you have any plans to modularize the instructions and parts so that people who are only interested in building a subset of the slots can reduce cost?

Lastly thank you for posting this design. It is by far the cheapest way to backup and restore N64 cartridge saves that's still available right now.

sanni

Thanks for your feedback.  :)

I updated the wiki accordingly, changed the RGB led and marked the PIC and clockgen as only needed for SNES. You can leave out the 100nF cap too since it's just for the PIC.
While a digikey parts list would be helpful sadly I don't have the time right now to make one.
I don't think I will post separate instructions for just building the cart reader for one system but I have now added a notice that everything not wanted can be left out.

You can also change Cart_Reader.ino like so to have the Cart Reader's menu automatically start in the N64 section:

Code: [Select]
/******************************************
   Define Starting Point
******************************************/
// mainMenu, n64Menu, snsMenu, gbxMenu, segaMenu, flashMenu
#define startMenu n64Menu

Parodius316

Ok, from top to bottom we have:

ST M36LDR706 -> The gbxcart-rw project has support for this flash chip so one could take a peek at the source code there and port it over
Intel 0121 -> Can't find any info about it, but if we're lucky it's similar to the Intel4000 and Intel4400
Intel 4400 -> This should already work, maybe there is a bug in the code though, I can't test since I don't have this flashrom
Fujitsu MSP55LV100G -> Again I can't find any info about it, but hopefully it's similar to the  MSP55LV100S that is already supported in N64.ino.

So one should be easy to fix, one do-able to implement and two will require some serious trial and error. Too bad that they all don't have the same type of chip. I'll probably won't have the time to add support for them.
Ok going by the 4 I listed a few pages back just for reference, the Intel 0121, and the MSP55LV100 refuse to copy.  Those other 2 chips appear to work just fine. 

Parodius316

Zelda and Mario are both MBC5 carts so they should dump without any problems. Maybe try cleaning the contacts with some IPA and a cotton swab. Check the GB slot for shorts and also insert a GB cartridge a few times to mechanically clean the contacts of the slot. And then also switch the config switches around a little bit just to make sure they make good contact and provide a stable 5V to the GB cart slot.

You might also want to check this list of issues I have encountered so far: https://github.com/sanni/cartreader/wiki/Known-issues

Adding new GBA flash chips can be very easy or very hard depending on the flash chip.
First you need to find out what chip is in the repro exactly and then if you're lucky there is already code for that particular chips in the flashrom.ino or n64.ino part of the code. Then you can just change one of the existing gba flash functions until flashing your chips is working.
If you're not that lucky and the chip is not already supported somewhere in the code then you have to search for a datasheet of the chip, read it and then apply what you have learned.
And if you're unlucky there won't be a datasheet at all and you have to resort to trial and error which can take a while.

One shortcut is to look at the code of other open-source GBA flashers like the very good GBxCart by insidegadgets: https://github.com/insidegadgets/GBxCart-RW
If they support the chip then you can just port the code over and don't have to spend all the time reading datasheets.
Ok cool thanks.  I really don't understand most of it, so doubt its something I would be able to do lol.  Programming language etc isn't my strongsuit, but Ill see if I can try lol.  Which file would I be looking at on https://github.com/insidegadgets/GBxCart-RW ??

dragynfyre

Thanks for your feedback.  :)

I updated the wiki accordingly, changed the RGB led and marked the PIC and clockgen as only needed for SNES. You can leave out the 100nF cap too since it's just for the PIC.
While a digikey parts list would be helpful sadly I don't have the time right now to make one.
I don't think I will post separate instructions for just building the cart reader for one system but I have now added a notice that everything not wanted can be left out.

You can also change Cart_Reader.ino like so to have the Cart Reader's menu automatically start in the N64 section:

Code: [Select]
/******************************************
   Define Starting Point
******************************************/
// mainMenu, n64Menu, snsMenu, gbxMenu, segaMenu, flashMenu
#define startMenu n64Menu

Thanks for the fast update! Another thing I noticed. In the excel sheet these two items don't correspond to anything in the alternative links:

- 1x40 female pin header
- SMD slide switch

Are those parts still used in the current version of the design?

sanni

1x40 female pin header is not used anymore. SMD slide switch is for the flash adapter PCB but not part of the main PCB build. I'll remove both from the excel sheet, thanks.

RyoHazuki

I just ordered the pcbs (cart reader and adapters) and i'm really hyped to start building it, i'm building this mainly to learn about old game cartridges, eproms and arduino itself. And i want to make reproduction cartridges as my new hobby.
I wanna ask you about the sd card module, the one you mention in the parts list (This) has only 6 pins while the normal sd adapter you made uses 8 pins, my question is should i buy that micro sd module or a normal sd module like this one (Link)?
Can i connect the micro sd card module on the 6 female pin header down the 2x8 one or do i need to solder them to specific pins?

Will it be possible to program more eproms (specifically 27c801) besides 27c322 in the future?

Parodius316

I just ordered the pcbs (cart reader and adapters) and i'm really hyped to start building it, i'm building this mainly to learn about old game cartridges, eproms and arduino itself. And i want to make reproduction cartridges as my new hobby.
I wanna ask you about the sd card module, the one you mention in the parts list (This) has only 6 pins while the normal sd adapter you made uses 8 pins, my question is should i buy that micro sd module or a normal sd module like this one (Link)?
Can i connect the micro sd card module on the 6 female pin header down the 2x8 one or do i need to solder them to specific pins?

Will it be possible to program more eproms (specifically 27c801) besides 27c322 in the future?
Not sure on 2nd question, but the microSD works just fine, thats what im using.  You don't need to do the modification to it as shown in the video. 

RyoHazuki

Not sure on 2nd question, but the microSD works just fine, thats what im using.  You don't need to do the modification to it as shown in the video. 
Ok, so i just need to plug it directly on these pins right?

williammuller

#716
Jan 07, 2019, 03:10 pm Last Edit: Jan 07, 2019, 03:11 pm by williammuller
Suport m5m29gb640vp ?

sanni

Both SD modules are fine. The blue full-size SD module is missing the voltage level translator chip but it still works. The microSD module has the level translator chip but obviously, you can't fit a full-size SD into it. That's why in my video I move all the parts from the microSD module to a custom made PCB. But you don't have to do that.
The microSD module just plugs into the 6 pin header as shown in your image.

From my tests, the full-size SD cards are faster in combination with the Arduino but that might be just because of the SD cards I personally have myself.

I have no plans to add support for more eproms or flashroms since I currently don't have much free time. But it shouldn't be all too hard to add support yourself since more often than not different chips are just slight variations of the chips already supported. The 27C801 as example seems to only differs in size, bus width and pinout compared to the 27C322. The actual programming algorithm is basically the same.


sanni

Some updates:

I have written code to flash a N64 Gameshark in case it's bricked or just for updating if it doesn't have a parallel port.



And I also have compiled a parts list for 10 Cart Readers(without battery addon) for ~$300 which brings the price per Cart Reader down to $30 thanks to falling prices, economy of scale and the Winter Sale on Aliexpress right now.

Perfect for a group buy, a retro community or a maker space. One of you needs a 3d printer and one a PIC programmer.


Go Up