-
Posts
1162 -
Joined
-
Last visited
-
Days Won
12
Content Type
Profiles
Pokédex
Portal
Technical Documentation
Pages
Tutorials
Forums
Events
Downloads
Gallery
Blogs
Everything posted by codemonkey85
-
PPSE: Project Pokemon's Save Editor 0.05
codemonkey85 replied to Jiggy-Ninja's topic in Saves - Tools
If you have a ROM image of your game on your PC, you can load a save file along with that ROM using NO$GBA. -
Please take note that the project known as PokeMod has become Project Pokémon Save Editor (PPSE for short). Sabresite is no longer the sole programmer; in fact, so far, SCV and Jiggy-Ninja have been doing most of the programming, with some support from others. So anytime you ever see someone mention "PokeMod", they are really referring to PPSE (even if they don't know it!). If there are any questions, please post in one of the relevant PPSE stickied threads, or PM one of the aforementioned developers (or myself). [unstickied by evandixon because no one has mentioned either of these programs in years]
-
All right, I changed the topic names to PPSE. But rather than replace all of the text in each post, I think I will make a sticky announcement regarding the transformation of PokeMod to PPSE.
- 43 replies
-
- asked
- frequently
-
(and 3 more)
Tagged with:
-
I'll leave that job to Sabresite.
- 43 replies
-
- asked
- frequently
-
(and 3 more)
Tagged with:
-
Naturally. My code library is, after all, going to be open source. I'm almost there... just turns out unshuffling / decrypting the PKM data is slightly more annoying than I thought it would be.
-
Ken, it's okay. PPSE is PokeMod, only with more people working on it than just Sabresite. It will still be the end-all Pokémon DS save hacking program, and as the developers continue to work, eventually all of the features you were looking forward to should appear. Of course, like with PokeMod, there's no schedule or ETA for any of it... patience is always a virtue.
- 43 replies
-
- asked
- frequently
-
(and 3 more)
Tagged with:
-
EDIT: If there are any mods around, maybe this thread should be moved to Save Research & Development at this point. Nevermind, that first question was answered by the answer to the second question. Sometimes I word things all funny-like. I'll check my PMs, thanks! EDIT: Just a quick update: thanks to Pup and his wonderful information and explanations, I have spent my lunch hour writing up structure definitions for GBA save blocks, GBA save block footers, and a couple of bare-bones definitions for RSE and FRLG save files. Thanks to the miracle of binary serialization, it is a trivial matter to extract the 28 save blocks, and hopefully tonight I can finish my function for unshuffling those blocks and converting the data portion of each block into a complete save file. If I can get that to work, I'll get to work on the explicit layout of the save files, and then the conversion of GBA PKMs to DS PKMs, and after that... the Pal-Parking will commence! FYI Shiny164, if I get to that point, I will help you by creating a program to directly edit your OT info.
-
So the 28 blocks of the save file, once they are unshuffled and stripped of their footers, are all in sequence with no spacing / padding? When you say there is padding, is that padding located at the end of the save file? Or is there padding between the two halves of the file? I believe the save file is 0x20000 (131,072) bytes long, AKA 128kb... is that right? I wish I had a GBA save to look at now, but I'm at work actually. >_>
-
Wow, what a pain in the neck. Hm. Well, that covers the important stuff. Since I already have the aforementioned text table and months of experience in hacking DS saves, this is all the info I need to do... everything. Thanks! ---------- Post added at 07:08 AM ---------- Previous post was at 06:38 AM ---------- Couple questions: If Block ID only goes to 0xD, does that mean there are only 14 blocks instead of 16? You say that each block has a save ID, but some data crosses block boundaries. Does that simply mean half of the blocks comprise the current save and half comprise the backup, like in DS saves? And data within one half can cross block boundaries within that same half?
-
Since Jiggy-Ninja made a new thread for PPSE, I am closing this one.
-
PPSE: Project Pokemon's Save Editor 0.05
codemonkey85 replied to Jiggy-Ninja's topic in Saves - Tools
Check out my thread for backing up and restoring retail carts. The only thing is that it only backs up half of a Platinum save file, so make sure to save twice before backing it up. -
So the data type of this array is Byte? Or is it String? Because if it is a Byte array, it would be much easier for you to arrange the data in a line-by-line format, so you can simply use the index number as a sort of pointer to the correct data in the file. If it is a String array, then I insist that you are doing things the hard way.
-
This isn't meant for personal use; I plan to add Pal-Parking as a feature in my code library, and I know PPSE will have such a feature as well. It's meant so that you can import Pokémon from GBA games to DS games in a way that is 100% legal and accurate. Not to mention the million other uses I could think of if one were able to extract PKM data from GBA games, like mass-dumping of PKM files for instance.
-
I don't think you're understanding what the Move Tutor does with Heart Scales. You can't re-teach your Pokémon moves based on what it used to know; only level-up moves that it could have learned at that point, and only for the evolution level the Pokémon is currently at. This is how the ROM functions, so no save editor can change the moves your Froslass can learn via Heart Scales. EDIT: I just re-read your post and now I'm a bit confused. Did you try scrolling the list of available moves? It should be able to learn anything listed here.
-
I would like to open this discussion up, for sure. For starters, do you know the overall placement of the blocks comprising the GBA save files, and what purpose each block serves? Do you know how to tell which blocks are current and which are backups? There appears to be info out there already for how to calculate block checksums and how to encrypt / shuffle PKM data in the GBA, so if the above questions are answered, I may start digging into GBA save files this week to see if I can extract Pokémon data. At that point, it should be easy enough to convert that data into the DS structure. Then a "virtual Pal Park" app should be doable.
-
I do not understand what you are doing. Your database will be in an external text file? What format is the data going to be stored in? How are you performing these searches? What is this "hex array" you are referring to... is it a String array? Those numbers are just index numbers. You could easily make a List(Of String) and add each move to that list at startup. Then you could pull the name of a given Move by using List(index), where index is the number of that move. Either 100 or &H64 would pull up the same move. FYI: When I first started PKMDS, my data was also in external files, in CSV format. In order to obtain info, I would iterate through the file, reading one line at a time, and splitting each line into a string array using String.Split(","). Later I wisened up and began hardcoding my data, so now I use Dictionaries (basically hashtables) for lookup. It's much faster and more reliable than external files, and there is minimal (if any) data conversion necessary.
-
Why? VB knows that 1 is the same thing as &H1, just like it knows 10 is the same thing as &HA. There's no need to convert anything as far as index numbers are concerned; the 1 - 467 will be fine.
-
Well, there is of course Bulbapedia for a simpler presentation. But the data at Legendary Pokémon is much more comprehensive. The number of the move (on the leftmost column) is the decimal representation of the "hex value". OT gender is mentioned in the Pokémon data structure article for the NDS, in both Bulbapedia and our own wiki. It's stored as a bit in byte 0x84 of the PKM data.
-
Personally, I would include just about every aspect of a PKM for searches (in fact I plan to), including the above, and also including things such as markings, Nature, shininess, PokéRus status, IVs / calculated stats, held items, and so on.
-
Project Pokemon Save Editor - To Do List
codemonkey85 replied to Sabresite's topic in Saves - Research
Here it is, if you want to see it. And here's how I basically use it: -
I see. Well, like I said, I suppose I will just write a function to return a byte array instead of a DPSaveFile or PtSaveFile. Hopefully that byte array can be serialized into one of those structures; if not, I suppose you could always work with the data manually.
-
Project Pokemon Save Editor - To Do List
codemonkey85 replied to Sabresite's topic in Saves - Research
As far as a PokéText dictionary / string conversion formula goes, Jiggy and I have both done this. I know for my part that the function I wrote will take a string of any size and output the PokéText data as a byte array (including an optional boolean parameter for whether or not to append the FF FF terminator). Conversely, I wrote a function that will accept such a byte array and turn it into a string. Am I misunderstanding your intentions? And I also wrote a function that accepts a filename, determines which kind of save format to use, and returns an object of the matching type. Right now there are two structures to choose from, either DPSaveFile or PtSaveFile. I am using binary serialization to load / save these structures. Jiggy-Ninja and SCV did something different here; I believe Jiggy wrote a series of constructors to obtain the data from a "file vector" or somesuch Qt terminology. Unless you are referring to .DUC, .Sav, and all of those formats. You should take a look at my source one day, if you can manage to read VB.Net without a brain hemmorhage. -
Overloaded functions cannot differ by only return types, so I will have to name it as a separate function if I want to do it that way. So ASP.Net cannot read files using streams? That seems like an odd limitation. evandixon, do you mind pasting the specific code you used to open the save file? As for documentation within the .DLL, that is something I plan to do. I will document it using commentation and XML tagging. However, there are thousands of lines of code to go through, so it will take me a while.
-
A little Help Please? [Metagross + Pokesav Platinum]
codemonkey85 replied to Scarling's topic in Saves - Editing Help
WRONG. A shiny Pokémon can have all 31 IVs. Scarling, did you use the PID / IV button in Pokesav? Is that what you mean by "resetting the PID"? It looks like the TID / SID / PID combo results in a legal shiny check, so I'm not sure what else could be causing your problem. -
I am interested in your Tyrogue. Let me know if / when you are available. I'll be online for a little bit now before I go to bed.