Closed xTheSolutionNOT closed 6 months ago
Hi,
I can take a look at it, but I can't promise much as I'm unfamiliar with this game. If it's only a couple of values that aren't loading, maybe it won't be that difficult. For the data that does not display correctly like player name and level, can you tell me what they are supposed to be in the savegames you provided? That would be the best way to start.
First of all thanks for even considering doing this. Not everyone would do this.
For the saves, below you find a recent PS4 save. So in this zip there is the 3DS save and for PS4 v1 (the PS4 save I already uploaded) and v2 (my most recent save), I included screenshots for every save. But here's a small overview.
3DS save info:
Name: Testin Money: 9696299 Level: 99 XP: 25165822
PS4 v1 save info:
Name: Sophia Money: 99999999 Level: 1 XP: 0 (11 xp needed to level up)
PS4 v2 save info:
Name: Sophia Money: 8710099 Level: 23 XP: unknown (14382 xp needed to level up)
For the PS4 saves, a friend told me this "Items start at 0x58"
MHST - Hunter's Savedata Tool.zip
I made a few adjustments. It now reads/writes name and money properly for PS4 savegames. There was also an annoying glitch where if you loaded a savegame without refreshing the page, the items would stack. I added a function that clears the item list when loading a savegame. To run the editor locally, just open the .htm
file in the root folder.
I also made the codebase more modular, so that you can easily make changes. You will need two programs; HxD to examine the savegame files, and VS Code to edit the program's code. The only two files in the codebase you need to change are main.js
and itemlist.js
. I declared the offsets as global variables to make it easier, see lines 40-46 in main.js
. To edit the code, just right-click the folder and click "Open with Code". When you make changes to the code, just save and then refresh the editor from your browser and it will apply the changes.
To find out the level offset, just open the savegame in HxD and do a search with Ctrl + F, select Integer Number, and set search direction to All. If you search 23 in the PS4 v2 savegame, you only get 20 hits, which is very manageable. Instead of changing each one then checking, you can try something like, change each hit to a sequence (set first hit to 1, second hit to 2, etc) and see which hit was the actual level. There is a lot of repetition involved in reverse engineering, that's just kind of the nature of the beast.
For items, there were too many in the other savegame so I used PS4 v1. I added the unrecognized items to the item list, you can see the comments in the file. Those you will also have to figure out with trial and error by changing the numbers around. Once you figure out what they are, you can just change the item strings in itemlist.js
to reflect the item. From the UI, Address is the offset, and Item ID is the value stored on the offset (in hexadecimal). You can use Windows calculator in programming mode to be able to convert hex <-> dec numbers easily.
First of all thanks, this is more than I expected. I really appreciate it. It does seem to work which is great. My buddy explored my saves too and made a spreadsheet:
If you could look at this it contains offsets for various things including xp. if you maybe would add the xp to the editor it would be perfect. it's ok if not. I'll try your advise with the items btw.
I hope I can help you sometime somehow.
Yeah it's not much trouble, the editor's code is pretty easy to understand. I'll add these tomorrow.
Just so I'm understanding this spreadsheet correctly, column 1 is the first release of the game, and column 2 is the second release? And these are all for PS4? And you can have up to 31 characters stored on the same save?
Just so I'm understanding this spreadsheet correctly, column 1 is the first release of the game, and column 2 is the second release? And these are all for PS4? And you can have up to 31 characters stored on the same save?
Yes to everything :)
MHST - Hunter's Savedata Tool.zip
Give that a try, it should be able to read/write all the stats for MHS2 PS4 savegames. If it fails to write HP or any stats at all, I added some basic troubleshooting steps in the comments, you just have to change a couple offsets... See lines 40-50 in main.js
.
If you send me a savegame with multiple characters, I can add a character selector/dropdown menu. Just make sure each character has a different name and send me their stats as well.
Also, are money and items global, or specific to each character? For example, if you have 10,000z for one character, do you also have 10,000z for every other character in that savegame, and the items are the same across characters too?
You mean Monster Hunter Stories 1 right? cause editor says 2. And for the character slots, there was a wrong information from my part. there are NO multiple characters on one save, there is only one character per save slot. however you can create multiple save slots with a different character each. the save slot does not matter for the editor. i tried different save slots and each worked fine (tried 5 different slots).
Anyway it reads xp just fine for all 5 slots i tested, i edited xp in all slots and each character loaded just fine. I also edited the stats, but they do reset to ingame max.
The only thing I can imagine now is to edit the monsters and maybe to swap them ( for the swapping part however I'm not sure, and you'd need the offset I guess). so a drop-down menu would be useful. below you can find the stats for the monster i have with me. it's from the v2 save, you could use that. that's all from my side, you sir where really helpful and i hope i can help you someday somehow. i really appreciate your work.
Ah you're right, it's MHS 1, I changed it. This build should allow you to edit all the monster stats:
MHST - Hunter's Savedata Tool.zip
Also added max HP for the player. If you find an inconsistency, all the global variables and offsets are declared on lines 92-120 on main.js
, so easy fix. Should all be correct though... the only one I wasn't 100% sure about was the monster exp. You can try 0xF0 if it's not right, or just try different offsets in that general range.
I had fun with this editor, I've been used to writing editors as WinForms apps, so this was an interesting change. I almost want to host the PS4 version on Git, but I think that would be disrespectful to the original author. It's a well-written editor, he did a good job.
Here is a final build:
MHST - Hunter's Savedata Tool.zip
Fixed a few bugs like the monster objects not clearing when loading another savegame. It should work very well now. This has been a fun project, by the way... enjoy.
Hey sir,
I wanted to ask if you would be willing to look into this editor here: https://github.com/quackerd/mhsec-g . You may know the game Monster Hunter Stories 1 and 2. This editor I linked is for the first game. The first game was released on iOS/Android and Nintendo 3DS in 2017, the second one was released on Steam. However, these games getting a release on PS4/PC and I believe Switch on June 14. I'm in the lucky position to have the PS4 version of those games already.
There are save editors for both games, and I tried them. The editor for MHS2 works fine with PS4 saves (I assume because the decrypted PS4 save is the same as the PC one), but the one for MHS 1 I linked above does not. And here is why I ask you, I think with a bit of your "magic" it should be possible to edit the MHS1 save with the editor from above. Because the PS4 save does NOT load on the editor, BUT there is a second editor (this one https://jesus10101.github.io/mhst/ ) , the second editor loads the PS4 save partially, which means it loads only items, but not other stuff like player name, level etc. Editing the items with the second editor works perfectly fine though and the PS4 version loads the edited save. Based on this, it seems there are similarities.
I tried to contact the guys from the first editor (the one I want to work with) but he wasn't active for years on github/gbatemp. He mentioned to ask him to add features or do it yourself (which is my problem, I tried to figure it out for two weeks now but have no clue where to start) And the second guy doesn't seem to be active also. I know it's not your editor and I'm sorry that I made this request. I know it's inappropriate and you can delete/close this request without an answer if you want. But I thought it may be worth asking you.
Last but not least, here is a zip file containing a Nintendo 3DS save and a PS4 save for MHS1.
Monster.Hunter.Stories1.save.example.zip