How to Make a SNES Reproduction Cartridge

I’ve finally taken the time to go through and learn all I can about how SNES games work, and I tried my hardest to make the most comprehensive and easy-to-follow guide so that you can do it yourself! That’s right – custom-made SNES cartridges. This even includes ROM hacks, and foreign games never released in your region all on your very own SNES system in your living room for cheap!

Luckily, it’s a decent amount easier to actually make a reproduction SNES cartridge than it is to make an NES one. You don’t have to worry about CHR and PRG EPROMs anymore – now it’s all in one chip. There’s also (generally) a larger amount of donor cartridges to choose from, and you can make nearly any game, whereas for the NES, you were limited in which games you could actually make easily, especially games from different regions.

Table of Contents

Step 1: Identify the important characteristics of your ROM
Step 2: Find a suitable donor cartridge
Step 3: Download your ROM and begin to prepare it for programming
Step 4: Determine which chips to use
Step 5: Finalize your ROM files
Step 6a: Burn your ROM (27C801)
Step 6b: Burn your ROM (29F033)
Step 7: Gut your donor cartridge
Step 8a: Install your burned ROM onto your donor (27C801)
Step 8b: Install your burned ROM onto your donor (29F033)
Step 8c: Install your burned ROM onto your donor (ExHiROM)
Step 9: Test your game
Step 10: Make a label

Equipment you will need

Like the NES tutorial, you’ll need a few basic things:

20170918_220552

1) A donor game. This is the game you will be modifying to make your new game. Make sure your donor game is cheap, obviously. Like the NES games, there are different PCB types, so you’ll need to pick a compatible board, which I’ll detail later. Luckily, it’s a bit easier to find a donor this time around, as there are many fewer different boards.

Note: There are boards available for purchase from online shops that will give you a blank board preassembled without the need for a donor cartridge, however, the price for using this method can end up being nearly twice the cost of using a donor. This tutorial will not cover those boards, but in the future I may create and share on this blog a PCB you can order instead of using a donor.

2) Programmer. This is what you use to program the chips the game data is stored on. I got mine on eBay for about $40. It’s a TL866CS MiniPro programmer. It’s worked flawlessly for me, and it’s pretty easy to use. This is the same one I used for the NES tutorial.

3) EPROMs/EEPROMS. Yes, that’s right, both EPROMs and EEPROMs can be used, and there is a difference! For the NES games, we used EPROMs exclusively (with a single ‘E’) that were erased via UV light. EEPROM on the other hand, with two ‘E’s, stands for “Electrically Erasable Programmable Read Only Memory.” The difference between the two is that EEPROMs are erased with electrical signals rather than UV light. Functionally they are nearly identical. Convenient!

SNES games come in sizes between 256Kbit and 32Mbit (there are a few legit games and a few hacks that are larger, but that’ll be for another addition in the future). For my smaller SNES reproductions, I use 8Mbit EPROMs. For games that are larger than 8Mbit, you can use multiple 8Mbit EPROMs and an extra chip, known as a decoder – the 74HCT139. I use M27C801 EPROMs, but most any 8Mbit EPROM you can find should work just fine.

For larger games, like 32Mbit games, I like to use 29F033 chips. These are 32Mbit EEPROMs that are programmable by the TL866CS programmer I have. The upside is that you only have to use one for (almost) any game! The downside is that these are a bit trickier to solder, as they are surface mount chips and have very small clearances between pins. They also run a bit more expensive, around $8 a pop, but if you think about it, one 8MBit chip is about $2, and you’re getting a 32MBit chip here. You’ll also need to get an adapter board, since the pins on the SNES cartridge aren’t surface mount! Don’t worry, I’ll go into more detail later about which you should choose. I’ve done both, so I’ll also provide pictures of them to show you how complicated each method is.

4) EPROM eraser. This is for prepping your EPROMs, and fixing your inevitable screw-ups. You only need this if you’re going to go with the 8MBit EPROMS instead of the 32MBit surface mount ones. Got it on eBay for $16 (can you tell I like eBay?). You can forgo this one if you’re really hurting for $16 or aren’t using EPROMs at all. If you can wait, maybe hold off on buying one until you have EPROMs that you need to erase – you might be a totally cool person and not run into any problems while coding the chips! I’ve only ever used mine a handful of times in the past 3 years of doing this.

5) Miscellaneous hardware. You’ll need some wire (I prefer 30 gauge), solder, and a soldering iron, at the very least. You’ll also need a special screwdriver for opening SNES games, as they use specific screws. Search online for “3.8mm Nintendo Security Bit Screwdriver” on Amazon or eBay, you can find them for a few bucks.

Each game you want to make will cost between $10 to $20, depending on how many EPROMs you need to use, and what donor cartridge you need.

Back to top

Step 1: Identify the important characteristics of your ROM

Like NES games, SNES games use Mask ROMs to store data. Some games use RAM, some do not. Some have batteries, some do not. Some use fast chips, some use slower ones. Some have extra graphics processors, most do not. I’ll go over the different characteristics here, and what you’ll need to figure out to pick a suitable donor cartridge.

First step is to find your game on this Excel sheet I made. This document has information on most available ROMs for the SNES/Super Famicom, including all foreign games, and even ROM hacks. Use temporary filters on Google Docs, or download the Excel sheet and use the filters there by clicking on the little funnel on the right edge of the cell, to filter out every instance of your desired game. Each game will most likely have more than one iteration, so you’ll want to find all instances of your game by searching for the title. If you can’t find it, try just sorting the list by name and scrolling through till you find it.

gamelistss

I got the information for this spreadsheet from the SNES ROM Header Database. I trimmed some of the fat off of the list, like games that have weird amounts of SRAM or customized things that didn’t filter well in the Excel document. I didn’t delete much, though; your game should be there somewhere.

Now, find which ROM you’re going to use from the ones that show up when you search your game. But what about all that random stuff after the game name? That’s extra information in a format known as “GoodTools” and it details the version, language, and other things about the ROM. You can search for most of these specific ROM versions on Google to find them.

For example, look at the highlighted entry on the list in the picture above. It reads “Final Fantasy V (J) [T+Eng1.1_RPGe].smc”. The (J) stands for “Japan” which is the region the ROM is made for (if your ROM had a (U) for example, it would be made in the United States). The [T+Eng1.1_RPGe] gives you information about what language the game is in. T stands for “translation,” the plus sign means most up to date (a minus sign would mean it’s an obsolete translation), and Eng stands for “English.” The “RPGe” at the end just tells you who made the translation, apparently, it was a user that goes by the name RPGe. So the game we’re looking at is an English translation of Final Fantasy V, which was released in Japan.

Another common suffix that you might see are version numbers. A “V1.0” would indicate the first version of the game – there are usually minor differences and bug fixes between versions. Check out this Wikipedia article about what the different parts of the file name mean. Most of the differences between ROM files are translations or region specific games. Find the one that is listed with a [!] or with no bracketed content at all if you want the original game. This would be the original game file with no modifications to it.

This looks a bit overwhelming, but it’s easy once you break down all the information. I’ll go over all the different columns and what they mean, and what you need to pay attention to.

The most important fields you need to note for finding a donor are the Bank, SRAM, and Chips. You’ll also want to pick a game that’s available for the type of video you have, either NTSC or PAL. Here’s a breakdown of all the fields.

Bank Type

There are two types of banks known as HiROM and LoROM. There is a third type, known as ExHiROM, but only a few games (notably, Tales of Phantasia) use this, and you can use HiROM PCBs to make them with some modifications. I’ll cover them in a later section, but for all intents and purposes, treat ExHiROM as HiROM. You need to make sure your donor has the same bank type as the game you want to make.

SRAM

Some games use SRAM, some do not. If yours does, you need to find a donor game with the same amount of SRAM. You might be able to get away with using a game that has more SRAM available, but there are enough really cheap donor cartridges out there for most games that you should try to match the sizes just to be safe.

Chips

You need to ensure that the donor cartridge you use has the same chips, beyond the Mask ROMs. So this includes extra on-board hardware, like specialty graphics chips. For example, Star Fox 2 uses the Super FX chip, so if you want to make this game, you’ll need to pick another game that also uses the Super FX chip. For better or worse, there are not that many games that fall into this category. The bad news is some games will require more expensive games to use as donors (or won’t have any eligible ones at all), but the good news is that for most of the games you’ll want to make, you should be in the clear.

Another common thing that many games use are batteries. I’d recommend buying a handful of new batteries and battery holders to replace the old ones in the games you make. It’s been about 20 years since many of these games came out – their batteries are probably almost dead, if they aren’t already. They use CR2032 batteries – you can easily find these on a lot of different websites. I recommend getting the yellow ones that come pre-mounted. The original batteries are spot-welded to the holders so they don’t move – if you just remove the battery without replacing the prongs, it’ll be pretty insecure in the holder. If it gets disconnected at all (like if you shake the game) then all your data will get erased. So just get a new pre-mounted one, cheapskate!

20170903_155804

Video and Region

Just make sure the ROM you’re looking for is the correct region (PAL or NTSC), otherwise, they won’t run on your SNES/Super Famicom (unless you modify your machine). Look up where you live and if it’s in the PAL region or the NTSC region if you’re unsure.

ROM Size

This is how large your game is. It can be anywhere between 256Kbit and 96MBit. Generally, the larger games use HiROM boards, though this is not always the case. You do NOT have to have a donor cartridge have the same ROM size as the game you want to make. You can use a donor cartridge that’s only 4Mbit large (like NHLPA Hockey ’93) to make a game that’s 8Mbit large. The ROM size will, obviously, dictate what and how many EPROMs you need, though. I will cover this in Step 4.

Speed

This corresponds to the data access delay times of the PROM. You can pretty much ignore this, as most EPROMs and EEPROMs available anymore will be fast enough for both types of games. Make sure the datasheet of your chip specifies AT LEAST 120ns access time. This shouldn’t be a problem, though, cause that’s actually super slow in our modern times.

Back to top of Step 1

Step 2: Find a suitable donor cartridge

Now that you’ve marked down the Bank, SRAM, and extra chips that your game uses, it’s time to filter the list for those characteristics to find a good, cheap donor.

Say we wanted to find a suitable donor cartridge to make a Final Fantasy V English translation cartridge. From the screenshot above, we can see that the bank type is HiROM, it uses 64Kbit of SRAM, and it has the normal chips plus a battery.

So, to find a donor cartridge, first unfilter the “Game” column to restore the entire list of games. Go to each of the filtered column drop down menus. Deselect each value that your game DOESN’T have in the Bank, SRAM, Chips, and Video columns. I also sorted the list by the game column from A to Z to group all common games together – makes it easier to sort through the titles. You should now have a list of compatible games.

chronodonor.PNG

Note that you should be sure that the game you pick isn’t a hack or mod itself, because that won’t be the cartridge you buy! Make sure the game you pick has an entry in the sheet that either has [!] or no additional information past a version number and region code (NOT translation code!). There are a few games that, for example, will use HiROM instead of LoROM if you have a certain translation or mod. You will be buying an original game so you MUST make sure the original is on your donor list!

Again using Final Fantasy V as the example, looking through the list you should see these: Earthbound, Final Fantasy III, Illusion of Gaia, Madden NFL ’95 through ’98, NBA Hang Time, NHL ’95 through ’97, Secret of Evermore, etc. So, theoretically, you could take an Earthbound cartridge and use it to make Final Fantasy V. I don’t recommend this, obviously, but it’s possible! How about we use something cheap that’s in retro video game bargain bins across the world, like Madden NFL ’95? Basically, any games that have the same characteristics in these important fields are interchangeable and can be used to make other games with the same characteristics. The good news is from what I’ve found, there are usually a wide variety of cheap games you can use to make most other games.

Now, if you want, you can check out your donor cartridge over on SNES Central. Note that the Mask ROM can come in a 32-pin or a 36-pin variety. Some games will have 36-pin sockets, but only use 32 pin ROMs. You’ll have an easier time with the reproduction if you get a board that has a 36-pin socket, so if you can, I recommend trying to pick a game that has that. If you can’t, or your game has multiple types of boards and you end up with a 32-pin board, don’t fret! You’ll just have a bit more rewiring to do.

NOTE: Once you have your donor cartridge, you should DEFINITELY check to see if it works as is. You don’t want to get to the end of the process only to find the game you bought is broken!

Back to top of Step 2

Step 3: Download your ROM and begin to prepare it for programming

Once you’ve picked your ROM from the list in Step 1, simply copy and paste the full name into Google – you’ll probably get results for the exact ROM you’re looking for. I’m not going to tell you where to download these from – you’re smart enough to figure it out – but as I warned in my NES reproduction tutorial, avoid downloading anything except like, .zip or .7z files. Some websites will ask you to add an extension or download an executable – do NOT download these. You’ll have a chance of getting malware if you do.

Now that you have your ROM, we need to do a few things to get it ready to program.

Lunar IPS

If you’re planning on making a translated version of a foreign ROM and the language patch isn’t already applied to the ROM, or you want to add some other patch to a ROM that’s not already part of your file, you’ll have to use a program called Lunar IPS to patch it. I’ve never encountered a game where I had to use this software, though. It seems pretty easy to figure out and use.

uCon64

The most important program we will use is called uCon64. This is a command line utility that will give you all the information you ever wanted to know about your ROM. Using it is a bit tricky, though, so I’ll go through exactly what you need to do here.

(I recommend making a folder where you can put all of your work materials to make it easier to navigate.)

Download and unzip uCon64. Now, open Command Prompt (hit the Windows Key and R at the same time, and type “cmd” and hit enter). Change the directory to the folder where uCon64 is located by using the cd command (it’s located on my D drive, shown below). Now, navigate to the place where your ROM is located (I will be using Final Fantasy 5 as an example). Hold the shift key and right click on the ROM, and click “Copy as path.” Now, go back to your Command Prompt screen and type (without quotes) “ucon64”, add a space, and then hit CTRL+V to paste the path afterwards. Your screen should look like this:

cmd1

Now hit enter, and you’ll get a lot of information in front of you.

cmd2

Firstly, you should verify the SRAM, bank type, and chips that this screen shows match the ones you found in the list. Note that if your game is LoROM, it will say “HiROM: No.” The “normal” chips in the Excel file refer to ROM and SRAM chips. Also note that the SRAM here is in kiloBYTES, while our table is in kiloBITS. So just multiply the number you see in the command prompt by 8 to get your size.

Now, with this information, we can determine exactly what we want to use to store the ROM. We aren’t done fixing the ROM file up just yet, but this is a good spot to stop and decide if we’re using EPROMs or the larger EEPROM, as there are a few different options to take.

Back to top of Step 3

Step 4: Determine which chips to use

Look at your command window again, and note the ROM size in Mb (megaBITS). This number needs to be divisible by 8. Generally, this means your game will be 8, 16, 24, or 32Mbit. Don’t worry – if the size is not divisible by 8, I’ll show you how to increase the size of the game to make it fit. For now, just round up to the nearest multiple of 8. With this information, you now have a few options.

You could either use one or multiple 8Mbit EPROMs, or just one 32Mbit EEPROM (if you’re making a game larger than 32MBit, you’ll have to use multiple of these, which I’ll cover in a special section later).

Which option is the best? That depends on how much time you want to spend. If your game is only 8Mbit large, then definitely just use a single 8Mbit EPROM, and if it’s 32Mbit, you’ll probably want to go with the 32Mbit EEPROM. But for anything in the middle, you could go either way.

The first thing to note is the prices. I got 8Mbit EPROMs (I used the M27C801, but any 8Mbit EPROM should work, like the 27C080s) for about $2.50 each. Important to note is that if you’re using multiple 8Mbit EPROMs in parallel, you’ll need to also buy an extra chip, the 74HCT139 (or an equivalent decoder). These will cost on average about a dollar each. Using these through-hole parts makes it easy to solder, but very time consuming and messy, as you’ll need to add about 40 individual wires. Your price will end up being about $6 for a 16Mbit game, $8.50 for a 24Mbit game, and $11 for a 32Mbit game. This is what a finished game will look like if you use 2 or more 8Mbit chips.

20170911_224511

See? Super ugly. And very time consuming. Also harder to troubleshoot.

As for the 32Mbit EEPROMs (I used 29F033C chips), I got these from eBay for about $8 each. These are surface mount parts, so an extra breakout board is necessary to program and insert into the SNES PCB. For this, I bought breakout boards from buyICnow.com for $0.70 each (plus shipping). You’ll want to get the DIP36-TSOP40 Adapter (III). You’ll also need some header pins to use on the adapter board. The upside to using the 29F033C is that everything will look soooo much cleaner and the process will be much quicker, as you won’t need to do any rewiring. The downside besides the price is, well, it’s a lot harder to solder surface mount parts than it is through hole. If you don’t have any experience soldering surface mount, this might be a harder option for you, but if you’re feeling up to the challenge, go for it.

20170904_135252circle.jpg.png

The pins you’re gonna be soldering are circled in red in that picture above. So my advice, only if you are confident in your ability to solder extremely small pins and are willing to spend a bit of extra money to make your life easier, is to use the surface mount 32Mbit EEPROMs with breakout board for any game larger than 8Mbits. It’s cheaper and faster, especially if you’re going to make a full 32Mbit game. But again – this is a difficult process, especially if you’re new to soldering.

My tips if you’re wanting to try to solder this surface mount chip: get yourself a flux pen. Flux will make your solder flow much better, and is essential if you want to attempt this (trust me… I tried to do it without it). Just spread it on all the pins. And maybe invest in an adjustable magnifying glass stand. Make sure you have really good lighting. And lay off the coffee… you need steady hands for this one.

If your game is larger than 32Mbit you will want to use TWO 32MBit surface mount chips. Anything other than this will be very difficult to fit into a cartridge. This only applies to games like Tales of Phantasia or some ROM hacks, like Chrono Trigger: Crimson Echoes.

NOTE: Make sure your programmer supports your specific chip that you’re planning on using. Many sources online I found use the 29F032 EEPROM, but my TL688CS MiniPro programmer does not support this chip, so I got the 29F033C instead. The TL688CS programmer also supports most 27C801 EPROMs, if you’re sticking with those.

Back to top of Step 4

Step 5: Finalize your ROM files

Let’s take a look at that command window again.

cmd2

So now that you’ve chosen which PROM(s) to use, you might need to expand the size of your ROM to fill up the empty, leftover space on your chips. If the total size of your chip(s) is greater than the size of your ROM file, you’ll need to expand the ROM to fill up the total amount of space you have. To do that, use the program Lunar Expand.

Lunar Expand

Note: If your game is larger than 32Mbit (for making Tales of Phantasia, or large ROM hacks, for example) then SKIP THIS STEP and go to the next section, IpsAndSum. I ran into some problems with these larger games, and I think the root of the problem was Lunar Expand.

Using Final Fantasy V above, we see that this ROM is 20Mbit. That means I can either make a 24Mbit game using three 8Mbit EPROMs, or use a single 32Mbit TSOP chip. I’ll be doing the latter. So all you need to do is click your size option, click “Apply to ROM…”, and choose your ROM file.

lunarexpand.png

If you expanded your game, you should run it through uCon64 again to double check the size, and to see if it changed the checksums at all.

cmd3.png

We see that the size is now 32Mbit. Perfect! Well… almost.

IpsAndSum

Now, you need to make sure the checksums show “Ok.” In the picture above, my checksums are bad (this usually only happens when games are translated or modded). If your checksums are bad, then you need to run your game through a program called IpsAndSum. This program is a bit glitchy, but it’s pretty easy to figure out.

ips.png

First, you’ll need to go to File > Open, and choose your ROM. Sometimes the numbers will change in the fields on the screen, sometimes they’ll stay at 0000. Like I said, glitchy. Either way, go back to File > Repair SNES CheckSum, and the fields should change. Click Yes to repair. Then, make sure you go to File > Save to save your fixed ROM.

You should run the ROM through uCon64 once again to make sure the checksums got fixed, and that you remembered to hit File > Save (this happens more often than you’d think).

cmd4.png

At this point, if your checksums are still bad, you might have to try another ROM if possible, or try going through the steps again in case you missed something along the way. I’ve read that it might still work if you go ahead without good checksums, but I’ve never tried it as I haven’t run into that problem as of yet, so proceed at your own risk.

Removing the header and splitting the ROM

Don’t worry, you’re almost done. There’s one last program we’ll need to run your game through to prepare it. And it’s pretty neato by how much it can do. It’s called the SNES ROM Utility.

Now, you only need to run your ROM through this program if in uCon64, your ROM is shown to have a header file (if it says “Yes” next to “Backup unit/emulator header:”), if you are going to use the 8Mbit EPROMs, or if your game is larger than 32Mbit. If your game does NOT have a header AND you’re using only ONE surface mount 32Mbit EEPROM, you can skip this part completely and move on to step 6b.

First thing you have to try is load your ROM into the utility. Some of them don’t work, though I haven’t found many that don’t. If you get an error when you try to load the ROM, then you’ll have to use a program called StripSNES – skip this next section and go to the StripSNES section if this applies to you.

SNES ROM Utility

Here’s what the screen looks like when you load a ROM into it. The ROM I used for this example is Final Fantasy IV (my FFV ROM didn’t have a header!), which was expanded to be 16Mbit and has fixed checksums, and DOES have a header.

snesromutility

You’ll see all the information of the ROM here that you already saw in uCon64.

If you’re using the 32Mbit TSOP EEPROM and you have a header, just check the “Remove Header” option and click OK. Then, go to step 6b.

If you’re going to be using multiple 32Mbit EEPROMs because your game is larger than 32Mbit, skip ahead to this section.

SNES ROM Utility with 27C080 EPROM(s)

If you’re using the 8Mbit EPROMs, there’s really only one option we’ll need to pick under the task list – SwapBin. This command does everything – it removes the header for us, splits the ROM file into 8Mbit chunks for each EPROM we are using (if the game is larger than 8Mbit), and performs a process (called “SwapBin”) that switches some of the bits around to make modifications a bit easier to the SNES PCB. Remember: do NOT use SwapBin if you’re using the 32MBit surface mount EEPROMs.

snesromutility2

Check the SwapBin button, choose 27C801 on the drop down menu (probably the only option there) and click OK. You’ll get this notification, and if you look in the folder where your ROM was located, you should see a new file or files created. These are the files you will use. In this example for Final Fantasy IV, I will be using two 27C801 EPROMs. Therefore, the program created for me two separate BIN files for each of my EPROMs. You’ll also note at this point that the size of the files should match up with the size of the chip you’re going to use – each of the two files made for Final Fantasy IV are 1024KB large, or, 8Mbits (because 1024 kilobytes is the same as 8 megabits).

Explanation of SwapBin

This is really only if you’re curious why we do this step. If you’re not, carry on to step 6a.

Compare the pinouts between the SNES PCB EPROM and the 27C801 EPROM we are going to use. Like the NES, the SNES games use a proprietary pinout for the ROMs, so we need to do some rewiring.

epromvsmaskrom.png

However, many of these pins line up to other data pins. For example, pin 1 on the 27C801 is A19, but on the SNES PCB, this pin is A17. So, instead of having to rewire A17 and A19 to different places, we can use software to digitally swap these two pins by putting all the data from A19 to A17. That way, we effectively change the pinout of the 27C801, and this is exactly what the SwapBin command does in the SNES ROM Utility.

SNES ROM Utility switches A19 with A17 and A16 with A18. Now there’s only two extra wires we’ll have to solder for this EPROM to swap /OE and A16 (since /OE can’t be changed).

Now that you know why we’re doing this SwapBin business, skip ahead to step 6a.

SNES ROM utility using multiple 32Mbit EEPROMs

If you’re using multiple 32Mbit TSOP EEPROMs because your game is larger than 32Mbit, check the “Split File” option. Now, choose the “2048kB” option (2Mbyte, or 16Mbits) and click OK. The example below is for the English translation of Tales of Phantasia. It’s 6Mbyte large (48Mbits), so this will split it into 3 files, each 2MByte large (16Mbits).

pantasiasnesromutility.png

Now you should have 3 files in your folder that are 2Mbyte large. That means we’ll have to stitch the first two together to get a full 4Mbyte, or 32Mbit, file for the first TSOP EEPROM, and put the last 16Mbit file on the second TSOP EEPROM.

Here’s how your files should show up in your folder:

topfile

We need to stitch together the two files that end in 01 and 02 to make the file for the first EEPROM. We can do this easily in the command prompt, but first we should rename the files to something short to make it easier for us to type – let’s do ToP_01 and ToP_02.

Now, open a new command prompt window, and mount it to the folder your pieces of the ROM are in. Type in this command:

copy /B "ToP_01.sfc" + "ToP_02.sfc" ToP_A.sfc

This will create a new file, ToP_A.sfc, that will be a combination of both the files stitched together. MAKE SURE you have the order correct! This is what the command prompt should look like:

talescopy

Now, you should go ahead and rename the third file (the one that ends in _03) to ToP_B, for consistency. You should now have two files for Tales of Phantasia – ToP_A, which is 4MByte (32Mbit) large and will go on the first EEPROM, and ToP_B, which is 2Mbyte (16Mbit) large and will go on the second EEPROM. Note that the second EEPROM won’t be filled completely – this is OK. I’ve tested it and it still works with the second half of the chip empty.

If you have a ROM hack or other game that is 64Mbit large, you’ll still need two 32Mbit EEPROMs, like this example for Tales of Phantasia, but you’ll have to stitch the 03 and 04 files into one file using the same method. Now, you should skip ahead to step 6b.

StripSNES

To reiterate, if you already were able to remove the header and/or SwapBin your game with the SNES ROM Utility, you do NOT need to do this part!

StripSNES works similar to uCon64, in that you need to use the command prompt. Follow the same steps as I laid out above in the uCon64 section, but replace the directory for where the StripSNES is located. Then, find your ROM, hold shift and right click, then hit “Copy as path.” Go to your command prompt window, type in (without the quotes) “stripsnes” add a space, then hit CTRL+V to paste the path. Hit enter, and not much will happen, but you should see the size of your ROM should decrease very slightly.

To make sure this worked, put your ROM back into uCon64 and check to see if the header is gone. While you’re here, you can split your ROM into 8Mbit chunks, if you need to do that. To do this, simply type (without the quotes) “ucon64 -s “, then paste the path to the ROM. You should see a screen similar to this:

split

Go check in your uCon64 folder, and you should see the files listed at the bottom. In this case, since Final Fantasy IV was 16Mbit, two files were created (SF16FINA.078 and SF16FINB.078). The one that ends with A will be the first EPROM, B will be the second. If you have more, C will be the third, and so on.

NOTE: If you absolutely need to use this method with StripSNES and uCon64 splitting, then you will not have the luxury of swapping the pins as you get if you could use the SNES ROM Utility. There’ll be a bit more rewiring for you! But I’ll go into that later, don’t worry!

Back to top of Step 5

Step 6a: Burn your ROM (for 27C801)

This step will be a lot easier for you if you’re using 27C801s. If you’re using the 29F033s, skip to step 6b, as you’ll have different steps to go through.

As usual, make sure you blank check your EPROMs before you program them and clear them if necessary. I think you’re smart enough to figure out how to program your EPROMs with your programmer, especially if its the TL866 – it’s super easy to figure out. I believe in you! Program them as you would normally; if you’re using multiple ones in parallel, make sure you label them A, B, C, and/or D so you wire them in the correct order later. You’ll also want to tape over the little window so the games don’t get randomly corrupted sitting out on your desk.

(Don’t worry about the bent pins in this picture just yet.)

20170910_113444.jpg

Once you’ve programmed each chip, you’ll want to double-check that the code was programmed correctly. Most programmers have a “verify” function that will do just that. I highly recommend verifying your chips.

Now go ahead and skip ahead to step 7, where we’ll get our donor cartridge ready.

Back to top of Step 6a

Step 6b: Burn your ROM (for 29F033)

If you’re using the 29F033 surface mount EEPROM with the adapter board I mentioned earlier, you’ll need to do a bit of extra wiring to accommodate for the breakout board. Nothing extreme! The good news is your board will look much cleaner in the end compared to the boards you make using the 27C801s.

Preparing the DIP36-TSOP40 Board

On the DIP36-TSOP40 adapter board, you might have noticed a few extra pads on the top of the board.

20170903_160404_markup

The pads we are going to worry about (R1 and R3) connect to the RESET and the /WE pins. These pins aren’t directly routed to any of the pins for the DIP package, as the SNES Mask EPROMs don’t use these pins. But, in order to program our 29F033, we need to do something about these pins. R1 connects the RESET pin to Vcc. This will ensure the chip is always on, which is obviously what we want. R3 connects the /WE (write enable) pin to pin 36 on the DIP package. This will be used by our programmer to enable writing the code to the chip, but when the adapter board is connected to the SNES PCB, this pin will be pulled to Vcc during operation, ensuring the chip never re-enters Write mode.

We need to short both R1 and R3. The easiest way to short these pads is to strip back a wire that covers both pins, solder both pads onto the wire, and then clip the remaining piece of wire. If you want, you could also spread some flux on the pads and short them that way, but be careful not to heat up the pads too much, because you don’t want them to fall off (which is something I’ve done…)

20170903_162959

You can completely ignore SJ1 and R2. Not necessary for our project.

Making an Adapter for the 29F033C

Normally, to program surface mount chips, you usually need to get some sort of adapter for your programmer. They look like this:

adapter

All you do is drop your surface mount chip in the little box and make sure the pins are lined up, and you can program it like a normal through-hole chip. Now, these things are stupid simple. They’re literally just traces that reroute the tiny little pins on the surface mount package to larger, DIP-sized pins that your programmer accepts. I get that it’s a niche product, but still. I don’t want to drop extra cash on one of these things. If you think you’ll be programming a ton of these little guys, you can go ahead and pick one up, but I don’t use EEPROMs all that much outside of these reproductions.

With our DIP36-TSOP40 adapter board, we kind of have an adapter already. It’s just attached to a single chip. The problem is, this adapter board we have adapts the pinout to the SNES Mask ROM pinout, which is (unsurprisingly) NOT the same pinout that our programmer uses. So we have to make an adapter for our adapter.

You’ve got one of two options at this point. You can spend a lot of time wiring up your own breadboard adapter, which won’t cost anything if you have the supplies, or you can get a custom-made PCB adapter board (designed by me!).

For the first option, what I did here was just take one of my many small breadboards that I wasn’t using and make an adapter board with a bunch of wire bundles and female-to-male header sockets. Ugly, but effective.

20170903_160048   20170903_160057

Here’s a list of the pins you need to route from the DIP36-TSOP40 adapter to your programmer. The SNES Adapter row corresponds to the pins on the breakout board, and the Programmer row corresponds to the sockets on the TL866.

pinout

The second option is a lot easier (and you won’t risk ruining a breadboard with thick pins), but also will cost you a bit of money.

I laid out an adapter board and uploaded it to a PCB fabrication service website called OSH Park. I’ve ordered a handful of boards from them in the past – they’re amazing. It costs $5 per square inch, and you get 3 copies of the board, so it’s perfect for small, compact boards like this one.

20171112_174849.jpg

Here’s the design. You can order it from OSH Park directly, which will be about $10 for 3 copies. OR, if you would like, I can sell a single board to you for $6 (this includes shipping costs), because are you ever going to need 3 copies of this board? If you’re interested in this option, please contact me. I will gladly buy them from OSH Park in 3’s and sell individual ones to save you guys some cash.

You’ll also need male and female header pins – 40 male header pins that will go to the programmer, 36 female header pins for the TSOP adapter board. You can find these on eBay pretty easily. You should put the inside rows first, then the outside ones. Makes it easier to solder.

tsopadaptercoll.png

So once you have your programming method of choice, go ahead and blank check, clear if you need to, and program your game. If your game is going on two separate EEPROMs because it’s larger than 32Mbit, make sure you label the EEPROMs accordingly! Also remember to verify the code afterwards to make sure it programmed correctly – most programmers have a verify function. If you get an error of some kind, then you probably have a wire in the wrong place somewhere. Have fun finding out which one!

Back to top of Step 6b

Step 7: Gut your donor cartridge

Have you gotten your donor cartridge from eBay in the time it took you to read through this wall of text yet?

SNES games can have a lot of different chips, but you’ll only need to worry about one at this point – the Mask ROM chips. You’ll want to keep all the other chips exactly where they are. Some games have two ROMs, but this is pretty uncommon. If your game happens to have two, you’ll want to take both of them out. The ROMs are denoted on the PCB in some way, it’ll say “MASK ROM” or some variant of it. If your game doesn’t have any RAM or specialty chips, the ROM will be the only large chip on your board.

20170906_224423_2

You can see above that U1 is labelled as MASK ROM, which is the chip we need to remove. U2 is the SRAM, which we want to keep in the board.

Removing the Mask ROM from their boards is kind of difficult, but you have a few options. The easiest way to remove these is to use a desoldering gun, that is, a soldering iron connected to a vacuum. These are pretty pricey and expensive to upkeep, so I don’t expect you have one of these, but your employer might! That was my case. Another way to remove them is to use one of those desoldering pumps. I’ve never used one of these, but I know they’re kinda tedious to use.

desolder.png

Another easy option is to just take a Dremel and physically cut all the pins on the chip, then heat up each individual pin left in the hole with a soldering iron and use pliers to pull them all out. Whatever method you decide to do, make sure not to cut any other traces while you’re doing it! You’ll also want to get rid of all the extra solder left in the holes.

20170903_160504

Now that you’ve gutted your PCB and have your chips ready, you should definitely check off all these boxes before you go ahead to the next step. Once you’ve soldered your chips in, getting them out is a risky and very frustrating process! I’ve killed at least a few boards because I ripped the pads off from desoldering and soldering so much. So ask yourself the following:

  1. Is the donor board compatible with my desired game?
  2. Did the ROM run on an emulator correctly?
  3. Did I remove the header from the ROM file?
  4. Are there any broken traces on the board, specifically beneath where I will be placing the chips?
  5. Is there any extra solder anywhere on the board that might be making unwanted connections?
  6. Did I run ucon64 a final time to absolutely make sure the checksums are correct?
  7. If I split the ROM into multiple chunks for multiple chips, did I label them correctly?

Making sure you’ve done these things will save you a lot of time and a lot of headaches, so make absolutely sure you’ve followed them. If you think you’re ready, it’s time to put in your chips!

Back to top of Step 7

Step 8a: Install your burned ROM onto your donor (27C801)

Like step 6, these instructions will differ depending on the chip(s) you’re using. So if you’re using the surface mount 29F033, skip ahead to step 8b.

It’s very important to note – usually, the socket for the Mask ROMs on the PCBs has 36 holes. Like the NES, Nintendo made these boards usable for many different sized games. A 32-pin Mask ROM on a standard SNES game holds games up to 8Mbit, and a 36-pin Mask ROM could hold up to a 64Mbit game. Our 27C801 chips only have 32 pins, so we won’t be using the extra 4 holes – yet. You’ll see a little demarcation on the board denoting which extra holes are used for the 36 pin chips.

3236pin.jpg

Make sure when you put your (first) EPROM in the board that pin 1 of your EPROM lines up with pin 1 of the 32-pin socket (or pin 3 of the 36-pin socket). If you only have a 32-pin socket available, and you’re wiring more than one EPROM, you’ll have some special instructions.

Skip ahead to wiring two 27C801’s on board with two sockets
Skip ahead to wiring multiple 27C801’s on board with one socket

Wiring a single 27C801

If your game is 8Mbit or smaller, you’re in luck, because this’ll be pretty easy for you. Luckily, unlike NES games, SNES PCBs are more or less universally wired. So this method will work for pretty much any game you want to make.

If you were able to use the SwapBin function on the SNES ROM Utility:

Your life will be easier if the SwapBin worked. Bend up pins 24 and 31 on your EPROM. Bend the pins SLOWLY and carefully using pliers to make sure they do not snap. Also, solder wires onto the socket holes 24 and 31. These don’t have to be super long, but you’ll have an easier time if you have ample room. Also, try to use thinner wires if you can. This will prevent putting too much stress on your EPROM pins so they won’t snap off.

20170913_180505.jpg

Now, place your EPROM with bent pins into the 32-pin socket. Solder the wire from hole 24 to EPROM pin 31, and solder the wire from hole 31 to EPROM pin 24.

20170913_181257.jpg

If you were NOT able to use the SwapBin function on the SNES ROM Utility:

If SwapBin did NOT work, then you’ll have to route three extra wires. No biggie. Bend up pins 1, 2, 24, 30, and 31 on your EPROM. Solder wires on the socket holes 1, 2, 24, 30, and 31. Place your EPROM into the 32-pin socket. Then, route the wires as below:

Wire from hole 1 to EPROM pin 30
Wire from hole 2 to EPROM pin 31
Wire from hole 24 to EPROM pin 2
Wire from hole 30 to EPROM pin 1
Wire from hole 31 to EPROM pin 24

20170909_144942

20170909_150322

Note that keeping the wires shorter (and using thinner wires) helps to make your game easier to fit back into the SNES cartridge. Skip ahead to step 9 to test your game out!

Wiring two 27C801 on one board

Some SNES games utilized two EPROMs on one board. Most of them just used a single, bigger, 36-pin EPROM, but not all. You will only be using this step if your game is 16MBit, and you found a PCB that uses two EPROMs instead of one. You could probably make games bigger than 16Mbit with these boards, but I haven’t gone through all the rewiring, and I don’t feel like it!

Basically, all you have to do is follow the same rewiring as in the section above for wiring a single EPROM, based on if you could SwapBin or not, but do it for both chips. Make sure that your first EPROM is inserted in the first EPROM slot, and the second is placed in the second slot. These are usually indicated by labels such as “P0” for the first chip and “P1” for the second. Here’s an example board with the P0 and P1 circled.

dualmaskrom.jpg

I haven’t encountered a board like this in my reproductions, but don’t hesitate to let me know if you have any problems with them! Now, onto step 9 to test out your game.

Wiring multiple 27C801

So you’ve elected to use multiple 27C801s. You’ve got the most work to do out of any of these steps. Not hard work, just tedious work. You’ve been warned! You’re going to want to double check that you programmed your EPROMs correctly (maybe use the “Read” function on the programmer) because taking this apart after you’ve constructed it will be a huge pain. What you’ll need are your EPROMs (marked for which one goes first, second, etc.) and the 74HCT139 decoder. You’ll also need a lotta wire. Different colors helps for debugging.

The first thing you’ll need to do is bend up the pins ONLY on your first EPROM as indicated in the above section based on if you were able to get SwapBin to work or not. This EPROM will be placed into the existing EPROM socket.

Next, solder wires from the holes indicated in the section on wiring a single EPROM, except pin 31 – leave that one empty. If you got SwapBin to work, that means a wire coming from hole 24. If you did not get SwapBin to work, that means holes 1, 2, 24, and 30 will have wires. Place your first EPROM (labelled “A”) into the socket and solder it in. Don’t worry about the bent up pins just yet.

Now, take your extra EPROMs and bend up pin 24 on each. Solder a wire on each pin for use later. Then, if you have more than one extra EPROM, solder all the pins on the extras together in parallel (except pin 24) – all pin 1’s soldered together, all pin 2’s, etc. Obviously, I don’t mean solder all the pins together in a giant solder blob. This can be done easily by physically stacking the chips (with pin 24 bent up) and soldering like so.

20170910_183731.jpg

Once you’ve paralleled all your EPROMs, solder wires from the extra EPROMs to the non-bent up pins of the EPROM on the board. It’s easier to access these pins with wire from the back of the board, but be sure you’re not getting too much wire in the way that would prevent you from closing the cartridge! If you’re using all three EPROMs stacked on top of each other, you’ll probably need to clip the bottoms of the pins so that the cartridge can close. This is also where the thin wire comes in handy.

Next, take care of the extra pins by following the steps indicated above where each wire should go – EXCEPT pin 24!

If SwapBin worked: connect the wire from hole 24 to the net of connected pin 31’s from all the EPROMs.

If SwapBin did not work: connect hole 1 to net of pin 30’s; connect hole 2 to net of pin 31’s; connect hole 24 to net of pin 2’s; connect hole 30 to net of pin 1’s.

You should have most of it wired up, and the extra bent up pin 24’s. So let’s take care of that, and the decoder. Follow this wiring diagram:

wiring

To be clear: you will only wire the red wires if your board has a 36-pin socket. If you only have a 32-pin socket, follow the wiring for the blue wires only. EPROM “A” is installed on the board. If you don’t use all four EPROMs, just leave out the ones you don’t use. So for example, if you only have two EPROMs to worry about, then leave out EPROM “C” and “D” and leave pins 6 and 7 on the decoder disconnected.

A20 refers to pin 1 of the 36-pin socket, and A21 refers to pin 2 of the 36-pin socket.

Where you connect pin 1 on the 74HCT139 will be determined on the board you’re using. If your board has a MAD-1 chip on it, you will need to connect to pin 4 of that chip. The MAD chip is a type of memory mapper that is used on many boards. If you do not have the MAD-1, you will have to find pin 49 on your connector, follow the trace back and confirm the connection with a multimeter, and then solder to that point. Here’s an example:

pin 49.jpg

If your Mask ROM socket only has 32 pins you will also have to find alternate connections for A20, A21, and VCC. VCC is easy enough, just solder it onto pin 32. A20 and A21 on the other hand could be in a few different locations. You’re gonna have to find another connection, like you did for pin 49.

Depending on what kind of board you have, a LoROM or HiROM board, your A20 and A21 pins will be on different parts of the cartridge connector! The only real difference is that for LoROM games, the normal A15 pin is skipped, and all the data pins are shifted by one. If you’re curious about why this is, check out this great guide, but I will not be getting into it here. But for our purposes:

LoROM has A20 on pin 46, and A21 on pin 47.

HiROM has A20 on pin 45, and A21 on pin 46.

cartconnectorhilo.png

So, find those pins, and follow the traces to an exposed solderable point on the board, and use that as your connection. Sorry that got a bit complicated! As always, you can ask questions below or email me if you’re still confused.

After all of that, you should have some kind of mess of wires that looks like this:

20170911_224457

20170911_224511

If you’re curious how the decoder works, read on. Otherwise, go ahead and skip to step 9 and test your game out!

What the Decoder Does

Here’s the functional diagram and truth table for the 74HCT139. We’re only going to focus on the top half, because that’s the only part we use.

decoder

A decoder is similar to a demultiplexer, but instead of switching an input to different outputs, it switches a set signal (in this case, logic LOW) to a different pin based on the inputs to A0 and A1.

In a game that is only 8Mbit large, A20 and A21 are never used (because there are already 20 available data pins: 2^20 = 1 MegaBYTE, or 8 MegaBITS, which includes A0 through A19), and therefore we don’t need the decoder. But as soon as we go up above 8Mbit to 16Mbit, A20 is needed, which gives us 2^21 or 2 MegaBYTES, or 16 MegaBITS.

Pin 24 on the EPROMs is the /CE pin, or chip enable. This means that when the /CE pin is pulled LOW, the chip is able to operate. When the /CE pin is pulled HIGH, the chip turns off. If we tie the A20 and A21 pins to the decoder, we can activate different EPROMs and emulate having a single, larger EPROM by using multiple smaller ones.

So for example, if you have four EPROMs – if A20 and A21 are both LOW, the first EPROM is enabled which contains the first quarter of the game code. When the address line switches A20 to HIGH, we completely switch EPROMs and now read information from the second EPROM. When A21 is activated with A20 off, this makes the SNES read information from the third EPROM. And finally, when both A20 and A21 are HIGH, the last EPROM is connected.

This is why all the EPROMs are connected in parallel – only the one that is currently selected by the SNES through data lines A20 and A21 will output data on these lines. The other pins on the deactivated EPROMs will simply be set to a high impedance mode, effectively making them disconnected. Overall, this gives us extra data pins and emulates having a single, larger EPROM. Time to test your game out in step 9.

Back to top of Step 8a

Step 8b: Install your burned ROM onto your donor (29F033)

If you are using the 29F033 chips, your life is comparatively easier. If you’re going to be using two 29F033’s, you need to skip ahead to step 8c. If not, just plop your little adapter board into the place where the other ROM was. Make absolutely sure you’re putting in the chip in the correct orientation!

20170903_162933-e1504750339546.jpg

You need to make absolutely sure your game is programmed correctly before you solder it into the socket. You don’t want to spend all that extra time desoldering a chip you found out was programmed incorrectly! Once you’re sure, go ahead and secure the header pins with solder and trim the bottoms off. In the picture below, the top row is uncut, and the bottom row is cut.

20170903_163225.jpg

You can see the difference! Be careful when you’re clipping these – you don’t want one to fly into your eyeball. This has happened to me. It is not pleasant. Clip them into a trash can or something.

If your game only has 32 pins for the socket:

You will need to rewire pins 1, 2, 35, and 36 to their proper locations. You’ll also probably need to trim the bottoms of the pins off so that the other 32 pins still fit in the socket. Pin 1 is A20, pin 2 is A21, pin 35 is A22, and pin 36 is VCC. You can connect pin 36 to pin 34 with a jumper cable easily enough.

As for the other data pins, you’ll need to connect them to some other point on the board – this can vary depending on the board you have. All you have to do is find the correct pin on the cartridge connector, and follow the trace back to a solderable point. Hopefully there’s somewhere on the board you can connect to, but if there isn’t, you might have to solder onto the top of the connector. This should be pretty rare, though.

Depending on what kind of board you have, a LoROM or HiROM board, your A20, A21, and A22 pins will be on different parts of the cartridge connector! The only real difference is that for LoROM games, the normal A15 pin is skipped, and all the data pins are shifted by one. This also means that LoROM games don’t ever utilize A22. If you’re curious about why the pins are shifted, check out this great guide, but I will not be getting into it here. But for our purposes:

LoROM has A20 on pin 46, and A21 on pin 47.

HiROM has A20 on pin 45, A21 on pin 46, and A22 on pin 47.

cartconnectorhilo

If you’re still confused, feel free to ask any questions you have below, or email me. Now, go ahead and skip to step 9.

Back to top of Step 8b

Step 8c: Install your burned ROM onto your donor (ExHiROM)

As far as I know, the only games that use the ExHiROM style of board are Tales of Phantasia, and Daikaijuu Monogatari II, both only released in Japan. Unfortunately, the latter uses a unique real-time clock chip that isn’t used in any other game, so you won’t be able to make this game. So really, this section is mostly for Tales of Phantasia – which is an EXCELLENT game that I highly recommend making!

If you want to make a game that is larger than 32Mbits, but isn’t ExHiROM, you will need to follow different directions. This would include games like ROM hacks, such as Super Demo World, or Chrono Trigger: Crimson Echoes. These games still use the HiROM or LoROM mapping style, but will require two 32Mbit EEPROMs. I recommend following this post on NintendoAge. I haven’t built a game like this yet, but when I do, I will add a section for it!

Anyway, Tales of Phantasia uses the normal chips, plus 64Kbit SRAM, so you should have a board that has these characteristics. You should also have two programmed 32MBit EEPROMs on the TSOP adapter boards, marked A and B.

Note: I’ll be making this game with a board that only has one 36-pin socket for EPROMs – instructions for making this with a board with two EPROM sockets, or a 32-pin socket, will be a bit different, so be aware of that. I will not be covering those situations here.

The first thing you’ll need to do is remove your MAD-1 decoder from the PCB. Here’s what your board should now look like, and the components you’ll be using.

20170927_221729.jpg

Bend up pin 13 on the MAD chip, and place it back into the board. If it’s easier for you, you can try just cutting the pin without removing the chip, but make sure you can still access pin 13 coming from the MAD-1 chip.

20170928_213533.jpg

Now, remove pin 33 from the header on the FIRST EEPROM. This is the /OE (output enable) pin, which will be controlled by the MAD-1 chip. Put the EEPROM in the socket, making sure it’s in the correct orientation, and solder it in. Remember, you’ll be missing pin 33, so don’t solder anything on that. Do NOT trim the header pins on the back yet!

Now, you have one of two choices. If you want a cleaner looking assembly, remove the header pins on the SECOND EEPROM adapter board. Make sure all the solder is out of the holes, and place it on the back of the board on the header pins from the FIRST EEPROM, like a sandwich. Make ABSOLUTELY SURE the board is facing the exact same orientation as the first board so that pin 1 on “A” is connected to pin 1 on “B” and so on. You don’t want to put it in backwards or upside-down!!

20170928_223905_edit.jpg

If removing the header pins is too much of a pain for you (completely understandable), then you can connect each pin from EEPROMs “A” and “B” together with wires, much like you do when using multiple 8Mbit EPROMs. But, make sure you do NOT wire the pin 33’s together!

Now, you should have a board with two TSOP adapter boards connected in parallel, either through wires or the sandwich method, with pin 33 disconnected to everything on both boards. You should also have a MAD-1 chip with a floating pin 13.

Connect pin 13 on the MAD-1 board to pin 35 on the TSOP adapter boards. Make sure both pin 35’s are connected! Then, run a wire from the “A” EEPROM pin 33 to pin 1 on the MAD-1 chip. Finally, run a wire from the “B” EEPROM pin 33 to pin 16 on the MAD-1 chip. Note that pin 1 and 16 on the MAD-1 chip are still in the board – this is because they’re not connected to anything on the board anyway, so we don’t have to pull them out. You can access them from the top of the board, or the back of the board. Here’s what it should look like afterwards (I used the sandwich method):

20171005_201000.jpg

20171005_201006.jpg

Now, you’re nearly done!

Back to top of Step 8c

Step 9: Test your game

When you put your board back in the cartridge, you’re going to want to clip the little plastic stand-off on the back of the cartridge, especially if you used the TSOP adapter board because that’s gonna get in the way.

20170903_163910.jpg

Now close your game back up nice and tight. If you did everything right, you should be playing your game just fine! If not…. well here’s a few things you can try to fix it.

  1. Make sure your SNES works with other normal games. I know this sounds silly, but you never know if your SNES just kicked the bucket or not between games. I once bought Super Mario RPG and the sound didn’t work – but it wasn’t the game, it turns out my SNES audio fried since I last played!
  2. Clean the contacts that go into the SNES on the cartridge. Use like rubbing alcohol or something, look online for resources, I’m not good at housekeeping stuff.
  3. Check for any missed pins or cold solder joints. Cold solder joints will be recognizable by their “misty” or “crumbly” appearance. To fix them, just heat them up (and make sure they’re heated sufficiently!) and put some new solder on them.cold.gif
  4. Check to make sure your chip is in the correct orientation.
  5. Check to make sure you didn’t cut any traces on the board accidentally – if you did, you’ll have to add a replacement wire.
  6. Verify you wired everything correctly. It can be easy to miss a pin or two if you have 30+ wires to solder!

If all else fails, you might have to desolder your chip, blank it, reprogram, and try again. You might have forgotten to remove the header, or something else during the programming stage. Unfortunately, it’s hard to troubleshoot these boards sometimes (especially online) but if you have any questions, feel free to leave them below in the comments, or shoot me an email.

Back to top of Step 9

Step 10: Make a label

This part is completely optional! If you want your new Final Fantasy V cartridge to look like a Madden football game, you do you! But if you want something that looks a bit nicer, read on.

First things first, you gotta get that pesky label off of your game. You’re gonna want to just focus on the front cover, obviously. You can try to take the label off by hand, but I’ve never been able to get it completely off. Always get a ton of extra residue and paper.

I found a solution that works pretty well, though. All you have to do is mix equal amounts of baking soda and vegetable oil – you only need about a tablespoon. Rub it on all the leftover sticker and let it sit for half an hour. Afterwards, scrub it clean with some steel wool or your fingernails or whatever, it should come off pretty easily. Wash it off and you should have a blank canvas on which to work.

20170903_172833.jpg

Now, you need to get a new sticker for the front! You can either buy them online at various shops for $5 or $6, which might be the most convenient for you, or you can print them yourself if you have a good enough printer (or if your game doesn’t actually have a label). If you want to do them yourself, you’ll need sticker sheets and lamination sheets. It might be cheaper to just buy them individually if you’re not planning on making multiple games. Maybe see if your local office supply stores sell these in single sheets or will print them on the paper for you?

If you want to make your own label, use this template:

snes_label_template__usa__by_michaelmannucci-d7smne9

I found this template on DeviantArt here.

Then, you can use your favorite photo editing software (I prefer GIMP, which is a free Photoshop-esque program) to place your own picture and name. Search for pictures of your game on Google or something as a reference.

Now, you’ll want to make sure the size matches up for when you print them out. The SNES labels need to be approx. 1.77” x 3.25” when cut. I’m not a wizard at getting this to line up correctly, so you’re on your own for this.

I use full sticker sheets that I got from work and cover it with lamination sheets that I also got from work (shhhh don’t tell anyone). It’s more economical to fill up a whole sticker sheet with labels, then cover it with a full sheet of lamination. Buying a full package of these sticker and lamination sheets can get a bit pricey, so again, if you’re only going to make a few games, it might be cheaper and more worth your while to get the stickers premade.

Now just slap that sticker on your game, and you’re done!

Back to top of Step 10

Conclusion

It’s been a long time coming (like this tutorial), but finally, you’ve completed your first SNES game! Feeling good about yourself? You should be!

As with the NES games, remember that selling reproductions of released games is technically illegal, especially if you’re trying to pass them off as a legitimate copy! And don’t go to conventions trying to sell them! That’s called being a jerk. Don’t rip off genuine game collectors, we’re nice people!

Hopefully this guide was comprehensive and detailed enough to give you a good understanding of what to do and why we did it. If any part is unclear, or if I have any mistakes, please feel free to comment or email me, and I will do my best to clarify or fix the problem! I’ll be updating this tutorial for more concise verbiage and to add any new information I want to cover. I will also be adding a section for games larger than 32Mbit soon, as there are some unique steps for that type of game, but hopefully this’ll suffice for now.

Until then, tinker on my fellow hobbyists!

I got a lot of my information from the NintendoAge forums and the NesDev forums. Check them out – they’re amazing!

Back to top

Advertisements

53 thoughts on “How to Make a SNES Reproduction Cartridge

  1. hey mate thanks for this, I’m currently struggling in programming the tsop iii on the TL866, ive burned through 5 chips and swear its not my soldering, it looks pretty clean,
    What is the pin out on the tsop and tl866, i.e. where does pin 1 start on each etc, have you got a diagram or a reference? i want to reproduce your breadboard method

    Like

    • No problem!

      If you check at the bottom of Step 6b, there’s a table of connections you need to make from the 36-pin TSOP adapter to the programmer. I’m almost done on a TSOP to TL866 adapter board as well, actually, so if you want a cleaner breakout board I’ll be posting links to that soon.

      Like

  2. Also would you know how to:
    1. convert a highrom pcb to lowrom pcb?
    1J3M / 2J3M / BJ3M to lowrom equivalent?

    2. run 2 x 27c801 of a BJ3M/BA3M board? I know 1 chip works but i cant run 2 chip games as it doesn’t boot

    Like

    • Converting HiROM to LoROM or vice versa isn’t that hard, but there’s a decent amount of rewiring. I’ve never converted a LoROM or HiROM to the other before, because I’ve never really had a need to. But here’s a thread on NesDev about converting a 1J3M to LoROM: https://forums.nesdev.com/viewtopic.php?f=12&t=13031

      As for the BJ3M/BA3M board, you should just have to rewire both EPROMs depending on if you could SwapBin them or not. See section 8a for the rewiring. Make sure you split the file correctly, removed the header, etc. At least twice now I’ve forgotten to remove the header from the board in SNES ROM Utility and had to take the chip off – if you forget to do that, you’ll get a black screen.

      If you still have questions about it, let me know and I’ll try to help out more.

      Like

  3. So if I were to modify my DQ5 cart, I would have to buy two DIP32 27C801 chips, split the 2MegaByte rom into two 1MegaByte (8Megabit) roms, and program them into the chip. Remove the old chips, swap in the new chips and rewire pins 24 and 31 individually? Seems simple.

    Like

  4. Oh well, looks like I’ll follow mmmonkey’s guide about Earthbound about the Bj3M. I’m not good at surface mount soldering, and if I do get the programmer above, I would also have to build or buy an adapter. 8megabit games seems simple enough. 32megabit on the other hand, I’ll leave it to the professionals.

    You wouldn’t recommend using the cheaper 27C322 with Martin Samuellsson’s board right? Biggest pain could be those header pins.

    Like

    • You could do the 4 stack of 8Mbit EPROMs for Earthbound if you don’t want to do surface mount soldering. I go over that in the tutorial. It’s a pain, but a lot easier than surface mount soldering. I’m not sure how to adapt a BJ3M board, I don’t have one so I can’t easily check the traces (does mmmonkey go into these boards? Not sure what tutorial you’re referencing), but Madden games are pretty cheap on eBay, only like $5.

      I never used the 322s because my programmer only has 40 pins. You’d need a more expensive programmer for the 322s (42 pins). I am planning to work on an Arduino EPROM programmer, but I’m not sure when I’ll get to it though.

      Like

  5. just get your boards soldered and programmed from Jian at buyicnow for the 24 / 32 M games. Don’t even waste your time on surface mount, i bought everything to do myself but in the end gave up as i just couldnt solder the small pitch on those ics.
    Everything else make yourself. Just get the 2A3M boards, 1A3M and 1J3M. Note most games are lorom, the bigger games like Donkey Kong Country etc are HiRom.

    Like

    • I think I will do that. I think mmmonkey was using a TSOP I adapter tho I have my eye on the III adapter due to my success with it on a 1J3M with the HiRom Chrono Trigger, no rewiring required. Will it be the same the Mother 2 board I mentioned?

      So with the TSOP III adapter with the 32mb chip I can now do a simple swap? Would I have to remove the second 8mb chip to avoid interference or will I have to rewire? I

      Like

      • Jian should have plenty of stock if not now then shortly, i got a lot of boards from him over the months to complete my library. Just shoot him a message his normally pretty good to respond.

        Not sure what you mean by swap, but the adapter fits a 1a3M or a 1J3m board with a 36 pin socket. You can rewire the Bj3m board like mmmonkeys guide but just stick to the other boards mentioned above for the 24/32Mbit games. I used his guide to do my first repro of chrono trigger.

        You can also drop a 27c801 binswapped on a ba3m board also, i used a ba3m board to do a Zelda LTTP repro.

        Like

      • Oh he does have the 29F033’s back in stock now. I got a handful of them from eBay myself at about $5 each, and I did order 10 of the TSOP boards. I do a ton of surface mount soldering for my job, so I have a lot of experience in it, so surface mount soldering isn’t a problem for me personally. He’s selling the chips on the boards for $12. You could do 27C801’s and a decoder for approx. $9 through eBay, but the TSOP does look nicer. I guess it’s a person-by-person basis.

        At least I write about most methods you could do in the post 🙂 If it were up to me, I would have done only TSOPs for anything larger than 16Mbit, but I wanted to give a comprehensive look at the different methods.

        Like

    • So for a game like Shin Megami Tensei 2 that is a lorom but uses a single DIP36 chip, I can easy swap in the English version on the TSOP III? However, I don’t know if there is a 24mb chip as and I can’t expand due to the limitations of Lorom.

      Like

      • I’m not sure what you mean by “limitations of LoROM,” you can expand any game you want. All expanding does is add a bunch of FF’s to the end of the code to pad out the size.

        If you look at the Excel sheet I attached in the tutorial, you’ll see Shin Megami Tensei 2 (the English translated ROM) is LoROM with 64Kb of SRAM. Normal chips, battery on board, and takes up 20Mbits.

        You can do one of two things:

        Expand the 20MBit to 24MBit, and put it on 3 27C801s, wire in parallel. Detailed in step 8a.
        Or, expand the 20MBit to 32Mbit, and put it on one 29F032/29F033, which goes on the TSOP III adapter board, which is 36 pins and fits in the SNES Mask ROM socket. Detailed in step 8b.

        You’ve got plenty of donor options. NBA Live 95, 96, 97 are the cheap ones that pop out at me, but there are a ton of compatible games.

        It’s all in the tutorial!

        Like

  6. Also I used the above instructions / pin-out to make the TL866 to tsop adapter programmer which works very well. Thank you very very much for providing the pin-out in this post btw.
    Just involved a lot of tracing and soldering but now i can wipe and program the tsop adapters myself.

    Like

  7. I think for Final Fantasy V, I should probably look for something like a 3J0N board since that can use three 27C801s on the board, but what are the odds of that? Final Fantasy VI is about $8 on eBay, and my copy is basically the same as the Mother 2 board.

    Like

    • I have been interested in trying the 322’s, but as I don’t have a suitable programmer for it, I can’t exactly use them. Maybe I’ll make a custom Arduino programmer for it. That’d be a stretch goal, probably.

      I’ve never ordered the TSOPs from buyicnow.com directly, with him programming them, so try at your own risk. I read some threads on NintendoAge that said if he screws it up, he’ll replace them for you.

      Like

      • Jian is great, his quality is fine and he will do a better job at it than you. He had done about 40 so far and all working well. Just make sure you provide him with a headless 32mbit ROMs for the chips. If they are 24mbit e.g. Super Metroid then expend the rom to 32.

        Like

      • Well, the TSOP chips worked with Chrono Trigger. Worth another go anyway. And since I don’t need that many TSOPs or 322s, 50 cents per programming task isn’t so bad, especially when I’ve been searching for a cheap programmer for the 322s (they’re expensive!)

        Like

      • apparently there is a method on creating multirom carts with SRAM backup, people made some like the legend of zelda variants etc. I have looked around for instructions but failed to find anything concrete as most of the guides are old and the instructional pictures are missing etc.
        there is this recent YouTube video which covers the process and SRAM but its foreign and i cant make sense of it.

        Like

      • Ok so I don’t speak Spanish, so I have no idea what he’s saying, but I think this is what he probably did – the SRAM on the board is 64Kbit, but Mario World and F-Zero only use 16Kbit. He probably has the binary counter that switches between games ALSO switch between banks on the SRAM by toggling one of the higher address lines. That’s actually really simple to do. I’ll look into this, and maybe make up a tutorial for it at some point.

        The ever-growing list of additions grows longer yet… haha

        Like

  8. I wonder if it’s possible to buy that PCB that connects to the one dip32 slot and can hold an extra two 27c801s and the multiplexer. But we’ll have to wire meticulously.

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s