• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Article: What exactly is a ROM Hack?

Hey guys!
I wrote an article for those who still don't know what is a ROM Hack.
Check it out here!


Free supporter
This is not remotely accurate in a lot of ways and it's triggering me X_X

Lets start from the top.

Most of you may know what a ROM Hack is, but there still quite a few people who don't. First of all I want to state that ROM hacking isn't actually hacking but it's editing. There are many questions to answer, and that's what I'm going to do in this article.

The comments about editing vs hacking, are quite flimsy and the two can be synonymous without context. For example, consider hackers who write a GBA program from scratch and inserting it into a FR ROM. Would it still fit into editing? They wrote this code without editing existing code, however it is written it into an area of the ROM dump. So if I were to look at the changes in a hex editor, it'd just be a series of hex edits. You can see that I've labelled GBA programming as just editing. You have done similar to ROM hacking, and it's not fair to say so. Please don't make generalizations that don't fit the entirety of the community or the entire process. ROM hacking, at it's core, has always been about reverse engineering and editing ROM data based on your research. This to me, is a process which fits the term hacking perfectly, and editing only to a technical degree. We shouldn't be teaching new recruits otherwise.

First question: "What actually is a ROM?"
ROM stands for Read-Only Memory. We usually use this term when we refer to "emulation" and can be explained like this: it's when older games (in our case GBA) are copied to ROM files on better computers so we can access to it by a software called an "emulator".

The first question is presented to the user, "What is a ROM?". Funnily enough, the question is left unanswered in the article, but we'll let that one slide by for the sake of length. We encounter the first piece of accurate information, specifically, "ROM stands for Read-Only Memory." (:clap:) The ROM is essentially a memory dump of the Read only contents in a traditional memory cartridge, hence it being called "ROM Image" or "ROM dump" on the occasion. It's not only used in the context of emulation, nor is it dependent on emulation to have meaning. You can utilize flash carts to play ROMs of games on the console, which by definition, is not emulation.

here are many emulators available for a range of different platforms. The most common Game Boy Advance emulator is VisualBoyAdvance.
VBA hasn't been in development since 2010 and has many issues and bugs regarding it's logging (which is essential for hacking). The newer project, "VBA-M" is a better alternative for windows, which is in active development and fixes most of the issues the old VBA had. Additionally, listing alternatives for other operating systems may have been nice, including applications for phones; a lot of people play hacks on their phones.

Like I stated before, ROM hacking is not actually hacking; it's editing. It's the editing of a ROM in order to change some basic features of the ROM; features like dialogue, graphics, maps and storyline, among other things. So, it's actually an edited version of the original ROM.

Once again, this is not editing. You're utilizing the game's scripting API and map renderer in a way which it wasn't meant to be used. I can see editing an image without repointing it, seen as editing, but the rest don't fall into the same category. At the very least, I would have liked to see it framed differently. The process of ROM hacking is definitely not just edits on dialogs, maps and graphics. These are the first and initial elements of a ROM hack which a player is exposed to, however, ROM hacking is not as easy as just having new dialog, maps and graphics. The standard for hacks are much higher, we all expect certain features like updated types, species, mechanics and such which aren't going to fit into this definition you've established.

Third question: "Is it neccessary to have knowledge about programming to make a ROM hack?"
Definitely not! There are quite a few tools on PokéCommunity that are quite easy to use. However, programming knowledge sure can make things much easier but it's not neccessary. Check out the PokéCommunity's ROM Hacking Tools section!

I agree with the general point here, as it is not required for you to have previous knowledge on programming concepts, and it is certainly not needed to use the tools others have made such as advance map/XSE ect. (Scripting can be seen as similar to programming, but it's not a programming language by formal definition).
The point that needs clarification is, "Programming knowledge sure can make things much easier". Programming knowledge doesn't make utilizing these tools any easier. Programming comes into play for developing your ROM past the default stage. You cannot do this without programming knowledge, and therefore it's necessary for developing new features in a ROM hack. (note that this is the correct spelling on "necessary", the article has spelt it wrong, but I'm not here to argue about that).

Fourth question: "What differentiates a ROM hack from a fan game?"
Like I stated before, a ROM Hack is the edited version of an already existing ROM like FireRed or Emerald. Fan games are developed with custom engines that try to closely match the actual Pokémon games. Because they aren't held to the same limits as a Game Boy Advance, they can be expanded in different ways.

Like I stated before, it doesn't fit into that definition. Rather, it's a game utilizing the core API of the base ROMs to make a new game. The only difference between Fangames and ROM hacks, is that ROM hacks are designed to be run on the GBA. Fangames tend to utilize APIs such as Pokemon Essentials and RPG maker while ROM hacks utilize ROM bases. You cannot play a fangame in the GBA for example, and that is because they're programmed with the assumption of more resources and ability to run certain dependancies/instructions at a higher frequency. GBA programming and ROM hacking is much more confined and restraint. When programming for a ROM hack, and ROM hacking in general, most of our challenges arise from being able to format our code or resources in a way which the GBA is able to interact with them. I can insert a true color 800x800 or so image into the ROM, but the GBA won't be able to render it. So instead I have to break the image down to a maximum size of 512x512, index it down to atleast 255 (plus 1 transparent color) and then insert it into the ROM (I'd also use some form of compression to drop the image size because of the limited cartridge size). In that way, ROM hacking is much harder than developing a fan game, though a fan game can be harder on other fronts.

Before you start hacking, you must have an idea of the story in your mind. You would then be able to think of a design for your region. After deciding on these, you'll be good to go and ready to start hacking.
Well, this has nothing to do with ROM hacking. Story telling and game design are game design techniques rather than ROM hacking. If you were to brainstorm making a game, these would be the points you'd hit, and after that, you'd decide which base ROM fits your story the best and continue from there.

As you hack, you should always back-up some files, for example scripts or maps. Backing-up is very important because if something goes wrong you can get instant access to the back-up and start again.
Regular backups is a good idea for all novice hackers. Most of the time, faults in the area of the ROM getting corrupted or bugged are the fault of poorly programmed tools, and very occasionally the ROM hacker themselves. Because of this, sometimes it's very hard to debug issues and certainly so for most hackers. Therefore, it's easier to just fallback to a backup :Thumbsup:

You should now know the basics of what a ROM hack is with minor details here and there.
Not from this article, lol.