So, you want to be a ROMhacker? If you're reading this, you're probably overwhelmed at the large number of utilities and documents available on this site. What should you be looking for? What do you need? Where do you start? This section will try and help clarify these things for you.
It doesn't matter if you're going to try and do translations, graphical hacks, or level hacks, you really need the same fundamental knowledge for any kind of ROMhacking. We have taken the time to label all the documents and utilities in our database that we feel are helpful for beginners just like you. However, sometimes these beginner documents still don't quite start at the beginning. That's what we're going to do here.
We're going to show you around and point you to what you need to know to start helping yourself with all our beginner level documents on your own! After all, ROMhacking is very much a self taught hobby. Here is an outline of what we'll be seeing on our tour:
Hexadecimal
Binary and the basic math you'll need to succeed!
The first thing you're going to need to know before you do much of anything is a little bit about binary and hexadecimal(shorthand form of binary). Binary is the fundamental building block of the computer and thus, it inherently is the building block of ROMhacking. Binary is the language of machines. But, most of us don't want to have to write out every single 1 and 0 on a machine, so we use what's called 'Hexadecimal'.Our resident expert Neil has written a nice document for you to read and gain the knowledge you need in this area. Since everybody learns differently, we have also linked a few other sources that may help explain the same topics better. Between all of them, you should come out with the basic knowledge you need. Remember, help is always available in our forums if you have questions. But please, read all of the material first before asking questions.
Recommended Sources to learn Hexadecimal and Binary:
- Hexadecimal(The Basics of Bases) - Our resident staff member Neil has written this document to teach you what you need to know!
- Hex Lesson - A lesson on hex from the perspective of a newer person who has just learned it.
- Number Bases - Here is an explanation of Number bases in general.
Graphics Hacking
Finally, some fun stuff!
Now that we've gotten some basic math at of the way, let's jump right into the fun stuff! Most consoles that came before the Playstation era are what we call 'tile based' systems. What's a tile? Well, let's start with a pixel first. Most of you probably already know what a pixel is. A pixel is one tiny dot on your TV or computer monitor. Look real close at your TV or monitor and you can see them. These older consoles can't draw individual pixels(from the game creator's perspective). The smallest thing these systems can put on screen is an 8x8 pixel square area called a 'tile'. You should also understand that text is drawn to the screen the exact same way graphics are. There is no magical difference between text and graphics in a video game consoles. This is even true with today's systems. The routines used to get text on the screen are essentially specialized graphics routines.Newer systems can use a variety of ways to display graphics ranging from 3D polygons to standard 2D type images. These are generally more complex. That is beyond the scope of this section, but you can find information on Playstation graphics formats in our Documents section.
We've established that these older consoles are all tile based(with exception of Atari or other extremely old hardware), however they don't all share the same format for their tiles. The tiles can come in a variety for formats depending on the colors and system we're talking about. So, rather than me start writing a document right now, here are some very good ones already written to help you understand console graphics. You're also going to need your first utility! A tile editor is what you'll need. There are many tile editors, but one of the simplest to use to start with is Tile Layer Pro.
*IMPORTANT NOTE* While graphics hacking is generally pretty easy with the tools we have available today, some games store their graphics in a compressed format and you will not be able to see or edit them in tile editors. These games require more advanced steps to handle that are beyond the scope of this section. If you want more information on compression, you can find plenty of information in our Documents section.
Ok, enough of me talking, on to the material at hand:
Recommended Sources to learn Graphics Hacking:
- Graphics Hacking - Here is a document written by our resident staff expert RedComet! This document is all you need to learn the ropes on Graphics Hacking. This document will even give you some hands on experience!
Tables and Text Editing
The basic building block of text editing.
Tables are another essential piece of ROMhacking knowledge you'll need if you ever hope to do any sort of text editing in your game and move beyond the cookie cutter graphics only hacks many have done. Tables are also absolutely required for doing any sort of Translation effort. As you can see, this is a very important thing to learn. Many newcomers have trouble grasping the table concept sometimes and I feel much of that can be contributed to not understanding hexadecimal! It's important that you understand the type of numbers you're dealing with before making a table that uses them!So, what exactly is a table? A table is a simple text file that lists all the font characters the game uses, and what hexadecimal (or binary) code represents them in the ROM. Why do you need one? Because you can't just open up a ROM and see the text (except in rare cases where the text is stored in ASCII such as the text you're reading now). A table is the key step that acts as a translation so that you can see and work with the text in a ROM. Here are several good documents explaining this concept better and how to make your own.
Recommended Sources to learn about Tables and Text Editing:
- How to Make Table Files - A short simple guide to how to make table files.
- Tables For Dummies - A more detailed table making guide which also covers Japanese table making.
- The Definitive Guide to ROM Hacking Tables - A lengthy document which explains a lot of table making, however, some recommended utilities are old such as Nesticle.
Introduction to Translation Hacking
So, you want to translate a game from one language to another?
Translation hacking is simply a specialized form of ROMhacking in general. Translations obviously deal primarily with text editing. I hope you've read and gotten the hang of tables because you'll need to understand them if you ever hope to do a translation. The key difference in doing a translation is the table is in another language! How do we handle that? The same exact way we handle any other table.Every language has some sort of alphabet. It would probably be a good idea to take a few minutes on Google and read a little bit about the language you want to translate from. That's right, the hacker should take some time to get familiar with some basic concepts in the source language even if they aren't actually going to translate the script. You don't need to be able to read anything, but you should know about the alphabet of your language and some other basic things. Google is your friend, don't be afraid to use it!
Most console games that people translate are in Japanese. That's also the type of translation I'm most familiar with, so I will use that as an example. However, these concepts can apply to any language. Japanese uses two basic alphabets, Hiragana, and Katakana. You're going to need to know the order of these Japanese alphabets just as you would the English alphabet to make a Japanese table.
As long as your game doesn't have a compressed font, you can make life much easier for yourself by editing the Japanese tiles to English alphabet just so you can do some relative searching and get the initial table values started. One new thing introduced with Japanese is double byte table values. Any game that uses Kanji(a third set of Japanese characters) will use two bytes for each entry in the table. This is because there are more than 255 Kanji! In fact, there are a few thousand! Luckily, most games only use a few hundred to about a thousand or so. Also note that tables like this can use BOTH two byte AND one byte values. Two bytes for Kanji and one byte for everything else. So, things can get a little tricky.
You should be able to get your feet wet in trying to do a translation with the knowledge we've learned so far and these additional resources.
Recommended Translation Resources:
- Tables For Dummies - A more detailed table making guide which also covers Japanese table making.
- JWPce - A free Japanese word processor. This is the easiest way to view Japanese on your computer.
- NJ Star Word Processor - An alternative good Japanese word processor.
- Tile Layer Pro - An easy to use multi-format tile editor perfect for beginners.
- TaBuLar - A nice handy table generator that can even generate Japanese tables to some extent.
Level/Game Editing Utilities
Utilities that can do it all!
Thanks to some very talented individuals, it is now possible to edit graphics, levels, and even sound of your favorite game without any ROMhacking experience at all! When I started in this hobby, no such things existed, so truly be thankful that these people took the time to make these utilities for you.The drawback to these utilities however, is they are game specific and are only useful if a particular game your working on has one of these utilities made for them. In any case, I feel they needed to be mentioned in this section because maybe these are really the way you need to go and real ROMhacking might not be your cup of tea. You can view these similar to RPG makers. Some people can code their own RPG, while others use RPG makers as the only means to bring their dream to life.
- Link to the Game Editors in our database! - this is our current offerings of game editors.
Music Editing
Compose your own tunes!
To make a really advanced ROMhack and make it shine brighter than most, you may want to consider editing the music. In most cases, editing music is a more advanced task. However, if you're one of those people who is a really quick learner, you just might be able to pick this stuff up quickly. We've included music editing in this section to make the section complete in covering all the areas of ROMhacking to at least some degree and at least give people introduction to everything.So, without further interruption, here is our recommended music editing material.
Recommended Sources to learn about Music Editing:
- Dragon Warrior Bytes - A detailed guide outlining hacking the music to Dragon Warrior. Suitable for quick learning beginner.
- Some other less advanced music hacking documents - Here are some other documents in our database for a more intermediate hacker, but may be suitable for a quick learning beginner.
Generally Recommended Documents
You're almost there!
Here are some good documents aimed specifically at the newest of newbies. These are the best general documents in our database for absolute beginners. These documents build on the concepts we have learned in this section. You should now be able to move into these documents and understand what's there.If you've read and understand these documents, you're ready to go off into our database by yourself! Congratulations, you've successfully gotten started! Good Luck!
- The Art of ROMhacking - A nice general beginner's guide to many topics by Vagla.
- The Definitive Guide to ROM Hacking for Complete Beginners - This document covers a variety of topics in a question/answer type format. It covers a lot of small tips not covered in other places.
Generally Recommended Tools
Some extras that will be helpful!
Behind every great ROMhacker are some great tools! Here are some tools to help you get started recommended by the ROMhacking.net staff. These are not necessarily the best utilities, but they are the best utility that is simple enough to be used to new people like yourself.After you've gained a bit of experience, feel free to move out into our Utility database by yourself and try out several of our 250+ utilities!
- JWPce - A free Japanese word processor. This is the easiest way to view Japanese on your computer.
- NJ Star Word Processor - An alternative Japanese word processor.
- Tile Layer Pro - An easy to use multi-format tile editor perfect for beginners.
- TaBuLar - A nice handy table generator that can even generate Japanese tables to some extent.