Jump to content

PKMDS - Code Library and Directory Viewer


codemonkey85

Recommended Posts

Just as an FYI to all those out there, this project is long dead. You can see my new stuff here: http://projectpokemon.org/forums/showthread.php?20984-PKMDS-Code-Library-Gen-V

EDIT: PLEASE SEE THE NEW THREAD HERE.

Hello,

It's been quite some time since I've made an update regarding any of my PKMDS (Pokémon Deluxe Suite) projects. But I've made some excellent progress, and I have some good news for those interested in making their own save editing programs.

It has been a goal of mine for some time to create a code library for people to write their own Pokémon DS save file / PKM file viewing and editing software. Well, I'm at the point where I only need to add Platinum functionality and I should be ready to release a beta of this code library to the public at large.

As an example of the type of application one could create using the library, please see this image. The program you see here is one that I will probably release once I've cleaned it up some, but the important thing is that it is driven by the code library I am writing. In theory, any person who writes Windows applications in VB.Net or Visual C# should be able to import my .DLL file into their project and create this program (and many others) with minimal coding and without the use of any other external files.

Neat? Yup.

I'll be posting news and updates, and eventually the .DLL itself, here in this thread. Feel free to post any questions or comments, etc.

Special thanks:

COM - For creating Pokesav and inspiring everyone to do better than him.

Sabresite - For helping me get started and giving me an endless supply of helpful advice. Also the PKM character to Unicode conversion table, and basically the entire structure of PKM data.

SCV - For dedicated patience and problem solving ability.

Also thanks to the above for the handy save block checksum algorithm.

Jiggy-Ninja - For hard work and unrelenting help, specifically the Pokédex and Trainer Card signature data structures.

Poryhack - For, among other things, the ribbon images which I have not quite used yet (but they are set up to be used, if that helps!).

Kazumi - For the Pokémon DP font (which I still can't seem to use right...)

fenzo and coolbho3000 - For creating and maintaining an awesome Pokémon community.

loadingNOW - What doesn't this guy do? Thanks for the save file documentation, and thanks for whatever else I got from you directly or indirectly.

Bulbapedia - For being handy reference until the PP wiki launched.

Serebii - For being a source of reference (at least most of the time).

Legendary Pokémon - For being a source of data.

X-Act and really Smogon in general - For answering some questions, and providing the stat formula.

GatorShark - For demystifying the Spinda spot rendering process.

Mastermind_X - For the Platinum sprites.

damio - For being damio.

Greencat - For not being damio. ;)

Also you're basically all awesome. So cheers!

EDIT: Added an upgraded version of PKMDS PKM Viewer to this post. PKMDS Box Organizer is probably due for the next upgrade. Stay tuned.

EDIT 2: Updated PKMDS PKM Viewer, fixing some bugs and such. PKMDS Box is proving to be a pain in the butt, so I will probably recode that one from scratch.

PKMDS PKM Viewer.zip

PKMDS PKM Viewer.zip

Edited by codemonkey85
Link to comment
Share on other sites

When this is finished, nearly everyone can make a PokeMod themselves.

Basically that is the goal, although it will probably never get as far as PokeMod's feature list. But the open-sourceness may help.

How will it work? Will it be like:

PKMDS.SecretID = 12345

'and

TextBox1.Text = PKMDS.SecretID.ToString '?

You're on the right track. It looks more like this though:

Dim s As New SaveFile

S = PokemonLib.OpenSaveFile("FILENAME")

Dim PKM As New Pokemon = S.PartyPokemon(0)

SpeciesNameLabel.Text = PKM.Species.Name

SpritePictureBox.Image = PKM.Sprite

etc.

Link to comment
Share on other sites

Wow, now all I need are practical ideas for how to use this power!

I have quite a few ideas myself. Unfortunately, some of them are less plausible than others.

One thing I have considered is creating a game that utilizes a Pokémon DS save file, drawing out information for the game's purposes, and writing data to the save file during the game's progress. For example, maybe this could be a game that uses the save file's Pokémon, and acquires EXP and happiness for them, or helps them learn moves. The trainer in the save file could earn money, etc.

Link to comment
Share on other sites

With no time available, maybe I will leave it up to the community to build PokeMod themselves. I am glad to see progress none-the-less. :)

Is it OK if we stop calling it PokeMod and keep Project Pokemon's Save Editor? I think its a good name especially if its a cumulative effort of Project Pokemon researchers and programmers? At the moment we were planing not to do graphics in PPSE and leave that for PokeMod to handle, but if this is how you feel, then we might include them after all.

Link to comment
Share on other sites

Is it OK if we stop calling it PokeMod and keep Project Pokemon's Save Editor? I think its a good name especially if its a cumulative effort of Project Pokemon researchers and programmers? At the moment we were planing not to do graphics in PPSE and leave that for PokeMod to handle, but if this is how you feel, then we might include them after all.

Its fine with me. Just FYI, I would code the project in C# or C++, not VB.

Link to comment
Share on other sites

Wow!

This project is amazing! Imagine what small, weird-and-wonderful utilities may start popping up when the DLL is released!!

Good Luck, and if you need any help, i'm alright with VB.net (need help with hex in it though), and I could help with a port (I'm kind of good with C and C++, love python and i'm fine with Pascal if needed).

Oh, and, will the library handle decryption and encryption of the files automatically (e.g, integrated into a .save method) or will the math have to be carried out and applied (It's probably the former :D)?

Anyways, I hope to see further developments in the future, coz i've got my eye on this project!! :grog:

Edited by Matt140
Link to comment
Share on other sites

My theory about PPSE will be made:

-codemonkey85 finishes what this thread is about

-someone makes a form in WPF that gets the job done (I will volunteer)

-someone ELSE uses expression studio to edit the XAML to have outstanding graphics

-whoever is the host of PP uploads it to the server.

Well actually PPSE has already been started as mentioned in the research thread, and as I mentioned earlier, it will be written in Qt C++ so we make native versions available for windows, mac and linux. We won't be using this library as it will be released, since VB.net appears not with C++. Of course, you or anyone wants to make tools using this library feel free. We will br glad to host them on the site.

Link to comment
Share on other sites

Well actually PPSE has already been started as mentioned in the research thread, and as I mentioned earlier, it will be written in Qt C++ so we make native versions available for windows, mac and linux.

There appears to be some confusion, which is understandable. This library is a totally seperate project from PPSE, which isn't to say I'm not sharing everything relevant with SCV, but for right now VB.Net is the only language I know. I am going to be taking a C++ class in the fall. In the meantime, I am hoping I can use this class in some C# projects to try and get used to the C way of things (one step at a time).

Regardless, SCV is writing his own library for PPSE, and PPSE will be super compatible with everything relevant. It will be pretty awesome.

---------- Post added at 02:42 AM ---------- Previous post was at 02:41 AM ----------

Oh, and, will the library handle decryption and encryption of the files automatically (e.g, integrated into a .save method) or will the math have to be carried out and applied (It's probably the former :D)?

The idea is that the library will handle all of that stuff for you, although the option to manually encrypt or decrypt Pokémon data will be present if you so desire. For right now, any reference to a Pokemon object is a reference to decrypted data.

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