Jump to content

Recommended Posts

Posted

Hey everyone,

Surprised this post hasn't been made already; am I the only one interested in doing this? I looked into some of the previous architecture and based on a post @ABZB made years ago on Pokemon Platinum there was a line of code in Platinum's arm9.bin they discovered that contained the banlist in the DS game:

Quote

96 00 97 00 F9 00 FA 00 FB 00 7E 01 7F 01 80 01 81 01 82 01 E3 01 E4 01 E7 01 E9 01 EA 01 EB 01 EC 01 ED 01

Now, I did not see this line of code in the BDSP games - and why would I? It's a completely different game that is 2 system generations apart. *However*, I grew very suspicious that things from BDSP were stolen from D/P/Pt when I discovered a lot of the stuff taken from diamond/pearl was claimed to have been copied over to BDSP (for example in the Glitch community they discovered that the game designers copied the memory reading from gen 4 dp, allowing a very similar exploit to the so-called "Void Glitch" in gen 4).

Anyway, after dumping the romfs of Brilliant Diamond, I found a very similar segment of this code in the the resources.assets file under the romfs directory. There are exactly 6 instances of the Hex values: "7E 01 7F 01 80" (I think it actually extends beyond those values). I would try replacing the relevant binaries with "00 00..." but I also don't think I have the hardware to actually test to see if this works. On top of that, there's like a bunch of other instances of "7E 01 7F 01 80" scattered around the romfs as a 1-of instance (666 total occurences in the romfs) so I might just be throwing a needle in a haystack.

If anyone else finds anything or makes any progress, please let us know! (FYI I will/have been severely limiting my online presence due to some drama/abuse from another/separate online community/individual but I will be watching closely for any new updates to this thread).

Posted (edited)

 My name has been spoken and behold! I am summoned to this plane.

The other possibility you should check for is that they switched to the method they used in the later games, where they have a string of bytes where each bit corresponds to a single Pokemon in internal index order, and each bit is a 1 if the corresponding Pokemon is banned.

 

For example, in USUM, the string to search for is:

 

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C0 00 00 00 00 00 00 00 00 00 00 00 00 0E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C0 07 00 00 00 00 00 00 00 00 00 00 00 98 7E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 D8 03 00 00 00 00 00 00 00 F0 03 00 00 00 00 00 00 00 E0 01 87

 

It's easy to eyeball where each gen ends, since the banned Pokemon are at the end of each generation (e.g. 0xC0 is Mewtwo and Mew, then the later 0x0E is Lugia, Ho-oh, and Celebi) - so the string for BDSP (assuming they truncated it and didn't bother banning the Pokemon they didn't include) should end at 0x98 7E, except that the highest bit of the last byte is actually banning Victini, so just search for:

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C0 00 00 00 00 00 00 00 00 00 00 00 00 0E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C0 07 00 00 00 00 00 00 00 00 00 00 00 98

(since I'm not sure if they included banning Victini and beyond, I'm not sure what the bytes after that  0x98 look like, but that string should be long enough to narrow it down to exactly what you want).

 

Generally speaking the games have had an instance of the ban-string per battle mode (even if they're all identical banlists) - for example, in USUM there's copies for each of Battle Royale, the Battle Tree modes, and the Battle Agency.


I suspect that they switched to the new method, because the way the gen IV code handled things like (some) alternate Formes is somewhat different than the way it is handled in later gens, so if they're using the newer stuff for that they probably copied over that bit too

Edited by ABZB
  • 3 years later...
Posted

Hey... so I'm back from my 3-4 year slumber to put out another contribution to the ProjectPokemon community, and this one I think a small group of BDSP gamers would appreciate: I did it! I FINALLY figured out how to remove the BDSP Banlist, and it took a *very long time*. (At least, I THINK I removed it. I am just incredibly excited bc I believe this is the mod that does it). Here's a visual/proof that this method works, and then I'll share what I did.

BDSP_Banlist_Removal.thumb.png.2d66b001a24455b9e323d0f3ec7c8ede.png

As you can see, Jirachi and Dialga are legal in my Battle Team. (I almost had a panic attack when I saw this because I actually could not believe I figured it out). OKAY, now that that's out of the way, here's the process:

I used a program called "Imposter's Ordeal". Now, IDK what is allowed on this forum and what isn't. I know sharing certain things like rom's or how to hack your switch/emulation might not be allowed, so I'm going to refrain from talking about those particular things. And I'm not even sure if Imposter's Ordeal is something that is allowed here, so if it isn't, then please let me know and we can figure out another solution. I only say this because Imposter's Ordeal seems like an incredible resource that I'm surprised nobody has ever talked about on PP lol.

But anyway, you're going to want to open that program and use it on your BDSP game. Open "Global Metadata Editor" and the first thing you're going to see is "Assembly-CSharp.dll", "<PrivateImplementationDetails>", and then a bunch of random letters and numbers in the third column. Scroll all the way down until you see the line of code that reads "4DBCB2BACE8C9D7E1BA528261F46...". Under the fourth column, you're going to see a bunch of binary/hex editor data. Turn all of those into "00 00 00..." while making sure you don't alter the size of the code/amount of binary data. (If you're wondering how I figured out it was this specific line of code, the answer is 'yes' lol).

Close out of that window once you're done, hit "Export and Exit", and wah lah! You've created a mod that you can load onto your game and find that (at the very least) Jirachi and Dialga will show up as in the above image.

 

Hope this information helps! I'm just so excited that I actually figured this out, I wanted to share it with the rest of the team, and hopefully this enhances your play experience, and for anyone out there who wants to create your own romhack of BDSP (as I know people like to do such of that), I hope this gives you a nice little added feature). I'm sure this line of code can be edited to fit your needs, for example if you wanted to ban other pokemon. Not sure why you'd want to do that.

Last but not least, I want to give credit where credit is due. Want to thank @ABZB for helping out with the start of this project. Want to thank @Robie777 for contributing the post-game save file that I used (which also is the save that you see in the image above). That save can be found here:

Want to thank Nifyr on github for hosting the Imposter's Ordeal randomizer that really helped organize the structure of the data in a way that PowerGREP or HxD couldn't. Want to thank the mods/big names out there (theSlayer, Kaphotics, etc.) who have made this rom/save editing community fantastic. After all, I'm going to look forward to using PKHeX to make some OP mon's on BDSP for funsies now lol. Want to thank Nintendo/ILCA/The Pokemon Company and the Unity engine for making possible what is probably one of my top 5 Pokemon games now. And finally, I want to thank all those who supported me during my long hiatus. Like I said, I left social media/content creation because of that toxic cyberbully from another gaming community (seems that person is now banished from multiple other groups, so I feel a lot more safe now). Will I ever come back? Idk yet, but I definitely enjoyed being part of ProjectPokemon.

Anyway, let me know if you have any questions, or if there are any issues with the game. Please be aware that as I went through some of the metadata, it is VERY possible that the wrong modification could ruin your save (you have been warned). So if you're going to continue playing w/ Imposter's Ordeal and/or venture further into the binary data of BDSP, I would recommend backing up your save file and if things go wrong, just remove/undo the mod and restore your save.

 

Cheers!

-IS2L

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...