Hello everyone, today I will be explaining some basics on editing the title screen in Pokeemerald. I recently decided to play around with the title screen and decided to share what I have learned. Maybe this will help others in the future.
Please note that as work on Pokeemerald progresses, some of the labels may eventually be outdated in this tutorial. If that happens please let me know.
Also note that while this is not targeted for Pokeruby, everything is most likely very similar and applies to it to.
Credit to Diegoisawesome for pointing me in the right direction for some things.
While not required, I recommend reading the following pages from TONC as the knowledge will apply to this. Also some things will be more in depth in TONC compared to how I will explain them.
For the tittlescreen, the graphic files are located in “graphics\title_screen\”. Any new files should also be placed in this folder to keep this organized.
The bin files are tilemaps used to create the backgrounds displayed on the screen. These can be edited the same way as they’ve always been edited, I will not go into detail on this.
The png files are the images used to display stuff on the screen. Some may look a little weird because of how images need to be formatted for the gba or because some are loaded with the tilemaps. All are index and if you edit any you will need to make sure to keep the indexing.
The pal files are the actual palettes used for the images. I recommend exporting a pal from an editor for your indexed image to make sure everything matches up.
Another file we will be working with is “src\title_screen.c”. This file contains the code for the tittle screen and we will be doing most of our work in it.
I won’t go in depth on all the workings of the file as this document is written so that anyone can follow along and make modifications to the title screen. With experience and building on what is in this document, the rest will make sense over time.
Removing Things We Don't Need
To start we are going to remove some things from the title screen that I don’t think most people will need. We’ll do this in the “title_screen.c” file.
Let’s take a look at the unedited title screen.
The first thing we’ll remove will be the clouds. There are actually a few ways to do this.
This will animate your sprite by switching between frames. For “ANIMCMD_FRAME” the first parameter is where the sprite frame begins and the second is the duration.
You’ll also want to reference this table in the OamData by updating “anims”.
.anims = smon_AnimTable,
If we look at the title screen, it should now be animated.
Using a Callback
Callbacks can be attached to each sprite to do different things. You can set a function as a callback and it will run every frame. In this example I will make the sprite go invisible every 60 frames to create kind of a weird effect with Charizard. This is not the best example, but should get the point across.