Goals

The goal of this project is to create a Pokémon Emerald romhack. To do so, we are going to use a dissassembled version of the rom as a starting point. Using different tools, we are going to modify the parts we want to change. The changes we are going to make are the following:

  1. Changing Professor Birch’s speech
  2. Changing the Littleroot Town map
  3. Adding an interaction event in Littleroot Town
  4. Changing the starter Pokémons
  5. Changing the first trainer’s team
  6. Modifying the first wild Pokémons

Tools

Here is a list of the tools we are going to use:

A Pokémon Emerald disassembly

A map editor

A Gameboy Advance emulator (any will do)

A text editor (any will do)

Setting up each of these tools is well documented and can be done without too much of a hassle. Personally, I am working on a 2019 Dell XPS 13 running Arch Linux, and all of these tools are usable without issues.

Making our first change

Right now, when we start the game we get the usual speech from Prof. Birch:

Let’s change his opening line

Hi! Sorry to keep you waiting!

to

Hey all you cool cats and kittens!

To do so, start up your text editor and open the data/text/birch_speech.inc file in the pokeemerald repository. You should see this as the first 7 lines of the file:

gText_Birch_Welcome:: @ 82C897B
 	.string "Hi! Sorry to keep you waiting!\p"
	.string "Welcome to the world of POKéMON!\p"
	.string "My name is BIRCH.\p"
	.string "But everyone calls me the POKéMON\n"
	.string "PROFESSOR.\p"
	.string "$"

From this sample, we can determine that the \p character indicates when user input, typically the A button, is needed to go to the next line of dialogue, and that the \n simply indicates a line break in the dialogue.

In our case all we have to do here is to change the second line to

    .string "Hey all you cool cats and kittens!\p"

Now save the file, compile the rom, start a new game in your emulator and you should see:

Congratulations, you’ve just made your first romhack ! Take a look at the other lines of dialogue in the file, try to find other files that contain NPC dialogue, modify them and see what happens.

Next time, we will explore how to customize the Littleroot Town map !