ROM Hack PSSE - Pokemon Shuffle Save Editor

  • Thread starter Thread starter SciresM
  • Start date Start date
  • Views Views 374,580
  • Replies Replies 1,267
  • Likes Likes 40
@supercarotte
So it's possible to edit any Pokemon to be above max level..

Oh man.. I don't see that going well in the future.

For the save editor purposes, I really suggest it should be only the Pokemon can legally be over level 10

Thanks for the info

Yeah, they likely hardcoded a 5-levels limit instead of adding a database with specific limits for each pokemon entry.

Too bad I was too excited to post this and didn't foresee the competition abuse possibilities, I wouldn't have revealed it if I had... :unsure:

(I've edited out the sequence to make it harder for someone to reproduce)
 
Last edited by supercarotte,
  • Like
Reactions: Madridi
Yeah, they likely hardcoded a 5-levels limit instead of adding a database with specific limits for each pokemon entry.

Too bad I was too excited to post this and didn't foresee the competition abuse possibilities, I wouldn't have revealed it if I had... :unsure:

(I've edited out the sequence to make it harder for someone to reproduce)
I'm sure almost all those trolls don't know anything about hex editing. As long as it's not in the save editor it should be fine.

Still, it's intriguing..
 
I was somewhat out of the loop, but these new finds sounds nice - and intriguing... I wasn't researching the new update, besides activating all the unreleased Pokémon at once, just for curiosity.

Certainly there's a better hex sequence to fill these areas, but for now this will do the trick.

0x00E7-0X016F
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

0x0546-0X05CF
C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

0x05E6-0x066F
C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF


Probably you already know, but besides the 48 previous Mega Evolutions, the 1.3.0 update included six more: Costume Sableye, Shiny Rayquaza, Shiny Gyarados, Winking Audino, Winking Glalie and Smiling Gengar. However, these six new Megas have some different things.

- Only three of them have proper Mega icons: Shiny Rayquaza, Shiny Gyarados and Winking Glalie. The other three, when Mega-Evolved, use the same icon from their "normal" Mega-Evolutions.
- All these six share the Mega Stones with their "normal" counterparts. But I don't know if they also share the Mega Speed-Ups.
- Since the update 1.3.3, their "Mega Stone slot" were "removed" from the game, and so, these Pokémon cannot Mega-Evolve anymore. Probably this will be corrected in the future.

And I really hope no one with bad intentions use the Max Level info in order to screw up online competitions. Just tested here with a spare save, and looking at a whole horde of Pokémon at abnormal levels is worrying :(
 
  • Like
Reactions: Madridi
And I really hope no one with bad intentions use the Max Level info in order to screw up online competitions. Just tested here with a spare save, and looking at a whole horde of Pokémon at abnormal levels is worrying :(
I guess you know the answer to that after seeing what happened with Ditto. Hence why I think not including it in the save editor would be the best way to play this out. Troll kiddies out there can easily use the editor to do whatever they want, but very few people (if any) will do the research and hex edit to do this.

Thanks for the post. :)
 
I managed to get the red gyrados/winking/other pikas by accident by just using the updated save editor after catching the angry pikachu. I didn't do anything else other than give hearts/items and when I checked back in I had them all at level 1. Dunno if this'll help in removing them from the editor at all
 
0jFFBer.png

uVxmd9i.png
It seems that 0xB6FB stores the active mission card (00, 01, 02 or 03). The higher value that the game thinks is valid is 0x32 (card number 50) but all cards above 03 seems to be placeholders for now (they seem to contain each event from the first 3). If you set it to 00 or higher than 50th card, the game thinks no card is selected.

The following offsets (0xB6FC-B5FF for now) store the completed missions for each card, sorted by card number (and with endianness like always). Each card has got 10 bits that store 1 mission each (0 = ongoing / 1 = completed), which means cards can have up to 10 different missions in them.

Code:
I'm not good at explaining things so here's how it looks in the savefile : 07 FC F3 0F

Read it backwards : 0F F3 FC 07

Translate into binary :
0000 1111 1111 0011 1111 1100 0000 0111
00 -> first 2 bytes of card 4 (unused for now)
  00 1111 1111 -> completed card 3 (8 missions)
               0011 1111 11 -> completed card 2 (idem)
                           00 0000 0111 -> completed card 1 (3 missions)

Pasting "07 FC F3 0F" to these offsets will mark every mission as completed ("mission completed" stamp, star count & completed cards count are updated accordingly). Doing this will however prevent you from getting the rewards associated with the cards, as you only obtain them at the end of a battle, when you earn enough stars to reach the amount needed for said reward.
If you are stuck on certain missions, it's easy to determine which bits to set and get the correct sequence (I used Win10's calculator to do it), but be carefull not to skip stages that way if you wanted the corresponding reward. For example, those of you want are interested in the Lucarite may want to paste "00 F8 03 00" to unlock all missions of card 2 except the first one (while keeping cards 1 & 3 empty).
The opposite is true though : you're able to get a reward multiple times if you un-complete the missions through hex-editing.

Anyway, I don't think there is there is an interest for PSSE to be able to edit those yet, as there are no reward that you can't give yourself with it instead^^.
 
Last edited by supercarotte,
JeaoewL.png


This is a tool that can edit exported Pokemon Shuffle savedata.bin savegames.

WARNING: If you re-import a save, remember to delete the secure value (if possible, else ensure the secval in save matches the one in NAND) before doing so or your save may be detected as corrupted.

Download: here.

French Download: here. (Thanks, Asia81!)

Code's available on my Github.

Hi there, can anyone tell me if this editor keep working with the last version of Poke Shuffle?
I need just a few pokemons.

Thanks
 
Hi there, can anyone tell me if this editor keep working with the last version of Poke Shuffle?
I need just a few pokemons.

Thanks
It still works but it's outdated & some of the newer pokemon forms (like angry pikachu) are missing, as well as the new 1.3 items.
Nic0lette is working on a fork right now that is more up-to-date, you can find it here : https://github.com/nic0lette/PSSE/releases
 
  • Like
Reactions: tomx86 and aos10
So I believe that the data files inside the editor are from the game itself(!), which is potentially cool and potentially scary.

The cool part is that a bunch of stuff might "just work" if I drop the updated files in there, but the scary thing is that the file format could have changed/could have new values and that would need to be read and parsed out as well.

I just dumped the files from the game tonight and will try to go through them a bit to see what I can find. If things go well I might throw together an experimental build if anyone would like to try it out and tell me what's broken XD (And it will be broken, I'm certain)

EDIT: Okay, I extracted everything and verified I didn't do anything stupid (like somehow extracting encrypted files) by listening to the music (which I can share as mp3s if anyone wants them?) but the data files I thought might be there aren't. *bummer*

I'll have to try some more things tomorrow =(
 
Last edited by nic0lette,
So I believe that the data files inside the editor are from the game itself(!), which is potentially cool and potentially scary.

The cool part is that a bunch of stuff might "just work" if I drop the updated files in there, but the scary thing is that the file format could have changed/could have new values and that would need to be read and parsed out as well.

I just dumped the files from the game tonight and will try to go through them a bit to see what I can find. If things go well I might throw together an experimental build if anyone would like to try it out and tell me what's broken XD (And it will be broken, I'm certain)

EDIT: Okay, I extracted everything and verified I didn't do anything stupid (like somehow extracting encrypted files) by listening to the music (which I can share as mp3s if anyone wants them?) but the data files I thought might be there aren't. *bummer*

I'll have to try some more things tomorrow =(
I dumped the game .cxi and extracted it to get the game files too, but all I got are shaders files, musics & files without an extension. I guess the info we're searching is in those files but I have no idea how to extract them.

Idk if @SciresM is still around, maybe he could help.
 
So I believe that the data files inside the editor are from the game itself(!), which is potentially cool and potentially scary.

The cool part is that a bunch of stuff might "just work" if I drop the updated files in there, but the scary thing is that the file format could have changed/could have new values and that would need to be read and parsed out as well.

I just dumped the files from the game tonight and will try to go through them a bit to see what I can find. If things go well I might throw together an experimental build if anyone would like to try it out and tell me what's broken XD (And it will be broken, I'm certain)

EDIT: Okay, I extracted everything and verified I didn't do anything stupid (like somehow extracting encrypted files) by listening to the music (which I can share as mp3s if anyone wants them?) but the data files I thought might be there aren't. *bummer*

I'll have to try some more things tomorrow =(

PSSE was designed to pull data from game files so that users could (theoretically) edit new stages by dumping their update data and putting the relevant files in the same folder as PSSE as updates came out with no need for me to do anything.

In practice I believe literally zero people took advantage of this feature.

Edit: I am happy to do update work, but I currently don't have access to a 3DS or shuffle's update data, so...
 
Last edited by SciresM,
  • Like
Reactions: hentei009
PSSE was designed to pull data from game files so that users could (theoretically) edit new stages by dumping their update data and putting the relevant files in the same folder as PSSE as updates came out with no need for me to do anything.

In practice I believe literally zero people took advantage of this feature.

Edit: I am happy to do update work, but I currently don't have access to a 3DS or shuffle's update data, so...

That's what I'm trying to do : extract the newer versions of all .bin files inside the "ressources" folder from my game. I extracted the game's .cxi with braindump & decrypted it with Asia81's tool but now I have a bunch of extensionless files with Hex names that I don't know what to do with :
i9mPXcD.png
Could you please explain how you proceed to get your .bin files at the beginning of PSSE ?
 
Last edited by supercarotte,
PSSE was designed to pull data from game files so that users could (theoretically) edit new stages by dumping their update data and putting the relevant files in the same folder as PSSE as updates came out with no need for me to do anything.

In practice I believe literally zero people took advantage of this feature.

Edit: I am happy to do update work, but I currently don't have access to a 3DS or shuffle's update data, so...

Which would be easier? If you tell me how to update the data files then I can do that, or if you'd like me to send you the CXI I can do that.

@nic0lette
Are you ok if I did a french translation of your updated PSSE like I did?

Of course. It's all GPL stuff so please feel free to change what you'd like =)

Sorry that it isn't very easy to do at the moment -- I'm working on some things and will try to keep i18n in mind this time. =)

EDIT: @SciresM -- Ah! Someone pointed me to your data extractor tool so I'll try that tonight. Sorry, I just had no idea that even existed.
 
Last edited by nic0lette,
Okay, so I should have found how the savefile handles exp values. The offset starts at 0x3421 and potentially goes up to 0x4140 (0x4141 is where scores for each stages are stored), but right now I think it's zygarde that comes last, at offset 0x359B.

The structure seems weird, but it's just that the 4 weakest bits of 0x3241 (not 0x3421, it was a typo) are useless then each pokemon has 3 bytes for itself, which means in an hex editor everything is off by 1 digit (once read in endianness). For example :
Code:
"20 03 00 20 03 00 20 03 00 80 0C 00 80 3E 00 00 86 01 00 4A 01 00 68 01 00" at the beginning of these offsets means :
2(0) 03 00 - 0 -> 32 = 50xp for bulbasaur (1 Exp+)
2- 03 00 -0 -> 32 = 50xp for ivysaur
2- 03 00 -0 -> 32 = 50xp for venusaur
8- 0C 00 -0 -> C8 = 200xp for charmander (1 Exp++)
8- 3E 00 -0  -> 3E8 = 1000xp for charmander (1 Exp+++)
0- 86 01 -0 -> 1860 = 6240xp for charizard (max. for 60BP)
0- 4A 01 -0 -> 14A0 = 5280xp for squirtle (max. for 40BP)
0- 68 01 -0 -> 1680 = 5760xp for wartortle (max. for 50BP)

This means that maximum xp for each pokemon is FF FF FF = 16 777 215xp. When you give a pokemon that much xp, the game freaks out ands prints the last 6 digits of the difference between the amount of xp needed to get to the next level & its current amount (as a positive number of course). When you get some xp or use a Raise Level, your pokemon jumps to Max. level (10-15 depending how much RML were used) :
cppRo87.png

Here, my Ivysaur would need 60xp to reach lvl 2, hence the 777 155xp "still needed".
The amount of XP needed for each level depends on the BP of the pokemon. If found a table that recaps all of them here : https://docs.google.com/spreadsheets/d/1-H_IIw_7nMWTChmAT20Dv6iA2eSk8QgBOYI9jnixrfE/edit#gid=0
This means we should finally be able to fix PSSE's "All lvl 10" patch once we figure out how to get an updated version of the pokemon listing (the "kind-of-dex-like-but-with-forms" order).

Also, I've investigated a bit those "Skill+" items that "fills the pokemon's skill gauge". It's pretty glitchy and doesn't seem to have any effect in-battle yet, but here's what I observed :
(be aware that it's not yet fully implemented and will likely be in a future update. Changes might occur or not, so read it only if you are sure you want to)

Using them on any pokemon makes this screen appear :
1nC9dOT.png

This is the amount of "skill" given by an Hyper Skill+, Normal gives an invisible amount & super about a third of this amount.
There seem to be 5 different levels (yellow dots), although when you fill the progress bar (5 Hyper + 5 Normal items) all 5 of them are activated in quick succesion, maxxing your pokemon's skill gauge :
31uYeum.png

3QYte1O.png
CxHj6Tl.png

The bottom screens says my Blastoise's skill has gained a level and will infllict more damage (the pokemon's direct damages are still the same) and then that it has reached max level. Congrats !
 
Last edited by supercarotte,

Site & Scene News

Popular threads in this forum