Advertiser Content



Sunnyshore City
Seen August 4th, 2019
Posted January 16th, 2018
63 posts
4.3 Years
3D checks if you only have one pokémon. if you have more, then you can do a double battle, so it returns 0
I've actually figured out that special 0x3D is used without special 2 and actually sets the memory byte 0x020370B4, which is 4 bytes before the 0x800X variables.


Random Uruguayan User

Montevideo (Uruguay)
Seen 5 Hours Ago
Posted 1 Day Ago
2,055 posts
11 Years
045 checks for all viable pokemon. result stored in given variable
0FF checks pokemon in 0x8004's number and places it in given variable
By "given variable", does it mean that they're used with tile scripts or that I must provide them with a var inside the script?
If one of these can be used to check for a Pokmon's species and store its value on X Var, that'd be great.
Seen 6 Days Ago
Posted 2 Weeks Ago
15 posts
2.4 Years
I really hope that I won't get penalized for posting here...

I think I have what the use of two other specials are.
Special 0x129 activates the roaming legends. It uses variable 0x4031 to determine which will roam. I tested this out by activating the special, and "faking" a battle with the legend using the wildbattle command. The icon then showed up on the World Map, indicating where it was.

I think Special 0x175 is used to calculate the amount of money dropped when you whiteout. In the whiteout script, Special 0x175 is called, and immediately following is the "player dropped $[buffer1]s" message. You mentioned how the Special 0x175 buffers a calculated value, so it seems like this is a likely reason for it. I could be wrong, though, since the amount of money lost is based on level of Pokemon and number of badges, not status.
I know I am really late, but I want to edit the roaming legendaries to make them all roam. How would I go about doing that. i'm new to rom hacking, and I have been trying to teach myself because i can't find anything online or anyone to answer questions, but i can't seem to figure out this. I feel like once I know, it'll be easy and make sense. But so far, nothing.
Seen 1 Week Ago
Posted 2 Weeks Ago
38 posts
4 Years
Hey, i think what u are asking is easy to do...special 0x129 activates the roamers...but it uses var 0x4031 to determine which one...the way I'd make this work would be like this:

Make 3 separate scripts or even 1 maybe, you would have to check. The script would setvar 0x4031 0x1 and then call special 0x129 then end the script. The next script would setvar 0x4031 0x2 and then call special 0x129 then end. And the last script would setvar 0x4031 0x3 and call special 0x129 and then end it...i dont know if u could do all three in just one script, as i havent tested this out myself, but i will soon. Let us know what you've found, ill try it myself and post my findings if u havent...
Advertiser Content