Saturday, October 25, 2014

How to Make an NES Reproduction Cartridge

Nintendo enthusiasts, myself included, know the value of playing a game on the actual hardware, rather than on an emulator. There exist USB adapters to take your NES controller and make it work with emulators on your PC and try to mimic playing the real hardware, but it just doesn’t give you that authentic NES experience. Don’t you wish there was a way to play some of those classic games on a true NES without spending exorbitant amounts of money? Or some Japan-only games without having to learn how to speak Japanese? Or your very own (or someone else’s) ROM hack or homebrew games?

WELL NOW YOU CAN!
 
This tutorial will teach you how to reproduce (almost) any NES game, provided you can find a suitable ROM file. I know there are a handful of these tutorials out there, but I had yet to find one that was as comprehensive as I'd like it to be. Also, since I try to teach a bit of electronics to people who read these tutorials, hopefully you’ll learn some basic electronics principles and more about how EPROMs work.

 Even games like these! If you don't want to spend a few hundred on getting copies of these, you can just make them yourself!


Things you will need (specifics detailed further in tutorial):

1) A donor game. Usually a game that is pretty cheap, or that you don't care about anymore (please don't destroy your copy of Megaman 3). You'll need a specific donor depending on what game you want to reproduce.
2) EPROMs. The heart and soul of the NES game. This is where the game data is stored, on two separate chips. You'll typically need at least two of the same size, as most games use two, which are called a program (PRG) and a character (CHR) ROM. Some games only use the PRG ROM. I buy these chips in groups of 10 on eBay for about $15.
3) EPROM programmer. This is what you use to... program the EPROMs. I got mine on eBay for about $42. It's a TL866CS MiniPro programmer. It's worked flawlessly for me, and it's pretty easy to use.
4) EPROM eraser. This is for prepping your EPROMs, and fixing your inevitable screw-ups. Got it on eBay for $16 (can you tell I like eBay?). You can forgo this one if you're really hurting for $16, but it'll be a lot less hassle if you just get one. Many sellers claim that the EPROMs they sell are empty, but you don't want to take the chance that you get some that have random data stored on them. Plus, if you mess something up during programming, you'll be able to start over.
5) Miscellaneous hardware. At the bare minimum, you'll need wire (I prefer smaller gauge), solder, and a soldering iron. You'll also probably want a screwdriver that can open NES cartridges (called an NES Security Bit), or if you're cheap and really like making things harder for yourself, you can try to use pliers to remove the screws. But for $6 on Amazon or $1 on eBay (you'll have to wait about a month for shipping, though), it's really worth it. Trust me, I've been there. I used to melt the ends of old mechanical pencils to try to make a mold of the screw and use that. Not worth it.
If you do go and buy the security bit, be sure to get the 3.8mm size, and not the 4.5mm


Look at all the nerd cred you gain from this project!

I spent around ~$60 for all the necessary equipment, not including things like my soldering iron (which I already had). Each game you make will cost about $10. Not extremely cheap, but all this equipment gives you the power to make a ton of different games for which you could be spending upwards of $40. As such, I don’t recommend using this method to make games like Super Mario Bros., because you’re apt to find them for a few bucks. Reserve this method for the rare, wallet-emptying gems.

So let’s get cookin’ (or rather, brewin’) some good ol’ NES games.

Introduction to NES Cartridges

Before we start making all these games, there are a few things we need to determine about the game we want to make. NES games were produced spanning nearly a full decade, so it’s natural that the games both made technical leaps throughout its lifetime. For example, games like Balloon Fight don’t take up nearly as much space as a game like Super Mario Bros. 3 does. Also, ROMs can come in many different sizes, which require different PCB layouts with different supporting circuitry (most notably, a chip called a “mapper”). A game like Balloon Fight doesn’t use the same mapper (or even use the same kind of ROM chip) as a more complex game like Super Mario Bros. 3 does, so it follows that you wouldn’t be able to use a Balloon Fight PCB to make SMB3. 

This, of course, means you must choose a compatible donor cartridge for the game you wish to make. This can prove tricky for some games, as a few (such as Mike Tyson’s Punch-Out!!) are either the only game or one of a few that uses a certain PCB class. Or you might get some really weird layouts that are pretty much impossible to replicate without making your own boards from scratch. It's possible for some types of PCBs to be reworked for other games, but they need to already be pretty similar. I'll go into more detail about this later, for now, let's get started prepping your game.

 
Punch-Out is so special, it's the only one to use the PNROM PCB class. Guess you'll just have to buy it, cheapo!

Step 1: Find a suitable donor cartridge.

So how does one find which cartridge is right for them? Personally, I've relied on the amazing website NesCartDB. This website is so extremely detailed and a very powerful tool for all your repro needs.

IMPORTANT NOTE: NesCartDB is hosted on a private server. Sometimes the website goes down from time to time for various reasons. For three months in the summer of 2016, the server was offline due to hard drive issues. In the downtime, the great community at NesDev had been working to provide an alternate, and tech support to try to revive the database. I recommend you use this website if NesCartDB is ever non-functional:

NesCartDB by MiemoNES

All you do is search your game, and it will tell you which are suitable donor cartridges to use! Super easy to use, but it does not provide all the information NesCartDB does.

If you run into issues on this website (I haven't explored everything myself), you can reference this website as well:

Bigass NES Mapper List

It has very basic information about the cartridges. It's mostly accurate, but I've heard of a bit of misinformation on some of the games.

So, on NesCartDB, simply look up the game you want to make on the database. Keep this page open in another tab as a reference. Now, find the “PCB type” of your game and click on it (examples include TLROM, SLROM, CNROM, etc). This type is determined by the kind of mapper it uses, among other things. It’ll bring up a list of suitable donors. Just sort through the games; you'll probably want to look at games that are in your region, since you'll be able to easily get them and use them in your NES without worrying about region locking. Sometimes NesCartDB lists the same PCB types slightly differently, for example TLROM and TL-ROM, so you can try searching those variants as well. There’s a search function on the top menu bar. Depending on the kind of game you choose, you might need to rewire your cartridge a bit, but we'll get into that later.


Click the thing in the red circle, if you didn't know what I was talking about.

You’ll want to be sure the donor cartridge and the game you want to make have nearly identical PCBs. Watch out for how many holes the PCB has for the ROM sockets! NesCartDB provides pictures of the PCBs for nearly every game in the database, so it's easy to compare. I have bought games before that won't work for my donor because they have a weird layout. I could've avoided that if I had just compared the PCB picturs on NesCartDB before buying it.

Also, if you are trying to reproduce a game that has a PCB class listed something like "KONAMI-TLROM" you'll still be able to use the regular PCB class. Sometimes different publishers produced their own boards, but they should still be interchangeable with Nintendo-produced boards.

Note: If you're using a UNROM board, you'll require 32 pins, but only have 28 available. Don't worry, I'll explain later. Just carry on.

Another thing to note is if you're planning on putting a ROM hack onto a cartridge, you'll have to do a bit more work. Some hacks change the kind of mapping that the game uses, so the board of the original game might not simply work with the hack. You'll have to find that information out for yourself. Usually, the game's author will readily have that information available to you. If you need help figuring it out, you can contact me and I'll see if I can give you any advice.

Anyway, most of the cheapest games I’ve found were $5 on eBay or Amazon. Or, you could be a weirdo like me, and print out a list of all the suitable donors and bring it to your local vintage gaming shop and get lots of suspicious stares from the employees as you pore through their collection.

Why hello, I'm looking for "Sesame Street: Big Bird's Hide and Speak" for the NES.
Step 2: Choose your EPROMs

What even is an EPROM?
EPROM stands for Erasable Programmable Read-Only Memory. Basically, it holds information that you can program to read later. You write information onto the EPROM using a programmer, and then that information can then be accessed later, but not rewritten (without an EPROM eraser).

The way data is accessed is through the data pins and address pins. To program the EPROM, the /CE (chip enable) and /PGM (program) or /WE (write enable) pins are tied to logic low (VSS or 0V), and the /OE (output enable) pin is tied to logic high (VCC or 5V). Note the bar above the symbols (which I indicate with a slash) - this means it's inverted logic, where a high voltage means disabled (OFF) and low voltage means enabled (ON). Some EPROMs might use non-inverted logic, but ours do.

An address is called out using high or low voltages on pins A0 to A16 (A17 or A18, for the larger EPROMs). Then, using data pins DQ0 to DQ7, a byte (eight bits of "1" or "0") is loaded parallel onto the data pins. In reality, only the 0's are written to the pins, because by default all the pins start as 1's. A 0 is written to the memory cell (actually a transistor, or a switch) by applying a high voltage onto the pin. Once enough voltage has been delivered to the data pin you desire to be 0, that data will be permanently "programmed" onto that address, until you reset it back to a 1 with UV light. It's similar to gluing a switch in one position so that it can't be moved. Once the byte has been written to the specified address, a new address is called out and new data can be written. This is done for each and every address, until it's filled up.

When you want to recall the data you programmed onto the chip, simply call the address you want to look at on the A pins, tie the /OE and /CE pins to logic low (to enable them), and read the voltages that are now applied to the data pins you programmed earlier. When the NES is playing a game, it's just reading the data on the different address locations. These data pins are what's known as bi-directional, with their function being controlled by the /OE, /CE, and /PGM pins.

Your basic EPROM. So much data shoved into one deceiving tiny little package. It'll have either 28 or 32 pins, and a little window on the top.
See the little window on the top? That's how the EPROM eraser deletes the information on the chip. You can't simply reprogram the memory like modern memory devices by writing over old data with new data (unless you just want to change a few of the 1's to 0's). The only way to erase the information is by blasting the window with a specific wavelength of UV light. "But can't I just stick it on the windowsill and let it get a sun tan?" Well, sure you could, but it might not effectively erase all the data in a timely manner. You should probably just get the eraser.

I swear, I don't work for eBay.

So why don't the EPROMs in my cartridge have those little windows? Well, they're not actually EPROMs, but what's known as a "mask ROM". The "mask" part basically means what it sounds like - it isn't erasable, because that functionality is "masked". Kind of a bummer, really, it'd be really nice to be able to just reprogram the game without having to buy new parts.

EPROMs (the chips) are defined in their sizes by bits instead of bytes (8 bits = 1 byte). ROMs (the game files) are defined in bytes. So, a 2 Megabit (Mbit) EPROM can hold code up to 256 Kilobytes (KB). A 1Mbit EPROM can hold code up to 128KB. This is a bit confusing, but very important! Check your CHR and PRG ROM sizes for the game you want to make on your NesCartDB page, and see how much space each needs.

The maximum size of ROM that you can store on a 28-pin EPROM is 64 Kilobytes. Any CHR or PRG file that is GREATER THAN 64 KILOBYTES NEEDS A 32-pin EPROM.

There are two different types of EPROMs that I use, which I got from eBay - a 4MBit and 512KBit model. I use the M27C512 for smaller games (512KBit, 28 pins), and the AM27C040 for larger games (4MBit, 32 pins). You can buy other models of EPROMs if you'd like, these are just the two specific models I use. If you choose different models, check your pinouts - if they are different than the ones I use in this tutorial, your wiring will be different!

Between these two EPROMs, you should be able to load most any game you want to make. The M27C512 is the largest EPROM size you can get with 28 pins, and the AM27C040 is the largest size you’ll ever need for 32-pin boards, as no NES game uses any ROM larger than this.

NesCartDB really is the bible of NES games.

For example, the game Little Samson's PRG ROM is 256KB, and the CHR ROM is 128KB, so I will need one EPROM that can hold at least 2MBits and another that can hold at least 1Mbits. You can use bigger EPROMs, though, which is why I recommend just getting a lot of the largest sizes since the price difference is usually trivial.

Protip: When searching for them on eBay, it's more economical to get groups of them, rather than single pieces. A lot of sellers use terms like "10pcs" or "x10" when they are selling groups of them. It's usually about $15 for 10 of them if you get them from China. I haven't had any problems with mine yet, so I'd say it's a safe bet. You'll just have to wait a bit longer to get them in the mail.

eBay, proud unofficial sponsor of the Poor Student Hobbyist.

Step 3: Find the ROM file for your game

I’m not going to tell you how to… acquire these files. Use Dr. Google – search “[name of game] ROM”. Be wary of sketchy websites, and whatever you do, don’t install a “downloader” to download your file. This could be malware. You’re looking for zip files of the actual game, not executables. Inside should be a .NES file, and possibly a readme or some other useless text documents.

Again -- don’t run any executables!

Also to note, if you're planning on making a foreign game, you'll want to see if you can find a patch for the ROM that will translate it into English. I'm not going to go into detail on how to patch the ROM, but any patch you find should be accompanied with instructions. It's usually as easy as running a short program.

Once you've readied your ROM, it might be a good idea to download an emulator and try it out a bit, just to make sure it downloaded/patched correctly and isn't corrupted. It'd be a shame to waste all this time and energy putting a corrupted game into a cartridge. I use JNes for all my emulation needs, but there are plenty other emulators out there that will work just fine.

Step 4: Split your ROM file into the CHR and PRG files

Before you do this step, make absolutely sure your EPROM can hold the ROM file. Remember, EPROMs are defined in BITS, where ROMs are defined in BYTES. Eight bits equal one byte. Reread the section above and make sure you picked the right EPROM.

Your .NES file you downloaded in Step 3 contains both the CHR and the PRG files (or just the PRG file, if your game doesn't utilize a CHR ROM). These two files will each go on a separate EPROM. I use ReadNES3 to do split the .NES file (here's the GitHub link).

Once you extract the Zip file, simply drag your ROM file and drop it on ReadNES3.exe that came in the folder. You should get two new .BIN files in your folder now, with the suffixes "Character" and "Program". These are the files we're going to load onto your EPROMs. You'll note that if your game doesn't use a CHR ROM, the file will be 0kB large, so you can ignore it.

Before we load them, though, we should make sure the EPROM is filled up. This is only necessary if your EPROM is larger than the ROM's CHR or PRG file. Don't really need to worry about the specifics, but basically it's to ensure if any of the extra data on the EPROM is accidentally accessed by the NES, it won't be random junk information.

Remember, EPROMs are listed in KBits, so you need to divide by 8 to get the size in KB.

Now, to fill up the EPROM, all we need to do is duplicate the .BIN file until it's large enough. This can be achieved by a simple line of code run in command prompt (press Windows+R, type "cmd" and hit "OK").

First, make sure the command prompt is working in the folder that contains your ROM files. You can use the "cd" command to change the directory. Here's an example of what I would type in:

cd C:\Users\Nick\Documents\

Just fill in the directory where your ROM is located. Your directory should switch to that on the next line.

Now, let's say I have a PRG file that is 128KB, but I have an EPROM that is 2MBit (256KB). So I need to double the PRG file. We do this with the following line of code:

copy /b gameProgram.BIN + gameProgram.BIN gameProgramFill.BIN
The "copy" command, obviously copies the data, and "/b" is to denote that the data is in .BIN format. The line of code essentially doubles "gameProgram.BIN" and stores it into the file "gameProgramFill.BIN".

Let's say I have an EPROM that is 4MBit (512KB). Instead of doubling it, you would quadruple it.

copy /b gameProgram.BIN + gameProgram.BIN + gameProgram.BIN+ gameProgram.BIN gameProgramFill.BIN

Now, compare the sizes of the PRG and CHR files, and the sizes of your EPROMs. They should be the same.

Ready to program them? Hell yeah you are.

I'm a lean, mean, programmin' machine. Slow down, ladies.

Step 6: Program your EPROMs

If you got the MiniPro programmer that I recommended above, you're in luck, because I can totally tell you how to use it. If you have a different EPROM programmer because you found a cheaper one or already had one because you're a nerd, you'll have to find the specifics elsewhere.

The MiniPro comes with a tiny disc that has the programmer. It's pretty self explanatory, but I'll run through the steps real quick-like.

1) Select your IC by using the "Select IC" menu option on the top bar (how cryptic!). The catalog here is pretty extensive, they should have your brand.

They don't have my brand! I have special EPROMs.
2) Do a blank check! Did you remember to erase your EPROMs in your UV eraser? Navigate to "Device > Blank Check" on the menu bar. Hopefully they're blank. If not, try blanking them again your UV eraser. If they still don't work, you might have a defective EPROM, or it's not connected to the programmer properly.

3) Get your PRG or CHR file loaded into the program. This is under "File > Open" (wow, these menu options are so hard to decipher.) The default load options should be correct, make sure the File Format is "Binary" and the Load Mode to be "Normal".

4) Program em! This is under "Device > Program".

5) To be safe, you should verify your program loaded correctly ("Device > Verify"). I've never run into a problem with it programming incorrectly, but if you do just blank your EPROM and try again.

6) Put some tape over the little window, and mark down what ROM is loaded onto it. You want to make sure you know which EPROM has the CHR file and which has the PRG file!

7) Repeat, if necessary, for the other EPROM.

Congratulations! Your game has a brain. Now to give it a body.

No, not that kind of a body! And no, I'm totally not trying to rip off the format of a Cracked article...

Step 7: Begin surgery on your donor cartridge

Open your donor cartridge (hopefully using that special screwdriver I told you to get). See the mask ROM(s)? These need to go.

Note: We do not want to remove any other chips. If your board uses RAM, do not remove it. RAM is non-volatile memory, which means when the RAM loses power, all memory on the chip is lost. Thus, there's no reason to remove the chip, because the ROM takes care of storing all the data.

If you can't tell which chip is which, look on NesCartDB. They do a good job of letting you know which chips are what.

Use the detailed chip info section to decipher what chip is what. Just match the model numbers, you'll be able to figure it out. I believe in you! This is actually the board to The Legend of Zelda. It only uses one mask ROM.
There are a few methods you can go about doing to removing your ROM chips.

1) Use a soldering iron and some copper wick to remove all the solder. This method is the worst one. It stinks. The solder on the games is old, takes a long time to get all of it out, and you'll probably end up burning yourself. 

2) Use a solder sucker to remove the solder. This one is preferable, granted you have access to a solder sucker. You can get a cheapo plastic one for a few bucks, but I've never had any success with using that. My employer, however, happens to have some actual pneumatic solder suckers, so I used one during my lunch break one day. Process goes really fast and clean, only took me a few minutes to get the chips off the board.

3) Cut the pins, remove the chip, and then remove all the remaining bits of metal stuck in the holes. You can cut them using some wire cutters, or better yet, a dremel. You have to be really careful if you decide to use a dremel, though. I have more than once accidentally taken out a few of the traces on the PCB using mine, which I had to go back and manually repair with wire. It's not fun.

See that little scratch right above the bottom row of pins on the right side of the board? That's where I cut one of the traces. I ended up having to painstakingly and very carefully solder an extension wire off of the trace.
Now you’ve hopefully got a nearly blank, undamaged PCB with ONLY the mask ROMs removed. Make sure the sockets are fully empty. If there's any residue solder left in those holes, it'll be a pain putting your new EPROMs in.

Step 7: Wiring up the PCB

This step is only necessary if your EPROMs are larger than 512KBit (if either of your EPROMs have 32 pins). If they are 28-pin EPROMs (except for UNROM boards!!), then go ahead and place them in the sockets and solder the corner pins down. You might have to bend the pins a little bit to get the EPROM to fit in the socket(s). Then you can skip ahead to Step 8. Lucky you!

If you're using a 32-pin EPROM or UNROM PCB type, you'll have to do a bit of work. 

So, Nintendo was clever. As the games got more advanced, and more memory was necessary, the memory management on the board (which was handled by the "mapper" chip) needed to become ever more advanced. Games started becoming larger, which is when you started seeing the 32-pin EPROMs crop up. The extra pins were necessary to make the leap from 64KB to 128KB games.

These new larger ROMs would require a new layout on the PCB. But, some games only required the CHR or the PRG ROM to have more space. They only required the 28-pin package. In order to keep the PCBs generally interchangeable, Nintendo decided to use 32-pin ROMs with a modified pinout so that the board would accept both the 32-pin and the 28-pin chips. Remember how I mentioned that games which don't utilize all 32 pins just let four of them alone? These four pins are the added pins to the larger ROMs. If the game developer didn't need to use all the extra space on the ROM, they could use a smaller one and still be able to place it in the same PCB. Clever girl, Nintendo, clever girl.

So, what does that mean for us? Well, since we're using standard EPROMs, we need to do a bit of rewiring. Again, this is only necessary if you're using the 32-pin EPROMs. The rewiring isn't too complex, but you need to exercise caution when doing this step - I've ruined a few EPROMs because I was hasty. I'd also recommend using thinner gauge wire. Thick wire gets in the way really easily (you'll have to route wire on top of your EPROMs), and can make your cartridge bulge in the middle.

This was my first reproduction. You can see the pins of the EPROM in the middle of the cartridge where it bulges the most, due to the larger gauge wire I used. The cartridge is also a bit harder to fit in the NES.
I'll list the necessary modifications depending on your PCB class. Here's the general steps you should take for rewiring your board. Use these steps with the modifications I list afterwards:

1) Bend up the necessary pins on the EPROMs. Be very careful doing this - go slow and make sure you're not putting the bend stress on the part of the pin closest to the package of the chip. I've broken off pins by not being careful, and let me tell you, it's a major pain in the ass to fix. Also, clip off the thinner part of the lifted pins, and just use the flat parts. They'll get in the way of the cartridge closing correctly otherwise. Note that these lifted pins might just stay lifted, they might not necessarily be wired anywhere.

2) Solder long wires into the necessary holes on the PCB before you put the EPROM in. Be sure to use long enough wire (8 inches or so), at least for the first reproduction you do, so you don't make your life difficult. As you get more experienced, you can cut back on the length of wire and make it look much cleaner.

3) Place your EPROMs in the corresponding sockets. Make sure the CHR and PRG EPROMs go in the correct place! Nintendo was nice and labelled which socket is which. You might have to bend the pins a bit to get the EPROM to fit correctly. Also, I wouldn't solder all the pins in just yet. You might have to reprogram them or change some wiring you missed. Just solder a corner or two in to keep it anchored in place.

4) Route the wires you soldered in step 2 to the correct pins.

5) Solder any extra wires, if listed.

This is how I start off a board. Solder the wires into the holes, and make sure they're long enough.
For reference, here's the pinout of the EPROMs. Find the notch in the EPROM, or the dot on the chip; this denotes the top of the EPROM, and the first pin is the top-most one to the left.


Now that you know the steps to take in your modifications, just what are the modifications you need to make? Here's the most popular PCB types - I will add more if requested. If they're not here, keep reading to learn how to wire it yourself if you want! Keep in mind some games, like the Konami boards I mentioned earlier, may have different wiring, so watch out for that.

Games that use MMC1 mappers (SxROM boards) and MMC3 mappers (TxROM boards), also applies to AxROM boards:

128KB PRG ROM:
Bend up pins 1, 2, 24, 30, and 31.
Connect pin 1 to hole 30
Connect pin 2 to hole 24
Connect pin 24 to pin 16
Leave pin 30 and pin 31 disconnected

256KB PRG ROM:
Bend up pins 1, 2, 24, 30, and 31.
Connect pin 1 to hole 30
Connect pin 2 to hole 24
Connect pin 24 to pin 16
Connect pin 30 to hole 1
Leave pin 31 disconnected

512KB PRG ROM:
Bend up pins 1, 2, 24, 30, and 31.
Connect pin 1 to hole 30
Connect pin 2 to hole 24
Connect pin 24 to pin 16
Connect pin 30 to hole 1
Connect pin 31 to hole 2

128KB CHR ROM:
Bend up pins 2, 22, 24, 30, and 31.
Connect pin 2 to hole 24
Connect pin 22 to hole 31
Connect pin 24 to hole 2
Leave pin 30 and 31 disconnected

256KB CHR ROM:
Bend up pins 1, 2, 22, 24, 30, and 31.
Connect pin 1 to hole 30
Connect pin 2 to hole 24
Connect pin 22 to hole 31
Connect pin 24 to hole 2
Connect pin 30 to hole 1
Leave pin 31 disconnected

Reproducing a UNROM board:
This board is a bit weird. It uses a 128kB ROM, but doesn't have room for a 32-pin EPROM. There aren't any 28-pin 128kB EPROMs available, so that means you still have to use a 32-pin EPROM instead. It's... different. But not hard. Just be very careful when you're modifying the board.
On the PRG ROM:
Bend up pins 1, 2, 24, 31, and 32.
Connect pins 1, 30, 31, and 32 together.
Connect pin 2 to hole 22. (Hole 22 corresponds to the 22nd socket of the 28-pin socket on the PCB. It's the eighth hole from the bottom on the right side.)
Connect pin 16 to pin 24.
When you place the EPROM into the board, make sure that pin 3 is placed in hole 1 on the PCB. Pins 1, 2, 31, and 32 should overhang on the PCB.

Special case - boards that support batteries, but do not have one (like the game Spot):
This board has space for the battery, but does not utilize it. Therefore, some parts were omitted from the final production (some boards may have them in anyway, but if they don't, then you'll have to replace them yourself.) 

In D1 and D2, add regular or Schottky diodes (NOT zener diodes). Make sure they can handle at least 15V or so and at least 40mA just to be safe (this is probably overkill). A great, cheap one to use would be the 1N4148. When you put them in your board, make sure you put it in correctly, because orientation matters. On the 1N4148 the cathode is indicated with a black bar.





The diodes are to isolate the battery from the 5V coming from the NES while it's on. R1 and R2 should work fine with any value resistor between 1k and 10k.

In the spot labelled "CB", place an electrolytic capacitor (at least 10uF). Make sure the polarity is correct on this capacitor as well. This is to keep the RAM chip powered up just in case there's a random spike of voltage from switching the game on or off - if you don't want to put this in, it'll probably still work fine, but your saves might get erased sometimes. On old Zelda games, they used to say on the save screen to hold the reset button in before you turn off the game - this was to reduce spikes from the voltage line. They soon started putting in the capacitor to prevent you from having to do that.

If you're modifying a board I haven't listed (or just want to know why we're bending certain pins and changing the connections) follow these steps:

(Remember, this is only for 32-pin EPROMs!)

I will provide an example for each step, noted in italics - I'll be using Little Samson, which is on a TLROM PCB using the MMC3 mapper

1) Reference the EPROM layout below. If your PRG EPROM is 128KB and still 32 pins, refer to the 256KB size.
Little Samson uses a 32-pin 256KB chip for the PRG, and a 32-pin 128KB chip for the CHR





2) Compare each EPROM's pinout to the ones you are using, making sure to distinguish between the PRG and CHR EPROMs, and bend up any pins that differ from the PCB
Using 27C040 EPROMs:
For the PRG:
- Pin 1 (VPP vs A17)
- Pin 2 (A16 vs /CE)
- Pin 24 (/OE vs A16)
- Pin 30 (A17 vs 5V)
- Pin 31 (A18 vs 5V)
For the CHR:
- Pin 2 (A16 vs /OE)
- Pin 22 (/CE vs GND)
- Pin 24 (/OE vs A16)
- Pin 30 (A17 vs 5V)
- Pin 31 (A18 vs /CE)

3) Connect the pins to the correct holes (VPP is the same as VCC or 5V, and VSS is the same as GND). If you don't have an /OE hole, then connect it to a GND pin. If your EPROM has a /PGM pin (located as pin 31), connect it to GND. Do not connect any unused outputs (A17 or A18), instead leave them floating.
For the PRG:
- Connect pin 1 to hole 30 or hole 31

- Connect pin 2 to hole 24
- Connect pin 24 to pin 16
- Connect pin 30 to hole 1
- Leave pin 31 disconnected
For the CHR:
- Connect pin 2 to hole 24
- Connect pin 22 to hole 31
- Connect pin 24 to hole 2
- Leave pins 30 and 31 disconnected

So, finally, after all that work, here's how my boards usually turn out.

Not pretty, but it works. I used tape to keep the wires in place. I also used thinner wire so that the cartridge didn't bulge this time.
Go ahead and solder the rest of the pins in. If you're not confident, you can test out your game first and then solder the pins in if all is well. But you might not have a good enough connection on the pins. The advantage of keeping your EPROMs unsoldered is that if you made a mistake, it'll be easy to pull the chip back out.

Step 8: Test out your game

The moment of truth! Reassemble your cartridge, and make sure you're not pinching any wires (hence, the tape). Throw it in your NES, turn it on! Hopefully, it'll work. Play it for a few minutes, and make sure everything works fine. Take it back out and fully solder the EPROMs in, if you didn't already.

But, if your game isn't working, don't panic yet!

Some games have what's known as "mirroring". It basically controls how graphics wrap around the screen. Horizontal mirroring is used for games that scroll vertically (like Ice Climbers), and vertical mirroring is used for games that scroll horizontally (like Balloon Fight).

Here's the PCB for Balloon Fight.
See the little solder bead underneath the left mask ROM? It's connecting the wire used for vertical mirroring (denoted by the "V" on the board).

If your game is working fine, but the graphics just scroll the wrong way, then that means you have the wrong mirroring active. Just switch to the other pad on the PCB. An easy fix, but not all games use mirroring techniques.

If your solution isn't that easy, don't lose hope yet.
If you didn't solder the EPROMs in yet, you could try soldering the pins in. You might not have good enough connection from the pins to the board. But first I'd check the wiring to make sure you didn't make any mistakes. If you have a multimeter, do continuity checks on all the necessary pins and wires.

If your wiring is all good, check the board again and make sure you didn't accidentally cut any traces when removing the mask ROMs. If there are any damaged traces, you'll have to repair them with wire.

If your wiring is good and you've soldered in all the pins, try re-soldering them by heating them up with your soldering iron. Don't let the tip sit on the pin for too long, but get the solder "flowing" again. We want a good shiny surface that makes a concave structure onto the pin like this:

Look at that beaut.

If you still can't figure out what the issue is, you might have had a programming error, or your chip got damaged somehow through static electricity or some cosmic particles ruined your EPROM or some other voodoo excuse. You can always try removing your EPROMs and verifying the program again. Just keep analyzing your board, or post your problems to the NesDev or NintendoAge forums. They're usually pretty helpful. You can ask me, too, if you'd like. I try to get back to comments within a few days.

Step 9: Make your cartridge look pretty

So now you've got your game all made up and working, you can add the label to the cartridge. Personally, I haven't made a label yet, but when I finally get around to it I'll update this tutorial with how I did it. I'm usually more preoccupied with playing the game, rather than looking at it. There are plenty of resources online to help you find out how to make the labels.

Here's a quick and dirty tutorial:

1) Remove the old label. Use Goo Gone, or I've heard that baking soda and vegetable oil mixed together does a decent job of removing it.

2) Find the box art, or actual cartridge label, and fit it into a cartridge template. There are plenty of templates for the label size online.

3) Print your design(s) on a full sheet label. I recommend printing more than one cartridge label at a time, because the full sheets get expensive. See if you can mooch off of someone, or buy them in single pieces from your office supply store.

4) Use a full page lamination sheet to cover your full sheet label. That'll give it a nice shine.

5) Cut out your label and place it on your cartridge. Done!

Or you could use this guy's method to really bring out the magic in your NES reproduction.
Conclusion

Congratulations! You have successfully created your own reproduction NES game!
But remember, with this great power comes great responsibility. If you're going to make these reproduction cartridges, please be sure to mark that they are reproduction cartridges so they're not mistaken for genuine ones if you end up trading or giving it to someone else. Don't play it off like it's the original thing. That's called breaking the law, and being a jerk.

I hope this guide helped you out in your quest to play some rare NES gems! I tried to be as clear and comprehensive as possible, but I'm sure I missed something here or there. If you find any errors, let me know and I'll try to fix it. If you find some board instructions I left out, let me know and I'll add them to the tutorial. If you're still having trouble, don't hesitate to comment or email me! I'll try to update this with anything else I find.

Have fun!

I got a lot of information from the great people over at NesDev.com. They have a lot more information than I posted, and if you're itchin' for more technical stuff, head on over there and check it out!

176 comments:

  1. does this progammer work also for snes ?

    ReplyDelete
    Replies
    1. The SNES uses many many different kinds of EPROMs and PCB types, so reproducing SNES games is a decent amount harder. They're also bigger ROM files so some games use multiple EPROMs. From what I've found, there isn't a very standardized way of reproducing SNES games. It is possible, but it requires a lot more time, and I haven't delved into the world of SNES reproductions (yet).

      That being said, since this programmer has a wide range of selections as far as EPROMs go (there are 13,000+ different supported ICs), you'd certainly be able to find one that is compatible.

      Delete
  2. Thanks for this... I'm a "nerd" who has all the gear to do this, but hasn't taken the time to figure out how to get the 4-5 homebrew/translations that I want wired up correctly. Guess I've now got a weekend project :)

    ReplyDelete
  3. This comment has been removed by the author.

    ReplyDelete
  4. hello, your job is amazing! but a try to make a game AMROM, any idea? sorry my poour english!

    ReplyDelete
    Replies
    1. Thanks! I haven't tried an AMROM before personally, but it uses 28-pin chips. Nintendo used the standard pinout for their 28-pin socketed boards. No rewiring necessary, just program the EPROMs and solder them in their sockets!

      Delete
    2. but the games use 128kb, and only eproms 32-pin has this capacity, as unrom...

      Delete
    3. Ah, I see now. You should be able to use the procedure for the UNROM, and it should work just fine. From what I can find, all the 28-pin 128kB EEPROMs that Nintendo used have the same pinout.

      Maybe in the future I'll add a short tutorial on this one on how to see which pins to connect to each other. I don't really go into much detail on why you're routing the pins to different locations.

      Hope this helped, and good luck!

      Delete
  5. Hi, I'd like to make a Kirby's Adventure Repro. Can I use a EPROM AM27C040 for that game? I'm planning to use Tecmo NBA Basketball as a donor cartridge, but I'm still not sure if it's okay to use the mentioned EPROm or other. Hope for your answer and nice post.

    ReplyDelete
    Replies
    1. That EPROM is 4MBits, so you should be fine. Just remember to copy the ROM to fill up the whole space as mentioned in step 4. That donor cartridge seems fine, since they both use the TKROM PCB type. Good luck!

      Delete
  6. Hello sir, what would it takes to make a cartridge without using a donor? I could print a Shell with a 3D printer, could one make a board from scratch, without using a donor? Thanks a lot.

    ReplyDelete
    Replies
    1. I found this forum post from 2014 (it was last updated October of 2015) of a guy who makes the blank boards. I've considered doing that in the past, but I never got around to laying out the boards.

      http://nintendoage.com/forum/messageview.cfm?StartRow=1&catid=22&threadid=137841

      Looks like it's $5 for shipping and anywhere from $5 to $10 for the boards, depending on which one you're reproducing. But that doesn't include most of the chips, so you'd have to get those parts separately. It'd probably be cheaper to just use a donor, to be honest. But you could definitely do it.

      Delete
    2. Hi, I'm the anon that asked that last question. Thanks for the reply, I'm Brazilian and NES carts are expensive as hell in here. A super Mario Bros 3 costs a hundred bucks, that's why I though of doing my own boards. I have next to zero experience with those things but I learn fast, so I think I will try doing one, if possible. Thanks for the help!

      Delete
    3. That's pretty crazy, sorry to hear it. Could you possibly buy one from eBay? I know there's some heavy taxing in Brazil, but I'm not sure how that all works. In any case, good luck!

      Delete
    4. Brazilian anon here again. I've bought a few things from Ebay before, like my Nintendo Zapper, so maybe I'll do that, since doing the boards from scratch seems to be a lot of extra work... Thanks a lot for your help, you're a pretty cool guy.

      Delete
  7. @The Poor Student Hobbyist ,
    When you say connect pin 16 to pin 24 under the PRG EPROM for MMC3 TLROM...

    Do the pins have to be bent up?

    When I tried to play my game, it played fine,but was black and white, also had no audio (doing this for Zombie Nation)

    Thanks for the help. E-mail me at briankozul@gmail.com if you can. Have a great day!

    ReplyDelete
    Replies
    1. For MMC3 PCBs, you need to connect pin 16 to pin 24 - pin 16 will still be in the board, pin 24 will be bent up. Pin 24 is the OE pin, and pin 16 is VSS (or ground). The OE pin is the "Output Enable" pin. You'll see a bar on top if you look at the pinout in the picture - this means it's enabled when it reads 0V, so we tie it to ground to let the NES read it. (Conversely, when the EPROM programmer is writing the ROM to the chip, this pin is held high)

      But as far as I know, I don't think this should cause the game to only play in black and white, I've honestly never heard of that happening. I guess it is a possibility. Also double check your wiring and make sure any bare wire or pins aren't touching each other.

      You should check to see if this happens to other games in your collection to rule out if it's a problem with your NES, too. I had a SNES whose sound card died randomly. Unfortunately, it died when I tried a new game I had bought, so I thought the game was broken - took me a while to realize that it was just the SNES!

      Delete
  8. Hello,
    I have a question about the earlier games Nintendo made. This will be my first attempt at making any of these and I want to make a Donkey Kong Jr. Math for my collection because I'm not spending $60 for it. There are a lot of suitable donors for this game, but I'm wondering about the CIC chip. There are only 3 other games that utilize the same CIC chip, so I was wondering if my donor would need the same CIC chip?

    ReplyDelete
    Replies
    1. Nope! Don't have to worry about that at all. The CIC chip is basically a way to keep you from playing other region games on your region's system. As long as your PCB has one you'll be fine.

      Delete
  9. Hello, same Anon that was asking about Donkey Kong Jr. math in the previous post. I have one other question before I get started making my own games. I have watched a few other videos out there and one is stating to use different voltages for different chips. Do we need to do this with the programmer you have listed, and if so does it offer that option?

    Secondly, if voltage is not something we need to worry about I'm assuming for this game all I would need are 2 of the M27C512, but just copy it like 10 ties to fill up the chips. Is that a correct statement?

    Thanks,

    ReplyDelete
    Replies
    1. Not sure exactly what you mean by the different voltages, but the programmer should supply the right amount no matter what the chip (it's probably either 3.3V or 5V).

      As for your M27C512, that's a 512Kbit chip (64KB). DK Jr. Math is 16KB for the PRG ROM, and 8KB for the CHR ROM. So you'd have to quadruple the PRG file and quadruple the CHR twice (octuple?)

      Delete
  10. Thanks for the reply for the voltages. The video I watched was using a Willem programmer and he was saying that you will have to use 21V to program the CHR on 2764 chips and use 12V to program the PRG on 27c128 chips. Hope that helps clarify. I did do some research and talked to a couple other people and they are using the same programmer you have listed above with no need to change voltages. Looks like that is the way to go. Thanks for all the help, it is really appreciated. I will post in a few weeks and let you know how it turns out.

    ReplyDelete
    Replies
    1. Ah I'm not familiar with the Willem programmers. You might have to adjust the voltages depending on the chip, though I don't know why the programmer can't handle that itself.

      Looking at the datasheets, it seems the programming voltage is set for ~12V for your EPROM. But like I've said, the programmer should take care of all that. I've never had an issue with any of them. If it makes you feel better, the chips I use for most of my repros (AM27C020) also have a programming voltage of 12V.

      Good luck!

      Delete
  11. Hello,
    I want to make a repro of AD&D Hilsfar which has an battery on the PCB. The cheapest donor I can find is spot, but that game does not have a battery. Will this be as simple as to just buying one of the batteries online soldering it onto PCB and then just replacing the PRG chip? Thanks in advance for your response.

    ReplyDelete
    Replies
    1. Yep! RAM is cleared once power is removed. All the battery does is keep the game in a low power state so your RAM doesn't get erased. That's how the save files work. If the game doesn't have any save functions, then it doesn't need a battery - I'm assuming that's the case for Spot, though I wonder why they decided to use that PCB if they weren't going to use the battery.

      I'd recommend buying a coin battery holder to solder on. Something like this:
      http://www.ebay.com/itm/M3-10Pcs-CR2016-2025-2032-Coin-Cell-Button-Battery-Holder-Socket-Black-/321545879853?hash=item4adda0c12d:g:CU8AAOSw6EhUNKYX
      You'll have to bend or cut those pins on the holder a bit to make it fit in the cartridge.

      Delete
    2. I need some advice on this AD&D cart. I have purchased a spot cart for this repro and the component layout is a little different. Looking at the spot cart the capacitors are in the middle of the cart and the AD&D cart has them at the top. Also there are some places where the resistors are different places as well. Is this PCB still usable for this game? I need to know as I have only found 2 other games with the same layout and they are both very expensive. thanks

      Delete
    3. I see what you're saying now. I've never tried to repro a battery board before, but I did a bit of research. You'll still be fine using the Spot cartridge. You'll just have to add a bit of parts. I'm going off the pictures of the PCB from NesCartDB.

      In D1 and D2, add two regular diodes (Schottky should work fine too, if that's all you have, but don't use Zeners). Make sure they can handle at least 15V or so and at least 40mA just to be safe (this is probably overkill). A great, cheap one to use would be the 1N4148. When you put them in your board, make sure you put it in correctly, because orientation matters. On the 1N4148 the cathode is indicated with a black bar. Here's the cathode and anode on a diode symbol:

      https://cdn.sparkfun.com/assets/8/8/7/1/0/518ac8c5ce395f5f50000000.png

      The diodes are to isolate the battery from the 5V coming from the NES while it's on. R1 and R2 should work fine with any value resistor between 1k and 10k.

      There's also a spot in between the two EPROMs (lightly labelled "CB") where you should put an electrolytic capacitor, at least 10uF. Make sure the polarity is correct on this capacitor as well. This is to keep the RAM chip powered up just in case there's a random spike of voltage from switching the game on or off - if you don't want to put this in, it'll probably still work fine, but your saves might get erased sometimes. On old Zelda games, they used to say on the save screen to hold the reset button in before you turn off the game - this was to reduce spikes from the voltage line. They soon started putting in the capacitor to prevent you from having to do that.

      Good luck!

      Delete
    4. Sounds a little more intrusive than what I was thinking. I think my best bet would be to purchase a Greg Normans golf challenge. In your opinion would anything need to be changed on that pcb?

      Delete
    5. That one looks all ready to go, but as far as modifying Spot, it's not all that intrusive as there are spots ready for all the parts. Though if you don't have those parts, you might save some money by going with the golf game instead.

      Delete
    6. Thanks for all the help. I just have 2 other questions and I should be good to go. On the golf game should I need to disconnect the battery to clear the ram? Just curious since the battend is like a low power mode as you said once power is removed ram is cleared. Didn't know if you also need to pull battery to clear it.

      Secondly, I'm trying to create the harder games and my next feat will be a best of the best karate cart. The only other board for this cart is paperboy which I have. Can you supply the pinout for this board as I don't want to mess it up. Thanks

      Delete
    7. Correction for above post. That should of read paperboy 2 but I would still like to know how to wire this board. Thanks

      Delete
    8. Never really thought about that before. I guess it'd be a good idea, though if you don't your game isn't going to get messed up. ROM memory (Read-only memory), the type of data stored on the EPROMs, can't get modified without a programmer. The game will probably just read that the save files are corrupted and reset it, I'd imagine.

      You might want to replace the battery anyway. It's probably pretty old and nearly dead, unless the previous owner of the golf game put a new one in.

      UOROM boards use only the 32-pin 256KB EPROMs. This actually makes it a lot easier. I think I linked it in the tutorial above, but the pinouts for all the different EPROMS are found here: http://nesdev.com/NES%20ROM%20Pinouts.txt

      I really need to add a section to show why certain pins are modified and others aren't. I'll get to it eventually. At any rate...

      Comparing it to our EPROMs, looks like you'll have to do the following:
      Bend up pins 1, 2, 24, 30
      Connect pin 1 (VPP) to pin 32 (VCC)
      Connect pin 2 (A16) to hole 24
      Connect pin 24 (OE) to pin 16 (GND)
      Connect pin 30 (A17) to hole 1

      That's it!

      Delete
    9. Thank you for this routing. I'm assuming that pin 32 and pin 16 will also remain in the board as well since you don't mention bending them up. Please let me know if this is correct but I think I got it. thanks

      Delete
    10. Pin 32 is VCC (5V) for both chips, and pin 16 is VSS or GND for both chips, so they stay in.

      I forgot to mention one more pin - bend up pin 31, but leave it disconnected. This A18, which remains unused (the game is small enough that it is unnecessary). We want to keep all unused output pins disconnected - if this pin outputs a LOW signal (0V) while we tie it to HIGH (5V), that may short out the supply of the chip and cause the game to not work.

      Delete
    11. For the life of me I'm really trying to figure these pinouts out. Hopefully you can give me an easy explanation here. So I previously have bought a reproduction little Samson which is using a 256 PRG just like the Best of the Best Karate game I'm trying to create. The person who made it used a 27C020 chip instead of the 040 like you mentioned above. I noticed the pinout sequence is the same except for a little differences I was hoping you could help me understand.

      Hole 1 to pin 30 which I understand as this is A17 hole to pin.
      Hole 2 to pin 31. This is the one that is throwing me. If I use 020's do I need to connect the PGM pin to one of the CE holes? Not sure why this is. I'm sure this is simple but I'm just trying to figure this out on my own.
      Thank you.

      Delete
    12. One other thing I have noticed as well that I need clarification on. I'm trying to create pinouts for myself for the ones you do not have listed. From what I can see from your link above with the pinouts of the chips it seems as though we do not need to worry about the board type for pinouts, just the size of the chips used for the boards. Is that correct? This has me questioning things as I'm looking at 2 different repro carts I have purchased in the past SCAT which is 128kb PRG on SLROM board and Jetsons which is a 128kb PRG on a TLROM board. Same size chips but they are wired differently. Please help me understand how to do these pinouts. Like the comment at the bottom of the page, can you please list those pinouts when you have time please.

      Thank you.

      Delete
    13. As I said below, I'm on vacation but I'll try to give a bit of help for now.

      Check this datasheet: https://www.google.com/url?sa=t&source=web&rct=j&url=http://www.farnell.com/datasheets/29576.pdf&ved=0ahUKEwiauobGvJzMAhUBXh4KHcHvBNMQFggjMAE&usg=AFQjCNHWiftKrs_lMIWTU6lioo1Mx9PJWg&sig2=Rki8qrOKZehSboGgO7dfEQ

      This is for the 020. Scroll to page 7 to see the logic table. I'll add this to my tutorial when I get the chance so you're not just staring at words haha

      PGM isn't used for anything other than during programming, so you can tie it to high or low on the board. It's generally good practice to tie unused INPUTS to something, otherwise it'll be left "floating" where electrical noise can get on the pin into the chip. In reality though it shouldn't matter much. The tutorial for Little Samson you were reading just chose to tie it to /CE, which should be tied low.

      Since I only have my phone here, looking at details of the boards is difficult (also I have culture to absorb!) but I can look at the details of the boards in a few weeks. Though I can at least tell you now, SLROM and TLROM both use 32 pin PGM and CHR chips, so their wiring is probably identical as you suggest. But they do use different mappers, so you can't interchange them. What wiring differences are you talking about specifically?

      Delete
    14. Correct both pcb's use different mappers, but I will explain the differences I see in his wiring. Also both chips are different between the 2 games the PRG and CHR are wired differently between the different PCB's. For clarification I will use a different example of another game I have from the seller(Contra Force). Both chips are same size on both PCB's and he used 27C010's for the chips. I know the wiring is a little bit different from the 020's or 040's and I'm ok with that as I can look up the pin outs for them. I will list the specifics so hopefully you can help me understand.

      Contra Force - 128kB CHR 128kB PRG TLROM using 27C010
      CHR
      Bend up pins 1, 2, 22, 24, 30, 31
      Pin 2 to Hole 24
      Pin 22 to Hole 31
      Pin 24 to hole 2
      Pin 30 to hole 1
      PRG
      Bend up pins 1, 2, 24, 30, 31
      Pin 2 to hole 24
      Pin 24 to Pin 16
      Pin 30 to Hole 1
      Pin 31 to Hole 2

      SCAT - 128kB CHR 128kB PRG SLROM using 27C010
      Same pin layout as you have above

      So from what I'm seeing I will need to know the different layout for every board I want to create a game for. From what I have been researching as well for the AOROM the board is actually using another CE pin 31 (Active High I believe - Please correct if I'm wrong) which complicates things even more. Please help if you have the answers.

      Delete
    15. The part I am so confused about is the Pin 30. According to the datasheet it is NC (Not Connected). So I am at a loss why he is connecting it to A17 on the PRG and +5V on the CHR. So confused.

      Delete
    16. Hi, just got back.

      Ok, so Contra Force uses 128kB for both PRG and CHR. It doesn't actually matter that he connects A17 to pin 30 on the PRG, because it's going to go unused as you said. He was probably following a tutorial from a different website or from a previous build he made - from what I've found, there are few games that use 128kB PRG ROMs that are 32-pin, since they can be 28 pin instead. So he was probably just taking that from a previous tutorial.

      Did you have any other questions? It's a long thread of responses and I haven't been around for a few weeks - is there anything else you need help with on this?

      I've uploaded a clearer picture of how to figure out the wiring yourself, that might help you to understand better.

      Delete
  12. Same Anon user about voltages. Just curious why above you mention to get the AM27C040 chips, but in the last reply you say you use AM27C020 for most of your repros. What is the difference as I have already purchase the AM27C040 ones? Will I run into any problems with these ones?

    ReplyDelete
    Replies
    1. Haha typo, my bad. They both work. In any case, the only difference is the size - the 040s are twice as large as the 020s.

      Delete
    2. Just so I'm correct. The typo is that you do you the 020s for most of your repros or the 040s?

      Delete
    3. I use 040s. I only got them because it covers all your bases, size-wise. Though there are very few games that use 512KB ROMs. I think 020s are a bit cheaper. Again, both work just fine.

      Delete
  13. Hello,
    Great tutorial but I would like to know if you can get some information that you do not have up on your site? I would like to make certain games which I have listed below and the corresponding information about the games:

    Battletoads & Double Dragon - NES-AOROM iNES Mapper 7
    Faria - NES-SKROM iNES Mapper 1
    Frankenstein: The Monster Returns - NES-SLROM iNES Mapper 1
    Adventures of LoLo 2 - NES-TEROM iNES Mapper 4
    A Nightmare on Elm Street - NES-AMROM iNES Mapper 7
    Mega Man 6 - NES-TGROM iNES Mapper 4
    Bubble Bobble - NES-SFROM iNES Mapper 1

    Everything goes fine but I'm not sure how to wire up these PCB's as those classes are not listed above in the tutorial. The first 3 are the most important, but if you have the diagrams or they follow a similar PCB can you please let me know?
    Thanks

    ReplyDelete
    Replies
    1. I'm on vacation for a few weeks now, so I don't have time to go through and check all of them right now. You can check the part of the tutorial under the UNROM and battery instructions - I give a guide to check yourself. Otherwise you'll have to wait a few weeks till I get back home and can check, but they shouldn't be hard to decipher.

      Delete
    2. Ok, I'm not sure how to decipher these so I will wait the few weeks until you return. Thanks

      Delete
    3. I forgot to add one. Can you please look into it as well when you return? Thanks

      Pro sport hockey - NES-TLSROM iNES Mapper 118

      Delete
    4. I've updated the tutorial for a more comprehensive list of supported boards. All of yours should be covered. I didn't look in detail, but they all are SxROM, TxROM, or AxROM boards which I covered above. You'll have to match the size of the ROMs.

      By the way, some of your games use only the 28 pin ROMs. You won't have to rewire these, just drop in the 28-pin EPROMs.

      Also, you might not be able to reproduce Mega Man 6 without dropping some money. TGROM boards are only used in Mega Man 4, Mega Man 6, and Ninja Crusaders ($25 is the cheapest I could find, though still vastly cheaper than Mega Man 4 or 6).

      Delete
    5. Thanks for your reply. Making the repros is going great. I have figured these all out now except for the battle toads and double dragon. Everything I'm looking up shows hole 31 on the pcb as ce and what I'm reading is this may need to be ran through an inverter of some sort. Have you reproduced this game before or heard of need to tie anything into hole 31? Thanks

      Delete
    6. The CE pin, "Chip Enable" must be "ON" for it to output to the NES. On the AM27C040, the chip enable pin is inverted logic (it has a bar above it). This means that a high voltage means "OFF" and low voltage means "ON". This is why we tie the pin to ground.

      Could you link me to the source you're looking at specifically? I've never run into that in my research. If the EPROM you use has a non-inverted CE pin, you'd just have to tie it to 5V instead.

      Delete
    7. Here is the link I found the information on. It is a page from nesDEV. Please scroll down the page to the AOROM pinout. You can see that hole 31 is CE (R/W) and this is what it states:

      Nintendo AOROM PRG ROM pinout - 128/256/KBytes (32pin)
      Very slight variant of the standard PRG-ROM pinout above, where an additional active high enable line is used to prevent bus conflicts.

      http://wiki.nesdev.com/w/index.php/Mask_ROM_pinout

      Delete
    8. Oh I see what you're referring to now.

      So, some AOROM boards have this pin 31 tied to CE, not /CE. This means that CE is enabled when it sees 5V on the pin.

      From this page on Nesdev: http://wiki.nesdev.com/w/index.php/AxROM

      "On the AOROM board, special mask ROMs with an additional positive CE on pin 31 (which is connected to PRG R/W) can be used to prevent bus conflicts without an additional chip. Some 128 KB games were made with AOROM to save the cost of a 74HC02. It seems that only Double Dare and Wheel of Fortune employ this trick noticeably--that is, if emulated with bus conflicts enabled, the games will glitch."

      Basically, they're just specific to the MASK ROMs that come with the game. The steps above pretty much keep you safe from encountering any problems because hole 31 is left disconnected. The /CE pin takes care of anything pin 31 needed to.

      Delete
    9. Thanks for the information. I have got the BT&DD game working flawlessly, but I have another issue I am running into on the AOROM board. I also want to make a repro of R.C. Pro AM 2 which uses the same AOROM board and mapper. I have a problem that I cannot seem to narrow down, but I would like to find out the problem before trying to program onto the EPROM. I have downloaded the ROM for this game and try to run it through the emulator you are using in this tutorial and the game always freezes on the second track you race. I tried to download a different ROM for the game and I get the same thing on the same track, just at a different place. So I have 2 theory's but both may be wrong. Hopefully you can help me out. Theory 1 would be the bus conflicts handled by pin 31 which the emulator would not be able to handle. Theory 2 would be the emulator cannot handle the mapper being used for this game(I think I would of seen that in the BT&DD while I was testing the ROM though). Any way, can you please see if you experience the same thing when you try to run the ROM on your emulator? Maybe I just have not found a good ROM, but I also hope you can find the answer to why this is doing what I am seeing. Thanks

      Delete
    10. Glad to hear it's going well.

      I think the problems you're having with R.C. Pro Am II is the emulator's fault. I ran it using Jnes 1.1 (not sure if it's been updated) and I got your freezing issue. But when I ran it on 0.6 which I had in my old files, the game ran fine. I looked online and apparently a few games have been known to freeze with Jnes. I've never had problems with it before, so this is new to me. I downloaded Nestopia, and the game seems to run fine. I got all the way to Stage 6 without any issues. Try that one and see if it works ok.

      http://www.emulator-zone.com/doc.php/nes/nestopia.html

      Delete
    11. The emulator might indeed be glitching because of bus conflicts like you said, but remember that by avoiding pin 31 completely on your reproduction, you'll avoid any bus conflicts.

      Delete
  14. Hello, dear Poor Student Hobbyist!
    Can I do this games (Metal Gear, Castevania 1, DuckTales 1/2) from this UNROM PCB (Dragon Quest 2, Saiyuuki World, etc UNROM) and (Castlevania 2, Chip&Dale 2, Darkwing Duck) from this SLROM PCB (Captain Tsubasa, World Super Tennis, etc SLROM) I think I can't, because the wiring on the board does not match. Thank you!

    ReplyDelete
    Replies
    1. Hello!

      I'm currently on vacation, so I won't be able to answer specifically until I get back, but you should be able to use those games as donors if the mappers are the same. It'll be easiest if the PCBs are the same. If not, it still may be possible depending on the wiring. I didn't include this section (converting different PCBs to other kinds) because I haven't tried it yet myself and haven't looked into it enough, so it may be possible.

      But you definitely need to use the same mappers between games (MMC1, MMC3, etc).

      Delete
    2. Mappers are the same, but wiring on the board for the first look not match. Have a look please:
      Castlevania 2
      http://bootgod.dyndns.org:7777/image.php?ImageID=5387
      http://bootgod.dyndns.org:7777/image.php?ImageID=4221
      and the donors for example Captain Tsubasa
      http://bootgod.dyndns.org:7777/image.php?ImageID=3738
      http://bootgod.dyndns.org:7777/image.php?ImageID=7973

      Delete
    3. I'm assuming you're making these games for the Famicom, as you're using Japanese-only games as donors, right?

      I think you might be ok. The only big difference I see is that the Famicom games don't have the CIC chip, which shouldn't matter because this is used exclusively for region locking, not for running the game. Both games still have the same mapper. I haven't tried different region games in reproductions before, but I know it should be possible (I've seen at least one forum post online about it). You should be able to just load the game into the EPROMs and drop them in your donor.

      Let me know if you have any other questions, and if you do try it out, let me know your results!

      Delete
  15. Right, for the Famicom. Thank you again! I let you know for the results. I think everything will be ok.

    ReplyDelete
    Replies
    1. Hello! Everything works perfect for the Famicom :)

      Delete
  16. FYI, I tried following the layouts for Swamp Thing on an slrom board but it didn't work (128k files on a 27c040). I found this layout from NES Dev that did work:

    SLROM (mapper 1):
    PRG socket:
    Bend up pins 1, 2, 24, 30 and 31 (or cut tracks)
    Solder pin 2 to hole 24 (A16)
    Solder pin 24 to GND (OE)
    Solder pin 30 to hole 1 (A17)
    CHR socket:
    Bend up pins 1, 2, 22, 24, 30 and 31 (or cut tracks)
    Solder pin 2 to hole 24 (A16)
    Solder pin 22 to hole 31 (CE or CHR /A13)
    Solder pin 24 to hole 2 (OE or CHR /RD)

    The one from NES Dev seems to closely match your Little Samson example for the prg and chr. I'm wondering if the same layout will work on tlrom boards?

    ReplyDelete
    Replies
    1. Thanks for posting this. I checked the one you provided and there's only a few differences:

      For the PRG, you have pin 30 on the EPROM to hole 1 on the board. This is fine, but it isn't necessary as A17 isn't used in 128KB sized games, so it'll still work being disconnected. Also, I have Vpp tied to 5V - not having this probably won't make too much of a difference.
      For the CHR, the only difference (besides Vpp on pin 1) is tying pin 24 to hole 2. I didn't see the OE pin on the EPROM when I wrote the guide up, so instead I tied it to ground, though these should both have the same effect. I've updated it to make it less confusing for anyone following along with the diagram, thanks for that catch.

      Not sure why my instructions didn't work, because they're functionally the same as the ones on NESDev. Maybe you miswired the first time? TLROM boards should be the same, as they use the MMC3 mapper.

      Delete
    2. It's very possible I miswired. However, I have a couple more cartridges that I think has the same wiring (one should be Chip N Dale 2 and the other is Snow Brothers). Well, a friend has them now because I wanted to have them tried on a 2nd NES.

      When I say they didn't work, the games did come on, but the image was scrambled on all 3. Swamp Thing was the only one I kept to rewire. I'll get the other 2 back after Memorial Day and check the wiring. I'll snap a couple of pictures too.

      And I'm glad to be of at least a little help. Your write up has helped me tremendously. Keep up the good work.

      Delete
    3. Hm... I've never come across scrambled visuals for the game. To me, that sounds like something wrong with the CHR EPROMs, either from programming or miswiring or something - if there's not something else wrong with the NES itself (like faulty pin connectors or whatever). Can you still play the game, like are all the buttons responsive and works control-wise? If the game turns on and works (except the graphics) my suspicion isn't in the OE or CE wiring, that should only affect if the game actually turns on or not (or at least, the graphics part since it's on the CHR EPROM). I've never tried only turning on the PRG EPROM, though I imagine you probably wouldn't get anything sensible on the screen since the NES wouldn't have any data for the sprites from the CHR EPROM.

      Can you play normal games in your NES? It's odd that all three do the same thing, did your friend ever get back to you on the games you gave him to try? Sorry for the delayed response, I've been busy moving into a new apartment this week.

      Delete
    4. For what it's worth I have had this happen to me as well a couple of times and I had it happen for 2 different reasons. The first reason is I accidentally ripped up a piece of the trace on the pcb of the chr which one of the pins wasn't making contact. You could probably use a multimeter to find that out. The second reason was I didn't clean the board well before soldering on the new chip so some of my solder spots were not making good contact. I just took my soldering iron down each pin and melted the solder on each pin for a couple of seconds to make sure the solder melted onto the contact properly. Once I did that everything was fine.

      Delete
    5. Thanks for the tip, I'll be sure to add that into the PCB prep section in the tutorial.

      Delete
  17. Hello,
    I'm wondering if you can help me out with some rims I'm having trouble with. I posted above about the wiring for a best of the best karate championship. I have tried 4 or 5 different roms and I'm having trouble programming them. When I try to program them the programmer gets almost to the end and throws an error about a memory location. Every rom I have tried is doing the same thing but at different memory locations. I'm wondering if you have ever come across this? If so is this due to the rom, the chip, or is it my programmer? Can you please see if you can find a rom that works and let me know what your findi gs are? I am also having the same problem with cowboy kid, but I have only tried 3 rims for that one.
    Thanks

    ReplyDelete
    Replies
    1. What kind of EPROMs are you using, and which programmer?

      Delete
    2. It looks like I created a new message rather than replying to yours. Please see message below.

      I am using the same programmer as you have listed above the tl866cs mini pro. The eproms I'm using are AM27C020 which are 2 mb which I believe converts to 256 kb and the prg for this game is 256 kb. If my math is correct it should be a straight burn onto the eprom. Please help. Thanks

      Delete
    3. Ok, so you've tried with multiple ROM files, have you tried different EPROMs? And before you program, are you erasing them and doing a blank check before you program them to make sure they're completely clean?

      Sorry for the delayed response - I've been in the process of moving this week.

      Delete
    4. Hello,
      I got it to work. I do erase them and always blank check. The problem I was running into was with the eproms. For some reason the am27c020 would always fail. I just doubled the file and put it on a am27c040 and it worked fine. Not sure if the chips are bad or what is going on.

      Also, do you know what is going on with the nescartdb? I have not been able to access it lately and now it is not even showing up when searched for. Thanks

      Delete
    5. That's strange, maybe your EPROM was bad. I've used them before and had no issues. Glad you got it working though!

      I just tried to load the website up, and I'm having problems as well. I checked the Nesdev forums, and the guy who runs the website runs it from a private server, and he apparently had some problems with his hard drive.

      http://forums.nesdev.com/viewtopic.php?f=5&t=14335&p=172351&hilit=nescartdb#p172351

      If you need to look something up you could try this website:

      http://tuxnes.sourceforge.net/nesmapper.txt

      It's a bit harder to go through and is purely text based, but it'll get the job done in a pinch.

      Delete
    6. Luckily I copied every pcb class down and what games are on each one. The only problem I will have is knowing which game uses what kind of mirroring, but that is an easy fix if it is wrong. Thanks

      Delete
    7. The second website I linked has the mirroring for each game, if you wanted to look it up to be sure.

      Delete
  18. Hello,
    I am using the same programmer as you have listed above the tl866cs mini pro. The eproms I'm using are AM27C020 which are 2 mb which I believe converts to 256 kb and the prg for this game is 256 kb. If my math is correct it should be a straight burn onto the eprom. Please help. Thanks

    ReplyDelete
  19. Hello, congratulations for the site and the guide. Very useful!
    I wanted to ask, you need to use a donor with the same MMC3?
    For example, MMC3A with MMC3A? or can I use a B or C?
    Thank you so much!

    ReplyDelete
    Replies
    1. Thanks! Glad I could help out.

      The A, B, and C versions do not matter, you can use them interchangeably. I can confirm this as I've done two MMC3 reproductions now and both were using different MMC3 chips.

      Sorry for the delayed response - I've been in the process of moving this week.

      Delete
    2. Thanks a lot for the answer. I noticed that NesCartDB is down.
      I would like to create a copy of Megaman, but do not know where to take the news about it.
      On http://tuxnes.sourceforge.net/nesmapper.txt, I think that the news is incomplete, copy them here:

      Mega Man 128k PRG / 0k CHR UNROM V (2)

      What do you think?

      Delete
    3. Sorry again for the late response, what exactly are you looking for here? Mega Man is of the UNROM class, so you should be able to pick another UNROM game from the list to use as a donor cartridge. You'll only need one EPROM, as it only uses the PRG EPROM.

      Delete
    4. Now I get it. because I thought they were incomplete. So I can only remove an EPROM and leave the empty original?

      Delete
    5. Looking at this website on Nesdev wiki: http://wiki.nesdev.com/w/index.php/UxROM

      UNROM uses CHR RAM, which you don't need to replace. Make sure you're taking the PRG ROM out and replacing it, not the RAM. It should be marked on the PCB.

      Delete
    6. Hello, I'm back with results a bit shoddy. I found a donor for megamen, I unsoldered the PRG, programmed with the same programmer who uses you, put everything mounted on the card, but the screen remains completely black. Can you tell me what could be?
      Thanks so much

      Delete
    7. To help you, let me ask you a few things:

      1) Which donor game are you using?
      2) Which EPROMs (model number) are you using?
      3) Did you try the things in step 8 to troubleshoot it?
      4) Can you hear any sound when you turn the game on?

      There could be a number of things wrong, but I'll try to help you figure it out best I can!

      Delete
    8. Thanks a lot for the answer. I'm using the game as a donor (the Black bass), EPROM (M27C512), I settled everything to the card but still does not work, therefore I unsoldered all, no sound, only a black screen. The ROM is Megamen of 128kb, I quadrupled to reach 512, so as to cover all the capacity of the EPROM. When I do the test with the programmer, are all positive. Obviously ROM megamen NTSC on donor NTSC. Thanks so much

      Delete
    9. Ok, on your board:
      http://www.thenesdump.com/board%20pics/UNROM.jpg
      You took out the right chip, correct? The left is the RAM. Just wanted to make sure.

      Also, did you double check the wiring in the UNROM reproduction section of the tutorial? There's 28 holes, but you have 32 pins for your EPROM. So four pins should overhang to the right.

      Also, have you tried other games in your NES before? Someone else that commented on here actually had a problem with his NES, I believe. Make sure a normal game works. And if that's true, maybe try cleaning the contacts on the bottom of the cartridge of your donor game. It might not be making good contact in the NES.

      Delete
    10. Thanks so much. I had not read the part about UNROM. Now it's clear. I ask just one more thing, I use the original EPROM? Since, however, it is empty. Thank you very much for your availability.

      Delete
    11. I didn't see that you were using the M27C512 EPROM when I read your comment last. I can understand what's happening completely now - your EPROM is too small. Sorry I missed that earlier!

      EPROMs (the chips) are defined in bits, where as ROMs (the game file) are defined in bytes. Eight bits equal one byte. So your 128 kiloBYTE game needs at least a 1 megaBIT EPROM (128 x 8 = 1024).

      The largest game your M27C512 can hold is a 64 kiloBYTE game. There's still a large library of these, though, so you can use those chips in other games you want to make.

      I'm going to update the section where I talk about EPROM sizes to have this disclaimer in larger text. Sorry you missed it! It's pretty confusing, I made the same mistake as you actually when I was still learning how to make them.

      If you need any other help, let me know.

      Delete
    12. Thanks for the explanation! I find it strange that alerts the programmer that the EPROM is small for the file. Anyway, could you tell me the EPROM from 1 megabit with 28 pins? I will try to reuse the 512. Thanks for the help.

      Delete
    13. 1 Megabit EPROMs are only in 32 pin packages. You could use the AT27C010 as a 1Mbit EPROM.

      I use the AM27C040 EPROMs, only because they're the largest EPROMs you'll ever need - they can hold any NES game. The price difference between this 4Mbit chip and the 1Mbit version is negligible.

      As they are 32 pins and you only have 28 holes, you'll have to do a few special things, which I cover in the section in Step 7 for UNROM boards.

      Delete
    14. Hello, I tried everything, I planned a EPROM 4MB (AM27C040), I doubled the ROM 512. Follow-up to the guidance on the special steps, but nothing, always black screen. I do not know what to do. I'll have to resign ourselves to not create my copies of games :D

      Delete
    15. So you have the AM27C040, and your ROM is 128KBits, or 1MByte. You will need to quadruple (4x) the ROM, and then load it onto your EPROM, not double it. This will make your 1MByte game a 4MByte game.

      Now, take your AM27C040, and bend up pins 1, 2, 24, 31, and 32. Pin 1 is located by the dot on the top of your EPROM, make sure you don't have it in backwards or anything.

      Place your EPROM into the socket. Pins 1, 2, 31, and 32 should not have any holes, they should be hanging over the board because there are only 28 holes in a UNROM board. So, pin 3 of the EPROM should be in hole 1 on the board.

      Now, connect pins 1, 30, 31, and 32 together with wire or solder. Pins 1, 31, and 32 are three of the four pins that should be bent up and overhanging the PCB. Pin 30 should be in hole 28.

      Connect pin 2 to hole 22. This is the 22nd socket of the 28-pin socket, don't reference it off of the EPROM. It'll be the eighth hole counting up from the bottom of the EPROM on the right side.

      Connect pin 16 to pin 24.

      Hopefully this helps!! It's difficult to troubleshoot, unfortunately.

      Delete
  20. I need some help since the nescartdb has been down for some time now. I am interested in making a Holy Diver english translation reproduction. I am very confused on what I can use for a donor since this was a famicom exclusive. Please help. Thanks

    ReplyDelete
    Replies
    1. I figured this out, sorry for the inconvenience it was just a mapper issue. Is there another site to go for this info since the nescartdb is down? Thanks

      Delete
    2. Sorry I didn't respond earlier! I didn't see your comment notification in my inbox.

      Here's another website you can use - http://tuxnes.sourceforge.net/nesmapper.txt
      It's a bit rough around the edges, but it provides the basic information. Let me know if you need more help.

      Hopefully Nescartdb gets back up soon.

      Delete
  21. Hello again dear PoorStudentHobbyist!
    I am trying to make the Duck Tales Repro using UNROM donor and 28 pin EEPROM AT28C256
    I watched Maskom 128K pinout:

    PRG ROM - 128KBytes (28pin):

    ---_---
    PRG A15 - |01 28| - +5V
    PRG A12 - |02 27| - PRG A14
    PRG A7 - |03 26| - PRG A13
    PRG A6 - |04 25| - PRG A8
    PRG A5 - |05 24| - PRG A9
    PRG A4 - |06 23| - PRG A11
    PRG A3 - |07 22| - PRG A16
    PRG A2 - |08 21| - PRG A10
    PRG A1 - |09 20| - PRG /CE
    PRG A0 - |10 19| - PRG D7
    PRG D0 - |11 18| - PRG D6
    PRG D1 - |12 17| - PRG D5
    PRG D2 - |13 16| - PRG D4
    GND - |14 15| - PRG D3
    -------

    AT28C256 has little different pinout:

    PRG ROM - 128KBytes (28pin):

    ---_---
    PRG A14 - |01 28| - +5V
    PRG A12 - |02 27| - PRG WE
    PRG A7 - |03 26| - PRG A13
    PRG A6 - |04 25| - PRG A8
    PRG A5 - |05 24| - PRG A9
    PRG A4 - |06 23| - PRG A11
    PRG A3 - |07 22| - PRG OE
    PRG A2 - |08 21| - PRG A10
    PRG A1 - |09 20| - PRG /CE
    PRG A0 - |10 19| - PRG D7
    PRG D0 - |11 18| - PRG D6
    PRG D1 - |12 17| - PRG D5
    PRG D2 - |13 16| - PRG D4
    GND - |14 15| - PRG D3
    -------
    So I am bend up pins 1, 22, 27
    Solder pin 1 to hole 27 (A14)
    Solder pin 22 to to 14 (GND)

    What should I do with WE (pin 27)
    The game does not work.
    P.S. I am burn 2x PRG 128+128 to the AT28C256.

    ReplyDelete
    Replies
    1. Hi again!

      Sorry to tell you this, but your EPROM is not big enough. EPROM sizes are defined in bits. The ROM sizes are defined in bytes. One byte is eight bits. See near the end of Step 2.

      You can see that in the original pinout of the board, the data lines go up to A16, where your EPROM only goes up to A14. The part of the tutorial you are following are for 32-pin EPROMs.

      You're probably wondering why there's a 28-pin EPROM at that size. It is not normal, I actually cover UNROM specifically in the tutorial, right before I talk about battery back ups and before the diagram of the diode. UNROM boards are a special case, because they require 32-pin EPROMs but only have 28 hole sockets.

      What you'll have to do is get a larger EPROM, at least 1MBit large (which is equivalent to 128 Kilobytes).

      Sorry if my tutorial was a bit confusing! I'll add a disclaimer at the top of that section to be more clear about it, and try to clear up any confusion in the text.

      And as a side note, the WE pin is called "Write Enable" for this particular manufacturer. It's the same as the PRG pin. I'll also add that into the tutorial as well.

      Let me know if you need any more help!

      Delete
    2. But this EEPROMs is 2 Mbit. I ordered 10 pcs :( Now I burn the PRG on it and for another PCB (CNROM) PRG and CHR.
      Here what I found in NesDev:
      http://forums.nesdev.com/viewtopic.php?f=28&t=13805

      Delete
    3. And for CNROM its work fine:
      pin 1 to hole 27 and pin 27 to pin 28 - at both prg and chr.
      Now I need combine this with conversation for UNROM:
      UNROM (mapper 2):
      Bend up pins 1, 2, 24 and 31
      Solder pin 2 to hole 22 (A16)
      Solder pin 24 to GND (OE)
      For my understanding no need additional conversation for UNROM.

      Delete
    4. http://www.atmel.com/images/doc0006.pdf

      That's the datasheet for the EPROM you listed, the AT28C256. It's only 256KBit, or 32KByte large. You can verify this size by calculating 2 to the power of the amount of output data pins there are (A0 to A14, so 15 pins) and multiplying it by how many data pins there are (D0 to D7, so 8 pins). 2^15 is 32768, times 8 is 256Kbits. Since there are 32768 possible addresses for each byte, it is 32KByte large.

      These chips only have 28 pins, are you sure you're not using a different EPROM? I see that you called out pin 31 in your second comment about the UNROM. Follow step 7 under the section "Reproducing a UNROM board".

      Delete
  22. great tutorial, but I have some questions:
    I used a M27C512 and put FInalFantasyI+IIT+Eng Demiforce1.00 on it (blank check ok, verify ok)
    FF according to the list uses a MMC1, 512K PRG, 0k CHR.
    I uses a PAL-B Turbo Racing as it has a battery and MMC1 layout. I swapped out the PRGs, leaving the CHR etc. in place of course, but the nintendo won't even power on. The LED stays out. As the M27C512 is a 28pin, I did not rewire anything. The Turbo Racing board is 32pin compatible, but the last 4 pins are "soldered", as it used a 128k PRG.

    Have I done anything wrong ? Can I put any region rom onto the according EPROMS and will they work on PAL boards, or do I need an NTSC board (and vice versa) ?

    ReplyDelete
    Replies
    1. did a second try, removed the PRG, installed a Zelda Outlands on another 512k (M27C512). Before burning, i copy /b the 128k Zelda to one 512k Zelda. NES lights up, but stays grey. I have to mention that i test everything on a well working dezoned european (formerly pal-b) NES.

      Delete
    2. ok i guess i found out..the M27C512 has only 64Kbyte space...too stupid..don't even know why I ordered those lol..funny fact that the GQ-4X doesnt even give an error..

      Delete
    3. have a lot of M27C801 left, could they work too ? those are 1Mbit afaik,32pin

      Delete
    4. Hi T,
      Good job catching your problem! Makes my life easier haha.
      The M27C801 are 1MByte, 8Mbit. They will work, the only difference from the EPROMs I have in the tutorial is pin 1 on the 801 is A19, so bend the pin up and leave it floating.
      Also, as far as I know, the region the ROM is from shouldn't make a difference, as the CIC chip on the PCB should handle that separately. If you were to use an NTSC PCB on a PAL NES, you'd have to remove the region locking.

      Delete
    5. all my consoles are dezoned, no problem ;) also got a US NES

      do you have some more precise wiring+bending for the C801 ?

      Delete
    6. It'll be the same as the 512KB PRG rewiring above in step 7, but just don't connect pin 1 to anything.

      Delete
    7. many thx ! I'll report back with results

      Delete
  23. Seems I'm doing sth wrong, allthoug it looks like your setup.
    Using M27C801 (1Mbyte) Chip. I have tested with a translated Finalfantasy1+2 (pictures) and a Zelda outlands, 8x 128Kbyte.
    http://abload.de/image.php?img=img_20160731_145037cts1g.jpg
    http://abload.de/image.php?img=img_20160731_1450572ssvt.jpg
    http://abload.de/image.php?img=img_20160731_1451073jsqk.jpg


    I just left pin1 bent up and left it. Pin 32 is not connected at all, am I right ? (you could add this to the tutorial). Then:
    Connect pin 24 to pin 16
    Connect pin 30 to hole 1 (hole 1 was not a whole, as my donor, Turbo Racing, was not using the hole, as it was a 28pin-game)
    Connect pin 31 to hole 2 (same as hole 1, was not used).
    What did I do wrong ? Both games only use PRG. Aren't they compatible with my board ?
    Gnaa difficult stuff...

    ReplyDelete
    Replies
    1. Your pictures show it has 32 pins - the four holes that weren't used by the EPROM were just filled in with solder. They still connect to the correct spots. I referenced this in one paragraph:

      "These new larger ROMs would require a new layout on the PCB. But, some games only required the CHR or the PRG ROM to have more space. They only required the 28-pin package. In order to keep the PCBs generally interchangeable, Nintendo decided to use 32-pin ROMs with a modified pinout so that the board would accept both the 32-pin and the 28-pin chips. Remember how I mentioned that games which don't utilize all 32 pins just let four of them alone? These four pins are the added pins to the larger ROMs. If the game developer didn't need to use all the extra space on the ROM, they could use a smaller one and still be able to place it in the same PCB."

      Your game has 32 holes available, but only needed to use 28 of them, so the last four were just unused. You can still use them, though! These are the directions you should follow:

      1MB PRG ROM:
      Bend up pins 1, 2, 24, 30, and 31.
      Connect pin 2 to hole 24
      Connect pin 24 to pin 16
      Connect pin 30 to hole 1
      Connect pin 31 to hole 2

      Pin 32 should be in the board as normal, not bent up. The reason it's not working is because the EPROM isn't getting any power - pin 32 supplies power to the chip.

      Hope this helped!

      Delete
    2. oooooooooooooook...damn I thought that you clipped off your PIN32 on your pics ! So basically I just have to put Pin32 into Hole32 and I'm good..will report back! Thx for your help, really appreciate that you take your time to fix stupid people's problems ;) (remembers me what I do at work lol)

      Delete
    3. k doesn't work...

      i tried again with my final fantasy on a MMC1 board (NES OPEN), no chance.

      Delete
    4. used another nes golf board with original US Final fantasy 1, and it works.
      Must figure out why hacks like FF1+2 or Zelda Outlands do not want to run on the SNROM Board

      Delete
    5. Hey T, sorry I've been away for a bit.

      Did you every figure this out? I checked the tuxnes.sourceforge.net website, and it seems like you should be ok, but I did find another, more comprehensive website that just recently launched in the absence of NesCartDB.

      http://mimeones.com/nescartdb

      When I type in FF1&2, it looks like there's only one compatible cartridge, as it is a SXROM type. I guess the sourceforge website is incorrect, really sorry about that. But, NES Open is listed as a suitable donor for The Legend of Zelda, have you tried Outlands as well? I haven't personally reproduced that hack, so I'm not sure if it needs anything extra. I'll try to do some research this week about it.

      Delete
  24. Trying to repro bomberman 2 onto nes open golf, requires 28 pin prg only, removed 32 pin and put in only 28 pin chip for prg. Not working any thoughts? do I need to take off batt or BeND any pins?

    ReplyDelete
    Replies
    1. You should not have to bend any pins or take the battery out. Make sure you're putting the EPROM into the right sockets - you want the outside 4 pins to be empty.

      What EPROM are you using? What exactly are the symptoms when you try to put the game in? You haven't taken anything else off, right?

      Delete
    2. if your looking at the board the chip is installed all the way to the left of the 32 pin socket. I am using a Texas Instruments TMS 27C256-20JL EPROM 256MB CERDIP for the chip. No game comes up just different shades of grey blocks then after playing with it for a bit it goes to color blocks. The four pins to the right empty?

      Delete
    3. The chip looks like it should work fine. What you're describing sounds like your NES might just not be reading the game correctly, like if the game was old or the contactors are dirty/rusty. Did you try the donor cartridge out before you swapped the EPROMs? Do other games work on your NES?

      Delete
    4. yes nes plays other games fine, could just be the donor cart. I will have to get another one and try it. I did clean the contacts good and still a no go. I am gonna go with, either I damaged the board removing the old chip or it never worked.

      Delete
  25. FYI I used (Texas Instruments TMS 27C256-20JL EPROM 256MB CERDIP) for the chip

    ReplyDelete
  26. I tried to make a duck tales 2 repro tonight and had no luck again, used commando for donor, Only one chip to be programmed, PRG, which should be a 128kb chip, but again i am using the TMS 27C256-20JL. I tested the game before unsoldering old chip and it worked fine. Am i burning the new chip wrong?? I am using Binary, with normal read mode, and normal fill mode, also has a feature for file offset which is 000000, i tried with everything defaulted but removed the offset. Am i doing this wrong? Also do i fill this chip with FF or 00 or not any fill at all. I am using the GQ-4x4 programmer.

    ReplyDelete
    Replies
    1. Oh wait, Duck Tales 2 is 128KB, which is 1Mbit. You need at least 1Mbit chips, yours is only 256Kbit (1 byte = 8 bits). I explain this in step 2. Your 256KBit chip can hold games up to 32KB large. Sorry I missed that in the original comment.

      Delete
  27. So I ordered the chips you recommended which should be sufficient for what i need. The question i have is with Bomberman 2 and Ducktales 2 they both used 28 pin chips and now i will be using 32, and i saw the wiring that you would have to do, which i am fine with, but the bomberman 2 cart donor (NES OPEN TOURNAMENT GOLF) has 32 pin holes, do i still have to use wires? i am guess so considering the old chip setup.

    ReplyDelete
    Replies
    1. Yes that's right, any chip that is 32 pins requires rewiring, no matter how many holes are in the socket.

      Delete
  28. Last question and i think i will be good, what about the offset when burning the eprom? Leave it defaulted to 000000 or take the offset out? I am guess all the default values are good?

    ReplyDelete
    Replies
    1. I'd keep it zero. I never needed an offset before.

      Delete
  29. I tried again tonight and ran into issues, when i have a 128KB program and i copy it and add together 4 times to fit on a AMD AM27C040, which wiring scheme do i follow 512KB or 128KB wiring? This is for bomberman 2 using a donor NES OPen Tournament game.

    ReplyDelete
    Replies
    1. You still follow the 128KB wiring. Let me know how it goes!

      Delete
  30. Successfully made Ducktales 2 from Commando game!! But i am having issues making RC Pro AM 2 with a copy of Jeopordy! I followed the directions putting the 256KB file to a 512KB file and then burning it to a 4Mbit Eprom, following the 256KB wiring on a AOROM board not working, everything i try the game it says unknown cartridge. Not sure what i am doing wrong.

    ReplyDelete
    Replies
    1. Wait.. it says "unknown cartridge" on the TV?

      Delete
    2. Yes, found out that it was just the retron 5 not supporting RC Pro AM 2!! Everything else so far that i have made has worked, had issues with Duck Tales 2 but it was just the vertical / horizontal solder bubble. Thank you so much for your help!! I can now make these with no problems.

      Delete
  31. I have run in to something interesting tonight, i found that using a copy of Bad Dudes is common for me for donors but noticed tonight that there were two different boards used a TLROM-01 which has 2x 32 pin sockets in the pcb, the other is a TL1ROM-01 and it has a 28 pin socket for CHR and a 32 for PRG, can i use a 32 pin prom for this TL1ROM board and if so what would be the pinout??

    ReplyDelete
    Replies
    1. TL1ROM-01 and TLROM-01 both have two 32 pin sockets according to NesCartDB:
      http://bootgod.dyndns.org:7777/pcb.php?PcbID=409
      http://bootgod.dyndns.org:7777/pcb.php?PcbID=411
      Do you have a cartridge of Bad Dudes that only has a 28 pin socket?

      Delete
  32. please look again, I counted 28 on chr side of TL1ROM, even checked the link you sent and board only has 28 pin socket in board for chr, not sure this can be done, maybe some fancy wiring.

    ReplyDelete
    Replies
    1. There's a 28 pin CHR EPROM in the board, but there are four more holes (two on top and two on bottom) to the right of it. This is what I mean by the 32 pin socket. Some games had custom EPROMS that allowed them to use 28 pins with the larger game sizes, but we will need all 32 since we only have standard ones available.

      Delete
  33. I have a question, going to be using my first donor cart nes play action football, which jas dual 32 pins. The game im putting on only needs 28 pins for both. Which side would have the 4 empty pins on right side of chip or left (for both). Its alot smaller game but uses mmc3 mapper.

    ReplyDelete
    Replies
    1. What game are you trying to reproduce? I don't think there's any game that only needs a 28-pin EPROM but uses an MMC3 mapper.

      Delete
    2. Opps forgot more info. Here is board im using for donor, http://bootgod.dyndns.org:7777/profile.php?id=225 .

      It is smb2j lost levels. The mapper is 004, mmc3, was converted from fds format from loppy. The prg is 64k and chr is 16k. I am new to this and really dont want to do wires, least without some help, so i was wanting to use lower chips. It looks like the prg already has 28 pin chip with the 4 empty pins on the right, however has 32 pin on chr. Would it be the same for that chip too, have empty pins on right?

      Delete
  34. Smb2j lost levels, 64k and 16k converted to mm3 mapper 004.

    ReplyDelete
    Replies
    1. Oh, it's a hack? I don't have a lot of experience with hacks like that, but the way Nintendo does it is putting Pin 1 on the EPROM in Hole 3 on the PCB. Let me know how it goes!

      Delete
    2. Didn't work, all i get is gray screen. I verfied the burns and got solid solder on all the pins. Using 27c512 on both, the prg was 64k so burned as is. The chr was 16k so i copied it 4 times to match the chip. I guess certain holes are different. Hopefully can get chips back out without destroying them. Im using bill and elliots nascar challenge. Where can i find the pin info of 28 chips (i see 32 pin's)

      Delete
    3. Here's a list:
      http://nesdev.com/EPROM%20Pinouts.txt

      I wonder if it would be a better idea to use 32 pin EPROMs and rewire it according to the tutorial, and just duplicate the files to fill up the larger EPROMs.

      Delete
    4. Yeah I'm gonna do that. Wish i could put it on smaller cart but idk programming yet and it was converted to mmc3 from famicom disk format. I will post update when i get the 2 27c010 chips and new mmc3 donor (part of trace got ripped off from stubborn solder, did too good of job joining it xD). Tbh i am wanting to learn to make my own nes, however there is several games never made it here i would love to have. Its funny, i got snes, wii u, ps3/4, only one hooked up is my nes. Idk if it's the memories when I was little, or simple fact of how good the games were.

      Delete
    5. I'll admit I don't fully understand the details of mappers, and I wish I did. I wanted to try making my own NES cartridge PCBs and possibly program my own games.

      I have eyed making Romhacked games, so let me know how the rest goes for you. I have like four other projects I'm working on right now so I probably won't get to the Romhack repro for a while though :P

      Delete
  35. Hello "The Poor Student Hobbyist",
    I was wondering if you happen to know any information for making a Nintendo 64 reproduction cartridge or even a Nintendo 64 flash cart (like the everdrive 64, which can access games off an SD card).
    [both would be used personally, lol]

    ReplyDelete
    Replies
    1. From what I've seen online, N64 reproductions are very difficult to do, and only really profitable in mass quantities (hence, why you see few flash carts being sold and at a high price). The way the N64 handles the ROMs are a lot different than NES and SNES, so it's not as simple as making your own EPROM and dropping it into the PCB. The onboard chip has much more information in it than just the ROM file. I'm not sure how flash carts are made, and I can't find much information about it online.

      Sorry :\

      Delete
  36. Hello!! I find your work incredible, it has served me well. forgive my bad English.

    I have a doubt with Kid dracula, I already have the rom patched to English and match in pgr and chr, but what I can not find is what kind of donor card to use, could you guide me?

    Is the memory eprom AM27C040-120DC okay? Or which one do you recommend to buy?

    Greetings and thanks!!!!

    ReplyDelete
    Replies
    1. Hi kaba,

      Is this the game you're referring to? http://bootgod.dyndns.org:7777/profile.php?id=3987

      You should be able to use any UNROM donor cartridge. You'll have to follow the special instructions I have for the UNROM wiring. UNROM games only have PRG ROMs, the CHR is RAM so you don't have to replace them.

      The EPROMs in the ebay link you have below would work just fine.

      Good luck!

      Delete
  37. Hi again, this eprom works?

    http://www.ebay.com/itm/10pcs-AM27C040-120DC-27C040-UV-EPROM-4M-DIP-32-/251611869164?hash=item3a953c6fec:g:c2kAAOSwRLZT5JKR

    ReplyDelete
  38. Hi again, this one.

    http://bootgod.dyndns.org:7777/profile.php?id=3985

    ReplyDelete
    Replies
    1. Kaba,

      If you're making this game on an NES cartridge, not a Famicom cartridge, then unfortunately it's impossible. Only Japanese Famicom games used this mapper, no other region uses it, so you'll only be able to reproduce it on a Famicom PCB. You can read more about it here at this forum post - http://forums.nesdev.com/viewtopic.php?f=10&t=7349&sid=cd6b217ac9f6eaf27a14f02f222fd97d&start=15

      Sorry!

      Delete
  39. What other type of eprom 32 dip works?
    I was thinking of this http://www.ebay.com/itm/272041593713

    Greetings and thanks!!!!

    ReplyDelete
  40. Looks like you still keep up with this page so i'll comment. There are new pcbs available so you don't have to kill original games to use as donors. I just posted my pcb for sale on my site today in fact, it's a $2 pcb and will do 11 of the simple mappers.
    https://www.game-tech.us/product/reprox/#reprox-pcbs

    ReplyDelete
    Replies
    1. Hi, thanks for the information, I think it's great, but for example if I want to do NES-TLROM (litle samsom, Jetsons,) do these pbc's serve me? O for dragon warrior 3 or 4?

      I'm going to buy 20 to start: D

      Delete
    2. No the reproX is only for the simple mappers, I am trying to get complex mappers going though.

      Delete
    3. I have seen PCBs before, but sometimes a $5 game would be cheaper to rip up than to buy the PCB and all the extra components. And, as you said, this only works for the simpler games.

      Still, very nice design and website!

      Delete

  41. Hi there, for nes-slrom is the same procedure shown here?

    Do you plan to make new cards for snes to sell?

    ReplyDelete
    Replies
    1. SLROM uses MMC1 mappers, and have either 128 or 256KB PRG ROMs and 128KB CHR ROMs. Follow the steps under the section "Games that use MMC1 mappers (SxROM boards) and MMC3 mappers (TxROM boards), also applies to AxROM boards"

      SNES reproduction is much more difficult than NES reproduction, but it is an area that I am looking into.

      Delete

  42. Hi again, I bought a mini pro-programer as you have, do you know if there is an adapter to use 42-pin memories in our programmer model ?? I was thinking about making sega genesis games now.

    Thank you very much and greetings!!!

    ReplyDelete
    Replies
    1. Hi kaba,

      Sorry it took so long to get back to you, 40 pins is as large as you'll be able to get it unfortunately. What chips are you looking at?

      Delete
  43. Hello, any advice to make a dragon warrior 3 or 4? nes-surom pcb,
    Which pcb could I use to do this?

    ReplyDelete
    Replies
    1. I believe it is possible, because SNROM is very close to SUROM, but I'd have to take a closer look. You might be able to google it, like "SNROM to SUROM" or something. I won't have time to do that for a bit, but if you can't find the answer let me know.

      Delete
    2. I literally just made an SUROM Dragon Warrior 3 using a board from Retro Stage (SxROM) and it worked mostly. Not sure if its the memory mapper that shipped with the board, if I burned using a bad rom (works normally in FCEUX), the burn to the EPROM wasn't successful or what. I'm continuing to document bugs as I go so if anyone is interested I'll continue to post here.

      I have another EPROM and a I have a 32-pin DIP socket on the way (i should have used the socket for a dev board to begin with...le sigh live and learn) but I'll be installing that and trying with another chip and another ROM.

      Delete
    3. Oh I should have posted this. The bank switching for the graphics appears to be working normally. I'm able to switch from town to castle, town to field map (haven't tested a dungeon yet), and battles are working as prescribed, but when I go to add characters to the party the game flat out crashes. Creating characters causes graphics corruption...

      Delete
  44. This comment has been removed by the author.

    ReplyDelete

  45. Hi there, thank you very much for answering your work has been very useful to me, and I could do several TLROM games.
    In what I have doubt is with the UNROM use memories AM27c040, and followed all the steps but I can not make it work, any advice?

    ReplyDelete
    Replies
    1. Kaba,

      Glad to hear it! The UNROM board is a bit trickier, were you following the instructions in that section? Here it is copy pasted from above, if you missed it.

      Reproducing a UNROM board:
      This board is a bit weird. It uses a 128kB ROM, but doesn't have room for a 32-pin EPROM. There aren't any 28-pin 128kB EPROMs available, so that means you still have to use a 32-pin EPROM instead. It's... different. But not hard. Just be very careful when you're modifying the board.
      On the PRG ROM:
      Bend up pins 1, 2, 24, 31, and 32.
      Connect pins 1, 30, 31, and 32 together.
      Connect pin 2 to hole 22. (Hole 22 corresponds to the 22nd socket of the 28-pin socket on the PCB. It's the eighth hole from the bottom on the right side.)
      Connect pin 16 to pin 24.
      When you place the EPROM into the board, make sure that pin 3 is placed in hole 1 on the PCB. Pins 1, 2, 31, and 32 should overhang on the PCB.

      If you still have issues, let me know. You might have put the chip in the wrong first pin, that's something easily missed.

      Delete

  46. Hi my dear friend, for SLROM chip & dale 2, using two AM27C040 will be fine? I was thinking donnor card tecmo bowl.

    ReplyDelete
    Replies
    1. Hi kaba,

      Two AM27C040 will work fine, and Tecmo Bowl would be a good donor. Though, I think Tecmo Bowl is a more expensive game than others. I believe I used Bases Loaded II instead.

      Delete
  47. Hello my dear friend, will there be a way to send you photos of the Unrom that I made so that you can tell me that I am wrong? Continue to give me black screen. regards

    ReplyDelete
    Replies
    1. Kaba,

      I forgot to say in my previous post - I am sorry for such a delay in my response! I've been working on a project for one of my college classes a lot, haven't had much time. You may certainly email me photos and I can take a look at it, but I can't guarantee I'll be able to determine what is wrong.

      thepoorstudenthobbyist@gmail.com

      Delete
  48. This comment has been removed by the author.

    ReplyDelete
  49. Hi friend, I was able to run the unrom, there was no continuity in a pin, I already worked ducktales 2, thank you for your support, the one that did not work was the chip & dale 2 slrom, I will check if there is continuity in all the pins.

    ReplyDelete