Jump to content
evandixon

Sky Editor: The first save editor for Pokemon Mystery Dungeon Explorers of Sky

Recommended Posts

-2 billion missions? lol

Anyway nice update!

So, while I was testing the new feature I noticed, that the name of my Blaziken is displayed wrong

[8][177]aziken

[8] should be B

[177] should be l

Share this post


Link to post
Share on other sites

I need to do more research on the Player Name. The character encoding was a bit, odd. (Especially when different characters have the same values).

Anyway, here's an untested modification. Replace Resources/English/PlayerChars.txt with this and see if it works for you.

[Edit] Apparently the 1st character's value is 1 less than any of the others. The attached file will only work if B (capitol) is the first character. I'll release an update later.

[Edit again]

Updated Player Name viewing. First character might still display incorrectly, which can be fixed by changing Resources/English/PlayerChars.txt. I'll fix that after doing more research.

PlayerChars..txt

PlayerChars..txt

Edited by evandixon

Share this post


Link to post
Share on other sites

It turns out the Pokémon data (including the names), at least the quicksave in-dungeon party data, is compressed by simply removing all unused bits. For instance if there are two variables, one that uses 3 bits and one that uses 4, they're squashed into a single byte. Because of this all the bytes of the names (and other data) are shifted. After un-shifting them you'll get normal characters that you can interpret using the table file. So there's no proprietary character encoding voodoo going on. :)

I haven't looked at it much yet, but here's a quick method I wrote to do the unshifting. It's not optimized but it should be good enough for a proof of concept: http://pastebin.com/aCSaTmh2

To use, load the save file (or the relevant part of it at least) into a Stream, set it to the position of the name and call decode() with the right parameters. Here are some that work:

0x8413: startbit 3, bits 80 (starter's name)

0x8457: startbit 5, bits 80 (partner's name)

I'll probably look into this more later. If you want to see for yourself, the routine that decompresses the quicksave party data starts at 0x02059BA0 in RAM. The actual call to the decompression routine to decompress a name is at 0x02059DCC.

Share this post


Link to post
Share on other sites

Thanks!

I can't now, but I'll have plenty of time tomorrow to plug this into my program to give everyone more power!

I could probably use this to edit more things. Eh, I'll find out tomorrow.

[Edit]

Plugged the function in, and it works like a charm! I'll clean up the code and hopefully release it. I might try to reverse it and add Player Name editing.

Edited by evandixon

Share this post


Link to post
Share on other sites

Updated to v2.0, adding editing of held money and items in the Special Episode

Here's the status of everything else:

-Team Member 1 Name: Editable, in GUI. I'll do a little more research to be able to edit the Player Name and Partner Name soon.

-Stored items: Made a function to get all the item ID's. Haven't plugged it into the GUI yet. I'll need more time to read item amounts.

-Quicksave: There's 3 main sections of the save file. 1st two contain real data, the 3rd contains quicksave data. I noted the differences after resuming a quicksave, and these are it:

1EA28: 7: actual quicksave; 8: resumed quicksave

1EAF0 on: 0's for non-resumed quicksave

It'd be nice for someone to observe if it's any different for anyone else. Note that my program does not fix the quicksave checksum yet.

[Edit]

Oh, I forgot to add the credits... I'll get that next release. At least it's on the front post.

Share this post


Link to post
Share on other sites

Researched Team Members a bit more. I think the 1st one starts at 83D9 and is 68 bytes and 2 bits long. I'll keep at it and hopefully be able to read it soon.

[update]

Not quite what's up there... Though it is if you only pay attention to the names. But the Pokémon ID is in different relative locations in the 1st two characters, with very different starting bits.

Edited by evandixon

Share this post


Link to post
Share on other sites

I'll fix that later today. I probably didn't read enough bits.

[Edit] Updated. Maximum of 16,580,607, which is decreased to 9,999,999 once you withdraw.

Edited by evandixon

Share this post


Link to post
Share on other sites

Thanks for making this project evandixon. :) (version atm 2.2)

I noticed some bugs in your program. I don't know if it is just my save, but...

1. Every time I load my save, it doesn't clear the item amount in Stored Items. It adds 666 items each time.

2. My team name is EnigmaStar (I tried to come up with something.), but in the program it cuts off the 'r'.

3. It says my stored money is 1029, but it's 66565.

I think it's my save, so I uploaded it for you.

pmd-eos..sav

pmd-eos..sav

Share this post


Link to post
Share on other sites
Thanks for making this project evandixon. :) (version atm 2.2)

I noticed some bugs in your program. I don't know if it is just my save, but...

1. Every time I load my save, it doesn't clear the item amount in Stored Items. It adds 666 items each time.

2. My team name is EnigmaStar (I tried to come up with something.), but in the program it cuts off the 'r'.

3. It says my stored money is 1029, but it's 66565.

I think it's my save, so I uploaded it for you.

Updated to v2.3, fixing these problems.

Share this post


Link to post
Share on other sites

Sky Editor is now on Codeplex! This means that the source code is available to developers for reference, and for contributions if anyone is willing to contribute.

Share this post


Link to post
Share on other sites
Finished researching for the day. If any non developer wants to help out, send me your save files so I can list what values are for what character in the team name. Start new games with specific 10 character sets perhaps, then immediately quicksave.

Grovyle91: Thank you for your help in figuring out the over complicated item structure. I'll spend the next few days developing it and hopefully it will be ready soon.

Everyone else: What other features do you want? It will give me something to look for later.

I wouldn't mind a feature where we can edit the character stats. (ie Lvl, health, moves, etc.)

EDIT (22nd of July, 2013 @ 6:32 pm): Whenever I try to save what I had changed, Sky Editor crashes. It's not corrupting my save file however.

Share this post


Link to post
Share on other sites

EDIT (22nd of July, 2013 @ 6:32 pm): Whenever I try to save what I had changed, Sky Editor crashes. It's not corrupting my save file however.

What change did you make, and for what game (sky or time/darkness)?

As for your feature suggestion, I can start researching that Wednesday. Pokemon ID is inconsistent while Nickname isn't so I'm probably overlooking something. Maybe those stats will be easier.

Share this post


Link to post
Share on other sites

Thanks for sharing the code Evandixon. As I'm not very familiar with VB i had to recreate most functionality from scratch but your work saved me a ton of reverse engineering the game's save format. I did work out the way pokémon data is stored and created another editor: link. I hope it will be useful.

Share this post


Link to post
Share on other sites

Updated to version 2.6

Explorers of Sky: Thanks to matix2267, Pokémon (name and level) can now be viewed

Explorers of Time/Darkness: Held items can be viewed, not edited.

Share this post


Link to post
Share on other sites

Old reply, sorry about that. Anyway, I am using Explorers of Sky. I tried just a second ago on version marked as V2.6, I tried increasing my held money amount and it saved alright, but a pop up saying that "Sky Editor encountered a problem and needed to close" popped up.

Share this post


Link to post
Share on other sites

It only lets you edit the team name and view held items for Time/Darkness.

That reminds me, just a little more testing and I can release an update that allows item editing for T/D.

[Edit]

Here's a beta version with the new features.

https://skyeditor.codeplex.com/releases/view/116384

Big thanks to matix2267 for his easily managed code for interacting with bits. His source code was translated and added to Sky Editor, and the held item code was slightly modified for use in Time/Darkness.

Edited by evandixon

Share this post


Link to post
Share on other sites

Working on Red/Blue Rescue Team compatibility.

[Edit]

Turns out that the game doesn't have as good error handling as Explorers of Time/Darkness/Sky.

I tried playing as a Taillow (because birds are awesome) and this happened as soon as I was about to pose after accepting the Magnemite mission.

Pokemon Mystery Dungeon - Blue Rescue Team_02_10880.png

So, item editing? Yes.

Changing the team name to Big Edit? Yes.

Pokémon and move editing? Yes.

Playing the story as a different Pokémon? No.

Edited by evandixon

Share this post


Link to post
Share on other sites

Is it possible to edit the flag that allows you to deposit your partner for Explorers of Sky? It gets set after you beat the game, allowing you to either go solo or just not use your partner.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...