How to Make a SNES Reproduction Cartridge

Using my custom SNES PCBs to make your games? A quick guide has been generated for your viewing pleasure!

Disclaimer: This is a somewhat involved process that involves a decent amount of soldering and possible desoldering, and using a lot of older technology. You might run into issues with broken parts, and it might get frustrating! I’m not responsible for any damage to you or your games. That being said, I’ll certainly try to help you out in any way I can. I’ve run into a large array of problems in the past, so I should be able to give you valuable input in solving your issue!

I’ve taken a lot of 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, SNES games aren’t actually too complicated to make (way easier than NES games), and there are a ton of different ways you can make them. Despite the daunting length of this tutorial, once you make a game once or twice, you get pretty efficient at it. It only takes me 10 minutes or so to make a game using my own SNES PCBs at this point, and I don’t even have to reference this guide anymore. So as long as you have a bit of soldering experience, you can put nearly any SNES game you want on a cartridge!

Table of Contents

Step 1: Gather information on your game
Step 2: Determine the method of reproduction
Step 3: Choose your board
– Donor cartridge
– Custom PCB
Step 4: Determine which memory chips to use
Step 5: Expand your ROM and fix the checksum
Step 6: Finalize files for programming
– 27C801
– 27C160
– 27C322
– 29F033
Step 7: Burn your ROM
– 27C801
– 27C160
– 27C322
– 29F033
Step 8: Double check your chips, and prepare the donor board
Step 9: Install chips on the board
– 27C801 (donor)
– 27C160 (donor)
– 27C322 (donor)
– 29F033 (donor)
– ExHiROM (donor)
– Custom PCB
Step 10: Finish your game

Equipment you will need

You’ll need a few basic things:

1) Programmer. This is what you use to program the chips the game data is stored on. I got mine on eBay for about $50. It’s a TL866 MiniPro programmer. There’s an updated model, the TL866II, and this one seems to work just as well. This programmer has worked flawlessly for me so far, even after 5 years, and it’s pretty easy to use. This is the same one I used for the NES tutorial. There are other more advanced programmers out there, but they run a lot more expensive. If you have one of these, you’ll have to figure out how to program the chips yourself (though, if you’re reading this and you already own a programmer, you probably know what you’re doing).

20180808_211933.jpg

Cost: ~ $50

2) A board. You can use either an existing game that you’ll dismantle, or a custom board. Your game will determine which method is easiest, and which you can even use. I provide custom boards on my store page if you’re interested in supporting the site! I offer board variations for using M27C322 or M27C160 chips or boards that mimic the pinout of the original Mask ROM.

boards.jpg

Cost: $5 to $15

3) EPROMs/EEPROMS (and programming adapters). Yes, that’s right, both EPROMs and EEPROMs can be used, and there is a difference! EPROMs are older technology (with a single ‘E’) and are 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!

In this tutorial, I will go over multiple methods of making games using 8 Mbit, 16 Mbit, and 32 Mbit through-hole EPROMs, and also using 32 Mbit surface mount EEPROMs.

e_eproms.jpg

If you want to use anything except 8 Mbit EPROMs, and you’re using the MiniPro, you’ll need programming adapters so that you can program these chips. Other programmers like the GQ-4X, can handle all of these chips, but I’ve never seen that programmer go for less than $100 online. I make these adapters, and can sell them to you over on my store page, or you can make your own boards (I’ll provide schematics later). I’ll go over which one you might need for your project later on.

20180808_213019.jpg

Cost: $2 to $15

4) EPROM eraser. This is for prepping your EPROMs, and fixing your inevitable screw-ups. You do not need this if you plan on only using the 32 Mbit surface mount chips. Got it on eBay for $15 (can you tell I like eBay?). I use this more often than I’d like to admit. I’d recommend picking it up.

38781033_540509953033852_8470017043511377920_n

Cost: $15

5) Miscellaneous hardware. You’ll need some wire (I prefer 28 gauge) if you’re using a donor cartridge, 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. You’re gonna want the 3.8mm “Security Bit” screwdriver. The 4.5mm is used for opening Nintendo consoles and Sega games. Might as well buy both though, they usually come in bundles from what I’ve seen online.

20180808_212053.jpg

So when all is said and done, you’re looking at an installation cost of $60 to $70, depending on what you have lying around, any adapters you need, and if you want to get the eraser. After that, each game you want to make will cost between $5 to $20, depending on which chips you select, and what board you choose.

Back to top


Step 1: Gather information on your game

The first step you should take is to find out the crucial information of your desired game. To do this, you’ll need to find and download the ROM file, or ROM hack patch file. 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.

Floating IPS

Before we get into the meaty part of the tutorial, we need to apply any necessary patches to your ROM. You most likely won’t have to do this step, especially if you’re making an unmodified game. I personally only had to do this once for a very specific ROM hack. But 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 Floating IPS to patch it. It’s very simple to use.

Open the program up, and click on “Apply Patch”. The patch you download should have the extension .ips or .bps. Locate and select the patch you want. Then, it will prompt you to apply the patch to the correct ROM. Find the ROM file in your folder and select it. It will prompt you to save it under a new name. That’s it!

Run your ROM in an emulator

It’s important to run your ROM in an emulator to determine it’s the exact game you want to make. Sometimes, a ROM file you download will be corrupt, or if you had to patch the ROM the patch might be corrupted, or something else could have happened. So you should download an emulator to run the file in. Personally, I usually use snes9x, but you can use pretty much any emulator on this list to check the game out.

Just make sure that the game is the exact version that you want to use, and that it can run for a few minutes without freezing. This might seem silly to do, but there are plenty of mislabeled ROMs I’ve gotten throughout the years.

uCon64

Once you’ve verified that your ROM is correct, you’ll need to download the most important program we will use, 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). If the cd command doesn’t work, try adding /d after it.

cd [path to folder]       OR       cd /d [path to folder]

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 enter:

ucon64 [path to ROM]

Use CTRL+V to paste the path. Your screen should look like this:

cmd1

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

cmd2.png

Let’s take some time to go over what each of these categories are.

Bank Type

There are two main types of banks known as HiROM and LoROM. In the command window, HiROM games will display as “HiROM: Yes” and LoROM games will display as “HiROM: No”. Pretty self explanatory.

SRAM

Some games use SRAM, some do not. If yours uses SRAM, you should provide it with the exact amount it requires. The reason being is that some games check to see if the amount of SRAM available equals a certain amount. If it does not, like if you’re supplying it with a chip it wasn’t meant to be supplied with, the game will determine it to be a pirated copy and screw the game up! Keep this in mind for later.

Chips

This column lists any specialty chips the game uses. This doesn’t include the chips that are used on all games, like the CIC region chip or the Mask ROMS. For example, Star Fox 2 uses the Super FX chip. For better or worse, there are not that many games that fall into this category.

Another common thing that many games use are batteries. I’d recommend buying a handful of new batteries with battery holders if your game uses one, even if you’re converting an older cartridge to a different game. It’s been about 20 years since many of these games came out – their batteries are probably almost dead, if they aren’t already. I recommend getting the yellow ones that come pre-mounted. The original batteries are spot-welded to the holders so they don’t move – replacing just the batteries without removing the mountings is tricky and not worth the time.

20170903_155804.jpg

Region

Just make sure the ROM you’re looking for is the correct region (PAL or NTSC), otherwise, they won’t run well (or at all) 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. Converting a game from one region to another is difficult, and it isn’t as easy as disabling the region lockout chip (CIC chip). Countries in the PAL region run on 50 Hz power, where countries in the NTSC region runs on 60 Hz power, and strangely enough, some games will run faster or skip frames if you use them in the wrong region.

ROM Size

This is how large your game is, obviously. The size only comes into play when you’re deciding which chips to use to program your game, because all cartridge boards are capable of handling pretty much any size game you can make.

Speed

This corresponds to the data access delay times of the ROM. 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 120 ns access time (120 ns or less). I’ve never run into one that was slower than this though. If you’re curious about the differences between SlowROM and FastROM, check out my detailed write-up about the SNES cartridge inner workings.

Knowing all this, you should note the region, ROM size (specifically the number shown in Mb), SRAM size, bank type, and chips that this screen shows. With this information, we can determine exactly how we want to make this game.

Back to top of Step 1


Step 2: Determine the method of reproduction

There are two ways you can make a reproduction cartridge. You can use a donor cartridge, which refers to taking an older game (hopefully a cheap, very common one) and removing the ROMs and replacing them with your own. The other option is to use a brand new board to make the game. There are pros and cons to each. But before we get into the nitty gritty details, your decision might already be made for you.

Look at the type of chips that uCon64 listed for your game. If this says anything EXCEPT a combination of ROM, SRAM, and/or Battery, you must use a donor cartridge. There are a handful of specific games that use special graphics chips. An example of this would be the game Star Fox 2. It uses a SuperFX chip to help with the graphics. Unfortunately, short of using a flash cartridge (which are very pricey), there isn’t any way to reproduce a game from scratch that uses these specialty chips. If you’re still unsure, you can check this game list Excel that I made, find your game, and check the furthest column. So once again, if you’re making a game that uses anything but the normal types of chips seen on a cartridge, you must use a donor cartridge. Skip ahead to Step 3a.

If your game uses normal run-of-the-mill chips, then you’ve got a decision to make! Let’s go over the differences between donor cartridges and custom PCBs.

Using a donor cartridge

Using a donor cartridge involves taking the Mask ROM chips off the existing board and replacing them with EPROMs or EEPROMs that you program yourself.

Pros to using a donor cartridge:

  1. You won’t have to supply your own plastic case.
  2. The cartridge comes with the necessary components, like RAM and the CIC lockout chip, and various resistors and capacitors on the board.
  3. Because of these, the price can be cheaper than using a custom PCB.

Cons to using a donor cartridge:

  1. You have to remove the existing Mask ROM (and possibly the battery), which can be a huge pain, and if done without caution, can easily damage the board.
  2. The assembly might look messy with a lot of extra wires, depending on the chips you use to program the game on.
  3. You’re destroying an otherwise good SNES game. If you’re a proponent of video game preservation (as I am), this might not appeal to you. Though, you’ll probably be destroying a crappy sports game, so use your best judgement.
  4. Removing stickers from cartridges is my least favorite part of the entire process. It seriously sucks.

Using a custom PCB

There are a few different sellers out there that will sell you PC boards that you can use in your SNES as cartridges – OR, you could use mine!!

Pros to using a custom PCB:

  1. The final build will look a lot cleaner, since you won’t need to rewire anything.
  2. You don’t have to spend time figuring out a compatible game to use as a donor cartridge.
  3. You can turn one into a testing board with sockets for all the chips so you can test games out before you solder them directly to the board.
  4. You’ll be supporting the SNES reproduction community! And you won’t be destroying a perfectly good soon-to-be-endangered SNES cartridge in the process!

Cons to using a custom PCB:

  1. You need to buy the board, extra components (such as SRAM, capacitors, and a lockout chip), and the plastic case, possibly making the final cost more expensive.
  2. You will only be able to make games that do not use specialty chips. Here is a list of games that you can make with my boards. It includes most games – any game up to 32 MBit that doesn’t use specialty chips, like the SuperFX.

Here’s a picture of a test board I made so I can swap chips in and out before soldering them on a permanent board. It’s very handy!

69922791_376177876397163_2421543578422476800_n.jpg

Now that you have a better idea of how you want to make your game, let’s get the proper board.

Back to top of Step 2


Step 3a: Choose your board (donor cartridge)

First, you’ll need to open up this Excel document I made. This document has information on most available ROMs for the SNES/Super Famicom, including all foreign games, and even some ROM hacks. 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.

Go back to your notes on the bank type, SRAM amount, and extra chips that your game uses. You should filter the columns for those characteristics to find a good, cheap donor. Note that instead of filtering the region column, you should filter the video column instead depending on if you’re in the NTSC or the PAL region. Making games from regions with different video encoding can be tricky, or impossible in some cases, and I won’t be covering it in this tutorial.

Say we wanted to find a suitable donor cartridge to make a Final Fantasy V English translation cartridge. The bank type for this game is HiROM, it uses 64 Kbit of SRAM, and it has the normal chips plus a battery.

So, to find a donor cartridge, 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

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 a MUCH 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.

Once you have your donor cartridge, you should DEFINITELY check to see if it works as is in your SNES. You don’t want to get to the end of the process only to find the game you bought is broken (which has happened to me). Now, let’s decide the next most important aspect of your repro – what chips to load your ROM on. Head to Step 4.

Back to top of Step 3a


Step 3b: Choose your board (custom PCB)

I currently offer two boards – one that matches the original Mask ROM pinout on the SNES cartridges, and one that accommodates a 27C322 EPROM (this EPROM can hold all reproducible games, outside of Tales of Phantasia, Star Ocean, and some unofficial ROM hacks). These are available on my store page. They’re white, and they’re beautiful! They both support games up to 32 Mbit (and higher if you do some rewiring), and supports SRAM sizes up to 64 Kbit.

20191023_212307

20191023_212158

Now let’s decide the next most important aspect of your repro – what chips to load your ROM on. This will determine which of my boards you’ll be using, so if you’re not sure which to use just yet, read on and figure out what works best for you!

Back to top of Step 3b


Step 4: Determine which memory chips to use

There are four widely used memory chips to load your ROM into that I will go over in this section. Which you choose will be determined by a few factors, most notably your ROM size, and if using a custom PCB, the compatibility of your board.

  • 27C801 – a through-hole 8 Mbit EPROM
  • 27C160 – a through-hole 16 Mbit EPROM
  • 27C322 – a through-hole 32 Mbit EPROM
  • 29F033 – a surface mount 32 Mbit EEPROM

There are plenty of alternatives with the same pinouts that will work just as well as these four (such as the M27C080 for the 27C801, or the 29F032 for the 29F033). I’ll be using these numbers when referencing these chips to make the tutorial easier to read.

For using donor cartridges, you can use any one or multiple amounts of these to make any game you want – for example, if your game is 32 Mbit large, you can use 4x 801’s, 2x 160’s, or one of the 32 Mbit chips. If your game is 8 Mbit large, you can still use one of the 160’s or 32 Mbit chips. However, I really recommend you stick to just one EPROM – it’ll save a TON of work. Look at your command window again, and note the ROM size in Mb (megaBITS), so you know at least how much space you’ll need for your creation.

As far as my personal preference goes, I’ve been using 27C322’s for most of my repros lately, with a 29F033 that I use for testing purposes since it’s easy to reprogram them.

Checking your ROM in the SNES ROM Utility

Before you continue, you should download the SNES ROM Utility program and load up your ROM. If you get an error, you’ll be stuck working with the 27C801’s (as far as this tutorial goes), as we’re going to be using this program pretty heavily for all the other chips. Most games should load up fine though, the only games I’ve run into that gave me an error in the ROM Utility were BS games, or Japan-only games that were broadcast via Satellaview (by the way, if you’ve never heard of Satellaview, read up on it – it’s a super interesting piece of Nintendo history). Here’s what the error will look like.

snes_rom_error.png

So again, if you see this error, you need to use 27C801’s (or similar). Anyway, onto descriptions of each of the memory chips you can use.

8 Mbit EPROMs

If your game is only 8 Mbit large, you can very easily and cleanly use just one of these EPROMs, like the 27C801. But it is important to note is that if you’re using multiple 27C801’s in parallel, you’ll need to also buy an extra chip, the 74HCT139 (or an equivalent decoder, like the 74LS139). 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 at least 40 individual wires. This is what a finished game will look like if you use 2 or more 8 Mbit chips, versus using a single 8 Mbit chip for a smaller game.

comparison_8mbit.jpg

See? The left picture is super ugly. And very time consuming. Also harder to troubleshoot. And fit inside the cartridge. I don’t really recommend using 27C801’s for anything other than 8 Mbit or smaller games, but if you’ve got a ton lying around, I’ll still go over how to use them later.

Extra hardware needed for using multiple 27C801 EPROMS: 1x 74HCT139 (or equivalent)

16 Mbit EPROMs

16 Mbit EPROMs, like the 27C160, I’ve found to run a bit cheaper than the 801’s. There are only two downsides to using these chips. It’s going to look ugly (unless you use some kind of adapter board), similar to the picture above, as it requires a lot of rewiring (there are 42 pins, so these chips won’t fit in the sockets), and you’ll need a special adapter to program these in the MiniPro programmer. Conveniently, I sell these on my store page! I’ll give you more details later, you can make your own as well if you’re into that. If you want to use two of these to make a 32 Mbit game, you can do that, but like using the 27C801’s in parallel, you’ll need a decoder, like the 74HCT139. Here’s what your game is going to look like with just one 27C160.

20180723_192759

Extra hardware needed for using 27C160 EPROMs: A programming adapter for the TL866
Extra hardware needed for using multiple 27C160 EPROMs: 1x 74HCT139 (or equivalent)

32 Mbit EPROMs

32 Mbit EPROMs are the largest through-hole EPROMs available. Luckily, nearly all SNES games are 32 Mbit or smaller. I use the 27C322. You’ll only need one of these chips for almost any game, and they aren’t too expensive. Even cheaper in bulk. But, like the 27C160’s, they will look ugly if you’re using a donor board – it has 42 pins, so you have to wire each pin individually to the socket correctly. Also like the 27C160’s, you’ll need an adapter to program them on the MiniPro, which I can provide you – check out the store page. Or, if you’d like, you can make a crude breadboard adapter yourself, but I promise it’s a lot easier to just get a pre-made adapter board like mine.

In order to remove all the extra wiring, I do sell these adapter boards that do the wiring for you! They’re extremely handy, and I don’t think I’d recommend using these chips on a donor cartridge without them.

In addition to the EPROM, you’ll also need to attach the lines to a multiplexer, I use the 74HCT257 which is a quad 2-input multiplexer (you’ll need two of them). The 27C322 is a 16-bit EPROM, so the data is output in 16 bits rather than the 8 bits the SNES reads (don’t get this confused with the fact that the SNES is a “16-bit console”). In order to convert the 16-bit data to something the SNES can actually use, we’re going to connect the lines to two of these quad multiplexers and switch between the top and bottom 8 bits of the output of the chip. This means you’ll have to do some extra wiring.

If you wire everything externally without the wiring adapter board like I described, your finished product will look like the one above where I used the 27C160. Alternatively, if you get a custom PCB (like mine), your final product might look a lot cleaner, like this:

322_board.jpg

The following picture is using an adapter board that made it easier to mount to the board without having to use so many wires.

322_onboard_2

Extra hardware needed for using 27C322 EPROMs: A programming adapter for the TL866, 2x 74HCT257 multiplexers, 27C322-to-SNES adapter board (optional)

32 Mbit EEPROMs

As for the 32 Mbit EEPROMs (I used 29F033 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 29F033 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 type of 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 32 Mbit EEPROMs with breakout board only for any game larger than 16 Mbits. It’s cheaper and faster, especially if you’re going to make a full 32 Mbit game. But again – this is a difficult process, especially if you’re new to soldering. And you might kill a few of these chips if you don’t solder them properly by keeping heat on the pins for too long. If you haven’t had a lot of experience in soldering such tiny pins, or aren’t willing to potentially waste a bit of money in damaged chips, I would recommend just using the through-hole EPROMs.

But if you feel so bold, 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. Here’s what a final board looks like with one of these EEPROMs. Very clean!

20170903_162933

Note that if you plan on going this route, and you want to use the TL866 programmer, you’ll need to either buy my adapter, or make your own to route the wires on the breakout board to the programmer.

Also note, custom SNES PCBs that have the original SNES Mask ROM socket (like mine) can accommodate these chips on adapter boards.

Extra hardware needed for using 29F033 EEPROMs: A TSOP-to-SOIC chip adapter, a programming adapter for the TL866

Note: If your game is larger than 32 Mbit, you will want to use TWO 29F033’s. 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.

Back to top of Step 4


Step 5: Expand your ROM and fix the checksum

Now you’ve chosen what kind of board you’re going to use and your chips, let’s take a look at that command window again.

cmd2

If the total size of your chip(s) is greater than the size of your ROM file, you should expand the ROM to fill up the total amount of space you have. To do that, use the program Lunar Expand. There’s some debate as to whether it’s really necessary to expand the game or not, but you might as well because it’s pretty easy to do.

Lunar Expand

Note: If your game is larger than 32 Mbit (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 20 Mbit. That means I can either make a 24 Mbit game using three 27C801’s, use two 27C160’s, or use a single 32 Mbit chip. I’ll be doing the latter, so I need to expand the game to fill up all of the 32 Mbits. All you need to do is click your size option based on the total size of your chips (or combined chips), 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 32 Mbit. 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 they say “Ok” already, you’re good to go! Skip over this section. 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/or 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. I mentioned it earlier, it’s the SNES ROM Utility.

Remember when we loaded up the game in the Utility earlier in the tutorial? If you got an error when you try to load the ROM, then you’ll have use a program called StripSNES (and 8 Mbit EPROMs) – skip this next section and go to the StripSNES section in Step 7a 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 Final Fantasy V ROM didn’t have a header), which was expanded to be 16 Mbit and has fixed checksums, and DOES have a header.

snesromutility

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

We’ve got a crossroads here. The process for preparing the different memory chips is varied. So, click on the link of the chips you’ll be using.

Step 6a: Finalize files for programming (27C801)

Step 6b: Finalize files for programming (27C160)

Step 6c: Finalize files for programming (27C322)

Step 6d: Finalize files for programming (29F033)

Back to top of Step 5


Step 6a: Finalize files for programming (27C801)

If you’re using the 8 Mbit 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 8 Mbit chunks for each EPROM we are using (if the game is larger than 8 Mbit), 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 16 Mbit EPROMs, 32 Mbit EPROMs, or the 32 MBit surface mount EEPROMs. (But if you’re using one of those, why are you reading this section? Go find the right one!)

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, 8 Mbits (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 7a.

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 7a.

StripSNES

To reiterate, if you already were able to use 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 for changing the directory as I laid out above in the uCon64 section, but enter the directory StripSNES is located within. Then, find your ROM, hold shift and right click, then hit “Copy as path.” Go to your command prompt window, enter:

stripsnes [path to ROM]

Use 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 8 Mbit chunks, if you need to do that. To do this, simply enter:

ucon64 -s [path to 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 16 Mbit, 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.

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! Skip ahead to Step 7a.

Back to top of Step 6a


Step 6b: Finalize files for programming (27C160)

The 27C160 EPROMs are 42 pins wide. The TL866 programmer only has room for 40 pins. So how are we going to deal with that? Well, the short answer is, we’re going to trick the TL866 into thinking we’re programming a different EPROM. The EPROM we’re going to tell it to program is only 4 Mbits large. Using this EPROM normally would only utilize address pins A0 through A17. The 27C160 goes up to A19. By manually controlling A18 and A19, we can program our ROM in 4 Mbit chunks. Confused? Don’t worry, I’ll cover it in more detail later. For now, let’s just start with splitting our ROM into 4 Mbit chunks.

I’ll be using Final Fantasy IV as an example here. All you need to do is load your ROM into the utility, and check the “Split File” button. Then, on the drop down menu, pick 512kB (512 kilobytes = 4 megabits). Luckily, if the ROM has a header, the Split File option will automatically remove it for us when it splits!

snesromutility_16mbit

Since the Final Fantasy IV ROM is 16 Mbit, it will split into 4 separate files. Your folder should now contain multiple files that are 512 KB large.

ffiv_split

Now, skip ahead to Step 7b where we’ll program these chunks individually into our EPROM.

Back to top of Step 6b


Step 6c: Finalize files for programming (27C322)

The 27C322 EPROMs are 42 pins wide. The TL866 programmer only has room for 40 pins. So how are we going to deal with that? Well, the short answer is, we’re going to trick the TL866 into thinking we’re programming a different EPROM. The EPROM we’re going to tell it to program is only 4 Mbits large. Using this EPROM normally would only utilize address pins A0 through A17. The 27C322 goes up to A20. By manually controlling A18, A19, and A20, we can program our ROM in 4 Mbit chunks. Confused? Don’t worry, I’ll cover it in more detail later. For now, let’s just start with splitting our ROM into 4 Mbit chunks.

I’ll be using Final Fantasy V as an example here. All you need to do is load your ROM into the utility, and check the “Split File” button. Then, on the drop down menu, pick “512 kB”(512 kilobytes = 4 megabits). Luckily, if the ROM has a header, the Split File option will automatically remove it for us when it splits!

ff5_split

Since the Final Fantasy V ROM is 32 Mbit, it will split into 8 separate files. Your folder should now contain multiple files that are 512 KB large. I’ll explain why we’re splitting them into smaller chunks in the next section.

ff5_split_files.png

Now, skip ahead to Step 7c to learn how to program these chunks onto your chip.

Back to top of Step 6c


Step 6d: Finalize files for programming (29F033)

This step is super easy if you’re only using one 29F033 EEPROM. If when you load your game into the Utility, and it shows that it has a header, just check the “Remove Header” option and click OK. If you don’t have a header, then you’re already done! Go to Step 7d.

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

pantasiasnesromutility.png

Now you should have 3 files in your folder that are 2 Mbyte large. That means we’ll have to stitch the first two together to get a full 4 Mbyte, or 32 Mbit, file for the first TSOP EEPROM, and put the last 16 Mbit 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 4 MByte (32 Mbit) large and will go on the first EEPROM, and ToP_B, which is 2 Mbyte (16 Mbit) 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 64 Mbit large, you’ll still need two 32 Mbit 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, skip ahead to Step 7d to find out how to program your EEPROMs.

Back to top of Step 6d


Step 7a: Burn your ROM (27C801)

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.

If you get an error while programming with the MiniPro – make sure your chips are in the correct orientation, blank, and that you’ve selected a 27C801 EPROM from the Select IC list!

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

Back to top of Step 7a


Step 7b: Burn your ROM (27C160)

Burning your 16 Mbit EPROMs, as I mentioned before, requires you to trick the programmer. What we’re going to do is program the 4 Mbit chunks we just made, and manually change the A18 and A19 pins. You can do this yourself by making your own adapter, or you can buy mine.

The 27C160 is programmed through the data pins Q0 – Q15. This is a bit different than the 8 Mbit EPROMs and the 32 Mbit EEPROMs, which only use 8 data pins (Q0 – Q7). In its default state, the 160 is a 16-bit EPROM, though, we can make it output in 8-bit mode, which will be covered later. For now, we just need to know that we need to program our ROMs using all 16 bits.

As I said earlier, the TL866 doesn’t support the 160. However, it does support other, smaller 16-bit EPROMs, like the 27C4096. The 4096 is a 16-bit EPROM, however, it can only store 4 Mbit of data. Now… where have we heard 4 Mbits before? Oh right, the 4 Mbit chunks we made from our original ROM! So we’re going to trick the TL866 into thinking we’re programming the 27C4096, when in reality, we’re going to be programming our 27C160 and manually switching the top two bits, A18 and A19, between 0 and 1. This will give us 4 sections of 4 Mbit chunks, for a total of 16 Mbits. A18 and A19 represent what’s known as “banks” of data.

Using the ready made adapter (27C160 only)

If you’d like the adapter already made for you and save a bit of time and wires, then check out the store page. You’ll need to provide your own headers/sockets and two resistors. I also put a space for two DIP switches to make it nicer to switch A18 and A19, but you could always just use two wires to connect them (but, honestly, DIP switches are pretty cheap). Here’s what it looks like:

160adapter.jpg

R18 and R19 should both have values around 10 kΩ to 50 kΩ. They’re just standard pull-up resistors. If you’re interested in making your own adapter, you can check out the schematic and explanation of the operation over on my documentation page.

Using the ready made adapter (27C322/160)

Another option is the combination 27C322/160 programmer I’ve made. You can buy one on my store! Here’s what it looks like:

etsy_322programmer_minipro2

As you can use this adapter for the 27C322’s as well, make sure the switch is in the 27C160 position.

If you’re instead interested in making your own adapter, I provide the schematic and details of operation over on my documentation page.

Programming the 27C160

So now, you can get to programming. Load up the 27C4096 chip on the TL866 software, and load up the first file from your ROM (ending in _01). Change the VPP to 12.5 V, as this is dictated for programming voltage in the datasheet for the 160. Then, uncheck the “Check ID” option. Your window should look like this:

minipro160.png

Here’s a table of how data is programmed into the EPROM. If A18 or A19 is a “0”, that means tie it to GND, or if you’re using the adapter, put the switch in the “OFF” position. If it’s a “1”, that means tie it to VCC, or if you’re using the adapter, put the switch in the “ON” position. Program the 4 Mbit chunks that were made by SNES ROM Utility in sequential order in the banks.

banks.png

If you get an error while programming with the MiniPro – make sure your chips are in the correct orientation, each bank is blank, and that you’ve selected a 27C4096 EPROM from the Select IC list! Also, make sure you’ve got the switch on the adapter board on the 160 option (if you’re using the combination adapter board).

After you program your four chunks, repeat for your second EPROM if you’re making a bigger game. Then carry on to Step 8.

Back to top of Step 7b


Step 7c: Burn your ROM (27C322)

Burning your 32 Mbit EPROMs, as I mentioned before, requires you to trick the programmer. What we’re going to do is program the 4 Mbit chunks we just made, and manually change the A18, A19, and A20 pins. You can do this yourself by making your own adapter, or you can buy mine.

The 27C322 is programmed through the data pins Q0 – Q15. This is a bit different than the 8 Mbit EPROMs and the 32 Mbit EEPROMs, which only use 8 data pins (Q0 – Q7). We’ll have to add a bit of extra circuitry to use them in the SNES cartridge, but for now, we just need to know that we need to program our ROMs using all 16 bits.

As I said earlier, the TL866 doesn’t support the 322. However, it does support other, smaller 16-bit EPROMs, like the 27C4096. The 4096 is a 16-bit EPROM, however, it can only store 4 Mbit of data. Now… where have we heard 4 Mbits before? Oh right, the 4 Mbit chunks we made from our original ROM! So we’re going to trick the TL866 into thinking we’re programming the 27C4096, when in reality, we’re going to be programming our 27C322 and manually switching the top three bits – A18, A19 and A20 – between 0 and 1. This will give us 8 sections of 4 Mbit chunks, for a total of 32 Mbits. A18, A19, and A20 represent what’s known as “banks” of data.

Using the ready made adapter

If you’d like the adapter already made for you and save a bit of time and wires, then check out the store page. Here’s what it looks like:

etsy_322programmer_minipro2.jpg

As you can use this adapter for the 27C160’s as well, make sure the switch is in the 27C322 position (shown above).

If you’re instead interested in making your own adapter, I provide the schematic and details of operation over on my documentation page.

Programming the 27C322

So now, you can get to programming. Load up the 27C4096 chip on the TL866 software, and load up the first file from your ROM (ending in _01). Change the VPP to 12.5 V, as this is dictated for programming voltage in the datasheet for the 322. Then, uncheck the “Check ID” option. Your window should look like this:

minipro160.png

Here’s a table of how data is programmed into the EPROM. If A18, A19, or A20 is a “0”, that means tie it to GND, or if you’re using the adapter, put the switch in the “OFF” position. If it’s a “1”, that means tie it to VCC, or if you’re using the adapter, put the switch in the “ON” position. Program the 4 Mbit chunks that were made by SNES ROM Utility in sequential order in the banks.

322_table.png

If you get an error while programming with the MiniPro – make sure your chips are in the correct orientation, each bank is blank, and that you’ve selected a 27C4096 EPROM from the Select IC list! Also, make sure you’ve got the switch on the adapter board on the 322 option.

After you program your eight chunks, carry on to Step 8.

Back to top of Step 7c


Step 7d: Burn your ROM (29F033)

If you’re using the 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 DIP package EPROMs from above.

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.

Using the ready made adapter

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!) To buy this adapter board from me, head over to the store.

etsy_tsopadapter_minipro.jpg

If you want to learn how to make your own adapter instead, head over to my documentation page. Once you have your adapter ready, place your chips in and blank check, clear if you need to, and program your game.

If you get an error while programming with the MiniPro – make sure your chips are in the correct orientation, blank, and that you’ve selected a 29F033 EPROM from the Select IC list!

If your game is going on two separate EEPROMs because it’s larger than 32 Mbit, make sure you label the EEPROMs accordingly! Also remember to verify the code afterwards to make sure it programmed correctly – most programmers have an automatic verify function.

Back to top of Step 7d


Step 8: Double check your chips, and prepare the donor board

You should definitely check off all these boxes before you go any further. 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:

  • If using a donor board, is it compatible with my desired game?
  • Did the ROM run on an emulator correctly?
  • Did I remove the header from the ROM file?
  • Are there any broken traces on the board, specifically beneath where I will be placing the chips?
  • Is there any extra solder anywhere on the board that might be making unwanted connections?
  • Did I run ucon64 a final time to absolutely make sure the checksums are correct?
  • If I split the ROM into multiple chunks for multiple chips, did I label them correctly?
  • If I split the ROM into multiple chunks for the 160 or 322, did I program the banks in the correct order?

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. It might be useful to use the MiniPro’s verify function to double check and make sure everything programmed correctly – just load up the file you just programmed, connect your chip, and hit the “Verify” option. This will check the code you loaded in the software with the code that exists on the chip.

Now, if you’re using a custom PCB, you can skip ahead all the way to Step 9f. You’re nearly done!

As for you donor people, have you gotten all your materials 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 or three ROMs, but this is uncommon. If your game happens to have more than one, you’ll want to take all 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 ROMs will be the only large chips 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. A commenter suggested this model. These are pretty pricey and expensive to upkeep, so I don’t expect you have one of these, but your employer or school might let you borrow theirs! 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. It’s not like you’re gonna need the Mask ROM when you’re done. Yet another option is to use copper wick to pull the solder off the pins. If you’re going to go this route, you should use some flux as well, to help the solder come off of the pins.

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, it’s time to put them onto your board.

Step 9a: Install 27C801 EPROMs on the donor board

Step 9b: Install 27C160 EPROMs on the donor board

Step 9c: Install a 27C322 EPROM on the donor board

Step 9d: Install one 29F033 EEPROMs on the donor board

Step 9e: Install multiple 29F033 EEPROM on the donor board (ExHiROM games)

Step 9f: Populate your custom PCB

Back to top of Step 8


Step 9a: Install 27C801 EPROMs on the donor board

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 8 Mbit, and a 36-pin Mask ROM could (theoretically) hold up to a 64 Mbit 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 8 Mbit 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 10 to test your game out!

Wiring multiple 27C801’s on a multi-ROM 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 16 MBit, and you found a PCB that uses two EPROMs instead of one. You could probably make games bigger than 16 Mbit 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! They can be tricky, and there are a few different models out there. That decoder chip can screw things up. Now, onto Step 10 to test out your game.

Wiring multiple 27C801 on a single-ROM board

I don’t really recommend this method. If you still want to, just know 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, for now. 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 (memory address decoder) is a type of memory mapper that is used on many boards. It’s also used for managing the RAM chip. Some older boards use a combination of an LS139 and a transistor to map the memory and control the RAM, but the MAD chip combines these two functions into one proprietary chip. 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 that matters to us 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 my SNES cartridge explainer, 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. If you’re confused, feel free to ask for clarification. After all of that, you should have some kind of mess of wires that looks like this:

multi8.jpg

 

If you’re curious how the decoder works, read on. Otherwise, go ahead and skip to Step 10 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 8 Mbit 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 8 Mbit to 16 Mbit, 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 10.

Back to top of Step 9a


Step 9b: Install 27C160 EPROMs on the donor board

The 27C160 EPROMs are 16 Mbit EPROMs, but that data output can be organized as 8 bits long, or 16 bits long. If the chip is in 8-bit mode, you can store up to 2 Mbit address locations on the A pins. If it’s in 16-bit mode, you can store up to 1 Mbit address locations on the A pins. Since the SNES reads data in an 8-bit bus, we need to put the EPROM into 8-bit mode. This is done by setting the /BYTE pin to LOW logic, or connected to GND. Doing this causes pin 31, labelled as Q15A-1, to act as the new A0, and offset all the address pins by 1 location. So, essentially, A19 will become A20, A18 will become A19, and so on.

Wiring a single 27C160

Wiring only one of these babies isn’t hard at all, just a bit tedious. Just follow this handy table down below. You need to wire the pins from the 27C160 to the corresponding socket number on the SNES cartridge. So, for example, pin 1 on the 27C160 goes to hole 32 on the SNES board.

160toSNES

If your cartridge only has a 32-pin slot, then still follow the table above, but you’ll have to find an alternate location to connect pin 42 from the 27C160 to. Follow A20 from the cartridge connector to somewhere you can solder onto. LoROM boards have A20 on pin 46 of the cartridge connector. HiROM boards have A20 on pin 45.

cartconnectorhilo.png

So, find those pins, and follow the traces to an exposed solderable point on the board, and use that as your connection.

When you’re done, it’ll look something like this mess.

m27c160.jpg

Pro tip: don’t be like me, use small gauge wire! It’ll make it look nicer, fit in the cartridge easier, and also put less stress on the pins. I just got too impatient to wait for my smaller gauge wire to come in the mail. Now, skip ahead to Step 10 to see if your hard work has paid off!

Wiring two 27C160

I don’t really recommend this method. However, wiring two of these 16 Mbit chips in parallel will allow you to make most games. This is very similar to wiring up multiple 8 Mbit EPROMs. You’re going to want to double check that you programmed your EPROMs correctly (make sure your programmer is verifying the code) 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 and which goes second) and the 74HCT139 decoder.

The first thing you’ll need to do is bend up the /OE pins on the two EPROMs. That’s pin 13. Now, solder all the pins on the extras together in parallel (except pin 13) – all pin 1’s soldered together, all pin 2’s, etc. This can be done easily by physically stacking the chips (with pin 13 bent up) and soldering like so. The picture below is from the section above. It’s showing two 8 Mbit EPROMs soldered together, so yours is gonna look different. But the principle is the same. You’ll just have 41 pins to solder together.

20170910_183731.jpg

Once you’ve paralleled your EPROMs, solder wires from the board to pins of the EPROM on the board, by following this table below. But keep pin 13 unwired at this time.

160toSNES_multi.png

As usual, I recommend small gauge wire to make these connections. You’re gonna have a lot of wire to handle. You’ll also probably need to clip the bottoms of the pins so that the cartridge can close. If you only have 32 pins on your board, wire everything according to the table normally, and keep the A19 pin on the 27C160 disconnected for now.

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

wiring160.png

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. 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 (memory address decoder) is a type of memory mapper that is used on many boards. It’s also used for managing the RAM chip. Some older boards use a combination of an LS139 and a transistor to map the memory and control the RAM, but the MAD chip combines these two functions into one proprietary chip. 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 (A19 from the 27C160), A21 (pin 2 from the 74HCT139) and VCC (pin 16 from the 74HCT139). VCC is easy enough, just solder it onto pin 32 of the EPROM socket on the board (pin 34 in the table above, labelled “VCC”), or pin 22 on the 27C160. 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 pin will be on different parts of the cartridge connector! The only real difference that matters to us 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 my SNES cartridge explainer, 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. If you’re confused, feel free to ask for clarification. Otherwise, skip ahead to Step 10 to test out your board!

Back to top of Step 9b


Step 9c: Install a 27C322 EPROM on the donor board

If you look at the pinout of the 27C322, you’ll notice the data pins go from Q0 to Q15. As I mentioned earlier, that’s because this is a 16-bit EPROM, where each word is 16 bits instead of the 8 bits the SNES uses. When we programmed our 322 using our ROM that was meant for reading in 8 bits, we smashed two 8-bit words into one 16-bit word. So the first address of the 322 contains the first TWO addresses the SNES will use.

Compare the left window here, which is an 8-bit EPROM, with the 16-bit EPROM on the right. Again, these numbers are in hexadecimal, or four binary bits. So you’ll see on the 8-bit bus two-digit hex numbers, while on the 16-bit bus you’ll see four-digit hex numbers.

8bitvs16bit.png

Let’s use the first two addresses, which are 0x78 and 0x18, as an example. If on a 16-bit EPROM we read only D0 to D7 (0x78), we’re completely missing all the data on D8 to D15 (0x18) – with each increasing address request from the SNES, we’re skipping every other 8 bits segment. In effect, on a 16-bit EPROM, A0 from the SNES should point to the bottom half (A0 = 0) or top half (A0 = 1) of each word. And therefore, A1 from the SNES is acting like the 27C322’s A0 pin. So all we have to do is shift the address pins from the SNES one position – A1 on the SNES is connected to A0 on the 322, A2 on the SNES is connected to A1 on the 322, etc. Then, we use the A0 pin from the SNES to control which half of the 16-bit word we read from. We can do this using a multiplexer.

A multiplexer is a device that is essentially a digitally controlled selector switch. In our case, we need eight separate switches to change between two different data lines all at the same time. D0 on the SNES should either read D0 or D8 from the 322 EPROM, D1 on the SNES should either read D1 or D9 from the 322 EPROM, and so on. When A0 from the SNES is 0, the multiplexer will route D0 to D7 from the 322 to the SNES, and when A0 from the SNES is 1, the multiplexer will route D8 to D15 from the 322 to the SNES. Make sense?

mux

The 74HCT257 is a quad-package two-line multiplexer. If we use two of them in parallel, we can control all eight data lines. So, you’ll want to follow this table to connect your cartridge, multiplexers and EPROM:

322_table_tosnes.png

If your cartridge only has a 32-pin slot, then still follow the table above, but you’ll have to find alternate connections for A20 (A19, or pin 42 on the 27C322) and A21 (A20, or pin 32 on the 27C322). Follow A20 and A21 from the cartridge connector to somewhere you can solder onto. LoROM boards have A20 on pin 46, and A21 on pin 47 of the cartridge connector. HiROM boards have A20 on pin 45, and A21 on pin 46 of the cartridge connector.

cartconnectorhilo.png

So, find those pins, and follow the traces to an exposed solderable point on the board, and use that as your connection.

Here’s a schematic of how you’ll want to connect the multiplexers, if it’s easier for you to follow. I won’t include a schematic of where the EPROM pins go, since it’s a lot easier to just follow the left side of the table above.

322_mux_schem.png

When I went to wire this, I only had surface mount multiplexers lying around, but you can use through-hole for easier soldering. Instead of soldering wires to the little surface mount pins, I used a 27C322-to-SNES adapter, which I offer on my store page.

20190903_234437-1.jpg

Now, head to Step 10 and we’ll finish up the game.

Back to top of Step 9c


Step 9d: Install one 29F033 EEPROM on the donor board

If you are using the one 29F033 chip, your life is comparatively easier at this step. If you’re going to be using two 29F033’s, you need to skip ahead to Step 9e. If not, just plop your little adapter board into the place where the other ROM was. Make 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 my SNES cartridge explainer, 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 email me. Now, go ahead and skip to Step 10.

Back to top of Step 9d


Step 9e: Install multiple 29F033 EEPROM on the donor board (ExHiROM games)

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 32 Mbits, 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 32 Mbit 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 32 MBit 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 8 Mbit 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! Skip over to Step 10!

Back to top of Step 9e


Step 9f: Populate your custom PCB

Alternatively, you can view the quick guide if that’s your thing.

Depending on the board you have, you’ll need to do a few different things to get it up and running. Some boards might even ship with the necessary parts you’ll need to make your game. I’ll go over some of the common requirements for these boards, starting with the CIC chip.

As I mentioned earlier, the CIC chip is basically the region-locking chip. Every cartridge has one. It interfaces with a CIC chip on the SNES console to check and make sure the region is correct. So any game we make is gonna need one itself. If you’ve got an extra one from an old game lying around, you can always use that, but luckily there’s a simple way to make one from a microcontroller. All we have to do is program a PIC12F629 with the “SuperCIC” code from the SD2SNES blog (based on the work from Segher at HackMii). Luckily, the MiniPro programmer we have has the capability to program the PIC.

How to program the SuperCIC

Once you’ve got your PIC and downloaded the code from SD2SNES, extract the folder and find the file named “supercic-key.hex” and MAKE SURE it ends with -key, NOT -lock. Now, open the TL866 software, and go to Select IC(S) to search for the 12F629. It’ll probably show up as PIC12F629, so choose that one. Then, load up supercic-key.hex, and program away!

20180624_153654-e1532906003838.jpg

supercic.png

You shouldn’t run into too many problems, it’s a pretty simple process.

Using My Custom PCB (SNES Mask ROM)

A lot of the board is self explanatory. Here’s what the front of the board looks like:

20191023_212307

So, easy things first. The CIC chip we just programmed above goes on the bottom left of the board. C1 is for the electrolytic capacitor – these were 22 uF on the original SNES boards, so something around there should be sufficient (make sure it’s rated for at least ~10 V or higher). C2 and C4 should be used in all situations, I use something around 0.1 uF – these are to filter out any electrical noise that could corrupt data.

If your game uses any kind of SRAM, you’ll need to populate the rest of the board. The SRAM chip goes up on the top right of the board. I included sockets for the common “slim” package and the “wide” package SRAM chips. The board supports the 64 Kbit SRAM chips (6264 series). If you’re using the slim packages, make sure you use the bottom and middle rows of through holes. Also, be sure to populate C3 similar to C2 and C4. You’ll need a ‘139 decoder chip as well (like the 74HCT139 – I have the surface mount package on the board, which is fairly easy to solder). Finally, the battery should be installed and R1, R2, D1, and D2 as well. I use ~220 Ω for R1 and R2, and small 1N914 diodes for D1 and D2 – make sure to get the polarity correct!

Now let’s take a look at the back of the board.

20191023_212326

The most important part of this board are the 3-way jumper pads on the bottom right. You need to add a solder bridge to every one (from the middle pad to either the left or right) based on if your game is a HiROM or LoROM bank type. They’re pretty close together so it shouldn’t be hard to bridge them with solder, but if you’re having trouble, you could use a bit of wire too. If your game is LoROM with no SRAM, you additionally need to bridge all three pads together on the bottom right set of pads.

If your game uses SRAM, solder the jumpers in the top middle based on how large the SRAM is. For example, if your game uses 64K SRAM, bridge the top two right pads, and the bottom two left pads. Don’t forget to bridge the pads on the left as well if you’re using SRAM.

The three pads on the bottom left of the board need to be soldered together when you put the game in. The reason I added these pads here is if you desolder the two pads, and you leave the header pins on a 29F033 adapter board sticking out long enough from the back of the socket, you can reprogram the EEPROMs using the TL866 adapter board. Neat!

Finally, the EPROM or EEPROM of your choice should be assembled in the Mask ROM socket. Follow any rewiring (like for the 27C801 pin swap) in the previous steps. Eventually, I will have updated boards that accommodate these pin changes.

Using My Custom PCB (27C322)

This board is very similar to the SNES Mask ROM board. Here’s the front:

20191023_212158

So, easy things first. The CIC chip we just programmed above goes on the bottom left of the board. C1 is for the electrolytic capacitor – these were 22 uF on the original SNES boards, so something around there should be sufficient (make sure it’s rated for at least ~10 V or higher). C2 and C4 should be used in all situations, I use something around 0.1 uF – these are to filter out any electrical noise that could corrupt data.

If your game uses any kind of SRAM, you’ll need to populate the rest of the board. The SRAM chip goes up on the top right of the board. I included sockets for the common “slim” package and the “wide” package SRAM chips. The board supports 64 Kbit SRAM chips (6264 series). If you’re using the slim packages, make sure you use the bottom and middle rows of through holes. Also, be sure to populate C3 similar to C2 and C4. You’ll need a ‘139 decoder chip as well (like the 74HCT139 – I have the surface mount package on the board, which is fairly easy to solder). Finally, the battery should be installed and R1, R2, D1, and D2 as well. I use ~220 ohms for R1 and R2, and small 1N914 diodes for D1 and D2 – make sure to get the polarity correct!

Now let’s take a look at the back of the board.

20191023_212116

The back is a bit busy, but it’s nothing terribly complicated. The first thing you should populate are the 257 multiplexers needed with the 27C322 EPROM. I generally use the 74HCT257 multiplexers, but any 257-type chip will work fine. Please note these are surface mount!

The most important part of this board are the 3-way jumper pads on the bottom right. You need to add a solder bridge to every one (from the middle pad to either the left or right) based on if your game is a HiROM or LoROM bank type. They’re pretty close together so it shouldn’t be hard to bridge them with solder, but if you’re having trouble, you could use a bit of wire too. If your game is LoROM with no SRAM, you additionally need to bridge all three pads together on the bottom right set of pads.

If your game uses SRAM, solder the jumpers in the top middle based on how large the SRAM is. For example, if your game uses 64K SRAM, bridge the top two right pads, and the bottom two left pads. Don’t forget to bridge the pads on the left as well if you’re using SRAM.

Now, just put your 27C322 EPROM into the socket, and you’re good to go!

Back to top of Step 9f


Step 10: Finish your game

When you put your board back in the cartridge, you might have 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.

Troubleshooting tips

Just as a suggestion, if I were you, I’d invest in making a dedicated prototyping board with proper sockets for things like your EPROM and maybe your CIC chip (if you’re making a SuperCIC). I have a few special boards set aside with these sockets so I can swap these chips in and out to test games before I solder them directly to the board. It’s pretty easy to make some test boards using my custom PCBs, so check them out if that sounds like something you’d like to try.

If you’re using a donor cartridge, before you try anything, check to see if your game is LoROM bank type, uses SRAM, and has the 74LS139 decoder. If this applies to you, try taking the decoder out and rewiring as such:

ls139rewire_lorom

If this is the case for you, except your board is HiROM, let me know and I’ll look at the wiring. The only boards I know that would fit this description for HiROM games are expensive ones that you probably aren’t using as donors, but I might have missed one.

If this doesn’t apply to you, here’s some tips you should follow before you give up. This is the order I would try them in – it’s listed from shortest to longest amount of time to check. Please do these things before you message me or leave a comment, cause I’m gonna ask you if you did before anything else!!

  • Check for any cold solder joints. They’ll 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

  • Also, make sure you didn’t miss any pins or wires. You’ll have a lot to solder, after all. It only takes a single pin to be disconnected to screw up the whole thing.
  • 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!
  • Check to make sure all your chips are in the correct orientation – especially for custom PCBs, where you have to provide many chips yourself.
  • 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.
  • If you’re using a donor, did you remember to test the original game before you took the EPROM out? Maybe something else is damaged on the board, and it’s not your fault. Try replacing the capacitors (smaller ones are 0.1 uF, the large electrolytic is 22 uF). 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.
  • Finally, even if you THINK everything is connected correctly, use a multimeter and check the continuity of each pin on your EPROM or other chips to its destination. This means testing the cartridge connector in some cases. Follow the pin tables and/or schematics for the type of memory chip you chose up in Step 9. This is arduous – but any time I was stumped, I usually found that just one of the pins I thought was connected wasn’t in reality. Refer to this table below for the pinout of the cartridge – you only really have to test the address pins (A0 – A23), data pins (D0 – D7), GND and Vcc pins. Everything else should have been left alone.

 

cartconnector.png

If all else fails, you might have to desolder your chip, blank it, reprogram, and try again. 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 contact me.

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. I’ve also seen that soaking the cartridge in water for an hour or two will make the paper soft, and you can rub it off with your fingers.

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). It might be cheaper to just buy them individually if you’re not planning on making a whole lot of 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. I found it on DeviantArt.

snes_label_template__usa__by_michaelmannucci-d7smne9

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.

You can use full page sticker sheets and cover them with lamination paper. 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, though. A suggestion from mrTentacle is to print the label on vinyl sticker sheets, then spray them with a fixative. The sticker sheets he uses are similar to these and the finish material is similar to this.

Back to top of Step 10

Conclusion

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

Remember that selling reproductions of released games is technically illegal! And don’t go to conventions trying to sell them, passing them off as legitimate! 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, if I have any mistakes, or you need help figuring out your board, feel free to email me, and I will do my best to clarify or fix the problem! I still plan on continuously updating this tutorial but let me know what you wanna see most, and I’ll try to focus on that if there’s enough of a demand!

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! Also, special thanks to Michael at AmpereSandRepros for his board donations, and Martin Samuelsson (mrTentacle) for his board and chip donations and for helping myself and others in the comments section.

And if you’d like to purchase any of my materials, head over to the store page and I’ll be happy to hook you up!

Back to top

301 thoughts on “How to Make a SNES Reproduction Cartridge

      • Ah, you beat me to it!
        Well done, I could have them in my Tindie store, would be a bit cheaper. Could save you some time as well, let me know if that’s something that’s interesting to you 🙂

        There is a arduino mega project already, can be a good starting point

        Like

        • Hey I’ve seen your Tindie store, it’s awesome! I’m using an Arduino Mega myself. I’ve got some preliminary work on it, but it’s still on the backburner, but thanks for the offer! Right now I’m focusing on getting the 27C160 programming adapter, I ordered some boards so they should be here soon.

          Like

  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

  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

  9. Can verify that yet another BuyICNow chip transplant was successful. Swapped a FF5 programmed to the TSOP III adapter with a cheapo Madden 95.

    Like

  10. I tried to convert a Final Fantasy VI cart today, but this one was indeed a pain to remove with the iron due to how oddly shaped the chip’s legs were. It was a BJ3M, not too sure what revision but something about this DIP36 chip was a pain to desolder even with a coating of flux. For a bit I thought about clipping the legs, but I didn’t want to cause any damage to the board.

    Like

  11. Ah balls, more progress. FFIV swapbinned well. Axelay did not will have to look into rewiring. Maybe not DQV, because I did break some traces but rewired them. Live and learn.

    Like

  12. Hi great tutorial, i have a question, if i want to make a repro that uses 16 sram like clock tower, am i limitated to use donors that have that size of SRAM,or could i use one that have bigger size, sorry for my bad english, greetings

    Like

  13. Hi! This is a great tutorial. Thanks! I’ve managed to built a Starfox repro.I wanted to use the NTSC rom on a PAL console (modded with a 50/60Hz switch) without any other mods, so I used a PAL Winter Gold donor cart and I patched the rom to remove the region lock.

    I’ve got a couple of questions though and I like to ask for help.

    I used the SNES ROM utility to swapbin but the result looked (in a hex editor) the same as the original. The game works though by swapping only pins 31 and 24. Should I expect problems later in the game?

    I would also like to make a Yoshi’s Island repro using the NTSC rom – again on an PAL donor cart. I can’t get it to work though – I get nothing, just a black screen. I’m using an 27C160, a TL866 with an adapter, and I wire it using this diagram http://i.imgur.com/chB867e.png. Any suggestions? do I need to use something (like a capacitor) between the OE /OE?

    Like

  14. If you ever use it please consider adding it to the the tutorial.
    I’m using the same adapter as the one in that tutorial but I’m splitting the rom with the SNES ROM utility. I’ll try the HxD Hex Editor as well. Splitting is necessary because the adapter is manual – you program each 512K bank separately using the switches on the adapter to select each bank.
    They are discussing it in this post as well https://forums.nesdev.com/viewtopic.php?f=28&t=13001

    Like

    • Definitely will, I see they’re a bit cheaper than the 801’s on eBay, so that might be something I look into in the future.

      The things I would check first are that you’re programming them in the correct order. I know that sounds like a dumb suggestion, but I can’t tell you how many times while writing this tutorial I screwed it up and had to start over, even though I thought I was paying attention (especially doing the Tales of Phantasia repro…). Maybe try stitching all the 512K files back together and running it in an emulator to see if it’s working. Also make sure you do a checksum repair, if needed, before you split the files.

      The second thing I would check is that all your solder connections are good, and that nothing is shorting, since I assume you’re attaching the chip to the board with external wires.

      Let me know if any of this works!

      Like

      • I take no offense with any suggestion because most of the times I get something to work which has been giving me problems it’s because of the stupidest reason imaginable.
        I split them using HxD and then compared the files with the ones the SNES ROM utility produced – they are the same.
        I’m programming in the order that the utilities produce them – file 1 in the first bank and so on.
        I’m not swapbinning them. Should I?
        Yes I’m using wires – very short ones. I’ve checked them a few times for shorts. I wanted to verify with someone who’s used the wiring before that it is correct.
        If I get it to work I’ll let you know. Thanks!

        Like

        • No, you shouldn’t swapbin them, I just wanted to make sure you weren’t using that option in SNES ROM Utility. I wish that was the problem though!

          I ordered some 160s on eBay, so I will try them out in the future at some point, but let me know how it goes. To me, it seems there isn’t anything immediately wrong with you process. Maybe check continuity with the actual cart connectors too, maybe a pad is damaged?

          Like

  15. First of all: Great tutorial!! It’s helped me a lot to make some nice repro games.

    Now, I want to some games with 24Mb or more. I’ve seen the part with “wiring two 27C801 on one eprom board”, but how about wiring 3 or more 27C801 on a 2 eprom board? How would I have to do?

    With the tools I have, I can only use the 27C801 eproms, not those TSOP 32Mb stuff =(

    Like

    • Hey thanks! Glad it could be of service!

      Sorry for the delayed response – I’ve had a busy week (I’m actually answering this at work shhh don’t tell anyone)

      I can try to look into this for you, but I’ve never used one of the two EPROM games before so I won’t be able to test it out myself. Is there a reason you’re limited to these boards? Do you have them already?

      Like

      • haha, no problem, mate 🙂 We all have our private life as well, so I understand 😉

        No, there is no reason I am “limited” to those. The point is, I have a bunch of donor carts here. 2 of them have 3 eproms, so I could place a 24Mb game with no problem (3 X 27c801), some of them have room for 2 eproms. I could place a 16Mb game, however I’d like to give it a try and put 3 Eproms using the explanation u put on the multiple eprom part. I am just not sure how I’d have to wire everything =/

        p.s.: thanks a lot for spending your time to answer me 🙂 I really appreciate it.

        Like

        • No problem! Completely understand why you would want to use these boards, it definitely saves some wire cutting and soldering. What’s the board numbers you have? This might be a good opportunity to add another section to the tutorial (ugh, it’s getting even longer!)

          Unfortunately this weekend is pretty busy for me so I can’t guarantee when I’ll get the chance to check this out in detail.

          Like

      • hello again 🙂

        The board games I have are:

        – SHVC-2A3M-20 (Kirby Bowl Kirby’s Dream Course – NTSC-J ) -> room for 2 Eproms
        – SHVC-3J3M-01 (Final Fantasy VI – NTSC-J) -> room for 3 Eproms
        – SHVC-2A3M-10 (Dragon Quest I & II – NTSC-J) -> room for 2 Eproms.

        among others.

        So I was thinking, if I want to burn a 24Mb game on that Kirby donor cart, do u think I could place 2 eproms on the P0 and P1 slots and wire the 3rd Eprom? The 3rd eprom would be, obviously, be “hanging”, with wires etc.

        The biggest doubt I have is whether I should wire from P0 or P1.

        At this point I am not even sure I am being clear hahah

        Like

        • Hey Denis,

          Thanks for the info. I can take some time this week to see if I can find any schematics online for these kinds of boards and go through the wiring, but I can’t guarantee anything quickly! I’ve been meaning to pick up some games with these kinds of boards too in order to fill out the tutorial a bit more, so maybe if I can get my hands on one I can take a look personally.

          You should be able to use 3 EPROMs on the 2 EPROM board like you said, but you’ll probably have to rewire the MAD-1 chip in some way, or use another decoder. I think there might be some limitations, but I’ll have to do some more research.

          I did find this one obscure forum post about it and this guy seems to have figured it out (though it is in Spanish): https://www.elotrolado.net/hilo_reproducciones-de-snes_1633607_s8550
          It looks like he used an external 139 decoder. I can check it out a bit more this week when I get some time if this link isn’t enough information!

          Like

      • thank you very much once again for replying me.

        I took a look at this Spanish forum and I think I’ll take a risk and try to do it and see how it goes. I may have time to try it out in the weekend. I will inform you about the outcome.

        but if you will have any extra info, that’d be appreciated as well (even more 🙂 )

        Like

        • You could use it for a 16Mbit game but there’d be some rewiring involved. The first EPROM is 16Mbit itself, so if you put an 8Mbit one on there, you’d need to modify the decoding from the MAD-1. Otherwise the second EPROM wouldn’t get accessed. Let me know if this is something you’d like to know more about!

          Like

      • Aha! I smelled something there. It could not be that easy hahaha
        but thanks for informing me.

        That’s definitely something I’d love to know more about. How could I then modify the decoding of the MAD-1?
        And how do you know all this?? Man, u r blessed!!

        Thanks for helping us all!! Really appreciate it.

        Like

        • Haha thanks 😛 I’ve just spent a lot of time reading about it. My background in Electronics really helps out, because of that I know the underlying processes that the games work on. There are a few nuances I still don’t fully understand, though, and a lot of that is resolved through aggressive googling and staring at schematics hahah

          But I’m pretty passionate about it so I don’t mind helping much, especially if I learn something too and can add it in to the tutorial, like, 6 months later.

          I’ll spend some more time on the MAD-1 rewiring soon, I’ll let you know.

          Like

      • Ah, ok, now I get it 🙂 very nice of you.
        I don’t want to push, but I don’t where to run to in order to get my doubts cleared.

        Yesterday I made a repro of Secret of Evermore (HiRom – 24Mb). I used a board exactly like this -> https://snescentral.com/0/0/4/0043/SHVC-F6-0-pcb-front-9409.jpg

        I checked the rom on an emulator before and it worked fine. I did everything I had to on those three 27c801 eproms. I checked the soldering etc., however when I tested on my console, the game started with a bunch of big pixels on the screen. Sound works fine, but after a certain screen, it gets frozen. It doesn’t go through.

        Do you think the board can be faulty?

        Like

        • Hm… these are the hardest problems to figure out!

          Do you know if the cartridge worked before you put the new EPROMs on? It might be dirty, or there might be a poor connection somewhere. Check your solder joints. To me, it sounds like a board problem, because the game does boot up, but it could be a software issue as well (I just helped someone with a similar problem, but he said expanding the ROM files to fill up his EPROM fixed it – this isn’t something you would run into, since you’re using all 8Mbit EPROMs).

          Are you sure you put the EPROMs in the correct order? P0 should be A, P1 should be B, P2 should be C.

          Did the checksum come out OK before you split the file?

          The rewiring should be swapping pins 24 and 31 with wires, if SwapBin worked.

          Try this out: open command prompt, and set the directory (using the “cd” command) to the folder where your A, B, and C EPROM files are located. Type this:

          copy /B “[name]A.sfc” + “[name]B.sfc” + “[name]C.sfc” Evermore_test.sfc

          This should stitch your A, B, and C pieces together into a new ROM called “Evermore_test”. Try running that in an emulator and see if it works. That’s a good test to run.

          Hopefully one of these shows you where the problem is!

          Like

        • Hey Denis,

          So I thought about this a bit more and I think there might be a solution, though you will still need an external 139 decoder. I’m not completely positive this will work, either.

          You’ll need to do all the steps for programming, but putting the game into the board will be a bit different. I’m going to assume SwapBin worked.

          Bend up pins 24 and 31. Put the EPROMs into the sockets in order, making sure pins 1, 2, 35, and 36 of the 36-pin sockets are empty (like the top EPROM is installed). Solder the wire from hole 24 to pin 31 on both EPROMs, as you normally would. Now, follow the wiring in this picture: https://thepoorstudenthobbyist.files.wordpress.com/2019/01/wiring5.png?w=700

          You’ll only be wiring the A and B EPROMs since you only have two.

          If you try this, please let me know if it works! If it doesn’t work, we can try looking at it closer, but I’m hoping you won’t have to redo it!

          Like

      • Thanks a lot for your feedback, thepoorstudenthobbyist! I really appreciate it.
        I do have the external decoder (got 5 of them recently. Yay! )
        I’ve got some questions, though. When you say that that pins 1, 2, 35 and 36 sockets should be empty, you mean they should have holes? (no solder at all?)
        And regarding the pic https://thepoorstudenthobbyist.files.wordpress.com/2019/01/wiring5.png?w=700
        it shows I should wire A20 and A21 to the decoder. What are those “A”? Are those the 1 and 2 holes on a 36 pin PCB?
        Also, there’s a “VCC” (on hole 36?) wired to “VCC” on the decoder? Where should I write it?
        Last, but not least, there’s the “GND” wired from pin 16 (Eprom A) to GND somewhere?
        I don’t follow 😦 😦 😦
        I’ll be out of town for a week. Once I am back I will try following your instructions.
        Thanks once again 🙂

        Like

      • Hi again, thepoorstudenthobbyist!

        Man, you’re a god among men! I’ve followed you instructions and it works!!! I’m so damn happy!! I cannot even describe the feeling! haha

        And regarding my reproduction of Secret of Evermore, I’ve tried the game in different consoles and in some of them the game didn’t run smoothly either, but in one them it did. I’ve no idea why, really no idea.

        Anyway, thanks A LOT for your help and time for answering us. U r really helpful!

        Have a great weekend 🙂

        Like

        • Glad it worked out! And thanks for verifying that it worked, that’ll help when I update the tutorial (hopefully soon!)

          Your Secret of Evermore cartridge sounds haunted haha that’s really odd. I’ve never encountered that. I don’t want to say try making a brand new game with a different PCB, but the only thing I can think that would cause it to work on some consoles but not others is that the contacts are worn out or there’s a bad solder joint somewhere? Those problems are the hardest to figure out.

          Very glad I could help you out! Let me know if you need any more help in the future!

          Like

      • yeah, man, it does seem to be haunted hahah

        I’ve got another question for u (what a surprise, I know =P ). I was thinking…do I need a NTSC donor to make a NTSC game or it doesn’t matter? Some other day I burned a PAL game in a NTSC PCB and it didn’t work. I am sure everything was ok, so it got me wondering….

        Do u know if there’s such thing like “converting” a NTSC rom to a PAL rom?

        and thanks once more, bro!! 🙂

        Like

        • Well, the SNES was region locked. That’s what the CIC chip on the PCB is for. You can bypass this by opening up your SNES and modifying it, though I’ve never done this before. I think ucon64 also has an option for removing the region check on the ROMs. But even if you get this to work, some games still won’t run totally correctly as I understand it. In PAL regions, the power from the outlet runs at 50Hz, whereas NTSC runs at 60Hz. Due to this difference in frequency, some PAL games were optimized to display the frames differently to make up for the slower refresh rate. Playing these games on an NTSC machine might make your game skip like every 6th frame, or have weird graphical glitches. But this isn’t a universal rule. That’s why you generally just try to stick to games made in your region. As far as I know, there are only a handful of PAL-only games that are worth playing, as NTSC got most of the game library.

          But, if you replace the region lockout chip, you should be able to use a PAL PCB and an NTSC ROM to make an NTSC game (or vice-versa). I’m not positive, so don’t quote me, but I don’t know why that wouldn’t work.

          Like

      • Got it.

        Thank you very much for the explanation 🙂

        From time to time I’ll be coming here to check some potential updates 🙂

        Like

      • hello again, mate 🙂

        Some months ago I bought a bunch of 27c322 eproms by mistake (I saw they have room for 32Mb). Today I saw them here laying around and I was wondering if there is a way to program them using the MiniPro TL866 Programmer for Snes Repro. I know I will need some adapter (I’ve seen a bunch of them on ebay) coz they have way more pins than the TL866 programmer “allows”. U think there’s a way to make a SNES repro with them?

        Thanks in advance. 🙂

        Like

        • There is! I have some laying around myself. I need to get around to making an adapter for them. Hopefully by May… I need to design an adapter board and order it. The design shouldn’t take long, but the turnaround on the board fab is a few weeks. Right now I’m focusing on 27C160 chips (I’m actually in the middle of writing that section at this very moment!)

          If you’re itching to use your 322’s right away, there are a few resources online you can refer to, but unless you want a lot of painstaking wire routing to program the chip, you’ll need an adapter board. Let me know, and I’ll direct you to the right places! If you don’t mind waiting, though, I should have a section for them sometime soon.

          Like

      • Ok, got it.

        So if I want to use these 322 on my mini programmer I’d need an adapter as well as a “fitting” board/adapter to the PCB donor, is that right?

        If you could please redirect me to some website where I could check it out, that’d be great. I’d be very grateful.

        I’ve found some stuff, but not really useful tbh.

        Plus, I am looking forward to checking your new entry regarding the use of 27c160 =D

        Thanks in advance =D

        Like

      • Thank you, both of you.

        So, would I need both of them if want to burn the eprom and attach to my pcb board? Coz I understand that I need an adapter for my mini programmer and another one for the PCB, no?

        How about rewiring or burning the eprom with the mini programmer? I have seen something about “burning it in ‘instalments'”. Sounds tricky.

        p.s.: I agree with the iluminerdi. I could you pay you a glass or two of beer =D

        Like

    • Correct – you will need 1 bankswitching adapter and how ever many individual adapter boards for mounting the chips to donor carts as games you want to make (+ the decoder chips for the adapter boards – I strongly suggest just ordering them from MrTentacle/Tindie unless you feel like sourcing your own, but his prices are very reasonable).

      Here’s a breakdown of how all this works:

      First you need the bankswitcher to program your chips using the TL866 minipro. Basically you split the ROM into 4MBit (512kbyte) chunks (so for a 32M rom you’d have a total of 8 “chunks” to program), then tell the Minipro software that you’re programming a 4MBit (aka a 27C4096) E/EPROM. Make sure you turn off the “Check ID” function in the Minipro software it will see that you aren’t actually programming a 27C4096 E/EPROM and things will go wrong/fail.

      Then you set the DIP switches on the adapter to select the appropriate bank. There’s a picture on the Ebay listing that shows which banks correspond to which DIP settings. So you start with bank 1 and program the first ROM chunk. Then switch the DIP to bank 2, program the next 4MB, and so on. You can also program a 16MB chip the same way, you just have to do less bank switching since you only have 4 chunks to program instead of 8.

      Note: if you’re using EEPROMs (not UV-erased EPROMs) I don’t know if you’re supposed to use the erase function before programming each bank since I’m not sure if erasing/blanking a particular bank is on a per bank or if the erase function of an EEPROM will blank the whole chip. I use EPROMs so blanking is not even relevant since blanking one of my chips means tossing it into a UV blanker. You should be safe to use the “blank check” function though since that just checks that the bank is blank before you program it.

      Then, once your chip is programmed, you remove the E/EPROM from your TL866+Bankswitcher and then you solder the chip to one of MrTentacle’s breakout boards to actually mount the chip onto a standard 36-pin capable donor cart (or an aftermarket board, but this gets complicated since most aftermarket boards that support 16Mbit or 32Mbit roms are already 42pin – MrTentacle’s aftermarket board is the only aftermarket board I know of that’s 36-pin).

      Either way, make sure your donor/board has enough SRAM to accomodate your game (if necessary) and that it corresponds to either HiROM/LoROM, depending on your new game. Or you can always rewire the donor to be HiRom/LoRom if you really want to give yourself a headache, but IMO that’s too much effort when suitable donor boards are fairly easy to find in the appropriate HiRom/LoRom format.

      Also, a word of advice, IF you intend to program a decent number of Repros and IF you want to save yourself some potential headaches, I suggest you do the following:

      1) Order 5 “48pin (2.54mm pitch) ZIF sockets” on Ebay. You can get 5 of them for like $10USD
      2) acquire a HiROM and LoROM donor board.
      3) Run WIRES about 4-5in long from the Mask ROM 36 pins on each donor board to the corresponding pins of a ZIF socket.
      4) Put a ZIF socket on one of MrTentacle’s adapter boards and then put standard pins in the 36-pin portion of the adapter board.
      5) Plug programmed EPROM into ZIF socket of adapter board, then plug adapter board into ZIF socket of donor cart.

      This will create for you a sort of ad-hoc breakout board and adapter set for TESTING your roms once you program them (or if you don’t have a ton of donor carts this will also let you easily swap EEProms, just remember that you can only maintain 1 save game at a time…).

      The only downside is that you’ll need to create at least 2 donor carts (HiRom and LoRom) with the ZIF sockets, and 2 breakout boards with ZIF sockets. Hence why I suggest ordering a 5 pack of ZIF sockets…

      This is a GODSEND if you intend to make a decent amount of repros. You never know when a chip will SAY it programmed correctly but then fails to work correctly in your SNES. Unfortunately this combination is necessary since the SNES doesn’t have enough clearance to mount a ZIF socket directly to a donor cart. MrTentacle was selling a cart extender that would make this slightly easier but they’re out of stock in his shop and have been for 2 months…

      Take it from me – the guy who thought his copy of Ys 5 had programmed correctly only to slap it into my Super NT and discover that despite making it to the title screen fine, after selecting “New Game” that the graphics corrupted and that something had clearly gone wrong during programming, even though I used the “Verify” function on the Minipro software. I then had to desolder the chip from the board and it was a huge pain in the butt even though I happen to have a hot air rework station

      Alternatively you can remove the case from your SNES / Super NT / Other System which will let you skip the “run wires” portion of the above instructions, but I personally am not a huge fan of operating my console without a case.

      Hope this helps, sorry for writing a novel.

      thepoorstudenthobbyist: feel free to use any of the above text in your guide! I’m happy to contribute these instructions if you feel your readers would find this information useful!

      Like

      • Thanks for the mention! (I run that tindie store)

        About the extenders, I actually forgot to order more breakout boards the last time I ordered pcbs..
        Im working on finishing up a new board, something that you probably like, before I make another order 🙂

        I should make that opensource now that Im thinking about it..
        Does oshpark do boards with 1.2mm thickness yet? Im open to other suggestions on how to make it public

        Liked by 1 person

        • AFAIK, OSHPark offers 0.8 and 1.6 mm thickness. A reader recently emailed me about another board fab service called EasyEDA, but I have yet to try it out.

          Recently I’ve been looking into how the MAD-1 chip and the SRAM works together, and I’m pretty sure I have a good handle on it now. So I plan on adding a whole new explanation article, along with making my own SNES boards. And I do plan on having all the schematics open source, since it’s tricky to find that information online right now!

          But…. that pesky thing called “time”…. need to get more of it! Hopefully this’ll be done by sometime in the summer.

          Like

      • Hey thanks for stealing my thunder Illuminerdi!

        Kidding. I was about to type this out at lunch time, but I’m glad I put it off till later cause I’d just be repeating mostly what you said! This section will be added in the future after I make my own 322 adapter. But you writing it out like this will definitely speed up the process haha thanks!

        (Also, never apologize for writing a novel, that’s my main form of written communication hahaha)

        Like

      • Open source boards would be awesome , though I hope they wouldn’t like, undercut someone like Martin S’s Tindie store.

        Though the other problem I have with bare boards is they need to be populated with caps, resistors, etc. I love Martin’s adapter boards because I can just use a donor board…I have a LOT of donor boards sitting around…

        Like

        • I’m not looking to undercut anyone! I meant more that the data itself will be open source. And if I do end up making my own SNES boards, which I really plan on doing at some point, then I’ll be providing the files for those as well. It’ll still probably be cheaper to get the boards from someone else, like Martin or myself, instead of taking the boards and making your own, only because buying only 1 board would cost a decent chunk of change, whereas a supplier can buy them in bulk and give you some savings in the process.

          I’m also planning on adding a section that references other sellers who helped me out or sent me sample boards. So that should help offset the trouble 🙂

          Like

      • Thanks a lot for the the long and detailed explanation, Iluminerdi. I will read it carefully. I’ve fond some of these ZIF sockets on Ebay (not 5 for 10USD though) and also on a local website where I currently live. I hope I can make it work.

        @thepoorstudenthobbyist. I’ve seen there’s an update on your tutorial. That’s a f**** great job, mate! I will take a look at it as well

        @Martin, I will be probably buying some stuff from your shop soon =D

        Like

      • @Denis if you can wait zif sockets are a lot cheaper from Chinese sellers on ebay/aliexpress, I use the 48pin ones and just break off pins I dont need.

        @thepoorstudenthobbyist I look forward to seeing what you do next! shoot me an email with your address if you dont already have my boards 🙂

        Here is a easyEDA project for the extender
        https://easyeda.com/mrTentacle/Snes-extender-breakout-board

        Note the schematic and board file are just uploaded to the site, Im not sure how well the importer works so I also uploaded the manufacture files.
        The board needs to be made using 1.2mm thick substrate, also use ENIG (gold plating) it makes for a much better connection

        I will be ordering a new batch this week along with something new

        Like

        • Thanks for the hint, Martin. I’ll definitely check some Chinese sources.

          P.s.: I’ve just ordered some stuff from your shop =D

          Like

  16. Good morning!

    It’s great to see, and finally find an active forum where people are actually talking, troubleshooting and discussing issues about snes repros.

    I would have a question my self too.

    I’ve tried to make a Mega Man X Pal repro from a Japanese Dragon Ball Donor cart. (SHVC-2A0N-10)
    I’ve downloaded the rom, removed the header, reconfigured the images for M27C801, and also splitted it in to 2 bins.

    (After burning and soldering i replaced the CIC chip obviously for an EU one)

    My question would be, the games most of the time comes on, (like 90% of the time) everything seems okay, and when i get to the main menu it’s just glitching out, the picture is disorted, as soon as i choose new game or options the music goes on and black screen.

    It’s just weird the game starts almost every time with the exact same issue, after burning the eproms I’ve verified the images if the went trough properly and they did.

    Im wondering what could be the issue behind this?

    1. Maybe that, I didn’t expand the rom to 2mb size, and then split it? If yes, should i remove the header first, then expand it to 2mb, then split?

    2. The second reason i can think about, the board wasn’t in the best condition, is there any chance this could caused because of a bad or weak connection? I’ve checked all the pin-outs what i could with a continuity tester, and they seemed fine.

    Regards

    Sebastian

    Like

    • Hey Sebastian! Glad you found my website!

      That is a pretty weird problem, especially if it does work fine sometimes. I’ve never made a PAL repro before, so if it’s a problem with that I can’t comment on it.

      In general, the process is to 1) expand 2) fix checksum 3) remove the header and 4) split. I’m not sure if you need to remove the header at number 3, but SNES ROM Utility just packages it all at once so that’s when I do it.

      However, since your game IS working, I don’t believe this is the problem. I think if there was a problem in the ROM file itself, the game wouldn’t turn on at all.

      In my experience, an intermittent problem like this is usually caused by some kind of bad contact or loose wire (not just in video games, but in other electronic applications). It always sucks when you get problems that don’t happen 100% of the time, because that means it’s usually something super tedious and not easily detectable.

      What I would do if I were you is to firstly check other games in your SNES and make sure it’s not the SNES pins that are dirty. I helped someone with a problem a while back and it turned out to be his console that was the problem because other games had similar symptoms to his repro (he hadn’t tried it in years so he had no idea that the console was broken itself).

      If that’s not the case, then I would clean the cartridge contacts as you have said the board is not in great condition.

      Finally, double check all your wires and solder jobs. Maybe when you test the board out of the cartridge, the wires are connecting fine, but when you put it inside the case, the wires are getting bent internally and connection becomes faulty.

      If all of that doesn’t fix it, then if it isn’t too much trouble, I honestly would try another board (or just live with your 10% success rate). Maybe get another PAL board – is there a reason you were using a Japanese donor? Again, I’ve never done any region switching, so I really can’t say if that could be causing the problem. It doesn’t appear to be a programming issue to me, more of a hardware issue. The only thing that seems fishy to me that might indicate a software issue is that you said the game locks up in the same position every single time – is it ALWAYS after the menu screen? Maybe try your ROM in an emulator, too. But every time I’ve made a game incorrectly due to a software issue, the game would just refuse to turn on, which is why it would seem to me a hardware issue. And if the game DOES work 10% of the time, it really doesn’t seem likely that the software would just “decide” to work some of the time, you know?

      I hope you can figure it out, but these kinds of issues are extremely hard to help out with, especially without the board in front of me! Let me know how it goes, good luck!

      PS – I would check out NintendoAge forums if you want to find another place where people are still actively making reproductions and homebrew games – though, forum rules prevent discussions about reproducing existing licensed games (unless they’re foreign reproductions/translations or ROM hacks).

      Like

  17. Thanks for your quick reply!

    The reason why i used a Japanese donor, as my snes is region locked to Europe, and i had a famicom cartridge hanging around what i couldnt really used for anything, plus i had a bad board with a spare CIC chip laying on it so i thought why not make something useful out of them :).

    Actually the rom was working fine in emulators.

    I just read my previous comment, and it’s a bit mis-understandable indeed, so when the game starts up, it actually never let me trough the menu. So my 90% success rate is that the cartridge booted up, logo intro comes on, then i get a glitchy main menu, what i never passed trough.(Thats why my first guess was the rom hasn’t been prepared properly)

    The snes actually just been refurbished a couple days ago, it works with every other game, also the contacts on this one has been cleaned with fibre pen and propanol also, so there is definitely no problems in the contact on the bottom side.

    So in your opinion that couldn’t be a problem, the rom wasn’t extended till 2mb?(If it boots up in any form than the roms are fine you reckon?)

    The 2 bin files what i wrote on the chips, was 1mb, and 512kbyte, and not 1 and 1 megabyte as in your and other tutorials i saw.

    Anyways i will try to mess around to double check the connections, and before i bin the board it self, i will try to burn another 2 eproms with your detailed tutorial, and wipe these ones when my wiper finally arrives:))

    Like

    • Ah I see what you mean now about your success rate.

      It’s *possible* the non-extension might be screwing it up, but usually if there’s a problem with the ROM, the game doesn’t boot up at all. At least that’s been my experience. Some people say you don’t need to expand the ROM files, but it’s good practice to do it anyway just in case. I know I’ve made a game that I forgot to expand at it worked ok, but it might be a game-by-game basis. Same thing with the SRAM size, some games require an exact size of SRAM to work because it checks how much is available. I think Donkey Kong Country uses 16MBit of RAM, but if you use a donor that has 64, it won’t turn on even though it’s more than the game requires.

      Well we’ve ruled out the SNES and the ROM file being the culprit. I would try a new board. Make sure none of the solder pads on your sockets got loose when you desoldered the previous EPROM. That’s a common problem that I ran into. And looking at the video you sent, that to me definitely looks like a poor contact issue, not a ROM issue. It reminds me of games that I had growing up that required you put them in the slot in just the right way to get them to work correctly because they were old or dirty.

      Like

    • Hi there!

      The only thing I could find on this is a thread talking about making a Star Fox 2 repro (also uses surface mount mask ROMs)

      http://nintendoage.com/forum/messageview.cfm?catid=22&threadid=135828

      The only thing is those are both larger games, so the pinouts are going to be different than this tutorial. I found a few NesDev forum posts about it, but all the links they have are dead since they’re 5+ years old. Basically, you’re gonna need to find out the pinouts for the surface mount EEPROMs, take those off, then rewire all the pads to your own replacement.

      https://forums.nesdev.com/viewtopic.php?f=12&t=5964

      I’d recommend asking the people there at NesDev, or NintendoAge, to see if anyone has any copies of those schematics anymore. I would say that you could figure out where all the pins are being routed, but a number of them are going to the other chips on the board so you won’t know exactly which address or data line you’re looking at since they won’t be going to the cart connector. I also tried finding the pinouts for those chips and didn’t get much luck, unfortunately.

      Liked by 1 person

  18. Thanks for your help mate, i’ve sorted out the issue, you beleive or not, the rom was the problem.

    As i mentioned i didn’t extend it till 2 mb. It started up, but just gave me this weird stuff.

    I burned 2 more chips, prepared with you tutorial, and then worked like a charm.

    May i ask you please what chip i should use for the bigger games, like Donkey kond etc? I saw they’re using bigger chips but im not sure what model to order. Are those 3MB eproms?

    Like

    • Hey glad to hear it! I’ll keep that in mind that expanding the ROM seems necessary in some cases. It must be a game-by-game basis, because I’ve never run into that when accidentally forgetting to expand the ROM. It’s kinda like the SRAM requirement of Donkey Kong I mentioned earlier – DKC requires exactly 16Kbit of RAM and no more, but some games can use higher than they need and still run ok.

      For larger games, I use the TSOP 32Mbit (4MByte) EEPROMs, the surface mount ones. If that’s too hard, or you don’t have the right equipment for it, you can parallel multiple 8Mbit (1MByte) EPROMs as I detail starting in Step 4. Requires a decent amount of rewiring, but it works.

      I recently just ordered some 16Mbit (2MByte) EPROMs, so if you want to wait a few months for me to figure that one out, you’ll need fewer chips (you’ll still need at least two, though).

      Like

  19. That sounds great actually. I thought there are 36 legged chips exists and then it’s the same procedure with the M27C801, but i might misunderstood the youtube tutorials, as there are many out there and they all say different things…..Your one is the best so far. Yes please let me know how did you get on with the 2MB ones, may i ask you what models are they and how much they’re cost?

    Like

    • So the 2MB ones (16Mbit) just arrived in the email from eBay a few days ago, they’re 27C160’s. But I haven’t gotten around to trying them out yet. I need to take some time to get a good process down and then write it up. I’m getting pretty busy at work lately, and also my grad school classes started up again last month, so my free time is a bit limited at the moment. It shouldn’t be too difficult to get them working, it’s just a matter of making time for it. If you’d like to try it out sooner, you can probably find the process online already, but I can’t say how thorough they’ll be or if they used the same equipment that I did.

      Honestly though, the amount of rewiring you’ll have to do with the 27C160’s will be similar to the M27C801’s if you only have one EPROM socket on your board. You might spend a bit more money with the small EPROMs, but only a few more bucks.

      The 8Mbit EPROMs I got for about $2 each. The 16Mbit EPROMs I got for about $1.50 each. A 32Mbit game is going to use four 8Mbit EPROMs, or 2 16Mbit EPROMs, so the price difference is about $5. So that’s why I do plan on adding that section in the tutorial. Hopefully it’s soon!

      Like

  20. Dear sir, I have an odd situation with a copy of Tactics Ogre I made using mostly your fine guide. The game runs perfectly, However, it will not take a save, and I mean not even until you power the system off. Will not even write to a save slot at all, which leads me to believe there’s something else I need to wire to get saves to work, or else the ram is faulty. Any help would be appreciated!

    Like

  21. Hi great tutorial, I just started to make Snes repro, my question is is there any rewiring if i want to make a 32MBit game, but i only have at the moment eeprom 29f016 which is only 16MBit using the sandwich method you explain on HiEx-rom, greetings

    Like

    • Hi there, thanks!

      So do you want to make a 32Mbit LoROM or HiROM game with two 29f016? It’s a bit different. You can still sandwhich them together, but you’ll have to use a decoder like the 74HCT139 to make it work.

      Prepare the TSOPs the same by pulling out pin 33 and putting them in the socket. Don’t worry about the MAD chip.

      Refer to the section on wiring multiple 8Mbit EPROMs together and look at the schematic. Instead of connecting the 139 pins 2 and 3 to A20 and A21, you should connect just pin 2 to A21 (which is pin 2 on the SNES 36 pin socket). Leave pin 3 alone. This will switch between the first and second TSOPs depending on what A21 does. And instead of wiring the TSOPs to the MAD chip, wire pin 33 (OE, or Output Enable) on the first EEPROM to pin 4 on the 139, and pin 33 on the second EEPROM to pin 5 on the 139. Wire VCC and GND on the 139 to somewhere on the board (pin 36 for VCC and pin 18 for GND works well). And wire pin 1 from the 139 to MAD-1 pin 4, or cart connector 49.

      I think this should work, but I’ve never tried it so let me know your results! If you have problems we can try figuring it out.

      Like

      • Can confirm HiRom and LoRom usage of the MAD chip is different.

        Messed around with another LoRom 2Rom board today and ripped a few traces. First was the trace for pin 7, but had to wire it directly to the cart contact, via a guide I read. The other was 31, because I foolishly used solid core wire, but my pump sucked too hard. I managed to find out where trace 31 went and it went to pin 16 on the mad chip, NOT pin 4 even tho it was supposed to be OE. Is that normal for a board like this or did I screw something up?

        The swapbin worked fine tho, booted up! Pin 24 on the chip is now OE due to the program so it had to go where trace 31 went according to my multimeter.

        Like

        • Yeah, so looking at the pinouts here: https://www.caitsith2.com/snes/flashcart/cart-chip-pinouts.html#mad

          MAD-1 pin 16 goes to the lower ROM chip’s OE line. Pin 4, on the other hand, goes to the OE line from the SNES. On a normal cartridge with only one ROM, this would connect directly to the ROM’s OE line. You can kind of think of the MAD-1 chip as a multiplexer for those pins, where it takes the OE line logic from the SNES and applies it to either the higher or lower ROM, depending on where you are in the code.

          If you have a board with a MAD-1 chip but only one ROM, you can bypass the MAD-1 and go right to pin 4. I’m going to be expanding the section on multi-ROM boards very soon, I just need some time to take care of it. Had a big project to work on for school, and I’m still working full-time (and I’m currently indulging in a bit of Monster Hunter on PS4… heh…)

          Like

  22. Hey there! AWESOME guide, thank you so much for all your hard work, you’ve made repro making easy for the rest of us!

    I was inspired by your guide to pick up a TL866CS and make some of my own repros but I just realized I have a big question: how do I program a 27C160 or 27C322 with the TL866CS?

    Obviously I can put a rom on a 29F033 but those are expensive and a pain to solder…and my dumb self already ordered a 10 pack of 27C160 chips as I thought those were usable in my TL866CS.

    I found this thread http://www.eevblog.com/forum/blog/eevblog-411-minipro-tl866-universal-programmer-review/675/ about it but it’s not nearly as clear and concise as your guide is…any help would be appreciated?

    Apparently according to post 692 you have to tell the TL866 you’re programming a 4M chip and then just program the same chip 4 times and separating the banks on the chip when you program each one.

    What would really be neat would be rather than rewiring the chip and programming it 4 times, could you make 4 separate PCBs (using OSH Park) to basically handle the rewiring for each step, so that you just slot the 27C160 into “adapter 1” (sort of like you did with the 29F033 breakout PCB), program the first 4MB, then slot it into “adapter 2”, program the second 4MB, and so on? I am willing to pay cash money for this ease of programming. Or is it already easy and I just need to not be a baby about it?

    Like

    • Thanks a lot!

      Great news! I just got my custom-made adapter boards in from OSH Park and will be adding a 27C160 guide very soon! The 27C322’s will also be coming eventually as well.

      The adapter board comes with two DIP switches that will basically switch between the top four banks so you don’t have to remove it while programming. I know the basic idea behind it, just gotta test it out and then write it up. Stay tuned!

      Like

      • Now I feel bad – I found and bought a similar bankswitching board off Ebay already and I would have rather given you my money. I’d return it and buy yours but it’s coming from Russia so the return postage would probably cost more than the board did, sorry 😦 I did buy your TSOP adapter from OSHpark so if you get any kind of kickback from that at least…

        Do you have a paypal donation link or anything? I’d love to buy you a coffee/beer or two for all your hard work writing up this guide!

        Definitely looking forward to your guides for the 27C16/32 chips. I haven’t been able to find adequate or well explained guides on those and I’ve resorted to using aftermarket PCBs for those for now, but I have a HUGE pile of old SNES sports games with 32/36-pin Mask Rom slots, so knowing how to utilize those would help me reuse a bunch of PCBs that are otherwise gathering dust.

        Like

        • Hey don’t feel bad! I didn’t start this blog to make money! But I really appreciate the offer! Maybe I’ll put a donate button somewhere eventually haha. I don’t get any incentive from OSHPark for my designs, but that wasn’t my aim anyway. Just wanted to make the cheapest possible adapter board that I could. There were some other ones that are on there, but they’re larger and cost more money to make. I have a handful of them actually, for anyone who wants to buy just one instead of the 3 copies OSHPark makes you get. I would’ve sent you one for a lower price than them!

          I’ll be getting around to the guide sometime soon, for at least the 16’s. It’s not too difficult. I read through the datasheets and used a bunch of old forum posts, nearly-dead websites, and some pictures of other adapters to get a handle on what exactly is going on. I got a test coming up at the end of this week, and I gotta do my taxes, but after that I should have some more time to get the guide done!

          Like

  23. How do I configure a rom for programming onto the 29F033 if it DOESN’T have a header? Do in just program the sfc file directly to the chip or is there another process for converting it to a bin file first?

    I assume I don’t have to swapbin the rom since the TSOP adapter already does all the necessary pin swapping, and the swapbin function of Wasabi only has an option for 27c801 chips…

    Like

  24. Hey! This article is absolutely amazing, great job with this.

    I am a musician living in New York and am playing around with the idea of working on a project involving creating music and a homebrew program to run on the super famicom. My plan is to create a body of music, work with a homebrewer to create a visual experience ROM file to accompany the audio and then eventually attempt to make my own Super Famicom carts with the program loaded onto them. The audio would also be released on standard formats (vinyl, digital, etc…)

    I’m having trouble finding out some information pertaining to creating the audio and to what restrictions I would need to limit myself to before composing the music. My understanding is that whatever I do it would have to be reduced down to 8 or 16 bit audio (doesn’t seem too hard) and the only effects I could use would be a very limited amount of reverb? I always assumed that the music was composed via a DAW software program and then midi data was used to trigger audio in the games but I could be totally wrong…

    But i digress — is this even possible? I feel a little lost!

    All the best!

    Like

  25. Hi,
    First I have to say that it’s one of the most comprehensive tutorials I’ve ever seen !!! Great job 👍👍👍
    I have a Top3000 programmer that can write M27C160 directly with no adapter.
    Just to make sure I got the process right, If I want to write a 16Mb game, after removing the header, I don’t see any reason for using the Snes tool to split the rom, and so I can just write it to the 160 chip. Is that correct?

    Thanks,

    Matan

    Like

  26. Anyboudy already try the tindie adapter 27c322 for original mask rom? https://www.tindie.com/products/mrTentacle/27c322-to-snes-rom-adapter/
    I already read the instruction but i have one doubt, in the instruction is written to tack down one leg of each 74hc254s and solder the rest of the legs, but is not written in the instructions what leg is need to tack down… can it be any leg? and if i tack down one leg in one 74hc254s is necessary to tack down the same leg in another 74hc254s? Thanks

    Like

    • Look out kids, it’s time for another one of illuminerdi’s novels! Wheee! (Long post ahead):

      I’ve tried Martin Samuelsson’s 27c322 adapters from tindie and I have some thoughts on them, both good and bad.

      First up, as poorstudent said, tacking down a leg just means to solder a single leg of the chip to hold it in place before you solder the rest of the chip. They are pretty small chips, not as bad as the 29F033C chips which have positively TINY legs, but the 74hc254 chips are definitely a moderate challenge if you aren’t an experienced solderer. My preferred method to solder the 74hc254 chips is as follows:

      Tack down one of the 4 corner legs, then reheat that same solder point and using tweezers or my fingers, then quickly (while the iron is still on the leg and keeping the solder molten) reposition the chip to be aligned onto all the pads, remove the iron, let the leg cool, THEN remove the tweezers or my fingers. The chips are so small and light that even if you position the chip perfectly before soldering anything, you’ll probably nudge the chip with your iron or even just a slight hand tremor. Tacking down a leg like this helps you keep the chip in position while you solder the rest.

      Once I have a leg or two tacked down, I then tack down the opposite (diagonal) corner leg to cement the chip in place from all 4 angles. Once complete, I then add solder to the rest of the legs. THEN I apply a generous helping of liquid flux and reflow ALL the legs to eliminate any cold joints or solder bridges. Some people might be able to avoid this step, but I am not one of those people, the solder I use is thin and just doesn’t have enough flux in it to where I trust it to flow well enough on the first pass for legs this small. I always wind up putting too much heat on for too long, so reflowing with a generous helping of liquid flux is the way to go for me.

      Also, if you aren’t already using a chisel tip, I heartily encourage you to give one a try. I’ve found that my soldering improved by leaps and bounds after switching from a point tip to a chisel tip. The extra surface area of the tip has really helped me to apply heat to larger areas and more quickly heat up pads to achieve better solder flow. I know it sounds crazy, but the increased surface area of a chisel tip actually allows you to work more quickly AND more precisely because you’ll find yourself more easily able to heat the pads on PCBs and I’ve found that my solder flows MUCH better as a result of using a chisel tip. So again, while it seems counterintuitive, I have MORE precision with a chisel tip than I ever had with a “pencil” (pointed) tip.

      Also, no offense, but asking what it means to “tack down a leg” makes me think that you’re maybe new to soldering? That’s ok! We all were new at one point – everyone is here to help, and we were all new at one point, so don’t be afraid to ask! 🙂 If you are new at soldering, I suggest maybe do some practice on spare parts to get a feel for using a chisel tip and learning the temperature your iron operates at, and watch some youtube videos on the subject. There are a lot of great youtube videos on soldering, identifying cold joints, techniques, etc. I owe a lot of my skills today to youtubers like EEVBlog.

      Ok, next post will be about the tindie 27c322 adapters. I figured this post was long enough as is. Also: good luck to you! Don’t be afraid to ask more questions, this is a community for learning and helping 🙂 🙂

      Like

      • Ok so here are my thoughts on @Martin Samuelsson’s tindie adapters:

        These things are a challenge to use and they are fragile. I have lifted more pads off of them then I have any other PCB in the 10+ years I’ve been soldering as a hobby. Granted I haven’t done a TON of hobby soldering, so that statement is not as loaded as it sounds. I’m not faulting Marcus for the fragility of these boards, but I do feel it is important to point it out to anyone interested. These boards are NOT for the faint of heart. I went through FIVE boards before I figured out the proper technique for doing everything. Some of that comes from ignoring Marcus’s (detailed) directions, so at least part of the problems with these boards IS my own hubris. To his credit he does also indicate that these boards are tricky right there on the order page, I just failed to heed said warning…

        The biggest challenges in using these boards are twofold. First, the space requirements to fit them in NTSC-style cart shells. You have to get everything PERFECT in order to fit them in a cart shell and have it close without putting stress on anything. There is NO wiggle room here. I’ll detail this later on. The second major challenge was pinning the 36-pin holes properly and removing the black spacers from the pins in such a way as to not lift traces off the tindie boards. I thought this step would be easier than it turned out to be. Again, following the instructions was a challenge here.

        I cannot recommend enough how important it is to have a piece (or two) of BLANK perfboard on hand for the pinning. I ordered some cheap perfboard from Amazon but it was thin and fragile and had copper traces on one side, so I wound up using two of them stacked together. This gave my pins the perfect height using the short side of the pins and allowed me to solder the pins so that they sat FLUSH with the PCB. THIS IS CRUCIAL. If your perfboard doesn’t do this, make sure you trim your pins to be COMPLETELY flush with the PCB before you solder them in place.

        The downside of soldering the pins flush with the PCB is that it gives very little tensile strength to the solder joints, meaning that it’s easy to put excess mechanical stress on the PCB when attempting to remove the pin spacers (the black plastic bits) and thus wind up lifting traces from the PCB. You pretty much MUST use the method in the directions of setting the pins down on your desk (or a piece of wood or other scrap hard surface) and then pressing DOWN on the sides and edges of your perfboard to lever the spacers off the pins. This will keep mechanical stress off the fragile tindie PCB.

        So to recap: make sure your header pins are flush with the top side of the PCB, and solder them as “flat” as possible, try to minimize any and all excess solder.

        The second issue with the PCBs is fitting them in cart shells. In order to effectively fit them you need to ensure that your mask ROM chip (the 27C322) also sits as close to the tindie PCB as possible. Once you have your header pins in place, the best method I’ve found of doing this is to place the ROM chip in and again trim the pins on it as flush as you possibly can with the underside of the PCB BEFORE you apply solder. While Martin’s instructions did include a note about this, I do feel it wasn’t made as clear as it could have been just how essential it is to trim these to be absolutely flush before soldering, not after. This is crucial because if the pins are flush before solder, then you can solder them very flat.

        Once trimmed, ensure that your ROM is smashed as tightly against the PCB as possible when you solder it in place and try to solder the all the pads as flat as possible, much like you did with the header pins (but on the opposite side, obviously, so that there is no excess solder creating even the smallest lump on the underside of the PCB. I believe you can solder the chip in from the top since there are pads on both sides, but I found this difficult to do since the ROM’s pins sit so close to the previously installed header pins. Either way it’s difficult, I opted to solder to the underside as I could go in from a nearly vertical angle and thus avoid touching my installed header pins.

        If you can do the above steps successfully, you will then be able to put the PCB onto a donor board and it will sit perfectly flush on the “top” of the donor PCB, but I strongly advise that you buy extra boards (and lots of extra header pins) as if you’re as reckless as I was you’ll probably end up going through a few before you get it just right. And maybe you don’t care as much about the cart closing perfectly or putting stress on the PCB. I’m very finicky about this, so for me nothing less than perfection was acceptable.

        My other chief argument against Martin’s boards is mostly one of cost. The boards are about $2.50USD with the 74hc254 chips. It’s about $2.50 apiece for 27C322 EEPROMs on ebay as well. So your per-game cost is around at least $5USD, not factoring in any other external costs.

        I certainly think the cost of Martin’s boards are quite reasonable, the trouble for me is that it costs about $7.50-$8.50 per game to use a 29F033 with a TSOP to DIP36 adapter instead, as detailed in poorstudent’s guide. Personally, I’m willing to shell out the extra $2-$4 per game for the ease of using EEPROMs that can be quickly programmed by my TL866 in a single pass, rather than needing to do 8 separate programs using a ($30) 27C322 adapter and it taking drastically longer to program each chip.

        So the bottom line is this – Martin’s boards are the most economical way to use 27C322 ROMs in donor carts, and when you learn the proper method for using them they can be fairly reliably installed. So far I’ve successfully managed to install 3 after (probably) killing 5 boards while learning how. If I knew then what I know now, I might have just opted for 29F033 chips and skipped the 27C322s entirely.

        But this has been a learning process for me and I’m sitting next to a stack of about 25 still-blank 27C322 chips, so I’m probably going to order another set of boards from Martin and be more careful this time – again they’re great boards and they DO work quite well. I also think his boards are very well designed and a most elegant solution for using 27C322 chips currently on the market, but I definitely suggest being aware ahead of time of how fragile they are, and knowing what you’re getting into BEFORE you dive in. These boards require a LOT more precision than I’d initially assumed they did, so definitely make sure you know what you’re getting into.

        @Martin – if you happen to get through this novel, I actually have some ideas for ways these boards could possibly be improved to be easier to use or more durable in future revisions – if you’d be interested in discussing this further? I understand if not, they’re your design so it’s possible you’ve already tried these same ideas and they didn’t work, but I’d love to discuss them if you’re looking for suggestions or ideas?

        Thanks to everyone for reading. I do tend to ramble on don’t I?

        Like

        • Haha wow that was really detailed! I’m going to add a section about Martin’s boards at some point in the future, so I might lift a bit of your review into it.

          There are so many options to go with to make these games… this post is getting quite lengthy haha

          Like

        • Yes, all true, I tried to warn you! 🙂
          I enjoyed your long post, to be honest I very seldom hear anything from anyone that have used my boards, suggestions and ideas are always appreciated!

          Like

      • @Martin Samuelsson – the more I look the more I think my ideas for improvements probably don’t really work that feasibly, but I do have one idea that is still possible, though maybe too expensive to be realistic.
        What if you reversed the 36 pin holes on your board and made it so that the 36 pin portion of the PCB was meant to be soldered to the underside (aka the side that faces the front of the SNES) of a donor board? This would allow for your board to just be laid flat on the PCB and then instead of having to use header pins, trim them, etc, you could just use some flux and flow the solder directly through each hole until it touches the pads of the donor PCB underneath.
        This would allow for quicker, easier, and slightly cheaper installation. Unfortunately the downside of this approach is that NTSC style shells don’t have much room on that side of the board, so you’d also have to massively expand the size of your PCB and move the 42 holes for the mask rom to be located somewhere above the donor PCB at the “top” of the cart where there is leftover space.
        See this picture for a rough idea of what I’m talking about if that description doesn’t make a ton of sense:
        https://imgur.com/a/oD7iZ
        Yes, this would approximately triple the size of the PCB, so it might become too expensive. But it would be DRASTICALLY easier to install.
        First, you remove the donor cart’s mask ROM using flush cutters or a dremel. I did it with flush cutters in about 1 minute. Then you trim the leftover legs from the old mask rom to be flush with the “top” side of the donor PCB (the side that faces the rear of the SNES), making sure that none of the cut legs are touching each other. Maybe apply some electrical or kapton tape to help keep them in place for the next steps.
        Second, you would then lay the new red PCB onto the back of the cart and make sure it lines up correctly. The leftover solder points from the old mask rom’s legs makes this process incredibly simple and you basically already have a bunch of solder joints to piggyback onto.
        Flux the holes of the 36-pin portion, heat and solder. The still-present legs from the cut mask rom will help you bridge the PCBs together quickly and easily! This is why taping down the underside of the holes would be a good idea – it would keep the legs from slipping or moving during the soldering process
        Flip the board over and solder your 27C322 (or 27C160) to the top side of the red PCB. You probably wouldn’t even need to cut the legs or anything – the EPROM chip would sit lower due to being attached to the bottom of the donor PCB, so you have more room overall to work with.
        Install the 74HC decoder chips and you’re done!
        Voila! 27C322 EPROM installed in a fraction of the time it took to install the previous boards.
        Again though, this might be too expensive since it triples the size of the board and I believe the cost of board manufacture is based largely on board dimensions 😦
        Still, I would gladly pay around $3-$4 USD for a board like this. It would make 27C322 installation much easier and quicker and STILL cheaper than using 29F033 chips with TSOP40 to DIP36 adapters…

        Liked by 1 person

        • You know, I’ve actually thought about making an extension like this, it’s been in the back of my head for about half a year now. I need to look into it when I get the other things on my to-do list done.

          Like

    • wow, those responses where fast!
      Definitely look into getting a small chisel tip, for tsop I use a hoof tip, also flux really helps 🙂

      If you can get some scrap electronics to practice on without pressure, I used to do a few runs to the trash room every week.

      Good luck!

      Like

  27. My novel now kkk

    First of all I thank everyone for the help, I have some factors that complicate things a little for me. One of them is yes I am learning how to do this and English is not my native language (my first language is Portuguese because i am from Brazil). I can read it myself (writing is harder) but I get along well but the translator can not translate everything very well so sometimes I get confused by the terms used and I got confused by that term “tack down one leg” I had understood that it was to take off one leg of each kkk chip. I started to get interested in the repros recently and bought some cheap Japanese games about 27c801 and a tl866, the first two I made yesterday was a disaster I broke the tracks and the game did not work (but I did not give up), I discovered that the welding sucker that I was using it was very bad (I bought the cheapest because I wanted to save money), I discovered that it is no use saving and I changed the material for a better use a common 27W iron and my welding sucker now works really took off the eprom of the plate and did not break any tracks recorded in the eprom final fight guy, which at first did not work I was scared then I cleaned the contacts with isopropyl alcohol and worked perfectly, but soon I want to record chrono trigger and donkey kong so I already bought an adapter for my tl866 to work in 42 pins, I’m going to buy the adapter cards in Tindie but I’m already seeing that I’m going to have difficulties with the 74HC257 (in my opinion they could already send this soldier on the board) it would make my life a lot easier kkk, but anyway I appreciate the tips, I liked the idea to train in garbage pieces, I’ll go in some technique that has plates in smd rubbish to ask some I can fuck what I do not have is flow welding this really is necessar?, because I do not know how to use, because to solder the 27c801 I do not think … but it should be that for eproms that use other type of encapsulation type tsop and other thin legs may need it … I will have to search for it. Thank you all again for your help. (iluminerdi you are very funny and help a lot / poor student always willing to help.) This forum really is very good.

    Like

    • We were all beginners at some point!

      I would say to definitely steer clear of any of the TSOPs for the larger games, since you are just starting out. You could manually wire up the 27C322s without the Tindie adapter board, but you’ll need through-hole versions of the 74HC257s. It’ll also be messy with the extra wires.

      You could also look into the 27C160s and check out the section in the tutorial about wiring two of them to make 32Mbit games. Your TL866 adapter should be able to handle programming them. The only downside is the extra wiring you’ll have to do won’t look really pretty. But it’ll be a lot easier to solder than the surface mount chips.

      Like

    • If by “flow welding” you mean solder flux: YES, GET IT! This stuff is absolutely essential, especially for when still learning to solder. Experts may be able to skip using it, but as a beginner I relied heavily on solder flux to help reflow poorly done joints, etc. I can’t imagine trying to solder the 74HC or 29F033 chips without it!

      I recommend either a flux pen or liquid flux and an ESD-safe dropper / needle tip bottle.

      Flux pens are probably easier to use but more expensive overall. A bottle of liquid flux runs like $10USD for a quantity that will last years or more. I’m still using the same bottle of liquid flux that I bought about 4 years ago.

      Like

  28. and how do I use liquid flow? I imagine that I first have to clean the region with isopropyl alcohol and then I wet a swab with the fluid flow in the region that I will apply the solder? the function of fluid flow is to make the soldering fix better is not it?

    Like

    • Using liquid flux is very simple!
      First: you do NOT need to clean the area beforehand unless it is already dirty (spilled soda, other forms of corrosion, etc).
      Second: to use liquid flux, I suggest getting a dropper bottle like this (https://www.amazon.com/Lotion-FD-1-ESD-Antistatic-Dissipative-Dispenser/dp/B00CIB9TM4/ref=sr_1_5?ie=UTF8&qid=1522863483&sr=8-5&keywords=flux+bottle) – this one is listed as ESD-safe, but that makes it potentially more expensive. Similar cheaper dropper bottles can be found for around $3-$5 USD. You could even use an eyedropper or a plastic syringe that comes with children’s medicine. Just be aware that liquid flux is sticky and can dry over time. It cleans up easily with isopropyl alcohol, and you can also thin it with a bit of isopropyl mixed in if you find it’s jamming your dropper bottle often.
      To use it, just apply a drop or two directly to the area you’re about to solder either before or after applying the solder. Then heat the solder with your iron until it becomes liquid and remove your soldering iron.
      Flux will do 2 things – it will help your solder “flow” into tight spots and onto all nearby appropriate metal surfaces, and it will help prevent oxidation during the heating and cooling process.
      Flowing your solder is vital as it helps your solder reach all the intended areas and ensures an even, solid bond between the pads on your PCB and whatever you’re joining to that pad such as a wire, a pin, leg, etc.
      Oxidation happens when solder is exposed to too much air during the heating and cooling process. This is what causes “cold” joints as detailed in poorstudent’s post. A “cold” joint looks dull (NOT shiny) and is brittle or crumbly and thus can break easily. Additionally, cold joints have poor bondage between parts and poor electrical conductivity, so a cold joint may not function properly and may prevent electricity to properly move along your circuit.
      A general rule of thumb after soldering anything is when you are finished to visually inspect every solder point for “shininess”. If any of the joints look “dull” and “grey” instead of “shiny” and “silver”, you should apply flux and reheat the solder, let it cool again, clean it off with isopropyl, and see if it looks shiny once dried.
      Unfortunately learning how to spot a “cold” joint does take some skill and practice. Over time you’ll learn to recognize the difference between a proper solder and a cold joint, but at first they can look quite similar, so don’t be discouraged.
      A good rule is that the less time you apply heat to the solder and the PCB, the better. So just drop on some flux, heat the solder and remove your iron AS SOON as the solder has fully liquified. This is why it can be important to have a good, high quality soldering iron that allows you to set your heat level. I tend to set my soldering iron around 285 – 305 degrees Celsius and I’m able to very quickly heat a solder joint without having to set my iron on the joint or the solder for very long, but also without much risk to the PCB or the trace since my iron is not OVERheated, which can burn your PCB or cause traces to detach from the board.
      You can get a good quality soldering station with temperature control for around $50 USD. A basic iron will work if you don’t intend to do a lot of soldering, but even those still run $20-$30 USD so stepping up to a temperature controlled solder station is just a very wise investment from the start!
      Also it’s good to point out that liquid solder flux is NOT conductive, so even if it spills or runs or if there is some leftover in hard-to-clean places, you don’t need to worry about cleaning it up. Even the best of us sometimes wind up with leftover flux under our chips or various other places.
      If you do need to clean it up, just use isopropyl alcohol and qtips or an old toothbrush if you really need to scrub away a LOT of flux (and yeah, even I have to do this often, so I guess I’m not an expert yet…)
      Here’s a great youtube video from the EEVblog about how to spot cold solder joints, perhaps it will help:

      This is an EXCELLENT video for learning good soldering technique and how to spot a cold joint. Even the cold joint that he demonstrates around 5:30 in the video isn’t too bad looking and does look quite similar in the video to the other joints, but after you’ve soldered enough you learn to spot the imperfections – the cold joint that he demonstrates didn’t “flow” when the solder was applied to the PCB, and it is misshapen and uneven. This is a dead giveaway for a cold joint. A good solder joint will be very even and smooth because the solder flux (most solder has flux inside of it) allowed it to flow evenly and smoothly, so even if the solder joint is shiny, being misshapen is a good sign that you should apply some liquid flux and reflow the joint.
      And once again – liquid flux is not conductive, so you can go pretty nuts with the stuff, yeah it’ll make your board sticky once it dries, and it’ll look a bit ugly since you’ll have brown liquid smeared all over the place, but a functional board with clean solder joints is much more important than a clean and pretty board that doesn’t work! If you do go completely nuts with flux and need to clean up your board after the fact, I recommend immersing the board in a mixture of Isopropyl AND Methyl alcohol for 10 – 15 minutes, then pull it out and scrub away with an old toothbrush, dip it back in the alcohol a few times or re-wet your toothbrush and repeat. Cleaning excess flux off is 100x easier (and cheaper!) than diagnosing a short circuit, or replacing blown or dead parts!
      So don’t be afraid to go a bit overkill with liquid flux at first, and eventually you’ll learn how to use less and solder better. It all just takes practice and time!
      Good luck!

      Like

  29. I bought a few of Martin’s 27C322 adapter boards, and while they were a little tricky, i was able to put them together okay, but I’ve made two cartridges now that don’t boot. At first i thought i just messed up soldering somewhere, but my second board looks pretty pristine, so I think i may be missing something in the programming process. I’m using the tl866 minipro with the digicool things 27C322 adapter. I expanded a 24Mbit game to 32Mbit. Fixed the checksum, and the header was previously removed. I cut it into 8 512Kbit chunks with the SNES ROM utility, and burn them one at a time to the (blankchecked) 27C322 in order. Verified everything burned well. Is there any other tricks to it? Sega genesis games using these chips need to be byteswapped, is that the case here too? Any assistance would be appreciated, I don’t think any other community is working with these adapters!

    Like

    • I’ve found that expanding games is both unnecessary and problematic if the game is already a multiple of 8Mbit.

      Try NOT expanding the game and just programming the first 6 parts, you can leave the last 2 banks of the chip blank or not programmed. It shouldn’t matter because the game’s code should never try to address beyond 24Mbit anyway.

      So I would just remove the header if present and fix checksum after the header remove.

      These games do NOT need to be byteswapped if using Martin’s adapter boards. The boards handle all the pin rearrangements already.

      Like

      • Thanks for the feedback, going to try that right now. Out of curiosity, If the game is not a multiple of 8Mbit, is it beneficial to expand it? If so, should it be expanded to the next closest multiple, or just to fill the chip?

        Like

        • None of my roms have not been multies of 8Mbit but I haven’t made repros of any headered romhacks yet I use the No-Intro romset which is a very clean romset that was properly dumped and has no headers.

          As far as I know the rom does have to be a multiple of 8Mbit, though I don’t know why, again because the game shouldn’t try to address unused memory so I don’t know why this is the case, perhaps poorstudent could clarify this point?

          Like

        • Some games (but apparently, very few) use the ROM size and/or mirroring the code as a form of copy protection. Similar to this, which is mentioned in the tutorial, is the copy protection that some games have based on the amount of SRAM on the cartridge. For example, Donkey Kong Country won’t work unless there’s EXACTLY 16Kb of SRAM.

          Here’s a forum post from NintendoAge: http://nintendoage.com/forum/messageview.cfm?catid=22&threadid=178215

          “For using the 29F033 chips with smaller ROMs some games will work without padding but some will require it, I think FF5 needs to be padded from 24mbit to 32mbit or else you get a black screen with music after you press start at the beginning.”

          Also, check out this forum post: https://assemblergames.com/threads/rom-mirroring-snes.68940/

          One of the posters mentions Mega Man X as a game that has copy protection by checking to see if the unused area of the ROM is mirrored data (so expanding wouldn’t actually help you here).

          From this website, The Cutting Room Floor (if you have never been to this website, I am sorry for referring you to it because I’ve wasted probably literal days reading it oh my god I just spent the last 2 hours browsing it again help me): https://tcrf.net/Mega_Man_X#Copy_Protection

          “Most of these checks involve attempting to write to an area of memory typically reserved for SRAM, which real copies of the game don’t have, by writing a value to a specific address and seeing if the same value is present at the same address afterward. Normally, on a real cartridge, these addresses point to ROM due to address mirroring, causing the writes to fail. However, the original Japanese 1.0 release suffered from frequent false positives due to the ROM inadvertently having the “expected” values already present at the right addresses in ROM for the copy protection to falsely think that the writes were successful.

          Initially, Capcom solved this by physically rewiring Rockman X cartridges to partially disable ROM mirroring at the affected addresses. Later on, the 1.1 ROM was released, with the SRAM detection fixed to prevent similar false positives from occurring.”

          So yeah. Not always necessary, but why not do it since it’s so easy? I’m not sure if padding the ROM would make it NOT work, perhaps that’s another form of copy protection I’m unaware of. Like I mention in my tutorial – the only time I suspected that padding the ROM screwed me up was with my Tales of Phantasia cartridge, but I’m unsure if that was actually due to another problem I was having.

          Like

      • This did the trick! I left the game at 24Mbits, just removed the header, fixed the checksum, and split into 6. Sure enough the game booted! Many thanks guys! I will stick around and attempt to pay it forward with my limited knowledge!

        Like

      • I used a new EPROM. You need to trim the pins of the EPROM to get Martin’s board as flush as possible, or it will not fit in a US cartridge. There might still be enough pin left to get the chip in the zif socket on my programmer, but I was too lazy to desolder it to find out. I’ll probably give it a try when i run out of EPROMs or if i get a nicer desoldering gun. Will need to UV bake it again too.

        Like

        • Ok, I ask because it’s still possible it was the chip or something else, not necessarily the expansion. I’m gonna try doing more research/thinking about this. What game were you making if you don’t mind me asking? Maybe I’ll take a crack at it and see what happens for me.

          Like

      • FYI you can use ucon64 with the -k flag to remove the copy protection from any games that have it, and this is the recommended method rather than trying to mirror the rom. Personally I try to avoid padding the rom whenever possible, since this also messes up the checksum and thus causes that to need to be repaired. Also padding will not bypass mirroring copy protection, since the padded bits will have incorrect values and will fail copy protection checks.

        I did only try padding a ROM once, no ROM since has needed padding so I can’t say for certain whether or not it’s actually problematic or not. Clearly it works for you, so for all I know I just did it wrong, it was early in my repro making days…

        So yeah, before burning just check if your game is copy protected or not, and make sure you either strip out the protection or properly burn the rom 🙂

        Like

        • I know padding doesn’t fix mirror protection, I just thought it was interesting 😛

          I’m just wary to say that padding is what’s causing the problem. I mean, I can’t think of a reason why padding would make a difference, unless it is as that forum post said that some games require the ROM to be filled to pass some kind of copy protection, but I don’t really understand the mechanism behind it.

          I just haven’t really had a problem with it in the past, and it isn’t difficult to do, so I figure putting it in doesn’t hurt. Though, maybe it does! I’m going to be making a test cartridge with a ZIF socket on it to easily swap EPROMs in and out at some point (probably in the summer), so I can try different games padded and unpadded and see if it makes a difference.

          Like

      • The game I was working on was Super Metroid, the Japan+USA release. This game DOES have piracy prevention similar to earthbound, where it checks how much SRAM is available. If it’s more than what it’s supposed to be (64kbit) , you get an anti-piracy screen and your saves get deleted.

        I used a SHVC-1A3M-30 donor cartridge with the 27C322 adapter. Frank Thomas Big Hurt Baseball was the cheapest I could find.

        Like

    • What illuminerdi said! (Thanks again for answering!)

      I’ve heard mixed things on expanding the ROM and not, and I can’t find a good reason to why you need to or not. Logically, that part of the memory should never be accessed, but I’m not sure if it has something to do with making a good checksum or not? It’s hard to find a straight answer, but it’s never hurt me to expand them first (except for the Tales of Phantasia cartridge I made, maybe, I never really knew what was going on with my first attempt on that one).

      See if you can do it again like Illuminerdi said, without expanding the game. Maybe try using a different EPROM? These things are really hard to troubleshoot, especially online!

      I am planning on making my own 322 programmer and a test board in the future, hopefully sometime in the summer (life is *really* chaotic right now for me). But I’m glad you’re finding some help here!

      Like

  30. hy guys, i was looking at tindie website a pcb for snes games and i like some boards, but they need this 12F629 SOIC,to unlock the game to work in consoles unmodified, there also has the code to program this 12F629 SOIC, but do not explain how i do this, is possible to program 12F629 SOIC with tl866? anybody knows how to program 12F629 SOIC?

    Like

  31. Hey so I’m unemployed due to a recent layoff (boo!) and have too much free time, so I thought I’d write up something useful here.

    How to use a 16MB 28F016S5 TSOP40 chip to make a repro! Huzzah!

    PLEASE NOTE that this guide does not apply to the 28F016*S3* – those chips operate a 3V I believe. Do not use them unless you know what you’re doing, at which point it’s probably still cheaper not to use them!

    I found on Ebay that you can purchase 28F016S5 chips in TSOP40 packaging pretty cheaply. I bought a stick with 8 flash chips on it for $2.50 for the whole stick! 10 minutes with my hot air rework station later I had 8 individual chips. These chips operate at 5v (or 12 if you pin them a specific way), with 16Mbit of storage per chip. These are pretty good chips to use for making repros since they are compatible with the TSOP40 – DIP36 adapter in poorstudent’s guide that you can buy from buyICnow and therefore they’re pretty easy to program and drop into any 36-pin donor cart!

    There’s just one problem with these chips. The version I’m using requires a very slight modification! The pinouts of the 28F016S5 and 29F033C are virtually identical, except the 28F016S5 is switchable between 12V and 5V.

    So, in order to program the 28F016S5 using a TL866 minipro, you have to first BRIDGE pins 10 and 11, then use poorstudent’s OSHpark adapter (or whatever other solution you use for programming TSOP40 packaged chips). If you’re good with a soldering iron you can bridge the pins with just a blob of solder, I found it easiest to do this with a chisel tip, ironically enough, despite the enhanced precision a pencil tip was terrible at creating a 2 pin bridge, whereas a chisel tip was perfect for this. There might be an easier way to bridge the pins, such as inserting a wire between them to create a temporary bridge, but my attempts at doing so all failed. Suggestions welcome!

    Please note that you probably DON’T have to bridge pins 10 and 11 if you’re using one of the “drop in” premade adapters for your programmer. You can buy these for about $6USD on ebay for the TL866 but it will take a month to ship from China, and you might not be programminga ton of these chips…

    ONCE IT IS PROGRAMMED you need to REMOVE THE BRIDGE between pins 10 and 11.

    Voila! 28F016S5 chips are now usable with one simple trick. Chipmakers hate me!

    Just thought I’d mention this for anyone interested, as I said, these chips can be found relatively cheaply IF you know how to search effectively and have the tools to remove them from existing PCBs.

    These chips were VERY common on 80-pin Cisco router flash memory modules in the mid-to-late 90s. You can find them all over ebay for dirt cheap, since nobody wants to buy a 16MB flash module for a 20 year old router any more…

    Like

    • Hey, been really busy lately, so sorry for not responding, but I did see this post. Good work! Maybe I could include it in a future update sometime? I’d credit you if you want! Idk when I’d get to it though, I’ve got a huge backlog lol

      Like

  32. First of all thanks for the great guide! Epic work mate.
    It looks like the MBM29F033C-90PTN are discontinued? They are rather hard to find in Europe, are there alternatives?

    Like

    • The 29F033C is pretty easy to find. The -90PTN suffix refers to the chip latency, so you might have better luck searching for -70PTN or even just dropping the -XXPTN part from your search entirely?

      I know here in the States I can find supplies of the 29F033C readily available on Ebay for between $8-$10USD per chip depending on the seller, quantity, etc. I just did a search right now and tons of listings popped up, so I don’t know if these sellers just aren’t listing on Ebay in your part of the world or if you haven’t looked yet, but the chip is fairly easy to find as long as you aren’t trying to look for it brand new or on places like Amazon. Try Ebay or Aliexpress instead.

      Liked by 1 person

  33. Guys i want to know what is the better method to make a repro of super mario rpg, what kind a eprom i have to use and where i can find a tutorial , i want a tutorial using tl866c. I was looking for a post of iluminerd about 27c322 but i did not find it anymore it was deleted? because i was thinking in use 27c322 to make repro of chrono trigger and donkey kong

    Like

  34. Is anyone else besides me thinking the value of 29f032 and 29f033 so expensive that it’s not worth buying an imported game and reprogram? the value that the eproms are is worth buying the original game with the original region

    Like

    • Depends on the game, really. Also, this guide is for hacks and homebrews as well! If you don’t care about how it looks inside the cartridge, you can also look into using the 160’s, which I just added a few months ago. Should be able to make a lot of good games with just the one chip. Also planning on adding a section on 32Mbit EPROMs (27C322) and custom PCBs.

      Like

      • I think 27c322 is better option them 27c160 due to both are dip42, i was thinking reprogram games like yoshi island, and super mario rpg because the boards are SMD and to avoid wires on the board i think is better to use Tsop eproms, using the using these kind of adapter http://www.buyicnow.com/it.php?i=396 i watch an video a guy who using a surface adaptor on a board of a mario rpg and use an 27c322

        Like

  35. anybody knows where i can buy an adaptor 27c3211 to donor pcb? other place than tindie because they are not ship to Brazil anymore

    Like

    • You don’t need to use an adapter necessarily, you can wire it separately, though you’ll need some extra chips. You can probably find a tutorial for it online somewhere, and it is in the works for this site as well, I’m just way too busy to spend any time on it right now unfortunately! If you need some help finding it online, shoot me an email, and I’ll try to find some time to take a look!

      Liked by 1 person

  36. Sorry, somehow I can’t see how to respond to another comment directly. So this is meant as a follow-up question on the discussion about the games with surface mount chips (Super Mario RPG, Marvelous…).

    So, do I understand it correctly that the 27C322 is the only possible way to go here?

    I just bought some 100 SFC games over in Japan and while I can read Japanese at a stupid kid’s level, I was really hyped to put translations on some of the more text-heavy games. What I had in mind is always a 1:1 swap, so original Japanese SFC game with just the original mask rom swapped for a translated rom on an EPROM or EEPROM.

    Among these new acquisitions, Marvelous is clearly the game I was looking forward to playing the most. But the 27C322 is a 44-pin rom if I see that correctly and I just bought a MiniPro and some other stuff recommended here, which means no chance to programm 44-pin roms.

    If somebody could push me in the right direction how to proceed here, it would be most appreciated.

    Thank you so much for this thorough and greatly written tutorial by the way… I only started thinking about repros some two months ago and now I’m sitting here, happily soldering my own weird SMK romhacks into cartridges that I bought for 100 yen the pop – amazing, life-changing stuff!

    Best from Berlin
    Felix

    Like

    • Using a 322 isn’t the ONLY way, it’s just the cleanest way! You could use multiple 16Mbit or 8Mbit EPROMs, but that’d require a lot of wire and space. And you could use a 29F032/33, but it’s hard to solder wires onto those pins. You could make an adapter for the surface mount chip, if you wanted. I think I’ve seen them on other websites. But if you don’t want to add any more cost than you have to, 322 is probably the way to go (provided you can program them).

      I’m currently working on a programming adapter for programming the 322’s on the MiniPro, but there are some things I have to test out still with it (I’ve got a lot going on for the next few weeks so I’m hoping to squeeze it in at some point). There are some adapters online you can buy, if you don’t wanna wait – they’re a bit pricier though. Here’s a quick eBay search: https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=tl866+adapter+27c322&_sacat=0

      Thanks so much for reading!

      Like

    • This (https://andynumbers.wordpress.com/2015/03/03/building-a-marvelous-development-cartridge/) blog post has pretty much everything you need to know about making a translated Marvelous cart the “hard” way (wiring it by hand).
      However I *strongly* suggest you also look into ordering some of THIS adapter which makes replacing the ROM on SA-1 carts drastically easier: https://oshpark.com/shared_projects/O4HAE3B0 – this adapter means you don’t have to cut, strip, tin, and solder 42 individual wires by hand.
      Instructions for how to install the 27C322 and this adapter are on Youtube, just find stuff by TheRealPhoenix, he also has some posts over on NintendoAge, but his actual guides are on Youtube.
      He also makes an SDD-1 adapter on OSHPark which is similar to the SA-1 adapter, if you’re interested/planning on making a Star Ocean translation.
      Good luck!

      Like

      • Thank you so much guys! Now even the replying button loaded properly.

        Have some 29F033s ready here on the adapters but all the extra wiring looks intense – well, we’ll see how steady my hands got I guess.

        I will look into the different adapters you’ve suggested. If I cannot figure it out, I could definitely wait some longer for your new adapters/guides. Not shy of throwing a bit of money at this, it’s way too much fun and I can get the games for close to nothing really (going to Japan two to three times a year).

        Will give it a go next week and report my results/findings.

        Thanks to both of you again!

        Like

      • I ordered an adapter and a couple of 322’s now, everything else seemed a bit too mad for my tastes.

        While I’m waiting: does any of you have experience with repros of the Super Famicom Memory cartridge? I’d be especially interested in getting Super Famicom Wars or its translation on a cartridge but I can’t seem to find any information regarding the SF Memory’s PCB architecture or it it needs any extra chips. Could just give it a blind try otherwise, I guess.

        Like

        • Hey Felix, I am not sure I understand your question. What could be the problem while making the SF Wars repro?

          Like

      • Hi Denis (and others),

        no specific problem regarding the ROMs or anything. I just could not find a lot of information on the SFC Memory cartridges or what kind of PCB they contained to find the right donor cartridge.

        From what I could gather Super Famicom Wars is 16Mbit, uses a battery and 256K of ram. I did find a good donor with two MASK ROM slots, so I used two regular M27C801 for the job, put them in. Then I realized that my donor only had 64K of RAM, so I put in a 256K from another game.

        See the photo here: https://ibb.co/diKDkT

        No luck unfortunately, it’s not running. All contacts seem to be fine though. So right now, I’m not really sure how to troubleshoot.

        Like

      • Okay, looking at my own photo that I took 30 seconds ago, I notice that the orientation on the RAM is wrong… oh my!

        Will swap that one around and try again.

        Like

        • Did it work? Haha I can’t tell you how many countless times I’ve put things in backwards.

          btw thanks everyone who’s been helping others out. This summer has been a lot more taxing than I would have expected, even with a break from classes. Last night I got some time at about 2AM, I put out an order for more 322 programming adapters (my original design didn’t work as reliably as I would like, unfortunately). Should get those in a few weeks, then I can add the section to the blog!

          Like

      • It did not work unfortunately. Still trying to figure out what the problem might be. Could there ever be a resistor or something else on a board that prevents a game from working? As I said, the only details I know is the ROM readout out of ucon64, so that’s what I worked with.
        Another question since I got my adapters from OSHPark today and cannot get the 29F033C to work. I now noticed that buyICnow sent me the wrong stuff or at least not what the specified (and still specify) on their webpage. I bought the presoldered EEPROMs since the price was quite fair and it states they come on a TSOP Adapter III but it is actually a revision IV. I got the 29F033C off the adapter to find out about this.
        See the photo here: https://ibb.co/bQr0jo
        Would anybody know what to bridge here to properly set up the RESET and /WE? The alternative is obviously to get the EEPROMs off and solder them on regular revision III adapters but I have four more of them and it’s definitely nice that somebody already did the job for me.

        Like

        • RESET is connected to Vcc so that’s fine, and I can’t see exactly where /WE is connected but it should be connected to SNES pin 36. It looks like revision IV is just revision III without the resistor spots. Honestly, I had no idea what they were there for in the first place. I think SJ1 is for smaller size chips in the same package. The two outside pads connect to pins 39 and 40, the middle pad is GND. I imagine there’s some smaller EEPROM that use these pins for other functions.

          Can you try your other EEPROMs?

          Like

    • That’s what it seems like to me too but I cannot figure out what else would be wrong.

      I always get Address: 0x000000 Buffer Data: 0x4C Verify: 0xFF

      Tried another EEPROM now and it’s the same.

      Do I understand correctly that I would choose FUJITSU MBM29F033C @ TSOP40, uncheck the “Check Device ID” and then would just program normally with the adapter just as an EPROM?

      I don’t think the adapter is faulty, I mean the setup is quite fool-proof.

      Like

      • Your setup is correct!
        The error is saying that at address 0, it is trying to write 0x4C, but getting 0xFF. 0xFF is all 1’s, the default data, so that could mean a few different things.

        You should try all of them. I once bought some 29F033s and half of them were dead when I got them. It’s also possible they were damaged by soldering, maybe he put too much heat on it. I highly doubt it’s the adapter, it’s just pin reroutes 😛

        Like

    • New day, more luck… last night I did check the adapter with my multimeter and indeed there was a bad connection (26 and 13 way down the table of course). After connecting the two, the programming still did not work!

      Today I just made a new adapter. There was a clear difference that erasing did not take split seconds but actual time now which I took as a good sign. The first attempt was still unsuccessful though with a different address error. Before I lost all hope in myself, I swapped the EEPROM and behold: the other one just programmed perfectly fine.

      So apparently I had a mischievous mix here of a slightly broken adapter and some broken ICs, now I have to find out what is what. But I already have a Seiken Densetsu 3 up and running on the original cartridge, so that’s a trade-off I’m willing to live with.

      I will try Super Famicom Wars again soon.

      Thank you all!

      Like

  37. Hi there, im an electronics tech and i very like your post since i love making snes repro cart for myself, just as an update for unsoldering these old EPROM is with soldering wick. Just need to apply a lot of flux on pins of chip you want to unsolder and remove all old solder with an 65W soldering iron and the wick. All solder will be sucked in the wick and the chip will simply fall out after proceeding without putting any pression on it 😊very cheap method and accessible for everyone !

    Thank you

    Like

    • Holy crap I don’t know why I forgot about flux! I guess I hardly ever use it anymore since I have access to a desoldering gun so I always forget about it. I’ll add it to the post, this should save a lot of people trouble. Thanks!

      Like

    • I bought desoldering pump with a heatable tip for some 10 euros (12 US$). It has no on/off switch, feels cheap, and smells funny and I’m not fully sure yet how to open it to remove old solder but I have to say the results are really good on the SNES PCBs with the regular through hole stuff. It’s quick and clean and you don’t have to hold two tools at a time which is nice. I don’t think it’s really usable for surface mount chips. Still an okay amateur’s alternative to an expensive desoldering gun.

      Wick on the other hand just gives me a headache… maybe it’s really a difference in quality there, I do not have much experience with it.

      I’m definitely not too gifted or experienced with soldering in general but maybe it’s a good tip for other beginners/intermediates like me.

      Like

      • I also bought an electric desoldering pump with a heatable tip. The same as in your description. It was working fine but lately it has been a headache and not working properly with SNES PCB. I’ve ordered some wick for desoldering. Let’s how it goes now. My “dream” is to have a proper desoldering gun, those which cost a lot.

        Like

        • The way I used to do it was cut all the pins on the Mask ROM and then desolder each individual pin by pulling them out with pliers. Then you’d just have to get the remaining solder out of the sockets, which should be easier to desolder with your pump than a whole pin.

          Like

    • Solder wick does work, but in my experience it takes a LONG time to remove the solder from 32 or 36 pins and clean out the through holes enough to put in a new chip.

      I strongly recommend buying a desolder gun if you can afford one. Yeah they’re $100USD but you can seriously remove a chip in less than 5 minutes with one. Solder wick took me about an hour per chip, sometimes longer…

      Like

  38. Could you provide instruction for gimp and the snes template. I am trying to make a label for some games that i can’t seem to find anywhere. So i want to make a custom label for it. But i am not good with any photo editing software.

    Like

      • I ended up going with the free version of Adobe Photoshop CS2. After playing around a bit, I can do the basics like change text and add a picture. Good enough for now, thanks!

        Like

  39. anybody knows where i can find super mario world 2 yoshi island mask rom, i want to make a repro using a 27c322 with this game, i already done a repro of mario rpg using 27c322 and i want to know if i can use the same way

    Like

  40. Sorry guys for no update on WICK+SOLDERING IRON…i forgot to say, when i unsolder a mask rom with wick and flux, i use a 65W soldering iron, not a regular 30w. I used 30W only with Silver Bearing type solderto solder SUrface Mount chips only, since 65W is really too much and the tip is a lot bigger.

    65W goes better when you have to melt a lot of solder on big electricity wire and not loosing any heat.

    Using 30w iron+wick+no flus will only result in a soldered wick on pads and a chance of breaking pads and traces on board 😔

    Using 65w iron+Wick+flux takes me basicly about 45secs unsoldering mask rom and use about 6 inchs of wick 😊

    Like

  41. Hello dear friend. Could you help with the firmware of two eprom M27C160. How to do it right? Rom 32Mbit, I need to break it into 8 pieces of 512kb.
    1,2,3,4 part to write down on the first eprom, and 5,6,7,8 part on the second?

    Like

  42. I need help, I’m trying to make a super mario repro all stars using 2 memories 27c801 in a donor 2a5m-01 which would be enough of sram because the game uses only 64k, I did the test before soldering the memories on a test board with sockets 2am3-10 and worked perfect, but when I soldered the 27c801 on the donor board 2a5m-01 gave a message of warning anti piracy, then I remembered that I had not passed the ucon64 then I removed the memories and I passed the ucon64 in the game then I recorded again in the tl866 and when I went to test gave the same error message warning anti piracy … I am imagined that this is happening because this game must have some special protection system and when it finds that the board uses a memory of different capacity that would be used in the game (64k) he gives this message because the memory he used on the 2a5m-01 card is 256k instead of 64k .. Helpdesk .. (am i correct, really exist this type of protection) If yes if i remove the 256k memory and insert another of 64k the game will work correct?
    HELP !!

    Liked by 1 person

    • Yes, this is a common form of copy protection, the diskette copy stations of the time hade alot of sram.

      You can either fix the rom in Ucon64 or replace the sram with a smaller one.

      There is another option, making the console only see the first 64k of the sram, to do this you lift the two highest address pins and connect them to gnd
      Should be pin 1 och pin 26

      Like

      • i already try the two ways but with no sucess i already use ucon64 -k commanda but it no solve the problem, after i a14 and a13 the game star but the message appear ramdon in the game, so the problem persist… i think games that use sram protection like super mario all stars the corret is use memories with teh same capacity of the original game uses, in this case i was using a donor with 256k but the game use 64, i thinki if i use a donor with 64k i did not have this problem (am i correct)

        Like

  43. I need to mount a donkey kong 3 but only have the donor card with 64k and the game uses only 16k of sram is there any command in ucon64 that removes sram size protection from rom? because the command I use in ucon 64 is -ke does not remove this type of protection, which you suggest as the best option I can raise the 2 pins of greater memory of sram and connect in gnd or some command in ucon64 to take the protection of sram size? is there any other tip to mount this game some other kind of protection that I did not pay attention to? Thanks

    Like

    • You should be able to cut pins 2 and 23 (A12 and A11) and tie them to VCC or GND, as you mentioned. This will make your 64k SRAM act like 16k SRAM.

      There might be a way to do it in ucon64 but I never tried it before. Good luck!

      Like

    • Hi there! Generally, yes I think this should work, though I haven’t personally tried it. However you might have some issues with saving depending on the game you’re making. Is it an ExHiROM game? Or a ROM hack of a regular Hi or LoROM game?

      Like

        • Tales of Phantasia is actually ExHiROM, unless you have a special ROM hack that made it just HiROM? But I’ve never seen that before.

          I have a section for ToP in the tutorial using 29F033s. If you replace the second 29F033 with the third 016, and then use a decoder to combine the first two 016s and take the place of the first 033, that should work. But I’m not positive – I’ve been having problems with combining two 016s with a decoder lately, but that might just be me hahaha

          I won’t have much spare time to look at it in depth until probably tomorrow or Friday, though.

          Like

  44. I want to record 32mbits games in a 29l3211 I am not able to think of a way to convert the games file into .bin if record the game in memory in .smc or .sfc format the super nintendo will recognize?

    Like

  45. I have a donor 2A3B-01 this use 2 maskroms but i need to buid a repro that use only one, i have to remove the two memories or cand i remove only?

    Like

      • i am having trouble to buil a repro of Tactics Ogre – Let Us Cling Together (Japan) (Rev 2) i apply the USA patch at revision 2 of the game the original size is 3MB after insert the USA patch it stay with 4MB i run the gamer in emnulator ZSnes and worksa great no head checksum ok but when i build in the pcb nintendo BSC-1A5M-01 the gamer does not start i am using 29l3211 with PSOP adaptor, i already tried another game in the same board (street fighter 2) and works great so the board are ok

        Like

  46. i build now Tactics Ogre – Let Us Cling Together (Japan) (Rev 2) i with english patch in a pcb by mnr tentacles and workd grat with 27c322 but i use this board as test and do not have sras so this board do not be the home of this rom i did it just for test, i do not undertand why the game does not works in mx29l3211 using donor cart an official board nintendo with 1256k Sram but works in a 27c322 using mr tentacles board, maybe this rom has some protection and to burn the game in 27c322 i break the rom in 8 parts because i use an adaptor to tl866 and bvreak the rom maybe solve the problema with protection or the official nintendo board i am using is not comnpatible with this game because thius game use 64k Sram the board i am trying is 256K Sram ans to burn the game in 29l3211 i amn using gq4x ina singlew file i already tried ucon64 -k command but do not solve the problem in 29l3211, i would like the game workd in 29l3211 using nintendo board as donor…

    Like

  47. i am try to build a repro of aladdin of snes using a board 2A0N-01 with two 27c901 but when the game reach the first boss of the game he is incencible it is impossible to beat him, it looks like a protection of the game, anubody knows how to solve this?

    Like

  48. I’m not an electronic guy at all (I’m an electrician, my wires are BIG and SIMPLE). However I was able to follow the tutorial fully (in fact this was the best tutorial I found). First, I’d like to say great job, it’s not easy to write something like this. I’m hoping to play games I could never afford to play on my original SNES and this gave me confidence that I’ll get there eventually.

    I’m about to pull the trigger on buying parts, just a couple questions.
    You mentioned to pay attention at the Chips used (via ucon64), but never really explain what to look at (other than battery + SRAM). Two games so far gave different results:
    – Game 1: Rom Type: (35) ROM +SRAM + Battery + SA-1
    – Game 2: Rom Type: (f3) ROM + C4

    Question 1 – What does the (35) and (f3) stand for?
    Question 2 – Where can I find information on SA-1 and C4?

    I definitely feel I’ll have more questions as I go but just wanted to get those cleared up before jumping in.

    Thank you so much and again – great tutorial!

    Like

    • Hey thanks so much for reading and for your feedback!
      The “special” chips listed, like the C4 chip, are additional chips usually for improved graphics. So you can’t use a board that has “normal” chips for a game that requires the special ones, like SA-1 and C4 as you list. The donor and desired games need to match each other. Information about the chips are hard to come by, because I’m pretty sure they’re by and large proprietary, but I’d look at Nesdev or NintendoAge forums and see if anyone there has tried reverse engineering them.
      Honestly not sure what the numbers in parentheses that ucon lists are for. Probably something with the header or some other programming thing. In any case I never worried about it!
      Let me know if you have any more questions!

      Like

  49. Hi, thanks for you work in this tutorial!!! Really good job! I need a help to programmer one 29f032 using the tl866. In ic list i can’t find 29f032. What i need to do? Thank you so much.

    Like

    • Hi sorry for such a late response!! My life has been CRAZY lately, and my blog unfortunately fell through the cracks!

      If you cant find it with the IC search tool in the list, try just typing 29F and seeing if it comes up. 29F033 also works. And any extra letters at the beginning or end is ok too, usually that indicates a different manufacturer or package type or something, but they should all work as long as 29F032 or 33 is in the name.

      Let me know if you need more help!!

      Like

  50. Hi, i have a problem making a repro (actually is a zelda hack repro), rom size is 4MB, i tried to make it using two 29f016 chips, so i split rom into two using snesromutil (prior that i patch the rom, verify that sum check is ok) and i programmed my chips, also I´m using an shvc-ba3m-20 board (https://snescentral.com/pcbboards.php?chip=SHVC-BA3M-20) due it can accept two chips only by soldering them, game boots but after a short time graphics gone wrong (sometimes even freezes in the intro), I know my fullrom file is ok, cuz using a 29f033 chip in a test board that only accepts one chips games plays correctly, so my question is, do you know if using a board that accepts two chips needs to be modify, cuz i double checked that there is no solder bridge on any of the 29f016 chips. Sorry for my bad english, is not my native language. Greetings.

    Like

    • So I’ve never actually used one of these boards before, so I’m not positive what the problem could be. I DO know that each socket for the EPROMs are sized for 2MB. You’re using the 016, so you’re doing it right there.

      I haven’t encountered any problems like you’re experiencing – my games either work, or don’t turn on at all. It’s strange that you’re getting it to work on an 033 but it freezes on two 016s.

      I’m honestly not sure what to tell you! Maybe try different 016’s or check to make sure there aren’t any cold solder joints anywhere? Maybe you’re getting an intermittent connection on one of the pins. I’m sorry I can’t be of more help but I think you’ve wired it all correctly!

      Like

    • what´s your native language? I am Brazilian. I had a problem similar to yours.
      what I did was to test a shvc-2a3m board for example and to map the tracks and saw that there is difference between the boards. So I made a jumper with a wire and it worked perfectly
      I do not remember exactly what the difference is

      Like

    • You sure that your SRAM is compatible? It’s PCB code is 1A3M (3 is the size of its capacity – 32).
      P.S.: Sorry my bad english, I’ve learned from myself.

      Like

      • Alguém pode me ajudar já faço repro só que em memória 27c801 queria fazer alguns jogos de RPG traduzidos para PT BR em memória 29F033 mas não estou conseguindo preparar a ROM para poder gravar na memória que mencionei
        Alguém poderia me ajudar ?

        Like

    • Ola Aldueaco. Você conseguiu resolver seu problema? Eu também estou tentando fazer um cartucho repro utilizando essa mesma PCB (SHVC-BA3M-20), mas como uma das mask rom é de 36 pinos o meu não deu certo. Estou utilizando uma eprom m27c801.

      Like

    • does a shvc-ba3m-20 accept 2x16mb rom chips? these boards were designed to use a 16+8=24 typically used for super metroid.
      I asked a similar question regarding useing these boards as donors but never got a reponse

      Like

  51. Hi everyone and thx for replying my post, I´m mexican, I found that board shvc-ba3m-20 pin 2 and 35 are connected between them in both chips placement of the board, I tried to cut traces and brigde them to the correct place using wires, like the board i used for 29f033, but i couldn´t make it work, may be there is another difference that i can not find,anyways i used a 29f033 for my repro and complicate myself, greetings

    Like

  52. Boa tarde sei que tem brasileiros aqui na página se alguém poder me ajudar estou parado na preparação da ROM para poder gravar na 29F033 alguém poderia me ajudar desde já agradeço

    Like

  53. I noticed that the ROM images themselves have a NTSC or PAL indicator. Can I only use a NTSC rom on an NTSC machine? If the CIC is what makes this determination than I would think it wouldn’t matter yet my own project seems to refuse to boot and the only variable I can think of is the PAL ROM that is being used.

    Like

  54. Does anyone know how to convert a SHVC-BA3M board to use as a repro with a 32mb or 16mb buyic adaptor board or a m27c801? I have a few of these and would like to make anything out if them

    Mmmonkets had a similar guide on how to convert a mother cart using a SHVC-BA3M which I used for chrono trigger repro. I would assume something solar could be done on a ba3m???

    Like

    • Does anyone know how to convert a SHVC-BA3M board to use as a repro with a 32mb or 16mb buyic adaptor board or a m27c801? I have a few of these and would like to make anything out of them

      Mmmonkey had a similar guide on how to convert a mother cart using a SHVC-BJ3M which I used for chrono trigger repro. I would assume something solar could be done on a ba3m???

      Like

      • So I just realized that WordPress hasn’t been sending me emails for when people comment. Sorry! I probably missed your earlier comment. I gotta take some time and look through all the ones I missed.

        Anyway, I don’t have a BA3M or BJ3M board to mess around with, but I think that if it has two slots for 16 Mbit EPROMs you should be fine replacing them with the same size. But I can’t say for sure. I didn’t do a lot on these boards because they’re more uncommon and since writing the donor guide I’ve moved on to using my own PC boards instead.

        Like

Leave a Reply to Felix Cancel 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 )

Google photo

You are commenting using your Google 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 )

Connecting to %s