Welcome to the PokéCommunity!

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

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

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

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

M/O: Often acts out to get attention, but recently has changed that. Has been studying up on hacking information and hopes to participate in more advanced hacking discussion.╠══End of File══╣
Awaiting user input...

I did something that really bad.But made all Chinese can hack Pokemon, too.If you guys hate me, I totally understand,but cannot do anything but force to keep everything.
If there must be someone to undertake all spit and curse, it must be me.

M/O: Often acts out to get attention, but recently has changed that. Has been studying up on hacking information and hopes to participate in more advanced hacking discussion.╠══End of File══╣
Awaiting user input...

I did something that really bad.But made all Chinese can hack Pokemon, too.If you guys hate me, I totally understand,but cannot do anything but force to keep everything.
If there must be someone to undertake all spit and curse, it must be me.

M/O: Often acts out to get attention, but recently has changed that. Has been studying up on hacking information and hopes to participate in more advanced hacking discussion.╠══End of File══╣
Awaiting user input...

Oh, wow!! Thank you SO much! I was just about to post a question in the Script Help Thread about special2, and found you explained it here! I've spent a couple hours or so today decoding the special2 used in the legendary bird scripts, 0xB4.

I've also got a question about that special2, but, before I get on to that, here's what I know; maybe this is something you'd be interested in for the tutorial, I dunno. Here's, for example, the Zapdos script in full:

Side note: Oddly enough, even though flag 0x2BF is set, that's not Zapdos's number in AdvanceMap; Zapdos's number is 5D. However, it seems that 5D is a preset flag in FireRed (like the flag that make all the non-Rocket NPCs of Saffron City hidden until you beat Giovanni, at which point the flag is cleared). There's a command in the map script to check and see if flag 0x2BF has been set; if it has, then it won't clear 5D. As long as 2BF has not been set, the map script will do clearflag 0x5D, which lets Zapdos be visible.

These are the conclusions I can draw from the above:

special2 0x800D 0xB4
compare 0x800D...
• 0x1; if true then set the flag to make the Pokémon vanish and hide the sprite
• 0x4; if true then the sprite is hidden and the Pokémon flies away, but the flag isn't set
• 0x5; if true then the same as 0x4
• if none are true, then the flag is set and that's the end.

The reason I included some of the above stuff ("setflag 0x807" through "clearflag 0x807") is because, I assume, those flags are used to check and see if you fainted while battling the Zapdos, because it's set immediately before the battle starts and yet is cleared immediately after the battle ends. This is pretty much confirmed in the map script of the Power Plant:

So, along with the conclusions I already had above, we can add one more:

special2 0x800D 0xB4
compare 0x800D...
• 0x1; if true then set the flag to make the Pokémon vanish and hide the sprite
• 0x4; if true then the sprite is hidden and the Pokémon flies away, but the flag isn't set (so you can rebattle the Pokémon?)
• 0x5; if true then the same as 0x4
• if none are true, then the flag is set to hide the Pokémon and that's apparently the end.
if you faint, so that flag 0x807 isn't cleared...
• 0x7; if it's 0x5 (in other words, "not exactly equal to" 0x7), then the Pokémon is apparently hidden.

Sorry for the tl;dr it took to reach that conclusion. But it never hurts to show your work.

The reason I'm throwing all this at you is because, for one thing, you're the first person so far to actually start to address what a special2 is, rather than just throw one into a tutorial in the middle of something else without talking about what it is and how it works. I'm trying to decode the script above to create another script that makes it impossible to progress unless you beat--don't catch, but beat--a Pokémon.

I've decoded as much as I can of special2 0xB4, so I thought I'd present my research to someone who probably knows more about the command than I do. :D This same special2 is used with the legendary trio, Mewtwo, Lugia, Ho-Oh, Deoxys, and Snorlax, at the very least. (And those scripts use the "setflag/clearflag 0x807" trick too, which confuses me; if 0x807 is set and that means you can't go back to battle the Pokémon you were fighting when it was set, wouldn't that mean you can't ever battle any of the other legendaries, too...?)

Any insight into how this command behaves would be useful and appreciated, and I hope I've presented some useful information and not just wasted you time with all this.

__________________

This one is my hack.

This one is the hack I part-time map for.I got an Illumise?
Pretty awesome.
Glad I grabbed an egg I didn't recognize.

Oh, wow!! Thank you SO much! I was just about to post a question in the Script Help Thread about special2, and found you explained it here! I've spent a couple hours or so today decoding the special2 used in the legendary bird scripts, 0xB4.

I've also got a question about that special2, but, before I get on to that, here's what I know; maybe this is something you'd be interested in for the tutorial, I dunno. Here's, for example, the Zapdos script in full:

Side note: Oddly enough, even though flag 0x2BF is set, that's not Zapdos's number in AdvanceMap; Zapdos's number is 5D. However, it seems that 5D is a preset flag in FireRed (like the flag that make all the non-Rocket NPCs of Saffron City hidden until you beat Giovanni, at which point the flag is cleared). There's a command in the map script to check and see if flag 0x2BF has been set; if it has, then it won't clear 5D. As long as 2BF has not been set, the map script will do clearflag 0x5D, which lets Zapdos be visible.

These are the conclusions I can draw from the above:

special2 0x800D 0xB4
compare 0x800D...
• 0x1; if true then set the flag to make the Pokémon vanish and hide the sprite
• 0x4; if true then the sprite is hidden and the Pokémon flies away, but the flag isn't set
• 0x5; if true then the same as 0x4
• if none are true, then the flag is set and that's the end.

The reason I included some of the above stuff ("setflag 0x807" through "clearflag 0x807") is because, I assume, those flags are used to check and see if you fainted while battling the Zapdos, because it's set immediately before the battle starts and yet is cleared immediately after the battle ends. This is pretty much confirmed in the map script of the Power Plant:

So, along with the conclusions I already had above, we can add one more:

special2 0x800D 0xB4
compare 0x800D...
• 0x1; if true then set the flag to make the Pokémon vanish and hide the sprite
• 0x4; if true then the sprite is hidden and the Pokémon flies away, but the flag isn't set (so you can rebattle the Pokémon?)
• 0x5; if true then the same as 0x4
• if none are true, then the flag is set to hide the Pokémon and that's apparently the end.
if you faint, so that flag 0x807 isn't cleared...
• 0x7; if it's 0x5 (in other words, "not exactly equal to" 0x7), then the Pokémon is apparently hidden.

Sorry for the tl;dr it took to reach that conclusion. But it never hurts to show your work.

The reason I'm throwing all this at you is because, for one thing, you're the first person so far to actually start to address what a special2 is, rather than just throw one into a tutorial in the middle of something else without talking about what it is and how it works. I'm trying to decode the script above to create another script that makes it impossible to progress unless you beat--don't catch, but beat--a Pokémon.

I've decoded as much as I can of special2 0xB4, so I thought I'd present my research to someone who probably knows more about the command than I do. :D This same special2 is used with the legendary trio, Mewtwo, Lugia, Ho-Oh, Deoxys, and Snorlax, at the very least. (And those scripts use the "setflag/clearflag 0x807" trick too, which confuses me; if 0x807 is set and that means you can't go back to battle the Pokémon you were fighting when it was set, wouldn't that mean you can't ever battle any of the other legendaries, too...?)

Any insight into how this command behaves would be useful and appreciated, and I hope I've presented some useful information and not just wasted you time with all this.

WOW, quite a lengthy post you got there, but yeah, special 2 does not really make anything in the game happen, but make a variable set to a number depending on what happens in the game... or what has already happened.

M/O: Often acts out to get attention, but recently has changed that. Has been studying up on hacking information and hopes to participate in more advanced hacking discussion.╠══End of File══╣
Awaiting user input...

WOW, quite a lengthy post you got there, but yeah, special 2 does not really make anything in the game happen, but make a variable set to a number depending on what happens in the game... or what has already happened.

So I figured, yeah. Knowing that it does that, though, and knowing how to use that to get it to do what you want, are two different matters... Have you looked into 0xB4, by any chance, or so far am I the only one who's been crazy enough to study it in-depth? I'm hoping to figure out how exactly to get it to work--like, do you have to do setwildbattle beforehand and then use special 0x138, or can a simple wildbattle be used and still be functional with 0xB4? And what exactly do all those numbers mean--does a value of 0x1 mean that you caught the Pokémon; what do 0x4 and 0x5 do, maybe one means "ran from battle" and the other means "made the Pokémon faint"; and what is 0x7 and why is the Pokémon hidden if you faint in battle and get any result other than 0x7?

There's very few ROM hackers out there who I think might've done enough research into XSE to figure out this kind of stuff, one of whom is you, another of which is HackMew, and in the guide that comes with XSE HackMew doesn't discuss special2. There isn't nearly enough info about special2 available, is there...?

I can tell you've figured out how to use various special2s to create a daycare script. Do you know if the behaviors of any other special2s have been determined yet?

__________________

This one is my hack.

This one is the hack I part-time map for.I got an Illumise?
Pretty awesome.
Glad I grabbed an egg I didn't recognize.

Help

The PokéCommunity

Meta

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