Jump to content

PKMDS Save Editor (Gen V for now)


codemonkey85

Recommended Posts

  • Replies 107
  • Created
  • Last Reply

Top Posters In This Topic

I've never done this, I just wanted to make a beast team to do my run-through of heart gold. I apologize for my inexperience but what am I to do?

I also propose you can run your legit backup of your game on an emulator (to get a save, in case you don't have any hardware for save backing up),

and then use the program for your whatever needs.

Lastly, to get the pokemon back on your cart, you can use pokecheck or a gts server to send them to your retail cart.

I love being me.

BoxSlots.PNGBoxSlots2.PNG

By the way, the colors are just the beginning. There's planned functionality too, of course.

OH YEAH THE COLORS! COOOL!!

Link to comment
Share on other sites

Some minor additions:

  1. Hidden Power
  2. Pokerus
  3. Images for TMs/HMs and other previously missing items
  4. Box "grid" colors

Also, you can now click one of the box grids to select a box. Plus, when you change a box, the list focuses on the one you switched to, and frames it. Yay?

HiddenPower_Pokerus_TMPics_BoxGrids.PNG

Oh, plus... some degree of Mac OS compatibility:

Screen+Shot+2013-09-21+at+5.13.48+PM.png

Link to comment
Share on other sites

I think some of you might take some interest in the forthcoming update:

ReportProgress.PNG

There is obviously still a lot of work to be done, but the underlying mechanics have been pretty much worked out - once I build the interface it should be pretty easy to use. You'll be able to choose which columns to display, filter and sort results, etc. Woo!

Link to comment
Share on other sites

  • 3 weeks later...

I've been looking through your frmBoxes.cpp, and I can tell that your used to C#

It's looking pretty good but I have several concerns:

in frmBoxes.cpp, you're using new but never deleting objects, which makes me believe you're doing it else where as well, while this is fine with C#, it's not fine with C++, you're leaking memory at a rate i've not seen in a long time.

Also, you're not taking advantage of Qt's features, Qt has a builtin SQLite implementation that you should be using to take advantage of signals and slots.

If you don't mind I'll be making improvements to your code and supplying patches.

please check my own Qt project as a reference:

https://github.com/Antidote/SakuraSuite

Link to comment
Share on other sites

Wow, a contributor! I very much appreciate your advice. To be honest I used VB.Net for a long time before working on this project, so it is true that I am not used to having to manage memory. I actually have tried to figure out how to free memory, but everything I tried didn't seem to work very well. With that said, it is very exciting to have somebody with Qt experience looking at my source! I will review these patches and make the merges later.

Also, I did know that Qt had its own implementation for SQLite but I've chosen to use the library from SQLite.org so that other people that utilize my library don't necessarily need to use Qt.

Link to comment
Share on other sites

I can understand the reasoning behind using the external SQLite sources, I myself have my own external library that I use extensively (libzelda)

I've created an issue ticket plugging a few of the holes I found, still have quite a ways to go until I'm done though.

EDIT:

Ah, VB.NET will do that to you even more so than C# which is why I advise against it as a first language, it's great for prototyping stuff out, but it teaches very poor programming paradigms that people mistakenly take into other languages, it also doesn't provide a way to explicitly delete objects like C# does.

In C/C++ freeing memory is simple, but you have to keep two things in mind:

One is malloc/free, new/delete

The other is to use the memory management functions provided by the library, sqlite3 has sqlite3_free, I'm still attempting to figure out it's use case, but once I do i'll be cleaning up the code.

Also in C++, global variables are highly frowned upon, it leads to confusing code, I notated this in my first patch.

Link to comment
Share on other sites

Again, I sincerely appreciate the input. I'll look everything over after work tonight, although if you're planning to continue looking further I might wait until you're satisfied before attempting to merge any changes (development has been on a bit of a hiatus lately anyway).

Also, I'm not totally opposed to the idea of using Qt's SQLite implementation, now that I think of it, if it helps with performance and / or makes it easier to coordinate the backend data with the UI.

Link to comment
Share on other sites

I'm nearly done patching all the holes that memory is leaking out of.

That screenshot I posted originally had over 200 leaks, it's now down to around 10.

After I finish patching these holes I'll clean up the code and give you a much better framework to work with. The code as it sits right now is pretty good, but it's very confusing to work with.

Link to comment
Share on other sites

  • 3 months later...

02-12-2014: The last several posts of mine have been merged for cleanup purposes.

The code as it sits right now is pretty good, but it's very confusing to work with.

I'll take that as a compliment! Thanks again for the help!

Just FYI, I removed the SQLite database files from the Git repository to reduce the amount of bandwidth used when initializing a new environment. The databases can be downloaded from https://www.dropbox.com/sh/2etuv926vyey5ou/jeAXk1qDXc. Of course, they haven't changed since I moved them, so you could just copy them to a local directory yourself.

Actually, now that I'm thinking about it, I'll add the folder path I was using before to the .gitignore so that current local branches won't break after syncing the change.

Just a quick notice - I updated the Qt application to include some memory fixes thanks to Antidote. You can grab the update at the usual link.

I updated the veekun-pokedex.sqlite file today. Find it at its new home on Dropbox: https://www.dropbox.com/sh/2etuv926vyey5ou/jeAXk1qDXc

I added viewing ribbons last night. I plan to allow setting each ribbon "on" and "off" just like the markings, by clicking each one.

Ribbons_2.PNG

I've updated the application to fix some issues with the party checksums, and to add a feature to delete all HM moves from all Pokemon in the save file. Enjoy that, PokeTransporter users!

QUICK UPDATE: I just pushed out a fix for move PP after deleting HMs.

Today I rolled back the veekun-pokedex.sqlite file to a version from before X and Y came out to fix some compatibility issues with regard to type changes, etc. going from Gen V to Gen VI.

A quick update - you can now edit the following in the save file:

  • Trainer name
  • Trainer gender
  • Trainer ID / Secret ID

Just click Edit-> OT Info!

Edited by codemonkey85
All changelog stuff
Link to comment
Share on other sites

UPDATE: Now when you set the Pokemon's held item, the Pokemon's form will change if appropriate. For instance, if you make Giratina hold the Griseous Orb, it will change to its Origin Forme. If you make it hold a different item, it will change to its Altered Forme. Same deal with Arceus and Genesect.

Also, if you change a Pokemon's form either manually or by changing its item, the Pokemon's ability will change to reflect the new form if necessary. Right now this applies to Shaymin, Giratina, Tornadus, Thundurus, Landorus, and Kyurem.

Great news for Mac users - Mac OS X is a go!

https://www.dropbox.com/sh/rms3mr0j2gisrgj/sYasuN7JED

Screenshot+2014-02-14+13.19.54.png

Edited by codemonkey85
Link to comment
Share on other sites

  • 1 month later...
  • 1 month later...

PKMDS Save Editor 1.0: Edit your Generation 5 save files!

You can download the latest release from: https://github.com/codemonkey85/PKMDS-Save-Editor/releases/latest

Please report issues to the GitHub issue tracker! Alternatively, you can report them here: http://goo.gl/A3kW8W

e2cf448c-dad0-11e3-941c-90da03be43c8.png

PKMDS Save editor currently supports the following Pokémon games:

  • Black
  • White
  • Black 2
  • White 2

As of this release, you can:

  1. Import and export Pokémon.
  2. Edit individual Pokémon
    • Common info such as species, form, held item, ball, markings, level
    • Basic info such as nickname, trainer info, ability, EXP
    • Stats info such as IVs, EVs, Nature, Pokerus
    • Moves, PP Ups, current PP
    • Origins info such as met / egg location / date, met level, game, country, fateful, N's Pokémon

[*]Drag and drop your Pokémon between the party and current box, or drag and drop from the party / current box to another box using the list on the right

[*]Edit box names

And there are more features on the way!

Edited by codemonkey85
Fix text color
Link to comment
Share on other sites

  • 3 weeks later...

I've released a sizable update (and a quick bugfix)! The big deal for this update is that I've updated the Pokémon box icons to the images from Pokémon X and Y (consistency be damned).

da04246e-e938-11e3-8ade-f05f1ff4f1e2.png

In addition, the images are now embedded resources within the PKMDS_CS.dll file, instead of being in a secondary .SQLITE database. This means less files to deploy and keep track of. Yay!

Plus:

  • Started work on item sorting
  • Update shininess / sprite when editing TID / SID
  • Changed selection backcolor (and alpha)
  • Fixed some items were missing icons / flavor text

As usual, you can find the latest release on the GitHub releases page!

da04246e-e938-11e3-8ade-f05f1ff4f1e2.png

Link to comment
Share on other sites

  • 4 weeks later...

Is there a certain way that I need to convert my save file? I am using an R4i Save Dongle to copy my save to the PC. I tried to load the save with your editor, but it keeps saying "Invalid save file!" The file loads perfectly fine in both pokegen, and the beta of pokesavbw. I wanted to try out yours, as it looks a lot better and easier to use than the other ones. Any ideas?

I have uploaded my backed up sav file to my dropbox here: https://www.dropbox.com/s/opjtzal3dey5bdc/Black%20original.sav

I tested it out using your white sav that same with the source code, and it works fine with that one.

Link to comment
Share on other sites

  • 7 months later...

I tried the most recent download and it refuses to load any of my saves (I'm using an M3DS Real on the Sakura Firmware if that could make a difference), the test .sav is opened, but after about 30 seconds, it gives errors on most boxes... And I can't edit any of the lvl 0 pokemon, which is everything included in the .sav file...

If I'm making a mess of it (downloaded the program and saved it in a seperate folder), then please tell me I'm an idiot and give me a step-by-step guide...

Link to comment
Share on other sites

@ crown trainer I could take a look at your save file to see if there's a problem with the format (my app is pretty stringent on that), but this part in particular interests me:

the test .sav is opened, but after about 30 seconds, it gives errors on most boxes...

So you can load the test save file, but that file causes the app to give you errors? What kind of errors are you seeing? What are you doing before you see these errors?

Link to comment
Share on other sites

@codemonkey85 All I'm doing is opening the test .sav and browsing the boxes (all level 0 pokemon, as stated before) and at some boxes it gives an error I can't recall by heart and I can't find the test .sav anymore... My own White save seems to be invalid and can be found here:

https://drive.google.com/file/d/0B0DAqS0JrlvdczlDei1rdVRvV28/view?usp=sharing for black

https://drive.google.com/file/d/0B0DAqS0JrlvdanFOTWpRSkYwSm8/view?usp=sharing for white.

The error on the test is something about a missing component of the box or something...

Edit: It might be useful to say here that PokeGen still opens the files, even edits without issues.

Edited by crown trainer
Additional info
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...