Jump to content

codemonkey85

Innovator
  • Posts

    1190
  • Joined

  • Last visited

  • Days Won

    18

Everything posted by codemonkey85

  1. Just as an update, I have been working away at my C++ library. There's quite a bit of open-ended functionality now. At this point one could use it to create a program that can: Encrypt and / or decrypt a PC storage Pokémon (or party Pokémon) at will Get or set any data for any Pokémon, and do that in a pretty readable way thanks to various value enumerations for species, items, in-game locations, etc. Get or set the values and quantities of bag items Fix checksums for Pokémon data, block data for the party, PC storage system, items, the save file as a whole, and really any other block you know the location for. Sort Pokémon based on criteria of your choosing (work in progress) As another proof of concept, here is a sample of how one could use my library to, say, turn every Pokémon in a given save file into a Psyduck: If there are any further questions, feel free to email or PM me!
  2. EDIT: For the main thread concerning the code library itself, please go here: http://projectpokemon.org/forums/showthread.php?20984-PKMDS-Code-Library-Gen-V Hi all. I've been mostly pretty quiet about it, but for the last several months I've been writing a new Pokémon hacking code library in C++. It is open source, and in fact you can find it in my signature (or right here). For fun, as well as to demonstrate the new code library in action, I have written a small program which will sort all of the Pokémon in the PC storage system of a given save file in ascending order of National Pokédex ID. Please note that this program is compatible with Generation V save files only (meaning only Black / White and Black 2 / White 2). I have attached a zip file containing both the compiled .exe for Windows, and a .cpp file containing the source code for the program's main function. The rest of the source is, as I said before, available in my signature. It should be compatible with other operating systems, so you can compile it for Linux / MacOS yourself. To use the program in Windows, simply drag and drop a compatible .sav file onto the .exe, and a new save file named "OUT.sav" will be created. Please feel free to contact me with further questions about the program or the code library. I can be reached here via this thread, via PM, or at my email address (my username at Gmail). PKMDS G5 PC Sorter&.zip
  3. I fixed it. Just had to trim the first 0xA4 or so bytes to bring it down to the normal size of 0x80000. It was easy to spot the extra info, since normally there's no recognizable text in a Gen IV save file. pokemon_pearl..sav
  4. aminevidel, please read through the existing forums and threads before asking such generalized questions. This thread has served... well, no purpose.
  5. Preparefortrouble: post your .SAV file here and I will see if I can help you out.
  6. Well, I tried using Shunyweb's converter to convert to a typical RAW 512KB save file, but it looks like this is a newly started game. Can you refer me directly to the save file you downloaded from GameFAQs (by posting a link directly to the page and telling me which one specifically you downloaded)?
  7. I dunno anything about the source for the battle video parser, but I do know that the stats are properly enumerated in the order HP, ATK, DEF, SPD, SPATK, SPDEF. Zero-based index (the proper way) would have Attack be 1, but otherwise 2 would work as well. Are the stats inconsistently denoted throughout the source code? Can't one simply declare const static int or enum for stats?
  8. Wow... I am impressed, Bond. Where were you when I was working on this like five years ago? :-P EDIT: Do you mind if I stick this in my public Google Drive source code folder (with all due credit, naturally)? ALSO: it might be my own personal OCD, but I'm totally going to rewrite it to dump out decrypted PKM files.
  9. Actually, what he's saying is you can set up your computer as a spoof GTS server, which would allow you to transfer Pokémon into your retail cart (which you would have to have), thereby allowing you to transfer them from the DS to the Wii. However, as this plan hinges on you owning a DS and retail cart, which you don't have... it's not gonna work. :-/ Anyway, I don't have PBR so I can't help you with this at any rate... unless someone can figure out the memory structure of PBR data saved on the Wiimote.
  10. terriblewaffles, please upload your save file and tell us your current Game Sync ID. I bet it's like the Friend Codes, which use a CRC8 checksum chopped to 7 bits as the last two digits of the code. (http://www.caitsith2.com/ds/fc.php)
  11. Eh, I wouldn't worry. Something tells me if anything can cause the 3DS cart hacking scene to bust wide open, it's gonna be the new generation of Pokémon games.
  12. I put together a quick (and rather crappy I might add) C++ console app to export the PC storage system Pokémon from one save file to another. It should work across all Gen V games regardless of language. There may be some display bugs as I try to work out Unicode output in the console, and I haven't coded the transfer of Box names (which is unfortunately harder than I thought it would be), but it'll get the overall job done. Here is the .exe file: http://goo.gl/tBzBY And here is the source code: http://goo.gl/5bFa9
  13. That should be doable. I can't promise an ETA, but I'll start looking at it by this weekend. (Luckily, the way my C++ library is being constructed makes it really easy to export pieces of the save file, like the boxes.)
  14. I was going to offer up the checksum info if needed, but I guess it's not. (I don't think I'd seen that page either... useful.)
  15. If you just need a program that imports / exports boxes between (raw) SAV files for Gen V games, I could probably whip this up pretty quick. I might even be able to batch the trainer names and IDs, if you like. I'll be home later tonight; let me know if you're interested. Side note: I'd probably only be able to build for Windows / Linux, but I could definitely give you the source to compile yourself.
  16. Just out of curiosity, why do you need to use Pokegen? To fix the save file checksums?
  17. There was no female trainer in Gold and Silver, so yes.
  18. Metal generation (Gen II) OT gender info: http://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_data_structure_in_Generation_II#Caught_data (2 bytes at 0x1D) Unown's shape: http://bulbapedia.bulbagarden.net/wiki/Individual_values#Unown.27s_letter
  19. I dunno, I'm thinking that first move is Aura Sphere.
  20. Interesting theory, but I doubt contest stats will be getting a resurrection anytime soon. Also, it would have to be more than that anyway, since maxing out Eevee's beauty is something that could have been done in the last three generations.
  21. I sent you a PM. Also, I'm very curious about what you plan to do with this information, especially considering the (presumably) limited compatible wifi chipsets in your standard consumer PC. EDIT: Nevermind that then.
  22. Which game are you working on? I have a TON of documentation from when Jiggy-Ninja was mapping out the Gen IV Pokédex info... but I'm not sure how relevant it will be in Gen V. See this post for that info.
  23. I dunno about RAM Editing, but here's what I know about GBA saves that should help you solve your problem (writing a simple program or doing it the grueling manual way with HxD): Each block of 4KB has 12 bytes at the end of it that you can identify it by: 0x0FF4 - byte - Block ID (0x00-0x0D) 0x0FF5 - byte - Unknown 0x0FF6 - word - Checksum (total value of first 3968 bytes of block, Modulus 0xFFFF) 0x0FF8 - long word - validation code 0x08012025 0x0FFC - long word - save ID - (highest value is most recent save) (this is stored in little endian so in a hex editor you'll see the bytes in reverse order - the validation code will show as 25 20 01 08 for example.) You have to process the blocks and rebuild the whole file before you can really start looking at the data as certain structures, such as PC boxes, cross block boundaries. When you're rebuilding the file, you just take the first 3968 (0x0F80) bytes of each block and put them all together in order. And when you get that all set up, here's a list of the items in Gen III by index: http://bulbapedia.bulbagarden.net/wiki/List_of_items_by_index_number_(Generation_III)
  24. FYI: Just moved this thread into RAM Editing Help, as that's what kind of help this thread is asking for. Carry on.
×
×
  • Create New...