View Single Post
Old June 27th, 2012 (10:20 PM). Edited July 2nd, 2012 by KhaosKnight.
KhaosKnight's Avatar
KhaosKnight KhaosKnight is offline
The 1 and only Khaotic Hacker
    Join Date: Dec 2007
    Nature: Relaxed
    Posts: 355

    Hey everyone, after taking a nice break from making Pokemon Citrine I'm back to ROM hacking. I began seriously looking into the Emerald ROM since there is little to no information about it posted around here(or just about anywhere!). After some research I’m back to share my methods for editing the Pokemon Emerald Title Screen!

    Not many have been able to fully modify the Emerald Title Screen (at least of what I've seen). So I took it upon myself to explore through the unLZ jungle of offsets and a hex editor to find the appropriate Tile Sets and Palettes for the Rayquaza background, the Pokemon banner, and the Emerald Version banner, and I'm here to share them with the community!

    First we will need some tools, preferably the latest releases, and these offsets.

    Rayquaza Titlescreen Offset: 53F058 unLZ # 152 (16 Colors)
    Rayquaza Titlescreen Palette: DDE418 unLZ # - Not LZ'd
    Pokemon Logo Offset: DDE690 unLZ # 2611 (256 Colors) 
    Pokemon Logo Palette: DDE258 unLZ # - Not LZ'd
    Emerald Version Offset: DDFD94 unLZ # 2612 (256 Colors) 
    Emerald Version Palette: DDE438 unLZ # - Not LZ'd
    Tools Needed:
    • unLZ.gba
    • APE (Another Palette Editor)
    • FSF (Free Space Finder)
    • Photo Editing Software(Paint.NET, GIMP, Photoshop, Paint, etc.)
    • IfranView
    • NTME (Nameless Tile Map Editor)
    • VBA or simlar
    • The offsets above.

    Rayquaza Background:

    First we are going to need a make a Tile Set of the Title Screen you would like to make. Take a look at the original Tile Set for the Rayquaza Title Screen to get an idea what I mean.

    As you can see, it is a simple 128x128 image in 16 colors with all the repeating tiles deleted. Unlike Ruby, which has a rather large contiguous space that you can paste a sprite or similar, this tile map as little to no open space because a great deal of the tiles repeat or are reflected(like Rayquaza's face), so we will have to redesign it completely. To begin, design an image of what you want your full screen to look like, then condense it to the specifications above.

    Here is the Tile Set for my Title Screen.

    A Raikou sprite, with the Thunder attack animation and clouds, and a hand drawn rocks. Just a simple thing I put together for the tutorial. I'm no artist so it's not by any means pretty, but it works for a quick demo.

    Next we are going to make sure our Tile Set is ready for our ROM. I’m going to use IfranView to condense my image to 16 colors.
    So open your image in IfranView and click Image -> Decrease Color Depth…

    A dialog will appear that allows you to modify the amount of colors in your image. Click 16 colors, then click OK.

    After that we will export the new palette of the image. Click Image -> Palette -> Export Palette…

    Name it the same as your Tile Set so you don’t mix it up with your other files.

    Now that the Tile Set is ready, we are going to make our image appear the way we want. So open NTME and load your new Tile Set. After its open, go to the bottom right drop-down box and choose “E TS”

    The new canvas is going to look strange, it’s large, too large actually but it’s necessary to get the Title Screen to show up right. Emerald only displays a (30,20) map size on the main screen, so that is all we are going to fill. Locate (29,19) on the Tile Map, this will be the bottom right corner of our Title Screen.

    Use the tiles from the Tile Set you created to make your Title Screen to look how you want. You can use the Tile Selection buttons on the right to select bigger blocks, as well as flipping tiles in Block Settings to make building the Tile Map easier.

    After that’s done, we need to take care of one last thing. At the bottom, click “PaletteMap” and then click the “E” out of the selection to the right. Use that to fill over the “0’s” to change them to “E’s”.

    Finally, we will save our new Tile Map as a .RAW file. Name it the same as your Tile Set as well.

    Now that our Tile Set and Tile Map is done we will import them back into unLZ. So bring unLZ back up and click “Import”.

    A dialog will appear, Check Export Image and Automatically fix pointer, and make sure to leave Export Palette UNCHECKED since we will be editing the appropriate palette in APE later on.

    After clicking OK, you should get this message, although the size will be most likely different for you.

    Next, open up FSF, load your ROM,
    and click “Search from the beginning of the ROM”. Then in the bottom corner under Dec/Hex type in the Hex offset you received from unLZ. The number on top will be converted to Decimal. Take that and put it in the Needed Bytes box, click Find, Then click Copy.

    This is the area of free space in your ROM that can fit your Tile Set, so we will go back to unLZ with this offset and paste it into the Image Offset box. Then click OK.

    It should give you confirmation that the data was re-pointed correctly.

    Next is the Tile Map, click the Next button to go to unLZ #153. This messy image is the RAW Tile Map data.

    Click File -> Load RAW… then select the .RAW file you saved earlier from NTME. Then click Write to ROM and do the same procedure as before. If you get an error then your Tile Map is bigger than the original, so you have to repoint it. If you don’t get an error, then it was smaller than the original so it will fit. You will most likely have to repoint, which is safer since you aren’t overwriting original data.

    Next, load up your ROM and VBA and take a look at your new Title Screen.

    As you can see it is a miss-colored mess. That is because it is using the original palette that Rayquaza used. So let’s change that. Open up your ROM in APE and load the Offset DDE418 and then click Load.

    On the Changed Palette area, click the palette with the blue arrow pointing to the left. Click the dropdown box and select Paintshop (.pal) then open the .pal file you saved from IfranView.

    After it is loaded, click Replace and then Load to verify that it was changed correctly.

    Now reload your ROM in VBA to take a look at your masterpiece.

    One thing to note that I’m still working on, the transparent tiles glow yellow like the lines along Rayquaza’s back. I’m still looking on how to change that color so it can glow other colors or not glow at all. I’m also looking into the clouds that float up the screen as well. Hopefully those will come in a future update to this tutorial.

    The "Version" Banner:

    Next we will tackle the Emerald Version Banner, so go back to unLZ and navigate to #2612, click 256 Color Mode and click the + until the image is shown below.

    This one slightly more complex in a way, it is a 64x64 tile map that is displayed as a 128x32 image in 256 colors. So when you build your Banner, start with a 128x32 image and then “split it” to 64x64 with the right 64x32 pixels moved below to leftmost 64x32 pixels making it a 64x64 image.

    Here’s mine

    I’m no graphic artist, but I had to play with the font size and coloring. The black pixels in this image will be transparent when loaded into the game. This can change if you use more colors, when you load APE to change the banner palette, whatever color that is in the first bank will be transparent.

    Moving on, run your image through IfranView again, except this image will be decreased to 256 colors instead of 16 colors. Then Save the new palette like before.

    Back into unLZ, click Import and load your image. Then click Write to ROM. The dialog will open and you will do the same as before, check Export Image and automatically fix pointers, and keep Export Palette unchecked.

    You will most likely need to re-point the image like before, so take the number through your calculator, and FSF again to find some free space. Then write your changes to the ROM.

    Next we will change the palette to the Emerald Version Banner. So open your ROM in APE and cruise to the offset DDE438.

    Same as before load the .pal file you saved in IfranView.

    Click Replace then Load to verify the changes.

    Then load up your ROM in VBA once again to view the finished product.

    Here you can see how the banner is positioned, if it is not to your liking, you can just readjust the original Tile Set.

    I’m not going to go over replacing the Pokemon banner because most people won’t want to replace it anyway. But if you want to replace the banner, the offset is DDE690, and the unLZ # to the picture is 2611 (256 Colors). Then the offset to change the palette in APE is DDE258. Just repeat the above steps replacing the offsets.


    Well that's just about all the information you will need to modify the Emerald Title Screen. There are only a few things left to look at which I'm still working on. I posted this in a hurry to get the information out there, so I'll be revising it sometime soon, maybe add more pics to the banner part. If you get lost feel free to ask questions and I'll try and help.

    Special Thanks:

    All of you guys for your support.


    Reply With Quote