The PokéCommunity Forums Fan Games ROM Hacking Tools, Tutorials & Resources
Tool YAPE (Yet Another Pokemon Editor)

Tools, Tutorials & Resources Various tools to help you develop your hacks can be found here.

Thread Tools
Old April 25th, 2008 (11:06 PM). Edited May 16th, 2008 by silver314.
silver314 silver314 is offline
Join Date: Feb 2008
Posts: 11
Hello, everyone. I'm announcing the release of YAPE (Yet Another Pokemon Editor) version 0.9. This is, essentially, a pre-release of the coming version 1.0 (due out when it's out). I figured the community could use the new tool, and since all of the main features are complete and at least lightly tested, I'm releasing 0.9 now.

Main Features
YAPE works on the 3rd generation games (R/S/FR/LG/E) and edits the following:
  • All of the base stats, EVs, etc. This includes a few I have not seen editable in any other editors (such as the level-up rate).
  • Evolutions
  • Usable TMs/HMs
  • Learned attacks. (it even handles updating all the pointers automatically; adding/removing these for a pokemon is now extremely easy.)
  • Pokedex entries (including the height, weight, size, and text)

Some possibly less-obvious features:
  • Everything in the "Pokémon Selection" group can be used to select the active Pokémon. That means you can click on an entry in the evolution tree, enter one of the dex numbers, or select by name, etc.
  • You CAN change the number of learned attacks for a Pokémon. YAPE keeps all learned attacks for all Pokémon in the same space and only places a restriciton on the total across all Pokémon (to avoid overwriting important data by accident.) If you wish to add more learned attacks to say, bulbasaur, you would need to remove one from another Pokémon. You can add more moves to the "?" Pokémon this way. In future versions I plan to have the ability to specify a custom pointer for these for more advanced users, but beware that there will be no checking/automatic pointer updating on any such custom pointer values.
  • The text for the Pokédex entries is like the learned attacks. YAPE only tracks the total space for all text. If you want to make one entry longer, you would need to shorten another one.
  • It is possible to change what a Pokémon breeds to, but this must be done by editing evolutions. The game just backtracks through the evolution tree to determine what the result of breeding is. (There are a few special cases where it will stop before the beginning, such as breeding wobuffet without having it hold a lax insence, but everything else uses the beginning of the tree.) See the help file for more detailed info on how to do some more advanced things with this.
  • Is it possible to add/edit dex entries for the "?" Pokémon (the ones between Celebi and Treecko)?
    • No. At least not in any useful manner. There is a limit of 386 dex entries. Technically, you could have an entry for them by changing the national dex numbers of these Pokémon to something between 1 and 386. However, this provides no real benefit over simply editing the stats/graphics of another existing Pokémon that already has a national dex number in the required range. See post #33 of this thread for all the gory details. If you want to make a hack with more than 386 Pokémon, it is strongly suggested that you wait for D/P tools and use those games as a base instead.
  • I opened a ROM in YAPE, just changed one thing (or nothing at all), hit save, and lots of bytes changed in the ROM. What gives?
    • The additional change you are seeing is probably normal. YAPE doesn't specifically track what was edited, it just saves all data every time you do a save. The things that are likely to change are:
      • the pokedex text/pointers (mainly in leaf green, as YAPE compacts all the entries and lg has some empty space in its dex text area)
      • The order of evolution data. For example, Eevee has 5 evolutions. It is possible that YAPE may change the order that these 5 evolutions appear in. (Evolution data is compacted/sorted internally in YAPE. When it writes the data back, it puts it in the sorted order rather than original order.)

Feature Requests
I'm listing the feature requests that I'm considering here.
I have no current timelines for any of these features, so please do not ask when any of them will be done. In fact, I make no guarantees that any of these will be finished at all. They will only be added if I have the time and can do so in a sane, stable, and user-friendly fashion.

Considered for v 2.0 or sooner. I have at least a general idea of how to handle all of these, but in many cases the implementation is non-trivial:
  • Egg move editing. (Thanks to Teh Baro for info on this)
  • Pokédex order editing.
  • Simple method for expanding the space available for dex text and learned attacks. This will allow the addition of many more learned attacks and larger text entries without losing the safety and convenience of YAPE's automatic pointer updates.
  • Various other polish and niceties in the UI.
  • Importing/Exporting data as text.
Considered for post-v2 (Probably a long way off, if I ever get to it.):
  • Graphics editing for Pokémon (sprite, pallete, position on battlefield, presence of shadow, etc.). General graphics editing should be done with a tile editor or unlz etc.
Considered for separate companion tools to YAPE:
  • Type strength/weakness editor.
  • Attack editor (i.e. something that edits attack name, power, accuracy, etc.)
  • Item editor

If you would like to see a feature that's NOT listed above, feel free to let me know. Be aware, though, that I've got a pretty large list already, so the odds of any new requests (aside from very minor ones) being added in the near future is small.

If you're having issues with YAPE:
  • If the program will not start due to some error, you probably have one of the following issues:
    • You do not have the .Net framework 2.0 or higher installed. You can get this through windows update or from It is free.
    • You're missing some of the dlls required by YAPE. These are included in the distribution; make sure you keep them in the same folder as the main program.
  • If anything in the UI is confusing, check the help files first. They contain much more detailed descriptions about what some of the options and stats mean.
  • Currently this only edits the English versions of the games. If someone can track down the necessary offsets for other versions, I will add support for those as well.
  • If you have a problem not covered above, either PM me or post in this thread and I will do my best to help you.

Translators Wanted

I would love to be able to release 1.0 in a few more languages. If anyone is interested in translating it, let me know. I'm using ini files for all of the program's text, so you would not need to do any actual programming. Take a look in data\en-us\*.ini for an idea of what would be involved in the translation. (Translating the help file would be nice as well, but I realize that is more work...)

Translation Update:
  • See post #38 for some more detailed instructions on making a translation.

Constructive feedback is, of course, welcome.

Attached Images
File Type: png yape-1.png‎ (34.0 KB, 4955 views) (Save to Dropbox)
File Type: png yape-3.png‎ (32.9 KB, 2385 views) (Save to Dropbox)
File Type: png yape-4.png‎ (34.9 KB, 1924 views) (Save to Dropbox)
File Type: png yape-5.png‎ (27.6 KB, 2083 views) (Save to Dropbox)
Attached Files
File Type: zip YAPE‎ (419.4 KB, 30853 views) (Save to Dropbox)
Reply With Quote

Relevant Advertising!

Old April 28th, 2008 (5:02 PM).
Thrace's Avatar
Thrace Thrace is offline
Join Date: Jun 2007
Age: 26
Gender: Male
Posts: 1,048
Wow, I am very impressed, this really has it all! I can't beleive no one has replied for 3 days...

Anyway I just tried it out and it's awesome! This is definitely the best Pokemon Editor yet. There is really nothing to improve on. I hope you continue making more programs, because if this is any indication I'm sure they will be great.
Reply With Quote
Old April 28th, 2008 (5:10 PM).
Tyrantrum's Avatar
Tyrantrum Tyrantrum is offline
Join Date: Oct 2007
Location: New Jersey
Age: 23
Gender: Male
Nature: Lonely
Posts: 5,811
This is cool!
It's in English too!
Now I can edit pokemon understanding the tools on that tool!

(x) Tumblr
(y) Twitter
Previously Eeveon
Reply With Quote
Old April 28th, 2008 (7:06 PM).
Darthatron's Avatar
Darthatron Darthatron is offline
Join Date: Jan 2006
Location: Melbourne, Australia
Age: 25
Gender: Male
Nature: Modest
Posts: 1,152
Wow... It's beautiful... :o I didn't expect to see a C# Programmer in PC either. You have shocked me. This program is fantastic. I hope, and I'm sure the rest of PC, to see more programs by you in the near future.

EDIT: Just thought I'd add that your layout is great. Really easy to understand. This could well be the Ultimate Advance Gen Editor. :D
あなた は しきしゃ です
わたし は ばか です
Reply With Quote
Old April 28th, 2008 (8:05 PM).
12345's Avatar
12345 12345 is offline
Join Date: Aug 2007
Gender: Male
Nature: Calm
Posts: 410
Send a message via Windows Live Messenger to 12345
I can't open it.
"Application error"
(sorry, I know why I can't open it)
That tool is good.
Reply With Quote
Old April 28th, 2008 (11:00 PM).
pavanbharadwaj pavanbharadwaj is offline
Join Date: Nov 2007
Location: India
Age: 26
Nature: Quiet
Posts: 4
I am cursing myself that I did not find this thread earlier and I login daily.Its really a very good and useful tool.Nice job.Expecting more tools.
Reply With Quote
Old April 29th, 2008 (12:16 AM).
Kaizer-X's Avatar
Kaizer-X Kaizer-X is offline
RoM HaCkeR
Join Date: Mar 2008
Location: Look outside your window and you will see me there
Age: 26
Nature: Bold
Posts: 389
wow thks a lot, this is a really good tool

Pokemon Twilight: Road to Dreams
Rom Tempest Crew
Rom Hacking Newsletter
Credit to Rényui for theme
Reply With Quote
Old April 29th, 2008 (12:22 AM).
SerenadeDS's Avatar
SerenadeDS SerenadeDS is offline
Join Date: Feb 2007
Posts: 283
Cool, I like the GUI of YAPE. (Catchy name, lol) It's lookin good so far, keep workin on it =)
Reply With Quote
Old April 29th, 2008 (1:14 AM). Edited April 29th, 2008 by simplynaruto.
simplynaruto simplynaruto is offline
Join Date: Apr 2008
Location: travelling to azengard
Posts: 239
Nice now the hacking of pokemon can really start.Also just wondering since its a pre-release are you going to add more features like being able to import/export the pokemon sprites and everything that has to do with sprites.

Also is netframeworkfree?
Reply With Quote
Old April 29th, 2008 (5:49 AM).
Kim Do-yeon's Avatar
Kim Do-yeon Kim Do-yeon is offline
Join Date: Jun 2006
Location: Berkshire, England, UK
Age: 29
Gender: Male
Nature: Hardy
Posts: 594
Originally Posted by simplynaruto View Post
Also is netframeworkfree?
You get it free from Bill Gates Homepage
Reply With Quote
Old April 29th, 2008 (8:52 AM).
Binary's Avatar
Binary Binary is offline
Join Date: Aug 2007
Age: 22
Posts: 3,993
The name sounds catchy and the tool looks great. I might use this since I don't really have a good pokemon editor. Nice work!
Reply With Quote
Old April 29th, 2008 (9:26 AM).
D-Trogh's Avatar
D-Trogh D-Trogh is offline
Join Date: Jul 2005
Location: Belgium
Age: 25
Gender: Male
Posts: 438
Send a message via Windows Live Messenger to D-Trogh
Woow.. Really nice GUI. Simple yet beautiful ;)
For the name, you know YACC, don't you? =P
Reply With Quote
Old April 29th, 2008 (10:11 AM).
cooley's Avatar
cooley cooley is offline
///Keepin' it simple
Join Date: Feb 2007
Location: United States
Age: 22
Gender: Male
Nature: Impish
Posts: 1,147
Send a message via Windows Live Messenger to cooley Send a message via Skype™ to cooley
Wow! This even edits the Pokedex entry of the Pokemon!
Awesome program, you're an Awesome programmer! How long did it take for you to finish this Program?

Anyways, this has it all, everything that a POKéMON needs to be edited.
Maybe you should add the Offset for the Picture and the Palette into this program too, so repointing can be easier. Thanks for this program, it's amazing!

Reply With Quote
Old April 29th, 2008 (11:44 AM).
Epsilon's Avatar
Epsilon Epsilon is offline
Shiny Scizor
Join Date: Jun 2006
Location: Johto
Nature: Adamant
Posts: 243
Fantastic program!

But does it also repoint dex locations for the ??? pokemon?
I can recall that Darthatron had some trouble with it..
Reply With Quote
Old April 29th, 2008 (1:14 PM).
Ahegil's Avatar
Ahegil Ahegil is offline
The Breeder Chick
Join Date: Nov 2006
Nature: Naughty
Posts: 87
add a move editor and you'll have the best pokemon GBA editor out 0.-

PokeSpam Inc.
Reply With Quote
Old April 29th, 2008 (2:58 PM).
Stalin Malone's Avatar
Stalin Malone Stalin Malone is offline
Order. Stability. Progress.
Join Date: Feb 2008
Location: Is that the future you were expecting?
Age: 29
Nature: Sassy
Posts: 235
Very nice! I wouldn't mind seeing one of these for D/P's pokemon.
Reply With Quote
Old April 29th, 2008 (3:21 PM).
Vegeta™'s Avatar
Vegeta™ Vegeta™ is offline
Join Date: Jul 2007
Location: London, UK
Age: 26
Gender: Male
Nature: Adamant
Posts: 435
Very good indeed, simple to use
This signature has been disabled.
Bottom images make your signature just a bit too tall :(
Please review and fix the issues by reading the signature rules.

You must edit it to meet the limits set by the rules before you may remove the [sig-reason] code from your signature. Removing this tag will re-enable it.

Do not remove the tag until you fix the issues in your signature. You may be infracted for removing this tag if you do not fix the specified issues. Do not use this tag for decoration purposes.
Reply With Quote
Old April 29th, 2008 (6:58 PM).
Luck's Avatar
Luck Luck is offline
Join Date: Nov 2007
Posts: 6,771
this by far seems like the best program because of these replies.
you are a great programmer.
and it looks like you have some trouble darthatron.
now off to microsoft to get .NET.
Reply With Quote
Old April 29th, 2008 (8:25 PM).
silver314 silver314 is offline
Join Date: Feb 2008
Posts: 11
Thanks for the kind words, everyone.

I'm glad the UI is appreciated. I spent a lot of time trying various layouts for the program before settling on what I have.

As I said in the first post, this is a pre-release and the current version number is only 0.9. I do, in fact, have plans for YAPE 1.0+. I kept thinking of new features during development, but decided that YAPE had reached a point where I needed to stop, polish it up, and release it so that the community had something to use while I worked on the other features.

Just so everyone knows, I don't currently have any plans to add D/P support to YAPE or anything else. From what I've seen on the board it looks like PokeSpam Inc has good plans to cover these games and I look forward to seeing what they put together. Personally, I want to focus on putting together the best advance gen tools I can for now.

As for some of the other questions/comments...

@12345 - I'm guessing you either didn't keep all the dlls with the main program or didn't have the .net framework installed. I'll update the main post to give a more obvious warning about that.

@D-Trogh - I wasn't thinking about YACC at the time I named my program, but some of my friends have used it before (I've managed to avoid building any compilers myself...).

@cooley - Total time was maybe a month and a half worth of my spare time. A lot of fiddling with the UI (this is my first time writing anything with a meaningful GUI, I usually just write command line programs and libraries.) On the topic of sprite and pallette offsets, well, I considered something like that, but I have... more interesting graphics plans if I ever get around to it.

@Epsilon - I'm not sure what issue you're referring to. The dex data is stored by national dex number in the games; it's not directly tied to the Pokémon. There's only room for 386 entries unless you completely move the dex data to a new location.

The ???? Pokémon (if you're referring to the ones that appear between celebi and treecko in the game) have national dex numbers > 368. I list the number of dex entries in the INI files and YAPE just disables editing of the dex data for any Pokémon with a national dex number higher than that. If you you have gone to the trouble to relocate the dex data so that you have room for more, all you would need to do is update the INI files and YAPE would then let you edit the dex entries.

I have no intentions of adding support for automatically tracking down free space and relocating all the dex data or anything, but if you've already done it, YAPE will support that with a simple INI update.

@Ahegil - Looks like you managed to guess one of the features for upcoming versions ;-)

Reply With Quote
Old April 30th, 2008 (7:34 AM).
Derlo's Avatar
Derlo Derlo is offline
Working on Essence of light...
Join Date: Aug 2007
Posts: 127
Send a message via Skype™ to Derlo
Beautiful work man!!
Anger to help me a lot in the production of my hack!

I have a question and a suggestion!!
Do you know as to put or to remove the shadows below of the sprites of the pokemons?
If yes... put that function in the next version!!

Thank you!
Good Luck!
Reply With Quote
Old April 30th, 2008 (8:45 AM).
Teh Baro's Avatar
Teh Baro Teh Baro is offline
In my times...!
Join Date: Mar 2006
Location: Spain
Gender: Male
Nature: Quiet
Posts: 522
Originally Posted by Derlo View Post
Beautiful work man!!
Anger to help me a lot in the production of my hack!

I have a question and a suggestion!!
Do you know as to put or to remove the shadows below of the sprites of the pokemons?
If yes... put that function in the next version!!

Thank you!
Good Luck!
That and height where the pokemon is placed in battle, and this will be even perfect.

BTW, about that breeding thing below... does it just track back evolutions? Does the game do that or there's breeding data somewhere in the rom?
what the fudge
Reply With Quote
Old April 30th, 2008 (9:09 AM).
Epsilon's Avatar
Epsilon Epsilon is offline
Shiny Scizor
Join Date: Jun 2006
Location: Johto
Nature: Adamant
Posts: 243

I'm referring to the 24 ???? pokemon that come after celebi,
or do they already have on?
Reply With Quote
Old April 30th, 2008 (7:14 PM).
silver314 silver314 is offline
Join Date: Feb 2008
Posts: 11
@Derlo and Teh Baro
I don't currently know how to change shadows, or position of the battle sprites, but I agree that this would be a nice feature. I will add these to my list of things to consider for future versions.

@Teh Baro
The game itself just traces back up the evolution tree to determine what a Pokémon breeds to. It does have some special code to make it so that wobuffet must be holding lax insence to produce the first evolution in the tree, but aside from this there is no other table or anything for the breeding info. It's simple backtracking through the evolutions. I did a fair amount of experimentation to ensure that YAPE followed the same basic process to determine this as the game does. I don't have any special notifications for the exceptions like wobuffet though.

I'll make an attempt at explaining how all of the dex information works and hopefully that will help.

There are 2 main locations for dex data. One offset has 386 fixed-size entries with height, weight, etc. and pointers to the text data. The text data is stored seperately.
YAPE does handle updating all of the pointers in these dex entry structures as needed when you modify any text.

The way that a dex entry is tied to a Pokémon is not through a normal pointer; rather, the dex entries constitute an array with 387 elements and the national dex number of the Pokémon is used as an index into that array.

The ??? Pokémon you refer to all have national dex numbers > 386, so the game has issues if you catch one as it attempts mark a dex entry as caught that is beyond the size of the array. It is certainly possible to change the national dex numbers of these ??? Pokémon (future versions of YAPE will allow changing of the dex order), but you still have the limitation that all of the dex entries need to be together. Unless you relocate the entire array of dex data, you are still limited to 387 dex entries.

When you edit a dex entry in YAPE, all that happens is that I look up the national dex number for the selected Pokémon and modify the dex data at that index. Unlike the game, YAPE does do bounds checking and will not allow editing of any data beyond the end of the dex data array.

If you go to the Pokédex tab for one of the ???? Pokémon in YAPE, you will see that all editing is disabled because there is no corresponding dex entry for that Pokémon.

Summary: No. You can't just repoint these to some random location in the game because these are not accessed through normal pointers; they are accessed as an array where the national dex number is the index. Future versions of YAPE will let you modify the dex number (array index) used, but if you want more than 387 dex entries, you have to relocate the entire dex data.

Also, I'm putting together some technical documentation on the side which will have answers to these sorts of questions. I'll be releasing it when I get it finished for anyone who's interested.

Reply With Quote
Old May 1st, 2008 (12:20 AM).
Epsilon's Avatar
Epsilon Epsilon is offline
Shiny Scizor
Join Date: Jun 2006
Location: Johto
Nature: Adamant
Posts: 243
Ok, thanks for explaining!

Maybe with this info,
people (maybe me) are going to be able to add pokemon after the last hoenn pokemon.
A complete dp generation in FRLG!

(I know that dex information isn't everything,
but still, it's a start)
Reply With Quote
Old May 1st, 2008 (2:40 AM).
liuyanghejerry's Avatar
liuyanghejerry liuyanghejerry is offline
Join Date: Jan 2008
Location: China,Xi'an
Nature: Calm
Posts: 219
Send a message via ICQ to liuyanghejerry Send a message via Windows Live Messenger to liuyanghejerry Send a message via Yahoo to liuyanghejerry
I can't open it either...
It need .net 1.1 or 2.0?
Zel,thethethethe,LU-HO,Darthatron,HackMew,ZodiacDaGreat,Juan,score_under,JPAN,Tamah-chan,I really appreciate your kindness and your help!:D
Reply With Quote
Quick Reply

Sponsored Links
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT -8. The time now is 4:42 PM.