![]() |
Castform Forms
This is for Fire Red currently
I have been trying to figure this out for a while now of the main way castform changes forms , and if they can be expanded for other things like Day/Night and sandstorms. Or even for a pokemon to use such an ability -------------------------------------------------------------------------- here are his stats in Fire red from YAPE http://i.imagehost.org/0683/castform_stats.png and if you notice it has forecast, so i tried it on a mudkip here he is in battle http://www.pokecommunity.com/picture.php?albumid=5052&pictureid=37844 and i use rain dance http://www.pokecommunity.com/picture.php?albumid=5052&pictureid=37845 nothing happens http://www.pokecommunity.com/picture.php?albumid=5052&pictureid=37846 so obviously just changing an ability does not make the change and on unLZ i have the form spritesheet 1388 http://www.pokecommunity.com/picture.php?albumid=5052&pictureid=37841 1389 http://www.pokecommunity.com/picture.php?albumid=5052&pictureid=37843 1390 http://www.pokecommunity.com/picture.php?albumid=5052&pictureid=37842 i then decided to change the backsprite and got this http://i.imagehost.org/0187/iwentmessingaroundwiththeforms.png did that to see what would happen i am hoping anyone who think this is worth some time expands on this a little |
I never thought much about this, but it is interesting.
I did a little looking myself. I find it interesting that both 1389 and 1391 in unLZ even exist at all. If you look at the other POKEMON, none of them have any extra data between front and back sprites, yet CASTFORM does. I wonder if those two extra pieces are somehow telling the ROM which form to put CASTFORM in? Something else that might help, if we knew where in memory CASTFORM resided during battle, we may be able to play with values and forcefully change him whenever we wanted. Then we may know how the computer does it. |
Quote:
Those files are (once uncompressed) 0x80 bytes each. There are 4 forms. Every form uses a different palette of 16 colours. Every colour uses two bytes. 16 times 0x2 = 0x20 (32). 4 times 0x20 = 0x80. Blah. |
You should have done more research, I suppose. Directly taken from Bulbapedia:
Quote:
|
Quote:
|
Quote:
But to do so you'll have to take a look at the attacks which influence the weather; like Sunny Day and Rain Dance. Those attacks probably check for.. something. And if the game finds that something, it triggers the transformation. Could someone see what happens to Castform when using one of those attacks AFTER you've edit Castform's sprite to be the default size. I have no tools here; I should be studying anyway. |
It'd reference non-existant data and you'd get a screwed up sprite(man it's hard to not curse ={)
I don't have the tools, nor do I want to check. XD But doesn't each pokemon have their own ID? So the you'd set a break point for in battle and you'd check for a register equaling to the id. Then you can make every pokemon have the id and good stuff like that., etc. |
I went and changed me and my rival's starters to Castform in a FireRed rom after changing Castform's sprite to just normal form, and used rain dance. Then the Castforms did the transformation, but instead of going into rain form, they just disapeared! And when I tried changing Mudkip's sprite to one with 4 recolored Mudkips, changed ability to Forecast, and changed moves to Rain Dance, Hail, Sunny Day and Tackle. I made him my starter, and everything was going fine 'till when I tried to send out Mr. Edited Mudkip into battle, the game froze! I can't post pics 'cos I haven't made enough posts yet. :(
|
I've been thinking the same. a ground type for sandstorm, a flying type for cloudy, an electric type for thunderstorm... if anything comes up, let me know. i'm sorry i can't help, i'm a pathetic asm hacker. as in, i cant do it.
|
Quote:
|
I've recently been working on how abilities work, and I came across the reason why that ability only works on Castform.
Abilities are checked a bit on a "as need goes" format, meaning there is no single "ability routine". They are spread out across the code, sometime grouping together (like volt absorb and water absorb), other times being repeated in several locations (hustle is present on the "attack up" routine and in the "accuracy down" routine). Forecast, however, works like this: The chekc for the forecast byte is done at 0x0801A182, then proceeding to call a specific function to check which form will be used. They are numbered 0-4. I'm still looking how to expand that number, but for now, this is all we got. This piece of code is located at 0x08019DAC, and is a long and boring checklist for possible outcomes. the first being "pokemon not a castform", at bold: Code:
To make this work with any pokemon, simply fill with zeros the area from 08019DC0 to 08019DC5. In this way, any pokemon with the forecast ability can turn into a new form. I have tested this with a bulbasaur that had the deoxys forms, and it works as long as the palette has an entry for each picture, in the same format as Castform's. |
Quote:
|
i tried this, and it worked...except the pokemon turned into just a silhouete of it's rain form
|
That's because Castform's and Deoxys' alternate forms use slots below Chimeco's, along with the EGG, bad EGG, and Decamarks. Like the 25 old Unown.
|
Quote:
The extra forms don't take up any slots. |
what would be interesting is if you could make Eevee do something similar.
Water terrain (while surfing or something)--->Vaporeon Hail---->Glaceon Sunny->Flareon Forests-> Leafeon Thunderstorm->Jolteon Cave or Night->Umbreon |
i set ability to FORECAST on my pokemon(its 252 but called Test1) with YAPE
When i battled Something like this hapened ________________________________ Quote:
The ability forecast might do nothing. It's probadly the data structure of CASTFORM. |
Quote:
Third, does anyone know why when I changed pikachu to crab pikachu in the rain it was just a silhoutte? |
Quote:
My idea: Give Castform an Updated Weather Ball,New forms,and at least an evolution. That would be awesome. |
How does the game know to change the type if the extra forms dont take up a slot?
|
Special Hex-code that the Programmers have figured out. I don't understand it,but they must have used a special script for it to transform.
Quote:
|
so, it IS possible to add new forms?
|
Maybe,Maybe not. I am unsure about the whole thing,and i don't know how to do it. But it would be possible to hack the Castform Code if someone could figure it out someday.
|
it looks like we were getting somewhere though :)
|
Quote:
|
Quote:
|
| All times are GMT -8. The time now is 8:48 AM. |
![]()
© 2002 - 2018 The PokéCommunity™, pokecommunity.com.
Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, The Pokémon Company or The Pokémon Company International. We just love Pokémon.
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2016 The PokéCommunity / PokéCommunity.com.
PokéCommunity™ is a trademark of The PokéCommunity. All rights reserved. Sponsor advertisements do not imply our endorsement of that product or service. User generated content remains the property of its creator.
Acknowledgements
Use of PokéCommunity Assets
vB Optimise by DragonByte Technologies Ltd © 2023.