More chapters coming soon...
This guide will teach you how to create SNES / SFC ROM hacks on your own.
It features multiple chapters with different hacking categories and more.
This guide is about creating Super Nintendo Entertainment System / Super Famicom ROM hacks! Some information may apply to other consoles too, but this guide will only focus on the SNES / SFC.
This guide uses the short form SNES for the Super Nintendo Entertainment System AND the Super Famicom. The process is the same for both consoles!
What are you waiting for... let's begin!
If you read this guide, you probably know what a ROM and what a ROM hack is, but here is a short explanation anyways. ROM is the short form for "Read Only Memory". This is simply the name for the storage chips you can find inside your Game Pak.
The ROM chip is the big chip on the right side
These chips contain the game itself.
The ROM does NOT store your save games! This is done by the SRAM.
The ROM files you have on your PC are ROM dumps, but they are often simply called ROM's too.
A ROM hack is a modified version of a original game ROM. Those can change anything in the game like if you install a mod for a game on your PC!
This guide will only teach you how to create ROM HACKS! You will not find many useful information about creating your own SNES games here.
If you are fascinated by old games and you want to create your own ROM hacks, this guide should be the right one for you!
Yes, this is an "easy understandable" guide, but that does not mean you can start right away! Before you continue, you should ask yourself if you really want to learn more about this topic. The obvious answer would be yes, but ROM hacking will remain ROM hacking and this is NOT always easy. Even advanced people still struggle here and there. You have been warned!
Although this guide is meant to explain everything as uncomplicated as possible, you will not get around the assembly programming language (especially the 65816 for the SNES) as well as some knowledge about binary and hexadecimal.
A SNES game controller
If you do not have any programming experience (assembly would be optimal), you should maybe learn the basics of programming first and then come back here. Especially for the later parts, programming knowledge will become an essential part!
Downloading and publishing a ROM is illegal!
If you need a ROM... well, Google is your best friend. Please do not open an issue or write an e-mail in which you ask for a ROM file.
ROM hacks are being published as patches and those are legal because you still need the original ROM! A patch only contains the changes you have made to the ROM, but this will be covered in another chapter.
This guide is NOT affiliated or approved by Nintendo!
You do not need a lot of stuff to start creating your own SNES ROM hacks. You simply need a PC running Windows or Linux.
If you use Linux, you must have the Wine compatibility layer for Windows applications installed!
Windows or Linux
The screenshots in this guide were taken on Linux, but the process is the same on Windows.
Mac OS with Wine compatibility layer installed was not tested! It may work, but there is no guarantee.
This guide is not sponsored, but if you want to play your ROM hacks on a real Super Nintendo, you can use a Super Everdrive. It allows you to put your ROM files onto an SD-Card and play those on a real console to get the full experience, but this is fully optional. An emulator will work totally fine too!
A Super Everdrive cartridge
There is not much setup to do for now. We only need a SNES emulator and a nice tool called SNEStuff. While you read through the other chapters, you will encounter more tools you need to download, but an emulator and SNEStuff is all we need for now.
Here are some recommended emulators, but others will probably work fine too:
And here you can download SNEStuff.
Once you have installed an emulator and extracted SNEStuff, you are ready to continue with the next chapter!
It is pretty obvious that Nintendo released different console models for different regions. Those regions are the following:
Region Code | Region | Video Format | Console name |
---|---|---|---|
J | Japan | NTSC | Super Famicom |
U | United States | NTSC | Super Nintendo Entertainment System |
E | Europe | PAL | Super Nintendo Entertainment System |
The main reason for this decision was to feature the different video formats for the different regions. Another, maybe not so obvious reason for this decision, was to prevent some Chinese and Japanese "manufacturers" to pirate games too fast.
A Super NES from the United States / A Super NES from Europe
As you can see on the pictures above, even the designs of the consoles were very different!
But this is not all about the different regions. Some games like "A Link To The Past" or "Secret of Mana" were even translated into single languages. This happened because reading text is actually really important in those games, so they translated them in multiple languages.
A screenshot from the German version of ALTTP
Here is a list with the different region codes and their meaning.
Each official Nintendo ROM has a header. The header is important for the console because it contains information like cartridge/ROM size, additional chips (Super FX, SA-1, ...), if the game has a SRAM and more.
The header is only important for consoles! Most emulators will run ROM files without a header as well.
The header of a game can be easily removed and added:
SNEStuff automatically adds or removes the header
When patching a ROM it is important to check what for a ROM you need to patch! A ROM hack for a United States ROM will (in most cases) not work with a Japanese ROM for example. This depends on how similar both versions of the games are, but in most cases it will not work.
It is also important to check if you need a ROM with or without header.
Here's an example filename: Super Mario World (J) [!].smc
There are many different ROM patching tools out there, so watch out to use the right one! The most common one is 'Lunar IPS', but others like 'beat' or 'Delta Patcher' are often used too. You can simply find them by searching around the internet. Especially on Romhacking.net you should find them all.
First of all: This guide will NOT cover how to use level editors like Lunar Magic!
So, why is this chapter in here? Well, using level editors is by far the easiest way to create your own ROM hacks. If you simply want to create your own Super Mario World levels or a new A Link To The Past dungeon without adding any new features, then those level editors might already be everything you need.
Here are some recommended level editors for different games:
Lunar Magic / Hyrule Magic / Epic Edit
But this does not mean that level editors are not a part of ROM hacking! If there is a level editor available for the game you want to hack, you can use it as a great and useful help. If you want to create a Super Mario World hack with a new power-up and new levels for example, you can use the normal ROM hacking to add the new power-up and use Lunar Magic to create the new levels.
Keep in mind that you should be careful with the order in which you do these things. It is recommended to complete one of those actions first before starting with the next one (in this case it would be to add the power-up first)! If you haven't finished adding your new power-up for example, you should not start to create the new levels with Lunar Magic. Lunar Magic could corrupt your new power-up or even the entire ROM file.
If you want to learn how to use those level editors, search a bit around on the internet and you should find some great tutorials very easily!
After focusing on level editors and more, it is time to start with the ROM hacking part!
The first task is to choose the ROM you want to hack!
Obviously, it is your choice which game you want to hack, but as mentioned before, those games were released for different regions. If you create a new ROM hack, you probably want other people to play it. So before you start getting your ROM with a random region, it would be a good idea to take a look at Romhacking.net/hacks to check which regions of your game are often used for ROM hacks. Other aspects like an existing disassembly or level editor could play an important role too!
This guide will focus on 'F-ZERO [E] [!].sfc' first. Although there are not many F-ZERO hacks, this game is easy to hack and a good example for this guide.
F-ZERO - European Version