SmolJoltik Posted Wednesday at 11:25 PM Posted Wednesday at 11:25 PM (edited) I'm looking to remove the form restrictions for the Battle Frontier in Platinum, specifically I'm looking to make it so that Rotom, Shaymin and Giratina do not revert to their base form when entered into the Battle Frontier. I'm editing a hack by taking legendaries and mythicals and scaling them down to normal Pokémon stats. I've already used hex editing to remove the species restrictions, and both Giratina and Shaymin can enter now along others. But even after reading the post by ABZB on this topic, those three still revert. Giratina's Griseous Orb is removed, as well. I've taken a look at the rom in DSPRE, and it looks like I can edit the scripting for the battle facilies, but I don't know what to do there. I'm not too sure, but it seems like the code there may include lines that check for form and held item, and then change them back. If anyone can help me with this, from solving this issue to at least directing me to where I can learn how to use DSPRE, I would be very thankful. Edited 12 hours ago by SmolJoltik Updating title to show that I have found a solution to my own problem
Poke J Posted Thursday at 12:03 AM Posted Thursday at 12:03 AM 29 minutes ago, SmolJoltik said: I'm looking to remove the form restrictions for the Battle Frontier in Platinum, specifically I'm looking to make it so that Rotom, Shaymin and Giratina do not revert to their base form when entered into the Battle Frontier. I'm editing a hack by taking legendaries and mythicals and scaling them down to normal Pokémon stats. I've already used hex editing to remove the species restrictions, and both Giratina and Shaymin can enter now along others. But even after reading the post by ABZB on this topic, those three still revert. Giratina's Griseous Orb is removed, as well. I've taken a look at the rom in DSPRE, and it looks like I can edit the scripting for the battle facilies, but I don't know what to do there. I'm not too sure, but it seems like the code there may include lines that check for form and held item, and then change them back. If anyone can help me with this, from solving this issue to at least directing me to where I can learn how to use DSPRE, I would be very thankful. I don’t make ROM hacks and I don’t know the actual answer to your question, but in Platinum there is a programming oversight that does allow for the Rotom forms to be used in the battle frontier. In double battles if Rotom is in the fourth party slot the game does not do the form check allowing it to be permitted. It isn’t an exact answer, but it could help lead you to your desired results. I see people ask questions like this on occasion here and they don’t usually get answered so this is probably the best answer you’re going to get on this forum.
SmolJoltik Posted 12 hours ago Author Posted 12 hours ago I would like to give an update, I found the solution! After looking up the glitch, I noticed the fourth slot bug affected Platinum but NOT HeartGold and SoulSilver. I decided to dig into the files for BOTH games to compare. I found my way to the right function by checking the script and functions, and which text messages they referenced (i.e. the dialog that lets you choose Pokémon, and the one that proceeds to the Battle Room). I found it in Platinum first. When I dug into SS, I noticed there appeared to be TWO functions for the Battle Tower. Also, one of the commands was named DayCareSanitizeMon in SS, unlike in Platinum where is had not been named. After comparing the ones for Platinum and SS, the Platinum file only had the one function that contained a certain segment of code 3 times, while the SoulSilver file for the Battle Tower had two functions, one with 3 segments and one with 4. I did a test to see if I was right about these segments being the code that checks selected Pokémon. I copied a segement and pasted it in Platinum's script file, fitting it to the 4th slot (value of 3). When I entered the Battle Tower in Doubles Format with Giratina Origin as the 4th pick, it reverted! So that little segment of code makes the game check a Pokémon. Basically, they made one function in Platinum for both Doubles and Singles, which only checks the first 3 Pokémon entered, and in HGSS, they made two separate functions that each check for 4 and 3 Pokémon. Therefore, I tried booting up the game after having REMOVED all instances of this code in the function, and voila, any alternate form entered no longer reverts. This applies to Giratina, Rotom and Shaymin. I then quickly found the same type of function for the other 3 facilties (this doesn't apply to the Factory because you rent Pokémon). Now you can unban all species AND forms in the Battle Frontier in Platinum. In order to make these changes yourself, open up your Platinum rom in DS Pokémon Rom Editor (I used the Reloaded version). I will show you which script file for each facility, which function handles checking party Pokémon, and the code you can delete to remove the check. I don't think this unbans legendaries and mythicals, you can look at the post I mentioned in the linked thread above for that. -------------------------- Battle Tower: Script 367 Doubles and Singles: Function 90 CMD_477 53 0 32780 CMD_798 32780 32780 CompareVarValue 32780 255 JumpIf EQUAL Function#111 CMD_477 53 1 32780 CMD_798 32780 32780 CompareVarValue 32780 255 JumpIf EQUAL Function#111 CMD_477 53 2 32780 CMD_798 32780 32780 CompareVarValue 32780 255 JumpIf EQUAL Function#111 Multi battles: Function 114 CMD_477 53 0 32780 CMD_798 32780 32780 CompareVarValue 32780 255 JumpIf EQUAL Function#111 CMD_477 53 1 32780 CMD_798 32780 32780 CompareVarValue 32780 255 JumpIf EQUAL Function#111 Battle Hall: Script 377 Function 79 CMD_798 16386 32780 CompareVarValue 32780 255 JumpIf EQUAL Function#86 CMD_798 16389 32780 CompareVarValue 32780 255 JumpIf EQUAL Function#86 Battle Castle: Script 378 Function 29 CMD_798 16386 32780 CompareVarValue 32780 255 JumpIf EQUAL Function#33 CMD_798 16389 32780 CompareVarValue 32780 255 JumpIf EQUAL Function#33 CMD_798 16390 32780 CompareVarValue 32780 255 JumpIf EQUAL Function#33 Battle Arcade: Script 379 Function 29 (appears to be identical to Battle Castle) CMD_798 16386 32780 CompareVarValue 32780 255 JumpIf EQUAL Function#33 CMD_798 16389 32780 CompareVarValue 32780 255 JumpIf EQUAL Function#33 CMD_798 16390 32780 CompareVarValue 32780 255 JumpIf EQUAL Function#33 Just open the rom in DSPRE, go to these script files, find the functions and delete the parts I list. Then save the scripts, save the rom and you're done. The function numbers might be different if the rom is altered, such as if the Following Platinum patch is applied. There is a small detail you should know about this: you can enter Origin Giratina in any of the facilties, but after entering the Castle or Arcade, your held items are removed. Giratina will enter as Origin, but will revert to Altered before the turn starts because it no longer holds the Griseous Orb. It will revert to Altered Stats, but will have Origin's ability (Levitate by default). Doesn't seem to break anything, and it will return to normal Origin when you leave.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now