Imported from GitHub: MouseBiteLabs/Super-Nintendo-Cartridges · commit 3de969f · license CC-BY-SA-4.0
Description
A collection of Super Nintendo cartridge circuit boards
README
Super Nintendo Advanced UV Cartridge (SNES-8XJ8D-01C)
This is an updated design of my old SNES Advanced cartridge boards, which utilize older UV EPROM chips 27C160 and/or 27C322. Functionally, this design is the same as the older one, but under the hood I have ported the project over from Eagle to KiCad, and heavily cleaned up the schematic and some of the trace routings. This version is also fully open source.
This cartridge covers over 95% of the entire SNES library, capable of any standard cartridge but not those with co-processors, such as SA-1 or SuperFX. You can backup games onto it with the following settings:
- All memory maps supported: LoROM, HiROM, ExLoROM, and ExHiROM
- Can be programmed to operate as a multicart, changing games by pressing the SNES reset button
- Up to 8 MB of ROM space for a single game or 4 MB of ROM space for two games
- Up to 128 KB of RAM space for a single game or two separate banks of 64 KB RAM space for two games
All gerbers and source files can be found in this repo, as again, this project is fully open source. Please read all instructions before attempting the project.
Tutorial Video
This video is older, but still applies to this board.
Important Things Before You Start
- Please review the wiki for more information about using the circuit boards, instructions for how to program them, and example builds.
- When soldering parts on, it's a good idea to put kapton tape or otherwise cover the bottom cartridge edge. You do not want to get solder on the cartridge contacts.
- I am not responsible for any damage you do to your self or your property. Attempt this project at your own risk.
- I do not guarantee design compatibility. You may encounter issues with certain games. There is also a chance I have made an error in the design or the BOM - if this is the case, I will do everything I can to address the problem as quickly as possible.
- If you are using this board to make games other than for personal use, you must have permission from the originator to use and distribute any ROM images or other related material. You are responsible for making sure you adhere to any license requirements.
DO NOT use my circuit boards for profiting from stolen work - this especially includes homebrew content, ROM hacks, and using fan-made labels without permission from the originator. Support ALL original creators!
Board Characteristics and Order Information
The zipped folder contains all the gerber files for this board. The following options must be chosen when ordering boards for yourself.
- Thickness: 1.2mm
- Surface Finish: ENIG
- Gold Fingers: Yes, 30° chamfer
I sell this blank circuit board on Etsy, so you don't have to buy a bunch of multiples if you don't want to. (Click the banner!)
You can use the zipped folder at any board fabricator you like. You may also buy the board from PCBWay using this link (disclosure: I receive 10% of the sale value to go towards future PCB orders of my own):
Required Equipment
- You will need basic tools, like a soldering iron.
- You need a way to program the ROM chip(s). There are two ways I have programmed them in the past:
- Using the T48 programmer with my 27C322 to TL866 Programming Adatper board. The programming adapter is compatible with the T48, and it allows you to program the 42-pin EPROMs (27C160 and 27C322) with the 40-pin T48 programmer. OR
- Using the GQ4x4 programmer with the ZIF adapter board that comes with it.
- This cartridge uses the PIC12F629 with the SuperCIC code to fake out the lockout chip. You will need a way to program these PIC chips. I use the T48 to do so, but you can also use something like the PICkit 3. Note that if you have region modded your SNES, you won't need the lockout chips in the cartridges.
How to Program
Please check out the wiki pages on how to prepare the ROM and program the cartridge.
Board Configurations
This board is highly customizable. You do not need every single part on this board to make a game. The game you want to make is mainly dependent on the memory mapping (LoROM, HiROM, etc), the ROM size, and the RAM size. Depending on your needs, you only need to solder on certain components, which you can find below in the BOM section. You will also need to configure the game with the various solder jumpers on the back of the board.
I highly recommend checking out the various examples of board configurations on the wiki.
Components Required
I've split up the requisite parts into a few different "Groups" which you can find a comprehensive list for in the BOM section a few sections down from this one.
- Every board needs Group A components. You can make LoRom or HiROM games that have no RAM and are up to 4 MB large with this configuration.
- If you need RAM space, add Group B components. This will add up to 128 KB of RAM space.
- If your game is larger than 4 MB, it will use the ExLoROM or ExHiROM memory mapping. Add Group C components for this.
- For multicarts, you can make a board with two games on it up to 4 MB each. You will need Group C components, as well as Group D components.
Socket Configurations
If your game is the LoROM or ExLoROM mapping type, solder U3 (and U4 if necessary) in the bottom set of sockets (labeled "LO" on the left side). If your game is of the HiROM or ExHiROM mapping type, solder U3 (and U4 if necessary) in the top set of sockets (labeled "HI" on the left side). Furthermore, if you are making a LoROM or ExLoROM game that has SRAM, then populate the U8L socket. If you are making a HiROM or ExHiROM game that has SRAM, then populate the U8H socket. Note that you can populate both U8L and U8H without issue, if you want.
If you are making a multicart, both games must be of the same mapping type. You cannot make one HiROM and one LoROM game in a multicart.
Keep in mind that the 27C160 can hold up to 2 MB of ROM data, and the 27C322 can hold up to 4 MB. You can use either of those chips in ROM slots 1 and 2, but if you are going to make an ExLoROM or ExHiROM game, ROM1 needs to be a 27C322. ROM2 in this case can be a 27C160, but only if the ROM is 6 MB total in size.
Solder Jumpers
There are two types of solder jumper pads on the board - the 2-segment and 3-segment. For the 2-segment pads, if they need to be connected, simply bridge the two with solder. For the 3-segment pads, use a solder bridge on the middle pad to either side depending on the option you need.
U8 Bypass
This is the only set of pads on the front of the board. If your game does not use SRAM, then you must solder these pads together. Do not solder these pads if your game uses SRAM.
U3/U4 Configuration
On the reverse side of U3 and U4 are three sets of pads used to set what kind of EPROM you are using, and in the case of the 27C322, what mapping type you are using.
Keep in mind that if you are using both ROM1 and ROM2, both EPROMs must be in the same mapping type sockets - either both LoROM or both HiROM. You cannot mix the two mapping types between EPROMs. You can however use one 27C322 in ROM1 and a 27C160 in ROM2 for EX-mode games, or 27C160 in ROM1 as well if making a multicart.
LoROM/HiROM
These are all 3-segment pads. They only need to be configured on the back if you are making a game that contains SRAM.
Single/Multi
The pads on the bottom right of the back of the board are mandatory for every game. Solder the middle pad to the top for single game configuration, or to the bottom for multicart configuration. The pads on the top middle of the back of the board only need to be configured if your cartridge uses SRAM.
SRAM Size
The set of pads at the top left underneath the SRAM chip configure the size of the SRAM that the SNES will see. All pads must be configured if you are using SRAM, and each set of 2 should be soldered in the same direction. The example picture below shows a game configured for 256 Kbit of SRAM. It is important to note these numbers represent the SRAM in BITS, not BYTES. To figure out the BYTES of SRAM, take the numbers here and divide by 8.
Note: If you want to set the RAM size to zero, but still have a RAM chip installed, then simply unsolder the right-most HIROM/LOROM solder pads on the backside of the board.
Multicart Configuration
If you are setting you cartridge up for a multicart, you must bend out pin 2 (AS6C1008) or pin 1 (AS6C62256) on the SRAM chip and solder it to the outside hole.
Estimating Battery Life
To accurately estimate the battery life, measure the voltage across R1 using a multimeter in DC mV mode, touching the probes to the two test point pads on either side of R1. You should read something around 1 mV or less. If you are severely higher than 10 mV, like in the 100's of mV, then you have a problem on your board.
Once you have a suitable voltage, find the milliamp-hour rating of your selected battery (preferrably from a datasheet). For example, a Renata CR2032 battery is rated for 225 mAh.
Now to estimate battery life, take the voltage measurement in mV and the battery rating in mAh, and plug it into this equation:
Time (years) = Resistance of R1 (ohms) * Battery capacity (mAh) / Voltage (mV) / 8760
The factor of 8760 is for converting years to hours (24 hours in a day, 365 days in a year). The resistance of R1 is 1000 ohms. So for an example, if you measured 1 mV on R1 and are using a Renata CR2032, you would get 1000 * 225 / 1 / 8760 = 25.7 years.
Troubleshooting
Please check out the wiki pages for troubleshooting tips.
Bill of Materials (BOM)
The component groups required for the build you want to make are detailed above.
Mouser Shopping Cart
The following cart has the maximum amount of parts you would potentially need on a single board (essentially, a multicart), plus a few extras of the passive components due to price breaks. Importantly, though, this does not include the UV EPROM chips (27C160 and 27C322) because those are only available as old stock from places like AliExpress and/or eBay.
https://www.mouser.com/ProjectManager/ProjectDetail.aspx?AccessID=686eaad9eb
Group A - 4 MB ROM, No RAM
| Reference | Value/Part Number | Package | Description | Source |
|---|---|---|---|---|
| C1 | 22u | Radial 2.5mm spacing | Aluminum Electrolytic Capacitor | https://mou.sr/4lzfiK1 |
| C2 | 0.1u | Radial 2.5mm spacing | Ceramic Capacitor | https://mou.sr/481ILov |
| C3 | 0.1u | Radial 2.5mm spacing | Ceramic Capacitor | https://mou.sr/481ILov |
| C6 | 0.1u | Radial 2.5mm spacing | Ceramic Capacitor | https://mou.sr/481ILov |
| C7 | 0.1u | Radial 2.5mm spacing | Ceramic Capacitor | https://mou.sr/481ILov |
| C9 | 0.1u | Radial 2.5mm spacing | Ceramic Capacitor | https://mou.sr/481ILov |
| U2A | PIC12F629 | DIP-8 | PIC Microcontroller | https://mou.sr/3XuEZzO |
| U2B | PIC12F629 | SOIC-8 | PIC Microcontroller | https://mou.sr/4dSUh90 |
| U3 | 27C322, 27C160 | DIP-42 | UV EPROM | AliExpress, eBay |
| U6 | 74HCT257 | DIP-16 | Multiplexer | https://mou.sr/3EvChVI |
| U7 | 74HCT257 | DIP-16 | Multiplexer | https://mou.sr/3EvChVI |
| U9 | 74HCT139 | DIP-16 | Decoder | https://mou.sr/441VXuJ |
Group B - adds 32 KB of RAM
| Reference | Value/Part Number | Package | Description | Source |
|---|---|---|---|---|
| B1 | CR2032 | CR2032 | Coin Cell Battery | https://mou.sr/3Wj2m0G |
| CB | 22u | Radial 2.5mm spacing | Aluminum Electrolytic Capacitor | https://mou.sr/4lzfiK1 |
| C5 | 0.1u | Radial 2.5mm spacing | Ceramic Capacitor | https://mou.sr/481ILov |
| C8 | 0.1u | Radial 2.5mm spacing | Ceramic Capacitor | https://mou.sr/481ILov |
| D1 | BAT85 | DO-35-2 | Schottky Diode | https://mou.sr/49GVT4m |
| D2 | BAT85 | DO-35-2 | Schottky Diode | https://mou.sr/49GVT4m |
| D3 | BAT85 | DO-35-2 | Schottky Diode | https://mou.sr/49GVT4m |
| Q1 | 2N3904 | TO-92-3 / SOT-23-3 | NPN BJT | THT: https://mou.sr/3HlkU91, SMT: https://mou.sr/3C8piaZ |
| R1 | 1k | Axial | Resistor | https://mou.sr/4hYkrZr |
| R2 | 100k | Axial | Resistor | https://mou.sr/3Ib4SgO |
| R3 | 10k | Axial | Resistor | https://mou.sr/42AN0WU |
| R4 | 1k | Axial | Resistor | https://mou.sr/4hYkrZr |
| R5 | 10k | Axial | Resistor | https://mou.sr/42AN0WU |
| U5 | AS6C62256 | DIP-28 | SRAM | https://mou.sr/3HlZ0mh |
| U8 | 74HCT139 | DIP-16 | Decoder | https://mou.sr/441VXuJ |
Group B (Optional) - adds 128 KB of RAM (instead of 32 KB)
Replace U5 in Group B above with the part detailed here, and add the other three components. I personally recommend sticking to the AS6C62256 SRAM chip unless you absolutely need more RAM space.
| Reference | Value/Part Number | Package | Description | Source |
|---|---|---|---|---|
| Q2 | 2N3904 | TO-92-3 | NPN BJT | https://mou.sr/3HlkU91 |
| R6 | 100k | Axial | Resistor | https://mou.sr/3Ib4SgO |
| R7 | 10k | Axial | Resistor | https://mou.sr/42AN0WU |
| U5 | AS6C1008 | DIP-32 | SRAM | https://mou.sr/3hNkGxg |
Group C - Adds 4 MB ROM for ExLoROM/ExHiROM or multicarts
| Reference | Value/Part Number | Package | Description | Source |
|---|---|---|---|---|
| C4 | 0.1u | Radial 2.5mm spacing | Ceramic Capacitor | https://mou.sr/481ILov |
| U4 | 27C322, 27C160 | DIP-42 | UV EPROM | AliExpress, eBay |
Group D - Enables multicart mode
| Reference | Value/Part Number | Package | Description | Source |
|---|---|---|---|---|
| C10 | 0.1u | Radial 2.5mm spacing | Ceramic Capacitor | https://mou.sr/481ILov |
| U10 | 74HCT74 | DIP-14 | Flip-flop | https://mou.sr/3YEiVo8 |
Revision History
v1.0 - Re-release
- Release of the KiCad-ported version of my original SNES Advanced cart design
- Removed the "SRAM Enable" pads and made the SRAM always enabled
- HOTFIX: changed QR code, added open source hardware logo
Acknowledgements
- Continual thanks to all in the nesdev community for their resources, design tips, and support throughout the past half-decade. This design was one of my original ones that was improved through their help and feedback when I was first starting out.
License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. You are able to copy and redistribute the material in any medium or format, as well as remix, transform, or build upon the material for any purpose (even commercial) - but you must give appropriate credit, provide a link to the license, and indicate if any changes were made.
©MouseBiteLabs 2025

No comments yet. Be the first to ask about this board.