Jump to content

Pokémon Battle Revolution save research thread


Tux

Recommended Posts

  • 4 months later...
  • 6 months later...
On 8/7/2019 at 8:15 PM, FullLifeGames said:

Well that wasn't my question since for these inputs I would need the TID and SID already for filling these offsets, but I did not have these values.

Oh well, fixed my issue in a different way and it might be helpful for others and research to explain this.

 

So my problem:
I want to have a compatible German save, however the saves are language locked, so most of the files you find are in English (the same problem can be probably found every over language).
 

So how do you tackle that?

What I did was to look into the decrypted save of a freshly generated German save file and an English one I found online.

After that I tried to change some lines in the English save to the German one, so that I might get the German property.

This gets me the following steps:



Apparently if you take a PBR Save file with any language, get the following tool for decompression: https://projectpokemon.org/home/forums/topic/36582-pok%C3%A9mon-battle-revolution-save-research-thread/page/2/?tab=comments#comment-219653

Decrypt the save and edit the following lines in a hex editor:

0x000380-0x00039F to: 80 00 00 00 01 00 00 00 40 72 05 75 D3 5B 08 00 00 42 00 65 00 6E 00 65 00 00 00 00 00 00 00 00

and 0x0003C1 to: 4D

Encrypt it and it changes the name to "Bene", the save timer value is changed and the language is German!

Yeah and that is my discovery here.
Some further investigation can be made, which values change what and what the language value is and what it is for other languages and et volà, you can change the lanuage of a save file!

I'm trying to change my name in this save file from Mae to rufioh but everytime I try, I just get an save data corrupted error when I reload the game. Any help?
I'm using someone else's save that has box access cos I don't have a DS anymore.

I'm using a PAL copy of the game, and I want to play in English or French

 

PbrSaveData

Edited by rufioh
added wrong version of the save
Link to comment
Share on other sites

On 12/6/2020 at 12:13 PM, MysticLunar said:

Please Help, I've done everything to try and decrypt my save and it won't just work and won't accept the decrypted file, also can not see any mon in storage and this is on an emulator. Also do not know how this one is working.

If you are trying to open the save to edit it, PKHeX will decrypt the save for you to edit and then encrypt in order to save the edits. But, if you're wanting a decrypted save for research purposes here is the save decrypted.

PbrSaveData Decrypt

  • Like 1
Link to comment
Share on other sites

  • 5 weeks later...
On 9/8/2017 at 9:47 AM, James123 said:

Awesome! Thank you so much for this, it helped a lot.

Anyway, I think I already found something pretty interesting. At first, I was just trying to edit my rental pass trainer's skin tone, but I accidentally stumbled across something neater than that. By editing 0x23895 (where my first/main rental pass is) from 06 to 07, I was able to change my trainer to Lucas from DP. His trainer class is considered "Young Boy A" in the game, although he has his own unique animations. Weirdly enough, his Battle Pass portrait is messed up; it zooms in on his legs rather than his face or full body!
I'll try more values to see if Dawn, the boss trainers, or alternate skin tones are available.

Edit: I have just tested out values 08, 09, 0A, 0B, and 0D. 08 let me play as Dawn, who is also called "Young Boy A". 09, 0A, 0B and 0D crashed the game upon loading Battle Passes.

Basically: 07 = Lucas, 08 = Dawn. 06 and under are all legal trainer classes.

I've also found out where the skin tone is determined. It is at offset 0x23A62. The default (A) skin tone is 0, but setting it to 1 will change it to B, the slightly darker one. Setting it to 2 will likely make it C. It was probably located here since the Japanese version didn't let you change skin tones, so they placed the setting in a near-inaccessible location.

Spoiler

Lucas battle pass.jpg

I've also been trying to search for where rental Pokemon are located, but haven't had any luck so far. Any help would be greatly appreciated!

I Checked my Decrypted Save in HxD and found that My Custom Passes and Friend Passes were actually above my Rental Passes so I just scrolled down from the top and came across the name of my Personal Trainer Card and found that the model id must be close like maybe 3 or 4 bytes to the right or so and they were, so after changing it to "08" I now have a working Dawn Trainer Pass, if anyone wants to edit their Custom Passes it should be Below your Save File then you should see your Pass Name "D�a�w�n������������ÿÿÿÿ+êÿ������ÿÿÿÿ�c�e� �m�e�e�t�i�n�g� �y�o�u�!" or something like this, the model data is the 3rd or 4th Dot or "�" after  somethin' like this "ÿÿÿÿ+êÿ" then once you change it to "07" or "08" it should be Dawn or Lucas. also thanks james and blackshark  for the decrypt/encrypt tool and info of the model ids. I've been looking for ways to pay as Dawn and now I finally can so thanks!

Spoiler

Screenshot (17).pngScreenshot (18).pngScreenshot (23).pngScreenshot (24).pngScreenshot (25).pngScreenshot (26).pngScreenshot (27).pngScreenshot (28).pngScreenshot (29).pngScreenshot (30).pngScreenshot (31).png

Link to comment
Share on other sites

  • 2 months later...

hi guys, I have a question and I hope you can help me, several years ago I deleted my save of pokemon soulsilver, but recently I realized that I had connected it with pbr, my question is if there is any way to extract the save of pokemon soulsilver from the save of pbr. or only the data of the pokemon is copied and nothing else? I already extracted my pokemon, but I wish I could extract all the data. Thank you very much in advance for your reply and sorry for my bad English.

Link to comment
Share on other sites

  • 2 weeks later...

Btw, forgot to post that 3y ago, cuz who in the world would need any of this except coupons, but well, who knows.

Offsets for 1st slot (pretty sure it's on same places for other, but too lazy to check). All profile records except "time played", seems I didn't found that.

(Probably there is more, since coupons and total battles uses at least 3 bytes, but seems searching of other wasn't that successful too)

 

Poke Coupons:
0x12861-12863

Total no. of battles:
0x1286A-1286B (1+2 byte)
0x12864 (3rd byte)

No. of Colosseum Battles:
0x12868-12869 (1+2 byte)
0x1286F (3rd byte)

No. of Free Battles:
0x1286C-1286E

No. of Gateway Colosseum clears:
0x12870

No. of Crystal Colosseum clears:
0x12874

No. of Neon Colosseum clears:
0x12875

No. of Waterfall Colosseum clears:
0x12876

No. of Main Street Colosseum clears:
0x12877

No. of Sunset Colosseum clears:
0x12878

No. of Courtyard Colosseum clears:
0x12879

No. of Magma Colosseum clears:
0x1287A

No. of Sunny Park Colosseum clears:
0x1287B

No. of Stargazer Colosseum clears:
0x1287F

 

Edited by Akunoko
  • Thanks 1
Link to comment
Share on other sites

  • 3 weeks later...

Sorry If I'm necroposting. @BlackShark The method of unlocking Box storage seems to only work for one of the four slots, namely, the first one. The game holds FOUR different trainers. I am trying to open the box for the fourth trainer.

 

Hello! I am looking to compare two pokemon battle revolution saves, so I can compare them with both PKHex and HexEdit. I am trying to find out where the information is stored for the game base of which ds game was used to transfer pokemon into the game.

I need:

1 save using a Pearl ds game transfer.
1 save using a Diamond ds game transfer.

They can contain any type of pokemon, even level 5 useless. It's just for research.

Thanks

Link to comment
Share on other sites

  • 2 months later...

Well, seems I finally found version offsets. Or I think so, because they changing Mysterial teams at least and I'm too stupid to find any other way to check it in-game.
 

1 - 0x128EF

2 - 0x827EF

3 - 0xF26EF

4 - 0x1625EF

Values: 0x04 for Diamond/Platinum/SoulSilver; 0x18 for Pearl/HeartGold

Can't actually guarantee it 0x18 for HG also, cuz lazy to lf for random save with that one, but since it for sure 0x04 for D/Pt/SS, I suppose we can trust it is.

 

@Aurorans On second page of this thread offsets for all slots, btw... Anyway PKHeX can be used for that, so no real reason to write IDs in hex data since long time ago.

Edited by Akunoko
Link to comment
Share on other sites

  • 11 months later...
On 8/1/2019 at 4:50 PM, FullLifeGames said:

So I'm wondering all this time, how I would get the TID and SID of my user profile.

All I get from PKHeX is the user profile name, but since there is no Pokémon, I cannot look at the Trainer TID and SID there and from debugging and looking at the values, I'm not sure, if the values are even extracted.

If you have a good way of getting the TID and SID, I would greatly appreciate your help, even if it's just the HeX value of where it is stored in my decrypted save file!

I don't know if someone still need this answer, but today I could solve the great mistery just setting the fields DisplaySID and DisplayTID, on PKHeX Block Data, to some IDs I took from another save file that already had it set. It was just a copy and paste of the same IDs and than the export of the SAV. It worked perfectly for me, solving both the storage and language problems. Hope it helps someone!

  • Amazed 1
Link to comment
Share on other sites

  • 9 months later...
  • 7 months later...

Not sure if anyone still wants to know, but changing the below offsets to all zeroes will clear all pokemon from the rental passes (save file 1 only) and allow you to add storage pokemon to said rental passes.

Save File 1

1st Rental Pass
0x23AE8 - 0x23AFB
0x23B74 - 0x23B87
0x23C00 - 0x23C13
0x23C8C - 0x23C9F
0x23D18 - 0x23D2B
0x23DA4 - 0x23DB7

2nd
0x241D4 - 0x241E7
0x24260 - 0x24273
0x242EC - 0x242FF
0x24378 - 0x2438B
0x24404 - 0x24417
0x24490 - 0x244A3

3rd
0x248C0 - 0x248D3
0x2494C - 0x2495F
0x249D8 - 0x249EB
0x24A64 - 0x24A77
0x24AF0 - 0x24B03
0x24B7C - 0x24B8F

4th
0x24FAC - 0x24FBF
0x25038 - 0x2504B
0x250C4 - 0x250D7
0x25150 - 0x25163
0x251DC - 0x251EF
0x25268 - 0x2527B

5th
0x25698 - 0x256AB
0x25724 - 0x25737
0x257B0 - 0x257C3
0x2583C - 0x2584F
0x258C8 - 0x258DB
0x25954 - 0x25967

6th
0x25D84 - 0x25D97
0x25E10 - 0x25E23
0x25E9C - 0x25EAF
0x25F28 - 0x25F3B
0x25FB4 - 0x25FC7
0x26040 - 0x26053

If you want the rental pokemon to look legit, just use PKHeX and set level and met level to 50, origin game and met location to none, ball to pokeball, and OT to PKTOPIA.

Maybe I'll find the offsets for save files 2, 3 and 4....if I have time and someone really really needs it....

Have fun

Edited by carsoncth
typo
Link to comment
Share on other sites

  • 1 month later...
On 11/26/2023 at 9:10 AM, carsoncth said:

Not sure if anyone still wants to know, but changing the below offsets to all zeroes will clear all pokemon from the rental passes (save file 1 only) and allow you to add storage pokemon to said rental passes.

Save File 1

1st Rental Pass
0x23AE8 - 0x23AFB
0x23B74 - 0x23B87
0x23C00 - 0x23C13
0x23C8C - 0x23C9F
0x23D18 - 0x23D2B
0x23DA4 - 0x23DB7

2nd
0x241D4 - 0x241E7
0x24260 - 0x24273
0x242EC - 0x242FF
0x24378 - 0x2438B
0x24404 - 0x24417
0x24490 - 0x244A3

3rd
0x248C0 - 0x248D3
0x2494C - 0x2495F
0x249D8 - 0x249EB
0x24A64 - 0x24A77
0x24AF0 - 0x24B03
0x24B7C - 0x24B8F

4th
0x24FAC - 0x24FBF
0x25038 - 0x2504B
0x250C4 - 0x250D7
0x25150 - 0x25163
0x251DC - 0x251EF
0x25268 - 0x2527B

5th
0x25698 - 0x256AB
0x25724 - 0x25737
0x257B0 - 0x257C3
0x2583C - 0x2584F
0x258C8 - 0x258DB
0x25954 - 0x25967

6th
0x25D84 - 0x25D97
0x25E10 - 0x25E23
0x25E9C - 0x25EAF
0x25F28 - 0x25F3B
0x25FB4 - 0x25FC7
0x26040 - 0x26053

If you want the rental pokemon to look legit, just use PKHeX and set level and met level to 50, origin game and met location to none, ball to pokeball, and OT to PKTOPIA.

Maybe I'll find the offsets for save files 2, 3 and 4....if I have time and someone really really needs it....

Have fun

this is very helpful thanks, have you found anymore offsets?

Link to comment
Share on other sites

  • 2 weeks later...
On 6/22/2022 at 8:51 AM, JAT Jr said:

I don't know if someone still need this answer, but today I could solve the great mistery just setting the fields DisplaySID and DisplayTID, on PKHeX Block Data, to some IDs I took from another save file that already had it set. It was just a copy and paste of the same IDs and than the export of the SAV. It worked perfectly for me, solving both the storage and language problems. Hope it helps someone!

how do you find these values, where can i find or use them

Link to comment
Share on other sites

  • 4 months later...
On 4/17/2018 at 5:26 PM, BlackShark said:

@SubSora you need to decrypt the save file first. I've written a little step-by-step guide for you and everyone who is running into this same problem.

For hex editing I would suggest using HxD https://mh-nexus.de/en/downloads.php?product=HxD but any other Hex Editor should work though.

 

First of all, always keep a backup of your save file!

  1. get pbrsavetool from my post above
  2. extract pbrsavetool.exe into the same directory where your PbrSaveData file is located
  3. run pbrsavetool
    1. a command line window will open asking you whether you want to decrypt or encrypt your save data
    2. put in d to decrypt
    3. this will create two new files in the same directory, PbrSaveData_decrypted_backup (this is not an actual backup file!) and PbrSaveData_decrypted_current
  4. open PbrSaveData_decrypted_current in your Hex Editor
  5. get your TID and SID and convert them into hexadecimal (windows calculator has a programmers mode which can help you to do that or just use google)
    1. example: my TID is 12345 so in hex it is 0x3039, my SID is 54321 which is 0xD431
  6. now navigate to the above mentioned offsets for the save slot you used
    1. how to do this depends on the programm you are using
    2. in HxD go to Search -> Goto..., in Hex Workshop go to Edit -> Goto...
    3. alternatively you could press Ctrl + G
    4. make sure it's set to hex and enter the offset you want to go to
  7. for the first slot go to offset 0x12867 and change the value at this location to the first byte of your TID (in my case it's 30)
  8. now go to offset 0x12860 and change it to the second byte of your TID (39 in my case)
  9. next is your SID, the first byte (D4) goes to offset 0x12866, the second one (31) goes to 0x12865
  10. save your changes by overwriting PbrSaveData_decrypted_current
  11. run pbrsavetool to re-encrypt your save file
    1. this time choose e to encrypt your file and fix all the checksums
    2. your original PbrSaveData file in this directory will be updated
    3. PbrSaveData_decrypted_backup and PbrSaveData_decrypted_current are not needed anymore and can be deleted

Hello @BlackShark and others,
I've been wanting to create pokemon in PKheX to be able to use in PBR on dolphin. I followed your steps and edited the offset values.
Loading my original PbrSaveData file (after encrypting) and trying to move about the boxes will give a fatal error.
I also created a pokemon, and I cannot check storage in PBR.

Undoubtably there was a error I made somewhere, but I followed your steps entirely.

Sorry the bump. I'm really not sure what to do (also completely unfamiliar in this territory)

Screenshot 2024-06-05 050605.png

Screenshot 2024-06-05 051024.png

Link to comment
Share on other sites

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...