It must be a noise problem, most likely my other Arduino has better caps or an overall better design. Replacing the voltage regulator probably helped because some regulators can cope with noise better than others and so does powering the Arduino with a 9V battery. Soldering a wire directly from the voltage regulator's output tab to the cartslot also seems to help if powered from a battery. I haven't fully understood it yet and also don't have the equipment to do better testing.
I've made a pulse counter (useful experience) and found that I needed quite some calibration (-581000), now the frequency seems to be spot on. Slowing the master clock doesn't help me get SA-1 carts recognized either, so I think I'll replace the voltage regulator and add necessary caps on the arduino now.
Still need to get something myself that can count clock pulses.
That would be great to control the menu instead of using only one button.
I finally got a SA-1 cart recognized. The cartridge in question had its maskrom replaced by a 27C322. None of my SA-1 carts with original MX maskrom ever worked though. I've already exchanged my chinese voltage regulator for a trusty 7805 but I still suspect the power circuit to be suboptimal. How did you improve the power circuit no your chinese boards sanni?
I did replace the output capacitor to see if anything changes, but nothing happend. Replacing the voltage regulator(AMS1117 1A) at least gave varying results from worse(78M05 0.5A) to better(AX1117 1A) but still far away from fixing the issue 100%.
I dumped my SA-1 cart(PAL PGA Tour '96 1L3B-01 PCB) but my Super Mario RPG SA-1 cart(NTSC 1L5B-20 PCB) simply does not want to boot.
sanni, do you use 'slow' functions for writeByteA1/writeByteA2/writeByteB or are you using optimized writes to the port registers? could poor SA-1 detection be due to too many rapid changes on the addressing ports?
I'm using the faster variant, maybe too fast.
What a great project! Thanks a lot to all the contributors, specially MichlK, sanni, skaman.
I will try to build my own "clone" so:
Any chance to find a reseller for only one or two connectors?
Kind regards, Nico
I recently purchased 10, so if you're from Europe I could send them
I recently purchased 10, so if you’re from Europe I could send them
Cool, I will send you a PM.
The project continues to move forward. We are now able to completely rewrite the Nintendo Power (SF Memory) carts. It took many months and combined input from several people including nocash, sanni, and BennVenn.
A little background, the flash chips used in the Nintendo Power carts (both SF Memory and GB Memory) include a page buffer/mapping register that is checked when reading games in the normal flash area. The games written to the cart will not work properly without the correct mapping. The flash chips use non-standard, undocumented commands to access the mapping data.
I'm working on an update to my "enhanced" code with full write support for the NP carts. It is the last SNES cart type that I set out to support.
On a different but related note, to gain insight into the SF Memory cart, I built a GB cart interface to sit in between the GB and GB Memory cart. Using the cart interface to log data, we were able to unlock the GB Memory cart and we can now completely rewrite it as well. I decided to build a standalone GB cart reader around the cart interface similar to the SNES cart reader. I plan to eventually release the code when all of the mappers are supported - I need to finish the MMM01 and TAMA5 mappers.
I ported my Nintendo Cart Reader sketch from using the standard Arduino digitalread/write functions to using direct port manipulation. Everything is now faster than before, especially writing the 29F032 flashrom did benefit since now it's twice as fast as before.
I also added a little content viewer for the N64 Controller Pak so that before you dump it you see what games are actually on it:
I've been following this project closely on this and the other forums, and I have a question that you may be able to answer! The NP cart pcb seems to have two 16mbit MX 29F1601MC roms, but the PCB itself has the traces for a third rom chip, which is also silkscreen marked with "16M Flash"
Would it be possible to populate that third slot with an additional 16M flash rom, bumping the total from 32 to 48mbit?
What is missing right now is how to address it. Since the Hirom mapping can only be 4MB total, we would need either an Ex-Hirom mapping or some way of temporarily remapping the 3rd chip into the address space of the 2nd.
There are also several pins on the MX15001 chip that can be pulled either low or high with resistors so maybe they configure how much memory is installed? I wonder what happens when you switch those resistors around.
There was a supplier on Aliexpress that was selling loose 29F1601 chips. I bought a few and confirmed they were the real deal. The chips were not new and appeared to be pulled off boards. I did a lot of testing of the NP flash code using a single 29F1601 in sanni’s original flashrom writer board.
I primarily picked up the chips to figure out the hidden register/page buffer commands but I also wanted to eventually add a 3rd flash chip to the carts. It should be a fun project to attempt. I don’t know when I’ll get around to doing it. I still have to optimize the flash writing in the Enhanced code and I’m a bit sidetracked finishing the savegame code for the last GB mappers.
I'm in the process as making one for myself. I love the idea of downloading and uploading save games from SNES carts!
I found the OLED screen on ebay. But i can't find a SD card with the pins facing down. Only pins facing up. Do you have a ebay number with one? OR did you remove the pins and make them face down?
In the pictures there is a small pcb on the back. What is it? and what does it do? I presume i only need the LCD and SD card.
Thanks for your help and this great project!! Hopfully my PCB works first go.
Yep, I desoldered the SD card header and put it back on the other side. I think on the OLED two pins were also swapped. No biggie.