Welcome to the PokéCommunity!

Hi there! Thanks for visiting PokéCommunity. We’re a group of Pokémon fans dedicated to providing the best place on the Internet for discussing ideas and sharing fan-made content. Welcome! We’re glad you’re here.

In order to join our community we need you to create an account with us. Doing so will allow you to make posts, submit and view fan art and fan fiction, download fan-made games, and much more. It’s quick and easy; just click here and follow the instructions.

Pokémon Sun and Moon are now available! Read our extensive Sun and Moon review at Daily!

The finale of the fourth annual Favorite Pokémon Tournament is underway in Pokémon General!View the poll and vote for as many Pokémon as you'd like. Voting is only open until the 5th of December though, so don't wait to make your picks!

Research & DevelopmentGot a well-founded knack with ROM hacking? Love reverse-engineering the Pokémon games? Or perhaps you love your assembly language. This is the spot for polling and gathering your ideas, and then implementing them! Share your hypothesis, get ideas from others, and collaborate to create!

Research & Development programs in this forum are subject to moderator approval before they are displayed.

Here we have video evidence of 649 Pokémon appearing in FireRed's Pokédex. As things stand, I haven't inserted the sprites or cries, or most of their stats, but NONE of what I just mentioned is routine related. Most of them (the ones with stats) are valid battlers too, so I think I can honestly say I'll have this finished within the next couple of days if I find the time.

Also shown in this video is the Kanto dex, reorganised into a regional dex. The length and order of this dex is entirely up to the hacker, but being based on LC and all, I decided to give it an appropriate pokédex order, and made the Kanto dex into the New Pokédex from GSC.

Not bad, I did that months ago. You figure out how to expand the seen/caught in the RAM yet? Cause that is the hard part...

Yeah, that was the first thing I did because I figured that the rest of it wouldn't work without that first.

@Full Metal
I'm still ironing out some bugs related to the hack, but when I make it bug free, I'll release the information.
I'm relatively happy to allow people to use it once it's bug free!

Quote:

Originally Posted by Jambo51

Using the following routine, I was able to repoint and extend the seen and caught flags for Pokémon to a free RAM location. The new routine has support for 656 caught flags, and 656 seen flags (as close to 649 as I could get using the 8 bits to a byte system, obviously aiming for the gen 5 total here!). Bear in mind however, that the routine is only limited by how much free space you allocate it. If we were to use a full save block to store caught and seen flags (which is possible using JPAN's save block hack!), we would be limited to a maximum of 10,240 pokémon. This is clearly more than enough XD.

The routine actually simplifies on the original greatly and as such, it's more open to bugs and oddities. Instead of having 3 separate sets of caught and seen flags, I reduced it to 1 longer set, pointed to a different RAM location. The only issue I have with the routine is that the new block of ram is NOT saved when saving the game.

This routine could theoretically be inserted directly over the original routine as it is smaller than it. If you wish to do so, paste my routine into the rom starting at 0x104AB2. However, it is substantially safer to insert it with a ldr bx combo. Up to you I guess. If you want to use a ldr bx combo, use Register 3.

As you can see, it sets up the new caught/seen flags at 0x0203E400 (seen) and 0x0203E452 (caught). That's 82 (0x52) bytes for each set, which equates to 656 caught and seen flags.

It uses a total of 164 bytes to safely store all the relevant bits. This is (again) actually smaller than what the original rom uses just to store 416 bits worth of flags. However, because all the data isn't concurrent, we can't use that for our new data.

The routine is pretty much self explanatory, and isn't complicated to the point of being unintelligible. This solves our first BIG problem related to the expansion of the Pokédex. Now if I could just get the block to save using jpan's hack, i'd be sorted.

Oh is that what that is? I really didn't notice that as I scrolled down. I'll take a better look at it tomorrow when I wake up. I want to compare it to the original routine and stuff.
I'm actually working on doing this to Emerald for my hack. I already have been able to add more Pokemon but the seen/caught is everybody's biggest problem I think.

I actually managed to get it all working, and then somehow completely mucked it up while (I believe) trying to insert a cry. Trying to replicate it on a clean rom now, but having issues with the Pokédex screen not working. I have noted down as many definite limiters as I can find, but I basically have to start over. I hate the cries! XD

__________________

Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!

I actually managed to get it all working, and then somehow completely mucked it up while (I believe) trying to insert a cry. Trying to replicate it on a clean rom now, but having issues with the Pokédex screen not working. I have noted down as many definite limiters as I can find, but I basically have to start over. I hate the cries! XD

Just make constant back ups and stuff. I made a tool to do all the repointing and expanding for me. All I need is to solve the Pokedex problem.

Did you properly repoint everything? Keep in mind you still need to put the egg and unowns after the Pokemon that includes the icons.

For those who've been asking, I will probably release this publically as a patch when I've finished inserting all the data. This will mean it can't be used on a hack which is in progress. I'll most likely highlight the significant data in the patch so that people can copy it over to their roms if they want to use it on an already started hack. Of course, the patch will only be for BPRE as I simply don't have the time to sit and translate all the data and limiters over to another rom.

Will you also document it and release the info? ( I'm genuinely curious about it X) )And also, this weekend after I update Bytes And Bits. I would gladly help out in any way I can!

Yeah, of course i'll release documentation to go with it. It'd be a bit daft to release the patch, and then have people try to work it all out for themselves.

Most of the hard work has been completed, with all but one routine working from what I can see, and that shouldn't be too hard to fix. Interestingly, as a side effect of fixing the Unown sprites, I came across how the game generates the Unown, and could theoretically hack that to produce controllable Unown encounters.

What I mean by that is, the hacker can set what Unown s/he wants to appear on a certain map, or even control it with variables/flags. We can FINALLY have proper GSC style Unown controlled by completing those puzzles!

__________________

Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!

Even though my posts keep getting deleted for no reason I figured I should also mention you need to expand the move tutor learnable moves. I don't have the offset for BPRE but I dug this up. Just scroll towards the end.http://www.pokecommunity.com/showpost.php?p=4162498&postcount=267
The offset there is wrong though. You want to subtract by two bytes to include the first (?)

Hmm... you guys could edit and control the Unown that can appear on each map now, right? So if you're adding the Sinnoh and Unova listings, why not try to edit some more for the controlled changing of formes for some Pokemon? Lie Cherrim's Overcast Forme appearing only in sunlight, or when giving a certain item to Giratina or Shaymin (possibly a Griseous Orb or Gracidea) that will change their formes. This is especially neccesary for Arceus, with seventeen Plates that can change its forme AND type. So, how about it? :D

Hmm... you guys could edit and control the Unown that can appear on each map now, right? So if you're adding the Sinnoh and Unova listings, why not try to edit some more for the controlled changing of formes for some Pokemon? Lie Cherrim's Overcast Forme appearing only in sunlight, or when giving a certain item to Giratina or Shaymin (possibly a Griseous Orb or Gracidea) that will change their formes. This is especially neccesary for Arceus, with seventeen Plates that can change its forme AND type. So, how about it? :D

And what if I told you i've already started doing some of the basic work needed for that...? I can already switch sprites around based on forme checks, although, I still haven't worked out a way to do type changes.

EDIT: I think that type isn't actually stored in the Pokémon's data. I think the game automatically reads the actual data table stored in the rom to determine type. In order to get TYPE changing formes, I was thinking of have the game run a set of extra checks, firstly checking the pokémon against a list of Pokémon which have formes and which type of forme (male/female sprite (Pikachu), simple sprite switch (Shellos and Gastrodon), sprite and type switch (Arceus)), and then, if it has a forme, run the appropriate check to see if the sprite needs switching. For the type, i'll need to run a LOT of extra checks. Basically, any read of the type of any given Pokémon (whether in Battle, or in status screen - Note that the Pokédex could support it too, but it's better not to really), will need to have those extra checks running and modifying the type behaviours for each given Pokémon individually.

In other words, we have forme 1 Burmy and forme 2 Burmy in our party. The check will get run for BOTH Burmys as it will match one of the forme checks, the first one will return Bug/Grass Type and Sprite number 1 (because of location or whatever it is that changes a Burmy's forme), while the second will return Bug/Steel Type and Sprite number 2. Does that make sense?

How I would go about doing it, would be to have a 650 byte long table (an entry for each Pokémon species) with the following key:
0 - No Forme
1 - Simple Sprite Switch (Including Male/Female Formes)
2 - Sprite and Type Switch

0 Speaks for itself. 1 would run appropriate checks for the species you pass it (if you pass it 0x19, it will check the Pokémon's gender, and then load the appropriate sprite, if you pass it 0x1A6 it will check where the Pokémon was caught, and load the appropriate sprite).
2 is more difficult. It would run a similar check to 1, but it would also have to force the game to bypass reading the normal Pokémon Stats Data, and make it read a separate set of data with a separate set of types.

__________________

Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!

Would it be possible to consider two different Pokemon to be the same Pokemon? That way we could have 28 Unowns that are created the same as other Unowns, 2/3 pikachus that are treated the same, and 7 or so of the one legendary. That would mean less hardcoded checks, but still wouldn't cover, say, cast-form.

Of course, I'm reverting to my Yuri's Revenge sensibilities, when this is more Tiberian Dawn style ASM.

Would it be possible to consider two different Pokemon to be the same Pokemon? That way we could have 28 Unowns that are created the same as other Unowns, 2/3 pikachus that are treated the same, and 7 or so of the one legendary. That would mean less hardcoded checks, but still wouldn't cover, say, cast-form.

Of course, I'm reverting to my Yuri's Revenge sensibilities, when this is more Tiberian Dawn style ASM.

I'm not really 100% sure what you mean here...
The Unown are all generated in the same way, and are all treated as one species of Pokémon.
Every Pokémon is randomly generated based on their stats when it's encountered, but there are specific checks determining what forme they can take (Deoxys and Unown are the obvious examples here).

On a related note, I have managed to programme in all but 1 of the evolutionary types that were introduced in Gen 4 and 5. Including getting the New Evolutionary Stones to work properly. The only one which is currently unavailable is the gen 5 introduced one where the two traded Pokémon control whether or not they evolve.

__________________

Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!

Hi all,
I wanted to know if any1 can release pokemon fire red hack with 649 pokedex.
im not really good with ASM or HEX.
Ill give credit in my hack.
Thanks.

First of all, this really isn't the place to ask for this. Careful or you'll get yourself into trouble with the mods. Secondly, the patch is NOT complete for any rom yet, and probably won't be for a while yet.

Quote:

Originally Posted by Derlo

Since you brought up the subject of 'new evolution' in 3rd gen...

You could try to make the orignal DN evolution system, was based on new D/N systems that were released for FR.

It would be very helpful for all.

What? The level up Eevee with full happiness at Day/Night to get Espeon and Umbreon? I have put it in
Goes without saying that the rom needs the RTC for it to work though, otherwise it'll always try to evolve to Umbreon, as the routine will check the RTC time, which will be set to 0, and interpret that as night time.

__________________

Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!

Wow... Just wow. I come back to visit and I find this. Great job Jambo51! I'm looking forward to seeing that awesome patch.

Thanks! I've been very busy since I developed the Day/Night Wild Pokémon routines

Another important update: All the evolution types work as far as I can tell, however, for people who play these hacks using a flash card rather than an emulator, I take no responsibility for any bugs caused by the new evolution types, as I cannot forsee bugs on systems I can't test on.

Gen 5's evolution type (Karrablast -> Escavalier when traded with a Shelmet or Shelmet -> Accelgor when traded with a Karrablast) works with IN GAME TRADES only at this time. I cannot test how the game works with proper trading, and as such, can make NO guarantees that it will work. I expect that it will not work, but feel free to give it a try.

While the routines for the Day/Night Specific evolutions work, I am NOT including the RTC in this patch. It is not mine, and I can't add it to the patch without first asking the people behind it's permission.

__________________

Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!

Also, about the forms earlier, I once made seasonal forms for a specific pokemon by changing the sprite based on the RTC. I lost the source somehow, but I could dig it back up sometime. Or, a different approach could be to use the animation system. I made it so animations could vary from pokemon to pokemon, so I could add a check for forms, and load a different animation that shows a specific form.

Also, about the forms earlier, I once made seasonal forms for a specific pokemon by changing the sprite based on the RTC. I lost the source somehow, but I could dig it back up sometime. Or, a different approach could be to use the animation system. I made it so animations could vary from pokemon to pokemon, so I could add a check for forms, and load a different animation that shows a specific form.

I have some ideas for simple sprite varying formes, as they aren't hard to do in any way. At the end of the day, the Unown are simply differing formes of the same Pokémon, so we can easily copy the routines for the Unown, bend them to suit our purposes (check genders/held items and such) and load the appropriate sprite for the result of the check.

However, formes with differing TYPES are going to be an absolute B***H to do. From what I can tell, the type data is not stored in the Pokémon's data, but is loaded from the Pokémon data tables dynamically as it's needed. This means that we will need to create literally hundreds of new routines which run the same checks as the sprite ones above to try to force different typing on different formes.

Is it really worth doing this...?

__________________

Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!

You could just be lazy and add the type formes as separate Pokemon, switching which one it is in an evolutionary manner with some routine. Would there be any issue with that? The way I see it- it's too much of a hassle (Albeit, a huge accomplishment) to go about it the way you are.

Also, would you mind sharing just what the issue was with getting new evolutionary stones to work? I've had a look through the item table and the evolution table and I couldn't see anything out of the ordinary.

In any case, I'm so impressed with your work and it's really beneficial to those researching these things out of interest

Help

The PokéCommunity

Meta

Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, or The Pokémon Company International. We just love Pokémon.