Go Down

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

sanni

hey Sanni!
Thanks for creating something so cool and useful! your cartreader with each update gets better.
Here are some pictures of mine:



Note: I made a tiny adaptation to read the N64 controller pak. I preferred to leave a connection instead of hanging a cable  :smiley-lol:
Thanks for posting the pictures, always nice to see some new members to the Cart Reader family.  :)

skaman

Ok.  Sega MD/Genesis EEPROM save support is done.

I had a bit of trouble with the Acclaim Type 2 and Codemasters carts.

The Acclaim Type 2 carts use a PAL chip to interface with the 24XXX EEPROM.  I got the Acclaim Type 2 working with a tip from Eke (eke-eke) on the PAL initialization for the EEPROM.  I had completely missed it in my logic analyzer logs.

Codemasters carts also use a PAL chip but there's no initialization needed for the EEPROM.  The Codemasters carts do require the CLK signal.  I couldn't get the EEPROM responding to the commands until I bridged the CLK to /C_CE (the MD shield doesn't have a CLK pin).  This is similar to the Codemasters GG/SMS carts which also need the CLK.  When I was working on the Retrode code, I found out about the CLK problem with Codemasters carts.

I'll clean up the code and get it submitted to sanni.  I also modified the SRAM code to handle all the types of SRAM along with the carts that have bad header save data.

BTW, years ago, Eke (eke-eke) posted some PDFs with Sega EEPROM documentation.  Some of the info in the documents is incorrect/outdated.  Refer to his Genesis Gens GX source code for the most up-to-date EEPROM info.

skaman

I've submitted the modified MD.ino for review.  The modifications include read/write support for Serial EEPROM carts, complete SRAM support including identification of carts with bad headers, and support for the Super Street Fighter 2 carts.

Serial EEPROM support was tested using only the Serial Output on an MD-only shield.  The code may need some tweaking on readers with the OLED Display due to timing differences in the code.  Timing issues would most likely arise when writing a save file to the cart EEPROM.

Capcom EEPROM support is untested.  Capcom EEPROM should be the same as Sega EEPROM which is working.  I would love to hear feedback from anyone with an original Mega Man Wily Wars (E) or Rockman Megaworld (J) cart with the serial EEPROM (NO REPROS!).

I should make it clear that EEPROM support is for ORIGINAL carts.  Repros are NOT supported.

I also submitted a save file for NBA Jam T.E. Rev 0.  NBA Jam T.E. Rev 0 shipped with faulty EEPROM code that always erases the save game.  The save file was setup according to the publisher's instructions to initialize the EEPROM.  The publisher's instructions don't work 100% but I may have found a workaround that I included in the notes.

skaman

Oops!  Eke (eke-eke) let me know that several non-EEPROM Codemasters carts share the checksum with Micro Machines 96.  He uses the start of the ROM to identify the EEPROM carts.

I'll have to modify the MD.ino sketch for better identification of the Codemasters EEPROM carts.  Please be aware that until the corrected code is submitted, Micro Machines and Pete Sampras Tennis will incorrectly identify as having EEPROM.

EDIT:  Eke (eke-eke) uses the first DWORD in the ROM to separate the EEPROM and non-EEPROM carts with the same checksum.  This applies to the Codemasters carts where they didn't bother to use the correct header information.

skaman

An additional note on the Codemasters Micro Machines series of carts.

It looks like only the J-Cart versions have Serial EEPROM.  A valid Serial EEPROM save file for these carts should start with the text "hasreset" (0x68,0x61,0x73,0x72,0x65,0x73,0x65,0x74).

The Micro Machines non-J-Carts do not have Serial EEPROM.  These carts will not save progress and any EEPROM dump will be blank.

skaman

I'm adding one last improvement to MD.ino.

A long time ago, someone asked for support for the Sega CD Backup RAM cart.  After I started working on the MD code, I thought I might as well pull out my RAM cart and read it out.

The RAM cart support will be only for the official Sega cart.  There's the aftermarket Ultra CD Backup RAM cart by db Electronics but I don't have one and I won't be purchasing one for testing.

I'll submit the modified code to sanni when testing is finished.

xIceMan

Hi there,

skaman, how exactly does the Famicom dumper work? Does it uses scripts like the Kazzo or is it completely different and has all mappers in the code and auto detects them? Or does one have to select those manually as well? I hope to see more progress of that done (NES slot added for example). An all in one cart reader (if sanni plans to implement it once your testing is done) would be superior. :)

P.S. If anyone needs adapters for sanni's cart reader, write me a PM. I have SD cart and 8bit Flash adapter left. 4 of each.

skaman

Hi xIceMan,

My Famicom reader has all of the licensed mapper code in the sketch.  There's a menu to select the mapper and PRG/CHR/RAM sizes.  I refer to BootGod's NESCartDB when dumpng a cart.  The reader supports NES carts using a NES-FC adapter (I made a couple different NES-FC adapters as part of the project).

I looked at some mapper detection code but I didn't implement any of it as it didn't support all of the licensed mappers.  You would still need to check the database to identify most of the mappers.

sanni will soon have a Famicom shield for testing. I'm not sure whether all of the Famicom support can be merged into the main project.  I'll leave it up to him to make the implementation.

Take Care!

sanni

Rama is currently working on cleaning up the code, he already got the memory usage down by 10% and doubled the dumping speed. I'm confident that we can get the codebase into a good enough shape that the new NES code will fit inside the Arduino. :)


skaman

I've been looking into the writes to the Sega CD Backup RAM cart.  Reads worked without a problem but the cart did not respond to writes.

The cart reader layout needs to be modified to enable writes to the Sega CD Backup RAM cart.

The RAM cart needs /MRES (B02) connected.  /MRES is not connected on the cart reader layout.

On my passthru interface that I use for testing, I connected /MRES (B02) to /VRES (B27) to get writes working.   /VRES is labeled as RST on sanni's schematic.

Confirmed on my MD shield.

skaman

I submitted the MD.ino sketch with the Sega CD Backup RAM Cart support.

If anyone has an Ultra CD Backup RAM Cart by db Electronics, please post your results.

No guarantees that the Ultra CD Backup RAM Cart works but I added the check for it.

Nextria

Rama is currently working on cleaning up the code, he already got the memory usage down by 10% and doubled the dumping speed. I'm confident that we can get the codebase into a good enough shape that the new NES code will fit inside the Arduino. :)


Would this mean we maybe can dump NES games with a NES-SNES adapter in the future ?



skaman

Here are pictures of my NES-FC adapters.  The short version has the NES cart facing the back.  The tall version has the NES cart facing the front.  Both adapters have the expansion audio mod but it is untested as I don't have an Everdrive N8 or PowerPak.



sanni

Would this mean we maybe can dump NES games with a NES-SNES adapter in the future ?
That's the plan, sneak peek:


skaman

Nice!  Add a cheap (and common) FC-NES adapter and you're set.

Go Up