PDA

View Full Version : The 65535 pokemon


Dragonmaster91
July 7th, 2009, 08:40 AM
The Main Project


This project is to find out how to hack glitch pokemon data.
Mostly to add D/P/P pokemon to Fire Red.

Obstacles

Currently, pokemon cries.



A bit of info on glitch pokemon


I guess a bit of explanation is in order for the people who are new, or do not know this.

The first and second generation used the hex FF to define how many pokemon there are.

In the first generation, they used 151 pokemon, which allowed for 105 glitch pokemon.

In the second generation, they still used FF, and used 251 pokemon. This allowed 5 glitch pokemon, one being a bad egg.

In the third and fourth generation, they used FFFF to determine the amount of pokemon they CAN make.


In the third generation, they used 386 pokemon, allowing for 65149 glitch pokemon to exist. 25 are the "Unknown" remnants, and one is hex 0000, which looks like all the others above hex 019C. There also are no hybrids, like in the fourth generation. Some of them crash your game as well. Also, if you add 109 pokemon, you could also have all the 4th gen pokemon. Hex 19C is the bad egg. It is named "-".

In the fourth generation, same hex FFFF, but 493 occupied slots, no "unknown" remnants. so 493 converted into hex is 01ED. Allowing 64545 Glitch pokemon. 64545? yes, the other 495 are hybrids.

Note: Glitch pokemon are pokemon indeed, but there is still the issue that these pokemon share most the same pointers! It saves data! So, that is an obastacle.

Amendment to note: Repoints have mostly already been made.

Hybrids


Starting at 8000 ending at 81ED. Most glitch pokemon crash your game, the hybrids are somewhat different. It depends on what system you are playing on. On a normal DS, the crashes when you catch one, because of the pokedex issue. The only way to obtain one on a normal DS is to use a mining museum code. On an emulator, You can catch one, and the pokedex data is empty, except for the entry data, which if you catch a hybrid bulbasaur, it appears as ?46 or something like that. Don't ever give a hybrid a nickname. The hybrids all have the same moveset, present, covet, and glitch. Glitch never has any accuracy. These hybrids also skip levels, like some of the third gen glitches.

The Question


So here is what I was thinking, if most the data could be found for the third gen glitch pokemon in a hex editor/memory viewer, couldn't it be possible to hack these pokemon into something the game recognizes and won't freeze on (because of the lack of data)?

The Theory


Here is a point where people are too reliant on tools, to add new pokemon, you would need to change the picture. Pokedit pro makes this very easy, but the fact is that it does not change the glitch pokemons sprite. To do this, you would need to

1. expand the rom (I am not sure if there will be enough room to even add new sprites to 300 of these).

2. Add the sprite to the game via hex editor(/unlz for those who can't find the hex).

3. Repoint all the data of that pokemons sprite.

4. Change that pokemons data, and pokedex data (using a hex editor).


Voila, you can have 65535 new pokemon (lol, game won't hold THAT
many). Thing is, we need to find out all this hex data. I know that a few people know some of the pokemons hex data, but probably not that much.

Others findings


I have searched this site thoroughly and found nothing, as well as the web. The only thing I have found was at Glitch City Laboratories, where they were looking but quit after a few because they mostly turned up the same results for all of the glitches (note: They only got up to 1 or 200 maybe 300 or 400). However, their reports did not have anything on what the Memory Viewer said about the locations,

Summarized: There can be up to 65535 pokemon in the 3rd gen, if you
1. expand the rom (I am not sure if there will be enough room to even add new sprites to 300 of these).

2. Add the sprite to the game via hex editor(/unlz for those who can't find the hex).

3. Repoint all the data of that pokemons sprite.

4. Change that pokemons data, and pokedex data (using a hex editor).


You could have many many many new pokemon. The theory above is just a theory, I have not tried this out. This is also why I have not put it into the documents and tutorials board too.

Help wanted!


thethethethe listed the offsets for Fire red, these can be used to explore a little more with those offsets. However, as I am still teaching my self hex, help is greatly wanted.

Other possible uses!


I wish this thread be used to figure this out. No one will ever get all 65535, but if we get a couple hundred, there are endless possibilities. Not too mention pokemon boxes, where the sprite will show up with the show pokebox command, or something like that (mostly for characters who are speaking). To do that, all you would have to do is change the sprite.

Crediting the hybrids


The D/P/P Hybrid pokemon, I did not find them, the proud people of Glitch city laboratories did.

Also, picture of a D/P/P hybrid. It is the one that I am using.

http://i298.photobucket.com/albums/mm255/dragoncharger/Glitchmove.jpg

People to be credited for research:

Newo of Glitch City Laboratories -
Reason: Supplying encounter codes.
Extended Hacker pokeamp

All Glitch City Laboratories members -
Reason: Testing some glitch pokemon.

thethethethe of the PokeCommunity -
Reason: Supplying offsets, thereby making things MUCH easier.
Supplying a .ips and an ini file for pokeamp compatible with the ips.

Attachment added, pokeamp 1.5. I got a copy from Newo's signature.
I am not sure if I should have done that, but oh well.



Thinking...

thethethethe
July 7th, 2009, 02:05 PM
Admittedly, I am far too lazy to lend any help although I would be interested in the results even if I wouldn't take advantage of them.
But here's some pointers to get you started. You may need a few more like the icon table.
Pokemon Front Sprite Pointer Table - 0x2350AC
Pokemon Back Sprite Pointer Table - 0x23654C
Pokemon Front Palette Pointer Table - 0x23730C
Pokemon Back Palette Pointer Table - 0x2380CC
Pokemon Names - 0x245EE0
Hoenn Pokedex Order - 0x251CB8 (Don't ask WHy, I don't know)
National Pokedex Order - 0x251FEE
Base Stat Data - 0x254784
Moveset Data - 0x257494
Evolution Data - 0x259758
Moveset Pointer Table - 0x25D7B4
PokeDex Data - 0x44E850

Dragonmaster91
July 7th, 2009, 02:10 PM
Admittedly, I am far too lazy to lend any help although I would be interested in the results even if I wouldn't take advantage of them.
But here's some pointers to get you started. You may need a few more like the icon table.
Pokemon Front Sprite Pointer Table - 0x2350AC
Pokemon Back Sprite Pointer Table - 0x23654C
Pokemon Front Palette Pointer Table - 0x23730C
Pokemon Back Palette Pointer Table - 0x2380CC
Pokemon Names - 0x245EE0
Hoenn Pokedex Order - 0x251CB8 (Don't ask WHy, I don't know)
National Pokedex Order - 0x251FEE
Base Stat Data - 0x254784
Moveset Data - 0x257494
Evolution Data - 0x259758
Moveset Pointer Table - 0x25D7B4
PokeDex Data - 0x44E850
Thank you. These will help very much, I will not let anyone down.

My research, besides finding out if glitch pokemon crash or not, begins now.

Help from anyone would be appreciated, seeing as there are A LOT of the glitch pokemon


*edit* I remembered Newo's signature had something that allowed you to check out some of the pokeglitches data. Not many though... Also, a glitches moves as it levels up can be different. One time, Hex CCCC or BBBB (note: one of the two would crash) always learned a different move if I trained it from a low level. Usually, a lot before level 10, a few before 20. Sometimes, it only learned 1 move.

Thrace
July 7th, 2009, 04:15 PM
Mastermind_X once told me he was able to do this successfully. You might want to ask him.

Dragonmaster91
July 7th, 2009, 04:30 PM
Mastermind_X once told me he was able to do this successfully. You might want to ask him.
I will, thank you for letting me know. He could help.

Edit: I sent him a PM

sky_queen3
July 7th, 2009, 10:03 PM
65535 Pokemon? Think of all the fakes we could create! :D

Dragonmaster91
July 7th, 2009, 10:27 PM
65535 Pokemon? Think of all the fakes we could create! :D
I was thinking more along the lines of adding all the fourth generation pokemon, but that will be up to you.

PlatniumPiano
July 7th, 2009, 10:43 PM
65535 Pokemon? Think of all the fakes we could create! :D

One can have too much of a good thing. With all this room, I would fear not an increase of fakemon, but a decrease in quality of fakemon. If somebody can create 65,535 decent looking pokemon that look original and fresh, PM me... I agree with the Dragonmaster's title idea. All the Pokemon from every game would be fine. Possibly a good amount of fakemon. I have not seen a Fakemon only hack (if there is, link?) that has gotten off of the ground, though Torzach shows more potential than the rest. 150 fakemon may be possible but 65 grand? Not gonna happen. At that point you would have to start importing anime characters and pets lol. Not to mention how much time that would take. Concept art, frontsprites, backsprites, cries, movesets, etc... It would be just too much.

Dragonmaster91
July 7th, 2009, 10:52 PM
One can have too much of a good thing. With all this room, I would fear not an increase of fakemon, but a decrease in quality of fakemon. If somebody can create 65,535 decent looking pokemon that look original and fresh, PM me... I agree with the Dragonmaster's title idea. All the Pokemon from every game would be fine. Possibly a good amount of fakemon. I have not seen a Fakemon only hack (if there is, link?) that has gotten off of the ground, though Torzach shows more potential than the rest. 150 fakemon may be possible but 65 grand? Not gonna happen. At that point you would have to start importing anime characters and pets lol. Not to mention how much time that would take. Concept art, frontsprites, backsprites, cries, movesets, etc... It would be just too much.
Agreed, and I don't think anyone has that much time on their hands.

Edit: Or that much space, even with a 32-bit rom.

onyx79
July 7th, 2009, 11:10 PM
so you're trying to say there are 65535 pokemons and all of them can be used?
sounds kinda cool,it would help in making a 3rd gen hack with all of the d\p pokemon in it,that means all of the 493 pokemons!
also you can insert the 5th gen when it comes out!
edit:I can help with the nobby job=editing the d\p pokemons names stats and everything that is not related to sprite hacking

Dragonmaster91
July 7th, 2009, 11:15 PM
so you're trying to say there are 65535 pokemons and all of them can be used?
sounds kinda cool,it would help in making a 3rd gen hack with all of the d\p pokemon in it,that means all of the 493 pokemons!
also you can insert the 5th gen when it comes out!
Thats if there is a fifth generation. I think Nintendo has really been milking it lately.

Not too mention though, when people learn more about the fourth generation data, you can hack those too!

Unrelated note: I do not know how some people figure out the hex data...

Tropical Sunlight
July 8th, 2009, 03:16 AM
Isn't 65535 kinda too much?

sky_queen3
July 8th, 2009, 04:43 AM
I was thinking more along the lines of adding all the fourth generation pokemon, but that will be up to you.

Ok... 65429 fakes then. :D There's 106 4th gen pokemon. Yeah it's a lot but having extra space in case one mucks up is good.

cooley
July 8th, 2009, 05:08 AM
Unrelated note: I do not know how some people figure out the hex data...
It depends what you're searching for :P

Say the cry on the Intro was a Pikachu, so you would search for 19, changing it each occurrence to see if that's the offset that you wanted.

But people also reverse engineer to find things out, like the scripting commands and such.
VBA is a great helper if you want to find something out ;)

KostK2Boss
July 8th, 2009, 05:22 AM
WOW! It's not 1000, it's not 10,000, ut 65,000 pokemon! It's waayy too much to catch in a lifetime. It MIGHT be possible. It is definitely possilbe with the 25 former Unown (aka ??), because their offsets are known. Should you solve this mystery, use the 65,000 slots for something more than just fakemon, like character mugshots, or gender difference pokemon.

Wichu
July 8th, 2009, 06:42 AM
Obviously people wouldn't use all 65535 spaces; that's just how many are possible :\
This is just to avoid being limited by that 386+25 Pokémon thing, and possibly a few others (mugshots, alternate forms, etc).

Anyway, to stay on-topic, this is actually pretty interesting (even for a non-hacker like myself). Thanks to thethethethe's offsets, I think I could create a patch for the stats (base stats, moves, Pokédex entries etc) of the D/P Pokémon. I don't know how the sprites are compressed, so I can't do that (at least, not using a script)... Same goes for cries. If anyone cared to explain how the LZ77 algorithm works in GBA games, or how the Pokémon cries are stored, I could give those a go too... But isn't there still an issue with the game not processing more than 386 Pokémon? For example, the national dex order could theoretically go on infinitely, so there's got to be some code somewhere telling it to stop at 386. Until someone figures this out (anyone already done it), these 65535 slots are useless :S
I wouldn't use it myself, since I prefer RPG Maker. But it would probably come in useful to all the hackers here.

(by the way, I've been messing with automating a couple of things; in the past half an hour, I've decapitalized all the Pokémon, move, and ability names. Inserting the stats of the D/P Pokémon shouldn't be much harder)

Dragonmaster91
July 8th, 2009, 07:33 AM
Obviously people wouldn't use all 65535 spaces; that's just how many are possible :\
^ This. And as someone had said, you can use extras in case you screw them up... When this is all said and done, I am going to add all the D/P/P pokemon and release a rom base. That should save a lot of time for others, and I only have to do it once!


There is another issue though, I think I hit in my first post. All of these pokemon have the same sprite, and name. A simple repoint of the sprite could fix this. As for the name, I do not think they all share the same pointer for the name. If they do, I do not know if repointing the name will work...

I have to hurry and teach myself hex. I will be right back!

Wichu
July 8th, 2009, 08:04 AM
The Pokémon names are stored directly after each other; there is only one pointer to the name list. I've successfully repointed the name list by replacing all pointers to 0x245EE0. So I don't think you need to do anything special with that. Sprites shouldn't be hard to repoint.

Anyway, looking through the sprite pointer table, it seems that slots 412 to 439 are used up by the egg and remaining Unown sprites... So I guess any actual 4th gen Pokémon would have to start at 440 (unless you want them to have the sprites of an egg and Unowns :P).

I was going to add all the D/P Pokémon's stats; it would only take me about half an hour.

Dragonmaster91
July 8th, 2009, 08:20 AM
The Pokémon names are stored directly after each other; there is only one pointer to the name list. I've successfully repointed the name list by replacing all pointers to 0x245EE0. So I don't think you need to do anything special with that. Sprites shouldn't be hard to repoint.

Anyway, looking through the sprite pointer table, it seems that slots 412 to 439 are used up by the egg and remaining Unown sprites... So I guess any actual 4th gen Pokémon would have to start at 440 (unless you want them to have the sprites of an egg and Unowns :P).

I was going to add all the D/P Pokémon's stats; it would only take me about half an hour.
Well, you must know what you are doing... If there are 65535 pokemon slots, I don't think 440 will affect D/P/P pokemon much, do you? :)

So, this is actually going to be simple...
WOW! It's not 1000, it's not 10,000, ut 65,000 pokemon! It's waayy too much to catch in a lifetime. It MIGHT be possible. It is definitely possilbe with the 25 former Unown (aka ??), because their offsets are known. Should you solve this mystery, use the 65,000 slots for something more than just fakemon, like character mugshots, or gender difference pokemon.
Good point. When this is done, not only can we add new pokes, we could create new pokemon forms!

HackMew
July 8th, 2009, 08:54 AM
So, this is actually going to be simple...

I don't want to bring your hopes down, but it's not going to. Think about evolutions, for example. GBA games can have up to 5 of them. D/P/P can have up to 7 of them (Eevee, indeed). ASM hacking is required a lot for a successful expansion. No matter if they are 494 or 65536. Once you can get them work, adding more is pretty easy.

Wichu
July 8th, 2009, 09:09 AM
By the way, thanks to this document (http://www.pokecommunity.com/showthread.php?t=123174) and some of my own research, I've figured out the full format of the Pokémon data at 0x254784.
The first two ?? bytes are the EVs gained for defeating the Pokémon, in the format 00 00 SpD SpA Spd Def Atk HP (two bits per stat).
The next ?? byte is the base happiness of the Pokémon.
The next ?? byte is the amount of Exp. needed to reach level 100, or growth rate (0: 1000000, 1: 600000, 2: 1640000, 3: 1059860, 4: 800000, 5: 1250000).
The next ?? byte is used to determine whether the Pokémon is asymmetrical (notice how some Pokémon don't have their sprite flipped in the summary?), and its colour. The first bit is 0 if the Pokémon is symmetrical, and 1 if it is not. The rest is used for its colour (0: Red, 1: Blue, 2: Yellow, 3: Green, 4: Black, 5: Brown, 6: Purple, 7: Gray, 8: White, 9: Pink).
The final two ?? bytes are always 0, and don't seem to serve a useful role.
So yeah, anyone planning to hex edit the new Pokémon should use that document along with these notes, since I doubt any tools will work for any added Pokémon.

If someone experienced with ASM can actually get this to work, then I'd gladly contribute by adding the D/P Pokémon data to the ROM (not just this, but the moves, dex data etc as well, once I figure out how they're stored in the ROM).

EDIT: I think that the egg group info in the document may be wrong, but I don't have time to check it. The missing group is 'fairy', by the way.

HackMew
July 8th, 2009, 09:21 AM
By the way, thanks to this document (http://www.pokecommunity.com/showthread.php?t=123174) and some of my own research, I've figured out the full format of the Pokémon data at 0x254784.
The first two ?? bytes are the EVs gained for defeating the Pokémon, in the format 00 00 SpD SpA Spd Def Atk HP (two bits per stat).
The next ?? byte is the base happiness of the Pokémon.
The next ?? byte is the amount of Exp. needed to reach level 100, or growth rate (0: 1000000, 1: 600000, 2: 1640000, 3: 1059860, 4: 800000, 5: 1250000).
The next ?? byte is used to determine whether the Pokémon is asymmetrical (notice how some Pokémon don't have their sprite flipped in the summary?), and its colour. The first bit is 0 if the Pokémon is symmetrical, and 1 if it is not. The rest is used for its colour (0: Red, 1: Blue, 2: Yellow, 3: Green, 4: Black, 5: Brown, 6: Purple, 7: Gray, 8: White, 9: Pink).
The final two ?? bytes are always 0, and don't seem to serve a useful role.
So yeah, anyone planning to hex edit the new Pokémon should use that document along with these notes, since I doubt any tools will work for any added Pokémon.

If someone experienced with ASM can actually get this to work, then I'd gladly contribute by adding the D/P Pokémon data to the ROM (not just this, but the moves, dex data etc as well, once I figure out how they're stored in the ROM).

EDIT: I think that the egg group info in the document may be wrong, but I don't have time to check it. The missing group is 'fairy', by the way.

Bulbapedia helps:
http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_base_stats_data_structure_in_the_GBA
http://bulbapedia.bulbagarden.net/wiki/Move_data_structure_in_the_GBA
http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9dex_data_structure_in_the_GBA

Satoshi Ookami
July 8th, 2009, 10:11 AM
also you can insert the 5th gen when it comes out!
With 5th gen... I guess that brings more free space to be used xD
So something like 262143

Dragonmaster91
July 8th, 2009, 10:13 AM
Bulbapedia helps:
http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_base_stats_data_structure_in_the_GBA
http://bulbapedia.bulbagarden.net/wiki/Move_data_structure_in_the_GBA
http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9dex_data_structure_in_the_GBA
I have been waiting for your response. Hang on people. Video of bad egg being uploaded. No point in the bad egg, I know, but it begins the glitch hex. So, I think it may be somewhat useful.

Imagine fighting with an egg that has an actual summary and has attacks.

Edit: Troubles uploading. Trying to get it up still.
Edit 2:By the way, thanks to this document (http://www.pokecommunity.com/showthread.php?t=123174) and some of my own research, I've figured out the full format of the Pokémon data at 0x254784.
The first two ?? bytes are the EVs gained for defeating the Pokémon, in the format 00 00 SpD SpA Spd Def Atk HP (two bits per stat).
The next ?? byte is the base happiness of the Pokémon.
The next ?? byte is the amount of Exp. needed to reach level 100, or growth rate (0: 1000000, 1: 600000, 2: 1640000, 3: 1059860, 4: 800000, 5: 1250000).
The next ?? byte is used to determine whether the Pokémon is asymmetrical (notice how some Pokémon don't have their sprite flipped in the summary?), and its colour. The first bit is 0 if the Pokémon is symmetrical, and 1 if it is not. The rest is used for its colour (0: Red, 1: Blue, 2: Yellow, 3: Green, 4: Black, 5: Brown, 6: Purple, 7: Gray, 8: White, 9: Pink).
The final two ?? bytes are always 0, and don't seem to serve a useful role.
So yeah, anyone planning to hex edit the new Pokémon should use that document along with these notes, since I doubt any tools will work for any added Pokémon.

If someone experienced with ASM can actually get this to work, then I'd gladly contribute by adding the D/P Pokémon data to the ROM (not just this, but the moves, dex data etc as well, once I figure out how they're stored in the ROM).

EDIT: I think that the egg group info in the document may be wrong, but I don't have time to check it. The missing group is 'fairy', by the way.That was EXTREMELY useful. Thank you.

Now we know we can change some of the data around...

Screw it, the videos are messing up on me. I am going in.

EDIT EDIT EDIT***: Gave up on the video, recording screwed up on me.

Juan
July 8th, 2009, 05:49 PM
I am making a tool for this.
Besides the cited offsets, need repointer the poke cries, the learned TM/HM, EGG Moves, MoveTutors, icons, the animations(Emerald), etc.
And many of these data have several pointers.

About evolutions, as HackMew said, with ASM it is possible to increase the maximum amount of evolutions.

If someone wants to collaborate on something, send message. ^^

Sorry for my bad english, i'm Brasilian and i used the Google Translator.

Dragonmaster91
July 8th, 2009, 06:50 PM
I am making a tool for this.
Besides the cited offsets, need repointer the poke cries, the learned TM/HM, EGG Moves, MoveTutors, icons, the animations(Emerald), etc.
And many of these data have several pointers.

About evolutions, as HackMew said, with ASM it is possible to increase the maximum amount of evolutions.

If someone wants to collaborate on something, send message. ^^

Sorry for my bad english, i'm Brasilian and i used the Google Translator.
Don't worry, your english is not too bad. However, that goes down to an opinion.

So wait, if only five evolutions per pokemon, doesn't that mean you can have a chain as long as you want?

BananasGoMoo
July 8th, 2009, 07:17 PM
nice idea, but i would only use enough to insert all the sinnoh pkmn.

Darthatron
July 8th, 2009, 07:19 PM
So wait, if only five evolutions per pokemon, doesn't that mean you can have a chain as long as you want?
In theory, yes. I think at one point I had 7 evolutions in a row (levels 5, 6, 7, 8, 9, 10 and 11).

With the Eevee thing... would it not be possibles to write an ASM routine to take one Eevee and give you another with a different evolution chain (in a level script for the certain area it can evolve?), and then put back the other Eevee when you leave that area (on a script tile before the warp?)..? I think I've seen taking pokemon and returning them before, but I don't remember if it was on this site. :\

thethethethe
July 8th, 2009, 07:21 PM
Here's just a patch with a few things repointed. It's enough for you to do some more testing.
Basically here's all I've done.
What it is
Pointer Repoint To Length of 1 Length
Base Stat Data 0x254784 0xF00000 0x1C 0x2d10
Evolutions 0x259754 0xF03FFE 0x28 0x4060
TM HM Compatibility 0x252Bc8 0xF09000 0x8 0xCE0
Front Pointer Table 0x2350ac 0xF0B000 0x8 0xCE0
Back Pointer Table 0x23654C 0xF0D000 0x8 0xCe0
Normal Palette 0x23730C 0xF0F000 0x8 0xCE0
Back Palette 0x2380CC 0xF11000 0x8 0xCE0
Moveset Pointers 0x25D7B4 0xF13000 0x4 0x670
National Dex Order 0x251FEE 0xF15000 0x2 0x338
Icon Pointer 0x3D37A0 0xF16000 0x4 0x670
Icon Pallete 0x3D3E80 0xF18000 0x1 0x19C
Pokemon Names 0x245EE0 0xF19000 0xB 0x11b4

EDIT: By the way this is for Fire Red and I'll also add the ini if you want to use Extended PokeAmp for things.

Vrai
July 8th, 2009, 07:32 PM
With 5th gen... I guess that brings more free space to be used xD
So something like 262143

Uhh.. no? If they introduced more Pokémon in the fifth gen, then there would be less free space. Do you think they would really just add all of that more space when they already have the, oh, what was it, 65535 spots already? :x

after re-reading that it somehow makes no sense to me

hi sir tomato my password is syvniti
July 9th, 2009, 12:19 AM
In theory, yes. I think at one point I had 7 evolutions in a row (levels 5, 6, 7, 8, 9, 10 and 11).

With the Eevee thing... would it not be possibles to write an ASM routine to take one Eevee and give you another with a different evolution chain (in a level script for the certain area it can evolve?), and then put back the other Eevee when you leave that area (on a script tile before the warp?)..? I think I've seen taking pokemon and returning them before, but I don't remember if it was on this site. :\

It was, It's in the tutorial section... As nice as I am I'm linking you to it!
Are you readdy to get linked?

PREESS HERE!!!!

Wichu
July 9th, 2009, 12:22 AM
Bulbapedia helps:
http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_base_stats_data_structure_in_the_GBA
http://bulbapedia.bulbagarden.net/wiki/Move_data_structure_in_the_GBA
http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9dex_data_structure_in_the_GBA
Thanks for that. I don't see any info on sprite flipping there, though; at least one good thing came out of my work :P I'll add it to the article now.
EDIT: Or not; Bulbapedia's disable account creation :( Anyone with a Bulbapedia account care to add it in? There's already some info on the most significant bit, but it doesn't say what it does...

In theory, yes. I think at one point I had 7 evolutions in a row (levels 5, 6, 7, 8, 9, 10 and 11).

With the Eevee thing... would it not be possibles to write an ASM routine to take one Eevee and give you another with a different evolution chain (in a level script for the certain area it can evolve?), and then put back the other Eevee when you leave that area (on a script tile before the warp?)..? I think I've seen taking pokemon and returning them before, but I don't remember if it was on this site. :\
This also gives you the advantage of actually having the Eevee evolve correctly, as I don't think 3rd gen has area-based evolutions... A similar technique could be used for Magneton and Nosepass.
Here's just a patch with a few things repointed. It's enough for you to do some more testing.
Basically here's all I've done.
What it is
Pointer Repoint To Length of 1 Length
Base Stat Data 0x254784 0xF00000 0x1C 0x2d10
Evolutions 0x259754 0xF03FFE 0x28 0x4060
TM HM Compatibility 0x252Bc8 0xF09000 0x8 0xCE0
Front Pointer Table 0x2350ac 0xF0B000 0x8 0xCE0
Back Pointer Table 0x23654C 0xF0D000 0x8 0xCe0
Normal Palette 0x23730C 0xF0F000 0x8 0xCE0
Back Palette 0x2380CC 0xF11000 0x8 0xCE0
Moveset Pointers 0x25D7B4 0xF13000 0x4 0x670
National Dex Order 0x251FEE 0xF15000 0x2 0x338
Icon Pointer 0x3D37A0 0xF16000 0x4 0x670
Icon Pallete 0x3D3E80 0xF18000 0x1 0x19C
Pokemon Names 0x245EE0 0xF19000 0xB 0x11b4

EDIT: By the way this is for Fire Red and I'll also add the ini if you want to use Extended PokeAmp for things.
Thanks for that. I'll add the D/P Pokémon to it, if you want (as well as decapitalise everything; that's the thing that bugs me about the 3rd generation).

hi sir tomato my password is syvniti
July 9th, 2009, 12:42 AM
Thanks for that. I'll add the D/P Pokémon to it, if you want (as well as decapitalise everything; that's the thing that bugs me about the 3rd generation).

So, Did you make it work, sir?

What do you mean by this, sir?
"as well as decapitalise everything; that's the thing that bugs me about the 3rd generation"

And could I get a copy of the patch with the DPP pokemons you make, sir?

Should I help with something by the way, sir?

Darthatron
July 9th, 2009, 01:08 AM
Thanks for that. I don't see any info on sprite flipping there, though; at least one good thing came out of my work :P I'll add it to the article now.
EDIT: Or not; Bulbapedia's disable account creation :( Anyone with a Bulbapedia account care to add it in? There's already some info on the most significant bit, but it doesn't say what it does...
I just wrote this for you:
HP - 1 Byte - The base HP of the Pokemon.
Attack - 1 Byte - The base Attack of the Pokemon.
Defense - 1 Byte - The base Defense of the Pokemon.
Speed - 1 Byte - The base Speed of the Pokemon.
SAttack - 1 Byte - The base Special Attack of the Pokemon.
SDefence - 1 Byte - The base Special Defense of the Pokemon.
Type1 - 1 Byte - The first type of the Pokemon.
Type2 - 1 Byte - The second type of the Pokemon.
CatchRate - 1 Byte - How easily the Pokemon can be caught.
EXP - 1 Byte - Base amount of EXP that is given when defeated.
EVs - 2 Bytes - Effort Values.
Item1 - 2 Bytes - An item that can be held.
Item2 - 2 Bytes - Another item that can be held.
Gender - 1 Byte - Gender ratio. (0 = 100% male, 254 = 100% female, 255 = no gender)
EggSteps - 1 Byte - Steps for the egg to hatch. (0 = instant, other values are steps / 256)
Happiness - 1 Byte - Base happiness of the Pokemon.
LevelUp - 1 Byte - Base level of EXP needed to level up. (600,000 |800,000 |1,000,000 | 1,059,860 |1,250,000 |1,640,000)
EggGroup1 - 1 Byte - Which egg types it can breed with. (None, Monster, Water 1, Bug, Flying, Field, Fairy, Plant, Humanoid, Water 3, Mineral, Chaos, Water 2, Ditto, Dragon, Can't Breed)
EggGroup2 - 1 Byte - See above.
Ability1 - 1 Byte - Get your own list of abilities. >_>
Ability2 - 1 Byte - See above.
SafariZone - 1 Byte - Safari Zone run chance.
Facing/Color - 1 Byte - The color is 6 bits, the 7th bit (from the right) is set to 1 if the image is flipped in the status screen.
Padding - 2 Bytes - 0x0000

This also gives you the advantage of actually having the Eevee evolve correctly, as I don't think 3rd gen has area-based evolutions... A similar technique could be used for Magneton and Nosepass.
Indeed.

Wichu
July 9th, 2009, 01:14 AM
So, Did you make it work, sir?

What do you mean by this, sir?
"as well as decapitalise everything; that's the thing that bugs me about the 3rd generation"

And could I get a copy of the patch with the DPP pokemons you make, sir?

Should I help with something by the way, sir?

I haven't added any D/P Pokémon yet... By decapitalising, I mean this:
In the game, Pokémon, move, item and ability names are displayed like this, in all capitals:
BULBASAUR, POUND, MASTER BALL, STENCH
But I've changed every single one to have just the first letter capitalised, like this:
Bulbasaur, Pound, Master Ball, Stench
The only exception is the POKéBLOCK Case, since the word POKéBLOCK has its own characters in the font. To change that, you'll have to edit the font.

EDIT: I've uploaded an IPS patch with all the names decapitalised (not repointed; this is for an unmodified ROM). Click to download (http://www.2shared.com/file/6621552/c9af8a87/FRDecap.html) :)

HackMew
July 9th, 2009, 03:04 AM
This also gives you the advantage of actually having the Eevee evolve correctly, as I don't think 3rd gen has area-based evolutions... A similar technique could be used for Magneton and Nosepass.

Actually that was just an example. A level script wouldn't solve the problem as there are more, new evolution types introduced by D/P:


Gender (Burmy, Combee)
Attached Item and Level Up (Gligar, Sneasel, Happiny)
Area Based (Magneton, Eevee, Nosepass)
Attack Based (Lickitung, Tangela, Aipom, Yanma, Piloswine, Bonsly, Mime Jr.)
Other Pokémon Based (Mantyke)

Wichu
July 9th, 2009, 03:06 AM
I know, but it could solve those two instances...
I guess we'd have to use ASM to include those. Do you have any idea on how the ASM behind evolution conditions works?

HackMew
July 9th, 2009, 03:10 AM
I know, but it could solve those two instances...
I guess we'd have to use ASM to include those. Do you have any idea on how the ASM behind evolution conditions works?

Yeah, ASM is needed. I haven't really looked into them, but I will anyway as I need to edit them for my hack. The evolution data structure (assuming I remember well) is the following:

[Evolution Type - 2 bytes] [Condition - 2 bytes] [Evolved Pokémon - 2 bytes] [Padding - 2 bytes]

The total is 2+2+2+2 = 8 * 5 = 40 bytes (0x28) each Pokémon. The first step would change that so each Pokémon can have up to 7 evolutions. Or, eventually, as only Eevee would need that many, insert a special case for Eevee. So any editor expecting up to 5 evolutions would still work. Either way, the new types need to be implemented. When I have time, I'll try reversing a bit and I'll post my findings.

thethethethe
July 9th, 2009, 04:45 AM
Yeah, ASM is needed. I haven't really looked into them, but I will anyway as I need to edit them for my hack. The evolution data structure (assuming I remember well) is the following:

[Evolution Type - 2 bytes] [Condition - 2 bytes] [Evolved Pokémon - 2 bytes] [Held Item - 2 bytes]

Aren't the last two bytes just padding? A held item for a trade just comes under the condition halfword. As proof, I was doing some debugging and only the first three halfwords are loaded into registers, where the evolution type is loaded from instruction at 08042fa6, condition from 08043020 and evolved Pokemon from 0804310e.

There was a point to me posting those addresses. Those are probably a start as to finding a way to extending the evolutions. Looking further up should come up with something... hopefully.

Wichu
July 9th, 2009, 05:05 AM
Well, I've made some progress...
http://img440.imageshack.us/img440/3917/turtwig.png
I added Turtwig (kinda) to slot 440. I haven't added anything else other than the name and base stats yet, so it's not quite usable.

EDIT: By the way, its name and number still show up as ?????????? and 0 on the summary, despite its stats being that of #440. Any idea why this is?

thethethethe
July 9th, 2009, 05:19 AM
Well, I've made some progress...
http://img440.imageshack.us/img440/3917/turtwig.png
I added Turtwig (kinda) to slot 440. I haven't added anything else other than the name and base stats yet, so it's not quite usable.

EDIT: By the way, its name and number still show up as ?????????? and 0 on the summary, despite its stats being that of #440. Any idea why this is?

The number can be changed by going to the National Pokedex Order and changing its number to 440. But then the number will only show if the National Dex is activated otherwise it will show '?'.

The name, I knew about, but don't have a solution as of yet.

HackMew
July 9th, 2009, 05:25 AM
Aren't the last two bytes just padding? A held item for a trade just comes under the condition halfword. As proof, I was doing some debugging and only the first three halfwords are loaded into registers, where the evolution type is loaded from instruction at 08042fa6, condition from 08043020 and evolved Pokemon from 0804310e.

Actually they are just padding, indeed. The held item -is- the condition. This damn headache is killing me >.<
Anyway, I'm still investigating, I'll see if I come up with something.

EDIT: The fact it's a padding can be quite useful for the Item + Level Up evolution type. We can make something like this:

[Evolution Type - 2 bytes] [Condition1 - 2 bytes] [Evolved Pokémon - 2 bytes] [Condition2 - 2 bytes]

Wichu
July 9th, 2009, 05:35 AM
The number can be changed by going to the National Pokedex Order and changing its number to 440. But then the number will only show if the National Dex is activated otherwise it will show '?'.

The name, I knew about, but don't have a solution as of yet.

Ah, I think I found the problem with the dex order :P I've got the dex order right, but I accidentally added two extra 0s for the ? Pokémon, so Turtwig and Grotle got a 0 (and Torterra got 387). I think, anyway...

Anyway, I have all the base stats working. Just got myself a female Heatran (with a dex number of 483; see above) :D Now for the level-up move lists.

HackMew
July 9th, 2009, 05:57 AM
I just noticed this:


08042faa 280e cmp r0, #0xe
08042fac d900 bls $08042fb0


I was expecting something similar, and my theory was confirmed. The 3rd gen games have 15 different evolution types, indeed.

Wichu
July 9th, 2009, 06:46 AM
Also, is there any chance of fixing the Pokédex to register more than 386 Pokémon? Any new Pokémon added don't show up, even on the National Dex (I've sorted out the numbering problem from earlier).

EDIT: I've successfully repointed and inserted all of the Diamond dex entries. The problem is that they don't actually fit in FR's tiny Pokédex screen. Also, the above problem hasn't bee solved yet, either...

EDIT2: And level-up moves are done :) I had to replace some of them for moves with similar effects, since obviously D/P moves don't exist in the 3rd generation. The moves I replaced them with should be familiar to anyone who's used Pokémon Essentials (Overheat on Turtwig instead of Leaf Storm :P).

HackMew
July 9th, 2009, 09:51 AM
Good news, everyone. I've sucessfully hacked the Level Up evolution so it now supports the Level + Item combo :D
First of all, the level is checked. If the level is enough the second condition it's checked. If it's anything but zero, then the held item is checked. If it matches, the item is removed and the Pokémon can evolve.


EDIT2: And level-up moves are done :) I had to replace some of them for moves with similar effects, since obviously D/P moves don't exist in the 3rd generation. The moves I replaced them with should be familiar to anyone who's used Pokémon Essentials (Overheat on Turtwig instead of Leaf Storm :P).

Moves should be expanded too, along with the Pokémon.

Wichu
July 9th, 2009, 10:15 AM
So, are you saying you're good enough to code all the D/P effects? The D/P moves with old effects can be done, but some of the new effects are really complex (Trick Room and Gravity come to mind). Not to mention you'd have to edit the animations...

I'd say the current priority is making the Pokémon work (i.e. their names, sprites, and Pokédex entries). Great job on the evolutions, though; I'll take those into account when adding the evolution methods for D/P Pokémon. Is there any chance you could do the gender-based evos, too? After that, there's just the move, party Pokémon and area based ones, I think...

Oh, and I've done the TM/HM compatibility for all of the D/P Pokémon now, too. I think that just leaves egg moves, sprites and evolutions :)

Kyouya
July 9th, 2009, 10:30 AM
So, are you saying you're good enough to code all the D/P effects? The D/P moves with old effects can be done, but some of the new effects are really complex (Trick Room and Gravity come to mind). Not to mention you'd have to edit the animations...

I'd say the current priority is making the Pokémon work (i.e. their names, sprites, and Pokédex entries). Great job on the evolutions, though; I'll take those into account when adding the evolution methods for D/P Pokémon. Is there any chance you could do the gender-based evos, too? After that, there's just the move, party Pokémon and area based ones, I think...

Oh, and I've done the TM/HM compatibility for all of the D/P Pokémon now, too. I think that just leaves egg moves, sprites and evolutions :)

Good news, everyone. I've sucessfully hacked the Level Up evolution so it now supports the Level + Item combo :D
First of all, the level is checked. If the level is enough the second condition it's checked. If it's anything but zero, then the held item is checked. If it matches, the item is removed and the Pokémon can evolve.




Moves should be expanded too, along with the Pokémon.

i didnt know asm could do all of his i really wish i knew how

HackMew
July 9th, 2009, 10:39 AM
So, are you saying you're good enough to code all the D/P effects? The D/P moves with old effects can be done, but some of the new effects are really complex (Trick Room and Gravity come to mind). Not to mention you'd have to edit the animations...
I'd say the current priority is making the Pokémon work (i.e. their names, sprites, and Pokédex entries).

I could try, but I'm still working on the evolutions so far. The effects and the animations are troublesome indeed. For now, it's enough to implement new moves making them as close as possible as the D/P ones using the existing effects/animations. They can always be edited later on.

Great job on the evolutions, though; I'll take those into account when adding the evolution methods for D/P Pokémon. Is there any chance you could do the gender-based evos, too? After that, there's just the move, party Pokémon and area based ones, I think...

Thank you. I'm already working on the other ones :)
Oh, yeah. We should define the evolution type numbering.

Here are the default ones for the 3rd gen.


None
Happiness
Happiness (Day)
Happiness (Night)
Level Up
Trade
Trade with Item Held
Item
Attack > Defense
Attack = Defense
Attack < Defense
High Personality
Low Personality
Level Up with New Pokémon
Create New Pokémon
Beauty


And here's my proposed list for the hacked 3rd gen:


None
Happiness
Happiness (Day)
Happiness (Night)
Level Up / Level Up with Item Held
Trade
Trade with Item Held
Item
Attack > Defense
Attack = Defense
Attack < Defense
High Personality
Low Personality
Level Up with New Pokémon
Create New Pokémon
Beauty
Gender / Gender with Item
Attack Known
Other Pokémon
Area



Oh, and I've done the TM/HM compatibility for all of the D/P Pokémon now, too. I think that just leaves egg moves, sprites and evolutions :)

Uhm... cries too. Maybe something else.

Kyouya
July 9th, 2009, 10:54 AM
I could try, but I'm still working on the evolutions so far. The effects and the animations are troublesome indeed. For now, it's enough to implement new moves making them as close as possible as the D/P ones using the existing effects/animations. They can always be edited later on.



Thank you. I'm already working on the other ones :)
Oh, yeah. We should define the evolution type numbering.

Here are the default ones for the 3rd gen.


None
Happiness
Happiness (Day)
Happiness (Night)
Level Up
Trade
Trade with Item
Item
Attack > Defense
Attack = Defense
Attack < Defense
High Personality
Low Personality
Level Up with New Pokémon
Create New Pokémon
Beauty

And here's my proposed list for the hacked 3rd gen:


None
Happiness
Happiness (Day)
Happiness (Night)
Level Up / Level Up with Item
Trade
Trade with Item
Item
Attack > Defense
Attack = Defense
Attack < Defense
High Personality
Low Personality
Level Up with New Pokémon
Create New Pokémon
Beauty
Gender / Gender with Item
Attack Known
Other Pokémon
Area




Uhm... cries too. Maybe something else.


moshimoshi,are you two working on something together or just discussing somethng

HackMew
July 9th, 2009, 10:58 AM
moshimoshi,are you two working on something together or just discussing somethng

We're aren't working together but we're working on the same thing. And discussing, obviously.

EDIT: I've got a nice idea to solve the Eevee problem. As you know, each Pokémon can have up 5 evolutions, or 40 bytes. Since all its evolutions don't require more than one condition, it could be handled though a special evolution case, like this:

[Eevee Type - 2 bytes] [Condition1 - 2 bytes] [Evolution1 - 2 bytes]
[Condition2 - 2 bytes] [Evolution2 - 2 bytes] [Condition3 - 2 bytes] [Evolution3 - 2 bytes]
[Condition4 - 2 bytes] [Evolution4 - 2 bytes] [Condition5 - 2 bytes] [Evolution5 - 2 bytes]
[Condition6 - 2 bytes] [Evolution6 - 2 bytes] [Condition7 - 2 bytes] [Evolution7 - 2 bytes]

This way it takes just 30 bytes instead of 56, hence it would fit without having to do any changes to the structure of the other Pokémon (that is, adding the 6th and 7th evolutions). What do you think?

thethethethe
July 9th, 2009, 03:31 PM
Uhm... cries too. Maybe something else.

Move Tutor and egg moves too.
How to change move tutor learnability (http://www.pokecommunity.com/showpost.php?p=4162498&postcount=267). Just scroll down to the tips and tricks.
This is how to change egg moves.
Egg Moves
These moves are learned through breeding. They are listed as follows:
[Pokémon][Attack][Attack]...[Pokémon][Attack]...
All of this in 16-bit values. The Pokémon index is increased by 4E20 (20.00010) to distinguish them from attack indices. For example, Pikachu’s index is 19. That plus 4E20 equals 4E39, so Pikachu’s egg move data would start with that.

Example: Geodude
This is the data for an R/S Geodude, found at offset 209366 in Ruby and 25F096 in Fire Red:
[4E6A][0005][009D][014F]
4E6A – 4E20 = 4A, which is Geodude’s index. 0005 is “Mega Punch”, 009D is “Rock Slide” and 014F16 is “Block”. Feel free to check this with strawhat’s FR/LG Pokédex on GameFaqs.
- - - - - - - - - - Source: Kawa's collected pokemon documents


And, checking myself at 25F096, I see that lists end with next pokemon's list (values > 4E20). And that only base pokemon have egg moves (next to geodude's egg moves are... next to golem is tentacool right?), so a function to repoint the whole list (each list is not pointed, the whole list is loaded each time), would be useful because the amount of evolution chains may differ.
That is if you can be bothered.

I'm going to try and look into the pokedex seeing as Hackmew is doing so much for the evolutions.

Darthatron
July 9th, 2009, 08:56 PM
And here's my proposed list for the hacked 3rd gen:


None
Happiness
Happiness (Day)
Happiness (Night)
Level Up / Level Up with Item Held
Trade
Trade with Item Held
Item
Attack > Defense
Attack = Defense
Attack < Defense
High Personality
Low Personality
Level Up with New Pokémon
Create New Pokémon
Beauty
Gender / Gender with Item
Attack Known
Other Pokémon
Area

The one is bold really isn't needed, just have 2 different Pokemon one with a 100% male gender ratio and the other with a 100% female ratio, each with it's own evolution chain. But whatever you feel comfortable with.

Is there anything I can do to help development? ^^

Wichu
July 10th, 2009, 01:23 AM
Move Tutor and egg moves too.
How to change move tutor learnability (http://www.pokecommunity.com/showpost.php?p=4162498&postcount=267). Just scroll down to the tips and tricks.
This is how to change egg moves.

That is if you can be bothered.
I did mention egg moves originally :P Anyway, thanks for the info. I'll add the D/P Pokémon to those lists.
There's a slight problem, though; most of the move tutors were remade into TMs, but not all of them. It's OK if I use the TM data for the applicable move tutors, and leave the ones without available data blank, right?
The one is bold really isn't needed, just have 2 different Pokemon one with a 100% male gender ratio and the other with a 100% female ratio, each with it's own evolution chain. But whatever you feel comfortable with.

Is there anything I can do to help development? ^^
Nice idea with the evolutions. But what about the Pokémon without an even gender ratio, such as Combee? I'd rather not use up half of the encounter table for a single Pokémon :P To get the correct gender ratio, you could use ASM to replace the species of a wild Pokémon with a 12.5% chance, but then you might as well just implement the whole evo method...

And by any chance, would you happen to know how cries are stored, or how exactly the LZ77 algorithm works in regards to compressing sprites? I don't want to manually insert 214 sprites...

EDIT: Done the egg moves :)

Juan
July 10th, 2009, 08:43 AM
I did mention egg moves originally :P Anyway, thanks for the info. I'll add the D/P Pokémon to those lists.
There's a slight problem, though; most of the move tutors were remade into TMs, but not all of them. It's OK if I use the TM data for the applicable move tutors, and leave the ones without available data blank, right?

Nice idea with the evolutions. But what about the Pokémon without an even gender ratio, such as Combee? I'd rather not use up half of the encounter table for a single Pokémon :P To get the correct gender ratio, you could use ASM to replace the species of a wild Pokémon with a 12.5% chance, but then you might as well just implement the whole evo method...

And by any chance, would you happen to know how cries are stored, or how exactly the LZ77 algorithm works in regards to compressing sprites? I don't want to manually insert 214 sprites...

EDIT: Done the egg moves :)

Algorithm: http://romhacking.net/docs/281/
C#: http://romhacking.net/utils/529/

I rewrite the algorithm in Delphi, but I think anyone here program in Pascal, then would not have much utilizade.

Does anyone have some documentation about the cries?
I just need it to complete this task in my 'tool'.

Wichu
July 10th, 2009, 09:11 AM
I think thethethethe might know about cries...

Anyway, I've resized and indexed every single Platinum sprite (took me about an hour). I'll insert them into spots 440+ tomorrow. If anyone wants them for their own hacks, there's a link in my sig.

HackMew
July 11th, 2009, 04:50 AM
Today I bring you an even greater news: almost all new evolution methods inserted! :D


None
Happiness
Happiness (Day)
Happiness (Night)
Level Up / Level Up with Item Held
Trade
Trade with Item Held
Item / Item with Gender
Attack > Defense
Attack = Defense
Attack < Defense
High Personality
Low Personality
Level Up and New Pokémon
Create New Pokémon
Beauty
Gender
Move Known
Other Pokémon
Location


I decided that Happiness (Day) will be the same as Happiness since by default FireRed has no clock. I think it's better having an Eevee evolving into Espeon rather than not evolving at all (without stones and excluding the new evolutions, of course). Below, the structures for each type:

None
[0000] [0000] [0000] [0000]

Happiness
[0100] [0000] [XXXX] [0000]

Happiness (Day)
[0200] [0000] [XXXX] [0000]

Happiness (Night)
[0300] [0000] [XXXX] [0000]

Level Up - No Item Held
[0400] [YY00] [XXXX] [0000]

Level Up - Item Held
[0400] [YY00] [XXXX] [ZZZZ]

Trade
[0500] [0000] [XXXX] [0000]

Trade with Item Held
[0600] [ZZZZ] [XXXX] [0000]

Item - No Gender
[0700] [ZZZZ] [XXXX] [0000]

Item - With Gender
[0700] [ZZZZ] [XXXX] [HH00]

Attack > Defense
[0800] [YY00] [XXXX] [0000]

Attack = Defense
[0900] [YY00] [XXXX] [0000]

Attack < Defense
[0A00] [YY00] [XXXX] [0000]

High Personality
[0B00] [YY00] [XXXX] [0000]

Low Personality
[0C00] [YY00] [XXXX] [0000]

Level Up and New Pokémon
[0D00] [YY00] [XXXX] [0000]

Create New Pokémon
[0E00 [YY00] [XXXX] [0000]

Beauty
[0F00] [BB00] [XXXX] [0000]

Gender
[1000] [YY00] [XXXX] [GG00]

Move Known
[1100] [MMMM] [XXXX] [0000]

Other Pokémon
[1200] [KKKK] [XXXX] [0000]

Location
[1300] [LL00] [XXXX] [0000]

Eevee
Note: Eevee uses a peculiar structure. All the 7 evolutions are organized so that they fit perfectly into 40 bytes.
[0700] [ZZZZ] [XXXX] [0000] [0700] [ZZZZ] [XXXX] [0000] [0700] [ZZZZ] [XXXX] [0000]
[1300] [LL] [02] [XXXX] [KKKK] [1300] [LL] [03] [XXXX] [KKKK]

Legend:
XXXX = Pokémon ID
KKKK = Extra Pokémon ID
YY = Pokémon Level
ZZZZ = Item ID
GG = Gender (0 = Genderless, 1 = Male, 2 = Female)
HH = Gender (0 = None, 1 = Genderless, 2 = Male, 3 = Female)
BB = Pokémon Beauty
MMMM = Move ID
LL = Location ID

hi sir tomato my password is syvniti
July 12th, 2009, 01:42 AM
Did you know when you make spagheti, and make the sauce, Adding a bit of vinegar can really make it better.

It has to be a nice redvine vinegar.

Remember, Since it's an alkohol (Ethernol) it'll vanish at about 79c, So add the vinegar in the end..



Now for the less importent stuff, Wichu asked me(I spammed he's pm box, And anoyed him at msn.) to look at the not loading pictures...

I did a bit of debugging and came across, before a wild battle.:

Register 7 is holding the pokemon you'll battle against.
0x800f1b0 ¤ 20ce> mov r0, #0xCE
0x800f1b2 ¤ 0040> lsl r0, r0, #0x01
0x800f1b4 ¤ 4287> cmp r7, r0
0x800f1b6 ¤ DD07> ble 0x800f1c8

And I tryed to edit it to...
0x800f1b4 ¤ 8042> cmp r0, r0


I got a pretty picture of a flying turtwig with missinno's palette in wichu's hack..

HackMew
July 12th, 2009, 02:00 AM
Now for the less importent stuff, Wichu asked me(I spammed he's pm box, And anoyed him at msn.) to look at the not loading pictures...

I did a bit of debugging and came across, before a wild battle.:

Register 7 is holding the pokemon you'll battle against.
0x800f1b0 ¤ 20ce> mov r0, #0xCE
0x800f1b2 ¤ 0040> lsl r0, r0, #0x01
0x800f1b4 ¤ 4287> cmp r7, r0
0x800f1b6 ¤ DD07> ble 0x800f1c8

And I tryed to edit it to...
0x800f1b4 ¤ 8042> cmp r0, r0


I got a pretty picture of a flying turtwig with missinno's palette in wichu's hack..

No, don't change the cmp. Instead, replace the first two lines with:


0800f1b0 2080 mov r0, #0x80
0800f1b2 00c0 lsl r0, r0, #0x3


That way the Pokémon limit it set to 1024 (and not 412).

Wichu
July 12th, 2009, 04:47 AM
Anyway, I've finished inserting all the D/P Pokémon sprites (front and back, with the correct palettes). So now, I just need to do the move tutors, evolutions, and cries. I can manage the first two, but I have no idea on how I'll do the third...

thethethethe
July 12th, 2009, 04:54 AM
No, don't change the cmp. Instead, replace the first two lines with:


0800f1b0 2080 mov r0, #0x80
0800f1b2 00c0 lsl r0, r0, #0x3


That way the Pokémon limit it set to 1024 (and not 412).

If you do that here aswell.
08040fda 20ce mov r0, #0xce
08040fdc 0040 lsl r0, r0, #0x01
You'll fix the error with the Pokemon names.

To Wichu:
Don't know how much you know about the ASM side of this, but just overwrite the above addresses with [80 20 C0 00]
I can't remember much about the cries, I just remember the pointers were a pain in the behind, and that undefined cries pointed at Unown. But that's only if my memory serves me right. I'll look into it again when I find some time.

Wichu
July 12th, 2009, 06:11 AM
Thanks for the fixes. Unfortunately, the sprite fix only fixes the enemy sprites, and it doesn't fix any palettes... I hate to be a burden, but can somebody look into fixing the other sprites, namely the summary, backsprite, and starter selection sprites, as well as the palettes? I don't have a clue on how the ASM behind it works :(
I'll work on evolutions and move tutors now, anyway. I'll try doing the icons too.
http://img440.imageshack.us/img440/2443/firered01.png

hi sir tomato my password is syvniti
July 12th, 2009, 12:40 PM
Thanks for the fixes. Unfortunately, the sprite fix only fixes the enemy sprites, and it doesn't fix any palettes... I hate to be a burden, but can somebody look into fixing the other sprites, namely the summary, backsprite, and starter selection sprites, as well as the palettes? I don't have a clue on how the ASM behind it works :(
I'll work on evolutions and move tutors now, anyway. I'll try doing the icons too.
http://img440.imageshack.us/img440/2443/firered01.png

Hi there, I don't really have time know caused by vacation, But I'll take a look tommorow night(If the greddy hackmew and the*4, haven't found it all..)

Edit: Look at 0xED6C, might be interresting for yóu... (Did the patch you gave me contain the backsprites?)

thethethethe
July 13th, 2009, 12:16 AM
If the greddy hackmew and the*4, haven't found it all..

Hello sebbe. :P

I took a little look at some data. There's four times in which this sequence appears in relation to the Pokemon Images. These are at; EC94, ED6C, F0E4 and F1B0. I haven't checked as to which each relates to (ie. Front sprite).

Wichu, If you're going to add the icons:
I'm assuming the same deal will apply as the battle sprites, and some adjustments may be needed to get them to appear correctly, so someone may need to search for where these adjustments need to be made.

HackMew
July 13th, 2009, 12:52 AM
Thanks for the fixes. Unfortunately, the sprite fix only fixes the enemy sprites, and it doesn't fix any palettes... I hate to be a burden, but can somebody look into fixing the other sprites, namely the summary, backsprite, and starter selection sprites, as well as the palettes? I don't have a clue on how the ASM behind it works :(
I'll work on evolutions and move tutors now, anyway. I'll try doing the icons too.
http://img440.imageshack.us/img440/2443/firered01.png

Well, here are all the offsets where the limit is set:


0800EC94
0800ED6C
0800F0E4
0800F1B0
0800FFFA
08011F74
0802A81A
0802CEAC
08040FDA
08043766
08043C42
08043E5C
080440FE
080459CC
0804FAA2
0804FC5E
0804FC8C
0804FCA2
0804FD04
0805148E
08052174
0805287E
080535D0
08074658
08074728
08074788
08076BEC
08076CC8
0807FE12
0807FFD8
08094A1A
08096E72
08096F86
0809700A
080970A6
0809713E
080971D2
080971FE
080A0470
080DABB4
080DAC1A
080E6590
080F31B2
080FBFD6
08113EC0
08113EE0
0811AC1E
0811ADD4
0811ADF0
0811B030
0811B19A


Just overwrite all the above addresses with [80 20 C0 00]. Since they're quite a lot, when you're finished you better double check everything.
For the evolutions, I posted all the structures a few posts back.

Wichu
July 13th, 2009, 12:57 AM
I am slowly learning to ASM hack. Kinda.
Anyway, I've just been searching for the pointers to the palettes, and have successfully fixed the palette in the Summary screen by making the change detailed above (at 0x440fe) :D

EDIT: Beaten :( Oh well, at least HackMew's list makes it easier.

EDIT2: So, the sprites work now. I think the one remaining thing which still doesn't work (excluding resources such as cries, icons, and Pokémon data) is the Pokédex. Despite having extended the National Dex order to include the Sinnoh Pokémon, they still don't show up in the Pokédex.

EDIT3: Also, I'm going to try finding the data controlling the height of the battle sprites. Floating Turtwig is a bit weird, and some Pokémon are even off-screen :S

Griin.
July 13th, 2009, 04:38 AM
Wichu i thougth you're good only with game making :P

So i haven't read the whole thread because i don't have much time ( Sorry guys) So you want to make all Sinnoh pokemon into FR( R/E) rom ? With all evolutions from DP ( Area and so) ?

thethethethe
July 13th, 2009, 04:48 AM
Wichu i thougth you're good only with game making :P

So i haven't read the whole thread because i don't have much time ( Sorry guys) So you want to make all Sinnoh pokemon into FR( R/E) rom ? With all evolutions from DP ( Area and so) ?

Basically, yes. I guess the main goal here is to place all the fourth generation Pokemon into a GBA ROM, in as close a possible way as way to the DPP games.

Wichu
July 13th, 2009, 05:03 AM
Wichu i thougth you're good only with game making :P

So i haven't read the whole thread because i don't have much time ( Sorry guys) So you want to make all Sinnoh pokemon into FR( R/E) rom ? With all evolutions from DP ( Area and so) ?

I'm still a game developer; I don't plan on actually making a ROM hack :P
I just thought that this was an interesting idea, so I decided to help out.

It's not only to add the Sinnoh Pokémon to the GBA games - I think our main goal is to allow more than 386 (+25) Pokémon to be available to ROM hackers. Over at Game Development, we've had that capability for nearly two years; it's only fair that ROM hackers should be able to do the same.
Hopefully, this will inspire more hackers to use fake Pokémon, as that's one of the things I think is lacking. There's hacks with all new Pokémon, and hacks with all original ones; I want to see more hacks with both (for example, RD: LoG). Removing the limitation of having to replace original Pokémon should do a lot for that.

Anyway, I'm not having any luck with finding the sprite positioning data... Does anyone know anything about this? I could see if I can get in touch with poccil, as he must have extracted it somehow for use in Pokémon Essentials...

iTeruri
July 13th, 2009, 05:04 AM
This project sounds interesting. Too bad I can't help with anything :(

HackMew:
I know zero ASM but I’m just suggesting something so eevee can evolve into all seven eons. (because there is no day/night, there is no umbreon espeon evoltion)
Max happiness randomly evolve into espeon or umbreon
Max happiness outside = espeon, inside (dark places, caves, forests, houses) = umbreon
Max happiness gender based, female = espeon, male = umbreon (or vice versa)
Max happiness and based on the two special stats (sp. attack > epseon, sp. defense > umbreon)

Like I said I know zero ASM so I don’t know if it’s possible and I know some of them are way off normal day/night based evolution, but it just seems weird to have 6 of the eons and leave out either Umbreon or Espeon.

Oh and you special eevee evolution thingy has 5 slots, I don’t know it that’ll mean you leave out both Umbreon and Espeon (unlikely because you mentioned eevee always evolving into espeon) or if just forget to add it yo your post.

Wichu
July 13th, 2009, 05:12 AM
I thought that it could be done in a similar way to Wurmple; in fact, the method could be the same, but with max happiness needed instead of a certain level.

Oh, and speaking of Eevee and the real-time clock, are there any plans to do this with Ruby or Emerald as well? I'd be willing to reinsert all the D/P Pokémon data into another ROM; it doesn't take me very long.

thethethethe
July 13th, 2009, 05:25 AM
Anyway, I'm not having any luck with finding the sprite positioning data... Does anyone know anything about this? I could see if I can get in touch with poccil, as he must have extracted it somehow for use in Pokémon Essentials...

I just did some scrounging through the ROM.
Sprite position back 08235e6c
Sprite position front 082349CC
I haven't quite figured out exactly how they are working, but by editing bytes here and there, it changed the position. There's probably a need to repoint as well.
Besides the simple structure layout [X-1 byte] [Y-1 byte] [Padding-2 bytes], that's all the information I've got at the moment.

Oh, and speaking of Eevee and the real-time clock, are there any plans to do this with Ruby or Emerald as well? I'd be willing to reinsert all the D/P Pokémon data into another ROM; it doesn't take me very long.
Once one is done, it's almost just a matter of copy and paste barring having to find the different addresses.

HackMew
July 13th, 2009, 05:41 AM
EDIT2: So, the sprites work now. I think the one remaining thing which still doesn't work (excluding resources such as cries, icons, and Pokémon data) is the Pokédex. Despite having extended the National Dex order to include the Sinnoh Pokémon, they still don't show up in the Pokédex.

EDIT3: Also, I'm going to try finding the data controlling the height of the battle sprites. Floating Turtwig is a bit weird, and some Pokémon are even off-screen :S

For the PokéDex, it's pretty obvious it is limited to 386 entries. I will see what I can do about it.
For the sprite position it might be related to the dex data, you know the scale/offsets values.


This project sounds interesting. Too bad I can't help with anything :(

HackMew:
I know zero ASM but I’m just suggesting something so eevee can evolve into all seven eons. (because there is no day/night, there is no umbreon espeon evoltion)
Max happiness randomly evolve into espeon or umbreon
Max happiness outside = espeon, inside (dark places, caves, forests, houses) = umbreon
Max happiness gender based, female = espeon, male = umbreon (or vice versa)
Max happiness and based on the two special stats (sp. attack > epseon, sp. defense > umbreon)

Like I said I know zero ASM so I don’t know if it’s possible and I know some of them are way off normal day/night based evolution, but it just seems weird to have 6 of the eons and leave out either Umbreon or Espeon.

Oh and you special eevee evolution thingy has 5 slots, I don’t know it that’ll mean you leave out both Umbreon and Espeon (unlikely because you mentioned eevee always evolving into espeon) or if just forget to add it yo your post.

Well... I decided to make it evolve into Espeon arbitrarily as FR/LG don't have a clock by default. It's like a neverending day. At least that was my idea. I would prefer not to change the way you suggested as it's better to keep the evolution data as close as the original. Think about Feebas, for example. It needs at least its Beauty to be 170, before it can evolve. But in FR/LG there are no PokéBlocks that can increase the Beauty, even if the Beauty is still there. After all, you can always trade with R/S/E. Oh, and the special Eevee evolution thingy do have 5 slots. But wait... there are 7 actually! :P Yeah, like I said all the 7 evolutions are there. It's just they're compacted.


I thought that it could be done in a similar way to Wurmple; in fact, the method could be the same, but with max happiness needed instead of a certain level.

Oh, and speaking of Eevee and the real-time clock, are there any plans to do this with Ruby or Emerald as well? I'd be willing to reinsert all the D/P Pokémon data into another ROM; it doesn't take me very long.

What's wrong with Wurmple?


Once one is done, it's almost just a matter of copy and paste barring having to find the different addresses.

Well, almost. ASM routines usually can't be simply copied and pasted. Even if you change the addresses.

EDIT: Hey, Wichu I've got fresh new addresses.

0800D7E4
0800D854
0801196A
08011F3C
08013384
08013400
0801348C
08019CA4
08019D5A
08025BF8
08026DF0
0802B9A8
0802C9C8
080392CE
080394FC
0803994C
08039BC0
0803A234
08040D0C
08053088
08074624
080746F0
08076BD8
08076C98
08096F78
080C839C
080C8756
080C882C
080CAD20
080F23E4
080F2E32
080F32A4
080F32E6
081193FA
0811B11C
0815EBE0


Ovewrite all the above with [80 21 C9 00].

0800ED3E
0800F182
080118D0
08026E8E
08096FFC
0813549E

Overwrite all the above with [80 22 D2 00].

0804FAE6

Overwrite the one above with [80 23 DB 00].

08040036
080401A6
0812EAA4

Overwrite all the above with [80 24 E4 00].

080A0224

Ovewrite with [80 27 FF 00].

Those should definitely fix all the limits.

hi sir tomato my password is syvniti
July 13th, 2009, 07:10 AM
@Hackmew

Did you test all those adress? That list just seems inhuman, how did you do it that fast?

Wichu
July 13th, 2009, 07:17 AM
I replaced the addresses, and the Pokédex still refuses to work... The 'Owned' count is blank if I only have D/P Pokémon, and D/P Pokémon aren't counted in the 'Seen' count. Also, catching a D/P Pokémon, and attempting to view its dex entry, will just skip the dex entry and go to the nickname screen :( And yes, I do have the National Dex.
I'm pretty sure I inserted the dex entries and National Dex order correctly...

EDIT: Oh, and thethethethe, I found another table at 0x23a004. In Pokémon Essentials, that's referred to as the 'battler altitude'; i.e. the table stores the distance between the Pokémon sprite and the shadow (if there is no shadow, the entry is 0). Time to repoint that table too :)

EDIT2: The values in that table are treated as signed; if the value is above 0x80, the sprite goes down instead of up (for some reason, it still gets a shadow).

HackMew
July 13th, 2009, 10:12 AM
@Hackmew

Did you test all those adress? That list just seems inhuman, how did you do it that fast?

Well, I just searched "mov rX, #0xCE / lsl rX, rX, #0x1". Then I removed from the results all the odd address and the unlikely ones.


I replaced the addresses, and the Pokédex still refuses to work... The 'Owned' count is blank if I only have D/P Pokémon, and D/P Pokémon aren't counted in the 'Seen' count. Also, catching a D/P Pokémon, and attempting to view its dex entry, will just skip the dex entry and go to the nickname screen :( And yes, I do have the National Dex.
I'm pretty sure I inserted the dex entries and National Dex order correctly...

EDIT2: The values in that table are treated as signed; if the value is above 0x80, the sprite goes down instead of up (for some reason, it still gets a shadow).

You might want to replace those below with [E5 03 00 00]:

08011F68
08018D20
08018E7C
08018F84
08019E20
08034478
08034638
0803590C
0807464C
0807471C
0807477C
08076CBC
08088EA4
080D77C8
081037D4
08103870
08103920
08104C28

It won't help much though, as the data that tells whether a Pokémon is caught/seen is stored into the RAM, taking 1 bit for each Pokémon, at 4 different addresses. Since each Pokémon takes 1 bit, all the 386 Pokémon fits in 52 bytes. When all the 4 bits for a Pokémon are set to 0, the Pokémon is not caught nor seen. If all but the first bit are set to 1, the Pokémon has been seen but not caught yet. If all the bits are set to 1, then the Pokémon has been caught.

Also, if the bytes in the table are treated as signed, if means anything above 0x7F is negative.
0x0 - 0x7F = 0 to 127 / 0xFF - 0x80 = -1 to -128

Wichu
July 14th, 2009, 01:09 AM
I meant 0x80 and above, whoops :P

So the Pokédex won't work because the locations in RAM only have room for 386 Pokémon? Would it be possible to use a different location in the RAM to store the seen/caught values, or would that be too difficult?

Alternatively, you said there are 4 locations where the data is stored. Since two of those seem to be superfluous (are they used for anything else; i.e. are there more than 3 states for each species?), wouldn't it be possible to use two of them to extend the other two? That way, you could have 772 Pokémon in your Pokédex... Then you'd just need to modify the save routines to consider the extra Pokédex data when the game is saved...

Anyway, I've finished the battle sprite positioning. I wrote a script which automatically finds a value for the sprite's y position, based on how many pixels are between the bottom of the image, and the bottom of the actual sprite. I then quickly threw together an editor for the sprites' altitudes :)
http://img199.imageshack.us/img199/2149/drifblima.pnghttp://img505.imageshack.us/img505/6758/drifblimfr.png
I can't seem to get the x values to work, though... Thethethethe, are you sure that the first byte changes the x?

I'm going to work on icons now.

Wichu
July 14th, 2009, 02:56 AM
I just finished the icons. Took me a while to work out the structure of the icons in the ROM, but after that, it was easy. No way was I going to remake each icon, pixel-by-pixel, in IconED! :P
http://img223.imageshack.us/img223/2443/firered01.png
In regards to Pokémon data, that just leaves cries, evolutions, and move tutors (I think).

EDIT: Anyone have any pointers related to the cries? I'm not having any luck searching...

thethethethe
July 14th, 2009, 04:10 AM
I can't seem to get the x values to work, though... Thethethethe, are you sure that the first byte changes the x?

Sorry about that. It was a pretty poor assumption. Here's the address for the X position, 3AE01C. Same sort of structure as the one before.

Like the other one, I haven't really played with it too much, besides figuring out that it does something, but it seems to have some sort of relation to the pixel position on the screen. I haven't put any effort into solving that relation yet.

Wichu
July 14th, 2009, 04:24 AM
Are you sure that's the right offset? The data there doesn't look like it's similar to the data in the y-position table... I don't think that the x-positions are stored in a table, but are set for every Pokémon; all of the D/P Pokémon I've tested have had the same x-position, so I think that the sprite x is set, not read from a table.

Oh, and do you know anything about the cries? I couldn't find anything by myself...

Tropical Sunlight
July 14th, 2009, 04:36 AM
So there has been quite a lot of progress, right?

thethethethe
July 14th, 2009, 05:03 AM
Are you sure that's the right offset? The data there doesn't look like it's similar to the data in the y-position table... I don't think that the x-positions are stored in a table, but are set for every Pokémon; all of the D/P Pokémon I've tested have had the same x-position, so I think that the sprite x is set, not read from a table.

Oh, and do you know anything about the cries? I couldn't find anything by myself...
I was screwing around with those a little more and there are a few positions and they seem to affect different Pokemon. Are the DP Pokemon that far off that it's needed to look into?

As for the cries, can't remember how they really work, but I've found myself an address for the pointer table, 48C914 or at least what seems to be compared to a Ruby ROM.

onyx79
July 14th, 2009, 05:14 AM
I just finished the icons. Took me a while to work out the structure of the icons in the ROM, but after that, it was easy. No way was I going to remake each icon, pixel-by-pixel, in IconED! :P
http://img223.imageshack.us/img223/2443/firered01.png
In regards to Pokémon data, that just leaves cries, evolutions, and move tutors (I think).

EDIT: Anyone have any pointers related to the cries? I'm not having any luck searching...
Wichu you're a god,I can't believe that there will be a rom base with all of the 493 pokemon's that's awesome!!!!!!!!!!!

Wichu
July 14th, 2009, 05:51 AM
I was screwing around with those a little more and there are a few positions and they seem to affect different Pokemon. Are the DP Pokemon that far off that it's needed to look into?

As for the cries, can't remember how they really work, but I've found myself an address for the pointer table, 48C914 or at least what seems to be compared to a Ruby ROM.
I don't think we really need to alter the x-positions for the D/P Pokémon... I just thought that it might be useful to know how it works.
Thanks for the offset; I'll mess around with it, and see what I can do.
Wichu you're a god,I can't believe that there will be a rom base with all of the 493 pokemon's that's awesome!!!!!!!!!!!
You should thanks HackMew and thethethethe instead, since they're the ones who are doing the complicated stuff. I'm just adding the D/P Pokémon in; they're making them actually work properly.

EDIT: thethethethe, I'm a bit confused... The table seems to contain 786 entries, rather than 412 or 440, which would be the logical numbers for it to have. Oh, and I fixed the TM compatibility table. Now all the TMs should work perfectly.

onyx79
July 14th, 2009, 06:21 AM
I don't think we really need to alter the x-positions for the D/P Pokémon... I just thought that it might be useful to know how it works.
Thanks for the offset; I'll mess around with it, and see what I can do.

You should thanks HackMew and thethethethe instead, since they're the ones who are doing the complicated stuff. I'm just adding the D/P Pokémon in; they're making them actually work properly.
so you both 3 are gods LOL....
I wish you good luck with this,even if I'm a bygg nubb

HackMew
July 14th, 2009, 09:56 AM
I meant 0x80 and above, whoops :P

So the Pokédex won't work because the locations in RAM only have room for 386 Pokémon? Would it be possible to use a different location in the RAM to store the seen/caught values, or would that be too difficult?

Alternatively, you said there are 4 locations where the data is stored. Since two of those seem to be superfluous (are they used for anything else; i.e. are there more than 3 states for each species?), wouldn't it be possible to use two of them to extend the other two? That way, you could have 772 Pokémon in your Pokédex... Then you'd just need to modify the save routines to consider the extra Pokédex data when the game is saved...

At the moment I'm unsure on what to do, as I'm still doing research. I guess I'll have to rewrite the PokéDex check routine.


EDIT: thethethethe, I'm a bit confused... The table seems to contain 786 entries, rather than 412 or 440, which would be the logical numbers for it to have. Oh, and I fixed the TM compatibility table. Now all the TMs should work perfectly.

The offset thethethethe gave you is the right one. But the table isn't just a table of pointers.
Each entry takes 12 bytes, and the structure is the following:

[203C0000] [XXXXXX08] [FF00FF00]

There's a total of 388 entries.

hi sir tomato my password is syvniti
July 16th, 2009, 12:36 PM
So there has been quite a lot of progress, right?

So there has been quite a lot of progress, right?

Did you create a new user just to ask the same thing?
I fell very smart when I look at you register data!

Tropical Sunlight
July 16th, 2009, 10:44 PM
What the-- Oh, just forget it. I'm too summered to be angry.
When I come back, there is probably going to be a lot of updates, so I can't wait! Good luck!

thethethethe
July 17th, 2009, 03:50 AM
So there has been quite a lot of progress, right?
I only did it because I've been following this thread since it's creation.
If you've been watching the thread since creation, wouldn't you have seen progress so far.
I'm quite excited, and even though I don't want to rush the people who are working on this project, I was getting nervous about the huge time this thread went without updates... I still am...
Huge Time without updates? It has been about two days. A little impatient maybe?

I'm back at school now so I can't put too much effort in. I have taken a bit of a look at the cries, but I haven't looked at them in enough depth to be able to post anything.
I'll probably do something on Sunday, depending on how long it takes me to get through homework.
Saturday I'm busy.

I don't know what Hackmew and Wichu are up to.

~Frozen Darkness~
July 18th, 2009, 07:24 AM
I hope for the best for this project. I can't really do much, but I might chip in a little should I find something that would be a worthwhile addition to the thread.

If this is successful, then ROM Hackers will have a lot more flexibility with their hacks.

Programs that you should ask permission to edit for this project:

A-Map (For adding the new Pokemon in the wild)

YAPE (for name and Pokedex Editing, as well as a lot more.)

I'll think of more later.

Sleepwalker
July 18th, 2009, 05:54 PM
Earlier in the thread, Eevee evolutions were being talked about.
Why not just do this:
Fire Stone - Flareon
Water Stone - Vaporeon
Thunder Stone - Jolteon
Moon Stone - Umbreon
Sun Stone - Espeon
Leaf Stone - Leafeon

Since theres no other stones, why not make Glaceon happiness or create a new stone (Perhaps Ice Stone or Frost Stone?).

HackMew
July 18th, 2009, 10:31 PM
Earlier in the thread, Eevee evolutions were being talked about.
Why not just do this:
Fire Stone - Flareon
Water Stone - Vaporeon
Thunder Stone - Jolteon
Moon Stone - Umbreon
Sun Stone - Espeon
Leaf Stone - Leafeon

Since theres no other stones, why not make Glaceon happiness or create a new stone (Perhaps Ice Stone or Frost Stone?).

That's not applicable. First, that would screw up the original evolutions. And the point is to get everything as close as the original games as possible. What's the point of adding the new evolution methods then? Second, that would require 7 evolution slots, which is not good as well.

slawter666
July 19th, 2009, 12:09 PM
This is perfect, as i am doing an Emerald hack (and a diamond one)(both same as i want to play it on DS/GBA but i don't have a GBA flashcard + no DS mapping tool) the gba one wasn't going to have all the fakemon etc in it, but now it will)

Anyway i have a few questions, probably unrelated but still, as there a empty slots for Pokemon could those slots be used for items, overworlds etc.
and will the evolution methods also be available to Emerald.

i want to change the pokedex to 601. and i understand that currently the pokedex is fixed at 386, but we can put as many pokemon as we want(no-one will use 65535 :))

I don't have a problem doing it all by hex editing (when it's all figured out) as long as there's a tutorial, but is a program going to be made, as that would be much easier to do than editing each value and making sure you definetly have all the correct values, because with a program you would just select from a list

Also on the overworld + icon front would there be a way to add palletes as currently doesn't the icons have like 3 palletes (haven't done icon editting in a while so i'm unsure) and the overworld have something like 37-40.

and with the sprites is there a way to import them if they have more than 16 colours in their pallete or would the pallete need to be reduced?

Also wouldn't the amount of Boxes need to be increased as i want to put 601 pokemon + about 50 extra forms for pokemon (and other people will probably want to add more than 493 pokemon)

Slawter

HackMew
July 19th, 2009, 12:26 PM
This is perfect, as i am doing an Emerald hack (and a diamond one)(both same as i want to play it on DS/GBA but i don't have a GBA flashcard + no DS mapping tool) the gba one wasn't going to have all the fakemon etc in it, but now it will)

Anyway i have a few questions, probably unrelated but still, as there a empty slots for Pokemon could those slots be used for items, overworlds etc.
and will the evolution methods also be available to Emerald.

i want to change the pokedex to 601. and i understand that currently the pokedex is fixed at 386, but we can put as many pokemon as we want(no-one will use 65535 :))

I don't have a problem doing it all by hex editing (when it's all figured out) as long as there's a tutorial, but is a program going to be made, as that would be much easier to do than editing each value and making sure you definetly have all the correct values, because with a program you would just select from a list

Also on the overworld + icon front would there be a way to add palletes as currently doesn't the icons have like 3 palletes (haven't done icon editting in a while so i'm unsure) and the overworld have something like 37-40.

and with the sprites is there a way to import them if they have more than 16 colours in their pallete or would the pallete need to be reduced?

Also wouldn't the amount of Boxes need to be increased as i want to put 601 pokemon + about 50 extra forms for pokemon (and other people will probably want to add more than 493 pokemon)

Slawter

Yeah, when everything will be finished everything will be available for R/S/E and FR/LG, all languages. In other words, full support.

For the PokéDex... it's still limited to 386 indeed and I'm going to break the limit as soon as possible. Theorically, the PokéDex could be expanded up to 386 * 2 = 772 Pokémon.

You can't insert sprites that have more than 15+1 colors. You'll have to reduce the colors and index them.

The boxes... aren't really a problem I think. You don't keep all the possible Pokémon in your boxes I guess.

slawter666
July 19th, 2009, 12:44 PM
That's awesome.

Though i do try to get every Pokemon and put them in Boxes, i'm just like that.
i know this is currently 3rd Gen and you will do it extremely successfully but will you do 4th Gen increasing Pokemon? I don't mean straight away but eventually?

Also on a less important note, do you play the ROM hacks you do?

Dragonmaster91
July 19th, 2009, 02:10 PM
That's awesome.

Though i do try to get every Pokemon and put them in Boxes, i'm just like that.
i know this is currently 3rd Gen and you will do it extremely successfully but will you do 4th Gen increasing Pokemon? I don't mean straight away but eventually?

Also on a less important note, do you play the ROM hacks you do?
I can answer one, yay!
It will take a while finding the hexes. Also, you would need to know the 5th gen pokemon before that happened.

Wichu
July 20th, 2009, 12:40 AM
I think it should be possible to increase the number of icon palettes, up to a maximum of 256 different palettes. I haven't tried it, but I don't think it would require much ASM (if any at all), just a repointing of the icon palettes.
For editing the new Pokémon, you'll probably want to ask one of the makers of the Pokémon editing tools to allow you to specify the number of Pokémon in the game.
And I don't think you could use the Pokémon slots for items/OWs etc, since they are completely different kinds of data... But it should be possible to increase the number of those, too.

slawter666
July 20th, 2009, 02:31 AM
Awesome, can everything in the game be increased, i.e types

when i said 4th gen i didn't mean necessarily adding 5th gen (if there is gonna be a 5th gen) i mean adding fakemon etc

thethethethe
July 20th, 2009, 03:19 AM
i know this is currently 3rd Gen and you will do it extremely successfully but will you do 4th Gen increasing Pokemon? I don't mean straight away but eventually?
I don't think this will become a DS project.
For one, a debugger for the DS will cost us money. The GBA debugger was free. (Well at least this applies to me)
Secondly, structures differ slightly, meaning that the main data will need to be re-done instead of a copy-paste style technique to get the main data from R/S/LG/FR.
Thirdly and least importantly, the DP games run on a different processor (ARM946E-S) compared to the GBA (ARM7TDMI). They are essentially the same but little differences. But without the use of a debugger will be a, for lack of stronger words, a big pain the behind.
Awesome, can everything in the game be increased, i.e types.
Anything can be extended. We've known that for a long time, but no-one could ever be bothered doing something to this extent.
I think it should be possible to increase the number of icon palettes, up to a maximum of 256 different palettes. I haven't tried it, but I don't think it would require much ASM (if any at all), just a repointing of the icon palettes.
For editing the new Pokémon, you'll probably want to ask one of the makers of the Pokémon editing tools to allow you to specify the number of Pokémon in the game.
And I don't think you could use the Pokémon slots for items/OWs etc, since they are completely different kinds of data... But it should be possible to increase the number of those, too.
I was taking a look at it and I think it'll take at least a little ASM. 3d4038 is the offset for the pointers to the palettes. It's followed directly by the pointer to the icon images. Also at most it appears like you'll only be able to use about 5 or 6 palettes for the icons without changing the way the icon palette is loaded.

As for the new Pokemon, once we were done, I was going to throw together a quick little tool/s for temporary use until someone can be bothered putting together some better ones for it. That is, unless someone else can be bothered doing it instead of me.

Also, these cries are annoying me. I'm having trouble looking for something relating to the pointers and how they're calculated. I guess I should just try working with some of the Hoenn cries, maybe I'll have some better luck.

Wichu
July 20th, 2009, 11:51 PM
For editing the new Pokémon, wouldn't it be best to get one of the makers of a Pokémon editing tool to allow the number of species to be specified in the .ini? As long as the pointer tables are also specified in the .ini (they should be, for version compatibility), then I think that would work...

Also, have you seen the readme file of PokeCry (the one in the bin folder)? That seems to have a bit of info on the format of cries... I've attached it to this post.

HackMew
July 21st, 2009, 12:05 AM
For editing the new Pokémon, wouldn't it be best to get one of the makers of a Pokémon editing tool to allow the number of species to be specified in the .ini? As long as the pointer tables are also specified in the .ini (they should be, for version compatibility), then I think that would work...

Also, have you seen the readme file of PokeCry (the one in the bin folder)? That seems to have a bit of info on the format of cries... I've attached it to this post.

Well, what you attached actually is NDS Sound Extractor's Readme. Anyway, the source code will give you definitely more info than the Readme, assuming you understand C.

EDIT: Here are the two Readmes that were included with PokéCry Beta 1. The second one was missing from the Beta 2:

PokemonCryGUI beta1
by loadingNOW
-----------------------------

Pretty much self explicatory i guess. Note: if Use table/ID is checked the program will read
the addres from an offsettable in the rom, based on the Addres (in this case it's the start
address of the table) and the ID you enter(1=Bulbasaur, 274=Trecko)
In case you don't want to use the table method uncheck it, so you will dump/write directly to
the address you enter.

Note: The Offsets used here (0x460530 for the table) are for the german ruby Version.
They *might* work with others. If they don't well it's a shame but it souldn't be too hard to
port these adrresses.

Dump results in a [Romname][offset].wav file in the same dir as the Rom.
Encode results in a .dmp file in the dame dir as the wave. If you Press Encode and then dump
the newly created dmp file will be inserted in the rom at the location given.

To use the Commandline tools in bin:
PCEnc [wavefile]
PCDump [offset] [romfile]

that's it :) and hopefully there are no major bugs so i dont have to fix too much XD
anyway enjoy
loadingNOW/pika

Note:
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

--------------
PCEnc.exe
Pokemon Cry Encoder ALPHA
README
--------------

This Program is protected by the GPL (Gnu Public License).
You may modify it, but you have to include the Source if you distribute it for deteils read the
GPL.

How it works:

-Create a 8 bit 11khz Signed PCM Wave File With a Standart header
(no non wave parts in the end like copyright and stuff)
-Run:
- PCEnc Mywav.wav

You'll get Mywav.wav.dmp. To test the encoded Sample Start VBA and load a german
copy of Pokemon Ruby.

1. Go tools -> Memory Viewer
2. Select 8-Bit
3. Click Load and load the dmp file
4. Select the desired offset - we'll use 0x085D0948 (which is Treecko's Sample adress)

(To get more adresses use this formula:
0x4604E4+(index+6)*12+4
index = pokemon id - this will direct you to the pointers - however I am not yet 100% sure
if it works 100%, you'll get Bulbasaur with index = 1, though :))

5. In Game open Pokedex and view Treecko's entry
6. Select "Cry" and listen to the new Sample - Enjoy

How it works
--------------------
This Section will describe the Sound Format of the Cry Samples
Lets assume your Encoded Sample Looks like this:
77 01 F0 C0

The First byte will be copied so you have:
77

The first 0 after the Copied byte has no purpose so we ignore it.
The next Values will be checked in a table:

0 1 2 3 4 5 6 7 8 9 A B C D E F
00 01 04 09 10 19 24 31 C0 CF DC E7 F0 F7 FC FF

In our Case we have to use 01. Now we add 01 to the last byte, 77 -> 78 thats our 2nd byte
We have:
77 78

No we continue with F -> 78 + FF = 177 Since it's a byte it's 77 We get:
77 78 77

With 0 -> 77+0 = 77
77 78 77 77

Now C -> 77 + F0 = 167
77 78 77 77 67

And Finaly 0 -> 67+0 = 67
77 78 77 77 67 67

Onle last note every 21th byte is copied directly and the next byte is always 0X only using the
lower 4 bits.

That's it :)

My Encoder Is doing the opoisite (naturally) - and it's trying to stay as close to every single
byte as possible.

(C) 2003 by loadingNOW / pika

Wichu
July 21st, 2009, 12:57 AM
Thanks :) I couldn't find the source code; could you link me to it?

HackMew
July 21st, 2009, 01:29 AM
Thanks :) I couldn't find the source code; could you link me to it?

Here you are: linky link (http://pokeguide.filb.de/dl/pokecry2.zip).

slawter666
July 21st, 2009, 05:57 AM
because your trying to make it as 4th-gen like as you can does that mean you're going to add all the different abilities such as Arceus's Multitype and also will you put manaphy's egg in it.

Does that mean that every pokemon could have a seperate egg?
Also will we be able to put extra forms for pokemon. and how does the pokedex recognise you have a pokemon say if you get a different form for it as well

e.g the unowns

onyx79
July 21st, 2009, 06:49 AM
because your trying to make it as 4th-gen like as you can does that mean you'tr going to add all the different abilities such as Srceus's Multitype and also will you put manaphy's egg in it.

Does that mean that every pokemon could have a seperate egg?
Also will we be able to put extra forms for pokemon. and how does the pokedex recognise you have a pokemon say if you get a different form for it as well

e.g the unowns
don't you think it's kinda hard?
I mean people have life I don't see why wichu need to sit at his home all day and insert stupid pokemon eggs,about the forms-that's ok but why stupid eggs and fakemon's?

slawter666
July 21st, 2009, 07:28 AM
don't you think it's kinda hard?
I mean people have life I don't see why wichu need to sit at his home all day and insert stupid pokemon eggs,about the forms-that's ok but why stupid eggs and fakemon's?

I don't mean him, i mean if we want to would we be able to?

HackMew
July 21st, 2009, 07:39 AM
I don't mean him, i mean if we want to would we be able to?

Of course we could, but it would require a LOT of work.

slawter666
July 21st, 2009, 08:11 AM
Of course we could, but it would require a LOT of work.

Ok, how much hard work (how long would it take roughly) because i want a few pokemon in my hack to have seperate eggs, and i want to incorparate pokemon disguises (so basically extra forms), how long would that take me?

I'm slightly confused as the whats being done here and what isn't
i know that all the sinnoh pokemon are being put in as close as possible to the 4th generation games, but is every aspect of them being put in. Abilities,movesets,extra moves?

HackMew
July 21st, 2009, 08:14 AM
Ok, how much hard work (how long would it take roughly) because i want a few pokemon in my hack to have seperate eggs, and i want to incorparate pokemon disguises (so basically extra forms), how long would that take me?


It mostly depends on your ASM knowledge.

Bloodmoon
July 21st, 2009, 05:28 PM
Is it possible to add the clock to FireRed? Then the Day/Night evolutions would be easier, right?

If it would be too hard, then what about happiness with items? Because in Pokémon XD, Eevee evolves to Umbreon and Espeon by the Sun and Moon shards.

Dragonmaster91
July 21st, 2009, 06:26 PM
Is it possible to add the clock to FireRed? Then the Day/Night evolutions would be easier, right?

If it would be too hard, then what about happiness with items? Because in Pokémon XD, Eevee evolves to Umbreon and Espeon by the Sun and Moon shards.
From what I gathered, it would take extreme ASM hacking. I doubt many people have that kind of time.

...

Wichu
July 22nd, 2009, 12:29 AM
You could always change it to the same form of evolution Wurmple uses; then you'd have a 50% chance of getting each one... That's if HackMew's Eevee evolution modification allows you to use methods other than item, happiness, and area... But it won't be happiness-based, unless HackMew makes a similar method which is.

HackMew
July 22nd, 2009, 01:39 AM
You could always change it to the same form of evolution Wurmple uses; then you'd have a 50% chance of getting each one... That's if HackMew's Eevee evolution modification allows you to use methods other than item, happiness, and area... But it won't be happiness-based, unless HackMew makes a similar method which is.

I still don't understand why are you talking about Wurmple...

Wichu
July 22nd, 2009, 01:45 AM
Everyone's complaining about how Eevee would only be able to evolve into one of Espeon/Umbreon due to the lack of a day/night system, so I was just suggesting that if they set Eevee's evolution type to high/low personality, they could have it become Espeon/Umbreon randomly (as long as they didn't mind having it evolve at a level rather than with happiness)...

slawter666
July 22nd, 2009, 04:37 AM
It mostly depends on your ASM knowledge.

none, so if i was told what to do and followed that =)?

Dragonmaster91
July 22nd, 2009, 06:14 AM
none, so if i was told what to do and followed that =)?
It would still be very complicated. You should use HackMew's ASM tutorials if you wish to learn.

If you can use Mastermind_X's Shiny Hack tutorial without getting confused, then you are on a good track.
Just don't bump anything.

hi sir tomato my password is syvniti
July 22nd, 2009, 12:16 PM
It would still be very complicated. You should use HackMew's ASM tutorials if you wish to learn.

If you can use Mastermind_X's Shiny Hack tutorial without getting confused, then you are on a good track.
Just don't bump anything.

Even though Mastermind's Shiny hack tutorial is commeted, I believe there might be a few better places to learn asm in general...

Dragonmaster91
July 22nd, 2009, 03:02 PM
Even though Mastermind's Shiny hack tutorial is commeted, I believe there might be a few better places to learn asm in general...
I meant if you don't get confused with it, not use it to learn. lol

slawter666
July 23rd, 2009, 11:38 AM
I got to
"Yeah. We solved the problem." and i didn't understand anything except to make it shiny it (something) has to be less than 8

Isn't there an easier way to do it. plus i want to use forms not shinies, like the unowns. I do want to do one shiny encounter, but couldn't i just set the shiny rate to 1/1 for that area as only that encounter will be there

Also is there a way to make an exception to having to have 16 colours in a sprite because there is a sprite i want to use but it has a pallete of 31 and i can't really reduce that to 16

Kyouya
July 23rd, 2009, 12:06 PM
Also is there a way to make an exception to having to have 16 colours in a sprite because there is a sprite i want to use but it has a pallete of 31 and i can't really reduce that to 16
theres no way to bypass that limit make a 16 color sprite or take away colors from that sprite

slawter666
July 23rd, 2009, 12:13 PM
theres no way to bypass that limit make a 16 color sprite or take away colors from that sprite

Oh. Well that's a bit of a problem :( :knockedou

EDIT: is there a way i can increase the max level to one more than 100 (not 101 but a letter)? (even if it is complex and time consuming i am still willing to do it)

Dragonmaster91
July 25th, 2009, 06:27 PM
Oh. Well that's a bit of a problem :( :knockedou

EDIT: is there a way i can increase the max level to one more than 100 (not 101 but a letter)? (even if it is complex and time consuming i am still willing to do it)
That's a bit... Irrelevant...

slawter666
July 26th, 2009, 07:36 AM
That's a bit... Irrelevant...

yea sorry i got a bit off-topic, anyway hows the progress of this project coming along

Bigdog
July 26th, 2009, 08:40 AM
I don't want to bring your hopes down, but it's not going to. Think about evolutions, for example. GBA games can have up to 5 of them. D/P/P can have up to 7 of them (Eevee, indeed). ASM hacking is required a lot for a successful expansion. No matter if they are 494 or 65536. Once you can get them work, adding more is pretty easy.


What I did to solve that problem before this theory came about was to make a normal evolution of Eevee for the two new evolutions and possibly Espeon and Umbreon. This is gonig to be a difficult task , but in the long run it will help GBA hacking and possibly reinnovate it. The hacks that use Sinnoh pokemon and after the fact now will in the future be able to utilize all 493 or more if the person likes. In fact I can't wait 'till the patch gets done because I would like to utilize maybe the 493 now available so I don't have to overwrite Generation 3 and possibly more because my first hack idea currently is being worked upon, concept art wise.

Good luck with the patch,Dragonmaster91!

onyx79
July 26th, 2009, 10:25 AM
What I did to solve that problem before this theory came about was to make a normal evolution of Eevee for the two new evolutions and possibly Espeon and Umbreon. This is gonig to be a difficult task , but in the long run it will help GBA hacking and possibly reinnovate it. The hacks that use Sinnoh pokemon and after the fact now will in the future be able to utilize all 493 or more if the person likes. In fact I can't wait 'till the patch gets done because I would like to utilize maybe the 493 now available so I don't have to overwrite Generation 3 and possibly more because my first hack idea currently is being worked upon, concept art wise.

Good luck with the patch,Dragonmaster91!
why is everyone so bothered from eevee?
he can evolve to espeon and umbreon and leafeon with moon,sun and leaf stone and to glaceon with maybe other item or happiness...
this thing shouldn't disturb people you know....

tImE
July 26th, 2009, 10:30 AM
why is everyone so bothered from eevee?
he can evolve to espeon and umbreon and leafeon with moon,sun and leaf stone and to glaceon with maybe other item or happiness...
this thing shouldn't disturb people you know....

The thing about Eevee that makes everybody concerned is the fact that Eevee have 7
evolutions as of gen IV, but the gen III game engine only can handle 5 evolutions per Pokemon.
Do you understand, xD?

Anyway, the project is looking good!
The work you guys do is amazing!
I hope this get finished soon, and maybe I'll get inspired to hack again :P

Bigdog
July 26th, 2009, 10:33 AM
I said before the theory came out ( like several months ago), I experimented with a Normal type evolution of Eevee which was just added for in order to have the Grass, Ice, Psychic ,and Dark evos of Eevee. Now when the patch gets released, I can just focus upon adding my 100 concept Pokemon to the game, including the aformentioned Normal type evo that would be the default evolution if a stone or other method of evolution was not done .

Kyouya
July 26th, 2009, 10:36 AM
why is everyone so bothered from eevee?
he can evolve to espeon and umbreon and leafeon with moon,sun and leaf stone and to glaceon with maybe other item or happiness...
this thing shouldn't disturb people you know....
I thought they were trying to input sinnoh evoultion methods and having eevee evolve to glacion and leafeon by item would be pointless with sinnoh methods

daigonite
July 26th, 2009, 12:20 PM
I think it could be possible to implement that, with some extreme scripting and ASM however. Mainly ASM. Which isn't exactly... easy for most people.

thethethethe
July 26th, 2009, 12:33 PM
Today I bring you an even greater news: almost all new evolution methods inserted! :D


Why are people discussing evolutions? If people would just stop being lazy and flick through the thread, you'd see HackMew already implemented the Sinnoh evolutions.

Dragonmaster91
July 26th, 2009, 02:36 PM
What I did to solve that problem before this theory came about was to make a normal evolution of Eevee for the two new evolutions and possibly Espeon and Umbreon. This is gonig to be a difficult task , but in the long run it will help GBA hacking and possibly reinnovate it. The hacks that use Sinnoh pokemon and after the fact now will in the future be able to utilize all 493 or more if the person likes. In fact I can't wait 'till the patch gets done because I would like to utilize maybe the 493 now available so I don't have to overwrite Generation 3 and possibly more because my first hack idea currently is being worked upon, concept art wise.

Good luck with the patch,Dragonmaster91!
Hate to bring your hopes down, but I have become much less of a figure in this. Until recently, I never cared about hex. Does that mean I have no clue what to do? No, I know some of the basics.

Also, learning this kind of from the shiny hack thing (which I still don't get), say "654323" was the new offset that you wanted data repointed to, wouldn't you have to do this:
08 23 43 65

If so, then I understand repointing. If not, I really do not have a clue...

On top of that, I am busy with a current hack...

I need to ask HackMew's permission to do something in XSE...

Edit: Hack on hold, I'm working on this again.

hi sir tomato my password is syvniti
July 26th, 2009, 03:36 PM
Hate to bring your hopes down, but I have become much less of a figure in this. Until recently, I never cared about hex. Does that mean I have no clue what to do? No, I know some of the basics.

Also, learning this kind of from the shiny hack thing (which I still don't get), say "654323" was the new offset that you wanted data repointed to, wouldn't you have to do this:
08 23 43 65

If so, then I understand repointing. If not, I really do not have a clue...

On top of that, I am busy with a current hack...

I need to ask HackMew's permission to do something in XSE...
That's nearly correct.
The rom is storred at 0x8000000
Which means we add 0x8000000 and our offset.
After that, the bytes are storred in reversed order
So it'd be 23 43 65 08...

Dragonmaster91
July 26th, 2009, 04:33 PM
That's nearly correct.
The rom is storred at 0x8000000
Which means we add 0x8000000 and our offset.
After that, the bytes are storred in reversed order
So it'd be 23 43 65 08...
I just learned that when I was observing the shiny hack thing... lol...

Alright, I dun get it...

I'm going to finish the first beta of my hack.

874521
July 26th, 2009, 09:42 PM
So when you wanted to insert a pokemon sprite into the 65535 pokemon, you can actually insert?
Does it need to repoint, and how to repoint?

Dragonmaster91
July 26th, 2009, 10:21 PM
So when you wanted to insert a pokemon sprite into the 65535 pokemon, you can actually insert?
Does it need to repoint, and how to repoint?
Yeah, it needs a repoint, you see, it is a table of pointers. That is the part I don't get, and I need help understanding.

The question:
How do you repoint pointers? I mean like, extend it... not repoint, that is obvious...

What I mean is, how do you extend the sprite data? There is no more room for pointers...

slawter666
July 29th, 2009, 06:55 AM
Hows the breaking of the pokedex limit coming along, Hackmew?

hi sir tomato my password is syvniti
July 29th, 2009, 07:05 AM
Hackmew would you share what ever info you own on the pokedex, very fast? I'd like to take a look.

Blaziquaza
August 1st, 2009, 09:51 PM
Hackmew,I'd like to take a look as well.
Oh,yeah,what 'bout the video of the Bad Egg?(Points to Youtube)

ΡλЯλđΘЖ
August 6th, 2009, 01:28 PM
This project looks like its going along really well! :)
Has anyone made significant progress with the PokeDex or cries?

Dragonmaster91
August 7th, 2009, 07:18 PM
Oh,yeah,what 'bout the video of the Bad Egg?(Points to Youtube)
Who, me? About that... I had issues recording it, so I gave up on it. I'll update that real quick...

Blaziquaza
August 8th, 2009, 03:11 PM
Who, me? About that... I had issues recording it, so I gave up on it. I'll update that real quick...
Awww..............I was hoping to see it!Oh well.

Germaniac
August 8th, 2009, 04:52 PM
Wow!!!, it's make me can add all 493 pokemon
Very very thanks

slawter666
August 13th, 2009, 06:03 AM
I know that all the evolution methods have been put in but are form changes going to be implemented i.e burmy's form change, rotoms, cherrim's etc

Late
August 13th, 2009, 08:41 AM
I hope I can use all Sinnoh pokémon soon. I don't like replacing and there's too small amount of those pokémon between Celebi and Treecko. I'm not so good at hacking so I have to wait for tutorials.

yoni159
August 20th, 2009, 10:03 AM
I wonder, is it possible to make sure it can show 250 as default and 493 only at national?

874521
August 20th, 2009, 10:12 PM
I hope I can use all Sinnoh pokémon soon. I don't like replacing and there's too small amount of those pokémon between Celebi and Treecko. I'm not so good at hacking so I have to wait for tutorials.

Me too, I'm not good at hacking so I'll wait for tutorials, too. I hope that the National Dex can be edited into 493 pokemon and I hope that I can add new attacks because when I downloaded the Extended Pkmn Amplifier, there are 1A something like that.

Blaziquaza
August 22nd, 2009, 12:54 AM
Actually,I think we're forgetting one thing:
Pokemon that might freeze/crash the ROM.

Dragonmaster91
August 26th, 2009, 07:14 AM
Actually,I think we're forgetting one thing:
Pokemon that might freeze/crash the ROM.
Yes, those only need data, the lack of data causes them to freeze the game. I experimented with a script, some of those pokemon can really **** (mess) some stuff. I caught one, put it in the PC, and the boxes were changing colors. I thought it was kind of cool, and weird.

Blaziquaza
August 27th, 2009, 11:35 PM
Yes, those only need data, the lack of data causes them to freeze the game. I experimented with a script, some of those pokemon can really **** (mess) some stuff. I caught one, put it in the PC, and the boxes were changing colors. I thought it was kind of cool, and weird.
Do you mean that you've actually already made more Pokemon slots?!?!

Wichu
August 28th, 2009, 02:58 AM
Yeah, I've already inserted all the D/P Pokémon (so that's 107 extra slots already; I didn't use slots #252-#276 or #412-#439).
As far as I know, the freezing problem is only in R/S anyway.

Anyway, there's still a few things I can do. First, add all the D/P dex entries. That shouldn't be too hard. Second, add all the new evolutions. I'd rather do that once I get hold of HackMew's additions. Third, add the cries. Possible, but I haven't got around to figuring out how they're stored yet. And fourth, add the footprints. I don't know where those are stored yet; I'll work on finding those later.

Blaziquaza
August 28th, 2009, 04:13 AM
Yeah, I've already inserted all the D/P Pokémon (so that's 107 extra slots already; I didn't use slots #252-#276 or #412-#439).
As far as I know, the freezing problem is only in R/S anyway.

Anyway, there's still a few things I can do. First, add all the D/P dex entries. That shouldn't be too hard. Second, add all the new evolutions. I'd rather do that once I get hold of HackMew's additions. Third, add the cries. Possible, but I haven't got around to figuring out how they're stored yet. And fourth, add the footprints. I don't know where those are stored yet; I'll work on finding those later.
Well,the only cry editor I know of is PokeCry.

xcv2009
August 29th, 2009, 02:16 PM
"Yes I caught my second pokemon! only 65533 left!" lol that would be funny though

primusprime22
August 30th, 2009, 06:05 AM
wow, with 65535 pokemon, you could make a pokemon and digimon game! (493 pokemon + 882 Digimon= 1375 mons') Even if you did do that, you would still have room for more!

slawter666
September 3rd, 2009, 08:55 AM
Is there any progress on the project?

onyx79
September 3rd, 2009, 10:03 AM
Is there any progress on the project?
yeah it seems that this project is kinda dead,can someone that is in this project tell us about the progress has been made\if he decided to quit or something?

Wichu
September 4th, 2009, 05:19 AM
Well, I still haven't heard from HackMew whether she finished ASM hacking the Pokédex yet... And to be honest, I haven't really been doing much either. So it's not dead, but rather indefinitely put on hold :\

Dragonmaster91
September 4th, 2009, 07:06 AM
Yes, and I don't even know all this stuff. I only posted the idea. I would try and help, but I would more than likely ruin everything.

Bigdog
September 4th, 2009, 09:21 AM
Yeah, I've already inserted all the D/P Pokémon (so that's 107 extra slots already; I didn't use slots #252-#276 or #412-#439).
As far as I know, the freezing problem is only in R/S anyway.

Anyway, there's still a few things I can do. First, add all the D/P dex entries. That shouldn't be too hard. Second, add all the new evolutions. I'd rather do that once I get hold of HackMew's additions. Third, add the cries. Possible, but I haven't got around to figuring out how they're stored yet. And fourth, add the footprints. I don't know where those are stored yet; I'll work on finding those later.


Can you make 100-200 extra slots besides the Sinnoh Pokemon for if someone wanted to put in their own fakemon ? Because I know that people like me would find that pretty useful because we would not have to write over the Sinnoh but rather be able to add 100 new fakemon. Besides that little issue , I like this project.

Skully367
September 4th, 2009, 12:06 PM
Um...If you've been reading this thread the aim is to find a way to use a many of the 6 grand slots left, trust me, they're be more than enough if this works.

Wiimeiser
September 4th, 2009, 11:58 PM
I have a few Fakemon ideas if anyone's interested.

Bigdog
September 5th, 2009, 06:35 PM
Um...If you've been reading this thread the aim is to find a way to use a many of the 6 grand slots left, trust me, they're be more than enough if this works.

I am currently creating the art and sprites for my rom hack, which heavily depends on whether this comes into fruition or not . When this does happen ,my game will be able to start in production.

slawter666
September 12th, 2009, 09:59 AM
Any news from HackMew? and any idea's on roughly how long this project will take. like many others I am excited about this project. But i will wait until it is finished, however long that takes.

Slawter666

hoebeke
September 19th, 2009, 04:17 PM
You guys are super duper.

I want to put every pokemon in my game PLUS more, I really hope you finish this!

Mister Flogers
September 24th, 2009, 10:19 PM
no i'll jsut and the newer generations

ΡλЯλđΘЖ
October 3rd, 2009, 06:17 AM
Come on people! Any progress yet?

siper x
October 3rd, 2009, 03:58 PM
i think this is going to be helpful so please
start progress again!

Team Rocket's Raichu
October 8th, 2009, 05:53 PM
Nice project, I just had a funny idea for a hack that this could make. A Pokemon Hack where the Pokemon are Yu-gi-oh monsters.

I wish I could help, but I'm not that good at hacking sadly enough. :(

onyx79
November 3rd, 2009, 07:04 AM
sorry for buping but is that project is still going on?,seriously this is the best project ever since this is the first project that lets you to get lots of pokemons

Juan
November 19th, 2009, 02:46 PM
The Main Project


[CENTER] In the third and fourth generation, they used FFFF to determine the amount of pokemon they CAN make.


In the third generation, they used 386 pokemon, allowing for 65149 glitch pokemon to exist. 25 are the "Unknown" remnants, and one is hex 0000, which looks like all the others above hex 019C. There also are no hybrids, like in the fourth generation. Some of them crash your game as well. Also, if you add 109 pokemon, you could also have all the 4th gen pokemon. Hex 19C is the bad egg. It is named "-".

In the fourth generation, same hex FFFF, but 493 occupied slots, no "unknown" remnants. so 493 converted into hex is 01ED. Allowing 64545 Glitch pokemon. 64545? yes, the other 495 are hybrids.


If you can insert more Pokémon, the maximum is 0x3FFF (16383)
The Pokemon Advance games, consider values above 0x4000 variables.
Then, any value above 0x4000 is read as variable, and will use the value stored in it.

EDIT:
Forget what I said, you can store values above 0x4000 in the variables. :nervous:

Vapper3
January 21st, 2010, 08:54 PM
Thread's been inactive for a couple of months now...
I hope something comes of this soon...

I read the entire thread and this is amazing...
I've been looking for a way to add pokemon without overwriting old ones, and this is what I stumbled on.

Spherical Ice
January 21st, 2010, 11:38 PM
Thread's been inactive for a couple of months now...

...so don't post in it. :D

/closed