SNES Reproduction Cart Tutorial

With a bit of know-how and some basic programming gear, you can make your own SNES reproduction carts from your old unwanted games. This short tutorial will aim to show you how it’s done, I have drawn information from a number of sources and I’ll supply a bunch of links for further reading.

Note that the cartridges I have for sale in my Shop page have not necessarily been modified in this manner, the methods I use for those carts vary from game to game and are more advanced utilising different types of chips. If you are looking for a quality reproduction of a game then feel free to request it from me.

Introduction

The method I am using here utilises the M27c801 Eprom, an 8Mb package very similar in structure to the original Nintendo Mask ROM packages that are found in game cartridges. This method can necessitate the use of multiple chips if your ROM is greater than 8Mb in size, but I still think it’s easier for beginners than trying to use a bigger flash chip which requires very tricky soldering and a bit more know-how. Now, there may be better ways of doing certain steps that I outline below, but I will just be teaching you a method that I know works as I have done it myself many times – if you have more questions then please ask and I’ll do my best to clear anything up for you.

Comparison of M27c801 Eprom and original SNES Mask ROM pinouts


Parts

Description Quant Part
Eproms See §2 M27c801
Multiplexer See §2 74HCT139
Eprom Programmer TL866 (Suggestion)
Gamebit screwdriver 3.8mm
Desoldering pump

A quick word on the Eproms you’ll be using – they are, in fact, discontinued chips. This means that you won’t be able to buy them new (easily), so you’ll need to find them second hand – this is why I gave you a link to eBay. Hopefully any chips you buy will come completely blank, but if you get some that still have some data on them you will have to wipe them with a UV Eprom eraser. These aren’t too pricey, thankfully, but just beware.


1 – Pick your ROM

This is obviously completely up to you, I won’t go into detail on how to acquire the ROMs themselves but just be sure that whatever ROM you have is functional. You can test it in an emulator first to be sure that it boots up normally.

I have included some pictures from the making of my Super Back to the Future 2 repro for illustrative purposes.

2 – How many Eproms do you need?

The M27c801 is rather small at only 8Mb, and while this is enough for some ROMs there are some that stretch all the way up to 32 or even 64Mb in size. If you plan on burning a ROM > 8Mb in size you will need a number of chips equal to ROM size divided by 8 (and then rounded up if necessary) – so a 20Mb game would need 3 chips total. Whenever you need more than one you will also need to control the information with a multiplexing IC, so get one of the 74HCT139 chips I put in the parts list if this is the case for you. See the section on “Chip Stacking” for more information on this as it is otherwise beyond the scope of this tutorial.

Please note that you should apply any translation patches you require onto your ROM before buying your Eproms, as they often increase the size of the ROM somewhat. For example, FFV grows from 16Mb to 20Mb once all the speech has been translated into English from Japanese and you would be annoyed if you had only purchased two Eproms!

3 – Picking a donor cart

This one's on its way to the great SNES in the sky

This one’s on its way to the great SNES in the sky

The next hurdle facing you will be the selection of a “donor” cartridge. This is the game that you will be sacrificing to make way for your new ROM. If you are seeking a translated version of a game you own, then no worries – your donor cart is simply that actual game and will be perfectly compatible. If you plan on replacing a game with a different one, then you will need to find one that has similar properties as not all SNES games were created equal…

Head over to this excellent website for a complete list of all SNES games and their header properties. You are looking for your donor cart to match your new ROM in the following fields:

  • SRAM size
  • Bank (HiROM/LoROM)
  • Chips (enhancement chips that the ROM will need for operation)

The size of the ROM isn’t a concern, nor is the ROM speed as the M27c801 chip runs faster even than the FastROM variety. Once you’ve got a match you can get started on preparing your ROM for its new home. For my Super Back to the Future 2 project I used a copy of Wedding Peach for the Super Famicom – a perfect match for that ROM.

If you find multiple entries in the list for your ROM and don’t understand the terminology in the squared brackets then have a read of this.

My donor cart and ROM match exactly

My donor cart and ROM match exactly

Follow this flowchart to guide you through the process

4 – Prepare the ROM itself

Here’s a quick list of all the software packages you potentially need for preparing your ROM:

OK, this can get a bit hairy, so I created a simple flowchart to help you through the process (see right). I’ll also go into more detail in each step.

4a – Apply any necessary translation patch

If you are translation-patching a fresh ROM then you’ll want to do it before anything else. Open up Lunar IPS and select your IPS patch file and your ROM, the program does the rest. Very straightforward.

4b – Lunar Expand

If your ROM’s size is now not cleanly divisible by 8Mb, you must first expand it to the nearest larger multiple of 8 using Lunar Expand (so a 20Mb ROM will be expanded to 24Mb, for example). It’s extremely simple, just open up the program, select the target size and click “Apply to ROM”, then navigate to your file and that should do it.

4c – uCon64 and Checksums

This programme operates on a command-line interface, but don’t be scared if you’re not experienced with this stuff – it’s easy.

  • Navigate to your uCon64 folder
  • Shift+Right-Click in that folder and select “Open command window here”
  • Enter the following: “ucon64 [filename]” (without the quotes) where [filename] is the full path of your ROM. You can easily capture this with a Shift+Right-Click on the file and selecting “Copy as path”, then Right-Clicking in the command window and choosing “Paste”.
  • You should get something that looks like this:

ucon64 out

What you’re looking for here is the integrity of the checksums. Hopefully they should both say “Ok”, but you may find (particularly if you needed to expand your ROM) that they are “Bad” – in which case you should probably fix them.

Ips and SumIf your checksums are bad:

  • Open up IpsAndSum and open your ROM.
  • Choose “Repair SNES Checksum”, the program will inform you that the checksums don’t match and ask for confirmation, click Yes.
  • Remember to save the ROM (from the File menu) after doing this otherwise no changes will be made.
  • Reload your ROM in uCon64 to confirm that the checksums are now “Ok”!

Please note that I have found that it’s impossible to fix the checksums on some translated ROMs (Final Fantasy V is one example), at least with this utility, but it doesn’t seem to affect the performance of the finished reproduction cart so if you find this is the case then I suggest ignoring it.

4d – SNES ROM Utility

Now, one thing that you must be sure of before burning your ROM onto one of your precious Eproms is that it has no copier header information, I won’t bother to explain why but trust me that it’s just something that needs doing. You might find that your ROM already has no copier header (particularly if it’s in .sfc format), but it’s prudent to check. Another modification you want to perform on your ROM is known as swap-binning. This process basically re-jigs the information inside the ROM so that it more closely mimics the way that the real SNES Mask ROMs work. You can still make non-swap-binned ROMs work, but it will require more hardware modification when you come to the installation. Lastly, you will need to break your ROM up into 8Mb chunks to allow you to burn it onto your Eproms (obviously if your ROM is 8Mb in size you don’t need to do this!).

snes rom utilLuckily, the SNES ROM Utility takes care of everything for you: the copier header, ROM splitting and swap-binning! So fire it up and open your ROM. Simply choose the Swap Bin option (the drop down menu should show 27c801 – your chip) and hit OK. You find a .bin file (or multiple, if it needed splitting – see the section on stacking chips) with the same name as your ROM in the same directory, that’s what you’ll be programming onto your Eprom.

Now, some ROMs will not load in the Utility (BS Golf Daisuki! O.B. Club is one example I have found), so you may need to remove the copier header some other way. My recommendation is to open up your StripSNES directory in a command window (using the same method as for uCon64, if you like) and enter “stripsnes [filename]” without the quotes to remove the header automatically. If your ROM requires splitting then you can do this in uCon64 by using the option: “ucon64 -s [filename]” or by downloading some other file splitting programme, but I’ve never tried this so I can’t offer any more advice than that. As I said, not swap-binning the ROM will require a bit of extra wiring, see §6.

5 – Burn your ROM

It's well worth investing in a small universal programmer

It’s well worth investing in a small universal programmer

Using whatever hardware and software package you have for your M27c801 chips, burn your ROM (or its individual chunks, if applicable). I won’t go into to much detail explaining this here, as that’s a completely different tutorial, but if you’re looking for a budget programmer then I can recommend the TL866 universal programmer that can be found on eBay from China for a very reasonable price. It is capable of programming myriad other types of chips so it could prove very useful if you’re just getting starting in this hobby.

6 – Swapping the ROMs

Right, time to get our hands dirty! Using your gamebit driver, get the cart open and take a look at the guts of your unwanted game.

Pin numbering

Pin numbering

You can immediately get started with desoldering the existing Mask ROM, I use a desoldering pump as I find that it’s the fastest and least stressful way of doing it. It usually helps if you add a bit of new solder to each joint on the back of the board that you want to remove as this allows the old stuff to flow a bit better.

Before placing your new Eprom in place, you will need to bend up some of its legs that need swapping for the ROM to operate. Please consult the table below to see which pins you need to swap, then lift those legs on your Eprom so you don’t accidentally solder them directly onto the cartridge board. Once they’re out of the way you can snip the thin sections of those legs off with a pair of snips as this makes them easier to solder onto.

Swap-binned ROM
M27c801 Cart
24 31
31 24
Non swap-binned ROM
M27c801 Cart
1 30
2 24
24 31
30 1
31 2

Solder all the other legs of your Eprom into the cartridge PCB, then solder wires onto each of the legs that you need to swap and connect them to their target pins on the PCB. You can go either through the hole on the front (just like the legs do), or wrap the wires around to the back – it’s up to you. It will probably depend on how thick your wires are etc, just make sure that the PCB will fit back in the cartridge once you’re done. Here’s my effort with my Super Back to the Future repro:

For illustrative purposes, here is my reproduction of BS Golf Daisuki: O.B. Club! – a ROM which cannot be swap-binned – note the extra pin swaps required:

Notice that I used AWG30 wire (Kynar) for this repro, this is definitely my recommendation for this kind of work as this wire is very easy to work with and doesn’t put any stress on the delicate pins of your chips if you need to bend it around.

Here's my repro of BS Golf Daisuki: O.B. Club! up and running. My donor was a NTSC-J copy of Yuu Yuu Hakusho

Here’s my repro of BS Golf Daisuki: O.B. Club! up and running. My donor was an NTSC-J copy of Yuu Yuu Hakusho

7 – Reassemble and Test

All that’s really left to do is put the cartridge back together and test it in your SNES. Before that though, just make sure that there aren’t any scraps of solder on the back of the board that may short out a connection. Desoldering can sometimes be a messy business and you might need to sweep up after yourself with your iron.


Stacking multiple Eproms

As promised, here’s a quick guide on stacking Eproms if your game is > 8Mb in size and you still want to use M27c801 chips.  I’ll preface by saying that this method only works with swap binned ROMs, if you want to do this with an un-swapped ROM then you’re on your own.

First, get yourself one of those HCT139 multiplexers I put in the parts list and enough M27c801 chips to hold your ROM. After running your ROM through the SNES ROM Utility you will find that you have multiple .bin files each of size 8Mb (or 1MB, if you prefer). Burn each of those files onto a single chip, being careful to label each one as you go (01, 02…) so they don’t get mixed up.

Next, have a look to see if your cart has a chip labelled “MAD-1” inside of it. If this chip is present then you will be connecting its pin 4 to the HCT139, but if it’s absent then you will be connecting the HCT139 to pin 49 of the cart connector (the cart connector being the contacts at the bottom of the PCB that plug into the SNES).

You will need to lift pin 24 of all your Eproms (just like for the single-chip version) and make sure to lift pin 31 of the Eprom that you solder into the PCB itself, this allows you to swap pin 31 on all your Eproms to the same pin 24 on the cart. All the other pins (except 24, see the diagram) will simply be wired to their respective locations on the cart as in the single-chip tutorial – basically all the Eproms will be in parallel with each other on the cart PCB. This method allows you to use up to 4 Eproms simultaneously, if you are using only 2 or 3 then simply leave them out from the diagram below, it remains otherwise unchanged.

How to wire multiple M27c801 chips with a 74HCT139

Refer to the SNES Mask ROM pin-out diagram in the introduction for the locations of A20 and A21 on the cart. You can access pin 49 of the cart connector through pin 31 on the cart – doing it this way makes it look exactly like the pin 24/31 swap in the single-chip tutorial, just with the HCT139 acting as an intermediary.

The +5V and GND signals can be found in many places, I took them from the relevant cart connector pins for my FFV repro (pinout can be found here). Otherwise, feel free to find your own points on the board that carry them, there are likely to be quite a few options.

Here’s my reproduction of FFV, in which I installed the English translation version into an original Japanese cartridge of the same game. Note that this cartridge doesn’t have a MAD-1 chip, so pin 1 of the HCT139 is soldered to pin 31 of the ROM socket.


That’s it! Hopefully you found some useful information in here and it will inspire you to make your own reproduction carts in the future.

References

  • The Brewery sub-forum over at NintendoAge.com is a fantastic resource for all kinds of SNES mods and hacks.
  • MrPete1985 (over on Nintendo Age) gave me some great tips and explanations, plus his own guide on SNES repro carts helped me tremendously.

–Jaska–

This entry was posted in Uncategorised and tagged , , , , . Bookmark the permalink.

38 Responses to SNES Reproduction Cart Tutorial

Leave a Reply