This is the third of the series of Instructables that I will be making on Pokémon ROM hacking. You can find the first one here, and the second one here. This Instructable shows you how to change the title screen background. For the sake of simplicity, I will be using a very basic background, that way things don't get too confusing. As my first Instructable on Pokémon ROM hacking, this one only applies to Pokémon FireRed and LeafGreen.
Step 1: Find Your Background
First of all, you will need to find an image that you like. Don't take an image that doesn't look well at a low resolution (240x160), and that will look bad in 16 colors, as there can't be more than 16, black being one. I chose this very simple blue background which only has 5 colors: black, and 4 shades of blue.
Keep in mind that after replacing the background, there will no longer be any "Press Start" text, so if you want that to appear on your title screen, add it in the picture. Alternatively, you can learn to ASM hack. More info at last step.
Step 2: Set the Transparent Color
The Pokémon ROM divides all it's images in to squares of 8 by 8 pixels. On the title screen, the top left corner square sets which color is transparent in the picture, and which is not. With my background, if I leave it as it is and put it as the background, all the dark blue in my picture will be gone and will be replaced with black. So, to prevent this, in any image editing software, such as MS Paint, add a 8 by 8 pixel black square in the upper left corner.
Step 3: Decrease Color Depth
You now need to take your picture and decrease it's color depth to 16 colors. To do this, I use IrfanView, which you can get from here. Once you open your background with IrfanView, click on the "Image" tab, and select "Decrease Color Depth". Choose "16 Colors", and make sure to disable "Floyd-Steinberg dithering". Now you just have to save your image.
Step 4: Export Palette
If you want your background to come out with the right colors, you will need to save your palette to be able to switch the original one with this one later on. To save the palette for your background, click on the "Image" tab, select "Palette", then choose "Export Palette". Save it to a place you can access later.
Step 5: Make the Tile Set
To save space in a GBA ROM, the game only stores one of each kind of 8 by 8 pixel square. If your image has large areas of a single color, cut that area of the picture out and move the leftover area of your picture to where the large area of color used to be. In my case, my picture only used 7 different 8 pixel squares, so I minimized my whole 160x240 image to 8x64. Keep in mind that you must keep the black square at the top left corner.
Step 6: Make the .RAW File
Open up Nameless Tile Map Editor. If you don't have it, get it from here. Open the tile set you just made. In the bottom right corner, under "Preset Sizes", choose "FR/LG TS". Now, next to the the "Palette Map" tab at the bottom, click on the small purple "E". In the black box above the "E", you now have to reconstruct your image. You can do that by selecting the 8 by 8 squares in your tile set and clicking in the black box to place that square there. Once you're done, you can click on "File" and select "Save Tile Map". Save it to a place you can access later on.
Step 7: Switch the Background
You now need to open unLZ-GBA. If you don't have it, you can get it from here. Load up your ROM. If it's taking a long time to load, just close it and open it again. Once loaded you need to go to the original background. If working with FireRed, type in 2013 in the box next to the "Go To" button, with LeafGreen, 2014. Click on "Import", choose your image, then click on "Write To ROM". If you get an error saying "size is too big", follow this step. After this, click on the "Next" button. Here, click on the "File" tab, and select "Load RAW". Chose the RAW file you saved earlier. Click on "Write to ROM". If you receive the "size is too big" error again, do as before.
Step 8: Fix Colors
If you were to open up your ROM right now, the colors of your background would be messed up. To fix this, you will need Advanced Palette Editor. You can get it from here. Open it and load your ROM. Type in the background palette offset, which is 00EAE094, then click "Load". The first 16 boxes will become colorful. Next to the second 16 boxes,click on the icon depicting a palette with a blue arrow. In the window that comes up, change the file type to *.pal, and select your image. If you get an error like the one above, that's normal. Take a screenshot, and click "OK". Open up Advanced Palette Editor again, the ROM, type in the offset, and click on "Load". Instead of importing the palette again, this time just write in the the colors by hand by looking at the screenshot. Once you're done, cllick on "Replace". To verify it worked, click on "Load". The first 16 boxes should change to match the second 16 boxes.