• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Adding New Types into Emerald

7
Posts
10
Years
Alrighty.
After many, many, MANY attempts over the course of about 3 weeks.
I finally managed to implement the Holy type and the new names of certain types... Unfortunately the palette for the icons is still messed up.

There is a solution I found. Use the Fairy Table provided and it works like a charm.
Buuut that's not what I'm looking for. Kinda want to use my own custom table.

So I decided to try using different means of indexing to see what I was doing wrong. And I thought I got it when I used Infranview's "Decrease Color Depth" and set it to "16 Colors", which gave me the exact same sized file as the Fairy Table provided.
My palette changed, but was still messed up.
It's worth noting that everything else is working perfectly. No crashing, and I'm able to view and use Holy type Pokemon in battles. It shows up in the editors and shows up fine in the Pokedex. The only thing that's messed up is the Icons.

I even took the new image and started the tutorial over again but to no avail. Got the exact same result.

What am I doing wrong?
I've indexed the image and the file size is the same as the Fairy Table.
What was the method used to index the Fairy Table? As the problem is clearly with my custom table.
 
1
Posts
7
Years
  • Age 24
  • Seen Jul 9, 2021
[/QUOTE]The second table is located at 56EF14, and is also 90 blocks (hex) long. Select it all and move it into Free Space, preferably just after the other one at 9C1870. To add in the new entries, you'll first need to add the pointer 25 8B 5E 08, and then the pointer to the location of your new type name.

Once again, repoint the data.

To make it appear in the Pokedex, navigate to 56EFC6, just like the palette thing you will find an index list. Place the index of your type here, though note that you only have space for 1 entry, you will need to expand otherwise.

Then at 56EFDE and 56EFE6 you will find the bytes 12. These are limiters change them to 13, and you're all set.[/SPOILER]
[/SPOILER]

Congratulations, if you've followed all these instructions you should have fully implemented types!
This is not necessarily particular easy for new hackers, so don't stress if you can't do it, it'll be in
my upcoming Rombase for Emerald, and I'm sure someone who follows this will likely make one at some point too.

Best of luck![/QUOTE]

Hi, i'm really new to creating a hack rom and i need help with the last step please (quoted).
i can't understand what to do, i could do the other steps because of the images, but in this one i do not know what to do. Please help!
 

MrDollSteak

Formerly known as 11bayerf1
858
Posts
15
Years
There are two things that I don't get from this tutorial..

Here I am under the assumption that you have to create a pointer to the offset of the byte where your new type name begins located inside the type name table which in my case would be: 9c17dd and ends in 9c17e1. It's five letters long, each taking a byte of space. It's Fairy type. Or is the pointer supposed to be where the new type entry began? I don't understand the direction of: followed by index 17, followed by 00 00 00. Where is that pointer supposed to be placed? After the table you don't know what is for that is probably not used in battle?

Is this the format of that pointer? DD 17 9C 08[Pointer] 17[Index] 00 00 00[Followed by 00 00 00]

It would be a pointer to where you insterted the type. 17 is the index of the first new type. 18 for any others. 00 00 00 are filler bytes.


How do I know what the index of my type is, which from what I understand from this tutorial is the 17th? I need it to replace the value in 56EFC6. I also didn't get where was the index of dark type which according to this tutorial is the 11th. I don't even know what these indexes look like... Are they the numbers 11 and 17 or something like 0E like in the palette part?

They are determined by the order of the types in the table. Dark is the last type 11. Then 12, 13, 14, 15 and 16 are your contest types.

Update

One more thing, I can't get my Fairy type to display in Gen3 Suite. I changed the type name offset from the default 0x31AE38 to the offset where the type name table has been moved. I also changed type number from 18 to 24. In my first try I did this and Fairy type showed up in Gen 3 Suite although it messed up the space. Only showing half of the word of each type. I changed a pokemon's type. And in the emulator the type was fully functional, but the type didn't display well in the summary screen and the types of every pokemon were absent from the pokedex. I redid everything again from step one and I seemed to get the hang of it, but now fairy type won't even display in gen 3 suite which disables me to check if I did everything right. I assume I messed up somewhere, but doesn't seem likely according to the step I followed from the instructions...

Update 2

Never mind, I replaced all the type name offset 31AE38 to the new offset of the relocated type name table in not just 0001, but also in BPEE, in 0002 and 0003. The FAIRY type displays perfectly in gen 3 suite although with spaces in between itself and the other types. I assume this is normal... I could successfully assign the type to a pokemon, it displays well in the summary screen and all type resistances and weaknesses seem to be working accordingly. It was confusing and I think that for a tutorial it could have been explained a little bit more clear, but I have to give credit where it is due, thanks MrDollSteak without sharing this info we couldn't have done it.

Yes the spaces are normal because there aren't any associated names for Cool, Smart, etc.

The tutorial is fairly advanced, it's very simple if you have a lot of experience hex editing, but really quite tricky if not.

Responses in bold.
The second table is located at 56EF14, and is also 90 blocks (hex) long. Select it all and move it into Free Space, preferably just after the other one at 9C1870. To add in the new entries, you'll first need to add the pointer 25 8B 5E 08, and then the pointer to the location of your new type name.

Once again, repoint the data.

To make it appear in the Pokedex, navigate to 56EFC6, just like the palette thing you will find an index list. Place the index of your type here, though note that you only have space for 1 entry, you will need to expand otherwise.

Then at 56EFDE and 56EFE6 you will find the bytes 12. These are limiters change them to 13, and you're all set.[/SPOILER]
[/SPOILER]

Congratulations, if you've followed all these instructions you should have fully implemented types!
This is not necessarily particular easy for new hackers, so don't stress if you can't do it, it'll be in
my upcoming Rombase for Emerald, and I'm sure someone who follows this will likely make one at some point too.

Best of luck!

Hi, i'm really new to creating a hack rom and i need help with the last step please (quoted).
i can't understand what to do, i could do the other steps because of the images, but in this one i do not know what to do. Please help!

Open your rom in a hex editor and follow the instructions.
There are screenshots.

Alrighty.
After many, many, MANY attempts over the course of about 3 weeks.
I finally managed to implement the Holy type and the new names of certain types... Unfortunately the palette for the icons is still messed up.

There is a solution I found. Use the Fairy Table provided and it works like a charm.
Buuut that's not what I'm looking for. Kinda want to use my own custom table.

So I decided to try using different means of indexing to see what I was doing wrong. And I thought I got it when I used Infranview's "Decrease Color Depth" and set it to "16 Colors", which gave me the exact same sized file as the Fairy Table provided.
My palette changed, but was still messed up.
It's worth noting that everything else is working perfectly. No crashing, and I'm able to view and use Holy type Pokemon in battles. It shows up in the editors and shows up fine in the Pokedex. The only thing that's messed up is the Icons.

I even took the new image and started the tutorial over again but to no avail. Got the exact same result.

What am I doing wrong?
I've indexed the image and the file size is the same as the Fairy Table.
What was the method used to index the Fairy Table? As the problem is clearly with my custom table.

The original image in Emerald has three palettes C, D and E. All the colours are used, so you won't be able to add a new colour unless you find a way to expand that.
 
Last edited:

Prof. Leon Dias

Let your memes be dreams
118
Posts
11
Years
I followed all the directions from start to finish, but every time I go into the summary screen, the screen itself freezes though the music continues. Happens both in battles and in the field. Do you know what it could be?
As there was already data in 9C0B20, probably due to my advance map hacking previously, I instead began at 0xAAA000 (everything beyond it was free space) and followed it exactly as you said, although the very last step of part 3 confused me hugely with the wording (im a novice hacker). I edited the ini in Gen 3 Suite, and fairy type displayed well when I applied it to Chikorita to test it out.
I can provide all the pointers if youd like
 

Froosty

The_Learner
535
Posts
9
Years
How would this work with Dizzy Egg's engine?

If you have read dizzy egg's engine thread then there he has stated that in that engine
also
fairy type has been added acoording to this thread,
so just this method works with dizzy's engine,
.
I have not tried that engine at my level, but I am sure that applying that engine will automatically add the fairy type :)
 
56
Posts
7
Years
  • Age 29
  • Seen Aug 31, 2020
Somewhere, it said that the type icons use 3 separate palettes. Does anybody know what number these palates are in unLz.gba for ruby?
 
457
Posts
10
Years
  • Age 29
  • Seen Apr 9, 2024
*[Tutorial Adding New Types into Emerald*

There's something missed here. After expanding Type Tables then if you used an expanded Type as a TM or HM, it will show a wrong icon (nevertheless, the "right" coordinate). If Fairy Type's index is 0x17, this is what will it be looked like from the Bag if a Fairy-type Move is assigned on an TM or HM:

LjGVmY1.png

To fix this, continue the tutorial with these last steps:

Part 4: Editng the Icons and Palette of TMs/HMs in Bag
Spoiler:


There 'ya go! You have another set of Type icons expanded. About the two small Poke Balls, investigations will be done later. An image of what we have done:

rpXuXjM.png

That concludes the Adding New Types tutorial! MrDollSteak, please "copy and paste" or link this post on the original post. Thanks to ShyRayq for making a clear tutorial for FireRed which is heavily based to accomplish this!
 
8
Posts
7
Years
  • Age 25
  • Seen Apr 13, 2020
So, I managed to add the fairy type to the game, and I believe it is working just fine as it is shown in Type Effectiveness Editor V3. But when it comes to change the pokemon type i really don't know what to do. I tried to use YAPE but the type doesn't show up. I don't know what to do now -_- . My hex editor is HxD if that helps.

Great thumbs up for the tutorial.
 
7
Posts
7
Years
  • Age 30
  • Seen May 28, 2019
Can someone help me add the Fairy type to the Flora Sky Pokemon?

The tutorial on this topic did not work, or I did something wrong. Anyway, could anyone help me?
 
10
Posts
6
Years
  • Age 27
  • Seen Nov 28, 2017
Thanks for the find! I've updated it, should all be fine now.
Good catch.

There is also one down in step 1.5, the picture shows you selecting 6C bytes of data, but the tutorial says 5C right above it and im not exactly sure which one to do.
 

Leandro Zam

Brasileiro
11
Posts
14
Years
  • Seen Oct 23, 2021
Thank you very much for the tutorial, I hope you continue the good work, I will always be accompanying you to give you prestige.
 
Back
Top