*-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-* + + * Title Screen Hacking Made Easy * + + * v1.00 * + + * by InVerse * + + * 02/28/03 * + + *-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-* Introduction: The purpose of this document is to explain my personal method of hacking title screens. This may or may not be the best method for you to use. I offer no guarantees other than that this technique will definitely result in a hacked title screen, as long as you follow my directions correctly. I've been hacking ROMs for approximately five years and have done a dozen or so title screens for my own projects as well as for such illustrious ROM hackers as Spinner 8 and WakdHacks. As a result, I've developed certain techniques that work well for me and have decided to write this document so that new ROM hackers can learn to do their own title screen hacks. *-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-* Table of Contents: I. Introduction II. Table of Contents III. Document History IV. Required Tools V. Getting Started VI. Locating Title Screen Data VII. Title Screen Design VIII. Title Screen Insertion IX. Anomalies, Quirks & Suggestions X. Conclusion XI. Credits XII. Resources XIII. Contact Info *-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-* Document History: 02/28/03 - v1.00 - Initial Release *-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-* Required Tools: To hack a title screen, you'll need a hex editor with relative search capabilities and a tile editor. A tile editor with the ability to import bitmaps and a graphics editor will make things much easier but are not required. My personal recommendations are Hexposure or Hexecute as a hex editor and Tile Layer Pro as your tile editor. GiMP is my graphics editor of choice but Microsoft Paintbrush or just about any graphics editor will work. *-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-* Getting Started: So you've hacked a ROM and now you want to change the title screen. This might seem a daunting task, at first. So far, all you've hacked is text and sprites. How do you go about hacking an entire title screen? Well, it's not as hard as you might think. First of all, you have to learn to look at the title screen as nothing more than a big graphic. That's all it is. Hacking a title screen is no different from removing Mario's pants, it's just that you have to edit more tiles. And no, I don't need to hear any comments regarding size and Mario's pants. The first step is to make sure that your title screen isn't compressed. To do this, simply open the ROM you're wanting to hack in a tile editor and look for tiles that match up to your title screen. Chances are good that they're going to be scrambled around, so you just have to keep your eyes open and scroll slowly. If you think that you've found the title screen tiles but aren't sure, try editing one of the tiles in an obvious manner, save your changes, then load the ROM and see if the changes appear. If they do, you've found the title screen tile location. If they don't, keep trying. If you simply can not find the title screen tiles, your title screen may be compressed. In this case, you have 3 options. You can solicit the help of someone who does ASM hacking for your particular system, you can learn the corresponding assembly language yourself or you can do what I normally do, which is give up. Once you've located the tiles in question, it's time for the boring part. What you want to do is "erase" each of the tiles in the title screen and then draw numbers on them. In other words, paint the entire tile the background color, then draw numbers on them with another color. The reason you do this is so, once you're finished, you can see exactly what order the tiles are laid out in the ROM. Most titles will have the tiles laid out horizontally from top to bottom, but I've seen title screens that had the tiles laid out vertically as well. Once I've numbered all of the titles, I take a screen shot for reference purposes. As well as showing you the layout, these numbers will also show you exactly how many tiles you have to work with and make it easier to use relative searching to locate the title screen data within the ROM. *-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-* Locating Title Screen Data: Now that you've located the tiles for the title screen, it's time to figure out where the title screen data is located within the ROM. You do this by relative searching with a hex editor. (If you don't know how to relative search, look for a document on the subject on one of the sites listed in the reference section.) I normally start with the data from the top left corner of the title screen when relative searching, but sometimes there are sections that are a lot more obvious. It's a rare occurrence when your tiles are laid out in a uniform manner such as this: 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 Most likely, there are going to be gaps between tiles and sometimes a tile might be repeated, such as this: 01 02 ?? 03 04 05 06 06 07 07 08 ?? 09 10 11 12 13 02 14 15 16 ?? ?? 17 18 In the second example, I would most likely try relative searching for the second line or, if that resulted in too many matches, perhaps the first. Using the second example, what you would want to relative search for would be 5 6 6 7 7. Make a note of the matching locations and then go through the ROM and change them one at a time, saving your changes and running the ROM after each edit. When you see your changes occur in the title screen, you've found the data. Make a note of the offset at which you found the data then experiment with it to see just how things are laid out. If there are gaps in the screen, see if they're they same tile used as a space in the font (or another blank tile) or if they use control codes to place a specific number of spaces at a given point. If the gaps are normal blank tiles, you'll be able to change them easily. If they're produced by control codes, you'll likely have less control over them depending on exactly how the title screen is arranged. Also make a note of how they go from the last tile of one row to the first tile of the next. Some ROMs will have a control code that specifies a new line and others will automatically drop down to the next line after so many tiles. Take note of the values around the main focus of the title screen, as well. Most of the time, you'll only be able to edit the graphics within the amount of space allotted to them on the screen. However, on a couple of occasions I have lucked out and there was a hex value corresponding to every single space on the screen. This made for some very easy editing, as I didn't have to worry about how much space my title screen hack required. Once you've figured out how the title screen is set up, it's time to start designing a replacement. *-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-* Title Screen Design: Now comes the fun part, creating a new title screen design. You can either do this directly in your tile editor or you can draw the new title screen in a graphics editor and then import it to your tile editor. Keep in mind that you're limited to the number of tiles already in use by the title screen, so you generally can't get much more lavish than what already exists. If you're somewhat artistic, you can draw your new title screen right in the tile editor. Most tile editors have a clipboard so you can see what your new title screen looks like before you insert it into the ROM. If you would prefer to use a graphics editor to design your title screen, the simplest thing to do is start with a screen shot of the original title screen. Set guides so that you won't go out of the bounds of the original graphic and this will normally prevent you from using too many tiles, though take any gaps or repeated tiles in consideration. Once your title screen is designed, it's time to insert it back into the ROM. *-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-* Title Screen Insertion: Well, we've done the hard part and we've done the fun part, now it's time for the apathetic part. While not as fun as actually designing the title screen, insertion isn't nearly as tedious as numbering all of the tiles, either. First you need to get your new title screen into the tile editor. If you designed your new title screen directly in the editor, you can skip this part. Otherwise, open another ROM in your tile editor (I keep a blank ROM on hand specifically for this task) and use your editor's import ability to import your new title screen graphic into the editor. Now copy the new title screen to the clipboard so that we can put it into the ROM you're trying to hack. (Note: Chances are good that the colors aren't going to matchup after the import. You'll just have to draw over the imported title screen by hand with the correct colors.) Once your title screen is on the clipboard, it's time to start pasting it into the ROM. This is where the screen shot you took of the title screen with numbered tiles comes in handy. Using that screen shot as a reference, begin pasting your new tiles over the corresponding tile in the ROM. That means, if the top left tile of your original tile screen is numbered 1, you paste the top left tile of your title screen over the tile numbered 1 in the original ROM. If the 3rd tile of the 4th row is numbered 15, you paste the 3rd tile of the 4th row of your new title screen over the tile numbered 15 in the original ROM. This will ensure that your new title screen is mostly in order once you're finished pasting it in, limiting the amount of hex editing required to clean up the finished product. In the case of gaps or repeated tiles in the original screen, I normally make a note of the new tiles that match up to that location and then paste them after all of my other new tiles are in place. Once the tiles are in place, take a look in an emulator and then go into your hex editor and fix any problems, such as the aforementioned repeated tiles or gaps or any left over tiles that you don't need. *-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-* Anomalies, Quirks & Suggestions: Hacking title screens is a pretty straightforward process, but there are still a few oddities that you might encounter. One of the biggest problems you'll encounter (aside from compression) is when a title screen uses control codes to place gaps. Sometimes, you'll have no choice but to leave the gaps in place. Keep in mind that you don't have to hand draw the graphics if you use a graphics editor. Just select a font, size it to match the title screen and type in your title. Presto, insta-neat title screen. Just as the original title screen can repeat a tile multiple times, so can you. This is particularly useful if you're using blocky letters or if your title has the same letter repeated multiple times. It takes a bit of hex editing to reuse the tiles but can save a lot of space as well. If you have a lot of tiles left over that weren't used in the title screen, consider reusing them for other things if necessary. When I finished hacking the Tabo's Tactics title screen, I was left with an additional 40 tiles (lots of title recycling went on) and those 40 tiles were all available to be used as font tiles as well, since the title screen and font were in the same memory space. Also, remember that your new title screen doesn't have to be limited to text. Feel free to spice it up with graphics from the game or a new border. *-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-* Conclusion: So there you have it. Hopefully, you have an understanding of how to hack title screens now. There are probably other methods that you can use, possibly even better methods, but as I said at the beginning of this document, this is the method I've used and it has worked well for me. *-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-* Credits: This document was entirely written by me (InVerse) using techniques that I developed myself. If you want to see some examples of my work using the techniques described in this document, try the following ROM translations: Sanrio Carnival 2 - This was one of my first title screen hacks. I used the numbered tile method but drew the entire thing by hand in Nesticle's VRAM editor. Hotman - I did this title screen at the request of SixFeetUnder. I once again used the numbered tile method but designed the new title screen in Tile Layer. Riddle of Murasame Castle - Spinner 8 asked me to hack this title screen for him. I used the numbered tile method once again and drew the new title screen in Gimp, pasting it in with Tile Layer Pro. Special Thanks To The Following People: Snowbro - for creating Hexposure & Tile Layer *-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-* Resources: My Website ---------- Suicidal Translations - http://www.pigtails.net/ST ROM Hacking Information ----------------------- The Repository - http://www.romhacking.com RPGd - http://rpgd.emulationworld.com SGC - http://sgc.jandar.net Whirlpool - http://donut.parodius.com Zophar's Domain - http://www.zophar.net Programs -------- Gimp - http://www.gimp.org *-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-* Contact Info: I'm not an exceptional ROM hacker. I wrote this document in hopes of helping some people learn to ROM hack and to save time in answering the same questions over and over again on messageboards. If you have questions regarding ROM hacking, you're going to get a lot more help by asking on a messageboard than you will by e-mailing me. If you find an error in this document, then contact me and I'll most likely fix it. Do NOT under ANY circumstances e-mail me asking to translate a game and if you e-mail me a ROM, you will suffer horribly. If you can comply with these rules, my e-mail address is inverse@pigtails.net The most recent copy of this file can always be found at my website Suicidal Translations (http://www.pigtails.net/ST) along with other documents and utilities I've written and my own ROM translations. -InVerse *-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-=*=-=-* 02/28/03 - Title Screen Hacking Made Easy - v1.00